/* OddsForge — oddsforge.pro — estilo "archivo editorial Gran Hotel" */
:root{
  --marmol:#2E3D33;
  --marmol-soft:#3C4F42;
  --laton:#B08D57;
  --laton-soft:#CBA876;
  --marfil:#F3EFE4;
  --marfil-elev:#EAE3D2;
  --tinta:#1C2219;
  --tinta-soft:#4A5248;
  --linea:#D9D0BA;
  --alerta:#8A4E17;
  --alerta-bg:#F6E6D2;
  --edit-bg:#FBF1D6;
  --edit-border:#B08D57;
  --font-head:"Marcellus",Georgia,serif;
  --font-body:"Karla",system-ui,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--font-body);background:var(--marfil);color:var(--tinta);line-height:1.65;}
[hidden]{display:none!important;}
img{max-width:100%;display:block;}
a{color:var(--marmol);}
a:hover{color:var(--laton);}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px;}

/* ---- age gate ---- */
#age-gate{position:fixed;inset:0;background:rgba(28,34,25,.92);display:flex;align-items:center;
  justify-content:center;z-index:999;padding:20px;}
#age-gate .box{background:var(--marfil);border-radius:4px;max-width:440px;width:100%;padding:34px 30px;
  text-align:center;border-top:4px solid var(--laton);}
#age-gate .badge18{font-size:1.5rem;padding:.3em .75em;margin-bottom:16px;display:inline-flex;
  background:var(--marmol);color:var(--marfil);border-radius:4px;font-weight:700;letter-spacing:.03em;}
#age-gate h2{font-family:var(--font-head);font-size:1.3rem;margin:.2em 0 .5em;color:var(--tinta);}
#age-gate p{color:var(--tinta-soft);font-size:.92rem;}
#age-gate .buttons{display:flex;gap:12px;justify-content:center;margin-top:22px;flex-wrap:wrap;}
#age-gate button{padding:12px 24px;border-radius:3px;font-weight:700;cursor:pointer;
  border:1px solid var(--marmol);font-family:var(--font-body);font-size:.92rem;}
#age-gate button.yes{background:var(--marmol);color:var(--marfil);}
#age-gate button.no{background:transparent;color:var(--tinta);}

/* ---- badge ---- */
.badge18{display:inline-flex;align-items:center;justify-content:center;
  min-width:2.1em;padding:.2em .5em;border-radius:3px;font-weight:700;
  font-size:.78rem;background:var(--laton);color:var(--tinta);letter-spacing:.02em;}

/* ---- header / footer ---- */
header.site{border-bottom:2px solid var(--laton);background:var(--marfil);position:sticky;top:0;z-index:20;}
header.site .bar{display:flex;align-items:center;justify-content:space-between;padding:16px 0;gap:16px;flex-wrap:wrap;}
header.site .brand{display:flex;align-items:center;gap:10px;font-family:var(--font-head);
  font-weight:700;font-size:1.3rem;color:var(--marmol);text-decoration:none;letter-spacing:.01em;}
header.site nav{display:flex;gap:18px;flex-wrap:wrap;font-size:.9rem;}
header.site nav a{color:var(--tinta);text-decoration:none;opacity:.85;}
header.site nav a:hover,header.site nav a.active{opacity:1;color:var(--laton);text-decoration:underline;}
main{min-height:60vh;}

footer.site{border-top:2px solid var(--laton);background:var(--marmol);padding:40px 0 26px;
  font-size:.88rem;color:var(--marfil-elev);}
footer.site a{color:var(--marfil-elev);text-decoration:none;display:block;margin-bottom:7px;}
footer.site a:hover{text-decoration:underline;color:var(--laton-soft);}
footer.site h4{font-family:var(--font-head);color:var(--laton-soft);font-size:.95rem;margin:0 0 10px;}
footer.site .fgrid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:24px;}
footer.site .disclaimer{border-top:1px solid rgba(243,239,228,.2);padding-top:18px;font-size:.8rem;color:#C9CFC3;}

/* ---- hero ---- */
.hero{padding:58px 0 42px;background:linear-gradient(180deg,var(--marfil-elev),var(--marfil));
  border-bottom:1px solid var(--linea);position:relative;}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:repeating-linear-gradient(90deg,var(--laton) 0 18px,transparent 18px 28px);}
.hero h1{font-family:var(--font-head);font-size:clamp(1.9rem,4vw,2.9rem);margin:.2em 0 .35em;color:var(--marmol);}
.hero p.lead{font-size:1.08rem;max-width:66ch;color:var(--tinta-soft);}
.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;font-weight:700;color:var(--laton);}
.breadcrumb{font-size:.82rem;color:var(--tinta-soft);margin-bottom:10px;}
.breadcrumb a{color:var(--tinta-soft);}

