/* Rio Dorado Casino Resort — neo-brutalist blocks, hard shadows, hot colour */

:root{
    --plum:#2a0f3d;
    --plum-2:#3d1856;
    --plum-3:#511f70;
    --hot:#e0218a;
    --hot-2:#b81770;
    --amber:#ffb020;
    --amber-2:#ffd27a;
    --cream:#fdf8f2;
    --cream-2:#f5e9da;
    --body:#3c2347;
    --mute:#5c4463;
    --line:3px solid var(--plum);
    --drop:8px 8px 0 var(--plum);
    --drop-hot:8px 8px 0 var(--hot);
    --drop-amber:8px 8px 0 var(--amber);
    --drop-cream:8px 8px 0 var(--cream);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth;scroll-padding-top:108px}

body{
    font-family:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:17px;
    line-height:1.68;
    color:var(--body);
    background:var(--cream);
    -webkit-font-smoothing:antialiased;
}

img,svg{display:block;max-width:100%}
a{color:inherit}

h1,h2,h3,h4{
    font-family:"Archivo Black","Archivo",Impact,sans-serif;
    font-weight:400;
    line-height:1.02;
    letter-spacing:-.015em;
    text-transform:uppercase;
    color:var(--plum);
}

/* ---------- furniture ---------- */
.bay{width:min(1180px,100% - 48px);margin-inline:auto}
.column{width:min(780px,100% - 48px);margin-inline:auto}

.chip{
    display:inline-block;
    padding:7px 14px 6px;
    background:var(--amber);
    border:var(--line);
    font-size:11px;
    font-weight:700;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--plum);
}
.chip--hot{background:var(--hot);color:var(--cream)}
.chip--cream{background:var(--cream);color:var(--plum)}
.skew{transform:rotate(-2.5deg)}
.skew-r{transform:rotate(2deg)}

.tag18{
    display:inline-grid;
    place-items:center;
    flex:none;
    width:52px;
    height:52px;
    background:var(--hot);
    border:var(--line);
    box-shadow:4px 4px 0 var(--amber);
    font-family:"Archivo Black","Archivo",sans-serif;
    font-size:17px;
    color:var(--cream);
}

.btn{
    display:inline-block;
    padding:15px 26px 13px;
    border:var(--line);
    background:var(--cream);
    color:var(--plum);
    box-shadow:6px 6px 0 var(--plum);
    font-family:"Archivo",sans-serif;
    font-size:13px;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    text-decoration:none;
    cursor:pointer;
    transition:transform .12s ease,box-shadow .12s ease;
}
.btn:hover{transform:translate(3px,3px);box-shadow:3px 3px 0 var(--plum)}
.btn:active{transform:translate(6px,6px);box-shadow:0 0 0 var(--plum)}
.btn--hot{background:var(--hot);color:var(--cream)}
.btn--amber{background:var(--amber);color:var(--plum)}
.btn--onplum{box-shadow:6px 6px 0 var(--amber)}
.btn--onplum:hover{box-shadow:3px 3px 0 var(--amber)}
.btn--onplum:active{box-shadow:0 0 0 var(--amber)}

/* section heading inside a solid colour block */
.titleblock{margin-bottom:46px;max-width:760px}
.titleblock h2{
    display:inline-block;
    padding:14px 22px 11px;
    background:var(--plum);
    color:var(--cream);
    border:var(--line);
    box-shadow:var(--drop-hot);
    font-size:clamp(25px,4vw,40px);
}
.titleblock p{margin-top:26px;font-size:18px;max-width:640px}
.titleblock .chip{margin-bottom:16px}
.on-plum .titleblock h2{background:var(--amber);color:var(--plum);box-shadow:var(--drop-cream)}
.on-plum .titleblock p{color:rgba(253,248,242,.84)}

