/* Selectum Luxury Club — Portal v1 (premium redesign)
   Design: editorial dark premium, serif + sans, gold + lime accents */

:root{
  --bg:#202A4B;              /* official navy (Selectum brand book) */
  --bg-elev:#2a3458;         /* card bg over body */
  --bg-elev-2:#34406b;       /* hover / secondary elev */
  --bg-light:#3a4670;        /* tertiary */
  --navy:#202A4B;
  --navy-deep:#161e3a;
  --lime:#B3F763;            /* official lime (Selectum brand book) */
  --lime-deep:#9ed454;
  --lime-soft:rgba(179,247,99,.12);
  --text:#ffffff;
  --text-soft:#e8eaf0;
  --text-muted:#aab2cc;
  --text-dim:#7b86a3;
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.16);
  --lime-line:rgba(179,247,99,.30);
  --lime-bg:rgba(179,247,99,.10);
  --shadow:0 30px 60px rgba(0,0,0,.30);
  --shadow-sm:0 12px 26px rgba(0,0,0,.20);
  --font:'Champagne & Limousines','Josefin Sans',-apple-system,Arial,sans-serif;
  --serif:'Champagne & Limousines','Josefin Sans',-apple-system,Arial,sans-serif;
  --sans:'Champagne & Limousines','Josefin Sans',-apple-system,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);color:var(--text-soft);background:var(--bg);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;letter-spacing:.005em;}