section{padding:46px 0;}
section.alt{background:var(--marfil-elev);border-top:1px solid var(--linea);border-bottom:1px solid var(--linea);}
h2{font-family:var(--font-head);font-size:1.55rem;color:var(--marmol);margin-top:0;}
h3{font-family:var(--font-head);font-size:1.18rem;color:var(--marmol);}
.prose{max-width:74ch;}
.prose p{max-width:74ch;}

.jr-block{padding:22px;border:1px solid var(--laton);background:#FBF7EC;border-radius:4px;margin:28px 0;
  border-left:4px solid var(--laton);}
.jr-block h3{margin-top:0;}
.jr-block a.help{display:inline-block;margin-top:8px;font-weight:700;}

.grid{display:grid;gap:20px;}
.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.card{border:1px solid var(--linea);border-radius:4px;padding:22px;background:var(--marfil-elev);
  border-top:3px solid var(--laton);}
.card h3{margin-top:0;}
.card a.card-link{text-decoration:none;color:inherit;display:block;}

.timeline-index{display:grid;gap:16px;margin-top:10px;}
.ti-item{display:flex;gap:16px;align-items:flex-start;padding:18px;border:1px solid var(--linea);
  border-radius:4px;background:var(--marfil-elev);text-decoration:none;color:var(--tinta);}
.ti-item:hover{border-color:var(--laton);}
.ti-item .piso{font-family:var(--font-head);font-weight:700;color:var(--laton);min-width:5.2em;}
.ti-item .yr{display:block;font-size:.8rem;color:var(--tinta-soft);margin-top:2px;}

.source{font-size:.85rem;color:var(--tinta-soft);margin-top:6px;}
.source a{color:var(--tinta-soft);}
.editable{background:var(--edit-bg);border:1px dashed var(--edit-border);padding:2px 6px;
  border-radius:3px;font-size:.85em;}

table{width:100%;border-collapse:collapse;margin:18px 0;font-size:.94rem;}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--linea);vertical-align:top;}
th{font-family:var(--font-head);background:var(--marfil-elev);color:var(--marmol);}

.faq details{border-bottom:1px solid var(--linea);padding:14px 0;}
.faq summary{cursor:pointer;font-weight:700;font-family:var(--font-head);color:var(--marmol);}
.faq details p{margin:10px 0 0;color:var(--tinta-soft);}

form.contact{display:grid;gap:14px;max-width:560px;}
form.contact label{font-weight:700;font-size:.9rem;color:var(--marmol);}
form.contact input,form.contact textarea{padding:10px 12px;border:1px solid var(--linea);
  border-radius:3px;font:inherit;background:#fff;}
form.contact button{justify-self:start;padding:11px 24px;border:none;border-radius:3px;
  background:var(--marmol);color:var(--marfil);font-weight:700;cursor:pointer;}
form.contact button:hover{background:var(--laton);color:var(--tinta);}

/* ---- Ascensor del Gran Hotel ---- */
.ascensor-wrap{display:grid;grid-template-columns:140px 1fr;gap:28px;align-items:start;}
@media (max-width:720px){.ascensor-wrap{grid-template-columns:1fr;}}
.shaft{position:relative;background:var(--marmol);border-radius:4px;padding:14px 10px;
  display:flex;flex-direction:column-reverse;gap:8px;min-height:420px;border:3px solid var(--laton);}
.shaft .piso-btn{background:var(--marfil-elev);border:1px solid var(--laton);color:var(--tinta);
  border-radius:3px;padding:10px 6px;font-family:var(--font-head);font-weight:700;font-size:.82rem;
  cursor:pointer;text-align:center;}
.shaft .piso-btn.activo{background:var(--laton);color:var(--tinta);}
.shaft .cabina{position:absolute;left:4px;right:4px;height:46px;background:var(--laton-soft);
  border:2px solid var(--marfil);border-radius:3px;transition:top .55s cubic-bezier(.4,0,.2,1);
  box-shadow:0 0 0 2px var(--marmol-soft) inset;}
.cabina::before{content:"✦";display:flex;align-items:center;justify-content:center;height:100%;
  color:var(--marmol);font-size:1.1rem;}
.piso-card{border:1px solid var(--linea);border-radius:4px;background:var(--marfil-elev);
  padding:26px;border-left:5px solid var(--laton);min-height:260px;}
.piso-card .piso-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--laton);font-weight:700;}
.piso-card h3{margin-top:.2em;}
.piso-card .yr{display:inline-block;background:var(--marmol);color:var(--marfil);font-size:.78rem;
  padding:3px 10px;border-radius:3px;margin-bottom:10px;}
.piso-card a.ver-mas{display:inline-block;margin-top:10px;font-weight:700;}
.ascensor-ayuda{font-size:.82rem;color:var(--tinta-soft);margin-top:12px;}

@media (max-width:640px){
  header.site .bar{flex-direction:column;align-items:flex-start;}
}
