/* ==========================================================================
   K-Beauty Token — public site layer                              v20261005d
   Loaded after style.css on <body class="public"> pages (includes/public/layout.php).
   Noir (#0F0E0C) and ivory sections, serif display, champagne-gold hairlines.

   Class vocabulary for public pages
   Sections  .pub-section + .pub-noir | .pub-ivory | .pub-paper     (.pub-noir also styles .pub-hero/.pub-stats/.pub-cta)
             wrap all page content in sections: <main> is ivory, <body> is noir (behind the translucent top bar)
             .pub-wrap (centred container)   .pub-split (+ --top | --faq) two-column split   .pub-sticky (desktop)
             .pub-pagehero.pub-noir           title band for inner pages (heading with tag h1)
   Headings  kbt_section_heading() → .pub-head (+ --center | --split | --compact)
             .pub-eyebrow  .pub-ornament  .pub-num (section number "01 —")  .pub-title (+ --sm)  .pub-intro  .pub-note
             Center only full-bleed bands (steps, tiers, closing CTA); split sections stay left-aligned.
   Grids     .pub-grid + --2 | --3 | --4      .pub-features (+ --4) > .pub-feature
             .pub-steps > .pub-step           .pub-tiers > .pub-tier
   Cards     .pub-card (__title __body __foot)  .pub-ring (+ --lg)  .pub-metal--silver|gold|platinum|diamond
   Content   .pub-prose (kbt_html() output)  .pub-table-wrap > table.pub-table  dl.pub-facts > .pub-facts__row
             ul.pub-checks  ul.pub-sources
   Callouts  .pub-callout (+ --warn)
   Actions   .pub-btn + --gold | --ink | --line (ivory) | --ghost (noir), + --sm | --lg | --block   .pub-link
   FAQ       .pub-faq > details.pub-faq__item > summary + .pub-faq__a
   In-page   nav.pub-tocbar (sticky chip row under the header; body.has-tocbar)   [data-pub-carousel] + .pub-dots
   Motion    [data-reveal] (stagger with style="--i:n"), switched on by public.js; off for reduced motion
             (never on items inside a horizontal swipe row)
   ========================================================================== */

/* 1. Page base --------------------------------------------------------------- */
:root {
    --pub-header-h: 64px;
    scroll-padding-top: var(--pub-header-h);
}
@media (min-width: 1100px) {
    :root { --pub-header-h: 76px; }
}
@media (prefers-reduced-motion: no-preference) {
    :root { scroll-behavior: smooth; }
}

/* CJK pages: the CJK serif comes first so punctuation (·, :) and digits match the CJK glyphs;
   Latin-only displays (wordmark, figures, numbers) name "Cormorant Garamond" explicitly. */
html:lang(ko) { --font-serif: "Noto Serif KR", "Cormorant Garamond", Georgia, serif; }
html:lang(ja) { --font-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "Cormorant Garamond", serif; }
html:lang(zh) { --font-serif: "Noto Serif SC", "Songti SC", "STSong", "Cormorant Garamond", serif; }

body.public {
    --pub-noir: #0F0E0C;
    --pub-max: 1200px;
    --pub-gutter: clamp(20px, 5vw, 48px);
    --pub-y: clamp(80px, 10vw, 136px);
    --pub-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 -.2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
    /* section palette: ivory by default, .pub-noir re-maps */
    --p-bg: var(--ivory);
    --p-fg: var(--ink);
    --p-fg2: var(--ink-3);
    --p-fg3: #6B6256;
    --p-rule: var(--line);
    --p-rule2: var(--line-strong);
    --p-gold: var(--gold-deep);
    --p-line: var(--gold);
    --p-card: transparent;
    min-height: 100vh;
    background: var(--pub-noir);
    background-image: none;
    background-attachment: scroll;
    color: var(--ink);
    font-size: 16px;
    line-height: 1.65;
}
html:lang(ja) body.public {
    font-family: "Pretendard Variable", Pretendard, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, "Noto Sans JP", system-ui, sans-serif;
    word-break: normal;
    line-break: strict;
}
html:lang(zh) body.public {
    font-family: "Pretendard Variable", Pretendard, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;
    word-break: normal;
    line-break: strict;
}
html:lang(ja) body.public :is(h1, h2, h3, h4, summary, li, dt, dd, .pub-intro, .pub-note, .pub-stat__label,
    .pub-feature__title, .pub-card__title, .pub-step__title, .pub-tier__tagline, .pub-hero__note, .pub-callout p) { word-break: auto-phrase; }
/* Chinese has no phrase breaking in CSS: closing CTAs break only at punctuation ("在韩国，/ 一切有…") */
html:lang(zh) body.public .pub-cta .pub-title { word-break: keep-all; overflow-wrap: anywhere; }
html.pub-lock { overflow: hidden; }

.public main { display: block; overflow-x: clip; background: var(--ivory); }
.public h1, .public h2, .public h3 { text-wrap: balance; }
.public :is(p, li, dd, summary) { text-wrap: pretty; }
.pub-nowrap { white-space: nowrap; }

body.public :focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 3px; }
.public .pub-noir :focus-visible,
.public .pub-header :focus-visible,
.public .pub-sheet :focus-visible,
.public .pub-footer :focus-visible { outline-color: var(--gold-soft); }

.pub-skip {
    position: absolute;
    top: -80px;
    left: 12px;
    z-index: 100;
    padding: 10px 18px;
    border-radius: var(--radius-pill);
    background: var(--paper);
    color: var(--ink);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}
.pub-skip:focus { top: 10px; }

/* 2. Layout ------------------------------------------------------------------ */
.pub-wrap {
    width: 100%;
    max-width: calc(var(--pub-max) + 2 * var(--pub-gutter));
    margin-inline: auto;
    padding-inline: var(--pub-gutter);
}

.pub-section {
    position: relative;
    padding-block: var(--pub-y);
    background-color: var(--p-bg);
    color: var(--p-fg);
}
.pub-ivory { --p-bg: var(--ivory); }
.pub-paper { --p-bg: var(--paper); }
.pub-ivory + .pub-paper,
.pub-paper + .pub-ivory { border-top: 1px solid var(--line); }

.pub-noir {
    --p-bg: var(--pub-noir);
    --p-fg: #F3EEE4;
    --p-fg2: rgba(243, 238, 228, .74);
    --p-fg3: rgba(243, 238, 228, .6);
    --p-rule: rgba(216, 195, 156, .16);
    --p-rule2: rgba(216, 195, 156, .3);
    --p-gold: var(--gold-soft);
    --p-line: rgba(216, 195, 156, .55);
    --p-card: rgba(255, 253, 248, .025);
    position: relative;
    isolation: isolate;
    background-color: var(--p-bg);
    color: var(--p-fg);
}
.pub-noir::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: var(--pub-grain);
    opacity: .3;
    pointer-events: none;
}
.pub-noir a:not([class]) { color: var(--gold-soft); }

.pub-split {
    display: grid;
    gap: clamp(48px, 6vw, 96px);
    align-items: center;
}
@media (min-width: 960px) {
    .pub-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .pub-split--top { align-items: start; }
    .pub-split--faq { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; }
}

/* 3. Headings ---------------------------------------------------------------- */
.pub-head {
    display: grid;
    justify-items: start;
    gap: 18px;
    max-width: 780px;
    margin-bottom: clamp(40px, 5.5vw, 72px);
}
.pub-head--center {
    justify-items: center;
    margin-inline: auto;
    text-align: center;
}
.pub-head--compact { gap: 14px; margin-bottom: 0; }
.pub-head--split { max-width: none; }
@media (min-width: 960px) {
    .pub-head--split {
        grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
        column-gap: clamp(48px, 7vw, 120px);
        align-items: end;
    }
    .pub-head--split > .pub-intro { grid-column: 2; grid-row: 1 / span 2; align-self: end; }
}

.pub-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin: 0;
    font-family: var(--font-sans);
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--p-gold);
}
.pub-eyebrow::before,
.pub-head--center .pub-eyebrow::after {
    content: "";
    flex: none;
    width: 32px;
    height: 1px;
    background: var(--p-line);
}

.pub-ornament {
    position: relative;
    display: block;
    width: 64px;
    height: 9px;
    background: linear-gradient(90deg, var(--p-line), transparent) 14px 50% / 50px 1px no-repeat;
}
.pub-ornament::before {
    content: "";
    position: absolute;
    left: 1px;
    top: 1px;
    width: 6px;
    height: 6px;
    border: 1px solid var(--p-line);
    transform: rotate(45deg);
}
.pub-head--center .pub-ornament {
    background:
        linear-gradient(270deg, var(--p-line), transparent) 0 50% / 25px 1px no-repeat,
        linear-gradient(90deg, var(--p-line), transparent) 39px 50% / 25px 1px no-repeat;
}
.pub-head--center .pub-ornament::before { left: 28.5px; }

/* Section number ("01 —"): token sections, insights items, resort journeys */
.pub-num,
.in-item__n,
.rs-journey__n {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: var(--p-gold);
    font-family: "Cormorant Garamond", var(--font-serif);
    font-size: 17px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .16em;
    font-variant-numeric: lining-nums;
}
.pub-num::after,
.in-item__n::after,
.rs-journey__n::after,
.pub-head--center .pub-num::before { content: ""; width: 32px; height: 1px; background: var(--p-line); }

.pub-title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(36px, 4.8vw, 60px);
    font-weight: 500;
    line-height: 1.06;
    letter-spacing: -.015em;
    color: var(--p-fg);
}
.pub-title--sm,
.pub-head--compact .pub-title { font-size: clamp(30px, 3vw, 40px); }

.pub-intro {
    margin: 0;
    max-width: 40em;
    font-size: clamp(16px, 1.3vw, 18px);
    line-height: 1.75;
    color: var(--p-fg2);
}
.pub-head--compact .pub-intro { font-size: 14px; line-height: 1.65; }

.pub-note {
    max-width: 46em;
    margin: clamp(32px, 4vw, 48px) auto 0;
    font-size: 13.5px;
    line-height: 1.65;
    text-align: center;
    color: var(--p-fg3);
}