h1,h2,h3,h4{font-family:var(--serif);color:#fff;font-weight:600;letter-spacing:-.02em;line-height:1.08;}
h1{font-size:clamp(40px,5.5vw,68px);font-weight:500;}
h2{font-size:clamp(28px,3.4vw,42px);font-weight:500;}
h3{font-size:clamp(20px,1.9vw,26px);}
h4{font-size:18px;letter-spacing:-.01em;}
p{margin:8px 0;}
a{color:inherit;text-decoration:none;transition:color .15s;}
strong{color:#fff;font-weight:500;}
hr.gold{border:none;border-top:1px solid var(--lime);width:48px;margin:14px 0 22px;}
small{font-size:13px;color:var(--text-dim);}
.wrap{max-width:1280px;margin:0 auto;padding:0 32px;}
.narrow{max-width:880px;margin:0 auto;padding:0 32px;}
.tight{max-width:1080px;margin:0 auto;padding:0 32px;}
@media(max-width:680px){.wrap,.narrow,.tight{padding:0 20px;}}

.eyebrow{display:inline-block;font-family:var(--sans);font-size:11.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--lime);font-weight:600;}
.lead{font-size:18px;color:var(--text-muted);max-width:760px;line-height:1.6;font-weight:300;}
.serif{font-family:var(--serif);}
.italic{font-style:italic;}

/* ============ HEADER ============ */
header.portal-header{position:sticky;top:0;z-index:60;background:rgba(14,19,38,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);}
header.portal-header .nav{display:flex;align-items:center;justify-content:space-between;height:78px;gap:24px;}
.brand-lockup{display:inline-flex;align-items:center;gap:14px;}
.brand-lockup .mark{width:36px;height:36px;}
.brand-lockup .wordmark{font-family:var(--serif);font-size:19px;letter-spacing:.32em;color:#fff;font-weight:300;text-transform:uppercase;line-height:1;padding-left:.32em;}
.brand-lockup .wordmark .sub{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.50em;text-transform:lowercase;color:var(--lime);font-weight:300;margin-top:6px;text-align:right;padding-right:.5em;}
nav.primary{display:flex;gap:36px;}
nav.primary a{font-size:14px;color:var(--text-muted);font-weight:500;letter-spacing:.02em;position:relative;padding:6px 0;}
nav.primary a:hover{color:#fff;}
nav.primary a.on{color:#fff;}
nav.primary a.on:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--lime);}
.utility{display:flex;align-items:center;gap:18px;}
.icon-btn{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.05);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--text-soft);cursor:pointer;transition:background .15s,border-color .15s;}
.icon-btn:hover{background:var(--lime-bg);border-color:var(--lime-line);color:var(--lime);}
.avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--lime),var(--lime-deep));color:var(--navy-deep);display:inline-flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:16px;letter-spacing:.02em;border:1px solid var(--lime-line);}
.menu-toggle{display:none;background:transparent;border:none;color:#fff;font-size:22px;cursor:pointer;}
@media(max-width:920px){
  nav.primary{display:none;position:absolute;top:78px;left:0;right:0;background:var(--bg-elev);flex-direction:column;padding:24px 32px;gap:16px;border-bottom:1px solid var(--line);}
  nav.primary.open{display:flex;}
  .menu-toggle{display:block;}
  .utility .icon-btn:not(.avatar):first-of-type{display:none;}
}

/* ============ FOOTER ============ */
footer.portal-footer{margin-top:90px;background:var(--navy-deep);border-top:1px solid var(--line);padding:60px 0 30px;color:var(--text-muted);font-size:14px;}
footer.portal-footer .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;margin-bottom:40px;}
@media(max-width:760px){footer.portal-footer .foot-grid{grid-template-columns:1fr 1fr;gap:32px;}}
footer.portal-footer .foot-brand{margin-bottom:14px;}
footer.portal-footer .foot-brand .wordmark{font-size:22px;}
footer.portal-footer .foot-brand .wordmark .sub{font-size:11px;}
footer.portal-footer .foot-desc{font-size:14px;color:var(--text-dim);line-height:1.55;max-width:300px;font-weight:300;}
footer.portal-footer h4{color:#fff;font-family:var(--sans);font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;margin-bottom:18px;}
footer.portal-footer a{display:block;color:var(--text-muted);padding:5px 0;font-size:14px;font-weight:400;}
footer.portal-footer a:hover{color:var(--lime);}
.foot-socials{display:flex;gap:10px;margin-top:8px;}
.foot-socials a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.05);border:1px solid var(--line);padding:0;}
.foot-socials a:hover{background:var(--lime-bg);border-color:var(--lime-line);}
.foot-socials svg{width:16px;height:16px;color:#fff;}
.foot-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--text-dim);letter-spacing:.02em;}
.foot-bottom .powered{color:var(--text-dim);}
.foot-bottom .powered b{color:var(--lime-deep);font-weight:500;}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-weight:600;font-size:14px;border:none;border-radius:2px;padding:16px 28px;cursor:pointer;transition:transform .15s,background .15s,color .15s,border-color .15s;letter-spacing:.06em;text-transform:uppercase;}
.btn-gold{background:var(--lime);color:var(--navy-deep);}
.btn-gold:hover{background:var(--lime-deep);transform:translateY(-1px);}
.btn-outline-gold{background:transparent;color:var(--lime);border:1px solid var(--lime);}
.btn-outline-gold:hover{background:var(--lime);color:var(--navy-deep);}
.btn-outline-light{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.30);}
.btn-outline-light:hover{border-color:#fff;background:rgba(255,255,255,.08);}
.btn-lime{background:var(--lime);color:var(--navy-deep);}
.btn-lime:hover{background:var(--lime-deep);}
.btn-block{display:flex;width:100%;justify-content:center;}
.btn-sm{padding:11px 20px;font-size:12px;}
.btn-lg{padding:20px 36px;font-size:15px;}

/* ============ HERO PATTERNS ============ */
.hero-full{position:relative;min-height:560px;display:flex;align-items:flex-end;padding:100px 0 80px;overflow:hidden;}
.hero-full .bg-img{position:absolute;inset:0;background-size:cover;background-position:center;}
.hero-full:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,19,38,0) 0%,rgba(14,19,38,.50) 60%,rgba(14,19,38,.95) 100%);}
.hero-full .wrap{position:relative;z-index:2;}
.hero-full h1{color:#fff;letter-spacing:-.025em;margin-bottom:18px;font-size:clamp(40px,6vw,80px);font-weight:500;}
.hero-full h1 em{font-style:italic;color:var(--lime);}
.hero-full .deck{font-size:18px;max-width:580px;color:var(--text-soft);font-weight:300;line-height:1.55;}

.hero-soft{padding:80px 0 40px;}
.hero-soft .eyebrow{margin-bottom:14px;}
.hero-soft h1{margin-bottom:18px;}

/* ============ DASHBOARD COMPONENTS ============ */
.welcome-row{display:grid;grid-template-columns:1.4fr 1fr;gap:36px;margin-top:50px;align-items:stretch;}
@media(max-width:880px){.welcome-row{grid-template-columns:1fr;}}
.savings-card{background:linear-gradient(135deg,var(--bg-elev) 0%,var(--bg-elev-2) 100%);border:1px solid var(--lime-line);border-radius:4px;padding:40px;position:relative;overflow:hidden;}
.savings-card:after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(179,247,99,.10),transparent 60%);right:-100px;top:-100px;}
.savings-card .eyebrow{color:var(--lime);margin-bottom:18px;}
.savings-card .num{font-family:var(--serif);font-size:clamp(56px,6vw,82px);color:#fff;line-height:1;letter-spacing:-.03em;font-weight:500;margin-bottom:6px;}
.savings-card .num .currency{font-size:.5em;color:var(--lime);font-weight:400;}
.savings-card .lbl{font-size:14px;color:var(--text-muted);font-weight:300;letter-spacing:.02em;}
.savings-card .footer-row{display:flex;justify-content:space-between;align-items:flex-end;margin-top:30px;padding-top:24px;border-top:1px solid var(--line);position:relative;z-index:2;}
.savings-card .mini-stat .v{font-size:18px;color:#fff;font-weight:500;}
.savings-card .mini-stat .l{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--text-dim);margin-top:3px;}

.tier-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:4px;padding:32px;position:relative;display:flex;flex-direction:column;justify-content:space-between;}
.tier-card .tier-badge{display:inline-flex;align-items:center;gap:8px;background:var(--lime-bg);border:1px solid var(--lime-line);border-radius:999px;padding:6px 14px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--lime);font-weight:600;align-self:flex-start;}
.tier-card h3{margin-top:16px;font-weight:500;}
.tier-card p{color:var(--text-muted);font-size:14px;line-height:1.55;margin-top:6px;font-weight:300;}
.tier-card .since{margin-top:auto;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--text-dim);}
.tier-card .since b{color:#fff;font-weight:500;}

/* ============ CATEGORY GRID ============ */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:34px;}
@media(max-width:980px){.cat-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:680px){.cat-grid{grid-template-columns:repeat(2,1fr);}}
.cat-tile{position:relative;aspect-ratio:4/5;border-radius:4px;overflow:hidden;background:var(--bg-elev);border:1px solid var(--line);cursor:pointer;transition:transform .35s cubic-bezier(.2,.6,.2,1),border-color .25s;}
.cat-tile:hover{transform:translateY(-4px);border-color:var(--lime-line);}
.cat-tile .gradient{position:absolute;inset:0;}
.cat-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,19,38,.10) 0%,rgba(14,19,38,.85) 100%);}
.cat-tile .ic-large{position:absolute;top:24px;left:24px;width:46px;height:46px;border-radius:50%;background:var(--lime);color:var(--navy-deep);display:flex;align-items:center;justify-content:center;z-index:2;}
.cat-tile .ic-large svg{width:24px;height:24px;}
.cat-tile .label{position:absolute;bottom:0;left:0;right:0;padding:24px;z-index:2;}
.cat-tile .label h3{font-size:22px;color:#fff;font-weight:500;letter-spacing:-.01em;}
.cat-tile .label .count{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--lime-deep);margin-top:4px;font-weight:600;}

