/* PlayScope.pro — Hoteles de negocios con casino en Buenos Aires
   Design system: terracota + verde esmeralda oscuro / Fraunces + Work Sans */

:root{
  --color-primary:#8C3B2E;
  --color-primary-dark:#5E2620;
  --color-secondary:#1E3D36;
  --color-neutral-900:#22201D;
  --color-neutral-100:#F6F1EA;
  --color-neutral-50:#FFFFFF;
  --color-border:#D9CFC2;
  --color-success:#4B7A5B;
  --color-warning:#B5862B;
  --font-head:'Fraunces', Georgia, serif;
  --font-body:'Work Sans', Arial, sans-serif;
  --container-max:1200px;
  --radius:10px;
  --shadow-card:0 2px 10px rgba(34,32,29,0.08);
  --focus-ring:0 0 0 3px rgba(140,59,46,0.45);
}

/* CRITICAL: hidden attribute must always win regardless of other selector specificity */
[hidden]{display:none!important;}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--color-neutral-100);
  color:var(--color-neutral-900);
  font-family:var(--font-body);
  font-weight:400;
  font-size:1rem;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:var(--color-primary);}
a:hover{color:var(--color-primary-dark);}
:focus-visible{outline:3px solid var(--color-secondary);outline-offset:2px;box-shadow:var(--focus-ring);}

h1,h2,h3,h4{font-family:var(--font-head);color:var(--color-neutral-900);line-height:1.2;margin:0 0 0.6em;}
h1{font-weight:700;font-size:clamp(1.9rem,4vw,2.75rem);}
h2{font-weight:600;font-size:1.75rem;margin-top:2em;}
h3{font-family:var(--font-body);font-weight:600;font-size:1.25rem;}
p{margin:0 0 1em;}
ul,ol{padding-left:1.3em;}
.container{max-width:var(--container-max);margin:0 auto;padding:0 1.25rem;}

/* Skip link */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--color-primary);color:#fff;padding:0.75em 1.25em;z-index:1000;border-radius:0 0 8px 0;}
.skip-link:focus{left:0;}

/* ===== Header / Nav ===== */
.site-header{background:var(--color-neutral-50);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:200;}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:0.75rem;padding-bottom:0.75rem;}
.brand{display:flex;align-items:center;gap:0.5rem;font-family:var(--font-head);font-weight:700;font-size:1.35rem;color:var(--color-primary);text-decoration:none;}
.brand:hover{color:var(--color-primary-dark);}
.brand svg{flex:none;}
.nav-toggle{display:none;background:none;border:1px solid var(--color-border);border-radius:8px;padding:0.5em 0.75em;font-size:1rem;cursor:pointer;}
.main-nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:1.1rem;margin:0;padding:0;}
.main-nav a{text-decoration:none;color:var(--color-neutral-900);font-weight:500;font-size:0.95rem;}
.main-nav a:hover,.main-nav a[aria-current="page"]{color:var(--color-primary);}
.main-nav a[aria-current="page"]{border-bottom:2px solid var(--color-primary);}

@media (max-width:860px){
  .nav-toggle{display:inline-block;}
  .main-nav{width:100%;display:none;}
  .main-nav.open{display:block;}
  .main-nav ul{flex-direction:column;gap:0.75rem;padding:1rem 0;}
  .site-header .container{flex-wrap:wrap;}
}

