/* Nordkap Bay Casino Resort — hairline minimalism, bone / slate / ice / ochre */

:root{
    --bone:#f4f4f2;
    --bone-2:#eaebe8;
    --slate:#262a2e;
    --slate-2:#3a4046;
    --mute:#6c7479;
    --ice:#93a7b5;
    --ice-2:#cfd8de;
    --ochre:#c08a2e;
    --hair:rgba(38,42,46,.16);
    --hair-strong:rgba(38,42,46,.34);
    --hair-dark:rgba(244,244,242,.2);
}

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

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

body{
    font-family:"Karla",system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:17px;
    line-height:1.68;
    color:var(--slate);
    background:var(--bone);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
}

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

h1,h2,h3,h4{
    font-family:"Bodoni Moda",Didot,Georgia,"Times New Roman",serif;
    font-weight:400;
    line-height:1.08;
    letter-spacing:-.01em;
    overflow-wrap:break-word;
}

/* ---------- measures ---------- */
.frame{width:min(1240px,100% - 56px);margin-inline:auto}
.column{width:min(720px,100% - 56px);margin-inline:auto}
.prose{max-width:62ch}

/* ---------- type furniture ---------- */
.over{
    font-size:11px;
    font-weight:700;
    letter-spacing:.3em;
    text-transform:uppercase;
    color:var(--ochre);
    display:flex;
    align-items:baseline;
    gap:14px;
}
.idx{
    font-family:"Bodoni Moda",Georgia,serif;
    font-weight:400;
    font-size:13px;
    letter-spacing:.06em;
    color:var(--mute);
}
.quiet{color:var(--mute)}
.lead{font-size:clamp(18px,2.1vw,22px);line-height:1.5;color:var(--slate-2)}

.act{
    display:inline-block;
    padding:15px 28px;
    font-family:"Karla",sans-serif;
    font-size:11.5px;
    font-weight:700;
    letter-spacing:.22em;
    text-transform:uppercase;
    text-decoration:none;
    border:1px solid var(--slate);
    color:var(--slate);
    background:transparent;
    cursor:pointer;
    transition:background .22s,color .22s,border-color .22s;
}
.act:hover{background:var(--slate);color:var(--bone)}
.act--fill{background:var(--slate);color:var(--bone)}
.act--fill:hover{background:var(--ochre);border-color:var(--ochre);color:var(--slate)}
.act--pale{border-color:var(--hair-dark);color:var(--bone)}
.act--pale:hover{background:var(--bone);color:var(--slate);border-color:var(--bone)}

.age{
    display:inline-grid;
    place-items:center;
    width:46px;
    height:46px;
    flex:none;
    border:1px solid var(--ochre);
    font-family:"Bodoni Moda",Georgia,serif;
    font-size:15px;
    letter-spacing:.02em;
    color:var(--ochre);
}

/* ---------- sticky strip ---------- */
.strip{
    position:sticky;
    top:0;
    z-index:70;
    background:var(--bone);
    border-bottom:1px solid var(--hair);
}
.strip-in{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    min-height:62px;
}
.mark{display:flex;align-items:center;gap:12px;text-decoration:none}
.mark img{width:26px;height:26px}
.mark-words{
    font-family:"Bodoni Moda",Georgia,serif;
    font-size:19px;
    line-height:1;
    letter-spacing:.01em;
    white-space:nowrap;
}
.mark-words span{
    display:block;
    font-family:"Karla",sans-serif;
    font-size:8.5px;
    font-weight:700;
    letter-spacing:.32em;
    text-transform:uppercase;
    color:var(--mute);
    margin-top:5px;
}
.strip-right{display:flex;align-items:center;gap:8px}
.strip-link{
    text-decoration:none;
    font-size:11.5px;
    font-weight:700;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--ochre);
    padding:8px 4px;
    border-bottom:1px solid transparent;
}
.strip-link:hover{border-color:var(--ochre)}
.toggle{
    background:none;
    border:0;
    border-left:1px solid var(--hair);
    margin-left:10px;
    padding:8px 0 8px 18px;
    font:inherit;
    font-size:11.5px;
    font-weight:700;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--slate);
    cursor:pointer;
}
.toggle .shut{display:none}
.toggle[aria-expanded="true"] .open{display:none}
.toggle[aria-expanded="true"] .shut{display:inline}

