/* =========================================================================
   Bogeylab Minimal 3.0
   Hiusviivat, väljyys ja kaksi typografista hetkeä. Ei laatikoita.
   ========================================================================= */

:root{
  --ink:#1A1C15;
  --ink-2:#22251C;
  --olive:#535A48;
  --olive-lt:#98A088;
  --stone:#7C7C6D;
  --bone:#F2F1EA;
  --sand:#E8E6DD;
  --line:#D7D5C9;
  --lime:#C9F24B;

  --fg:var(--ink);
  --fg-2:#43473B;
  --fg-3:var(--stone);
  --accent:var(--olive);
  --rule:var(--line);

  --display:'Archivo','Helvetica Neue',Arial,sans-serif;
  --body:'Inter Tight','Helvetica Neue',Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  --wrap:1180px;
  --pad:34px;
  --nav:72px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
@media (max-width:700px){ :root{ --pad:20px; --nav:60px; } }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--nav) + 20px); }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

body{
  margin:0;
  background:var(--bone);
  color:var(--fg);
  font-family:var(--body);
  font-size:17px;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
p,h1,h2,h3,dl,dd,ul,ol,figure{ margin:0; padding:0; }
li{ list-style:none; }
a{ color:inherit; text-decoration:none; }
img,iframe{ max-width:100%; }
img{ display:block; height:auto; }
:focus-visible{ outline:2px solid var(--accent); outline-offset:4px; }

.skip{ position:absolute; left:-9999px; }
.skip:focus{ left:14px; top:14px; z-index:200; background:var(--ink); color:var(--bone); padding:11px 18px; font-family:var(--mono); font-size:12px; }

.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding-inline:var(--pad); }

/* ---------- Typografia ---------- */

.mono{
  font-family:var(--mono);
  font-size:10.5px; font-weight:400;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--fg-3);
}
h2{
  font-family:var(--display); font-weight:500;
  letter-spacing:-.03em; line-height:1.03;
  font-size:clamp(29px,3.9vw,54px);
  text-wrap:balance;
}
h3{ font-family:var(--display); font-weight:500; font-size:21px; letter-spacing:-.022em; line-height:1.2; }

/* Sivun kaksi versaalihetkeä */
.shout{
  font-family:var(--display); font-weight:800;
  text-transform:uppercase;
  font-size:clamp(44px,8.2vw,116px);
  line-height:.9; letter-spacing:-.042em;
  text-wrap:balance;
}
.claim__t{
  font-family:var(--display); font-weight:800;
  text-transform:uppercase;
  font-size:clamp(28px,4.4vw,62px);
  line-height:.94; letter-spacing:-.038em;
}
.claim__t span{ color:var(--olive); }

.lede{ font-size:18px; line-height:1.6; color:var(--fg-2); max-width:56ch; }
.dim{ color:var(--fg-2); }

/* ---------- Napit ja linkit ---------- */

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:50px; padding:0 28px;
  border:1px solid currentColor; border-radius:999px;
  font-family:var(--display); font-weight:500;
  font-size:13.5px; letter-spacing:.02em;
  transition:background-color .22s var(--ease), color .22s var(--ease), border-color .22s var(--ease);
  cursor:pointer; background:none; color:inherit;
}
.btn--xs{ min-height:38px; padding:0 18px; font-size:12.5px; }
.btn--solid{ background:var(--bone); border-color:var(--bone); color:var(--ink); }
.btn--solid:hover{ background:#fff; border-color:#fff; }
.btn--dark{ background:var(--ink); border-color:var(--ink); color:var(--bone); }
.btn--dark:hover{ background:var(--olive); border-color:var(--olive); }
.btn:not(.btn--solid):not(.btn--dark):hover{ background:currentColor; }
.hd .btn:hover{ color:var(--ink); }

.link{
  display:inline-flex; align-items:center; gap:8px;
  font-size:15px;
  border-bottom:1px solid var(--rule);
  padding-bottom:2px;
  transition:color .2s var(--ease), border-color .2s var(--ease);
}
.link:hover{ color:var(--accent); border-color:var(--accent); }

.status{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--mono); font-size:10.5px;
  letter-spacing:.18em; text-transform:uppercase;
}
.dot{
  width:6px; height:6px; border-radius:50%; background:var(--lime); flex:0 0 auto;
  animation:pulse 3s var(--ease) infinite;
}
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(201,242,75,.45); }
  70%{ box-shadow:0 0 0 8px rgba(201,242,75,0); }
  100%{ box-shadow:0 0 0 0 rgba(201,242,75,0); }
}