/* CJK display type: Noto Serif runs larger and needs more leading than Cormorant */
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-title {
    font-size: clamp(29px, 3.7vw, 46px);
    line-height: 1.32;
    letter-spacing: -.02em;
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-title--sm,
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-head--compact .pub-title { font-size: clamp(25px, 2.4vw, 32px); }
html:is(:lang(ko), :lang(ja), :lang(zh)) :is(.pub-eyebrow, .pub-sheet__label, .pub-footer__h, .pub-table thead th, .in-asof span) {
    font-size: 13px;
    letter-spacing: .02em;
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .kbt-card__label { letter-spacing: .06em; }

/* 4. Buttons & links --------------------------------------------------------- */
.pub-btn {
    --b-bg: transparent;
    --b-fg: var(--p-fg);
    --b-bd: var(--p-rule2);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 50px;
    padding: 12px 26px;
    border: 1px solid var(--b-bd);
    border-radius: var(--radius-pill);
    background: var(--b-bg);
    color: var(--b-fg);
    font-family: var(--font-sans);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: .01em;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), filter var(--dur) var(--ease);
}
.pub-btn .ico { width: 18px; height: 18px; transition: transform var(--dur) var(--ease); }
.pub-btn:active { transform: scale(.985); }
@media (hover: hover) {
    .pub-btn:hover .ico { transform: translateX(3px); }
}

.pub-btn--gold {
    --b-bg: linear-gradient(135deg, #EEDCB1 0%, #CFAD6E 46%, #B48E54 100%);
    --b-fg: var(--ink);
    --b-bd: rgba(126, 95, 48, .45);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), 0 14px 30px -16px rgba(201, 164, 101, .6);
}
.pub-btn--ink { --b-bg: var(--ink); --b-fg: var(--ivory); --b-bd: var(--ink); }
.pub-btn--line { --b-fg: var(--ink); --b-bd: rgba(21, 19, 15, .55); }
.pub-btn--ghost { --b-fg: #F3EEE4; --b-bd: rgba(243, 238, 228, .3); }
@media (hover: hover) {
    .pub-btn--gold:hover { filter: brightness(1.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), 0 18px 34px -16px rgba(201, 164, 101, .7); }
    .pub-btn--ink:hover { --b-bg: var(--ink-2); --b-bd: var(--ink-2); }
    .pub-btn--line:hover { --b-bg: var(--ink); --b-fg: var(--ivory); --b-bd: var(--ink); }
    .pub-btn--ghost:hover { --b-bg: rgba(216, 195, 156, .08); --b-bd: var(--gold-soft); --b-fg: #FFFBF2; }
}
.pub-btn--sm { gap: 8px; min-height: 40px; padding: 8px 18px; font-size: 14px; }
.pub-btn--lg { min-height: 56px; padding: 14px 30px; font-size: 16px; }
.pub-btn--block { width: 100%; }

.pub-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid currentColor;
    color: var(--p-gold);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
}
.pub-link .ico { width: 16px; height: 16px; transition: transform var(--dur) var(--ease); }
@media (hover: hover) {
    .pub-link:hover .ico { transform: translateX(3px); }
}

/* 5. Top bar & menu sheet ---------------------------------------------------- */
.pub-header {
    position: sticky;
    top: 0;
    z-index: 60;
    border-bottom: 1px solid transparent;
    background: rgba(15, 14, 12, .8);
    -webkit-backdrop-filter: saturate(140%) blur(16px);
    backdrop-filter: saturate(140%) blur(16px);
    color: #F3EEE4;
    transition: background-color .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.pub-header.is-scrolled {
    border-bottom-color: rgba(216, 195, 156, .14);
    background: rgba(15, 14, 12, .9);
    box-shadow: 0 14px 34px -20px rgba(0, 0, 0, .75);
}
.pub-header__inner {
    display: flex;
    align-items: center;
    gap: 28px;
    height: var(--pub-header-h);
}

.pub-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-inline-end: auto;
    color: #F3EEE4;
    text-decoration: none;
}
.pub-mono {
    position: relative;
    display: grid;
    place-items: center;
    flex: none;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(216, 195, 156, .6);
    border-radius: 50%;
    color: var(--gold-soft);
    font-family: "Cormorant Garamond", var(--font-serif);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1;
}
.pub-mono::after {
    content: "";
    position: absolute;
    inset: 3px;
    border: 1px solid rgba(216, 195, 156, .22);
    border-radius: 50%;
}
.pub-wordmark {
    font-family: "Cormorant Garamond", var(--font-serif);
    font-size: 21px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .01em;
    white-space: nowrap;
}

.pub-nav,
.pub-actions { display: none; }
.pub-nav ul { display: flex; gap: clamp(20px, 2.2vw, 34px); margin: 0; padding: 0; list-style: none; }
.pub-nav a {
    position: relative;
    display: block;
    padding: 10px 0;
    color: rgba(243, 238, 228, .76);
    font-size: 14.5px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    transition: color var(--dur) var(--ease);
}
.pub-nav a:hover,
.pub-nav a[aria-current="page"] { color: #FBF7EF; }
.pub-nav a[aria-current="page"]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 3px;
    height: 1px;
    background: var(--gold-soft);
}

.pub-actions { align-items: center; gap: 10px; }
.pub-lang {
    display: flex;
    align-items: center;
    margin-inline-end: 6px;
    padding: 3px;
    border: 1px solid rgba(216, 195, 156, .22);
    border-radius: var(--radius-pill);
}
.pub-lang a {
    padding: 6px 10px;
    border-radius: var(--radius-pill);
    color: rgba(243, 238, 228, .66);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .04em;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    transition: color var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.pub-lang a:hover { color: #FBF7EF; }
.pub-lang a[aria-current="true"] { background: rgba(216, 195, 156, .16); color: var(--gold-soft); }

.pub-burger {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-inline-end: -10px;
    padding: 0;
    border: 0;
    background: none;
    color: #F3EEE4;
    cursor: pointer;
}
.pub-burger__lines {
    position: relative;
    display: block;
    width: 22px;
    height: 10px;
}
.pub-burger__lines::before,
.pub-burger__lines::after {
    content: "";
    position: absolute;
    right: 0;
    height: 1.5px;
    border-radius: 1px;
    background: currentColor;
    transition: transform .3s var(--ease), width .3s var(--ease);
}
.pub-burger__lines::before { top: 1px; width: 22px; }
.pub-burger__lines::after { top: 7.5px; width: 15px; }
.pub-burger[aria-expanded="true"] .pub-burger__lines::before { transform: translateY(3.25px) rotate(45deg); }
.pub-burger[aria-expanded="true"] .pub-burger__lines::after { width: 22px; transform: translateY(-3.25px) rotate(-45deg); }

@media (min-width: 1100px) {
    .pub-nav { display: block; }
    .pub-actions { display: flex; }
    .pub-burger { display: none; }
    .pub-brand { margin-inline-end: clamp(8px, 2vw, 32px); }
    .pub-nav { margin-inline-end: auto; }
}

.pub-sheet {
    position: fixed;
    inset: 0;
    z-index: 55;
    display: flex;
    flex-direction: column;
    gap: 36px;
    padding: calc(var(--pub-header-h) + 20px) var(--pub-gutter) calc(28px + env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    background:
        radial-gradient(90% 50% at 100% 0%, rgba(201, 164, 101, .16), transparent 70%),
        var(--pub-noir);
    color: #F3EEE4;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-10px);
    transition: opacity .3s var(--ease), transform .3s var(--ease), visibility 0s linear .3s;
}
.pub-sheet.is-open {
    visibility: visible;
    opacity: 1;
    transform: none;
    transition: opacity .3s var(--ease), transform .3s var(--ease), visibility 0s;
}
@media (min-width: 1100px) {
    .pub-sheet { display: none; }
}
.pub-sheet__nav ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(216, 195, 156, .16); }
.pub-sheet__nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 0;
    border-bottom: 1px solid rgba(216, 195, 156, .16);
    color: #F3EEE4;
    font-family: var(--font-serif);
    font-size: 30px;
    font-weight: 500;
    line-height: 1.2;
    text-decoration: none;
}
.pub-sheet__nav a .ico { color: var(--gold-soft); }
.pub-sheet__nav a[aria-current="page"] { color: var(--gold-soft); }
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-sheet__nav a { font-size: 23px; font-weight: 600; }
.pub-sheet__label {
    margin: 0 0 12px;
    color: var(--gold-soft);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.pub-sheet__langs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.pub-sheet__lang a {
    display: grid;
    place-items: center;
    min-height: 46px;
    border: 1px solid rgba(216, 195, 156, .24);
    border-radius: var(--radius-pill);
    color: rgba(243, 238, 228, .78);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}
.pub-sheet__lang a[aria-current="true"] { border-color: var(--gold-soft); background: rgba(216, 195, 156, .1); color: var(--gold-soft); }
.pub-sheet__actions { display: grid; gap: 10px; margin-top: auto; }

/* 6. Hero -------------------------------------------------------------------- */
.pub-hero {
    overflow: hidden;
    padding: clamp(44px, 7vw, 88px) 0 clamp(72px, 8vw, 112px);
    background-image:
        radial-gradient(48% 62% at 80% 42%, rgba(201, 164, 101, .2), rgba(201, 164, 101, 0) 72%),
        radial-gradient(38% 46% at 0% 100%, rgba(168, 116, 107, .1), transparent 72%),
        linear-gradient(180deg, #0F0E0C 0%, #12100C 100%);
}
.pub-hero__grid {
    display: grid;
    gap: clamp(36px, 6vw, 72px);
    align-items: center;
}
@media (min-width: 960px) {
    .pub-hero__grid {
        grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
        min-height: min(calc(100svh - var(--pub-header-h) - 150px), 700px);
    }
}
.pub-hero__title {
    margin: 22px 0 0;
    color: #F7F2E8;
    font-family: var(--font-serif);
    font-size: clamp(50px, 7.2vw, 76px);
    font-weight: 500;
    line-height: 1.02;
    letter-spacing: -.02em;
}
.pub-hero__title em {
    display: block;
    padding-inline-end: .1em;
    background: linear-gradient(100deg, #F4E5C2 0%, #D9BA7C 42%, #F2DFB4 68%, #C9A465 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-style: italic;
    font-weight: 500;
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-hero__title {
    font-size: clamp(38px, 5.5vw, 64px);
    line-height: 1.24;
    letter-spacing: -.03em;
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-hero__title em { font-style: normal; }
.pub-hero__sub {
    max-width: 33em;
    margin: 26px 0 0;
    color: rgba(243, 238, 228, .76);
    font-size: clamp(16px, 1.3vw, 18px);
    line-height: 1.75;
}
.pub-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.pub-hero__note {
    max-width: 36em;
    margin: 26px 0 0;
    padding-inline-start: 14px;
    border-inline-start: 1px solid rgba(216, 195, 156, .32);
    color: rgba(243, 238, 228, .58);
    font-size: 13px;
    line-height: 1.6;
}
@media (max-width: 559px) {
    .pub-hero__ctas .pub-btn,
    .pub-cta__actions .pub-btn { width: 100%; }
}

/* Membership card art (decorative) */
.pub-hero__art {
    position: relative;
    display: grid;
    place-items: center;
    padding: 9% 7% 6%;
}
.pub-hero__art::before,
.pub-hero__art::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    aspect-ratio: 1;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
}
.pub-hero__art::before {
    width: min(122%, 620px);
    border: 1px solid rgba(216, 195, 156, .13);
    background: radial-gradient(circle, rgba(201, 164, 101, .12), transparent 62%);
}
.pub-hero__art::after {
    width: min(88%, 450px);
    border: 1px solid rgba(216, 195, 156, .09);
}

.kbt-cards {
    position: relative;
    z-index: 1;
    width: min(100%, 430px);
    aspect-ratio: 1.586;
    container-type: inline-size;
}
.kbt-card {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto 1fr auto;
    overflow: hidden;
    padding: 7% 7.5%;
    border-radius: 18px;
    border-radius: 4.6cqw;
}
.kbt-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: repeating-radial-gradient(circle at 112% -18%, transparent 0 9px, rgba(255, 255, 255, .2) 9px 10px);
    mix-blend-mode: soft-light;
    pointer-events: none;
}
.kbt-card--gold {
    background: var(--finish-gold);
    color: rgba(44, 33, 18, .9);
    text-shadow: 0 1px 0 rgba(255, 255, 255, .35);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .7),
        inset 0 -1px 0 rgba(90, 64, 26, .3),
        0 46px 80px -38px rgba(0, 0, 0, .95),
        0 22px 40px -24px rgba(0, 0, 0, .7);
    transform: translate(4%, 8%) rotate(2.5deg);
}
.kbt-card--gold::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(112deg, transparent 34%, rgba(255, 255, 255, .62) 47%, rgba(255, 255, 255, 0) 60%) 130% 0 / 260% 100% no-repeat;
    mix-blend-mode: soft-light;
    animation: kbt-sheen 8s var(--ease) 1.2s infinite;
    pointer-events: none;
}
.kbt-card--diamond {
    border: 1px solid rgba(216, 195, 156, .26);
    background: var(--finish-diamond);
    color: var(--gold-soft);
    box-shadow: 0 40px 70px -40px rgba(0, 0, 0, .95);
    transform: translate(-7%, -19%) rotate(-6deg) scale(.95);
}
.kbt-card--diamond .kbt-card__tier { grid-area: 1 / 2; align-self: center; }
.kbt-card--diamond::before {
    background:
        repeating-radial-gradient(circle at 112% -18%, transparent 0 9px, rgba(216, 195, 156, .06) 9px 10px),
        linear-gradient(115deg, transparent 32%, rgba(216, 195, 156, .14) 47%, rgba(160, 182, 222, .08) 56%, transparent 68%);
    mix-blend-mode: normal;
}
.kbt-card__mono {
    grid-area: 1 / 1;
    font-family: "Cormorant Garamond", var(--font-serif);
    font-size: 34px;
    font-size: 8.4cqw;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .04em;
}
.kbt-card__label {
    grid-area: 1 / 2;
    align-self: center;
    font-size: 10px;
    font-size: 2.4cqw;
    font-weight: 600;
    letter-spacing: .3em;
    text-transform: uppercase;
    opacity: .8;
}
.kbt-card__chip,
.pub-tier__chip {
    position: relative;
    align-self: center;
    aspect-ratio: 1.3;
    border: 1px solid rgba(92, 68, 30, .38);
    background:
        linear-gradient(90deg, transparent 31%, rgba(92, 68, 30, .42) 31% 33.5%, transparent 33.5% 66.5%, rgba(92, 68, 30, .42) 66.5% 69%, transparent 69%),
        linear-gradient(180deg, transparent 46%, rgba(92, 68, 30, .42) 46% 54%, transparent 54%),
        linear-gradient(135deg, #F4E4BC 0%, #CBA866 52%, #EAD5A7 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5);
}
.kbt-card__chip {
    grid-area: 2 / 1;
    width: 48px;
    width: 11.5cqw;
    border-radius: 7px;
    border-radius: 1.7cqw;
}
.kbt-card__name {
    grid-area: 3 / 1;
    align-self: end;
    font-family: "Cormorant Garamond", var(--font-serif);
    font-size: 19px;
    font-size: 4.6cqw;
    font-style: italic;
    font-weight: 500;
    line-height: 1;
}
.kbt-card__tier {
    grid-area: 3 / 2;
    align-self: end;
    font-size: 12px;
    font-size: 2.9cqw;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .32em;
}
@keyframes kbt-sheen {
    0% { background-position: 130% 0; }
    40%, 100% { background-position: -30% 0; }
}
@keyframes kbt-float {
    from { transform: translateY(-6px); }
    to { transform: translateY(6px); }
}
@media (prefers-reduced-motion: no-preference) {
    .kbt-cards { animation: kbt-float 9s ease-in-out infinite alternate; }
}
@media (max-width: 959px) {
    .pub-hero__art { width: min(100%, 420px); margin-inline: auto; }
}

/* 7. Stats band -------------------------------------------------------------- */
.pub-stats {
    --p-bg: #0B0A08;
    padding-block: clamp(56px, 7vw, 100px);
    border-top: 1px solid rgba(216, 195, 156, .14);
}
.pub-stats__grid {
    display: grid;
    gap: 1px;
    border: 1px solid var(--p-rule);
    background: var(--p-rule);
}
.pub-stats__grid > * {
    padding: 22px 20px 24px;
    background: var(--p-bg);
}
@media (min-width: 640px) {
    .pub-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pub-stats__grid > * { padding: 32px 28px; }
}
@media (min-width: 1200px) {
    .pub-stats__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .pub-stats__grid > * { padding: 32px 26px; }
}
.pub-stat { display: flex; flex-direction: column; gap: 10px; }
.pub-stat__value {
    margin: 0;
    color: var(--gold-soft);
    font-family: "Cormorant Garamond", var(--font-serif);
    font-size: clamp(38px, 4.2vw, 54px);
    font-weight: 500;
    line-height: 1;
    letter-spacing: -.01em;
}
.pub-stat__label { margin: 0; color: var(--p-fg); font-size: 15px; line-height: 1.55; }
.pub-stat__src {
    margin: auto 0 0;
    padding-top: 6px;
    color: var(--p-fg3);
    font-size: 12px;
    line-height: 1.55;
}
.pub-stat__src a {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: rgba(216, 195, 156, .45);
    text-underline-offset: 3px;
}
.pub-stat__src a:hover { color: var(--gold-soft); }
.pub-stat__date { display: block; }
.pub-stat__src a { display: inline-block; padding-block: 3px; }   /* 24px+ target */
.pub-stats__more { margin-top: 22px; }
/* Value, label and source rows line up across a row of figures */
@supports (grid-template-rows: subgrid) {
    .pub-stats__grid > .pub-stat { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 10px; align-content: start; }
    .pub-stats__grid > .pub-stats__intro { grid-row: span 3; }
    .pub-stats__grid > .pub-stat > .pub-stat__src { margin: 0; }
}
html:is(:lang(ja), :lang(zh)) :is(.pub-stat__label, .pub-sources, .pub-facts dd, .pub-table, .rs-journey__steps li, .pub-checks li) { line-height: 1.75; }

/* 8. Feature lists & rings ---------------------------------------------------- */
.pub-ring {
    position: relative;
    display: inline-grid;
    place-items: center;
    flex: none;
    width: 52px;
    height: 52px;
    border: 1px solid var(--p-line);
    border-radius: 50%;
    color: var(--p-gold);
}
.pub-ring::after {
    content: "";
    position: absolute;
    inset: 4px;
    border: 1px solid var(--p-rule);
    border-radius: 50%;
}
.pub-ring .ico { width: 22px; height: 22px; }
.pub-ring--lg { width: 60px; height: 60px; }

.pub-features {
    display: grid;
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--p-rule);
}
.pub-feature {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    column-gap: 18px;
    row-gap: 8px;
    padding: 26px 0 28px;
    border-bottom: 1px solid var(--p-rule);
}
.pub-feature .pub-ring { grid-row: 1 / span 2; align-self: start; }
.pub-feature__title {
    align-self: center;
    margin: 0;
    color: var(--p-fg);
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 600;
    line-height: 1.25;
}
.pub-feature__body { grid-column: 2; margin: 0; color: var(--p-fg2); font-size: 15px; line-height: 1.7; }
@media (min-width: 720px) {
    .pub-features { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(32px, 4.5vw, 72px); }
    .pub-feature { grid-template-columns: minmax(0, 1fr); align-content: start; padding: 36px 0 40px; }
    .pub-feature .pub-ring { grid-row: auto; margin-bottom: 14px; }
    .pub-feature__title { align-self: start; }
    .pub-feature__body { grid-column: 1; }
}
@media (min-width: 1100px) {
    .pub-features { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .pub-features--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 40px; }
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-feature__title { font-size: 18.5px; line-height: 1.45; }

/* Safeguards strip (landing, under the standard): compact list, no rings */
.pub-guards {
    margin-top: clamp(48px, 6vw, 80px);
    padding: clamp(26px, 3.6vw, 44px);
    border: 1px solid var(--p-rule);
    border-radius: 22px;
    background: var(--paper);
}
.pub-guards__title {
    margin: 0 0 22px;
    color: var(--p-fg);
    font-family: var(--font-serif);
    font-size: clamp(24px, 2.4vw, 30px);
    font-weight: 500;
    line-height: 1.25;
}
.pub-guards__list { display: grid; gap: 22px 40px; margin: 0; padding: 0; list-style: none; }
.pub-guards__list li { position: relative; padding-inline-start: 24px; }
.pub-guards__list li::before {
    content: "";
    position: absolute;
    inset-inline-start: 2px;
    top: .62em;
    width: 7px;
    height: 7px;
    border: 1px solid var(--gold);
    transform: rotate(45deg);
}
.pub-guards__name { margin: 0 0 6px; color: var(--p-fg); font-size: 16px; font-weight: 600; line-height: 1.45; }
.pub-guards__body { margin: 0; color: var(--p-fg2); font-size: 14.5px; line-height: 1.7; }
@media (min-width: 720px) {
    .pub-guards__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
    .pub-guards { display: grid; grid-template-columns: minmax(0, .26fr) minmax(0, 1fr); column-gap: 56px; }
    .pub-guards__title { margin: 0; }
}

.pub-checks { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pub-checks li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 12px;
    color: var(--p-fg2);
    font-size: 14.5px;
    line-height: 1.6;
}
.pub-checks .ico { width: 16px; height: 16px; margin-top: 4px; color: var(--p-gold); }

/* 9. Steps ------------------------------------------------------------------- */
.pub-steps {
    display: grid;
    max-width: 1120px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}
.pub-step {
    position: relative;
    display: grid;
    grid-template-columns: 60px minmax(0, 1fr);
    align-content: start;
    column-gap: 20px;
    padding-bottom: 40px;
}
.pub-step:last-child { padding-bottom: 0; }
.pub-step::before {
    content: "";
    position: absolute;
    left: 30px;
    top: 72px;
    bottom: 12px;
    width: 1px;
    background: linear-gradient(180deg, rgba(216, 195, 156, .5), rgba(216, 195, 156, .05));
}
.pub-step:last-child::before { display: none; }
.pub-step .pub-ring { grid-row: 1 / span 3; }
/* Step number ("01"): steps, resort safety list, concierge "how it works" */
.pub-step__n,
.rs-safety__n,
.cc-how__n {
    color: var(--p-gold);
    font-family: "Cormorant Garamond", var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: .06em;
    font-variant-numeric: lining-nums;
}
.pub-step__n { padding-top: 6px; }
.pub-step__title {
    margin: 8px 0 0;
    color: var(--p-fg);
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 600;
    line-height: 1.25;
}
.pub-step__body { margin: 10px 0 0; color: var(--p-fg2); font-size: 15px; line-height: 1.7; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-step__title { font-size: 19.5px; line-height: 1.45; }
@media (min-width: 900px) {
    .pub-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 36px; }
    .pub-step { grid-template-columns: minmax(0, 1fr); padding-bottom: 0; }
    .pub-step .pub-ring { grid-row: auto; margin-bottom: 26px; }
    .pub-step::before {
        left: 76px;
        right: -24px;
        top: 30px;
        bottom: auto;
        width: auto;
        height: 1px;
        background: linear-gradient(90deg, rgba(216, 195, 156, .5), rgba(216, 195, 156, .06));
    }
    .pub-step__n { padding-top: 0; }
    @supports (grid-template-rows: subgrid) {
        .pub-step { grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; }
    }
}

/* 10. Tier cards -------------------------------------------------------------- */
.pub-tiers {
    display: grid;
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}
@media (max-width: 719px) {
    .pub-tiers {
        grid-auto-columns: 82%;
        grid-auto-flow: column;
        gap: 16px;
        margin-inline: calc(-1 * var(--pub-gutter));
        padding: 6px var(--pub-gutter) 22px;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-padding-inline: var(--pub-gutter);
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }
    .pub-tiers::-webkit-scrollbar { display: none; }
    .pub-tier { scroll-snap-align: start; }
}
@media (min-width: 720px) {
    .pub-tiers { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 28px; }
}
/* Position dots under a swipe row (public.js marks the visible card) */
.pub-dots { display: none; justify-content: center; gap: 8px; margin-top: 2px; }
.pub-dots span { width: 6px; height: 6px; border-radius: 3px; background: var(--p-rule2); transition: width .3s var(--ease), background-color .3s var(--ease); }
.pub-dots span.is-on { width: 20px; background: var(--p-gold); }
@media (max-width: 719px) {
    .pub-tiers + .pub-dots { display: flex; }
}
@media (min-width: 1100px) {
    .pub-tiers { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
}
.pub-tier { display: flex; flex-direction: column; gap: 22px; }
.pub-tier__face {
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr auto;
    aspect-ratio: 1.586;
    overflow: hidden;
    padding: 7% 8%;
    border: 1px solid rgba(21, 19, 15, .08);
    border-radius: 16px;
    color: rgba(36, 28, 18, .9);
    text-shadow: 0 1px 0 rgba(255, 255, 255, .3);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 1px 2px rgba(21, 19, 15, .08), 0 24px 44px -26px rgba(21, 19, 15, .5);
    container-type: inline-size;
}
.pub-tier__face::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-radial-gradient(circle at 112% -18%, transparent 0 8px, rgba(255, 255, 255, .18) 8px 9px),
        linear-gradient(112deg, transparent 30%, rgba(255, 255, 255, .34) 46%, transparent 60%);
    mix-blend-mode: soft-light;
    pointer-events: none;
}
.pub-metal--silver { background: var(--finish-silver); }
.pub-metal--gold { background: var(--finish-gold); }
.pub-metal--platinum { background: linear-gradient(135deg, #DCE0E6 0%, #8F97A4 38%, #E7EAEF 58%, #6C7482 100%); }
.pub-metal--diamond {
    border-color: rgba(216, 195, 156, .3);
    background: var(--finish-diamond);
    color: var(--gold-soft);
    text-shadow: none;
}
.pub-metal--diamond::before {
    background:
        repeating-radial-gradient(circle at 112% -18%, transparent 0 8px, rgba(216, 195, 156, .06) 8px 9px),
        linear-gradient(115deg, transparent 32%, rgba(216, 195, 156, .14) 47%, rgba(160, 182, 222, .08) 56%, transparent 68%);
    mix-blend-mode: normal;
}
.pub-tier__mono {
    font-family: "Cormorant Garamond", var(--font-serif);
    font-size: 22px;
    font-size: 8cqw;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .04em;
}
.pub-tier__chip { width: 34px; width: 12cqw; border-radius: 5px; border-radius: 1.8cqw; }
.pub-tier__name {
    margin: 0;
    font-family: var(--font-sans);
    font-size: 15px;
    font-size: 5.4cqw;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .3em;
}
.pub-tier__body { padding-top: 18px; border-top: 1px solid var(--p-rule); }
.pub-tier__tagline {
    margin: 0 0 16px;
    color: var(--p-fg);
    font-family: var(--font-serif);
    font-size: 22px;
    font-style: italic;
    font-weight: 500;
    line-height: 1.3;
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-tier__tagline { font-size: 17px; font-style: normal; font-weight: 600; line-height: 1.5; }

/* 11. Cards & grids ----------------------------------------------------------- */
.pub-grid {
    display: grid;
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}
@media (min-width: 720px) {
    .pub-grid--2,
    .pub-grid--3,
    .pub-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
}
@media (min-width: 1100px) {
    .pub-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
    .pub-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.pub-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 30px 28px 24px;
    border: 1px solid var(--p-rule);
    border-radius: 20px;
    background: var(--p-card);
    transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.pub-card::before {
    content: "";
    position: absolute;
    left: 28px;
    right: 28px;
    top: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--p-line), transparent);
}
@media (hover: hover) {
    .pub-card:hover { border-color: var(--p-rule2); box-shadow: 0 20px 40px -30px rgba(21, 19, 15, .35); }
}
.pub-card__title {
    margin: 6px 0 0;
    color: var(--p-fg);
    font-family: var(--font-serif);
    font-size: 23px;
    font-weight: 600;
    line-height: 1.25;
}
.pub-card__body { margin: 0; color: var(--p-fg2); font-size: 15px; line-height: 1.7; }
.pub-card__foot {
    display: flex;
    align-items: center;
    align-self: stretch;
    gap: 10px;
    margin: auto 0 0;
    padding-top: 16px;
    border-top: 1px solid var(--p-rule);
    color: var(--p-gold);
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: .02em;
}
.pub-card__foot::before {
    content: "";
    flex: none;
    width: 6px;
    height: 6px;
    border: 1px solid currentColor;
    transform: rotate(45deg);
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-card__title { font-size: 19px; line-height: 1.45; }
@media (max-width: 719px) {
    .pub-card { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; column-gap: 16px; row-gap: 12px; padding: 22px 22px 18px; }
    .pub-card > .pub-ring { width: 44px; height: 44px; }
    .pub-card > .pub-ring .ico { width: 20px; height: 20px; }
    .pub-card__title { margin: 0; }
    .pub-card > :not(.pub-ring):not(.pub-card__title) { grid-column: 1 / -1; }
    .pub-card::before { left: 22px; right: 22px; }
}

/* 12. Resort teaser ------------------------------------------------------------ */
.pub-resort {
    overflow: hidden;
    background-image: radial-gradient(46% 70% at 82% 50%, rgba(201, 164, 101, .14), transparent 72%);
}
.pub-resort .pub-head { margin-bottom: 36px; }
@media (min-width: 960px) {
    .pub-arch { width: min(100%, 380px); }
}
.pub-arch {
    position: relative;
    justify-self: center;
    width: min(100%, 300px);
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border: 1px solid rgba(216, 195, 156, .42);
    border-radius: 999px 999px 8px 8px;
    background: linear-gradient(180deg, #121010 0%, #1D1914 34%, #3A2D1C 58%, #120F0C 58.2%, #0D0B09 100%);
    box-shadow: inset 0 0 0 9px var(--pub-noir), inset 0 0 0 10px rgba(216, 195, 156, .2), 0 40px 90px -50px rgba(201, 164, 101, .35);
}
.pub-arch__sun {
    position: absolute;
    left: 50%;
    top: 58%;
    width: 46%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle at 50% 38%, #F7E9C8 0%, #DDBE82 48%, #A8844D 100%);
    box-shadow: 0 0 90px 20px rgba(216, 184, 120, .22);
    transform: translate(-50%, -50%);
    clip-path: inset(-60% -60% 50% -60%);
}
.pub-arch__sea {
    position: absolute;
    left: 10px;
    right: 10px;
    top: 58.2%;
    bottom: 10px;
    background:
        linear-gradient(90deg, transparent 32%, rgba(232, 206, 150, .3) 50%, transparent 68%),
        repeating-linear-gradient(180deg, transparent 0 8px, rgba(216, 195, 156, .3) 8px 9px);
    -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 92%);
    mask-image: linear-gradient(180deg, #000 0%, transparent 92%);
}

/* 13. Facts, callouts, prose, tables, sources ------------------------------- */
.pub-callout {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 14px;
    margin: 0 0 28px;
    padding: 18px 20px;
    border: 1px solid rgba(168, 132, 77, .3);
    border-inline-start: 2px solid var(--gold);
    border-radius: 4px 14px 14px 4px;
    background: var(--gold-pale);
    color: var(--ink-2);
    font-size: 14.5px;
    line-height: 1.65;
}
.pub-callout p { margin: 0; }
.pub-callout .ico { width: 20px; height: 20px; margin-top: 2px; color: var(--gold-deep); }
.pub-callout--warn { border-color: rgba(154, 107, 31, .3); border-inline-start-color: var(--warning); background: var(--warning-pale); }
.pub-callout--warn .ico { color: var(--warning); }
.pub-noir .pub-callout { border-color: rgba(216, 195, 156, .2); border-inline-start-color: var(--gold-soft); background: rgba(216, 195, 156, .06); color: var(--p-fg2); }
.pub-noir .pub-callout .ico { color: var(--gold-soft); }

.pub-facts { margin: 0; border-top: 1px solid var(--p-rule2); }
.pub-facts__row {
    display: grid;
    gap: 6px;
    padding: 18px 0;
    border-bottom: 1px solid var(--p-rule);
}
.pub-facts dt {
    color: var(--p-gold);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .14em;
    line-height: 1.5;
    text-transform: uppercase;
}
.pub-facts dd { margin: 0; color: var(--p-fg); font-size: 15.5px; line-height: 1.6; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-facts dt { font-size: 13px; letter-spacing: .02em; }
@media (min-width: 640px) {
    .pub-facts__row { grid-template-columns: minmax(0, 34%) minmax(0, 1fr); gap: 24px; align-items: baseline; }
}

.pub-prose { max-width: 44em; color: var(--p-fg2); font-size: 16.5px; line-height: 1.8; }
.pub-prose :where(p, ul, ol) { margin: 0; }
.pub-prose :where(ol) { padding-inline-start: 1.3em; }
.pub-prose > * + * { margin-top: 1em; }
.pub-prose li + li { margin-top: .5em; }
.pub-prose li::marker { color: var(--p-gold); }
.pub-prose ul { padding: 0; list-style: none; }
.pub-prose ul > li { position: relative; padding-inline-start: 24px; }
.pub-prose ul > li::before {
    content: "";
    position: absolute;
    inset-inline-start: 3px;
    top: .72em;
    width: 6px;
    height: 6px;
    border: 1px solid var(--p-line);
    transform: rotate(45deg);
}
.pub-prose strong { color: var(--p-fg); font-weight: 600; }
.pub-prose a { color: var(--p-gold); }

.pub-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--p-rule);
    border-radius: 16px;
    -webkit-overflow-scrolling: touch;
}
.pub-table { width: 100%; border-collapse: collapse; color: var(--p-fg2); font-size: 14.5px; line-height: 1.6; }
.pub-table th,
.pub-table td { padding: 14px 18px; border-bottom: 1px solid var(--p-rule); text-align: start; vertical-align: top; }
.pub-table thead th {
    background: rgba(168, 132, 77, .07);
    color: var(--p-gold);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    white-space: nowrap;
}
.pub-table tbody th { color: var(--p-fg); font-weight: 600; }
.pub-table tbody tr:last-child > * { border-bottom: 0; }
@media (max-width: 559px) {
    .pub-table { min-width: 540px; }
}

.pub-sources { display: grid; gap: 6px; margin: 16px 0 0; padding: 0; list-style: none; color: var(--p-fg3); font-size: 12.5px; line-height: 1.55; }
.pub-sources a { display: inline-block; padding-block: 3px; color: inherit; text-decoration-color: var(--p-line); text-underline-offset: 3px; }
.pub-sources a:hover { color: var(--p-gold); }

/* 14. FAQ -------------------------------------------------------------------- */
@media (min-width: 960px) {
    .pub-sticky { position: sticky; top: calc(var(--pub-header-h) + 40px); }
}
.pub-faq__aside .pub-head { margin-bottom: 28px; }
.pub-faq { border-top: 1px solid var(--p-rule2); }
.pub-faq__item { border-bottom: 1px solid var(--p-rule); }
.pub-faq__item summary {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 0;
    color: var(--p-fg);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.5;
    list-style: none;
    cursor: pointer;
    transition: color var(--dur) var(--ease);
}
.pub-faq__item summary::-webkit-details-marker { display: none; }
@media (hover: hover) {
    .pub-faq__item summary:hover { color: var(--p-gold); }
}
.pub-faq__icon {
    position: relative;
    flex: none;
    width: 28px;
    height: 28px;
    border: 1px solid var(--p-line);
    border-radius: 50%;
}
.pub-faq__icon::before,
.pub-faq__icon::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 10px;
    height: 1px;
    background: var(--p-gold);
    transform: translate(-50%, -50%);
    transition: transform .25s var(--ease);
}
.pub-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.pub-faq__item[open] .pub-faq__icon::after { transform: translate(-50%, -50%); }
.pub-faq__a { padding: 0 48px 26px 0; color: var(--p-fg2); font-size: 15.5px; line-height: 1.75; }
.pub-faq__a p { margin: 0; }

/* 15. Closing CTA ------------------------------------------------------------- */
.pub-cta {
    overflow: hidden;
    padding-block: clamp(96px, 12vw, 168px);
    background-image:
        radial-gradient(56% 80% at 50% 108%, rgba(201, 164, 101, .26), transparent 72%),
        linear-gradient(180deg, #0F0E0C 0%, #12100C 100%);
}
.pub-cta::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 100%;
    z-index: -1;
    width: max(860px, 90vw);
    aspect-ratio: 1;
    border: 1px solid rgba(216, 195, 156, .14);
    border-radius: 50%;
    transform: translate(-50%, -36%);
    outline: 1px solid rgba(216, 195, 156, .07);
    outline-offset: 64px;
    pointer-events: none;
}
.pub-cta .pub-head { margin-bottom: 0; max-width: 860px; }
.pub-cta .pub-title { font-size: clamp(38px, 5.6vw, 70px); }
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-cta .pub-title { font-size: clamp(30px, 4.2vw, 52px); }
.pub-cta__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 40px; }

/* 16. Page hero for inner pages ------------------------------------------------ */
.pub-pagehero {
    overflow: hidden;
    padding: clamp(56px, 9vw, 120px) 0 clamp(56px, 7vw, 96px);
    background-image: radial-gradient(52% 90% at 88% 0%, rgba(201, 164, 101, .18), transparent 72%);
}
.pub-pagehero .pub-head { margin-bottom: 0; }
.in-hero,
.fq-hero,
.cc-hero { padding: clamp(48px, 7vw, 88px) 0 clamp(44px, 5.5vw, 72px); }
.pub-pagehero .pub-title { font-size: clamp(42px, 6vw, 72px); }
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-pagehero .pub-title { font-size: clamp(32px, 4.6vw, 56px); }

/* 17. Footer ------------------------------------------------------------------ */
.pub-footer {
    padding: clamp(56px, 7vw, 88px) 0 calc(32px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(216, 195, 156, .16);
    background: #0B0A08;
    color: rgba(243, 238, 228, .7);
    font-size: 14px;
}
.pub-footer a { color: rgba(243, 238, 228, .84); text-decoration: none; transition: color var(--dur) var(--ease); }
.pub-footer a:hover { color: var(--gold-soft); }
.pub-footer__top {
    display: grid;
    gap: 40px;
    padding-bottom: 44px;
    border-bottom: 1px solid rgba(216, 195, 156, .12);
}
@media (min-width: 900px) {
    .pub-footer__top { grid-template-columns: minmax(0, 460px) auto auto; justify-content: start; column-gap: clamp(64px, 9vw, 144px); }
}
@media (min-width: 560px) {
    .pub-footer__links { grid-template-columns: repeat(2, minmax(140px, auto)); column-gap: 56px; }
}
.pub-footer .pub-brand { margin: 0; }
.pub-footer__tagline {
    max-width: 24em;
    margin: 20px 0 0;
    color: rgba(243, 238, 228, .8);
    font-family: var(--font-serif);
    font-size: 21px;
    font-style: italic;
    font-weight: 500;
    line-height: 1.45;
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .pub-footer__tagline { font-size: 16px; font-style: normal; line-height: 1.7; }
.pub-footer__h {
    margin: 0 0 16px;
    color: var(--gold-soft);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .18em;
    line-height: 1.5;
    text-transform: uppercase;
}
.pub-footer__links,
.pub-footer__contact { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pub-footer__links { gap: 0; }
.pub-footer__links a { display: inline-flex; align-items: center; min-height: 44px; }   /* 44px targets */
.pub-footer__contact span { color: rgba(243, 238, 228, .56); }
.pub-footer__legal { padding: 34px 0; border-bottom: 1px solid rgba(216, 195, 156, .12); }
.pub-footer__notice { max-width: 75ch; margin: 0; color: rgba(243, 238, 228, .6); font-size: 12.5px; line-height: 1.85; }
.pub-footer__biz { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 18px 0 0; font-size: 12.5px; }
.pub-footer__biz div { display: flex; gap: 8px; }
.pub-footer__biz dt { color: rgba(243, 238, 228, .56); }
.pub-footer__biz dd { margin: 0; color: rgba(243, 238, 228, .8); }
.pub-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px 24px;
    padding-top: 26px;
    color: rgba(243, 238, 228, .56);
    font-size: 12.5px;
}
.pub-footer__bottom p { margin: 0; }
.pub-footer__lang { display: flex; flex-wrap: wrap; gap: 4px; margin-inline-start: -10px; }
.pub-footer__lang a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: var(--radius-pill); color: rgba(243, 238, 228, .7); }
.pub-footer__lang a[aria-current="true"] { background: rgba(216, 195, 156, .1); color: var(--gold-soft); }
@media (min-width: 640px) {
    .pub-footer__lang { margin-inline-start: 0; }
}

/* 18. Reveal on scroll (public.js adds .pub-reveal to <html>) ----------------- */
.pub-reveal [data-reveal] {
    transition: opacity .9s var(--ease), transform .9s var(--ease);
    transition-delay: calc(var(--i, 0) * 90ms);
}
.pub-reveal [data-reveal]:not(.is-in) {
    opacity: 0;
    transform: translate3d(0, 22px, 0);
}

@media (prefers-reduced-motion: reduce) {
    .pub-reveal [data-reveal] { opacity: 1 !important; transform: none !important; }
    .kbt-cards,
    .kbt-card--gold::after { animation: none !important; }
    .pub-dots span { transition: none; }
}

/* == page: shared chips (token, faq) ============================================ */
.pub-chips ul,
ul.pub-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.pub-chips a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 8px 16px;
    border: 1px solid var(--p-rule2);
    border-radius: var(--radius-pill);
    color: var(--p-fg2);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
@media (hover: hover) {
    .pub-chips a:hover { border-color: var(--p-line); color: var(--p-fg); }
}
.pub-chips__n { color: var(--p-gold); font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
/* Sticky in-page chip bar under the header (token, resort); the row scrolls sideways and fades at the edge */
body.has-tocbar { --pub-tocbar-h: 61px; }
html:has(body.has-tocbar) { scroll-padding-top: calc(var(--pub-header-h) + 61px); }
.pub-tocbar {
    position: sticky;
    top: var(--pub-header-h);
    z-index: 40;
    border-bottom: 1px solid var(--line);
    background: rgba(246, 242, 234, .94);
    -webkit-backdrop-filter: saturate(1.2) blur(10px);
    backdrop-filter: saturate(1.2) blur(10px);
}
.pub-tocbar .pub-wrap { padding-inline: 0; }
.pub-tocbar .pub-tocbar__list {
    flex-wrap: nowrap;
    padding: 10px var(--pub-gutter);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent);
    mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent);
}
.pub-tocbar .pub-tocbar__list::-webkit-scrollbar { display: none; }
.pub-tocbar .pub-chips a { background: var(--paper); }
body.has-tocbar .pub-sticky { top: calc(var(--pub-header-h) + var(--pub-tocbar-h) + 32px); }
/* == end page: shared chips == */

/* == page: token =================================================================== */
.tk-hero .pub-head { max-width: 860px; }
/* ja title breaks at its <wbr> ("メンバーシップ / リワード"); last resort for any single long phrase */
.tk-hero .pub-title { overflow-wrap: anywhere; }
.tk-hero__grid { display: grid; gap: 36px; }
.tk-status { max-width: 760px; margin: 0; }
.tk-status strong { margin-inline-end: 4px; color: var(--p-fg); font-weight: 600; }
@media (min-width: 960px) {
    .tk-hero__grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); column-gap: clamp(48px, 6vw, 96px); align-items: end; }
    .tk-status { padding: 24px 26px; border-radius: 6px 18px 18px 6px; }
}

.tk-sec { padding-block: clamp(72px, 8.5vw, 120px); }
.tk-sec .pub-split { gap: clamp(24px, 6vw, 96px); }
@media (min-width: 960px) {
    .tk-sec .pub-split--top { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
}
.tk-sec .pub-split > .pub-sticky > .pub-head { margin-bottom: 0; }
.tk-sec .pub-head--center { margin-bottom: clamp(40px, 5vw, 64px); }
.tk-sec__body > * + * { margin-top: 32px; }
.tk-sec .pub-prose { font-size: 17px; }
/* .pub-prose p { margin: 0 } outranks .pub-prose > * + *; restore paragraph spacing */
.tk-sec .pub-prose > * + * { margin-top: 1em; }

/* Content tables stack into labelled rows on phones */
@media (max-width: 559px) {
    .pub-table--stack { min-width: 0; }
    .pub-table--stack thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }
    .pub-table--stack tr { display: block; padding: 18px 20px; border-bottom: 1px solid var(--p-rule); }
    .pub-table--stack tbody tr:last-child { border-bottom: 0; }
    .pub-table--stack th,
    .pub-table--stack td { display: block; padding: 0; border: 0; }
    .pub-table--stack tbody th { margin-bottom: 10px; font-size: 16px; }
    .pub-table--stack td { display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 1fr); gap: 12px; padding: 3px 0; }
    .pub-table--stack td::before { content: attr(data-label); color: var(--p-fg3); font-size: 12.5px; line-height: 1.85; }
}

/* Roadmap timeline */
.tk-roadmap__note { margin-top: 24px; color: var(--p-fg3); font-size: 15px; }
.tk-timeline { margin: 0; padding: 0; list-style: none; }
.tk-timeline__item { position: relative; padding: 0 0 40px 40px; }
.tk-timeline__item:last-child { padding-bottom: 0; }
.tk-timeline__item::before {
    content: "";
    position: absolute;
    left: 1px;
    top: 9px;
    width: 10px;
    height: 10px;
    border: 1px solid var(--gold);
    background: var(--p-bg);
    transform: rotate(45deg);
}
.tk-timeline__item:first-child::before { background: var(--gold); }
.tk-timeline__item:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 6px;
    top: 26px;
    bottom: 4px;
    width: 1px;
    background: linear-gradient(180deg, var(--p-line), var(--p-rule));
}
.tk-timeline__period {
    margin: 0 0 8px;
    color: var(--p-gold);
    font-family: "Cormorant Garamond", var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: .02em;
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .tk-timeline__period { font-family: var(--font-serif); font-size: 22px; line-height: 1.3; letter-spacing: 0; }
.tk-timeline__body { max-width: 36em; margin: 0; color: var(--p-fg2); font-size: 16px; line-height: 1.75; }

/* Risk and legal notice */
.tk-risk__panel {
    position: relative;
    padding: clamp(28px, 5vw, 60px);
    border: 1px solid var(--line-strong);
    border-radius: 24px;
    background: var(--ivory);
    box-shadow: 0 1px 2px rgba(21, 19, 15, .04), 0 18px 40px -34px rgba(21, 19, 15, .3);
}
.tk-risk__panel::before {
    content: "";
    position: absolute;
    left: clamp(28px, 5vw, 60px);
    right: clamp(28px, 5vw, 60px);
    top: -1px;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.tk-risk__head {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 28px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--p-rule);
}
.tk-risk__body { max-width: none; color: var(--ink-2); font-size: 16px; }
@media (min-width: 960px) {
    .tk-risk__body { columns: 2; column-gap: 56px; }
    .tk-risk__body > p { break-inside: avoid; margin: 0 0 1em; }
    .tk-sec .tk-risk__body > * + * { margin-top: 0; }
}
/* == end page: token == */

/* == page: insights ================================================================ */
.in-asof {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 32px 0 0;
    padding: 8px 18px 8px 14px;
    border: 1px solid var(--p-rule2);
    border-radius: var(--radius-pill);
    color: var(--p-fg2);
    font-size: 14px;
    line-height: 1.4;
}
.in-asof .ico { width: 16px; height: 16px; color: var(--gold-soft); }
.in-asof span { color: var(--p-gold); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.in-asof time { color: var(--p-fg); font-variant-numeric: tabular-nums; }

.in-facts { padding-block: clamp(32px, 5vw, 72px) clamp(40px, 5vw, 72px); }
.in-list { margin: 0; padding: 0; list-style: none; }
.in-item { border-bottom: 1px solid var(--p-rule); scroll-margin-top: 16px; }
.in-item:last-child { border-bottom: 0; }
.in-item__grid { display: grid; gap: 20px; padding-block: clamp(40px, 5.5vw, 72px); }
.in-item__head { display: grid; align-content: start; gap: 14px; }
@media (min-width: 960px) {
    .in-item__grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(48px, 6vw, 96px); }
    .in-item__head { position: sticky; top: calc(var(--pub-header-h) + 32px); align-self: start; }
}
.in-item__title {
    margin: 0;
    color: var(--p-fg);
    font-family: var(--font-serif);
    font-size: clamp(30px, 3.2vw, 42px);
    font-weight: 500;
    line-height: 1.12;
    letter-spacing: -.01em;
}
.in-item__lead {
    margin: 0;
    color: var(--p-fg);
    font-family: var(--font-serif);
    font-size: clamp(21px, 2vw, 25px);
    font-weight: 500;
    line-height: 1.5;
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .in-item__title { font-size: clamp(24px, 2.5vw, 32px); line-height: 1.4; letter-spacing: -.02em; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .in-item__lead { font-family: var(--font-sans); font-size: clamp(17.5px, 1.5vw, 19px); line-height: 1.75; letter-spacing: -.01em; }
.in-bullets { display: grid; gap: 12px; margin: 24px 0 0; padding: 0; list-style: none; }
.in-bullets li { position: relative; padding-inline-start: 24px; color: var(--p-fg2); font-size: 15.5px; line-height: 1.75; }
.in-bullets li::before {
    content: "";
    position: absolute;
    inset-inline-start: 3px;
    top: .7em;
    width: 6px;
    height: 6px;
    border: 1px solid var(--gold);
    transform: rotate(45deg);
}
.in-sources { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--p-rule); }
.in-sources__h { margin: 0; color: var(--p-gold); font-size: 11.5px; font-weight: 600; letter-spacing: .16em; line-height: 1.5; text-transform: uppercase; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .in-sources__h { font-size: 12.5px; letter-spacing: .04em; }
.in-sources .pub-sources { margin-top: 10px; gap: 8px; }
.in-sources .pub-sources a { text-decoration: underline; }
.in-sources .pub-sources .ico { width: 12px; height: 12px; margin-inline-start: 5px; vertical-align: -1px; }
.in-sources time { margin-inline-start: 6px; font-variant-numeric: tabular-nums; white-space: nowrap; }
/* == end page: insights == */

/* == page: faq ===================================================================== */
.fq { padding-top: clamp(24px, 5vw, 88px); }
.fq__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.fq-nav__label { margin: 0 0 14px; color: var(--p-gold); font-size: 11.5px; font-weight: 600; letter-spacing: .16em; line-height: 1.5; text-transform: uppercase; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .fq-nav__label { font-size: 13px; letter-spacing: .04em; }
.fq-group { scroll-margin-top: 76px; }
.fq-group + .fq-group { margin-top: clamp(48px, 6vw, 80px); }
.fq-group__title {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 18px;
    color: var(--p-fg);
    font-family: var(--font-serif);
    font-size: clamp(26px, 2.6vw, 34px);
    font-weight: 500;
    line-height: 1.25;
}
.fq-group__title::before {
    content: "";
    flex: none;
    width: 7px;
    height: 7px;
    border: 1px solid var(--gold);
    transform: rotate(45deg);
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .fq-group__title { font-size: clamp(22px, 2.2vw, 28px); }
@media (max-width: 959px) {
    .fq-nav {
        position: sticky;
        top: var(--pub-header-h);
        z-index: 5;
        margin-inline: calc(-1 * var(--pub-gutter));
        padding-block: 10px;
        border-bottom: 1px solid var(--p-rule);
        background: rgba(246, 242, 234, .94);
        -webkit-backdrop-filter: saturate(1.2) blur(10px);
        backdrop-filter: saturate(1.2) blur(10px);
    }
    .fq-nav__label {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }
    .fq-nav .pub-chips {
        flex-wrap: nowrap;
        padding-inline: var(--pub-gutter);
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
    }
    .fq-nav .pub-chips::-webkit-scrollbar { display: none; }
    .fq-nav .pub-chips {
        -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent);
        mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent);
    }
    .fq-nav .pub-chips a { background: var(--paper); }
}
@media (min-width: 960px) {
    .fq__grid { grid-template-columns: minmax(0, .62fr) minmax(0, 1.38fr); gap: clamp(48px, 6vw, 96px); align-items: start; }
    .fq-nav { position: sticky; top: calc(var(--pub-header-h) + 40px); }
    .fq-nav .pub-chips { display: block; border-top: 1px solid var(--p-rule2); }
    .fq-nav .pub-chips a {
        display: flex;
        justify-content: space-between;
        min-height: 0;
        padding: 16px 0;
        border: 0;
        border-bottom: 1px solid var(--p-rule);
        border-radius: 0;
        color: var(--p-fg);
        font-size: 15.5px;
        white-space: normal;
    }
    .fq-nav .pub-chips a:hover { color: var(--p-gold); }
    .fq-group { scroll-margin-top: 32px; }
}
/* == end page: faq == */

/* == page: resort ================================================================== */
/* Hero: copy + arch art (desktop), in-page chips */
.rs-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: center; }
.rs-hero .pub-head { margin-bottom: 0; }
.rs-hero .pub-hero__ctas { margin-top: 36px; }
.rs-hero__art { display: none; }
@media (min-width: 960px) {
    .rs-hero__grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); column-gap: clamp(48px, 6vw, 96px); }
    .rs-hero__art { display: block; justify-self: end; width: min(100%, 330px); }
}

/* Journeys: paper cards; the private journey is a noir "black card" (not on zh). Phones: a swipe row with dots. */
.rs-jgrid { display: grid; gap: 20px; margin: 0; padding: 0; list-style: none; }
@media (max-width: 899px) {
    .rs-jgrid {
        grid-auto-columns: 86%;
        grid-auto-flow: column;
        gap: 14px;
        margin-inline: calc(-1 * var(--pub-gutter));
        padding: 4px var(--pub-gutter) 22px;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-padding-inline: var(--pub-gutter);
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }
    .rs-jgrid::-webkit-scrollbar { display: none; }
    .rs-journey { scroll-snap-align: start; }
    .rs-jgrid + .pub-dots { display: flex; }
}
@media (min-width: 900px) {
    .rs-jgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
}
.rs-journey { display: flex; }
.rs-journey > article {
    --rs-tint: rgba(241, 231, 211, .5);
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: clamp(26px, 3.4vw, 44px);
    border: 1px solid var(--line);
    border-radius: 24px;
    background: var(--paper);
    box-shadow: 0 1px 2px rgba(21, 19, 15, .04), 0 34px 64px -50px rgba(21, 19, 15, .45);
}
.rs-journey > article::after {
    content: "";
    position: absolute;
    left: 36px;
    right: 36px;
    top: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.rs-journey--noir > article {
    --rs-tint: rgba(216, 195, 156, .06);
    border-color: rgba(216, 195, 156, .24);
    background: radial-gradient(120% 70% at 100% 0%, rgba(201, 164, 101, .16), transparent 62%), linear-gradient(165deg, #1E1A15 0%, #0F0E0C 72%);
    box-shadow: 0 40px 70px -46px rgba(0, 0, 0, .85);
}
.rs-journey--noir > article::before { border-radius: inherit; }
.rs-journey--noir > article::after { background: linear-gradient(90deg, transparent, var(--gold-soft), transparent); }
.rs-journey__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 28px; }
.rs-journey__dur {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 6px 14px;
    border: 1px solid var(--p-rule2);
    border-radius: var(--radius-pill);
    color: var(--p-fg2);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
}
.rs-journey__dur .ico { color: var(--p-gold); }
.rs-journey__name {
    margin: 0;
    color: var(--p-fg);
    font-family: var(--font-serif);
    font-size: clamp(34px, 3.3vw, 44px);
    font-weight: 500;
    line-height: 1.06;
    letter-spacing: -.01em;
}
.rs-journey__persona {
    margin: 12px 0 0;
    color: var(--p-fg2);
    font-family: var(--font-serif);
    font-size: 20px;
    font-style: italic;
    font-weight: 500;
    line-height: 1.45;
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .rs-journey__name { font-size: clamp(25px, 2.3vw, 30px); line-height: 1.35; letter-spacing: -.02em; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .rs-journey__persona { font-family: var(--font-sans); font-size: 15.5px; font-style: normal; line-height: 1.7; }
.rs-journey__body { flex: 1; display: flex; flex-direction: column; gap: 26px; margin-top: 30px; padding-top: 28px; border-top: 1px solid var(--p-rule); }
.rs-journey__label {
    margin: 0 0 16px;
    color: var(--p-gold);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .18em;
    line-height: 1.5;
    text-transform: uppercase;
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .rs-journey__label { font-size: 13px; letter-spacing: .04em; }
.rs-journey__steps { margin: 0; padding: 0; list-style: none; }
.rs-journey__steps li { position: relative; padding: 0 0 14px 28px; color: var(--p-fg); font-size: 15px; line-height: 1.6; }
.rs-journey__steps li:last-child { padding-bottom: 0; }
.rs-journey__steps li::before {
    content: "";
    position: absolute;
    left: 1px;
    top: calc(.8em - 4px);
    width: 7px;
    height: 7px;
    border: 1px solid var(--gold);
    transform: rotate(45deg);
}
.rs-journey__steps li:first-child::before { background: var(--gold); }
.rs-journey__steps li:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 5px;
    top: calc(.8em + 7px);
    bottom: calc(-.8em + 7px);
    width: 1px;
    background: linear-gradient(180deg, var(--p-line), var(--p-rule));
}
.rs-journey--noir .rs-journey__steps li::before { border-color: var(--gold-soft); }
.rs-journey--noir .rs-journey__steps li:first-child::before { background: var(--gold-soft); }
.rs-journey__incl { margin-top: auto; padding: 20px 22px 22px; border-radius: 16px; background: var(--rs-tint); }
.rs-journey__incl .rs-journey__label { margin-bottom: 12px; }
.rs-journey__incl .pub-checks { gap: 8px; }

/* Safety (noir): numbered guidance; the 119 line becomes the emergency callout */
.rs-safety .pub-split,
.rs-never .pub-split { gap: clamp(36px, 6vw, 96px); }
.rs-safety .pub-sticky > .pub-head,
.rs-never .pub-sticky > .pub-head { margin-bottom: 0; }
.rs-safety__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--p-rule2); }
.rs-safety__item {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 18px;
    padding: 24px 0;
    border-bottom: 1px solid var(--p-rule);
}
.rs-safety__item p { margin: 0; color: var(--p-fg); font-size: 16.5px; line-height: 1.75; }
.rs-safety__item--sos {
    align-items: center;
    margin-top: 32px;
    padding: 20px 24px 20px 20px;
    border: 1px solid rgba(216, 195, 156, .45);
    border-radius: 18px;
    background: rgba(216, 195, 156, .08);
}
.rs-safety__item--sos p { font-weight: 600; }
.rs-safety__icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--gold-soft);
    color: var(--ink);
}

/* How to request */
.rs-request__cta { display: flex; justify-content: center; margin-top: clamp(48px, 6vw, 72px); }
@media (max-width: 559px) {
    .rs-request__cta .pub-btn { width: 100%; }
}

/* What we never do */
.rs-never__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--p-rule2); }
.rs-never__list li {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 16px;
    padding: 18px 0;
    border-bottom: 1px solid var(--p-rule);
}
.rs-never__list p { margin: 0; color: var(--p-fg); font-size: 16px; line-height: 1.7; }
.rs-never__x {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    margin-top: 1px;
    border: 1px solid var(--p-line);
    border-radius: 50%;
    color: var(--p-gold);
}
/* == end page: resort == */

