/* ============================================================
   Nexr Collector's Pass — 共通スタイル
   ============================================================ */

/* ── 認証フォーム ── */
.nexr-cp-auth {
    max-width: 480px;
    margin: 64px auto;
    padding: 0 20px;
}

.nexr-cp-auth__label {
    display: block;
    font-size: 11px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin-bottom: 16px;
}

.nexr-cp-auth__title {
    font-family: var(--font-serif) !important;
    font-size: clamp(22px, 3vw, 30px) !important;
    letter-spacing: 0.05em;
    font-weight: 400 !important;
    color: var(--color-text) !important;
    margin-bottom: 20px !important;
    line-height: 1.4 !important;
}

.nexr-cp-auth__desc {
    font-size: 14px;
    color: var(--color-text-light);
    line-height: 1.8;
    margin-bottom: 0;
}

/* エラーメッセージ */
.nexr-cp-error-msg {
    margin-top: 20px;
    padding: 12px 16px;
    background: #fff0f0;
    border-left: 3px solid #cc0000;
    color: #cc0000;
    font-size: 13px;
    line-height: 1.6;
}

/* フォーム */
.nexr-cp-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 32px;
}

.nexr-cp-form__field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.nexr-cp-form__label {
    font-size: 12px;
    letter-spacing: 0.08em;
    color: var(--color-text);
}

.nexr-cp-form__input {
    padding: 13px 16px;
    border: 1px solid var(--color-border);
    border-radius: 0;
    font-size: 16px;
    width: 100%;
    box-sizing: border-box;
    color: var(--color-text);
    background: #fff;
    transition: border-color 0.2s;
}

.nexr-cp-form__input:focus {
    outline: none;
    border-color: var(--color-text);
}

.nexr-cp-form__btn {
    width: 100%;
    padding: 15px;
    background: var(--color-text);
    color: #fff;
    border: none;
    border-radius: 0;
    font-size: 13px;
    letter-spacing: 0.12em;
    cursor: pointer;
    transition: opacity 0.2s;
}

.nexr-cp-form__btn:hover {
    opacity: 0.75;
}

/* フッターリンク（特典・利用規約へ） */
.nexr-cp-auth__footer {
    margin-top: 24px;
    text-align: center;
}

.nexr-cp-auth__footer a {
    font-size: 12px;
    letter-spacing: 0.08em;
    color: var(--color-text-light) !important;
    text-decoration: none;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 2px;
    transition: color 0.2s, border-color 0.2s;
}

.nexr-cp-auth__footer a:hover {
    color: var(--color-text) !important;
    border-color: var(--color-text);
}

/* 戻るリンク（OTPフォーム） */
.nexr-cp-auth__back {
    margin-top: 16px;
    text-align: center;
    font-size: 13px;
}

.nexr-cp-auth__back a {
    color: var(--color-text-light) !important;
    text-decoration: none;
    transition: color 0.2s;
}

.nexr-cp-auth__back a:hover {
    color: var(--color-text) !important;
}