/* category photo backgrounds (Unsplash) */
.gr-gastro{background:url('https://images.unsplash.com/photo-1414235077428-338989a2e8c0?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-viajes{background:url('https://images.unsplash.com/photo-1488646953014-85cb44e25828?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-hoteles{background:url('https://images.unsplash.com/photo-1566073771259-6a8506099945?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-aero{background:url('https://images.unsplash.com/photo-1556388158-158ea5ccacbd?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-parques{background:url('https://images.unsplash.com/photo-1532000044644-49fdda81cbf2?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-gym{background:url('https://images.unsplash.com/photo-1571902943202-507ec2618e8f?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-spa{background:url('https://images.unsplash.com/photo-1544161515-4ab6ce6db874?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-salud{background:url('https://images.unsplash.com/photo-1576091160550-2173dba999ef?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-cine{background:url('https://images.unsplash.com/photo-1517604931442-7e0c8ed2963c?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-mascotas{background:url('https://images.unsplash.com/photo-1548199973-03cce0bbc87b?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-moda{background:url('https://images.unsplash.com/photo-1483985988355-763728e1935b?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-tech{background:url('https://images.unsplash.com/photo-1518770660439-4636190af475?w=900&q=80&auto=format&fit=crop') center/cover;}
/* specific benefit variants */
.gr-pizza{background:url('https://images.unsplash.com/photo-1513104890138-7c749659a591?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-wine{background:url('https://images.unsplash.com/photo-1510812431401-41d2bd2722f3?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-whisky{background:url('https://images.unsplash.com/photo-1569529465841-dfecdab7503b?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-glamping{background:url('https://images.unsplash.com/photo-1517457373958-b7bdd4587205?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-coffee{background:url('https://images.unsplash.com/photo-1495474472287-4d71bcdd2085?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-cocktail{background:url('https://images.unsplash.com/photo-1551024601-bec78aea704b?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-brunch{background:url('https://images.unsplash.com/photo-1533089860892-a7c6f0a88666?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-gelato{background:url('https://images.unsplash.com/photo-1501443762994-82bd5dace89a?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-yoga{background:url('https://images.unsplash.com/photo-1545205597-3d9d02c29597?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-spa-warm{background:url('https://images.unsplash.com/photo-1540555700478-4be289fbecef?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-spa-cool{background:url('https://images.unsplash.com/photo-1571902943202-507ec2618e8c?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-cafe2{background:url('https://images.unsplash.com/photo-1509042239860-f550ce710b93?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-resto2{background:url('https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?w=900&q=80&auto=format&fit=crop') center/cover;}
.gr-resto3{background:url('https://images.unsplash.com/photo-1414235077428-338989a2e8c0?w=900&q=80&auto=format&fit=crop') center/cover;}

/* ============ BENEFIT CARDS ============ */
.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:32px;}
@media(max-width:980px){.benefit-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.benefit-grid{grid-template-columns:1fr;}}
.benefit-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,border-color .25s,box-shadow .25s;cursor:pointer;}
.benefit-card:hover{transform:translateY(-4px);border-color:var(--lime-line);box-shadow:var(--shadow-sm);}
.benefit-card .img{aspect-ratio:5/3;background:var(--bg-elev-2);position:relative;overflow:hidden;}
.benefit-card .img .gradient{position:absolute;inset:0;}
.benefit-card .img .cat-chip{position:absolute;top:14px;left:14px;background:rgba(14,19,38,.85);backdrop-filter:blur(8px);color:#fff;font-size:10px;letter-spacing:.20em;text-transform:uppercase;padding:5px 11px;border-radius:2px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--lime-line);font-weight:600;}
.benefit-card .img .cat-chip svg{width:12px;height:12px;color:var(--lime);}
.benefit-card .img .city-chip{position:absolute;top:14px;right:14px;background:rgba(14,19,38,.85);backdrop-filter:blur(8px);color:var(--text-soft);font-size:11px;padding:4px 10px;border-radius:2px;font-weight:500;}
.benefit-card .body{padding:24px 24px 28px;display:flex;flex-direction:column;flex:1;gap:8px;}
.benefit-card .brand{font-size:11px;letter-spacing:.20em;text-transform:uppercase;color:var(--lime);font-weight:600;}
.benefit-card h3{font-size:22px;line-height:1.18;font-weight:500;letter-spacing:-.01em;}
.benefit-card .desc{color:var(--text-muted);font-size:14.5px;font-weight:300;line-height:1.55;margin-top:2px;flex:1;}
.benefit-card .meta{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);}
.benefit-card .save{display:inline-flex;align-items:center;gap:6px;color:var(--lime);font-weight:600;font-size:14px;}
.benefit-card .save svg{width:14px;height:14px;}
.benefit-card .arrow{color:var(--lime);font-size:18px;transition:transform .2s;}
.benefit-card:hover .arrow{transform:translateX(4px);}

/* featured (big) benefit card variant */
.benefit-featured{grid-column:span 2;display:grid;grid-template-columns:1.1fr 1fr;}
@media(max-width:980px){.benefit-featured{grid-column:span 1;grid-template-columns:1fr;}}
.benefit-featured .img{aspect-ratio:auto;min-height:340px;}
.benefit-featured .body{padding:36px;justify-content:center;}
.benefit-featured h3{font-size:32px;}
.benefit-featured .desc{font-size:16px;}

/* ============ FILTER BAR ============ */
.filter-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:24px 0 12px;flex-wrap:wrap;}
.filter-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;flex:1;}
.filter-row::-webkit-scrollbar{display:none;}
.filter-pill{background:var(--bg-elev);color:var(--text-muted);border:1px solid var(--line);border-radius:999px;padding:10px 18px;font-size:13px;font-weight:500;letter-spacing:.02em;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:8px;transition:all .15s;}
.filter-pill:hover{color:#fff;border-color:var(--lime-line);}
.filter-pill.on{background:var(--lime);color:var(--navy-deep);border-color:var(--lime);font-weight:600;}
.filter-pill svg{width:14px;height:14px;}
.searchbox{display:flex;align-items:center;gap:8px;background:var(--bg-elev);border:1px solid var(--line);border-radius:999px;padding:10px 18px;width:260px;transition:border-color .15s;}
.searchbox:focus-within{border-color:var(--lime-line);}
.searchbox input{flex:1;background:transparent;border:none;outline:none;color:#fff;font-family:var(--sans);font-size:14px;}
.searchbox input::placeholder{color:var(--text-dim);}
.searchbox svg{width:16px;height:16px;color:var(--text-dim);}

/* ============ SECTION TITLES ============ */
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-top:80px;margin-bottom:8px;gap:20px;flex-wrap:wrap;}
.section-head h2{font-weight:500;}
.section-head .link{color:var(--lime);font-size:13px;letter-spacing:.04em;font-weight:500;display:inline-flex;align-items:center;gap:6px;}
.section-head .link:hover{color:var(--lime-deep);}
.section-head .link:after{content:"→";transition:transform .2s;}
.section-head .link:hover:after{transform:translateX(3px);}

/* ============ BENEFIT DETAIL ============ */
.detail-hero{position:relative;min-height:560px;display:flex;align-items:flex-end;padding:140px 0 60px;overflow:hidden;border-bottom:1px solid var(--line);}
.detail-hero .bg-img{position:absolute;inset:0;background-size:cover;background-position:center;}
.detail-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,19,38,.30) 0%,rgba(14,19,38,.55) 50%,rgba(14,19,38,.95) 100%);}
.detail-hero .wrap{position:relative;z-index:2;}
.breadcrumb{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--lime-deep);margin-bottom:30px;font-weight:600;}
.breadcrumb a{color:var(--lime-deep);}
.breadcrumb a:hover{color:#fff;}
.breadcrumb span.sep{margin:0 10px;color:var(--text-dim);}

.detail-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:64px;padding:80px 0;}
@media(max-width:880px){.detail-grid{grid-template-columns:1fr;gap:40px;}}
.detail-content h2{font-size:32px;margin-top:40px;margin-bottom:18px;font-weight:500;}
.detail-content h2:first-child{margin-top:0;}
.detail-content p{font-size:17px;color:var(--text-soft);line-height:1.7;font-weight:300;margin-bottom:14px;}
.detail-content p.lead{font-size:20px;color:var(--text);font-weight:300;line-height:1.55;font-style:italic;font-family:var(--serif);}