/* =========================================================================
   Header
   ========================================================================= */

.hd{
  position:fixed; inset:0 0 auto 0; z-index:80;
  height:var(--nav); color:var(--bone);
  border-bottom:1px solid transparent;
  transition:background-color .3s var(--ease), border-color .3s var(--ease);
}
.hd.stuck,.hd--solid{
  background:rgba(26,28,21,.9);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border-bottom-color:rgba(242,241,234,.12);
}
.hd__in{
  height:100%; max-width:var(--wrap); margin:0 auto; padding-inline:var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.mark{ display:inline-flex; align-items:center; }
.mark img,.mark .custom-logo{ height:25px; width:auto; }
@media (max-width:520px){ .mark img,.mark .custom-logo{ height:21px; } }

.nav{ display:flex; gap:32px; }
.nav a{ font-size:14.5px; opacity:.76; transition:opacity .2s var(--ease); }
.nav a:hover{ opacity:1; }

.hd__end{ display:flex; align-items:center; gap:12px; }

.burger{ display:none; width:42px; height:42px; flex-direction:column; align-items:center; justify-content:center; gap:6px; background:none; border:0; padding:0; cursor:pointer; color:inherit; }
.burger span{ display:block; width:20px; height:1.4px; background:currentColor; transition:transform .25s var(--ease); }
.burger[aria-expanded="true"] span:first-child{ transform:translateY(3.7px) rotate(45deg); }
.burger[aria-expanded="true"] span:last-child{ transform:translateY(-3.7px) rotate(-45deg); }

@media (max-width:880px){ .nav{ display:none; } .burger{ display:flex; } }
@media (max-width:480px){ .hd__end .btn{ display:none; } }

.menu{ position:fixed; inset:0; z-index:75; background:var(--ink); color:var(--bone); padding:calc(var(--nav) + 28px) 0 36px; overflow-y:auto; }
.menu[hidden]{ display:none; }
.menu__in{ max-width:var(--wrap); margin:0 auto; padding-inline:var(--pad); min-height:100%; display:flex; flex-direction:column; gap:32px; }
.menu__nav{ display:flex; flex-direction:column; }
.menu__nav a{
  padding:16px 0; border-bottom:1px solid rgba(242,241,234,.12);
  font-family:var(--display); font-weight:500;
  font-size:clamp(26px,6.6vw,38px); letter-spacing:-.03em; line-height:1;
  transition:color .2s var(--ease);
}
.menu__nav a:hover{ color:var(--olive-lt); }
.menu__foot{ margin-top:auto; display:flex; flex-direction:column; gap:16px; align-items:flex-start; }
.menu__foot .mono{ color:rgba(242,241,234,.5); }
body.locked{ overflow:hidden; }

/* =========================================================================
   Hero
   ========================================================================= */

.hero{
  position:relative; isolation:isolate;
  background-color:var(--ink); color:var(--bone);
  background-size:cover; background-position:center 40%;
  padding:calc(var(--nav) + 104px) 0 clamp(48px,6vw,84px);
  overflow:hidden;
}
.hero::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(90deg, rgba(26,28,21,.86) 0%, rgba(26,28,21,.5) 52%, rgba(26,28,21,.28) 100%),
    linear-gradient(180deg, rgba(26,28,21,.66) 0%, rgba(26,28,21,.42) 38%, rgba(26,28,21,.9) 100%);
}
.hero__in{ display:flex; flex-direction:column; align-items:flex-start; }
.hero__place{ color:rgba(242,241,234,.62); margin-bottom:26px; }
.hero__word{
  font-family:var(--display); font-weight:800;
  font-size:clamp(58px,12.5vw,162px);
  line-height:.84; letter-spacing:-.05em;
  margin-bottom:22px;
}
.hero__line{
  font-size:clamp(17px,1.7vw,21px); line-height:1.4;
  color:rgba(242,241,234,.84); max-width:30ch; text-wrap:balance;
  margin-bottom:22px;
}
.hero__status{ color:rgba(242,241,234,.75); margin-bottom:34px; }
.hero__act{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px; margin-bottom:clamp(56px,8vw,108px); }
.hero__act .link{ border-color:rgba(242,241,234,.3); color:rgba(242,241,234,.88); }
.hero__act .link:hover{ color:var(--bone); border-color:var(--bone); }

