:root {
  --membership-bg: #fff8ef;
  --membership-surface: #fffdf9;
  --membership-surface-soft: #fff1e3;
  --membership-border: #efd5bf;
  --membership-accent: #a54722;
  --membership-accent-dark: #8f3f20;
  --membership-text: #3d2b1f;
  --membership-muted: #795947;
  --membership-radius: 24px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body { margin: 0; overflow-x: clip; background: var(--membership-bg); color: var(--membership-text); font-family: 'Noto Sans JP', sans-serif; line-height: 1.75; }
body.membership-lightbox-open { overflow: hidden; }
img { max-width: 100%; }
button, a { font: inherit; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid var(--membership-accent-dark); outline-offset: 3px; }

nav { position: sticky; top: 0; z-index: 302; display: flex; align-items: center; justify-content: space-between; min-height: 72px; padding: 14px max(24px, calc((100vw - 1180px) / 2)); border-bottom: 1px solid #f2dcc8; background: rgba(255,248,239,.96); backdrop-filter: blur(12px); }
.nav-logo { color: var(--membership-accent); font: 700 18px/1.2 'Zen Maru Gothic', sans-serif; text-decoration: none; }
.nav-links { display: flex; gap: 18px; margin: 0; padding: 0; list-style: none; }
.nav-links a { color: var(--membership-muted); font-size: 12px; text-decoration: none; }
.nav-links a:hover, .nav-links a:focus-visible, .nav-links a.active, .nav-links a[aria-current="page"] { color: var(--membership-accent); font-weight: 700; }
.hamburger { position: relative; z-index: 303; display: none; width: 48px; height: 48px; padding: 4px; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; background: rgba(255,255,255,.34); }
.hamburger span { display: block; width: 19px; height: 2px; border-radius: 2px; background: var(--membership-muted); }
.mobile-menu { position: fixed; inset: 0; z-index: 300; visibility: hidden; opacity: 0; pointer-events: none; }

.membership-main { padding-bottom: 72px; }
.membership-container { width: min(1120px, calc(100% - 48px)); margin-inline: auto; }
.membership-section { padding-block: 64px; scroll-margin-top: 92px; }
.membership-section.is-soft { background: var(--membership-surface-soft); }
.membership-eyebrow { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 14px; border-radius: 999px; background: #ffddc2; color: var(--membership-accent); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.membership-section-heading { max-width: 760px; margin: 0 auto 30px; text-align: center; }
.membership-section-heading h2 { margin: 10px 0 8px; color: var(--membership-accent-dark); font: 700 clamp(24px, 3.4vw, 36px)/1.35 'Zen Maru Gothic', sans-serif; }
.membership-section-heading p { margin: 0; color: var(--membership-muted); }

.membership-hero { padding: 68px 24px 46px; background: linear-gradient(180deg, #fff1e3 0%, var(--membership-bg) 100%); text-align: center; }
.membership-hero-inner { max-width: 820px; margin: auto; }
.membership-hero h1 { margin: 16px 0 14px; color: var(--membership-accent-dark); font: 700 clamp(32px, 5.5vw, 56px)/1.3 'Zen Maru Gothic', sans-serif; }
.membership-hero-lead { margin: 0 0 24px; color: var(--membership-accent); font: 700 clamp(17px, 2vw, 21px)/1.7 'Zen Maru Gothic', sans-serif; }
.membership-hero-copy { display: grid; gap: 10px; max-width: 720px; margin: auto; color: var(--membership-muted); }
.membership-hero-copy p { margin: 0; }

.membership-pricing { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.membership-price-card { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 30px 24px 24px; scroll-margin-top: 92px; border: 1px solid var(--membership-border); border-radius: var(--membership-radius); background: var(--membership-surface); box-shadow: 0 8px 24px rgba(92,61,46,.06); }
.membership-price-card.is-featured { border: 2px solid rgba(165,71,34,.72); background: #fffaf4; }
.membership-featured-label { position: absolute; top: -14px; right: 18px; padding: 5px 12px; border-radius: 999px; background: var(--membership-accent); color: white; font-size: 11px; font-weight: 700; }
.membership-level { margin: 0 0 5px; color: var(--membership-accent); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.membership-price-card h3 { margin: 0; color: var(--membership-text); font: 700 24px/1.35 'Zen Maru Gothic', sans-serif; }
.membership-tagline { min-height: 56px; margin: 10px 0 18px; color: var(--membership-accent-dark); font-weight: 700; line-height: 1.65; }
.membership-price { display: flex; align-items: baseline; gap: 6px; margin: 0 0 20px; padding: 15px 16px; border-radius: 15px; background: #fff0e2; color: var(--membership-text); font-weight: 700; }
.membership-price span { color: var(--membership-muted); font-size: 12px; font-weight: 500; }
.membership-price strong { color: var(--membership-accent-dark); font: 700 31px/1.15 'Zen Maru Gothic',sans-serif; }
.membership-price small { color: var(--membership-muted); font-size: 11px; font-weight: 500; }
.membership-card-description { margin: 0 0 14px; color: var(--membership-muted); font-size: 13px; }
.membership-price-card ul { display: grid; gap: 12px; margin: 2px 0 24px; padding: 0; list-style: none; }
.membership-price-card li { position: relative; padding-left: 22px; font-size: 13px; line-height: 1.7; }
.membership-price-card li::before { content: '✓'; position: absolute; left: 0; color: var(--membership-accent); font-weight: 700; }
.membership-card-detail-link { align-self: center; margin: auto 0 14px; color: var(--membership-accent-dark); font-size: 13px; font-weight: 700; text-underline-offset: 3px; }
.membership-cta { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 46px; padding: 10px 17px; border-radius: 999px; background: var(--membership-accent); color: white; font-weight: 700; text-align: center; text-decoration: none; }
.membership-cta:hover { background: var(--membership-accent-dark); }
.membership-cta-group { display: flex; width: 100%; max-width: 100%; flex-direction: column; align-items: center; gap: 10px; margin-top: auto; }
.membership-cta-note { width: 100%; margin: 0; color: var(--membership-muted); font-size: 11px; font-weight: 500; line-height: 1.45; text-align: center; }
.membership-cta-group.is-desktop { display: none; }
.membership-early-join { width: 100%; margin-top: 24px; padding: 22px 24px; border: 1px solid var(--membership-border); border-radius: 20px; background: var(--membership-surface); box-shadow: 0 8px 24px rgba(92,61,46,.05); }
.membership-early-join h3 { margin: 0 0 10px; color: var(--membership-accent-dark); font: 700 clamp(18px,2.2vw,23px)/1.5 'Zen Maru Gothic',sans-serif; }
.membership-early-join p { margin: 0; color: var(--membership-text); }
.membership-early-join p + p { margin-top: 8px; }
.membership-early-join small { display: block; margin-top: 12px; color: var(--membership-muted); font-size: 12px; line-height: 1.65; }
.membership-web-join { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .62fr); gap: 18px 28px; width: 100%; margin-top: 16px; padding: 22px 24px; border: 1px solid #e8c9ad; border-radius: 20px; background: #fff8f0; }
.membership-web-join h3 { margin: 0 0 10px; color: var(--membership-accent-dark); font: 700 clamp(18px,2.1vw,22px)/1.5 'Zen Maru Gothic',sans-serif; }
.membership-web-join p { margin: 0; color: var(--membership-text); }
.membership-web-join p + p { margin-top: 7px; }
.membership-web-prices { align-self: center; padding: 15px 17px; border-radius: 16px; background: var(--membership-surface); }
.membership-web-prices h4 { margin: 0 0 8px; color: var(--membership-accent-dark); font: 700 15px/1.5 'Zen Maru Gothic',sans-serif; }
.membership-web-prices ul { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.membership-web-prices li { display: flex; justify-content: space-between; gap: 14px; color: var(--membership-text); font-size: 13px; }
.membership-web-prices strong { flex: 0 0 auto; color: var(--membership-accent-dark); }
.membership-web-join small { grid-column: 1 / -1; color: var(--membership-muted); font-size: 12px; line-height: 1.65; }
.membership-plan-nav, .membership-compact-pricing { display: none; }
.membership-compact-card { position: relative; display: flex; min-width: 0; flex-direction: column; padding: 18px 14px; border: 1px solid var(--membership-border); border-radius: 18px; background: var(--membership-surface); }
.membership-compact-card.is-featured { border: 2px solid rgba(165,71,34,.72); background: #fffaf4; }
.membership-compact-card h3 { margin: 0; color: var(--membership-text); font: 700 18px/1.4 'Zen Maru Gothic', sans-serif; }
.membership-compact-tagline { margin: 7px 0; color: var(--membership-accent-dark); font-size: 12px; font-weight: 700; }
.membership-compact-price { display: flex; align-items: baseline; gap: 4px; margin: 4px 0 11px; color: var(--membership-accent-dark); font-family: 'Zen Maru Gothic',sans-serif; }
.membership-compact-price span { color: var(--membership-muted); font-size: 11px; font-weight: 500; }
.membership-compact-price strong { font-size: 23px; line-height: 1.2; }
.membership-compact-price small { color: var(--membership-muted); font-size: 9px; font-weight: 500; }
.membership-compact-perks { display: grid; gap: 6px; margin: 3px 0 14px; padding: 0; color: var(--membership-muted); font-size: 11px; line-height: 1.55; list-style: none; }
.membership-compact-perks li { position: relative; padding-left: 14px; overflow-wrap: anywhere; }
.membership-compact-perks li::before { content: '✓'; position: absolute; left: 0; color: var(--membership-accent); font-weight: 700; }
.membership-compact-detail-link { margin-top: auto; color: var(--membership-accent-dark); font-size: 12px; font-weight: 700; text-underline-offset: 3px; }
.membership-compact-card .membership-cta-group { margin-top: 12px; }
.membership-compact-card .membership-compact-join { min-height: 42px; padding: 8px 10px; color: #fff; font-size: 12px; line-height: 1.45; text-decoration: none; }
.membership-compact-card .membership-featured-label { top: -12px; right: 10px; }

.membership-guide-card { padding: 18px; border: 1px solid var(--membership-border); border-radius: var(--membership-radius); background: var(--membership-surface); }
.membership-image-button { display: block; width: 100%; padding: 0; overflow: hidden; border: 0; border-radius: 17px; background: transparent; cursor: zoom-in; }
.membership-image-button img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; }
.membership-guide-card .membership-image-button img { aspect-ratio: 3 / 2; }
.membership-expand-hint { display: none; margin: 10px 0 0; color: var(--membership-muted); font-size: 12px; text-align: center; }
.membership-anchor-row { margin-top: 18px; text-align: center; }
.membership-anchor-link { color: var(--membership-accent-dark); font-weight: 700; text-underline-offset: 4px; }

.membership-comparison-shell { position: relative; }
.membership-table-wrap { overflow-x: auto; border: 1px solid var(--membership-border); border-radius: 20px; background: var(--membership-surface); }
.membership-table-wrap table { width: 100%; min-width: 650px; border-collapse: collapse; }
.membership-table-wrap th, .membership-table-wrap td { padding: 14px 16px; border-bottom: 1px solid #f1dfcf; text-align: center; }
.membership-table-wrap thead th { background: #fff2e6; color: var(--membership-accent-dark); font: 700 13px/1.4 'Zen Maru Gothic', sans-serif; }
.membership-table-wrap thead th span { display: block; margin-top: 3px; color: var(--membership-muted); font-size: 10px; }
.membership-table-wrap thead th small { display: block; margin-top: 4px; color: var(--membership-accent-dark); font-size: 10px; line-height: 1.4; }
.membership-table-wrap tbody th { position: sticky; left: 0; z-index: 1; width: 38%; background: var(--membership-surface); color: var(--membership-text); font-size: 13px; text-align: left; }
.membership-table-wrap .is-featured { background: #fff8ee; }
.comparison-mark { color: #b8a596; }
.comparison-mark.is-included { color: var(--membership-accent); font-size: 18px; font-weight: 700; }
.membership-swipe-hint { display: flex; align-items: center; gap: 5px; color: var(--membership-accent-dark); font-size: 11px; font-weight: 700; pointer-events: none; }
.membership-swipe-hint[hidden] { display: none; }
.membership-swipe-hint span:first-child { display: inline-block; animation: membership-swipe 1.8s ease-in-out 3; }
@keyframes membership-swipe { 0%, 100% { transform: translateX(0); } 45% { transform: translateX(13px); } }

.membership-tier-stack { display: grid; gap: 32px; }
.membership-tier-section { min-width: 0; padding: 24px; border: 1px solid var(--membership-border); border-radius: var(--membership-radius); background: var(--membership-surface); }
.membership-tier-overview { display: grid; grid-template-columns: minmax(0, 42%) minmax(0, 58%); gap: 28px; align-items: center; }
.membership-tier-copy { grid-column: 2; grid-row: 1; min-width: 0; }
.membership-tier-media { grid-column: 1; grid-row: 1; min-width: 0; }
.membership-tier-media img { display: block; width: 100%; height: auto; border-radius: 18px; }
.membership-tier-copy h3 { margin: 0 0 6px; color: var(--membership-accent-dark); font: 700 27px/1.4 'Zen Maru Gothic', sans-serif; }
.membership-tier-copy p { margin: 0 0 12px; color: var(--membership-muted); }
.membership-detail-cta { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 40px; padding: 8px 16px; border: 1px solid rgba(143,63,32,.52); border-radius: 999px; color: var(--membership-accent-dark); font-size: 13px; font-weight: 700; text-decoration: none; }
.membership-tier-copy .membership-cta-group { width: min(100%, 330px); margin: 5px auto 0; }
.membership-cta-group.is-mobile-flow { display: none; }
.membership-includes { padding: 11px 14px; border-radius: 14px; background: #fff0e2; color: var(--membership-accent-dark) !important; font-weight: 700; }
.membership-perk-grid { display: grid; gap: 12px; margin-top: 20px; }
.membership-perk-grid.is-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.membership-perk-card, .membership-perk-group { min-width: 0; padding: 18px; border: 1px solid #f1dfcf; border-radius: 18px; background: #fffaf5; }
.membership-perk-card h4, .membership-perk-heading h4 { margin: 0 0 8px; color: var(--membership-text); font: 700 18px/1.5 'Zen Maru Gothic', sans-serif; }
.membership-perk-card p, .membership-perk-group p { margin: 0; color: var(--membership-muted); }
.membership-perk-card ul { columns: 2; gap: 30px; margin: 14px 0; padding-left: 1.25em; color: var(--membership-muted); }
.membership-perk-feature { margin-top: 20px; }
.membership-perk-feature > p + p { margin-top: 9px; }
.membership-tier-summary-perks { display: grid; gap: 9px; margin: 14px 0 10px; }
.membership-tier-summary-perks section { padding: 12px 14px; border: 1px solid #f1dfcf; border-radius: 14px; background: #fffaf5; }
.membership-tier-summary-perks h4 { margin: 0 0 5px; color: var(--membership-text); font: 700 15px/1.45 'Zen Maru Gothic', sans-serif; }
.membership-tier-summary-perks p { margin: 0; font-size: 13px; }
.membership-perk-group { margin-top: 20px; padding: 22px; }
.membership-perk-heading { max-width: 760px; margin-bottom: 16px; }
.membership-category-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin-top: 18px; }
.membership-category { padding: 16px; border: 1px solid #f1dfcf; border-radius: 17px; background: #fffaf5; }
.membership-category.is-wide { grid-column: 1 / -1; }
.membership-category h5 { margin: 0 0 8px; color: var(--membership-text); font: 700 16px/1.5 'Zen Maru Gothic', sans-serif; }
.membership-category p, .membership-category ul { font-size: 13px; }
.membership-perk-note { margin-top: 15px !important; padding: 12px 14px; border-radius: 14px; background: #fff0e2; font-size: 13px; }
.membership-photo-perks { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.membership-photo-perks span { display: flex; align-items: center; min-height: 54px; padding: 11px 13px; border: 1px solid #f1dfcf; border-radius: 14px; background: #fff; color: var(--membership-text); font-size: 13px; font-weight: 700; }
.membership-past-content { margin-top: 15px; padding: 16px; border-radius: 16px; background: #fff; }
.membership-past-content strong { color: var(--membership-accent-dark); }
.membership-past-content p { margin-top: 7px; }
.membership-special-edition h5 { margin: 0; color: var(--membership-accent-dark); font: 700 16px/1.5 'Zen Maru Gothic', sans-serif; }

@media (min-width: 1101px) {
  .membership-tier-section.is-compact-detail { display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 60%); column-gap: 28px; align-items: start; }
  .membership-tier-section.is-compact-detail > .membership-tier-overview { display: contents; }
  .membership-tier-section.is-compact-detail .membership-tier-media { grid-column: 1; grid-row: 1 / span 2; }
  .membership-tier-section.is-compact-detail .membership-tier-copy { grid-column: 2; grid-row: 1; }
  .membership-tier-section.is-compact-detail .membership-tier-aside { grid-column: 2; grid-row: 2; min-width: 0; }
  .membership-tier-section.is-compact-detail .membership-perk-grid.is-three { grid-template-columns: 1fr; gap: 8px; margin-top: 8px; }
  .membership-tier-section.is-compact-detail .membership-perk-feature { margin-top: 8px; }
  .membership-tier-section.is-compact-detail .membership-perk-card { padding: 12px 14px; }
  .membership-tier-section.is-compact-detail .membership-perk-card h4 { margin-bottom: 5px; font-size: 15px; }
  .membership-tier-section.is-compact-detail .membership-perk-card p,
  .membership-tier-section.is-compact-detail .membership-perk-card li { font-size: 13px; }
  .membership-tier-section.is-compact-detail .membership-perk-card ul { margin-block: 9px; }
  .membership-tier-section.is-compact-detail .membership-cta-group.is-responsive { display: none; }
  .membership-tier-section .membership-cta-group { margin-right: auto; margin-left: auto; }
  .membership-tier-section.is-compact-detail .membership-cta-group.is-desktop { display: flex; width: min(100%, 330px); margin-top: 14px; }
}

.membership-badge-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 440px)); justify-content: center; gap: 18px; }
.membership-badge-grid .membership-image-button { padding: 10px; border: 1px solid var(--membership-border); background: var(--membership-surface); }
.membership-emoji-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 460px); gap: 36px; align-items: center; }
.membership-emoji-copy { max-width: 580px; }
.membership-emoji-copy h2 { margin: 10px 0 12px; color: var(--membership-accent-dark); font: 700 clamp(24px, 3.2vw, 36px)/1.4 'Zen Maru Gothic', sans-serif; }
.membership-emoji-copy p { color: var(--membership-muted); }
.membership-emoji-layout > .membership-image-button { padding: 10px; border: 1px solid var(--membership-border); background: var(--membership-surface); }

.membership-faq { display: grid; gap: 10px; max-width: 860px; margin: auto; }
.membership-faq details { border: 1px solid var(--membership-border); border-radius: 16px; background: var(--membership-surface); }
.membership-faq summary { padding: 16px 48px 16px 18px; cursor: pointer; color: var(--membership-text); font-weight: 700; list-style: none; }
.membership-faq summary::-webkit-details-marker { display: none; }
.membership-faq summary::after { content: '+'; float: right; margin-right: -28px; color: var(--membership-accent); font-size: 20px; }
.membership-faq details[open] summary::after { content: '−'; }
.membership-faq details p { margin: 0; padding: 0 18px 18px; color: var(--membership-muted); }

.membership-final { text-align: center; }
.membership-final-card { max-width: 820px; margin: auto; padding: 38px; border: 1px solid var(--membership-border); border-radius: 28px; background: var(--membership-surface); }
.membership-final-card h2 { margin: 0 0 14px; color: var(--membership-accent-dark); font: 700 clamp(25px, 3.5vw, 38px)/1.4 'Zen Maru Gothic', sans-serif; }
.membership-final-card p { color: var(--membership-muted); }
.membership-final-card .membership-cta-group { width: min(100%, 360px); margin: 10px auto 0; }
.membership-final-card .membership-cta { padding-inline: 26px; }
.membership-final-web-note { display: grid; gap: 4px; max-width: 650px; margin: 22px auto 18px; padding: 14px 16px; border: 1px solid var(--membership-border); border-radius: 16px; background: #fff8f0; color: var(--membership-muted); font-size: 12px; line-height: 1.65; text-align: left; }
.membership-final-web-note strong { color: var(--membership-accent-dark); font: 700 14px/1.5 'Zen Maru Gothic',sans-serif; }
.membership-notes { display: grid; gap: 7px; max-width: 900px; margin: 28px auto 0; color: #876b5b; font-size: 12px; text-align: left; }
.membership-notes h2 { margin: 0 0 5px; color: var(--membership-accent-dark); font: 700 18px/1.4 'Zen Maru Gothic', sans-serif; }
.membership-notes p { margin: 0; }

.membership-footer { padding: 28px 24px; border-top: 1px solid #f2dcc8; background: #fff0e0; color: var(--membership-muted); font-size: 12px; text-align: center; }
.membership-footer a { color: var(--membership-accent-dark); }

.membership-return-row { display: flex; justify-content: center; margin: 24px 0 2px; }
.membership-return-link { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 9px 18px; border: 1px solid var(--membership-border); border-radius: 999px; background: #fffaf5; color: var(--membership-accent-dark); font-size: 12px; font-weight: 700; text-decoration: none; }
#pricing, #comparison, .membership-tier-section { scroll-margin-top: 92px; }

.membership-lightbox { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(33,23,18,.88); }
.membership-lightbox::backdrop { background: transparent; }
.membership-lightbox-inner { --membership-lightbox-inline-safe: max(20px, env(safe-area-inset-left), env(safe-area-inset-right)); --membership-lightbox-block-safe: max(62px, calc(12px + env(safe-area-inset-top)), calc(12px + env(safe-area-inset-bottom))); position: relative; display: grid; width: 100%; height: 100%; place-items: center; padding: var(--membership-lightbox-block-safe) var(--membership-lightbox-inline-safe); overflow: auto; touch-action: pan-x pan-y pinch-zoom; }
.membership-lightbox img { display: block; max-width: min(1200px, 100%); max-height: calc(100dvh - var(--membership-lightbox-block-safe) - var(--membership-lightbox-block-safe)); width: auto; height: auto; object-fit: contain; user-select: none; }
.membership-lightbox-close { position: fixed; top: calc(10px + env(safe-area-inset-top)); right: calc(16px + env(safe-area-inset-right)); z-index: 2; display: block; width: 48px; height: 48px; padding: 0; border: 1px solid rgba(165,71,34,.24); border-radius: 50%; background: #fffdf9; color: var(--membership-text); box-shadow: inset 0 1px 0 #fff,0 10px 26px rgba(0,0,0,.24); font-size: 0; line-height: 0; cursor: pointer; }
.membership-lightbox-close::before,.membership-lightbox-close::after { position: absolute; top: 50%; left: 50%; width: 21px; height: 2px; border-radius: 2px; background: #5C3D2E; content: ''; transform-origin: 50% 50%; }
.membership-lightbox-close::before { transform: translate(-50%,-50%) rotate(45deg); }
.membership-lightbox-close::after { transform: translate(-50%,-50%) rotate(-45deg); }

@media (max-width: 900px) {
  .membership-container { width: min(100% - 36px, 760px); }
  .membership-pricing { display: none; }
  .membership-compact-pricing { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; align-items: stretch; }
  .membership-tier-overview { grid-template-columns: minmax(220px, 42%) minmax(0, 58%); gap: 20px; }
  .membership-perk-grid.is-three { grid-template-columns: 1fr; }
  .membership-photo-perks { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .membership-emoji-layout { grid-template-columns: minmax(0,1fr) minmax(260px, 40%); gap: 24px; }
  .membership-web-join { grid-template-columns: 1fr; }
  .membership-web-join small { grid-column: auto; }
}

@media (max-width: 820px) {
  .nav-links { display: none; }
  .hamburger { display: flex; }
}

@media (max-width: 1100px) {
  .membership-tier-summary-perks { display: none; }
}

@media (max-width: 640px) {
  nav { min-height: 64px; padding: 12px 18px; }
  .nav-logo { font-size: 16px; }
  .membership-main { padding-bottom: 36px; }
  .membership-container { width: min(100% - 28px, 520px); }
  .membership-section { padding-block: 44px; scroll-margin-top: 76px; }
  .membership-hero { padding: 44px 18px 34px; }
  .membership-hero h1 { font-size: clamp(28px, 9vw, 39px); }
  .membership-hero-copy { font-size: 14px; }
  .membership-plan-nav { display: block; margin-bottom: 18px; text-align: center; }
  .membership-plan-nav p { margin: 0 0 9px; color: var(--membership-muted); font-size: 12px; font-weight: 700; }
  .membership-plan-nav div { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; }
  .membership-plan-nav a { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 12px; border: 1px solid var(--membership-border); border-radius: 999px; background: var(--membership-surface); color: var(--membership-text); font-size: 11px; font-weight: 700; text-decoration: none; }
  .membership-plan-nav a.is-featured { border-color: rgba(217,123,74,.55); color: var(--membership-accent-dark); }
  .membership-plan-nav-label { position: absolute; top: -10px; right: -5px; padding: 2px 6px; border-radius: 999px; background: var(--membership-accent); color: #fff; font-size: 8px; line-height: 1.35; white-space: nowrap; }
  .membership-compact-pricing { display: none; }
  .membership-pricing { display: grid; grid-template-columns: 1fr; overflow: visible; padding: 8px 0 0; }
  .membership-price-card { min-height: 0; padding: 26px 20px 21px; }
  .membership-tagline { min-height: 0; }
  .membership-guide-card { padding: 10px; }
  .membership-expand-hint { display: block; }
  .membership-tier-section { padding: 14px; }
  .membership-tier-overview { grid-template-columns: 1fr; gap: 16px; }
  .membership-tier-copy, .membership-tier-media { grid-column: 1; grid-row: auto; }
  .membership-tier-copy { order: 1; padding: 4px 4px 0; }
  .membership-tier-media { order: 2; }
  .membership-tier-copy { padding: 4px 4px 8px; }
  .membership-tier-copy h3 { font-size: 23px; }
  .membership-tier-copy .membership-cta-group { display: none; }
  .membership-tier-section > .membership-cta-group.is-mobile-flow { display: flex; width: min(100%, 330px); margin: 22px auto 28px; }
  .membership-tier-section > .membership-cta-group.is-mobile-flow + .membership-tier-aside,
  .membership-tier-section > .membership-cta-group.is-mobile-flow + .membership-perk-group { margin-top: 0; }
  .membership-perk-card, .membership-perk-group { padding: 15px; }
  .membership-perk-card ul { columns: 1; }
  .membership-category-grid { grid-template-columns: 1fr; }
  .membership-photo-perks { grid-template-columns: 1fr; }
  .membership-badge-grid { grid-template-columns: 1fr; gap: 12px; }
  .membership-emoji-layout { grid-template-columns: 1fr; gap: 18px; }
  .membership-table-wrap th, .membership-table-wrap td { padding: 12px 10px; }
  .membership-comparison-shell { margin-bottom: 38px; }
  .membership-swipe-hint { position: absolute; right: 8px; bottom: -31px; }
  .membership-final-card { padding: 28px 18px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .membership-swipe-hint span:first-child { animation: none; }
}