/* ---------- masthead ---------- */
.mast{
    position:sticky;
    top:0;
    z-index:80;
    background:var(--cream);
    border-bottom:var(--line);
    box-shadow:0 7px 0 var(--hot);
}
.mast-in{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:84px}

.lockup{display:flex;align-items:center;gap:13px;text-decoration:none}
.lockup img{width:42px;height:42px;border:2px solid var(--plum)}
.lockup-name{
    font-family:"Archivo Black","Archivo",sans-serif;
    font-size:21px;
    line-height:1;
    text-transform:uppercase;
    letter-spacing:-.01em;
    color:var(--plum);
}
.lockup-name span{
    display:block;
    margin-top:5px;
    font-family:"Archivo",sans-serif;
    font-size:9.5px;
    font-weight:700;
    letter-spacing:.26em;
    color:var(--hot-2);
}

.nav{display:flex;align-items:center;gap:24px}
.nav a{
    text-decoration:none;
    font-size:12.5px;
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--plum);
    padding:4px 0 2px;
    border-bottom:3px solid transparent;
}
.nav a:hover{border-bottom-color:var(--hot)}
.nav .btn{padding:11px 18px 9px;font-size:11.5px;box-shadow:4px 4px 0 var(--plum)}
.nav .btn:hover{border-bottom-color:var(--plum)}

.toggle{
    display:none;
    width:50px;height:46px;
    border:var(--line);
    background:var(--amber);
    box-shadow:4px 4px 0 var(--plum);
    cursor:pointer;
}
.toggle i{display:block;width:22px;height:3px;margin:3.5px auto;background:var(--plum)}

/* ---------- hero ---------- */
.hero{
    padding:62px 0 74px;
    position:relative;
    overflow:hidden;
    background:linear-gradient(180deg,var(--cream) 0%,var(--cream-2) 100%);
}
.hero::before{
    content:"";
    position:absolute;
    right:-120px;top:-90px;
    width:420px;height:420px;
    background:var(--amber);
    opacity:.5;
    clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);
}
.hero-in{position:relative;z-index:2}
.hero h1{font-size:clamp(44px,10.2vw,112px);margin:20px 0 0;line-height:.9}
.hero h1 em{font-style:normal;display:block;color:var(--hot)}
.hero-sub{
    display:inline-block;
    margin-top:18px;
    padding:9px 16px 7px;
    background:var(--plum);
    color:var(--amber);
    font-size:13px;
    font-weight:700;
    letter-spacing:.24em;
    text-transform:uppercase;
}
.hero-lead{margin-top:26px;max-width:620px;font-size:19.5px}
.hero-acts{display:flex;flex-wrap:wrap;gap:16px;margin-top:34px}
.hero-18{
    display:flex;
    align-items:center;
    gap:16px;
    margin-top:38px;
    padding:16px 20px;
    max-width:620px;
    background:var(--cream);
    border:var(--line);
    box-shadow:var(--drop-amber);
    font-size:14.5px;
    font-weight:500;
}

.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:56px;position:relative;z-index:2}
.tile{
    position:relative;
    aspect-ratio:4/4.6;
    border:var(--line);
    box-shadow:var(--drop);
    overflow:hidden;
}
.tile span{
    position:absolute;
    left:0;bottom:0;
    z-index:3;
    padding:8px 12px 6px;
    background:var(--plum);
    color:var(--cream);
    border-top:var(--line);
    border-right:var(--line);
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.17em;
    text-transform:uppercase;
}
.tile::after{content:"";position:absolute;inset:0}
.tile:nth-child(1)::after{
    background:
        radial-gradient(circle at 50% 36%,var(--amber) 0 30%,transparent 30%),
        linear-gradient(170deg,var(--hot) 0 52%,var(--hot-2) 52%);
}
.tile:nth-child(2)::after{
    background:repeating-linear-gradient(135deg,var(--plum) 0 16px,var(--plum-3) 16px 32px);
}
.tile:nth-child(3)::after{
    background:
        linear-gradient(0deg,var(--plum) 0 34%,transparent 34%),
        linear-gradient(185deg,var(--amber-2) 0%,var(--amber) 58%,var(--hot) 100%);
}
.tile:nth-child(4)::after{
    background:conic-gradient(from 210deg,var(--plum) 0 25%,var(--hot) 25% 50%,var(--amber) 50% 75%,var(--cream) 75%);
}