.howto{margin-top:30px;}
.howto-step{display:flex;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);}
.howto-step:last-child{border-bottom:none;}
.howto-step .n{flex:0 0 auto;font-family:var(--serif);font-size:32px;color:var(--lime);font-weight:500;line-height:1;font-style:italic;}
.howto-step h4{color:#fff;font-family:var(--sans);font-size:16px;font-weight:600;letter-spacing:0;margin-bottom:4px;}
.howto-step p{color:var(--text-muted);font-size:14.5px;font-weight:300;margin:0;}

.detail-aside{position:sticky;top:100px;height:fit-content;}
.cta-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:4px;padding:36px;}
.cta-card .save-tag{display:inline-flex;align-items:center;gap:8px;background:rgba(179,247,99,.12);color:var(--lime);border:1px solid rgba(179,247,99,.30);border-radius:2px;padding:6px 12px;font-size:11px;letter-spacing:.20em;text-transform:uppercase;font-weight:600;}
.cta-card .price-row{display:flex;align-items:baseline;gap:12px;margin:18px 0 4px;}
.cta-card .price{font-family:var(--serif);font-size:46px;color:#fff;font-weight:500;letter-spacing:-.02em;line-height:1;}
.cta-card .price-old{font-size:18px;text-decoration:line-through;color:var(--text-dim);}
.cta-card .price-note{color:var(--text-muted);font-size:13px;margin-bottom:24px;font-weight:300;}
.cta-card .btn{width:100%;justify-content:center;}
.cta-card .btn + .btn{margin-top:10px;}
.cta-card hr{border:none;border-top:1px solid var(--line);margin:24px 0;}
.cta-card .info-row{display:flex;align-items:flex-start;gap:14px;padding:8px 0;}
.cta-card .info-row svg{width:18px;height:18px;color:var(--lime);flex:0 0 auto;margin-top:2px;}
.cta-card .info-row .ttl{font-size:13px;color:var(--text-muted);}
.cta-card .info-row .val{font-size:14px;color:#fff;font-weight:500;margin-top:2px;}

/* ============ ALLY GALLERY ============ */
.ally-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px;}
.ally-gallery .ph{aspect-ratio:4/3;background:var(--bg-elev-2);border-radius:4px;overflow:hidden;position:relative;border:1px solid var(--line);}
.ally-gallery .ph .grad{position:absolute;inset:0;background:linear-gradient(135deg,var(--bg-light),var(--bg-elev-2));}
.ally-gallery .ph:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.40) 100%);}