.facts{
  width:100%;
  display:grid; grid-template-columns:repeat(4,1fr); gap:26px 32px;
  padding-top:22px;
  border-top:1px solid rgba(242,241,234,.22);
}
.facts dt{ color:rgba(242,241,234,.58); margin-bottom:7px; }
.facts dd{ font-family:var(--display); font-weight:500; font-size:clamp(17px,1.7vw,21px); letter-spacing:-.02em; }
@media (max-width:720px){ .facts{ grid-template-columns:repeat(2,1fr); } }

/* =========================================================================
   Osiot
   ========================================================================= */

.sec{ padding:clamp(84px,10vw,168px) 0; }
.sec--open{ padding-top:clamp(76px,9vw,136px); }
.sec--sand{ background:var(--sand); --rule:#D2CFC3; }
.sec--dark{
  background:var(--ink); color:var(--bone);
  --fg:var(--bone); --fg-2:rgba(242,241,234,.72); --fg-3:rgba(242,241,234,.48);
  --accent:var(--olive-lt); --rule:rgba(242,241,234,.16);
}

.head{ display:flex; flex-direction:column; gap:16px; margin-bottom:clamp(40px,5vw,72px); }
.head .lede{ max-width:52ch; }

/* ---------- Esittely ---------- */

.claim{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(28px,3.6vw,72px);
  margin-top:clamp(44px,5.5vw,80px);
  padding-top:clamp(30px,3.2vw,48px);
  border-top:1px solid var(--rule);
}
.claim__body{ display:flex; flex-direction:column; gap:16px; max-width:50ch; align-self:end; }
@media (max-width:860px){ .claim{ grid-template-columns:1fr; gap:26px; } }

/* ---------- Kuvakaista ---------- */

.band{
  height:clamp(230px,30vw,420px);
  background-color:var(--ink-2);
  background-size:cover; background-position:center;
}

/* ---------- Tila ---------- */

.room{ display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:clamp(32px,4vw,72px); align-items:start; }
@media (max-width:900px){ .room{ grid-template-columns:1fr; } .room__img{ max-width:420px; } }

.specs{ display:flex; flex-direction:column; }
.specs > div{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);
  gap:8px 28px;
  padding:16px 0;
  border-top:1px solid var(--rule);
}
.specs > div:last-child{ border-bottom:1px solid var(--rule); }
.specs dt{ font-weight:500; font-size:16.5px; }
.specs dd{ color:var(--fg-2); font-size:15.5px; line-height:1.5; }
@media (max-width:520px){ .specs > div{ grid-template-columns:1fr; gap:2px; } }

.room__img img{ width:100%; }

/* ---------- Iltaideat ---------- */

.ideas{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(26px,2.8vw,44px); }
.ideas li{ padding-top:18px; border-top:1px solid var(--rule); display:flex; flex-direction:column; gap:9px; }
@media (max-width:980px){ .ideas{ grid-template-columns:repeat(2,1fr); gap:30px; } }
@media (max-width:560px){ .ideas{ grid-template-columns:1fr; } }

.rot{ display:grid; margin-top:2px; }
.rot__i{
  grid-area:1/1;
  font-size:16px; line-height:1.5; color:var(--fg-2);
  opacity:0; transition:opacity .55s var(--ease);
}
.rot__i.on{ opacity:1; }
@media (prefers-reduced-motion:reduce){ .rot__i{ transition:none; } }

/* ---------- Hinnasto ---------- */

.price{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(32px,4vw,72px);
  padding-top:clamp(24px,3vw,40px);
  border-top:1px solid var(--rule);
}
@media (max-width:840px){ .price{ grid-template-columns:1fr; gap:36px; } }

.price__fig{ display:flex; flex-direction:column; gap:12px; align-items:flex-start; }
.fig{
  font-family:var(--display); font-weight:800;
  font-size:clamp(64px,9vw,132px);
  line-height:.86; letter-spacing:-.05em;
  font-variant-numeric:tabular-nums;
}
.fig span{ font-size:.24em; font-weight:500; letter-spacing:-.01em; color:var(--fg-3); margin-left:10px; }
.price__note{ font-size:15px; max-width:28ch; }
.price__act{ margin-top:10px; }

.price__incl{ display:flex; flex-direction:column; gap:14px; }
.incl{ display:flex; flex-direction:column; }
.incl li{ padding:11px 0; border-top:1px solid var(--rule); font-size:16px; color:var(--fg-2); }
.incl li:first-child{ border-top:0; padding-top:0; }
.fine{ font-size:14.5px; line-height:1.6; padding-top:12px; border-top:1px solid var(--rule); }