/* ---------- slabs ---------- */
.slab{padding:92px 0;border-top:var(--line)}
.slab--cream{background:var(--cream)}
.slab--sand{background:var(--cream-2)}
.slab--plum{background:var(--plum);color:rgba(253,248,242,.86)}
.slab--plum h3,.slab--plum h4{color:var(--cream)}

/* ---------- house intro + glance ---------- */
.story{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
.story p+p{margin-top:16px}
.glance{border:var(--line);box-shadow:var(--drop-hot);background:var(--cream)}
.glance h3{padding:16px 22px 13px;background:var(--plum);color:var(--cream);font-size:17px;letter-spacing:.1em}
.glance dl{padding:8px 22px 20px}
.glance div{display:flex;justify-content:space-between;gap:18px;align-items:baseline;padding:14px 0;border-bottom:2px dotted rgba(42,15,61,.3)}
.glance div:last-child{border-bottom:0}
.glance dt{font-size:11px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--hot-2)}
.glance dd{font-family:"Archivo Black","Archivo",sans-serif;font-size:15px;text-transform:uppercase;text-align:right;color:var(--plum);line-height:1.2}

/* ---------- rooms: chunky stacked cards ---------- */
.keys{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}
.key{
    background:var(--cream);
    border:var(--line);
    box-shadow:var(--drop);
    display:flex;
    flex-direction:column;
}
.key-band{height:54px;border-bottom:var(--line);position:relative}
.key:nth-child(1) .key-band{background:linear-gradient(90deg,var(--hot) 0 60%,var(--amber) 60%)}
.key:nth-child(2) .key-band{background:linear-gradient(90deg,var(--amber) 0 40%,var(--plum) 40%)}
.key:nth-child(3) .key-band{background:linear-gradient(90deg,var(--plum) 0 55%,var(--hot) 55%)}
.key:nth-child(4) .key-band{background:linear-gradient(90deg,var(--plum-3) 0 30%,var(--amber) 30% 65%,var(--hot) 65%)}
.key-band b{
    position:absolute;
    left:20px;top:11px;
    padding:6px 12px 4px;
    background:var(--cream);
    border:var(--line);
    font-family:"Archivo",sans-serif;
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--plum);
}
.key-body{padding:26px 24px 22px;flex:1}
.key-body h3{font-size:27px}
.key-body p{margin-top:12px;font-size:15.5px}
.key-specs{display:grid;grid-template-columns:repeat(3,1fr);border-top:var(--line)}
.key-specs li{list-style:none;padding:14px 10px;text-align:center;border-left:var(--line)}
.key-specs li:first-child{border-left:0}
.key-specs span{display:block;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--hot-2)}
.key-specs b{display:block;margin-top:4px;font-family:"Archivo Black","Archivo",sans-serif;font-size:15px;color:var(--plum);text-transform:uppercase}