.nav{display:none;border-top:1px solid var(--hair);background:var(--bone)}
.nav.on{display:block}
.nav-in{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0 40px;
    padding-bottom:24px;
}
.nav-in a{
    text-decoration:none;
    font-size:14px;
    letter-spacing:.02em;
    color:var(--slate-2);
    padding:16px 0 14px;
    border-top:1px solid var(--hair);
    transition:color .2s;
}
.nav-in a:hover{color:var(--ochre)}

/* ---------- opening ---------- */
.opening{padding:clamp(56px,9vw,120px) 0 0}
.opening h1{
    font-size:clamp(46px,8.6vw,80px);
    margin:26px 0 0;
    max-width:14ch;
}
.opening h1 i{font-style:italic;color:var(--ochre)}
.opening .lead{margin-top:30px;max-width:56ch}
.opening-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}
.opening-note{
    display:flex;
    align-items:center;
    gap:16px;
    margin-top:44px;
    padding-top:22px;
    border-top:1px solid var(--hair);
    font-size:14px;
    color:var(--mute);
    max-width:58ch;
}

.horizon{
    position:relative;
    margin-top:clamp(44px,6vw,80px);
    height:clamp(150px,23vw,250px);
    overflow:hidden;
    background:
        repeating-linear-gradient(90deg,rgba(38,42,46,.07) 0 1px,transparent 1px 46px),
        linear-gradient(180deg,#f4f4f2 0%,#e6ebee 40%,#d3dce1 55%,#93a7b5 56%,#6b7f8d 100%);
    clip-path:polygon(0 0,100% 0,100% 100%,0 92%);
}
.horizon::before{
    content:"";
    position:absolute;
    left:16%;
    top:8%;
    width:clamp(72px,9vw,118px);
    aspect-ratio:1;
    background:radial-gradient(circle at 50% 50%,var(--ochre) 0 44%,rgba(192,138,46,.16) 45% 72%,transparent 73%);
}
.horizon::after{
    content:"";
    position:absolute;
    left:0;right:0;top:56%;
    border-top:1px solid rgba(244,244,242,.6);
}

/* ---------- blocks & heads ---------- */
.block{padding:clamp(64px,8vw,108px) 0}
.block--dark{background:var(--slate);color:var(--bone)}
.block--dark .over{color:var(--ochre)}
.block--dark .idx{color:rgba(244,244,242,.5)}
.block--dark .quiet{color:rgba(244,244,242,.68)}

.head{
    display:grid;
    grid-template-columns:220px 1fr;
    gap:24px 48px;
    padding-top:26px;
    border-top:1px solid var(--hair-strong);
    margin-bottom:clamp(38px,5vw,64px);
}
.block--dark .head{border-top-color:var(--hair-dark)}
.head h2{font-size:clamp(30px,5.4vw,56px);max-width:18ch}
.head .lead{grid-column:2;margin-top:4px;color:var(--mute)}
.block--dark .head .lead{color:rgba(244,244,242,.7)}

.split{display:grid;grid-template-columns:220px 1fr;gap:24px 48px}
.split--wide{grid-template-columns:1fr 1fr;gap:56px}

/* ---------- the house ---------- */
.story p+p{margin-top:18px}
.story .prose p{color:var(--slate-2)}
.glance{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0 48px;
    margin-top:clamp(40px,5vw,66px);
}
.glance div{padding:18px 0 20px;border-top:1px solid var(--hair)}
.glance dt{
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.26em;
    text-transform:uppercase;
    color:var(--ochre);
}
.glance dd{font-family:"Bodoni Moda",Georgia,serif;font-size:21px;line-height:1.3;margin-top:7px}

/* ---------- rooms as a definition list ---------- */
.keys{border-top:1px solid var(--hair)}
.key{
    display:grid;
    grid-template-columns:300px 1fr;
    gap:12px 48px;
    padding:30px 0 32px;
    border-bottom:1px solid var(--hair);
}
.key dt{font-family:"Bodoni Moda",Georgia,serif;font-size:clamp(26px,3.4vw,36px);line-height:1.1}
.key-kind{
    display:block;
    font-family:"Karla",sans-serif;
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.26em;
    text-transform:uppercase;
    color:var(--ochre);
    margin-bottom:12px;
}
.key-note{color:var(--slate-2);max-width:58ch}
.key-facts{
    grid-column:2;
    display:flex;
    flex-wrap:wrap;
    row-gap:8px;
    margin-top:16px;
    font-size:12.5px;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--mute);
}
.key-facts span+span{
    border-left:1px solid var(--hair);
    margin-left:20px;
    padding-left:20px;
}