/* ===== Hero ===== */
.hero{background:linear-gradient(180deg,var(--color-neutral-100) 0%,#EFE6D8 100%);padding:3rem 0 2.5rem;position:relative;overflow:hidden;}
.hero-inner{display:grid;gap:2rem;align-items:center;grid-template-columns:1.2fr 1fr;}
.hero p.lead{font-size:1.15rem;max-width:56ch;}
.hero-skyline{width:100%;height:auto;color:var(--color-secondary);opacity:0.85;}
@media (max-width:760px){.hero-inner{grid-template-columns:1fr;}}

.cta-row{display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:1.25rem;}
.btn{display:inline-block;padding:0.75em 1.4em;border-radius:8px;font-weight:600;text-decoration:none;font-size:0.95rem;border:2px solid transparent;cursor:pointer;font-family:var(--font-body);}
.btn-primary{background:var(--color-primary);color:#fff;}
.btn-primary:hover{background:var(--color-primary-dark);color:#fff;}
.btn-outline{background:transparent;border-color:var(--color-primary);color:var(--color-primary);}
.btn-outline:hover{background:var(--color-primary);color:#fff;}
.btn-secondary{background:var(--color-secondary);color:#fff;}
.btn-secondary:hover{background:#132924;color:#fff;}

/* ===== Sections / cards ===== */
main{display:block;}
section{padding:2.5rem 0;}
section.alt{background:#EFE6D8;}
.section-lead{max-width:70ch;}

.card-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem;}
.district-card{grid-column:span 6;}
@media (max-width:760px){.district-card{grid-column:span 12;}}
@media (min-width:1024px){.district-card{grid-column:span 3;}}

.card{background:var(--color-neutral-50);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-card);height:100%;display:flex;flex-direction:column;}
.card h3{margin-top:0;}
.card .tags{display:flex;flex-wrap:wrap;gap:0.4rem;margin:0.75rem 0;}
.tag{background:var(--color-neutral-100);border:1px solid var(--color-border);color:var(--color-neutral-900);font-size:0.78rem;padding:0.25em 0.6em;border-radius:999px;}
.tag.age18{background:var(--color-secondary);color:#fff;border-color:var(--color-secondary);font-weight:700;}
.card .card-link{margin-top:auto;font-weight:600;}

.criteria-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;}
@media (max-width:760px){.criteria-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:420px){.criteria-grid{grid-template-columns:1fr;}}
.criteria-card{background:var(--color-neutral-50);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.1rem;text-align:left;}
.criteria-card .icon{color:var(--color-secondary);margin-bottom:0.4rem;}

/* Verificar badge (internal editorial marker) */
.verificar{display:inline-block;background:#FBF2DC;border:1px solid var(--color-warning);color:#6b510f;font-size:0.75rem;font-weight:600;padding:0.15em 0.5em;border-radius:6px;margin-left:0.4em;}

/* ===== Hotel example card ===== */
.hotel-card{background:var(--color-neutral-50);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.4rem;margin-bottom:1.25rem;box-shadow:var(--shadow-card);}
.hotel-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:0.6rem;justify-content:space-between;}
.hotel-card h3{margin:0;}
.hotel-infra{list-style:none;padding:0;margin:0.75rem 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:0.4rem 1rem;font-size:0.92rem;}
@media (max-width:520px){.hotel-infra{grid-template-columns:1fr;}}
.hotel-infra li{display:flex;gap:0.4em;align-items:baseline;}

/* ===== Matrix / comparador ===== */
.filter-panel{background:var(--color-neutral-50);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.5rem;}
@media (min-width:900px){.filter-panel{position:sticky;top:74px;z-index:50;}}
.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;align-items:end;}
.filter-field{display:flex;flex-direction:column;gap:0.35rem;font-size:0.9rem;}
.filter-field label{font-weight:600;}
.filter-field select,.filter-field input[type="range"]{font-family:var(--font-body);padding:0.4em;border:1px solid var(--color-border);border-radius:6px;background:#fff;}
.checkbox-group{display:flex;flex-wrap:wrap;gap:0.6rem;}
.checkbox-group label{display:flex;align-items:center;gap:0.4em;font-size:0.88rem;background:var(--color-neutral-100);border:1px solid var(--color-border);border-radius:999px;padding:0.3em 0.7em;cursor:pointer;}
.checkbox-group input:focus-visible + span,.checkbox-group label:focus-within{outline:3px solid var(--color-secondary);outline-offset:2px;}
.district-chip{display:inline-flex;align-items:center;gap:0.35em;}
.filter-actions{display:flex;gap:0.75rem;margin-top:1rem;flex-wrap:wrap;}
.sort-row{display:flex;gap:0.75rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem;font-size:0.9rem;}

.result-count{font-weight:600;margin-bottom:0.75rem;}
.matrix-table-wrap{overflow-x:auto;}
table.matrix{width:100%;border-collapse:collapse;background:var(--color-neutral-50);font-size:0.9375rem;}
table.matrix caption{text-align:left;font-weight:600;margin-bottom:0.5rem;font-family:var(--font-head);font-size:1.1rem;}
table.matrix th,table.matrix td{border:1px solid var(--color-border);padding:0.6em 0.7em;text-align:left;vertical-align:top;}
table.matrix thead th{background:var(--color-secondary);color:#fff;position:sticky;top:0;}
table.matrix tbody tr:nth-child(even){background:#FBF8F3;}
table.matrix td.match{background:#E9F2EC;border-color:var(--color-success);}
.badge-yes{color:var(--color-success);font-weight:700;}
.badge-no{color:var(--color-primary-dark);}
.badge-na{color:#8a8578;font-style:italic;}
.badge-age18{display:inline-block;background:var(--color-secondary);color:#fff;font-weight:700;font-size:0.72rem;padding:0.15em 0.5em;border-radius:6px;}

/* Card view for narrow screens */
.matrix-cards{display:none;flex-direction:column;gap:1rem;}
.matrix-card{background:var(--color-neutral-50);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;}
.matrix-card dl{margin:0.6rem 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0.35rem 0.75rem;font-size:0.9rem;}
.matrix-card dt{font-weight:600;color:var(--color-secondary);}
.matrix-card dd{margin:0;}
@media (max-width:640px){
  .matrix-table-wrap{display:none;}
  .matrix-cards{display:flex;}
}

.empty-state,.no-match{background:#FBF2DC;border:1px solid var(--color-warning);border-radius:var(--radius);padding:1.25rem;text-align:center;margin:1rem 0;}
.fallback-banner{background:#FBECEA;border:1px solid var(--color-primary);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1rem;}

.static-note{font-size:0.85rem;color:#5a564d;margin-top:0.5rem;}

/* ===== Age gate ===== */
.age-gate{
  position:fixed;inset:0;background:rgba(34,32,29,0.72);display:flex;
  align-items:center;justify-content:center;z-index:1000;padding:1rem;
}
.age-gate[hidden]{display:none!important;}
.age-gate-dialog{background:#fff;border-radius:14px;max-width:460px;width:100%;padding:2rem;box-shadow:0 20px 60px rgba(0,0,0,0.35);text-align:center;}
.age-gate-dialog h2{margin-top:0;}
.age-gate-actions{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem;flex-wrap:wrap;}
.age-gate-legal{font-size:0.78rem;color:#5a564d;margin-top:1.25rem;}

/* ===== Footer ===== */
.site-footer{background:var(--color-primary-dark);color:#F6F1EA;margin-top:3rem;padding:2.5rem 0 1.5rem;}
.site-footer a{color:#F6F1EA;text-decoration:underline;}
.site-footer a:hover{color:#fff;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem;}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr;}}
.footer-grid h4{color:#fff;font-family:var(--font-body);font-size:0.95rem;text-transform:uppercase;letter-spacing:0.04em;}
.footer-grid ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0.4rem;}
.disclaimer{font-size:0.82rem;border-top:1px solid rgba(246,241,234,0.25);margin-top:2rem;padding-top:1.25rem;opacity:0.9;}
.age-badge-footer{display:inline-block;background:var(--color-secondary);color:#fff;font-weight:700;padding:0.15em 0.6em;border-radius:6px;font-size:0.78rem;}

/* ===== Breadcrumb ===== */
.breadcrumb{font-size:0.85rem;padding:0.9rem 0;color:#5a564d;}
.breadcrumb a{color:var(--color-secondary);}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:0.4em;padding:0;margin:0;}
.breadcrumb li:not(:last-child)::after{content:"›";margin-left:0.4em;color:#a89f8e;}

/* ===== Misc content blocks ===== */
.info-box{background:var(--color-neutral-50);border-left:4px solid var(--color-secondary);border-radius:0 8px 8px 0;padding:1rem 1.25rem;margin:1.25rem 0;}
.help-list{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);}
@media (max-width:640px){.help-list{grid-template-columns:1fr;}}
.help-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);padding:1.1rem;}
.help-card a{font-weight:600;}

.error-page{text-align:center;padding:4rem 0;}
.error-page .code{font-family:var(--font-head);font-size:5rem;color:var(--color-primary);font-weight:700;margin:0;}

table.simple{width:100%;border-collapse:collapse;margin:1.25rem 0;font-size:0.92rem;}
table.simple th,table.simple td{border:1px solid var(--color-border);padding:0.55em 0.7em;text-align:left;}
table.simple thead th{background:var(--color-neutral-100);}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