.biz{
  margin-top:clamp(48px,6vw,88px); padding-top:22px;
  border-top:1px solid var(--rule);
  display:flex; flex-direction:column; gap:12px;
}
.biz__t{ font-size:clamp(18px,2vw,23px); line-height:1.45; max-width:52ch; }
.biz .link{ align-self:flex-start; }

/* ---------- UKK ---------- */

.faq{ border-top:1px solid var(--rule); }
.faq details{ border-bottom:1px solid var(--rule); }
.faq summary{
  display:flex; align-items:center; justify-content:space-between; gap:28px;
  padding:20px 0; cursor:pointer; list-style:none;
  font-family:var(--display); font-weight:500;
  font-size:clamp(17px,1.7vw,20px); letter-spacing:-.018em; line-height:1.35;
  transition:color .2s var(--ease);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--accent); }
.faq i{ position:relative; width:13px; height:13px; flex:0 0 auto; }
.faq i::before,.faq i::after{
  content:""; position:absolute; left:0; top:6px; width:13px; height:1.4px;
  background:currentColor; transition:transform .25s var(--ease);
}
.faq i::after{ transform:rotate(90deg); }
.faq details[open] i::after{ transform:rotate(0); }
.faq details > p{ padding:0 0 22px; max-width:70ch; color:var(--fg-2); font-size:16px; }

/* ---------- Yhteys ---------- */

.contact{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,4vw,72px); align-items:start; }
@media (max-width:860px){ .contact{ grid-template-columns:1fr; } }
.contact__lead{ display:flex; flex-direction:column; gap:18px; align-items:flex-start; }
.contact__act{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px; margin-top:6px; }
.contact__act .link{ border-color:rgba(242,241,234,.3); }
.contact__list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 32px; }
.contact__list dt{ margin-bottom:7px; }
.contact__list dd{ font-size:16.5px; line-height:1.5; }
.contact__list a{ border-bottom:1px solid var(--rule); }
.contact__list a:hover{ color:var(--accent); border-color:var(--accent); }
@media (max-width:480px){ .contact__list{ grid-template-columns:1fr; } }

.map{
  margin-top:clamp(40px,5vw,72px);
  height:clamp(230px,24vw,340px);
  border-top:1px solid var(--rule);
  overflow:hidden;
}
.map iframe{ width:100%; height:100%; border:0; display:block; filter:grayscale(1) brightness(.8) contrast(.95); }

/* =========================================================================
   Footer
   ========================================================================= */

.ft{
  background:var(--ink); color:var(--bone);
  --fg-3:rgba(242,241,234,.42); --rule:rgba(242,241,234,.14); --accent:var(--olive-lt);
  padding:0 0 30px;
}
.ft__top{
  display:flex; flex-wrap:wrap; gap:28px 48px; justify-content:space-between; align-items:flex-end;
  padding:clamp(48px,6vw,80px) 0 32px;
  border-top:1px solid var(--rule);
}
.ft__claim{
  font-family:var(--display); font-weight:500;
  font-size:clamp(22px,2.6vw,34px); line-height:1.1; letter-spacing:-.03em;
}
.ft__links{ display:flex; flex-wrap:wrap; gap:10px 26px; }
.ft__links a{ font-size:15px; color:rgba(242,241,234,.72); border-bottom:1px solid transparent; transition:color .2s var(--ease), border-color .2s var(--ease); }
.ft__links a:hover{ color:var(--bone); border-bottom-color:var(--bone); }
.ft__bar{ display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between; padding-top:22px; border-top:1px solid var(--rule); }
.ft__bar a:hover{ color:var(--accent); }

/* =========================================================================
   Sisäsivut
   ========================================================================= */

.pg{ padding:calc(var(--nav) + 88px) 0 clamp(72px,9vw,120px); }
.pg__head{ display:flex; flex-direction:column; gap:14px; margin-bottom:44px; padding-bottom:32px; border-bottom:1px solid var(--rule); }
.prose{ max-width:66ch; display:flex; flex-direction:column; gap:20px; }
.prose h2{ font-size:28px; margin-top:12px; }
.prose h3{ font-size:20px; }
.prose a{ color:var(--accent); border-bottom:1px solid currentColor; }
.prose ul li{ list-style:disc; margin-left:22px; }
.prose ol li{ list-style:decimal; margin-left:22px; }

/* ---------- Saapuminen: alkaa näkyvästä tilasta ---------- */