/* ---------- casino floor ---------- */
.floor p{color:rgba(244,244,242,.76);max-width:60ch}
.floor p+p{margin-top:18px}
.floor-list{
    list-style:none;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 40px;
    margin-top:36px;
    max-width:720px;
}
.floor-list li{
    padding:13px 0;
    border-top:1px solid var(--hair-dark);
    font-size:15px;
    letter-spacing:.02em;
}
.floor-list li::before{content:"\002B\00a0\00a0";color:var(--ochre)}
.rules{list-style:none;counter-reset:r}
.rules-head{
    font-family:"Karla",sans-serif;
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.26em;
    text-transform:uppercase;
    color:var(--ochre);
    margin-bottom:6px;
}
.rules li{
    counter-increment:r;
    display:grid;
    grid-template-columns:38px 1fr;
    gap:14px;
    padding:14px 0;
    border-top:1px solid var(--hair-dark);
    font-size:15px;
    color:rgba(244,244,242,.84);
}
.rules li::before{
    content:counter(r,decimal-leading-zero);
    font-family:"Bodoni Moda",Georgia,serif;
    color:var(--ochre);
}
.floor-hours{
    margin-top:26px;
    padding-top:18px;
    border-top:1px solid var(--hair-dark);
    font-size:13px;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
}
.floor-hours b{color:var(--ochre);font-weight:700}
.floor .act{margin-top:34px}

/* ---------- kitchens ---------- */
.venues{border-top:1px solid var(--hair)}
.venue{
    display:grid;
    grid-template-columns:300px 1fr 150px;
    gap:10px 48px;
    padding:28px 0 30px;
    border-bottom:1px solid var(--hair);
    align-items:start;
}
.venue h3{font-size:clamp(24px,3vw,32px);grid-column:1;grid-row:1}
.venue p{color:var(--slate-2);max-width:56ch;grid-column:2;grid-row:1}
.venue time{
    grid-column:3;
    grid-row:1;
    font-family:"Bodoni Moda",Georgia,serif;
    font-size:18px;
    text-align:right;
    white-space:nowrap;
    color:var(--slate-2);
}

/* ---------- the week ---------- */
.week{border-top:1px solid var(--hair)}
.week-row{
    display:grid;
    grid-template-columns:150px 1fr 110px;
    gap:8px 40px;
    padding:24px 0 26px;
    border-bottom:1px solid var(--hair);
    align-items:baseline;
}
.week-day{
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.26em;
    text-transform:uppercase;
    color:var(--ochre);
}
.week-row h3{font-size:24px;margin-bottom:5px}
.week-row p{font-size:15.5px;color:var(--mute);max-width:58ch}
.week-row time{font-family:"Bodoni Moda",Georgia,serif;font-size:19px;text-align:right}
.week-note{margin-top:26px;font-size:14px;color:var(--mute)}