/* == page: concierge =============================================================== */
.cc-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 28px;
    color: var(--gold-soft);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}
.cc-back:hover { color: #FBF7EF; }
.cc-sec { padding-block: clamp(40px, 6vw, 88px) clamp(80px, 9vw, 120px); }
.cc-layout { display: grid; gap: 40px; align-items: start; }
.cc-main { display: grid; gap: 24px; min-width: 0; }
/* The "how it works" panel comes first in the DOM (above the form on phones), right column on desktop */
@media (max-width: 1023px) {
    .cc-panel { padding: 22px 20px; }
    .cc-panel__title { margin-bottom: 16px; }
    .cc-how { gap: 12px; margin-bottom: 18px; }
}
@media (min-width: 1024px) {
    .cc-layout { grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: clamp(40px, 5vw, 72px); }
    .cc-main { grid-column: 1; grid-row: 1; }
    .cc-aside { position: sticky; top: calc(var(--pub-header-h) + 32px); grid-column: 2; grid-row: 1; }
}

/* Form sheet */
.cc-card {
    position: relative;
    padding: clamp(24px, 4.4vw, 52px);
    border: 1px solid var(--line);
    border-radius: 24px;
    background: var(--paper);
    box-shadow: 0 1px 2px rgba(21, 19, 15, .04), 0 36px 70px -52px rgba(21, 19, 15, .45);
}
.cc-card::before {
    content: "";
    position: absolute;
    left: 40px;
    right: 40px;
    top: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
@media (max-width: 639px) {
    .cc-card { margin-inline: calc(-1 * var(--pub-gutter)); padding: 32px var(--pub-gutter) 36px; border-inline: 0; border-radius: 0; }
}
.cc-reqnote { margin: 0 0 6px; color: var(--text-3); font-size: 12.5px; text-align: end; }
.cc-fs { min-width: 0; margin: 0; padding: 0; border: 0; }
.cc-fs + .cc-fs { margin-top: clamp(36px, 4.4vw, 52px); }
.cc-legend {
    float: left;
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    margin: 0 0 24px;
    padding: 0;
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: 25px;
    font-weight: 600;
    line-height: 1.2;
}
.cc-legend::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.cc-legend + * { clear: both; }
.cc-legend__n {
    color: var(--gold-deep);
    font-family: "Cormorant Garamond", var(--font-serif);
    font-size: 17px;
    font-weight: 600;
    letter-spacing: .16em;
    font-variant-numeric: lining-nums;
}
html:is(:lang(ko), :lang(ja), :lang(zh)) .cc-legend { font-size: 19px; letter-spacing: -.01em; }

.cc-grid { display: grid; gap: 22px 18px; }
@media (min-width: 640px) {
    .cc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cc-span { grid-column: 1 / -1; }
}
.cc-field { min-width: 0; margin: 0; padding: 0; border: 0; }
.cc-group > legend { float: left; width: 100%; padding: 0; }
.cc-group > legend + * { clear: both; }
.cc-req { margin-inline-start: 3px; color: var(--gold-deep); }
/* Field boundaries at 3:1 or more against the card (WCAG 1.4.11): darker border, white fill */
.public .cc-form .form-control { border-color: #8F7E64; background-color: #FFFFFF; }
.public .cc-form .form-control:hover { border-color: var(--ink-3); }
.public .cc-form .form-control:focus { border-color: var(--gold-deep); background-color: #FFFFFF; }
.public .cc-form .form-control[aria-invalid="true"] { border-color: var(--danger); }
.cc-form input::-webkit-date-and-time-value { text-align: start; }
.cc-form textarea.form-control { min-height: 128px; }

/* Choice chips (radio and checkbox) */
.cc-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.cc-choice { position: relative; display: inline-flex; max-width: 100%; }
.cc-choice input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.cc-choice span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 18px;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-pill);
    background: var(--paper);
    color: var(--ink-2);
    font-size: 14.5px;
    font-weight: 500;
    line-height: 1.3;
    transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.cc-choice span .ico { flex: none; width: 15px; height: 15px; color: var(--gold-deep); }
@media (hover: hover) {
    .cc-choice:hover span { border-color: var(--gold); }
}
.cc-choice input:checked + span { border-color: var(--ink); background: var(--ink); color: var(--ivory); }
.cc-choice input:checked + span .ico { color: var(--gold-soft); }
.cc-choice input:focus-visible + span { outline: 2px solid var(--gold-deep); outline-offset: 2px; }
.cc-choice .cc-on,
.cc-choice input:checked + span .cc-off { display: none; }
.cc-choice input:checked + span .cc-on { display: inline-block; }

/* Hints and errors */
.cc-hint { display: flex; gap: 8px; margin: 10px 0 0; color: var(--text-3); font-size: 13px; line-height: 1.6; }
.cc-hint .ico { flex: none; width: 16px; height: 16px; margin-top: 1px; color: var(--gold-deep); }
.cc-grid > .cc-hint { margin-top: -8px; }
.cc-error { display: flex; gap: 8px; margin: 8px 0 0; color: var(--danger); font-size: 13.5px; font-weight: 600; line-height: 1.5; }
.cc-error .ico { flex: none; width: 16px; height: 16px; margin-top: 2px; }
.cc-alert {
    margin: 0 0 28px;
    padding: 18px 20px;
    border: 1px solid rgba(163, 64, 47, .26);
    border-inline-start: 3px solid var(--danger);
    border-radius: 6px 16px 16px 6px;
    background: var(--danger-pale);
    color: var(--ink-2);
}
.public .cc-alert:focus,
.public .cc-alert:focus-visible { outline: 2px solid rgba(163, 64, 47, .35); outline-offset: 4px; }
.cc-alert__title { display: flex; gap: 10px; margin: 0; color: var(--danger); font-size: 15px; font-weight: 700; line-height: 1.5; }
.cc-alert__title .ico { flex: none; margin-top: 2px; }
.cc-alert__list { margin: 10px 0 0; padding-inline-start: 28px; font-size: 14px; line-height: 1.7; }
.cc-alert__list a { color: var(--ink); font-weight: 600; }

/* Consent items */
.cc-consents { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.cc-consent { padding: 18px 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--ivory); }
.cc-consent--required { border-color: rgba(168, 132, 77, .5); background: linear-gradient(180deg, rgba(241, 231, 211, .7), rgba(241, 231, 211, .3)); }
.cc-consent.is-invalid { border-color: var(--danger); }
.cc-consent__check { display: flex; align-items: flex-start; gap: 12px; }
.cc-consent__check input { flex: none; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--ink); cursor: pointer; }
.cc-consent__check label { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; color: var(--ink); font-size: 15.5px; font-weight: 600; line-height: 1.45; cursor: pointer; }
.cc-tag {
    display: inline-flex;
    padding: 1px 9px;
    border-radius: var(--radius-pill);
    background: var(--ink);
    color: var(--ivory);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.7;
    text-transform: uppercase;
}
.cc-consent:not(.cc-consent--required) .cc-tag { background: transparent; color: var(--gold-deep); box-shadow: inset 0 0 0 1px rgba(126, 95, 48, .5); }
.cc-consent__terms { display: grid; gap: 3px; margin: 12px 0 0 34px; padding: 0; list-style: none; color: var(--ink-3); font-size: 13px; line-height: 1.6; }
.cc-consent__terms li { position: relative; padding-inline-start: 13px; }
.cc-consent__terms li::before { content: ""; position: absolute; left: 0; top: .78em; width: 5px; height: 1px; background: var(--gold); }
.cc-consent__refusal { margin: 8px 0 0 34px; color: var(--ink-2); font-size: 13px; font-weight: 600; line-height: 1.6; }
.cc-consent .cc-error { margin-inline-start: 34px; }
.cc-consent__notes { display: flex; gap: 10px; margin: 16px 0 0; color: var(--text-3); font-size: 13px; line-height: 1.65; }
.cc-consent__notes .ico { flex: none; width: 16px; height: 16px; margin-top: 2px; color: var(--gold-deep); }
.cc-consent__policy { margin: 14px 0 0 26px; font-size: 14px; }
.cc-submit { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--line); }
@media (max-width: 559px) {
    .cc-submit .pub-btn { width: 100%; }
}
.cc-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Success */
.cc-done { display: grid; justify-items: center; text-align: center; }
.cc-done .pub-ring { margin-bottom: 24px; }
.cc-done__title {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-serif);
    font-size: clamp(32px, 3.6vw, 44px);
    font-weight: 500;
    line-height: 1.15;
}
.public .cc-done__title:focus,
.public .cc-done__title:focus-visible { outline: none; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .cc-done__title { font-size: clamp(25px, 2.6vw, 32px); line-height: 1.4; }
.cc-done__body { max-width: 34em; margin: 16px 0 0; color: var(--ink-3); font-size: 16px; line-height: 1.75; }
.cc-ticket {
    display: grid;
    gap: 4px;
    margin: 30px 0 0;
    padding: 16px 32px 18px;
    border: 1px dashed var(--line-strong);
    border-radius: 14px;
    background: var(--ivory);
}
.cc-ticket__label { color: var(--gold-deep); font-size: 11.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .cc-ticket__label { font-size: 13px; letter-spacing: .04em; }
.cc-ticket__code {
    color: var(--ink);
    font-family: "Cormorant Garamond", var(--font-serif);
    font-size: clamp(26px, 3vw, 32px);
    font-weight: 600;
    letter-spacing: .08em;
    font-variant-numeric: lining-nums tabular-nums;
    user-select: all;
}
.cc-done__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 32px; }

/* Member requests */
.cc-mine { padding: 22px 24px 10px; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); }
.cc-mine__title { margin: 0 0 10px; color: var(--ink); font-family: var(--font-serif); font-size: 22px; font-weight: 600; line-height: 1.3; }
.cc-mine__empty { margin: 0 0 12px; color: var(--text-3); font-size: 14px; }
.cc-mine__list { margin: 0; padding: 0; list-style: none; }
.cc-mine__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 2px 16px;
    padding: 12px 0;
    border-top: 1px solid var(--line);
}
.cc-mine__ref { color: var(--ink); font-size: 15px; font-weight: 700; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.cc-mine__meta { grid-column: 1; color: var(--text-3); font-size: 13px; }
.cc-mine__item .badge { grid-column: 2; grid-row: 1 / span 2; }

/* Aside: how it works */
.cc-panel { padding: 28px 26px; border: 1px solid var(--line-strong); border-radius: 20px; }
.cc-panel__title { margin: 0 0 22px; color: var(--ink); font-family: var(--font-serif); font-size: 26px; font-weight: 600; line-height: 1.2; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .cc-panel__title { font-size: 20px; }
.cc-how { display: grid; gap: 18px; margin: 0 0 26px; padding: 0; list-style: none; }
.cc-how li { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 10px; }
.cc-how__title { margin: 0; color: var(--ink); font-size: 15px; font-weight: 600; line-height: 1.5; }
.cc-how__body { margin: 4px 0 0; color: var(--ink-3); font-size: 13.5px; line-height: 1.65; }
.cc-panel__link { font-size: 14px; }
/* == end page: concierge == */

/* == page: policy == */
.pub-policy { max-width: 75ch; line-height: 1.85; }
.pub-footer__policy { margin: 12px 0 0; }
.pub-footer__policy a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* == QA fixes 2026-10-06 == */
/* Header actions never wrap; 1100–1199px (ko/ja/zh labels) gets a slightly tighter bar */
.pub-actions .pub-btn { white-space: nowrap; }
@media (min-width: 1100px) and (max-width: 1199.98px) {
    .pub-nav ul { gap: 18px; }
    .pub-actions { gap: 8px; }
    .pub-lang { margin-inline-end: 2px; }
    .pub-lang a { padding-inline: 8px; }
    .pub-actions .pub-btn--sm { padding-inline: 14px; }
}
/* Footer language: keep the 44px tap target, draw the current-language pill at header size */
.pub-footer__lang a { border-block: 7px solid transparent; }
.pub-footer__lang a[aria-current="true"] { background-clip: padding-box; }
/* Japanese hero lead breaks at phrase boundaries like the other copy */
html:lang(ja) body.public .pub-hero__sub { word-break: auto-phrase; }
/* Policy: version line aligns with the document, not centred */
.pub-page-policy .pub-note { margin: 0 0 20px; text-align: start; }

/* == "My KBT" stays in the header bar below 1100px (2026-10-06) == */
/* Members reach the dashboard (/index.php) in one tap on phones; the menu sheet keeps its own copy. */
@media (max-width: 1099.98px) {
    .pub-header__inner { gap: 12px; }
    .pub-actions { display: flex; }
    .pub-actions > :not(.pub-my) { display: none; }
    .pub-actions .pub-my { padding-inline: 14px; }
}
@media (max-width: 359.98px) {
    .pub-actions { display: none; }
}

/* == page: checkup / quiz (2026-10, checkup/clinic-report feature, design §2.3, §3.1, W1–W3) ================== */
/* Funnel menu items: only rendered while feature.funnel_public is on (kbt_funnel_nav()). The bar then needs more room,
   so it appears from 1280px; 1100–1279px uses the burger and the sheet (design §2.3). */
.pub-nav__new {
    display: inline-block;
    margin-inline-start: 7px;
    padding: 1px 6px;
    border: 1px solid rgba(216, 195, 156, .6);
    border-radius: var(--radius-pill);
    color: var(--gold-soft);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .12em;
    line-height: 1.5;
    text-transform: uppercase;
    vertical-align: 2px;
}
.pub-sheet__item { display: grid; gap: 4px; }
.pub-sheet__sub {
    color: rgba(216, 195, 156, .72);
    font-family: "Pretendard Variable", Pretendard, system-ui, sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
}
@media (min-width: 1100px) and (max-width: 1279.98px) {
    .pub-header--funnel .pub-nav { display: none; }
    .pub-header--funnel .pub-burger { display: inline-grid; margin-inline-start: 4px; }
    .pub-header--funnel .pub-brand { margin-inline-end: auto; }
    .pub-sheet--funnel { display: flex; }
}
@media (min-width: 1280px) and (max-width: 1439.98px) {
    .pub-header--funnel .pub-nav ul { gap: 22px; }
    .pub-header--funnel .pub-nav a { font-size: 14px; }
    .pub-header--funnel .pub-lang a { padding-inline: 8px; }
}
/* Landing: quiz link under the hero actions */
.pub-hero__quiz { margin-top: 22px; color: var(--gold-soft); font-size: 15px; }

/* Funnel pages share the public shell; [hidden] beats component display rules there */
.pub-ck [hidden] { display: none !important; }

/* Hero */
.ck-hero { padding: clamp(48px, 7vw, 92px) 0 clamp(44px, 5.5vw, 72px); }
.ck-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 22px;
    padding: 7px 16px 7px 12px;
    border: 1px solid rgba(216, 195, 156, .32);
    border-radius: var(--radius-pill);
    background: rgba(216, 195, 156, .06);
    color: var(--gold-soft);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .08em;
}
.ck-chip__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--gold-soft); box-shadow: 0 0 0 4px rgba(216, 195, 156, .16); }
.ck-hero .ck-hero__title { margin: 0; font-size: clamp(40px, 5.6vw, 66px); }
html:is(:lang(ko), :lang(ja), :lang(zh)) .ck-hero .ck-hero__title { font-size: clamp(30px, 4.2vw, 50px); }
.ck-hero__body { max-width: 44em; margin: 22px 0 0; color: var(--p-fg2); font-size: clamp(16px, 1.5vw, 18px); line-height: 1.75; }
.ck-hero__notes { display: grid; gap: 10px; max-width: 46em; margin: 26px 0 0; padding: 22px 0 0; border-top: 1px solid var(--p-rule); list-style: none; }
.ck-hero__notes li { display: flex; gap: 12px; color: var(--p-fg3); font-size: 14px; line-height: 1.65; }
.ck-hero__notes .ico { flex: none; width: 18px; height: 18px; margin-top: 2px; color: var(--gold-soft); }
.ck-hero__quiz { margin-top: 24px; color: var(--gold-soft); font-size: 15px; }
.ck-sec { padding-block: clamp(32px, 5vw, 72px) clamp(80px, 9vw, 120px); }
/* Phones: a compact intro so the first question shows on the first screen (W1) */
@media (max-width: 639px) {
    .ck-hero { padding: 28px 0 26px; }
    .ck-hero .ck-chip { margin-bottom: 14px; padding: 5px 12px 5px 10px; font-size: 11.5px; }
    .ck-hero .ck-hero__title { font-size: 34px; line-height: 1.12; }
    html:is(:lang(ko), :lang(ja), :lang(zh)) .ck-hero .ck-hero__title { font-size: 26px; }
    .ck-hero__body { margin-top: 12px; font-size: 14.5px; line-height: 1.6; }
    .ck-hero__notes { gap: 6px; margin-top: 14px; padding-top: 12px; }
    .ck-hero__notes li { font-size: 12.5px; line-height: 1.55; }
    .ck-hero__notes .ico { width: 15px; height: 15px; }
    .ck-hero__quiz { margin-top: 12px; font-size: 14px; }
    .ck-sec { padding-top: 0; }
}