/* ---------- casino floor ---------- */
.floor{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:start}
.floor p+p{margin-top:16px}
.gamegrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px;list-style:none}
.gamegrid li{
    padding:16px 16px 14px;
    background:var(--plum-2);
    border:3px solid var(--amber);
    font-size:14.5px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--cream);
    line-height:1.3;
}
.gamegrid li:nth-child(2n){border-color:var(--hot)}
.rulebook{background:var(--cream);border:var(--line);box-shadow:var(--drop-amber);color:var(--body)}
.rulebook h3{padding:17px 24px 14px;background:var(--hot);color:var(--cream);border-bottom:var(--line);font-size:19px;letter-spacing:.06em}
.rulebook ol{list-style:none;counter-reset:rb;padding:10px 24px 4px}
.rulebook li{
    counter-increment:rb;
    display:flex;
    gap:15px;
    padding:14px 0;
    border-bottom:2px dotted rgba(42,15,61,.28);
    font-size:15px;
}
.rulebook li:last-child{border-bottom:0}
.rulebook li::before{
    content:counter(rb);
    flex:none;
    width:28px;height:28px;
    display:grid;place-items:center;
    background:var(--plum);
    color:var(--amber);
    font-family:"Archivo Black","Archivo",sans-serif;
    font-size:14px;
}
.doorhours{margin:14px 24px 24px;padding:14px 16px;background:var(--amber);border:var(--line);font-size:14.5px;font-weight:700;color:var(--plum)}
.doorhours b{display:block;font-family:"Archivo Black","Archivo",sans-serif;font-size:12px;letter-spacing:.2em;margin-bottom:3px}

/* ---------- eat & drink ---------- */
.venues{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.venue{
    background:var(--cream);
    border:var(--line);
    border-left:14px solid var(--hot);
    box-shadow:var(--drop);
    padding:26px 26px 24px;
}
.venue:nth-child(2){border-left-color:var(--amber)}
.venue:nth-child(3){border-left-color:var(--plum-3)}
.venue:nth-child(4){border-left-color:var(--hot-2)}
.venue-kind{font-size:10.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--hot-2)}
.venue h3{margin-top:9px;font-size:25px}
.venue p{margin-top:12px;font-size:15.5px}
.venue time{
    display:inline-block;
    margin-top:18px;
    padding:8px 14px 6px;
    background:var(--plum);
    color:var(--amber);
    font-size:12.5px;
    font-weight:700;
    letter-spacing:.1em;
}

/* ---------- weekly programme: alternating full-width bars ---------- */
.week{border:var(--line);box-shadow:var(--drop-hot);background:var(--cream)}
.week-bar{
    display:grid;
    grid-template-columns:168px 1fr 112px;
    gap:24px;
    align-items:center;
    padding:20px 24px;
    border-bottom:var(--line);
}
.week-bar:last-child{border-bottom:0}
.week-bar:nth-child(even){background:var(--plum);color:rgba(253,248,242,.86)}
.week-bar:nth-child(even) h3{color:var(--cream)}
.week-day{
    display:inline-block;
    padding:8px 13px 6px;
    background:var(--amber);
    border:var(--line);
    font-family:"Archivo Black","Archivo",sans-serif;
    font-size:12.5px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--plum);
}
.week-bar:nth-child(even) .week-day{background:var(--hot);color:var(--cream);border-color:var(--amber)}
.week-bar h3{font-size:19px;letter-spacing:0}
.week-bar p{margin-top:5px;font-size:15px}
.week-bar time{
    font-family:"Archivo Black","Archivo",sans-serif;
    font-size:19px;
    text-align:right;
    color:var(--hot-2);
}
.week-bar:nth-child(even) time{color:var(--amber)}
.week-note{margin-top:22px;font-size:14.5px;font-weight:500}

/* ---------- rooftop deck ---------- */
.deck{display:grid;grid-template-columns:.9fr 1.1fr;gap:52px;align-items:center}
.deck-art{
    aspect-ratio:1/1.08;
    border:var(--line);
    box-shadow:var(--drop-hot);
    position:relative;
    overflow:hidden;
    background:linear-gradient(180deg,var(--amber-2) 0%,var(--amber) 38%,var(--hot) 100%);
}
.deck-art::before{
    content:"";
    position:absolute;
    left:50%;top:20%;
    transform:translateX(-50%);
    width:46%;aspect-ratio:1;
    background:var(--cream);
    border:var(--line);
    border-radius:50%;
}
.deck-art::after{
    content:"";
    position:absolute;
    left:-10%;right:-10%;bottom:0;
    height:46%;
    background:var(--plum);
    clip-path:polygon(0 36%,10% 22%,22% 34%,34% 20%,46% 33%,58% 19%,70% 32%,82% 20%,92% 33%,100% 24%,100% 100%,0 100%);
}
.deck-pairs{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px}
.deck-pairs div{padding:18px 18px 16px;background:var(--cream);border:var(--line);box-shadow:5px 5px 0 var(--plum)}
.deck-pairs b{display:block;font-family:"Archivo Black","Archivo",sans-serif;font-size:15px;text-transform:uppercase;color:var(--plum)}
.deck-pairs span{display:block;margin-top:7px;font-size:14.5px;color:var(--body)}