/* ---------- sauna house ---------- */
.sauna-figure{
    min-height:340px;
    background:
        repeating-linear-gradient(180deg,rgba(38,42,46,.1) 0 1px,transparent 1px 15px),
        radial-gradient(420px 260px at 28% 78%,rgba(192,138,46,.42),transparent 72%),
        linear-gradient(170deg,#dfe4e7 0%,#b9c6ce 52%,#8c9ca8 100%);
    border:1px solid var(--hair);
    position:relative;
}
.sauna-figure::after{
    content:"";
    position:absolute;
    left:0;right:0;bottom:22%;
    border-top:1px solid rgba(244,244,242,.65);
}
.sauna p{color:var(--slate-2);max-width:56ch}
.sauna p+p{margin-top:16px}
.pairs{display:grid;grid-template-columns:1fr 1fr;gap:0 44px;margin-top:34px}
.pairs div{padding:16px 0 18px;border-top:1px solid var(--hair)}
.pairs b{display:block;font-family:"Bodoni Moda",Georgia,serif;font-size:20px;font-weight:400}
.pairs span{display:block;font-size:14.5px;color:var(--mute);margin-top:4px}

/* ---------- good to know ---------- */
.notes{display:grid;grid-template-columns:repeat(3,1fr);gap:0 48px}
.notes section{padding:24px 0 0;border-top:1px solid var(--hair)}
.notes h3{font-size:24px;margin-bottom:10px}
.notes p{font-size:15.5px;color:var(--mute)}

/* ---------- responsible strip ---------- */
.stance{
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:34px;
    align-items:center;
    padding:34px 0;
    border-top:1px solid var(--ochre);
    border-bottom:1px solid var(--ochre);
}
.stance .age{width:68px;height:68px;font-size:22px}
.stance h2{font-size:clamp(24px,3vw,32px);margin-bottom:8px}
.stance p{color:var(--mute);max-width:66ch}

/* ---------- questions ---------- */
.asks{border-top:1px solid var(--hair)}
.asks details{border-bottom:1px solid var(--hair)}
.asks summary{
    list-style:none;
    cursor:pointer;
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:28px;
    padding:22px 0;
    font-family:"Bodoni Moda",Georgia,serif;
    font-size:clamp(19px,2.3vw,25px);
    line-height:1.25;
}
.asks summary::-webkit-details-marker{display:none}
.asks summary::after{
    content:"+";
    flex:none;
    font-family:"Karla",sans-serif;
    font-size:22px;
    line-height:1;
    color:var(--ochre);
    transition:transform .22s;
}
.asks details[open] summary::after{transform:rotate(45deg)}
.asks details p{padding:0 0 24px;color:var(--mute);max-width:66ch}

/* ---------- reach ---------- */
.reach p{color:var(--slate-2);max-width:56ch}
.reach .act{margin-top:28px}
.contact{align-self:start}
.contact div{padding:16px 0 18px;border-top:1px solid var(--hair)}
.contact dt{
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.26em;
    text-transform:uppercase;
    color:var(--ochre);
}
.contact dd{font-size:17px;margin-top:6px}
.contact a{text-decoration:none;border-bottom:1px solid var(--hair-strong)}
.contact a:hover{color:var(--ochre);border-color:var(--ochre)}

/* ---------- foot ---------- */
.foot{
    border-top:1px solid var(--hair-strong);
    padding:clamp(44px,5vw,66px) 0 26px;
    font-size:15px;
    color:var(--mute);
}
.foot-cols{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:40px}
.foot h4{
    font-family:"Karla",sans-serif;
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.26em;
    text-transform:uppercase;
    color:var(--slate);
    margin-bottom:14px;
}
.foot ul{list-style:none;display:grid;gap:9px}
.foot a{text-decoration:none}
.foot a:hover{color:var(--ochre)}
.foot-about{margin-top:16px;max-width:42ch}
.foot-end{
    margin-top:44px;
    padding-top:20px;
    border-top:1px solid var(--hair);
    display:flex;
    flex-wrap:wrap;
    gap:14px 32px;
    align-items:center;
    justify-content:space-between;
    font-size:13px;
}
.foot-end .age{width:34px;height:34px;font-size:11px}
.warn{display:flex;align-items:center;gap:14px;max-width:70ch}
.plainbtn{background:none;border:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline}
.plainbtn:hover{color:var(--ochre)}

/* ---------- legal pages ---------- */
.doc-head{padding:clamp(48px,6vw,80px) 0 0}
.doc-head h1{font-size:clamp(36px,6.4vw,66px);margin-top:18px;max-width:16ch}
.doc-head p{margin-top:20px;color:var(--mute);max-width:60ch}
.doc{padding:clamp(40px,5vw,64px) 0 clamp(64px,8vw,104px)}
.doc article{border-top:1px solid var(--hair-strong);padding-top:clamp(28px,4vw,44px)}
.doc h2{font-size:clamp(22px,2.8vw,30px);margin:40px 0 12px;padding-top:22px;border-top:1px solid var(--hair)}
.doc h2:first-child{margin-top:0;padding-top:0;border-top:0}
.doc p,.doc li{color:var(--slate-2)}
.doc p+p{margin-top:13px}
.doc ul,.doc ol{padding-left:20px;display:grid;gap:8px;margin-top:12px}
.doc a{color:var(--slate)}
.doc a:hover{color:var(--ochre)}
.help{list-style:none;padding-left:0!important;gap:0!important;margin-top:14px}
.help li{padding:16px 0;border-top:1px solid var(--hair)}
.help b{color:var(--slate);font-weight:700}

/* ---------- age gate ---------- */
.entry-page{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:40px 24px 190px;
    background:
        radial-gradient(900px 560px at 50% 0%,rgba(147,167,181,.2),transparent 68%),
        var(--slate);
    color:var(--bone);
}
.entry{
    width:min(620px,100%);
    background:var(--bone);
    color:var(--slate);
    border:1px solid var(--ochre);
    padding:clamp(28px,5vw,52px);
}
.entry .mark{margin-bottom:30px;padding-bottom:22px;border-bottom:1px solid var(--hair)}
.entry .mark img{width:30px;height:30px}
.entry .age{width:58px;height:58px;font-size:18px}
.entry h1{font-size:clamp(28px,5vw,44px);margin-top:20px;max-width:16ch}
.entry-lead{margin-top:18px;color:var(--slate-2)}
.entry-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}
.entry-acts .act{flex:1 1 220px;text-align:center}
.entry-deny{
    display:none;
    margin-top:26px;
    padding-top:22px;
    border-top:1px solid var(--ochre);
    font-size:15.5px;
    color:var(--slate-2);
}
.entry-deny.on{display:block}
.entry-deny b{
    display:block;
    font-family:"Bodoni Moda",Georgia,serif;
    font-size:21px;
    font-weight:400;
    color:var(--slate);
    margin-bottom:8px;
}
.entry-deny a{color:var(--slate)}
.entry-points{
    list-style:none;
    margin-top:30px;
    padding-top:24px;
    border-top:1px solid var(--hair);
    display:grid;
    font-size:14.5px;
    color:var(--mute);
}
.entry-points li{padding:11px 0;border-top:1px solid var(--hair)}
.entry-points li:first-child{border-top:0;padding-top:0}
.entry-fine{
    margin-top:26px;
    padding-top:20px;
    border-top:1px solid var(--hair);
    font-size:12.5px;
    color:var(--mute);
    line-height:1.9;
}
.entry-fine a{color:var(--slate)}
.entry-fine a:hover{color:var(--ochre)}

