:root {
  --lumi: #f3f2ed;
  --paperi: #faf9f5;
  --yö: #10201e;
  --metsä: #19322e;
  --sammal: #6f7d69;
  --hiekka: #c9b899;
  --kupari: #9b7357;
  --muste: #15201e;
  --viiva: rgba(21, 32, 30, .17);
  --serif: "Newsreader", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --display: "Manrope", Arial, sans-serif;
  --max: 1320px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--muste);
  background: var(--paperi);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.sivupaikka { width: min(calc(100% - 64px), var(--max)); margin-inline: auto; }
.osio { padding-top: 130px; padding-bottom: 130px; }
.osio-harmaa { background: var(--lumi); }
.ohita {
  position: fixed; top: 10px; left: 10px; z-index: 100;
  padding: 10px 16px; background: white; transform: translateY(-150%);
}
.ohita:focus { transform: translateY(0); }
.ylatunniste {
  margin: 0 0 22px; font-size: 11px; line-height: 1.2; font-weight: 600;
  letter-spacing: .19em; text-transform: uppercase;
}
.ylatunniste::before { content: ""; display: inline-block; width: 28px; height: 1px; margin-right: 12px; vertical-align: middle; background: currentColor; opacity: .65; }
.vaalea { color: white; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 {
  font-family: var(--serif); font-weight: 300; letter-spacing: -.035em;
}
h2 { margin-bottom: 0; font-size: clamp(48px, 6vw, 86px); line-height: .98; }
.nappi {
  display: inline-flex; justify-content: center; align-items: center; min-height: 48px;
  padding: 0 24px; border: 1px solid currentColor; font-size: 12px; line-height: 1;
  font-weight: 600; letter-spacing: .07em; text-transform: uppercase; transition: .25s ease;
}
.nappi-vaalea { color: var(--yö); background: white; border-color: white; }
.nappi-vaalea:hover { color: white; background: transparent; }
.nappi-tumma { color: white; background: var(--yö); border-color: var(--yö); }
.nappi-tumma:hover { color: var(--yö); background: transparent; }
.tekst-linkki { display: inline-flex; gap: 15px; align-items: center; padding-bottom: 5px; border-bottom: 1px solid currentColor; font-size: 13px; font-weight: 600; letter-spacing: .04em; }
.tekst-linkki span { font-size: 17px; transition: transform .2s; }
.tekst-linkki:hover span { transform: translate(3px, -3px); }

header {
  position: absolute; inset: 0 0 auto; z-index: 20; height: 104px;
  display: flex; align-items: center; justify-content: space-between;
}
.etusivu-nav { color: white; }
.tumma-nav { position: relative; color: var(--yö); }
.tunnus { display: flex; gap: 13px; align-items: center; font-size: 11px; line-height: 1.25; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.tunnus-merkki {
  width: 42px; height: 48px; display: grid; place-items: center; border: 1px solid currentColor;
  border-radius: 50% 50% 44% 44%; font-family: var(--serif); font-size: 14px; letter-spacing: .05em;
}
.paavalikko { display: flex; align-items: center; gap: 34px; }
.paavalikko a { position: relative; font-size: 12px; font-weight: 500; letter-spacing: .05em; }
.paavalikko a::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 1px; background: currentColor; transition: right .2s;
}
.paavalikko a:hover::after, .paavalikko a.aktiivinen::after { right: 0; }
.valikko-painike { display: none; color: inherit; background: none; border: 0; text-transform: uppercase; letter-spacing: .1em; }

.hero { height: min(940px, 100svh); min-height: 720px; position: relative; color: white; overflow: hidden; }
.hero > img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: center 58%; }
.hero-varjo { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,20,18,.68), rgba(8,20,18,.12) 62%), linear-gradient(0deg, rgba(8,20,18,.45), transparent 35%); }
.hero-sisalto { position: relative; z-index: 1; padding-top: clamp(210px, 27vh, 290px); }
.hero h1 { margin-bottom: 28px; max-width: 850px; font-size: clamp(68px, 9.2vw, 134px); line-height: .84; color: #fff; }
.hero-teksti { max-width: 490px; margin-bottom: 38px; font-size: 17px; color: rgba(255,255,255,.85); }
.hero-toiminnot { display: flex; gap: 30px; align-items: center; }
.hero-faktat {
  position: absolute; z-index: 2; bottom: 0; right: 0; display: grid; grid-template-columns: repeat(4, 1fr);
  width: min(820px, 72vw); border-top: 1px solid rgba(255,255,255,.3); background: rgba(12,29,27,.5); backdrop-filter: blur(12px);
}
.hero-faktat span { padding: 22px 24px; border-left: 1px solid rgba(255,255,255,.22); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }

.intro { display: grid; grid-template-columns: 1.15fr .85fr; gap: 13%; align-items: end; }
.intro h2 { font-size: clamp(54px, 7vw, 98px); }
.intro-teksti { max-width: 520px; padding-bottom: 5px; }
.intro-teksti p { color: #52605d; }
.intro-teksti p:first-child { font-size: 19px; color: var(--muste); }
.osio-otsikko { display: grid; grid-template-columns: 1fr 380px; gap: 10%; align-items: end; margin-bottom: 65px; }
.osio-otsikko > p { color: #5e6966; }
.huone-ruudukko { display: grid; grid-template-columns: 1.65fr .75fr; gap: 22px; }
.kuvakortti { position: relative; min-height: 690px; overflow: hidden; background: var(--yö); color: white; }
.kuvakortti > img { position: absolute; inset: 0; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.kuvakortti:hover > img { transform: scale(1.025); }
.kuvakortti::after { content: ""; position: absolute; inset: 42% 0 0; background: linear-gradient(transparent, rgba(8,20,18,.68)); }
.kuvakortti-tiedot { position: absolute; z-index: 1; inset: auto 42px 38px; display: flex; justify-content: space-between; align-items: end; }
.kuvakortti h3 { margin: 0; font-family: var(--serif); font-size: 45px; font-weight: 300; }
.kuvakortti-tiedot > p { margin: 0; font-size: 12px; color: rgba(255,255,255,.76); }
.pienkortit { display: grid; gap: 22px; }
.tekstikortti {
  min-height: 334px; padding: 34px; display: flex; flex-direction: column; justify-content: space-between;
  border: 1px solid var(--viiva); background: var(--paperi);
}
.tekstikortti.tumma { color: white; background: var(--metsä); border-color: var(--metsä); }
.tekstikortti .numero { font-size: 11px; letter-spacing: .14em; }
.tekstikortti h3 { margin-bottom: 10px; font-family: var(--serif); font-size: 34px; font-weight: 300; }
.tekstikortti p { margin: 0; font-size: 14px; color: #68726f; }
.tekstikortti.tumma p { color: rgba(255,255,255,.68); }
.kokemus-ruudukko { display: grid; grid-template-columns: 1.08fr .92fr; gap: 24px; align-items: start; }
.kokemus { position: relative; overflow: hidden; color: white; }
.kokemus img { height: 630px; object-fit: cover; }
.sauna-kortti { margin-top: 90px; }
.kokemus::after { content: ""; position: absolute; inset: 30% 0 0; background: linear-gradient(transparent, rgba(8,20,18,.75)); }
.kokemus > div { position: absolute; z-index: 1; inset: auto 38px 30px; }
.kokemus h3 { margin-bottom: 8px; font-family: var(--serif); font-size: 41px; font-weight: 300; }
.kokemus p:last-child { max-width: 400px; margin-bottom: 0; color: rgba(255,255,255,.78); }
.maisema-nosto { position: relative; min-height: 780px; color: white; display: flex; align-items: center; overflow: hidden; }
.maisema-nosto > img { position: absolute; inset: 0; height: 100%; object-fit: cover; }
.maisema-nosto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,20,18,.78), rgba(8,20,18,.05) 75%); }
.maisema-nosto-sisalto { position: relative; z-index: 1; }
.maisema-nosto h2 { margin-bottom: 28px; color: white; }
.maisema-nosto p:not(.ylatunniste) { max-width: 520px; margin-bottom: 32px; color: rgba(255,255,255,.8); }
.kasino-nosto { display: grid; grid-template-columns: .85fr 1fr; gap: 11%; align-items: center; }
.kasino-nosto-kuva { height: 650px; overflow: hidden; }
.kasino-nosto-kuva img { height: 100%; object-fit: cover; object-position: center 65%; }
.kasino-nosto-teksti { max-width: 600px; }
.kasino-nosto-teksti h2 { margin-bottom: 30px; }
.kasino-nosto-teksti > p:not(.ylatunniste) { max-width: 520px; color: #5b6764; }
.aukiolo { margin: 32px 0; padding: 20px 0; display: flex; justify-content: space-between; border-block: 1px solid var(--viiva); font-size: 12px; text-transform: uppercase; letter-spacing: .09em; }
.aukiolo strong { font-weight: 600; }
.varaus-nosto { padding: 110px 0; background: var(--metsä); color: white; }
.varaus-nosto-sisalto { display: grid; grid-template-columns: 1.2fr .8fr; gap: 12%; align-items: end; }
.varaus-nosto h2 { color: white; }
.varaus-nosto-sisalto > div:last-child p { max-width: 500px; margin-bottom: 30px; color: rgba(255,255,255,.72); }

footer { padding: 90px 0 28px; color: rgba(255,255,255,.73); background: var(--yö); }
.footer-ylä { display: grid; grid-template-columns: 1.4fr .65fr 1.1fr .8fr; gap: 6%; padding-bottom: 75px; }
.footer-ylä h2 { margin: 20px 0; color: white; font-size: 42px; line-height: .9; }
.footer-ylä h3 { margin: 0 0 22px; color: white; font-size: 11px; text-transform: uppercase; letter-spacing: .15em; }
.footer-ylä a, .footer-ylä > div:not(:first-child) p { display: block; margin: 0 0 9px; font-size: 13px; }
.footer-ylä a:hover { color: white; }
.footer-brandi p { font-size: 13px; }
.footer-ala { display: flex; justify-content: space-between; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.16); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }

.sisäsivu header { height: 108px; }
.sisähero { position: relative; min-height: 760px; color: white; overflow: hidden; }
.sisähero > img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: center 54%; }
.sisähero-varjo { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,20,18,.77), rgba(8,20,18,.18)), linear-gradient(0deg, rgba(8,20,18,.6), transparent 45%); }
.sisähero-sisalto { position: relative; z-index: 1; padding-top: 180px; }
.sisähero h1 { margin-bottom: 24px; font-size: clamp(90px, 14vw, 190px); line-height: .8; color: white; }
.sisähero-sisalto > p:last-child { max-width: 550px; font-size: 18px; color: rgba(255,255,255,.8); }
.sisähero-palkki { position: absolute; z-index: 2; inset: auto 0 0; min-height: 92px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.3); font-size: 11px; text-transform: uppercase; letter-spacing: .13em; }
.sisähero-palkki strong { font-family: var(--serif); font-size: 30px; font-weight: 300; letter-spacing: .02em; }
.kasino-esittely { display: grid; grid-template-columns: 1.1fr .9fr; gap: 12%; align-items: end; }
.kasino-esittely > div:last-child { max-width: 530px; color: #596663; }
.kasino-esittely > div:last-child p:first-child { color: var(--muste); font-size: 19px; }
.peli-ruudukko { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--viiva); border-left: 1px solid var(--viiva); }
.peli-ruudukko article { min-height: 300px; padding: 30px; display: flex; flex-direction: column; border-right: 1px solid var(--viiva); border-bottom: 1px solid var(--viiva); }
.peli-ruudukko span { font-size: 10px; letter-spacing: .14em; }
.peli-ruudukko h3 { margin: auto 0 12px; font-family: var(--serif); font-size: 35px; font-weight: 300; }
.peli-ruudukko p { margin: 0; color: #64706d; font-size: 13px; }
.lounge-osio { display: grid; grid-template-columns: 1fr .82fr; gap: 10%; align-items: center; }
.lounge-kuva { height: 670px; overflow: hidden; }
.lounge-kuva img { height: 100%; object-fit: cover; }
.lounge-teksti h2 { margin-bottom: 30px; }
.lounge-teksti > p:not(.ylatunniste) { color: #5e6a67; }
.aukiolo-lista { margin-top: 36px; border-top: 1px solid var(--viiva); }
.aukiolo-lista div { display: flex; justify-content: space-between; padding: 15px 0; border-bottom: 1px solid var(--viiva); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.vastuu-osio { padding: 100px 0; color: white; background: var(--metsä); }
.vastuu-sisalto { display: grid; grid-template-columns: 1fr 1fr; gap: 12%; }
.vastuu-sisalto h2 { color: white; }
.vastuu-sisalto > div:last-child { color: rgba(255,255,255,.74); }
.kasino-cta { padding: 120px 0; text-align: center; background: var(--lumi); }
.kasino-cta h2 { margin-bottom: 40px; }

.yhteys-hero { padding-top: 130px; padding-bottom: 100px; display: grid; grid-template-columns: 1.35fr .65fr; gap: 10%; align-items: end; }
.yhteys-hero h1 { margin: 0; font-size: clamp(62px, 8vw, 112px); line-height: .88; }
.yhteys-hero > p { max-width: 400px; color: #5b6764; }
.yhteys-pää { display: grid; grid-template-columns: .78fr 1.22fr; gap: 8%; padding-bottom: 130px; }
.yhteystiedot { padding-top: 25px; }
.yhteystiedot h2, .yhteyslomake h2 { font-size: clamp(42px, 5vw, 65px); }
.yhteystiedot dl { margin: 45px 0; }
.yhteystiedot dl > div { padding: 22px 0; border-top: 1px solid var(--viiva); }
.yhteystiedot dl > div:last-child { border-bottom: 1px solid var(--viiva); }
.yhteystiedot dt { margin-bottom: 6px; font-size: 10px; text-transform: uppercase; letter-spacing: .14em; }
.yhteystiedot dd { margin: 0; }
.yhteystiedot small { color: #68736f; }
.suora-varaus { padding: 25px; background: var(--lumi); }
.suora-varaus span { display: block; margin-bottom: 8px; font-size: 10px; text-transform: uppercase; letter-spacing: .14em; }
.suora-varaus p { margin: 0; font-size: 13px; color: #5d6966; }
.yhteyslomake { padding: 55px; color: white; background: var(--metsä); }
.yhteyslomake h2 { margin-bottom: 45px; color: white; }
.kentta-rivi { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.yhteyslomake label { display: block; margin-bottom: 24px; font-size: 10px; text-transform: uppercase; letter-spacing: .13em; }
.yhteyslomake input:not([type=checkbox]), .yhteyslomake select, .yhteyslomake textarea {
  width: 100%; margin-top: 8px; padding: 12px 0; color: white; background: transparent; border: 0; border-bottom: 1px solid rgba(255,255,255,.35); border-radius: 0; outline: none;
}
.yhteyslomake textarea { resize: vertical; }
.yhteyslomake input:focus, .yhteyslomake select:focus, .yhteyslomake textarea:focus { border-color: white; }
.yhteyslomake select option { color: var(--muste); }
.yhteyslomake ::placeholder { color: rgba(255,255,255,.48); }
.valinta { display: flex !important; gap: 12px; align-items: flex-start; margin: 32px 0 !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 12px !important; color: rgba(255,255,255,.72); }
.valinta input { margin-top: 4px; accent-color: var(--hiekka); }
.yhteyslomake .nappi { border: 0; cursor: pointer; }
.lomake-palaute { min-height: 24px; margin: 15px 0 0; font-size: 13px; color: #d7ddc5; }
.saapuminen { padding: 120px 0; background: var(--yö); color: white; }
.saapuminen-sisalto { display: grid; grid-template-columns: .9fr 1.1fr; gap: 10%; align-items: center; }
.saapuminen-kuva { height: 690px; overflow: hidden; }
.saapuminen-kuva img { height: 100%; object-fit: cover; }
.saapuminen-teksti h2 { margin-bottom: 48px; color: white; font-size: clamp(45px, 5.5vw, 72px); }
.reitti { display: grid; grid-template-columns: 40px 1fr; gap: 20px; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.18); }
.reitti:last-child { border-bottom: 1px solid rgba(255,255,255,.18); }
.reitti > span { font-size: 10px; letter-spacing: .14em; }
.reitti h3 { margin-bottom: 5px; font-family: var(--serif); font-size: 24px; font-weight: 300; }
.reitti p { margin: 0; color: rgba(255,255,255,.65); font-size: 13px; }

@media (max-width: 980px) {
  .sivupaikka { width: min(calc(100% - 40px), var(--max)); }
  .varaus-nappi { display: none; }
  .paavalikko { gap: 22px; }
  .intro, .kasino-esittely, .vastuu-sisalto { grid-template-columns: 1fr; gap: 55px; }
  .huone-ruudukko { grid-template-columns: 1fr; }
  .pienkortit { grid-template-columns: 1fr 1fr; }
  .tekstikortti { min-height: 280px; }
  .kasino-nosto { gap: 7%; }
  .peli-ruudukko { grid-template-columns: 1fr 1fr; }
  .yhteys-pää { gap: 5%; }
  .yhteyslomake { padding: 38px; }
  .footer-ylä { grid-template-columns: 1.2fr 1fr 1fr; }
  .footer-ylä > div:last-child { display: none; }
}

@media (max-width: 720px) {
  .sivupaikka { width: min(calc(100% - 32px), var(--max)); }
  .osio { padding-top: 85px; padding-bottom: 85px; }
  h2 { font-size: 49px; }
  header { height: 86px !important; }
  .valikko-painike { display: block; }
  .paavalikko {
    display: none; position: absolute; top: 76px; left: 0; right: 0; padding: 24px;
    flex-direction: column; align-items: flex-start; color: var(--yö); background: white; box-shadow: 0 15px 30px rgba(0,0,0,.14);
  }
  .paavalikko.auki { display: flex; }
  .hero { min-height: 690px; }
  .hero h1 { font-size: 63px; }
  .hero-sisalto { padding-top: 180px; }
  .hero-teksti { font-size: 15px; }
  .hero-toiminnot { align-items: flex-start; flex-direction: column; gap: 20px; }
  .hero-faktat { width: 100%; grid-template-columns: 1fr 1fr; }
  .hero-faktat span { padding: 12px 15px; font-size: 9px; }
  .intro, .osio-otsikko, .kasino-nosto, .varaus-nosto-sisalto, .lounge-osio, .yhteys-hero, .yhteys-pää, .saapuminen-sisalto { grid-template-columns: 1fr; }
  .intro, .osio-otsikko, .varaus-nosto-sisalto, .yhteys-hero { gap: 40px; }
  .osio-otsikko { margin-bottom: 42px; }
  .pienkortit, .kentta-rivi { grid-template-columns: 1fr; }
  .kuvakortti { min-height: 520px; }
  .kuvakortti-tiedot { inset: auto 24px 24px; display: block; }
  .kuvakortti h3 { font-size: 37px; }
  .kokemus-ruudukko { grid-template-columns: 1fr; }
  .sauna-kortti { margin-top: 0; }
  .kokemus img { height: 520px; }
  .kokemus > div { inset: auto 24px 22px; }
  .maisema-nosto { min-height: 650px; }
  .kasino-nosto-kuva { height: 520px; }
  .kasino-nosto { gap: 55px; }
  .varaus-nosto { padding: 80px 0; }
  .footer-ylä { grid-template-columns: 1fr 1fr; gap: 50px 20px; }
  .footer-brandi { grid-column: 1 / -1; }
  .footer-ala { gap: 12px; flex-direction: column; }
  .sisähero { min-height: 680px; }
  .sisähero-sisalto { padding-top: 155px; }
  .sisähero h1 { font-size: 92px; }
  .sisähero-palkki { gap: 12px; flex-wrap: wrap; align-content: center; }
  .sisähero-palkki strong { font-size: 24px; }
  .peli-ruudukko { grid-template-columns: 1fr; }
  .peli-ruudukko article { min-height: 240px; }
  .lounge-osio { gap: 50px; }
  .lounge-kuva, .saapuminen-kuva { height: 500px; }
  .yhteys-hero { padding-top: 90px; padding-bottom: 70px; }
  .yhteys-hero h1 { font-size: 59px; }
  .yhteys-pää { gap: 60px; padding-bottom: 85px; }
  .yhteyslomake { padding: 28px 22px; }
  .saapuminen { padding: 85px 0; }
  .saapuminen-sisalto { gap: 55px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