/* ---------- good to know ---------- */
.knows{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.know{background:var(--cream);border:var(--line);box-shadow:var(--drop);padding:0 0 24px}
.know h3{padding:15px 22px 12px;background:var(--amber);border-bottom:var(--line);font-size:18px;letter-spacing:.07em}
.know:nth-child(2) h3{background:var(--hot);color:var(--cream)}
.know:nth-child(3) h3{background:var(--plum);color:var(--cream)}
.know p{padding:20px 22px 0;font-size:15.5px}

/* ---------- responsible strip ---------- */
.vow{
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:30px;
    align-items:center;
    padding:34px;
    background:var(--cream);
    border:var(--line);
    box-shadow:var(--drop);
}
.vow .tag18{width:78px;height:78px;font-size:26px;box-shadow:6px 6px 0 var(--amber)}
.vow h2{font-size:26px;margin-bottom:10px}
.vow p{font-size:16px}

/* ---------- faq ---------- */
.quiz{display:grid;gap:16px;max-width:900px}
.q{background:var(--cream);border:var(--line);box-shadow:5px 5px 0 var(--plum)}
.q summary{
    list-style:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    gap:18px;
    padding:19px 22px 17px;
    font-family:"Archivo Black","Archivo",sans-serif;
    font-size:17.5px;
    text-transform:uppercase;
    line-height:1.2;
    color:var(--plum);
}
.q summary::-webkit-details-marker{display:none}
.q summary::after{
    content:"+";
    margin-left:auto;
    flex:none;
    width:32px;height:32px;
    display:grid;place-items:center;
    background:var(--amber);
    border:var(--line);
    font-size:20px;
    line-height:1;
    color:var(--plum);
}
.q[open]{box-shadow:5px 5px 0 var(--hot)}
.q[open] summary{background:var(--plum);color:var(--cream);border-bottom:var(--line)}
.q[open] summary::after{content:"\2013";background:var(--hot);color:var(--cream);border-color:var(--cream)}
.q p{padding:20px 22px;font-size:16px}

/* ---------- contact ---------- */
.reach{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:start}
.reach p{margin-top:18px}
.reach .btn{margin-top:28px}
.reach-card{background:var(--cream);border:var(--line);box-shadow:var(--drop-amber);color:var(--body)}
.reach-card div{padding:18px 24px;border-bottom:2px dotted rgba(42,15,61,.28)}
.reach-card div:last-child{border-bottom:0}
.reach-card dt{font-size:10.5px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--hot-2)}
.reach-card dd{margin-top:5px;font-size:16.5px;font-weight:500;color:var(--plum)}
.reach-card a{text-decoration:none;border-bottom:3px solid var(--amber)}