/* ============================================================
   デジタルカード
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Jost:wght@300&display=swap');

.nexr-cp-card {
    position: relative;
    width: 100%;
    max-width: 856px;
    margin: 40px auto;
    aspect-ratio: 856 / 540;
    border-radius: 8px;
    overflow: hidden;
}

/* ランク別背景色 */
.nexr-cp-card--collector { background: #F5F4F0; }
.nexr-cp-card--patron    { background: #0A0A0A; }
.nexr-cp-card--curator   { background: #0D1929; }
.nexr-cp-card--founder   { background: #050505; }

/* SVGロゴ（全面）- .entry-content img の height:auto / margin を上書き */
.nexr-cp-card .nexr-cp-card__logo {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: fill;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    border: none !important;
    pointer-events: none;
}

/* Patron / Curator: 中央水平ライン */
.nexr-cp-card__line--center {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 1px;
    pointer-events: none;
}
.nexr-cp-card--patron  .nexr-cp-card__line--center { background: #C9A84C; }
.nexr-cp-card--curator .nexr-cp-card__line--center { background: #D6D6D6; }

/* シリアル番号 */
.nexr-cp-card__serial {
    position: absolute;
    left: 5.6%;
    bottom: 16.5%;
    font-family: 'Jost', sans-serif;
    font-weight: 300;
    font-style: normal;
    font-size: clamp(9px, 0.9vw, 13px);
    letter-spacing: 0.08em;
    line-height: 1;
}

/* 会員氏名 */
.nexr-cp-card__name {
    position: absolute;
    left: 5.6%;
    bottom: 9.3%;
    font-family: 'Jost', sans-serif;
    font-weight: 300;
    font-style: normal;
    font-size: clamp(11px, 1.3vw, 18px);
    letter-spacing: 0.1em;
    line-height: 1;
}

/* LPバナー */
.nexr-cp-banner {
    display: block;
    max-width: 856px;
    margin: 16px auto 0;
    background: #111111;
    color: #D4AF6B !important;
    text-align: center;
    text-decoration: none !important;
    font-size: 11px;
    letter-spacing: 0.18em;
    padding: 18px 24px;
    transition: background 0.2s;
}
.nexr-cp-banner:hover {
    background: #222222;
}

/* 次のランクまでの情報 */
.nexr-cp-next-rank {
    max-width: 856px;
    margin: 12px auto 0;
    text-align: center;
    font-size: 12px;
    letter-spacing: 0.08em;
    color: var(--color-text-light);
}

/* ログアウトボタン */
.nexr-cp-logout {
    text-align: center;
    margin-top: 20px;
}
.nexr-cp-logout a {
    display: inline-block;
    color: #333333 !important;
    text-decoration: none !important;
    font-size: 11px;
    letter-spacing: 0.15em;
    padding: 13px 36px;
    border: 1px solid #bbbbbb;
    transition: border-color 0.2s, color 0.2s;
}
.nexr-cp-logout a:hover {
    color: #000000 !important;
    border-color: #555555;
}

/* テキスト色（ランク別）- .entry-content の継承色を上書き */
.nexr-cp-card.nexr-cp-card--collector span.nexr-cp-card__serial,
.nexr-cp-card.nexr-cp-card--collector span.nexr-cp-card__name  { color: #333333 !important; }

.nexr-cp-card.nexr-cp-card--patron span.nexr-cp-card__serial   { color: #C9A84C !important; }
.nexr-cp-card.nexr-cp-card--patron span.nexr-cp-card__name     { color: #ffffff !important; }

.nexr-cp-card.nexr-cp-card--curator span.nexr-cp-card__serial  { color: #D6D6D6 !important; }
.nexr-cp-card.nexr-cp-card--curator span.nexr-cp-card__name    { color: #E8E8E8 !important; }

.nexr-cp-card.nexr-cp-card--founder span.nexr-cp-card__serial,
.nexr-cp-card.nexr-cp-card--founder span.nexr-cp-card__name    { color: #D4AF6B !important; }

/* ============================================================
   LP（collectors-pass-about）ページ
   ============================================================ */

/* ページ背景 */
body.nexr-cp-about-page {
    background: #0A0A0A !important;
}

/* フルブリード（テーマのコンテナ幅を突き破る） */
.nexr-cp-about-wrap {
    background: #0A0A0A;
    color: #E8E8E8;
    font-family: 'Jost', sans-serif;
    font-weight: 300;
    line-height: 1.8;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    overflow-x: hidden;
}

/* テーマ由来の上書きリセット */
.nexr-cp-about-wrap h1,
.nexr-cp-about-wrap h2 {
    font-weight: 300 !important;
    color: #FFFFFF !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    line-height: 1.4 !important;
}
.nexr-cp-about-wrap p  { color: inherit; margin: 0; }
.nexr-cp-about-wrap a  { text-decoration: none !important; }
.nexr-cp-about-wrap ul { margin: 0; padding: 0; list-style: none; }

/* ── Hero ── */
.nexr-cp-about-hero {
    padding: 80px 24px 80px;
    text-align: center;
    border-bottom: 1px solid #1e1e1e;
}
.nexr-cp-about-label {
    font-size: 10px !important;
    letter-spacing: 0.35em;
    color: #D4AF6B !important;
    text-transform: uppercase;
    margin-bottom: 28px !important;
}
.nexr-cp-about-title {
    font-size: clamp(36px, 6vw, 64px) !important;
    letter-spacing: 0.2em !important;
    margin-bottom: 28px !important;
}
.nexr-cp-about-sub {
    font-size: 13px !important;
    color: #888 !important;
    letter-spacing: 0.1em;
    line-height: 2 !important;
    max-width: 440px;
    margin: 0 auto 48px !important;
}
.nexr-cp-about-cta-btn {
    display: inline-block;
    border: 1px solid #D4AF6B;
    color: #D4AF6B !important;
    font-family: 'Jost', sans-serif;
    font-weight: 300;
    font-size: 10px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    padding: 14px 40px;
    transition: background 0.2s, color 0.2s;
}
.nexr-cp-about-cta-btn:hover {
    background: #D4AF6B !important;
    color: #000 !important;
}

/* ── セクション共通 ── */
.nexr-cp-about-section {
    max-width: 1080px;
    margin: 0 auto;
    padding: 80px 24px;
}
.nexr-cp-about-section-label {
    font-size: 10px !important;
    letter-spacing: 0.35em;
    color: #D4AF6B !important;
    text-transform: uppercase;
    margin-bottom: 14px !important;
    text-align: center;
}
.nexr-cp-about-section-title {
    font-size: 20px !important;
    letter-spacing: 0.18em !important;
    text-align: center;
    margin-bottom: 48px !important;
}
.nexr-cp-about-divider {
    border: none !important;
    border-top: 1px solid #1e1e1e !important;
    margin: 0 !important;
}

/* ── About ── */
.nexr-cp-about-text {
    max-width: 600px;
    margin: 0 auto !important;
    text-align: center;
    color: #888 !important;
    font-size: 13px;
    letter-spacing: 0.06em;
    line-height: 2.2 !important;
}

/* ── ランクカードグリッド ── */
.nexr-cp-rank-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.nexr-cp-rank-card {
    padding: 36px 24px 32px;
    border: 1px solid transparent;
}
.nexr-cp-rank-card--collector { background: #F5F4F0; border-color: #e0dfd9; }
.nexr-cp-rank-card--patron    { background: #0A0A0A; border-color: #2a2a2a; }
.nexr-cp-rank-card--curator   { background: #0D1929; border-color: #1a2e45; }
.nexr-cp-rank-card--founder   { background: #050505; border-color: #2a2000; }

.nexr-cp-rank-card__name {
    font-size: 12px !important;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    margin-bottom: 6px !important;
}
.nexr-cp-rank-card--collector .nexr-cp-rank-card__name { color: #333 !important; }
.nexr-cp-rank-card--patron    .nexr-cp-rank-card__name { color: #D4AF6B !important; }
.nexr-cp-rank-card--curator   .nexr-cp-rank-card__name { color: #D6D6D6 !important; }
.nexr-cp-rank-card--founder   .nexr-cp-rank-card__name { color: #D4AF6B !important; }

.nexr-cp-rank-card__threshold {
    font-size: 11px !important;
    letter-spacing: 0.08em;
    padding-bottom: 20px;
    margin-bottom: 20px !important;
    border-bottom: 1px solid;
}
.nexr-cp-rank-card--collector .nexr-cp-rank-card__threshold { color: #888 !important; border-color: #ccc; }
.nexr-cp-rank-card--patron    .nexr-cp-rank-card__threshold { color: #666 !important; border-color: #2a2a2a; }
.nexr-cp-rank-card--curator   .nexr-cp-rank-card__threshold { color: #666 !important; border-color: #1a2e45; }
.nexr-cp-rank-card--founder   .nexr-cp-rank-card__threshold { color: #666 !important; border-color: #2a2000; }

.nexr-cp-rank-card__benefits { font-size: 12px; letter-spacing: 0.04em; line-height: 1.6; }
.nexr-cp-rank-card__benefits li {
    padding: 5px 0;
    display: flex;
    align-items: flex-start;
    gap: 8px;
}
.nexr-cp-rank-card__benefits li::before {
    content: '—';
    flex-shrink: 0;
    font-size: 10px;
    margin-top: 2px;
}
.nexr-cp-rank-card--collector .nexr-cp-rank-card__benefits             { color: #555; }
.nexr-cp-rank-card--collector .nexr-cp-rank-card__benefits li::before  { color: #bbb; }
.nexr-cp-rank-card--patron    .nexr-cp-rank-card__benefits             { color: #AAA; }
.nexr-cp-rank-card--patron    .nexr-cp-rank-card__benefits li::before  { color: #D4AF6B; }
.nexr-cp-rank-card--curator   .nexr-cp-rank-card__benefits             { color: #AAA; }
.nexr-cp-rank-card--curator   .nexr-cp-rank-card__benefits li::before  { color: #D6D6D6; }
.nexr-cp-rank-card--founder   .nexr-cp-rank-card__benefits             { color: #AAA; }
.nexr-cp-rank-card--founder   .nexr-cp-rank-card__benefits li::before  { color: #D4AF6B; }

/* ── 特典テーブル ── */
.nexr-cp-benefits-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    color: #E8E8E8;
}
.nexr-cp-benefits-table th,
.nexr-cp-benefits-table td {
    padding: 14px 12px;
    border-bottom: 1px solid #1a1a1a;
    text-align: center;
    vertical-align: middle;
    background: none !important;
    color: inherit;
}
.nexr-cp-benefits-table th:first-child,
.nexr-cp-benefits-table td:first-child {
    text-align: left;
    color: #999 !important;
    letter-spacing: 0.04em;
    padding-left: 0;
}
.nexr-cp-benefits-table thead th {
    color: #555 !important;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    border-bottom: 1px solid #333;
    padding-bottom: 18px;
    font-weight: 300;
}
.nexr-cp-benefits-table thead th.nexr-cp-col-founder { color: #D4AF6B !important; }
.nexr-cp-check     { color: #D4AF6B; font-size: 15px; }
.nexr-cp-dash      { color: #2a2a2a; }
.nexr-cp-note      { color: #666; font-size: 11px; letter-spacing: 0.05em; }
.nexr-cp-note-gold { color: #D4AF6B; font-size: 11px; letter-spacing: 0.05em; }

/* ── アコーディオン ── */
.nexr-cp-accordion { max-width: 680px; margin: 0 auto; }
.nexr-cp-accordion-item { border-bottom: 1px solid #1a1a1a; }
.nexr-cp-accordion-item:first-child { border-top: 1px solid #1a1a1a; }
.nexr-cp-accordion-trigger {
    width: 100%;
    background: none !important;
    border: none !important;
    color: #CCC !important;
    font-family: 'Jost', sans-serif;
    font-weight: 300;
    font-size: 13px;
    letter-spacing: 0.08em;
    text-align: left;
    padding: 20px 0;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    transition: color 0.2s;
    box-shadow: none !important;
    border-radius: 0 !important;
}
.nexr-cp-accordion-trigger:hover { color: #FFFFFF !important; }
.nexr-cp-accordion-icon {
    font-size: 18px;
    color: #D4AF6B;
    flex-shrink: 0;
    line-height: 1;
    transition: transform 0.25s;
}
.nexr-cp-accordion-trigger[aria-expanded="true"] .nexr-cp-accordion-icon { transform: rotate(45deg); }
.nexr-cp-accordion-content {
    display: none;
    padding: 0 0 20px;
    color: #666;
    font-size: 13px;
    line-height: 2;
    letter-spacing: 0.05em;
}
.nexr-cp-accordion-content.nexr-cp-acc-open { display: block; }
.nexr-cp-terms-text { font-size: 12px; line-height: 2; color: #555; }
.nexr-cp-terms-text p         { margin-bottom: 16px !important; color: #555 !important; }
.nexr-cp-terms-text strong    { color: #888; font-weight: 400; }

/* ── CTA ── */
.nexr-cp-about-cta {
    text-align: center;
    padding: 80px 24px 120px;
    border-top: 1px solid #1e1e1e;
}
.nexr-cp-about-cta .nexr-cp-about-section-label { margin-bottom: 24px !important; }
.nexr-cp-about-cta-title {
    font-size: clamp(20px, 3vw, 30px) !important;
    letter-spacing: 0.14em !important;
    margin-bottom: 16px !important;
    line-height: 1.6 !important;
}
.nexr-cp-about-cta-sub {
    font-size: 12px !important;
    color: #555 !important;
    letter-spacing: 0.1em;
    margin-bottom: 40px !important;
}

/* ── レスポンシブ ── */
@media (max-width: 840px) {
    .nexr-cp-rank-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
    .nexr-cp-rank-grid { grid-template-columns: 1fr; }
    .nexr-cp-benefits-table { font-size: 11px; }
    .nexr-cp-benefits-table th,
    .nexr-cp-benefits-table td { padding: 10px 6px; }
}