/* Layout: 640px card, 320px summary panel from 1100px (design §3.1) */
.ck-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; align-items: start; justify-content: start; }
/* minmax(0, 1fr): a long <option> (the country list) must never widen the column past the phone screen */
.ck-main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; width: 100%; max-width: 680px; min-width: 0; margin-inline: auto; }
@media (min-width: 1100px) {
    .ck-main { margin-inline: 0; }
}
.ck-aside { display: none; }
@media (min-width: 1100px) {
    .ck-layout { grid-template-columns: minmax(0, 680px) 320px; gap: 48px; }
    .ck-aside { display: block; position: sticky; top: calc(var(--pub-header-h) + 28px); }
}

/* Card */
.ck-card {
    --ck-pad: clamp(22px, 4.4vw, 48px);
    position: relative;
    padding: var(--ck-pad);
    border: 1px solid var(--line);
    border-radius: 24px;
    background: var(--paper);
    box-shadow: 0 1px 2px rgba(21, 19, 15, .04), 0 36px 70px -52px rgba(21, 19, 15, .45);
}
.ck-card::before {
    content: "";
    position: absolute;
    left: 40px;
    right: 40px;
    top: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
@media (max-width: 639px) {
    .ck-card { margin-inline: calc(-1 * var(--pub-gutter)); border-inline: 0; border-radius: 0; --ck-pad: var(--pub-gutter); }
}
.ck-form { padding-top: 0; }

/* Progress (sticky under the header) */
.ck-progress {
    position: sticky;
    top: var(--pub-header-h);
    z-index: 6;
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0 calc(-1 * var(--ck-pad)) 4px;
    padding: 18px var(--ck-pad) 16px;
    border-bottom: 1px solid var(--line);
    border-radius: 24px 24px 0 0;
    background: rgba(255, 253, 248, .96);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}
@media (max-width: 639px) {
    .ck-progress { border-radius: 0; }
}
.ck-progress__brand { color: var(--gold-deep); font-family: "Cormorant Garamond", var(--font-serif); font-size: 15px; font-weight: 700; letter-spacing: .14em; }
.ck-progress__steps { display: grid; flex: 1; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 0; list-style: none; }
.ck-progress__seg { height: 4px; border-radius: 2px; background: var(--line); transition: background-color .3s var(--ease); }
.ck-progress__seg.is-done { background: var(--ink); }
.ck-progress__seg.is-current { background: linear-gradient(90deg, var(--gold-deep), var(--gold)); }
.ck-progress__count { color: var(--ink-3); font-size: 13px; font-weight: 600; letter-spacing: .04em; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Step heads */
.ck-step { min-width: 0; margin: 0; padding: 0; border: 0; }
.ck-step__head { float: left; width: 100%; margin: 26px 0 10px; padding: 0; }
.ck-step > :not(.ck-step__head),
.qz-q > :not(.ck-step__head) { clear: both; }
.ck-eyebrow { display: block; margin-bottom: 12px; color: var(--gold-deep); font-size: 11.5px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .ck-eyebrow { font-size: 12.5px; letter-spacing: .08em; }
.ck-q { display: block; color: var(--ink); font-family: var(--font-serif); font-size: clamp(28px, 3.4vw, 38px); font-weight: 500; line-height: 1.18; letter-spacing: -.005em; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .ck-q { font-size: clamp(22px, 2.6vw, 28px); font-weight: 600; line-height: 1.45; letter-spacing: 0; }
.ck-q em { color: var(--gold-deep); font-style: italic; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .ck-q em { font-style: normal; }
.public .ck-q:focus, .public .ck-q:focus-visible { outline: none; }
.ck-help { max-width: 40em; margin: 0 0 22px; color: var(--text-3); font-size: 15px; line-height: 1.7; }
.ck-sub { min-width: 0; margin: 34px 0 0; padding: 0; border: 0; }
.ck-sub--tight { margin-top: 0; }
.ck-sub__title { float: left; width: 100%; margin: 0 0 6px; padding: 0; color: var(--ink); font-size: 17px; font-weight: 700; line-height: 1.4; }
.ck-sub > :not(.ck-sub__title) { clear: both; }
.ck-sub > .ck-pills { clear: both; margin-top: 12px; }

/* Choice cards */
.ck-opts { display: grid; gap: 10px; }
@media (min-width: 560px) {
    .ck-opts--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.ck-opt { position: relative; display: block; min-width: 0; }
.ck-opt__input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.ck-opt__box {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    height: 100%;
    padding: 16px 18px;
    border: 1px solid var(--line-strong);
    border-radius: 16px;
    background: #FFFFFF;
    transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.ck-opt__mark {
    position: relative;
    display: grid;
    flex: none;
    place-items: center;
    width: 22px;
    height: 22px;
    margin-top: 1px;
    border: 1.5px solid #8F7E64;
    border-radius: 7px;
    color: var(--ivory);
    transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.ck-opt__input[type="radio"] + .ck-opt__box .ck-opt__mark { border-radius: 50%; }
.ck-opt__mark .ico { width: 13px; height: 13px; opacity: 0; transform: scale(.6); transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease); }
.ck-opt__rank { display: none; }
.ck-opt__text { display: grid; gap: 3px; min-width: 0; }
.ck-opt__title { color: var(--ink); font-size: 15.5px; font-weight: 600; line-height: 1.4; }
.ck-opt__sub { color: var(--text-3); font-size: 13.5px; line-height: 1.55; }
@media (hover: hover) {
    .ck-opt:hover .ck-opt__box { border-color: var(--gold); }
}
.ck-opt__input:checked + .ck-opt__box { border-color: var(--ink); background: #FBF7EF; box-shadow: inset 0 0 0 1px var(--ink); }
.ck-opt__input:checked + .ck-opt__box .ck-opt__mark { border-color: var(--ink); background: var(--ink); }
.ck-opt__input:checked + .ck-opt__box .ck-opt__mark .ico { opacity: 1; transform: none; }
.ck-opt__input:focus-visible + .ck-opt__box { outline: 2px solid var(--gold-deep); outline-offset: 2px; }
/* Ranked choices: the tap order is the order of importance (①②③) */
.ck-opts--rank .ck-opt.is-ranked .ck-opt__mark { border-color: var(--ink); background: var(--ink); border-radius: 50%; }
.ck-opts--rank .ck-opt.is-ranked .ck-opt__mark .ico { display: none; }
.ck-opts--rank .ck-opt.is-ranked .ck-opt__rank { display: block; color: var(--gold-soft); font-family: "Cormorant Garamond", var(--font-serif); font-size: 15px; font-weight: 700; line-height: 1; }
.ck-opt-wrap { display: grid; }
.ck-threshold { display: none; min-width: 0; margin: -10px 0 0; padding: 22px 18px 16px 54px; border: 1px solid var(--ink); border-top: 0; border-radius: 0 0 16px 16px; background: #FBF7EF; box-shadow: inset 1px 0 0 var(--ink), inset -1px 0 0 var(--ink), inset 0 -1px 0 var(--ink); }
.ck-opt-wrap.is-open .ck-threshold,
.ck-opt-wrap:has(> .ck-opt input:checked) .ck-threshold { display: block; }
.ck-opt-wrap.is-open > .ck-opt .ck-opt__box,
.ck-opt-wrap:has(> .ck-opt input:checked) > .ck-opt .ck-opt__box { border-radius: 16px 16px 0 0; }
.ck-threshold__title { float: left; width: 100%; margin: 0 0 10px; padding: 0; color: var(--ink-2); font-size: 13.5px; font-weight: 600; }
.ck-threshold > :not(.ck-threshold__title) { clear: both; }

/* Pills (short single choices) */
.ck-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.ck-pill { position: relative; display: inline-flex; max-width: 100%; }
.ck-pill input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.ck-pill span {
    display: inline-flex;
    align-items: center;
    min-height: 46px;
    padding: 10px 18px;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-pill);
    background: #FFFFFF;
    color: var(--ink-2);
    font-size: 14.5px;
    font-weight: 500;
    line-height: 1.3;
    transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.ck-pills--sm .ck-pill span { min-height: 40px; padding: 8px 16px; font-size: 14px; }
@media (hover: hover) {
    .ck-pill:hover span { border-color: var(--gold); }
}
.ck-pill input:checked + span { border-color: var(--ink); background: var(--ink); color: var(--ivory); }
.ck-pill input:focus-visible + span { outline: 2px solid var(--gold-deep); outline-offset: 2px; }

/* Dates: shown for the chosen way of giving them (JS class, or :has() without JS) */
.ck-when { display: none; gap: 16px; margin-top: 20px; }
.ck-step.is-fixed .ck-when--fixed,
.ck-step.is-month .ck-when--month,
.ck-form:not(.is-js) .ck-when { display: grid; }
@media (min-width: 560px) {
    .ck-when--fixed { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ck-when--month { grid-template-columns: minmax(0, 320px); }
}
.ck-when__note { grid-column: 1 / -1; }

/* Fields */
.ck-grid { display: grid; gap: 22px 18px; margin-top: 8px; }
@media (min-width: 640px) {
    .ck-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ck-span { grid-column: 1 / -1; }
}
.ck-field { min-width: 0; margin: 0; padding: 0; border: 0; }
.ck-field > legend.form-label { float: left; width: 100%; padding: 0; }
.ck-field > :not(legend) { clear: both; }
.ck-req { margin-inline-start: 3px; color: var(--gold-deep); }
.public .ck-form .form-control { border-color: #8F7E64; background-color: #FFFFFF; }
.ck-form select.form-control { width: 100%; max-width: 100%; }
.public .ck-form .form-control:hover { border-color: var(--ink-3); }
.public .ck-form .form-control:focus { border-color: var(--gold-deep); background-color: #FFFFFF; }
.public .ck-form .form-control[aria-invalid="true"] { border-color: var(--danger); }
.ck-form input::-webkit-date-and-time-value { text-align: start; }
.ck-hint { display: flex; gap: 8px; margin: 8px 0 0; color: var(--text-3); font-size: 13px; line-height: 1.6; }
.ck-hint .ico { flex: none; width: 16px; height: 16px; margin-top: 1px; color: var(--gold-deep); }
.ck-error { display: flex; gap: 8px; margin: 10px 0 0; color: var(--danger); font-size: 13.5px; font-weight: 600; line-height: 1.5; }
.ck-error .ico { flex: none; width: 16px; height: 16px; margin-top: 2px; }

/* Error summary (role=alert) */
.ck-alert {
    margin: 20px 0 4px;
    padding: 16px 20px;
    border: 1px solid rgba(163, 64, 47, .26);
    border-inline-start: 3px solid var(--danger);
    border-radius: 6px 16px 16px 6px;
    background: var(--danger-pale);
    color: var(--ink-2);
}
.public .ck-alert:focus, .public .ck-alert:focus-visible { outline: 2px solid rgba(163, 64, 47, .35); outline-offset: 4px; }
.ck-alert__title { display: flex; gap: 10px; margin: 0; color: var(--danger); font-size: 15px; font-weight: 700; line-height: 1.5; }
.ck-alert__title .ico { flex: none; margin-top: 2px; }
.ck-alert__list { margin: 8px 0 0; padding-inline-start: 24px; font-size: 14px; line-height: 1.7; }
.ck-alert__list a { color: var(--ink); font-weight: 600; }

/* Consents (§3.4: unticked, one per item; highlighted items bold, underlined, 20% larger) */
.ck-consents { display: grid; gap: 12px; margin: 30px 0 0; padding: 0; list-style: none; }
.ck-consent { padding: 16px 18px; border: 1px solid rgba(168, 132, 77, .5); border-radius: 16px; background: linear-gradient(180deg, rgba(241, 231, 211, .65), rgba(241, 231, 211, .25)); }
.ck-consent.is-invalid { border-color: var(--danger); }
.ck-consent__check { display: flex; align-items: flex-start; gap: 12px; }
.ck-consent__check input { flex: none; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--ink); cursor: pointer; }
.ck-consent__check label { display: grid; gap: 6px; color: var(--ink); font-size: 15px; font-weight: 600; line-height: 1.5; cursor: pointer; }
.ck-consent--legal .ck-consent__check label { font-size: 13.5px; font-weight: 400; line-height: 1.7; color: var(--ink-2); }
.ck-tag {
    display: inline-flex;
    justify-self: start;
    padding: 1px 9px;
    border-radius: var(--radius-pill);
    background: var(--ink);
    color: var(--ivory);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.7;
    text-transform: uppercase;
}
.ck-legal-em { color: var(--ink); font-size: 1.2em; font-weight: 700; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.ck-consent .ck-error { margin-inline-start: 34px; }
.ck-notes { display: flex; gap: 10px; margin: 16px 0 0; color: var(--text-3); font-size: 12.5px; line-height: 1.7; }
.ck-notes .ico { flex: none; width: 16px; height: 16px; margin-top: 2px; color: var(--gold-deep); }
.ck-notes a { color: var(--ink-2); text-decoration: underline; text-underline-offset: 2px; word-break: break-all; }
.ck-eta { display: flex; gap: 12px; margin: 22px 0 0; padding: 14px 18px; border: 1px dashed var(--line-strong); border-radius: 14px; background: var(--ivory); color: var(--ink-2); font-size: 14.5px; font-weight: 500; line-height: 1.6; }
.ck-eta .ico { flex: none; width: 18px; height: 18px; margin-top: 2px; color: var(--gold-deep); }

/* Actions */
.ck-actions { display: flex; align-items: center; gap: 12px; margin-top: 34px; padding-top: 24px; border-top: 1px solid var(--line); }
.ck-actions .pub-btn { flex: 1; }
.ck-back {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 56px;
    min-height: 56px;
    padding: 0 20px;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-pill);
    background: transparent;
    color: var(--ink);
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.ck-back:hover { border-color: var(--ink); }
.ck-back .ico { width: 18px; height: 18px; }
@media (max-width: 639px) {
    .ck-back { padding: 0; }
    .ck-back__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .ck-form.is-js .ck-actions {
        position: sticky;
        bottom: 0;
        z-index: 5;
        margin: 28px calc(-1 * var(--ck-pad)) 0;
        padding: 12px var(--ck-pad) calc(12px + env(safe-area-inset-bottom));
        background: rgba(255, 253, 248, .97);
        box-shadow: 0 -16px 26px -22px rgba(21, 19, 15, .5);
    }
}
.ck-form:not(.is-js) .ck-next,
.ck-form:not(.is-js) .ck-back,
.ck-form:not(.is-js) .ck-foot,
.ck-form:not(.is-js) .ck-progress { display: none; }
.ck-form:not(.is-js) .ck-step + .ck-step { margin-top: 44px; padding-top: 6px; border-top: 1px solid var(--line); }
html.ck-js .ck-form:not(.is-ready) .ck-step:not(#ck-step-1),
html.ck-js .ck-form:not(.is-ready) .ck-submit { display: none; }
.ck-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-top: 18px; color: var(--text-3); font-size: 12.5px; }
.ck-foot__note { display: flex; gap: 8px; margin: 0; }
.ck-foot__note .ico { flex: none; width: 14px; height: 14px; margin-top: 2px; color: var(--gold-deep); }
.ck-textbtn { padding: 4px 0; border: 0; background: none; color: var(--gold-deep); font: inherit; font-size: 13.5px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ck-textbtn:hover { color: var(--ink); }
.ck-textbtn--sm { font-size: 12.5px; }
.ck-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Resume prompt and quiz hand-off card */
.ck-resume,
.ck-fromquiz {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 18px;
    padding: 16px 20px;
    border: 1px solid rgba(168, 132, 77, .45);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(241, 231, 211, .9), rgba(241, 231, 211, .4));
}
.ck-resume__title { display: flex; flex: 1 1 260px; gap: 10px; margin: 0; color: var(--ink); font-size: 15px; font-weight: 600; }
.ck-resume__title .ico { color: var(--gold-deep); }
.ck-resume__actions { display: flex; gap: 8px; }
.ck-fromquiz__label { display: flex; gap: 8px; margin: 0; color: var(--gold-deep); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .ck-fromquiz__label { font-size: 13px; letter-spacing: .04em; }
.ck-fromquiz__text { flex: 1 1 100%; margin: -4px 0 0; color: var(--ink); font-size: 15px; font-weight: 600; line-height: 1.55; }
@media (min-width: 640px) {
    .ck-fromquiz__text { flex: 1 1 0; margin: 0; }
}

/* Summary panel (desktop) and the inline summary at step 4 (below 1100px) */
.ck-panel { padding: 26px 24px 22px; border: 1px solid var(--line-strong); border-radius: 20px; background: rgba(255, 253, 248, .6); }
.ck-panel__title { margin: 0; color: var(--ink); font-family: var(--font-serif); font-size: 25px; font-weight: 600; line-height: 1.2; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .ck-panel__title { font-size: 19px; }
.ck-panel__note { margin: 4px 0 14px; color: var(--text-3); font-size: 12.5px; }
.ck-panel__empty { margin: 0; color: var(--text-3); font-size: 14px; }
.ck-panel__promise { display: flex; gap: 10px; margin: 16px 0 0; padding-top: 16px; border-top: 1px solid var(--line); color: var(--text-3); font-size: 12.5px; line-height: 1.65; }
.ck-panel__promise .ico { flex: none; width: 16px; height: 16px; margin-top: 2px; color: var(--gold-deep); }
.ck-sumlist { margin: 0; }
.ck-sumlist > div { padding: 12px 0; border-top: 1px solid var(--line); }
.ck-sumlist > div:first-child { border-top: 0; padding-top: 4px; }
.ck-sumlist dt { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; color: var(--gold-deep); font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .ck-sumlist dt { font-size: 12.5px; letter-spacing: .02em; }
.ck-sumlist dt .ck-textbtn { text-transform: none; letter-spacing: 0; }
.ck-sumlist dd { margin: 4px 0 0; color: var(--ink-2); font-size: 14.5px; line-height: 1.6; white-space: pre-line; }
.ck-sumlist .is-empty dd { color: var(--text-3); font-style: italic; }
.ck-summary--inline { margin: 4px 0 26px; padding: 18px 20px 8px; border: 1px solid var(--line); border-radius: 16px; background: var(--ivory); }
.ck-summary__title { margin: 0 0 8px; color: var(--ink); font-family: var(--font-serif); font-size: 20px; font-weight: 600; }
@media (min-width: 1100px) {
    .ck-summary--inline { display: none !important; }
}

/* Closed form, info pages */
.ck-closed { display: grid; justify-items: center; gap: 0; text-align: center; }
.ck-closed .pub-ring { margin-bottom: 22px; }
.ck-closed__title { margin: 0; color: var(--ink); font-family: var(--font-serif); font-size: clamp(28px, 3.2vw, 38px); font-weight: 500; line-height: 1.2; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .ck-closed__title { font-size: clamp(22px, 2.4vw, 28px); line-height: 1.45; }
.ck-closed__body { max-width: 32em; margin: 14px 0 28px; color: var(--ink-3); font-size: 16px; line-height: 1.75; }
.ck-info__langs { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.ck-info__partner { padding-block: clamp(40px, 6vw, 72px); }

/* Done page (W3) */
.ck-sec--done { padding-top: clamp(36px, 5vw, 64px); }
.ck-done { display: grid; gap: 32px; align-items: start; }
.ck-done__main { display: grid; gap: 22px; min-width: 0; }
@media (min-width: 1024px) {
    .ck-done { grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(40px, 5vw, 64px); }
    .ck-done__aside { position: sticky; top: calc(var(--pub-header-h) + 28px); }
}
.ck-flash { display: flex; gap: 10px; margin: 0; padding: 14px 18px; border: 1px solid; border-radius: 14px; font-size: 14.5px; font-weight: 600; line-height: 1.55; }
.ck-flash .ico { flex: none; width: 18px; height: 18px; margin-top: 1px; }
.ck-flash--ok { border-color: #B7C9AE; background: #EEF3EA; color: #2D4F2E; }
.ck-flash--warn { border-color: var(--gold-soft); background: var(--gold-pale); color: #5A4420; }
.ck-flash--error { border-color: rgba(163, 64, 47, .3); background: var(--danger-pale); color: var(--danger); }
.ck-mailcard { display: grid; gap: 20px; }
@media (min-width: 640px) {
    .ck-mailcard { grid-template-columns: 64px minmax(0, 1fr); gap: 26px; }
}
.ck-mailcard__icon { display: grid; place-items: center; width: 64px; height: 64px; border: 1px solid rgba(168, 132, 77, .55); border-radius: 50%; background: radial-gradient(circle at 30% 25%, #FFFDF8, var(--gold-pale)); color: var(--gold-deep); box-shadow: inset 0 0 0 4px #FFFDF8, inset 0 0 0 5px rgba(168, 132, 77, .25); }
.ck-mailcard__title { margin: 4px 0 10px; color: var(--ink); font-family: var(--font-serif); font-size: clamp(26px, 2.8vw, 32px); font-weight: 600; line-height: 1.2; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .ck-mailcard__title { font-size: clamp(21px, 2.2vw, 25px); }
.ck-mailcard__body p { margin: 0; color: var(--ink-2); font-size: 16px; line-height: 1.7; }
.ck-mailcard__eta { display: flex; gap: 10px; margin-top: 14px !important; padding: 12px 16px; border-radius: 12px; background: var(--ivory); font-weight: 600; }
.ck-mailcard__eta .ico { flex: none; margin-top: 4px; color: var(--gold-deep); }
.ck-mailcard__body .ck-mailcard__hint { margin-top: 14px; color: var(--text-3); font-size: 13.5px; }
.ck-mailcard__actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 14px 22px; margin-top: 22px; }
.ck-change { flex: 1 1 260px; }
.ck-change summary { display: inline-flex; min-height: 48px; align-items: center; color: var(--gold-deep); font-size: 14.5px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; list-style: none; cursor: pointer; }
.ck-change summary::-webkit-details-marker { display: none; }
.ck-change__form { margin-top: 10px; }
.ck-change__row { display: flex; flex-wrap: wrap; gap: 10px; }
.ck-change__row .form-control { flex: 1 1 220px; border-color: #8F7E64; background: #FFFFFF; }
.ck-recap__title { margin: 0 0 14px; color: var(--ink); font-family: var(--font-serif); font-size: 24px; font-weight: 600; line-height: 1.25; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .ck-recap__title { font-size: 19px; }
.ck-recap__note { color: var(--text-3); font-family: "Pretendard Variable", Pretendard, system-ui, sans-serif; font-size: 13px; font-weight: 400; }
.ck-recap__list { margin: 0; }
.ck-recap__list > div { display: grid; gap: 4px 24px; padding: 14px 0; border-top: 1px solid var(--line); }
@media (min-width: 640px) {
    .ck-recap__list > div { grid-template-columns: 170px minmax(0, 1fr); }
}
.ck-recap__list dt { color: var(--gold-deep); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .ck-recap__list dt { font-size: 13px; letter-spacing: .02em; }
.ck-recap__list dd { margin: 0; color: var(--ink-2); font-size: 15px; line-height: 1.65; }
.ck-chipline { display: inline-flex; margin: 0 6px 6px 0; padding: 3px 12px; border: 1px solid var(--line-strong); border-radius: var(--radius-pill); background: #FFFFFF; font-size: 13.5px; }
.ck-recap__cat { margin: 0 0 4px; }
.ck-recap__cat strong { color: var(--ink); }
.ck-ranks { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ck-ranks li { display: flex; align-items: center; gap: 10px; }
.ck-ranks__n { display: grid; flex: none; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--ink); color: var(--gold-soft); font-family: "Cormorant Garamond", var(--font-serif); font-size: 13px; font-weight: 700; }
.ck-recap__promise { display: flex; gap: 10px; margin: 6px 0 0; padding-top: 16px; border-top: 1px solid var(--line); color: var(--text-3); font-size: 13px; line-height: 1.65; }
.ck-recap__promise .ico { flex: none; width: 16px; height: 16px; margin-top: 2px; color: var(--gold-deep); }
.ck-wait { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 6px 0 0; color: var(--ink-3); font-size: 14.5px; }
.ck-legalline { margin: 0; color: var(--text-3); font-size: 12.5px; line-height: 1.7; }
.ck-panel--noir { border-color: rgba(216, 195, 156, .28); background: radial-gradient(120% 60% at 100% 0%, rgba(201, 164, 101, .16), transparent 70%), var(--pub-noir); color: #F3EEE4; }
.ck-panel--noir .ck-panel__title { margin-bottom: 14px; color: #FBF7EF; }
.ck-nextlist { display: grid; margin: 0; padding: 0; list-style: none; }
.ck-nextlist li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; padding: 14px 0; border-top: 1px solid rgba(216, 195, 156, .16); color: rgba(243, 238, 228, .7); font-size: 14.5px; line-height: 1.55; }
.ck-nextlist__n { color: var(--gold-soft); font-family: "Cormorant Garamond", var(--font-serif); font-size: 17px; font-weight: 600; letter-spacing: .1em; }
.ck-nextlist li.is-current { color: #FBF7EF; font-weight: 600; }
.ck-nextlist li.is-done { color: rgba(243, 238, 228, .5); text-decoration: line-through; text-decoration-color: rgba(216, 195, 156, .4); }

/* Confirmation page */
.ck-confirm { min-height: 64vh; padding-block: clamp(56px, 9vw, 120px); background-image: radial-gradient(60% 80% at 50% 0%, rgba(201, 164, 101, .18), transparent 72%); }
.ck-confirm__card { display: grid; justify-items: center; max-width: 640px; margin: 0 auto; text-align: center; }
.ck-confirm__card .pub-ring { margin-bottom: 20px; }
.ck-confirm__eyebrow { margin: 0 0 14px; color: var(--gold-deep); }
.ck-confirm__eyebrow::before { display: none; }
.ck-confirm__title { margin: 0; color: var(--ink); font-family: var(--font-serif); font-size: clamp(28px, 3.4vw, 40px); font-weight: 500; line-height: 1.2; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .ck-confirm__title { font-size: clamp(22px, 2.6vw, 30px); line-height: 1.45; }
.public .ck-confirm__title:focus { outline: none; }
.ck-confirm__body { max-width: 30em; margin: 14px 0 0; color: var(--ink-3); font-size: 16px; line-height: 1.75; }
.ck-confirm__eta { margin: 16px 0 26px; color: var(--ink-2); font-size: 17px; font-weight: 600; line-height: 1.6; }
.ck-confirm__local { color: var(--text-3); font-weight: 500; }
.ck-confirm__form { margin-top: 28px; }
.ck-confirm .ck-flash { margin-bottom: 16px; }
.ck-confirm .pub-btn--ghost { --b-fg: var(--ink); --b-bd: var(--line-strong); }

/* Quiz (W2) */
.qz-wrap { max-width: calc(760px + 2 * var(--pub-gutter)); }
.qz-head { display: flex; align-items: center; gap: 16px; margin: 0 0 6px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.qz-head__label { color: var(--ink); font-family: "Cormorant Garamond", var(--font-serif); font-size: 17px; font-weight: 700; letter-spacing: .04em; white-space: nowrap; }
.qz-bar { display: grid; flex: 1; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 0; list-style: none; }
.qz-bar li { height: 4px; border-radius: 2px; background: var(--line); transition: background-color .3s var(--ease); }
.qz-bar li.is-done { background: var(--ink); }
.qz-bar li.is-current { background: linear-gradient(90deg, var(--gold-deep), var(--gold)); }
.qz-head__count { color: var(--ink-3); font-size: 12.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.qz-intro { display: grid; justify-items: center; padding: 18px 0 6px; text-align: center; }
.qz-intro .pub-ring { margin-bottom: 20px; }
.qz-intro__title { margin: 0; color: var(--ink); font-family: var(--font-serif); font-size: clamp(28px, 3.2vw, 36px); font-weight: 500; line-height: 1.2; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .qz-intro__title { font-size: clamp(22px, 2.4vw, 28px); line-height: 1.45; }
.qz-intro__body { max-width: 32em; margin: 14px 0 28px; color: var(--ink-3); font-size: 16px; line-height: 1.75; }
.qz-intro__note,
.qz-disclaimer { margin: 18px 0 0; color: var(--text-3); font-size: 12.5px; }
.qz-q { min-width: 0; margin: 0; padding: 0; border: 0; }
.qz-noscript { text-align: center; }
.qz-noscript p { margin: 0 0 18px; color: var(--ink-2); }
.qz-result__top { padding: 8px 0 26px; border-bottom: 1px solid var(--line); }
.qz-result__eyebrow { margin: 0 0 12px; color: var(--gold-deep); }
.qz-result__title { margin: 0; color: var(--ink); font-family: var(--font-serif); font-size: clamp(32px, 4.2vw, 48px); font-weight: 500; line-height: 1.12; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .qz-result__title { font-size: clamp(25px, 3vw, 34px); line-height: 1.4; }
.public .qz-result__title:focus { outline: none; }
.qz-result__lead { max-width: 40em; margin: 16px 0 0; color: var(--ink-2); font-size: 17px; line-height: 1.75; }
.qz-result__note { margin: 16px 0 0; padding: 12px 16px; border-inline-start: 3px solid var(--gold); background: var(--gold-pale); color: var(--ink-2); font-size: 14.5px; line-height: 1.6; }
.qz-result__grid { display: grid; }
@media (min-width: 720px) {
    .qz-result__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 36px; }
}
.qz-block { padding: 22px 0; border-bottom: 1px solid var(--line); }
.qz-block__title { margin: 0 0 10px; color: var(--gold-deep); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .qz-block__title { font-size: 13px; letter-spacing: .02em; }
.qz-text { margin: 0; color: var(--ink-2); font-size: 15px; line-height: 1.7; }
.qz-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.qz-list li { position: relative; padding-inline-start: 18px; color: var(--ink-2); font-size: 15px; line-height: 1.65; }
.qz-list li::before { content: ""; position: absolute; left: 0; top: .82em; width: 8px; height: 1px; background: var(--gold); }
.qz-cats { display: grid; gap: 10px; }
.qz-cat { display: grid; gap: 2px; margin: 0; }
.qz-cat strong { color: var(--ink); font-family: var(--font-serif); font-size: 19px; font-weight: 600; }
html:is(:lang(ko), :lang(ja), :lang(zh)) .qz-cat strong { font-size: 16px; }
.qz-cat span { color: var(--ink-3); font-size: 14.5px; line-height: 1.6; }
.qz-not { margin: 22px 0 0; padding: 14px 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--ivory); }
.qz-not summary { color: var(--ink); font-size: 14.5px; font-weight: 600; cursor: pointer; }
.qz-not[open] summary { margin-bottom: 12px; }
.qz-told { margin: 0; }
.qz-told > div { display: grid; gap: 2px; padding: 8px 0; }
@media (min-width: 640px) {
    .qz-told > div { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 16px; }
}
.qz-told dt { color: var(--text-3); font-size: 13.5px; }
.qz-told dd { margin: 0; color: var(--ink); font-size: 14.5px; font-weight: 600; }
.qz-result > .qz-block { border-bottom: 0; }
.qz-cta { display: grid; justify-items: start; gap: 12px; margin-top: 8px; padding: clamp(22px, 3.4vw, 32px); border-radius: 20px; background: radial-gradient(110% 80% at 100% 0%, rgba(201, 164, 101, .2), transparent 70%), var(--pub-noir); color: #F3EEE4; }
.qz-cta__note { margin: 0; color: rgba(243, 238, 228, .72); font-size: 14px; line-height: 1.6; }
.qz-cta .ck-textbtn { color: var(--gold-soft); }
@media (max-width: 559px) {
    .qz-cta .pub-btn { width: 100%; }
}
/* Japanese headings break between phrases, never inside a word (walkthrough finding 12: 「ありが／とう」); a phrase longer
   than the line still wraps (overflow-wrap) */
html:lang(ja) :is(.ck-hero__title, .ck-confirm__title, .ck-closed__title, .ck-panel__title, .ck-mailcard__title) {
    word-break: keep-all; overflow-wrap: anywhere; line-break: strict;
}
/* == end page: checkup / quiz == */