/* ---------- footer ---------- */
.base{background:var(--plum);color:rgba(253,248,242,.8);border-top:7px solid var(--hot);padding:62px 0 26px;font-size:15px}
.base-cols{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:44px}
.base .lockup-name{color:var(--cream)}
.base .lockup-name span{color:var(--amber)}
.base .lockup img{border-color:var(--amber)}
.base h4{
    display:inline-block;
    margin-bottom:16px;
    padding:7px 12px 5px;
    background:var(--amber);
    color:var(--plum);
    font-family:"Archivo",sans-serif;
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.22em;
}
.base ul{list-style:none;display:grid;gap:10px}
.base a{text-decoration:none}
.base a:hover{color:var(--amber)}
.base-about{margin-top:18px;max-width:390px}
.base-end{
    margin-top:46px;
    padding-top:24px;
    border-top:3px solid rgba(255,176,32,.45);
    display:flex;flex-wrap:wrap;gap:18px 32px;align-items:center;justify-content:space-between;
    font-size:13.5px;
}
.base-end .tag18{width:40px;height:40px;font-size:13px;box-shadow:3px 3px 0 var(--amber)}
.smallprint{display:flex;align-items:center;gap:15px;max-width:680px}
.plainbtn{background:none;border:0;padding:0;color:var(--amber);font:inherit;cursor:pointer;text-decoration:underline}

/* ---------- legal pages ---------- */
.doc-top{padding:58px 0 40px;background:var(--cream-2);border-bottom:var(--line)}
.doc-top h1{font-size:clamp(30px,5.6vw,56px);margin-top:18px}
.doc-top p{margin-top:18px;max-width:640px;font-size:17.5px}
.doc-body{padding:56px 0 92px}
.doc-body article{background:var(--cream);border:var(--line);box-shadow:var(--drop-hot);padding:clamp(22px,5vw,52px)}
.doc-body h2{
    font-size:21px;
    margin:38px 0 14px;
    padding-bottom:10px;
    border-bottom:3px solid var(--amber);
}
.doc-body h2:first-child{margin-top:0}
.doc-body p+p{margin-top:13px}
.doc-body ul,.doc-body ol{padding-left:24px;display:grid;gap:9px;margin-top:12px}
.doc-body a{color:var(--hot-2);font-weight:600}
.helpers{list-style:none;padding:0!important;gap:14px!important}
.helpers li{padding:16px 18px;background:var(--cream-2);border:var(--line);border-left:12px solid var(--hot)}
.helpers b{color:var(--plum)}

/* ---------- age door pages ---------- */
.door-page{
    min-height:100vh;
    display:grid;
    align-content:center;
    justify-items:center;
    gap:28px;
    padding:34px 24px 60px;
    background:
        radial-gradient(620px 420px at 16% 4%,rgba(224,33,138,.22),transparent 70%),
        radial-gradient(560px 420px at 88% 96%,rgba(255,176,32,.3),transparent 70%),
        var(--cream-2);
}
.door{
    width:min(600px,100%);
    background:var(--cream);
    border:var(--line);
    box-shadow:12px 12px 0 var(--plum);
    padding:clamp(24px,5vw,46px);
}
.door .lockup{margin-bottom:26px}
.door .tag18{width:88px;height:88px;font-size:30px;box-shadow:7px 7px 0 var(--amber)}
.door h1{margin-top:22px;font-size:clamp(27px,5.2vw,44px)}
.door-lead{margin-top:18px;font-size:17px}
.door-acts{display:flex;flex-wrap:wrap;gap:16px;margin-top:30px}
.door-acts .btn{min-width:216px;text-align:center}
.door-no{
    display:none;
    margin-top:28px;
    padding:22px;
    background:var(--plum);
    border:var(--line);
    box-shadow:6px 6px 0 var(--hot);
    color:rgba(253,248,242,.88);
    font-size:15.5px;
}
.door-no.is-shown{display:block}
.door-no b{
    display:inline-block;
    margin-bottom:12px;
    padding:8px 14px 6px;
    background:var(--amber);
    font-family:"Archivo Black","Archivo",sans-serif;
    font-size:14.5px;
    text-transform:uppercase;
    color:var(--plum);
}
.door-no a{color:var(--amber)}
.door-list{
    list-style:none;
    margin-top:28px;
    padding-top:24px;
    border-top:3px solid rgba(42,15,61,.25);
    display:grid;
    gap:12px;
    font-size:14.5px;
}
.door-list li{display:flex;gap:13px}
.door-list li::before{
    content:"";
    flex:none;
    width:14px;height:14px;
    margin-top:7px;
    background:var(--hot);
    border:2px solid var(--plum);
}
.door-fine{margin-top:24px;font-size:13px}
.door-fine a{color:var(--hot-2);font-weight:600}