/* ---------- cookie bar ---------- */
.cbar{
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:130;
    display:none;
    background:var(--bone);
    border-top:1px solid var(--ochre);
    padding:20px 0 22px;
}
.cbar.on{display:block}
.cbar-in{display:grid;grid-template-columns:1fr auto;gap:18px 40px;align-items:center}
.cbar h2{font-family:"Karla",sans-serif;font-size:11px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--ochre);margin-bottom:6px}
.cbar p{font-size:14px;color:var(--mute);max-width:72ch}
.cbar a{color:var(--slate)}
.cbar-acts{display:flex;flex-wrap:wrap;gap:10px}
.cbar-acts .act{padding:12px 20px;font-size:10.5px}

/* ---------- responsive ---------- */
@media(max-width:1000px){
    .nav-in{grid-template-columns:repeat(2,1fr);column-gap:40px}
    .glance{grid-template-columns:1fr 1fr;gap:0 40px}
    .notes{grid-template-columns:1fr;gap:0}
    .notes section{margin-top:26px}
    .notes section:first-child{margin-top:0}
    .split,.head{grid-template-columns:1fr;gap:18px}
    .head .lead{grid-column:1}
    .split--wide{grid-template-columns:1fr;gap:40px}
    .venue{grid-template-columns:1fr auto}
    .venue time{grid-column:2;grid-row:1}
    .venue p{grid-column:1/-1;grid-row:2}
    .key{grid-template-columns:1fr}
    .key-facts{grid-column:1}
}
@media(max-width:720px){
    body{font-size:16px}
    .frame,.column{width:calc(100% - 36px)}
    .strip-in{min-height:56px}
    .mark-words{font-size:17px}
    .nav-in{grid-template-columns:1fr}
    .floor-list{grid-template-columns:1fr}
    .pairs{grid-template-columns:1fr}
    .glance{grid-template-columns:1fr}
    .week-row{grid-template-columns:1fr;gap:6px}
    .week-row time{text-align:left}
    .venue{grid-template-columns:1fr}
    .venue h3{grid-row:1}
    .venue time{grid-column:1;grid-row:2;text-align:left}
    .venue p{grid-column:1;grid-row:3}
    .stance{grid-template-columns:1fr;gap:20px}
    .foot-cols{grid-template-columns:1fr}
    .cbar-in{grid-template-columns:1fr}
    .entry-acts .act{flex:1 1 100%}
    .sauna-figure{min-height:220px}
}
@media(max-width:400px){
    .toggle{padding-left:14px;margin-left:6px;letter-spacing:.14em}
    .strip-link{letter-spacing:.14em}
    .act{padding:14px 20px;letter-spacing:.16em}
    .key-facts span+span{margin-left:14px;padding-left:14px}
}
