/* Espace membre V1, présentation publique seulement jusqu'à l'activation de l'authentification. */
.member-body { background:#f3f7fb; color:#0b2440; }
.member-shell { width:min(1080px,calc(100% - 36px)); margin:0 auto; }
.member-header { background:#fff; border-bottom:1px solid #dbe8f1; }
.member-header-inner { min-height:93px; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.member-brand { display:flex; align-items:center; gap:12px; min-width:0; }
.member-brand img { width:59px; height:59px; flex:0 0 auto; object-fit:contain; }
.member-brand span { display:grid; gap:3px; }
.member-brand strong { font-size:1.15rem; font-weight:850; color:#073b67; }
.member-brand small { font-size:.76rem; color:#60748a; font-weight:750; }
.member-nav { display:flex; align-items:center; gap:20px; font-weight:750; color:#294966; font-size:.88rem; }
.member-nav > a:hover { color:#0f6fb8; text-decoration:underline; text-underline-offset:3px; }
.member-language { display:flex; align-items:center; gap:5px; padding:4px 6px; border:1px solid #dbe8f1; border-radius:24px; }
.member-lang { color:#45627a; background:transparent; padding:5px 9px; cursor:pointer; border-radius:30px; font-weight:800; }
.member-lang.active { color:#fff; background:#073b67; }
.member-hero { background:linear-gradient(110deg,#052c4c 0%,#07568b 70%,#0f6fb8 100%); color:#fff; }
.member-hero-inner { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:48px 0 53px; }
.member-overline { margin:0 0 12px; letter-spacing:.12em; font-size:.72rem; color:#a4dfff; font-weight:850; }
.member-hero h1 { font-size:clamp(2rem,4vw,3.1rem); margin:0 0 12px; color:#fff; line-height:1.15; }
.member-hero p:last-child { max-width:650px; margin:0; color:#e3f0fa; font-size:.98rem; line-height:1.65; }
.member-hero-icon { font-size:6rem; line-height:1; color:#a6d8fc; opacity:.9; flex:0 0 auto; }
.member-main { padding:28px 0 54px; }
.member-notice { display:flex; gap:13px; align-items:flex-start; border:1px solid #c5dbea; background:#fff; border-radius:12px; padding:14px 17px; margin-bottom:22px; }
.member-notice > span { font-size:1.25rem; color:#0a638e; }
.member-notice p { margin:0; color:#455d70; line-height:1.55; font-size:.83rem; }
.member-notice strong { display:block; color:#073b67; font-size:.86rem; }
.member-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.member-card { display:flex; flex-direction:column; min-width:0; min-height:272px; padding:26px; border:1px solid #dbe8f1; background:#fff; border-radius:17px; box-shadow:0 8px 25px rgba(3,40,68,.045); }
.member-card-primary { border-top:4px solid #0f6fb8; padding-top:23px; }
.member-icon { display:grid; place-items:center; width:53px; height:53px; background:#eaf6fd; border-radius:13px; font-size:1.35rem; color:#07568b; margin-bottom:17px; }
.member-card-index { margin:0 0 6px; font-size:.63rem; font-weight:850; color:#6c8499; letter-spacing:.11em; }
.member-card h2 { color:#073b67; font-size:1.12rem; margin:0 0 9px; line-height:1.35; }
.member-card-copy > p:not(.member-card-index) { color:#60748a; line-height:1.55; font-size:.84rem; margin:0; }
.member-card-footer { margin-top:auto; padding-top:20px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.member-inactive-status { color:#60748a; font-size:.74rem; font-weight:750; }
.member-action { display:inline-flex; justify-content:center; align-items:center; min-height:42px; padding:10px 15px; border-radius:9px; font-size:.78rem; font-weight:850; text-align:center; }
.member-action-primary { color:#fff; background:#0f6fb8; }
.member-action-primary:hover { background:#09548b; }
.member-action-outline { color:#0a5993; background:#eaf6fd; }
.member-action-outline:hover { background:#ccecff; }
.member-action-disabled { color:#8293a2; background:#edf2f6; cursor:not-allowed; }
.member-empty-ticket { display:flex; gap:10px; padding:12px; background:#f6f8fa; border:1px dashed #cad7e1; border-radius:10px; }
.member-empty-icon { color:#8b9aa8; font-size:1.5rem; line-height:1; }
.member-empty-ticket strong { color:#465a69; font-size:.82rem; }
.member-empty-ticket p { color:#60748a; font-size:.75rem; margin:5px 0 0; line-height:1.5; }
.member-small-note { color:#60748a; font-size:.78rem; line-height:1.65; margin:24px 0 0; text-align:center; }
.member-footer { background:#fff; border-top:1px solid #dbe8f1; }
.member-footer-inner { min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:14px; font-size:.78rem; color:#60748a; }
.member-footer a:hover { text-decoration:underline; }
@media(max-width:730px) {
  .member-grid { grid-template-columns:1fr; }
  .member-hero-inner { padding:38px 0; }
  .member-hero-icon { font-size:4.2rem; }
  .member-card { min-height:235px; padding:22px; }
  .member-card-primary { padding-top:19px; }
}
@media(max-width:440px) {
  .member-shell { width:calc(100% - 28px); }
  .member-header-inner { min-height:79px; gap:6px; }
  .member-brand img { height:43px; width:43px; }
  .member-brand strong { font-size:.91rem; }
  .member-brand small { font-size:.68rem; }
  .member-nav { gap:8px; font-size:.73rem; }
  .member-lang { padding:4px 6px; }
  .member-hero-icon { display:none; }
  .member-notice { padding:12px; }
  .member-footer-inner { flex-direction:column; justify-content:center; padding:16px 0; }
}

.member-auth-form { display:grid; gap:10px; }
.member-auth-form label { color:#3c566d; font-size:.82rem; font-weight:800; margin-top:8px; }
.member-auth-form input { display:block; width:100%; min-width:0; min-height:45px; padding:10px 13px; border:1px solid #cbdde9; border-radius:9px; color:#0b2440; background:#fff; }
.member-auth-form input:focus { outline:3px solid rgba(15,111,184,.16); border-color:#0f6fb8; }
.member-auth-form button { margin-top:13px; width:100%; cursor:pointer; }
.member-auth-form button:disabled { background:#a3b6c4; cursor:not-allowed; }
.member-auth-feedback { font-size:.82rem; line-height:1.5; margin:16px 0 0; }
.member-auth-aside { margin:18px 0 0; font-size:.83rem; color:#60748a; }
.member-auth-aside a { color:#0f6fb8; font-weight:750; text-decoration:underline; }
#member-account-bar { align-items:center; }
#member-account-bar p { flex:1; }
#member-account-link[hidden] { display:none; }

/* Member signup and password recovery: unmistakable success states. */
.member-card [hidden] { display:none !important; }
.member-form-success { display:flex; flex-direction:column; align-items:flex-start; gap:13px; padding:22px 0 4px; outline:none; }
.member-form-success-icon { display:grid;place-items:center;width:62px;height:62px;background:#e4f5ed;color:#14744d;border-radius:50%;font-size:2rem;font-weight:850; }
.member-form-success h2 { color:#073b67;font-size:1.45rem;line-height:1.25;margin:1px 0 0; }
.member-form-success p { color:#435b6f;font-size:.9rem;line-height:1.65;margin:0; }
.member-form-email { width:100%;padding:12px 14px;background:#eaf6fd;border:1px solid #c4e4f6;border-radius:8px;color:#073b67 !important;font-weight:800;overflow-wrap:anywhere; }
.member-form-hint { width:100%;background:#f5f9fc;border-left:3px solid #0f6fb8;padding:12px 14px;color:#435b6f;font-size:.82rem;line-height:1.65; }
.member-form-success .member-action { margin-top:7px; }
.member-auth-feedback:not(:empty) { padding:11px 13px;background:#f3f9fc;border-radius:7px; }


/* Stripe Sandbox: simple grouped day-ticket purchase and test ticket cards. */
.member-checkout-form{display:grid;gap:8px;margin-top:16px;padding:15px;background:#f5f9fc;border:1px solid #d6e6f0;border-radius:9px}
.member-checkout-form label{font-size:.76rem;font-weight:800;color:#274a63}
.member-checkout-form input{box-sizing:border-box;width:100%;min-height:42px;border:1px solid #b9d0e1;border-radius:7px;padding:9px 11px;color:#073b67;background:#fff;font-size:.92rem}
.member-checkout-form button{border:0;cursor:pointer}
.member-checkout-form button:disabled{background:#9aafbd;cursor:not-allowed}
.member-checkout-total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #d7e5ef;font-size:.77rem;color:#476176}
.member-checkout-total strong{font-size:1.15rem;color:#073b67}
.member-checkout-feedback{color:#526c7e;font-size:.78rem;line-height:1.5}
.member-checkout-footnote{margin-top:12px!important;color:#688296!important;font-size:.73rem!important}
.member-ticket-list{display:grid;gap:10px;margin-top:15px}
.member-test-ticket{display:grid;gap:8px;padding:14px;background:#fff8e7;border:2px solid #da9f32;border-radius:9px;color:#75501a;font-size:.78rem}
.member-test-ticket strong{color:#86530c;font-size:.77rem}
.member-test-code{font-size:1.2rem;font-weight:900;letter-spacing:.065em;color:#073b67;word-break:break-all}
.member-orders-list{display:grid;gap:8px;margin-top:14px}
.member-order-line{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:#f5f9fc;border:1px solid #dce8ef;border-radius:8px;color:#3a556c;font-size:.75rem}
.member-order-line strong{color:#073b67;font-size:.8rem}

/* Accès gratuit confirmé par le club : visible avant la quantité payante. */
.member-free-admission{margin:14px 0 4px;padding:13px 15px;background:#f0f8fc;border:1px solid #c9e1ee;border-left:4px solid #126b9c;border-radius:8px}
.member-free-admission strong{color:#073b67;font-size:.85rem;line-height:1.4}
.member-free-admission p{margin:5px 0 0;color:#345468;font-size:.78rem;line-height:1.5}