@media (prefers-reduced-motion:no-preference){
  .hero__place,.hero__word,.hero__line,.hero__status,.hero__act,.facts{ animation:rise .75s var(--ease) both; }
  .hero__word{ animation-delay:.05s; }
  .hero__line{ animation-delay:.11s; }
  .hero__status{ animation-delay:.16s; }
  .hero__act{ animation-delay:.2s; }
  .facts{ animation-delay:.26s; }
}
@keyframes rise{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }

@media print{ .hd,.menu,.map,.btn{ display:none !important; } body{ background:#fff; color:#000; } }

/* =========================================================================
   Meistä-sivu
   ========================================================================= */

.phero{
  position:relative; isolation:isolate;
  background:var(--ink); color:var(--bone);
  --fg-3:rgba(242,241,234,.5);
  padding:calc(var(--nav) + 96px) 0 clamp(64px,8vw,116px);
}
.phero--photo{
  background-size:cover; background-position:center 55%;
  padding:calc(var(--nav) + 116px) 0 clamp(72px,9vw,128px);
}
.phero--photo::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(90deg, rgba(26,28,21,.9) 0%, rgba(26,28,21,.62) 55%, rgba(26,28,21,.34) 100%),
    linear-gradient(180deg, rgba(26,28,21,.72) 0%, rgba(26,28,21,.48) 40%, rgba(26,28,21,.9) 100%);
}
.phero__label{ margin-bottom:24px; }
.shout--sm{ font-size:clamp(38px,6.6vw,92px); }
.phero__lede{
  margin-top:26px; max-width:44ch;
  font-size:clamp(17px,1.7vw,21px); line-height:1.5;
  color:rgba(242,241,234,.78);
}

.claim--first{ margin-top:0; padding-top:0; border-top:0; }

.hours{ display:flex; flex-direction:column; }
.hours > div{
  display:grid; grid-template-columns:88px minmax(0,1fr);
  gap:10px 28px;
  padding:20px 0;
  border-top:1px solid var(--rule);
}
.hours > div:last-child{ border-bottom:1px solid var(--rule); }
.hours dt{ color:var(--fg-3); padding-top:5px; font-variant-numeric:tabular-nums; }
.hours dd{ font-size:16.5px; line-height:1.55; color:var(--fg-2); max-width:62ch; }
.hours dd strong{ font-weight:500; color:var(--fg); }
.hours__note{ margin-top:26px; max-width:60ch; font-size:15px; line-height:1.6; }
@media (max-width:600px){
  .hours > div{ grid-template-columns:1fr; gap:6px; }
  .hours dt{ padding-top:0; }
}

.nots{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:clamp(28px,4vw,72px); align-items:start; }
.nots__lead{ display:flex; flex-direction:column; gap:16px; }
.nots__list li{ font-size:16.5px; color:var(--fg-2); }
@media (max-width:860px){ .nots{ grid-template-columns:1fr; } }

.origin{
  margin-top:clamp(48px,6vw,88px); padding-top:26px;
  border-top:1px solid var(--rule);
  max-width:64ch;
}
.origin p{ font-size:clamp(18px,2vw,23px); line-height:1.5; }

.metarow{
  margin-top:clamp(36px,4vw,56px); padding-top:22px;
  border-top:1px solid var(--rule);
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px 32px;
}
.metarow dt{ margin-bottom:7px; }
.metarow dd{ font-family:var(--display); font-weight:500; font-size:clamp(17px,1.7vw,21px); letter-spacing:-.02em; }
@media (max-width:720px){ .metarow{ grid-template-columns:repeat(2,1fr); } }

.sec--cta{ padding:clamp(64px,8vw,120px) 0; }
.cta{ display:flex; flex-direction:column; gap:22px; align-items:flex-start; }
.cta__act{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px; }
.cta__act .link{ border-color:rgba(242,241,234,.3); }
.cta__status{ color:rgba(242,241,234,.6); }

/* ---------- Meistä-nosto etusivulla ---------- */

.sec--tease{ padding-top:0; padding-bottom:clamp(84px,10vw,168px); }
.tease{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);
  gap:clamp(24px,3.4vw,64px);
  padding-top:clamp(28px,3vw,44px);
  border-top:1px solid var(--rule);
  align-items:start;
}
.tease__lead{ display:flex; flex-direction:column; gap:14px; }
.tease__body{ display:flex; flex-direction:column; gap:18px; align-items:flex-start; max-width:52ch; }
.tease__body p{ color:var(--fg-2); }
@media (max-width:860px){ .tease{ grid-template-columns:1fr; } }

/* ---------- Mailat ---------- */