/* ============ ACCOUNT PAGE ============ */
.account-grid{display:grid;grid-template-columns:280px 1fr;gap:48px;}
@media(max-width:880px){.account-grid{grid-template-columns:1fr;}}
.account-side{position:sticky;top:100px;height:fit-content;}
.profile-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:4px;padding:28px;text-align:center;}
.profile-card .pic{width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,var(--lime),var(--lime-deep));color:var(--navy-deep);font-family:var(--serif);font-size:34px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--lime-line);margin-bottom:14px;}
.profile-card h3{font-size:22px;color:#fff;margin-bottom:4px;font-weight:500;}
.profile-card .email{font-size:13px;color:var(--text-muted);font-weight:300;}
.profile-card .badge{display:inline-flex;align-items:center;gap:6px;background:var(--lime-bg);border:1px solid var(--lime-line);border-radius:999px;padding:5px 12px;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--lime);font-weight:600;margin-top:14px;}

.side-menu{margin-top:16px;background:var(--bg-elev);border:1px solid var(--line);border-radius:4px;overflow:hidden;}
.side-menu a{display:flex;align-items:center;gap:14px;padding:16px 22px;color:var(--text-muted);font-size:14.5px;border-bottom:1px solid var(--line);transition:background .12s,color .12s;}
.side-menu a:last-child{border-bottom:none;}
.side-menu a:hover{background:var(--bg-elev-2);color:#fff;}
.side-menu a.on{background:var(--bg-elev-2);color:#fff;border-left:3px solid var(--lime);padding-left:19px;}
.side-menu a svg{width:16px;height:16px;color:var(--lime);}

.panel{background:var(--bg-elev);border:1px solid var(--line);border-radius:4px;padding:36px;margin-bottom:20px;}
.panel h2{font-size:24px;margin-bottom:10px;font-weight:500;}
.panel p.lead{color:var(--text-muted);font-size:15px;font-weight:300;margin-bottom:20px;}

.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px;}
@media(max-width:680px){.stat-row{grid-template-columns:1fr;}}
.stat-block{background:var(--bg-elev-2);border:1px solid var(--line);border-radius:4px;padding:24px;}
.stat-block .n{font-family:var(--serif);font-size:36px;color:#fff;font-weight:500;line-height:1;letter-spacing:-.02em;}
.stat-block .l{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);margin-top:10px;font-weight:600;}

.use-history{margin-top:6px;}
.use-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);}
.use-row:last-child{border-bottom:none;}
.use-row .thumb{width:54px;height:54px;border-radius:4px;background:var(--bg-elev-2);border:1px solid var(--line);}
.use-row .info h4{font-size:15px;color:#fff;font-weight:500;}
.use-row .info .meta{font-size:12px;color:var(--text-muted);margin-top:3px;letter-spacing:.04em;}
.use-row .save{color:var(--lime);font-weight:600;font-size:14px;}
.use-row .date{color:var(--text-dim);font-size:12px;letter-spacing:.06em;}

/* ============ LOGIN PAGE ============ */
.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--bg);}
@media(max-width:980px){.login-shell{grid-template-columns:1fr;}}
.login-art{position:relative;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><rect width="100" height="100" fill="%23121830"/></svg>') center/cover;overflow:hidden;}
.login-art .photo{position:absolute;inset:0;background:linear-gradient(135deg,#1a2240,#0c1326);}
.login-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,19,38,.20) 0%,rgba(14,19,38,.50) 100%);}
.login-art .quote{position:absolute;bottom:60px;left:60px;right:60px;z-index:2;color:#fff;max-width:520px;}
.login-art .quote .small{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--lime);margin-bottom:24px;font-weight:600;}
.login-art .quote .big{font-family:var(--serif);font-size:38px;line-height:1.18;font-weight:500;letter-spacing:-.02em;}
.login-art .quote .big em{font-style:italic;color:var(--lime);}
.login-art .badge-top{position:absolute;top:40px;left:60px;z-index:2;}
.login-art .badge-top .brand-lockup .wordmark{color:#fff;}

.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:60px 40px;}
@media(max-width:980px){.login-form-wrap{padding:60px 24px;}}
.login-form{width:100%;max-width:420px;}
.login-form .eyebrow{margin-bottom:14px;}
.login-form h1{font-size:46px;font-weight:500;margin-bottom:14px;}
.login-form h1 em{font-style:italic;color:var(--lime);}
.login-form .deck{color:var(--text-muted);font-size:15px;margin-bottom:36px;font-weight:300;line-height:1.55;}
.field{display:flex;flex-direction:column;margin-bottom:18px;}
.field label{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-weight:600;}
.field input{background:transparent;color:#fff;font-size:16px;border:none;border-bottom:1px solid var(--line-strong);padding:12px 0;outline:none;transition:border-color .15s;font-family:var(--sans);}
.field input:focus{border-bottom-color:var(--lime);}
.field input::placeholder{color:var(--text-dim);}
.field-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:24px;}
.field-row a{color:var(--lime);}
.field-row a:hover{color:var(--lime-deep);}
.divider{display:flex;align-items:center;gap:14px;margin:30px 0;color:var(--text-dim);font-size:11px;letter-spacing:.20em;text-transform:uppercase;font-weight:600;}
.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line-strong);}
.login-foot{text-align:center;color:var(--text-muted);font-size:14px;margin-top:30px;font-weight:300;}
.login-foot a{color:var(--lime);font-weight:500;}