/* ---------- cookie bar ---------- */
.crumbs{
    position:fixed;
    left:24px;right:24px;bottom:24px;
    z-index:140;
    max-width:560px;
    margin-left:auto;
    background:var(--cream);
    border:var(--line);
    box-shadow:var(--drop-hot);
    padding:24px;
    display:none;
}
.crumbs.is-shown{display:block}
/* on the two age-door pages the bar sits in the flow under the card,
   so it can never cover the yes / no buttons at any width */
.door-page .crumbs{position:static;left:auto;right:auto;bottom:auto;margin:0;width:min(600px,100%);max-width:600px}
.crumbs h2{font-size:19px}
.crumbs p{margin-top:8px;font-size:14px}
.crumbs a{color:var(--hot-2);font-weight:600}
.crumb-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.crumb-acts .btn{padding:12px 18px 10px;font-size:11.5px;box-shadow:4px 4px 0 var(--plum)}

/* ---------- responsive ---------- */
@media(max-width:1040px){
    .tiles{grid-template-columns:repeat(2,1fr)}
    .knows{grid-template-columns:1fr}
}
@media(max-width:900px){
    .toggle{display:block}
    .nav{
        position:absolute;top:100%;left:0;right:0;
        flex-direction:column;align-items:stretch;gap:0;
        background:var(--cream);
        border-bottom:var(--line);
        box-shadow:0 7px 0 var(--hot);
        padding:8px 24px 22px;
        display:none;
    }
    .nav.is-open{display:flex}
    .nav a{padding:14px 0 12px;border-bottom:2px solid rgba(42,15,61,.18)}
    .nav .btn{margin-top:16px;text-align:center;padding:14px 18px 12px}
    .story,.floor,.deck,.reach{grid-template-columns:1fr;gap:38px}
    .keys,.venues{grid-template-columns:1fr}
    .week-bar{grid-template-columns:150px 1fr}
    .week-bar time{grid-column:2;text-align:left}
    .vow{grid-template-columns:1fr;gap:22px}
    .base-cols{grid-template-columns:1fr 1fr}
    .base-cols>:first-child{grid-column:1/-1}
}
@media(max-width:620px){
    :root{
        --drop:5px 5px 0 var(--plum);
        --drop-hot:5px 5px 0 var(--hot);
        --drop-amber:5px 5px 0 var(--amber);
        --drop-cream:5px 5px 0 var(--cream);
    }
    body{font-size:16px}
    .bay,.column{width:min(1180px,100% - 30px)}
    .slab{padding:62px 0}
    .hero{padding:44px 0 56px}
    .hero-18{gap:13px;padding:14px 16px}
    .gamegrid,.deck-pairs{grid-template-columns:1fr}
    .key-specs{grid-template-columns:1fr}
    .key-specs li{border-left:0;border-top:var(--line);display:flex;justify-content:space-between;text-align:left;padding:11px 20px}
    .key-specs li:first-child{border-top:0}
    .key-specs b{margin-top:0}
    .week-bar{grid-template-columns:1fr;gap:10px;padding:18px}
    .week-day{justify-self:start}
    .door{box-shadow:7px 7px 0 var(--plum)}
    .door-acts .btn{min-width:0;width:100%}
    .crumbs{left:12px;right:12px;bottom:12px;padding:20px}
    .base-cols{grid-template-columns:1fr}
    .vow{padding:24px}
    .q summary{font-size:15px;gap:12px;padding:16px 16px 14px}
    .q p{padding:16px}
    .doc-body h2{font-size:19px}
}