.sec--join{ padding-top:0; }

.clubs{
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:clamp(28px,4vw,64px);
  padding-top:clamp(24px,3vw,40px);
  border-top:1px solid var(--rule);
}
@media (max-width:840px){ .clubs{ grid-template-columns:1fr; gap:32px; } }

.clubs__col{ display:flex; flex-direction:column; gap:16px; align-items:flex-start; }

.models{ display:flex; flex-wrap:wrap; gap:8px; }
.models li{
  font-family:var(--mono);
  font-size:11.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--fg-2);
  border:1px solid var(--rule); border-radius:999px;
  padding:7px 15px;
  font-variant-numeric:tabular-nums;
}
.clubs__note{ font-size:15.5px; line-height:1.55; color:var(--fg-2); max-width:46ch; }

/* ---------- Tietosuojaseloste ---------- */

.phero--legal{ padding-bottom:clamp(48px,6vw,80px); }
.legal__title{
  font-family:var(--display); font-weight:500;
  font-size:clamp(34px,5vw,68px); line-height:1; letter-spacing:-.034em;
}
.phero__meta{ margin-top:20px; color:rgba(242,241,234,.5); }

.legal{ max-width:70ch; display:flex; flex-direction:column; }
.legal__lead{ font-size:clamp(17px,1.8vw,20px); line-height:1.55; color:var(--fg-2); padding-bottom:clamp(28px,3vw,44px); }
.legal__block{ padding:clamp(28px,3vw,44px) 0; border-top:1px solid var(--rule); display:flex; flex-direction:column; gap:14px; }
.legal__block--last{ border-bottom:1px solid var(--rule); }
.legal__block h2{ font-size:clamp(20px,2.1vw,26px); letter-spacing:-.024em; }
.legal__block p{ color:var(--fg-2); }
.legal__block a{ color:var(--accent); border-bottom:1px solid currentColor; }
.legal .incl li{ padding:12px 0; }
.legal .incl li strong{ color:var(--fg); font-weight:500; }
.specs--legal{ margin-top:2px; }
.specs--legal > div{ grid-template-columns:minmax(0,10em) minmax(0,1fr); }
.specs--legal dt{ font-weight:500; }
@media (max-width:520px){ .specs--legal > div{ grid-template-columns:1fr; } }

/* ---------- Bogeykassa ---------- */

.phero__act{ margin-top:30px; }

.kassat{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(32px,4vw,68px);
  padding-top:clamp(26px,3vw,40px);
  border-top:1px solid var(--rule);
}
@media (max-width:860px){ .kassat{ grid-template-columns:1fr; gap:44px; } }
.kassa{ display:flex; flex-direction:column; gap:11px; align-items:flex-start; }
.kassa__flag{
  font-family:var(--mono); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink); background:var(--lime); padding:4px 10px;
}
.kassa__name{ font-family:var(--display); font-weight:600; font-size:23px; letter-spacing:-.024em; }
.kassa__pay{
  font-family:var(--display); font-weight:800;
  font-size:clamp(42px,4.8vw,60px); line-height:.9; letter-spacing:-.045em;
  font-variant-numeric:tabular-nums;
}
.kassa__val{ font-size:17px; color:var(--fg-2); }
.kassa__val strong{ font-weight:600; color:var(--accent); }
.kassa__plus{
  font-family:var(--display); font-weight:600;
  font-size:19px; letter-spacing:-.018em; color:var(--accent);
  display:flex; flex-direction:column; gap:3px;
}
.kassa__plus .mono{ font-weight:400; }
.kassa__note{ font-size:14.5px; line-height:1.5; color:var(--fg-3); }
.kassa__cta{ margin-top:auto; padding-top:14px; }
.kassat__foot{ margin-top:clamp(26px,3vw,40px); max-width:56ch; font-size:15.5px; }

.hours--steps > div{ grid-template-columns:52px minmax(0,1fr); }

/* ---------- Kortit (edut, tietosuojan kolmannet osapuolet) ---------- */

.cards{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(24px,3vw,48px); }
@media (max-width:760px){ .cards{ grid-template-columns:1fr; gap:28px; } }
.card{ display:flex; flex-direction:column; gap:10px; padding-top:18px; border-top:2px solid var(--accent); }
.card p:not(.mono){ font-size:15.5px; line-height:1.55; color:var(--fg-2); }

/* Paketit: sama korkeus merkille kaikissa, jotta hinnat ovat samalla viivalla */
.kassa__flag--ghost{ visibility:hidden; }