/* ============ TAGS / CHIPS ============ */
.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.tag{display:inline-block;background:var(--lime-bg);color:var(--lime);border:1px solid var(--lime-line);border-radius:999px;padding:5px 14px;font-size:12px;font-weight:500;letter-spacing:.04em;}

/* ============ UTILITIES ============ */
.mt-0{margin-top:0;}.mt-8{margin-top:8px;}.mt-12{margin-top:12px;}.mt-24{margin-top:24px;}.mt-40{margin-top:40px;}.mt-60{margin-top:60px;}
.gold{color:var(--lime);}
.lime{color:var(--lime);}
.muted{color:var(--text-muted);}
.center{text-align:center;}
.tabular{font-variant-numeric:tabular-nums;}

/* fade-in for premium feel */
@keyframes fadeUp{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}
.fade-up{animation:fadeUp .6s cubic-bezier(.2,.6,.2,1) both;}
.fade-up.d1{animation-delay:.08s;}
.fade-up.d2{animation-delay:.16s;}
.fade-up.d3{animation-delay:.24s;}

/* ===== catálogo dinámico (datos reales vía /api-beneficios.php) ===== */
.benefit-card .img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.detail-hero .bg-img img{width:100%;height:100%;object-fit:cover;}
.club-vacio{grid-column:1/-1;text-align:center;color:var(--text-muted);padding:60px 20px;font-weight:300;}
.contenido-migrado p{margin:0 0 14px;color:var(--text-soft);font-weight:300;line-height:1.65;}
.contenido-migrado ul,.contenido-migrado ol{margin:0 0 14px 20px;color:var(--text-soft);font-weight:300;line-height:1.65;}
.contenido-migrado strong,.contenido-migrado b{color:#fff;font-weight:600;}
.contenido-migrado img{max-width:100%;border-radius:4px;}
.ally-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;display:block;}
/* blur-fill: imagen completa sin recortes + fondo difuminado de sí misma (tarjetas y galería) */
.ph-fondo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(20px) saturate(1.1) brightness(.72);transform:scale(1.18);}
.ph-principal{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;}
.ally-gallery .ph{border:1px solid var(--line);}
.ally-gallery .ph:after{display:none;}
