/* TerveysSummit-loma · Ruissalo · tammikuu 2027
   Graafinen linja: Halen Reborn-deck (syvä petrooli, kerma, huurre, kulta).
   TerveysSummit-vihreä vain logossa. */

:root{
  --teal:#013946;
  --teal-2:#0A4A58;
  --slate:#4A5A5E;
  --mist:#D7E2E2;
  --mist-2:#E8EEEE;
  --cream:#ECE4DB;
  --cream-2:#F5F0E9;
  --blush:#EBD9DF;
  --gold:#968448;
  --gold-ink:#6B5C28;
  --gold-lt:#D2BC82;
  --taupe:#9C8B7B;
  --ink:#0D2A31;

  --serif:'Bodoni Moda','Didot','Bodoni 72',Georgia,serif;
  --sans:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;

  --pad:clamp(1.25rem,5vw,5rem);
  --max:78rem;
  --r:1.25rem;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:4.5rem;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:var(--sans);font-size:clamp(1rem,.95rem + .25vw,1.14rem);line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p,figure{margin:0}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}

.skip{position:absolute;left:-999px;top:0;background:var(--teal);color:#fff;padding:.7rem 1rem;z-index:100}
.skip:focus{left:0}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}

/* ---------- Typografia ---------- */
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;letter-spacing:-.02em;line-height:1.02;text-wrap:balance}
h1{font-size:clamp(3.5rem,11.5vw,10.5rem);line-height:.9;letter-spacing:-.04em;font-weight:500}
h2{font-size:clamp(2.4rem,6vw,5.4rem);line-height:.98;letter-spacing:-.03em}
h3{font-size:clamp(1.3rem,1.1rem + .9vw,1.8rem);line-height:1.12}
em{font-style:italic;font-weight:400;color:var(--gold-ink)}
.stage--teal em,.hero em,.price em{color:var(--gold-lt)}
.eyebrow{
  font:600 .74rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-ink);margin-bottom:1.6rem;
}
.eyebrow--light{color:var(--gold-lt)}
.lede{font-size:clamp(1.1rem,1rem + .55vw,1.4rem);line-height:1.55;max-width:38rem;margin-top:1.6rem;color:var(--slate)}
.lede--light{color:rgba(255,255,255,.86)}
.fine{font-size:.86rem;line-height:1.55;color:var(--slate);max-width:44rem;margin-top:1.4rem}
.fine--light{color:rgba(255,255,255,.7)}
.note{color:var(--slate);margin:.4rem 0 1.8rem;max-width:40rem}
.sub{font-size:clamp(1.3rem,1.1rem + .8vw,1.7rem);margin:4rem 0 1.4rem;font-style:italic;font-weight:400}

/* ---------- Painikkeet ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:1rem 1.8rem;border-radius:999px;border:1.5px solid transparent;
  background:var(--cream);color:var(--teal);
  font:600 .98rem/1 var(--sans);letter-spacing:.01em;text-decoration:none;cursor:pointer;
  transition:transform .3s var(--ease),background .3s,color .3s,border-color .3s;
}
.btn:hover{transform:translateY(-2px)}
.btn--small{padding:.7rem 1.2rem;font-size:.9rem}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn--ghost:hover{background:rgba(255,255,255,.12)}
.btn--gold{background:var(--gold-lt);color:var(--teal)}
.btn--teal{background:var(--teal);color:#fff;width:100%;padding:1.15rem}
.btn--teal:hover{background:var(--teal-2)}

/* ---------- Header + rail ---------- */
.top{
  position:fixed;inset:0 0 auto 0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.9rem var(--pad);
  transition:background .4s,box-shadow .4s,padding .4s;
}
.top.is-solid{background:rgba(1,57,70,.94);backdrop-filter:blur(10px);padding-block:.55rem;box-shadow:0 1px 0 rgba(255,255,255,.08)}
.brand{display:flex;align-items:center;gap:.9rem;text-decoration:none}
.brand__reborn{height:clamp(1.9rem,3.4vw,2.7rem);width:auto}
.brand__ts{height:clamp(2.3rem,4vw,3.1rem);width:auto;filter:drop-shadow(0 1px 6px rgba(0,0,0,.25))}
.brand__x{color:var(--gold-lt);font-family:var(--serif);font-size:1.3rem}
.top .btn{background:var(--cream);color:var(--teal)}

.rail{
  position:fixed;right:clamp(.6rem,1.6vw,1.6rem);top:50%;transform:translateY(-50%);z-index:40;
  display:flex;flex-direction:column;gap:.15rem;
}
.rail a{
  position:relative;display:flex;align-items:center;justify-content:flex-end;
  width:1.6rem;height:1.6rem;text-decoration:none;
}
.rail a::before{
  content:"";width:.5rem;height:.5rem;border-radius:50%;
  background:transparent;border:1.5px solid currentColor;opacity:.55;
  transition:transform .3s var(--ease),opacity .3s,background .3s;
}
.rail a.is-on::before{background:currentColor;opacity:1;transform:scale(1.35)}
.rail a span{
  position:absolute;right:1.7rem;white-space:nowrap;font:600 .72rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;
  padding:.45rem .7rem;border-radius:999px;background:var(--teal);color:#fff;
  opacity:0;transform:translateX(6px);pointer-events:none;transition:opacity .25s,transform .25s;
}
.rail a:hover span,.rail a:focus-visible span{opacity:1;transform:none}
.rail{color:var(--gold-ink)}
.rail.on-dark{color:var(--gold-lt)}
@media (max-width:900px){.rail{display:none}}

/* ---------- Stage (jokainen osio täyttää ruudun, webinaariin sopivaksi) ---------- */
.stage{
  position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  padding-block:clamp(5.5rem,11vh,9rem);
}
.stage--cream{background:var(--cream)}
.stage--mist{background:var(--mist)}
.stage--teal{background:var(--teal);color:#fff}
.stage--teal h2,.stage--teal h3{color:#fff}

/* ---------- Hero ---------- */
.hero{padding:0;justify-content:flex-end;color:#fff;background:var(--teal);overflow:hidden}
.hero__img{position:absolute;inset:0}
.hero__img img{width:100%;height:100%;object-fit:cover;object-position:50% 62%;transform:scale(-1.06,1.06);animation:settle 2.6s var(--ease) forwards}
.hero__img::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(1,50,62,.62) 0%,rgba(1,50,62,.25) 48%,rgba(1,50,62,0) 75%),
    linear-gradient(180deg,rgba(1,57,70,.6) 0%,rgba(1,57,70,0) 30%),
    linear-gradient(0deg,rgba(1,40,50,.92) 0%,rgba(1,57,70,.55) 38%,rgba(1,57,70,0) 70%);
}
.hero__body{position:relative;padding-block:clamp(7rem,16vh,10rem) clamp(2.5rem,7vh,5rem)}
.hero h1 em{display:block;padding-left:.12em}
.hero .lede{max-width:34rem}
.hero__cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.2rem}
@keyframes settle{to{transform:scale(-1,1)}}

/* ---------- Konsepti ---------- */
.statement{max-width:18ch;font-size:clamp(2.6rem,7vw,6.4rem);line-height:.96}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,4vw,3.5rem);margin-top:clamp(3rem,7vh,5rem)}
.trio article{border-top:1px solid rgba(13,42,49,.25);padding-top:1.3rem}
.trio h3{margin-bottom:.8rem}
.trio p{color:var(--slate)}
.reborn-note{
  display:grid;grid-template-columns:minmax(10rem,16rem) 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;
  margin-top:clamp(3rem,7vh,5rem);padding:clamp(1.4rem,3vw,2.2rem);border-radius:var(--r);background:var(--cream-2);
}
.reborn-note p{color:var(--slate);max-width:44rem}
.reborn-note strong{color:var(--ink)}

/* ---------- Paikka ---------- */
.place__grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.facts{margin-top:2.2rem;display:grid;gap:1.1rem}
.facts li{padding-left:1.3rem;position:relative;color:rgba(255,255,255,.82)}
.facts li::before{content:"";position:absolute;left:0;top:.72em;width:.5rem;height:1px;background:var(--gold-lt)}
.facts b{color:#fff;font-weight:600}
.place__photos{display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:auto auto;gap:clamp(.6rem,1.4vw,1.1rem)}
.ph{overflow:hidden;border-radius:var(--r);background:var(--teal-2)}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.ph:hover img{transform:scale(1.035)}
.ph--a{grid-column:1/3;aspect-ratio:16/9}
.ph--b{aspect-ratio:4/5}
.ph--c{aspect-ratio:4/5}
.place__more{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.6rem,1.4vw,1.1rem);margin-top:clamp(2.5rem,6vh,4rem)}
.ph--wide{position:relative;aspect-ratio:3/2}
.ph--wide figcaption{
  position:absolute;inset:auto 0 0 0;padding:2.4rem 1.1rem .9rem;font-size:.86rem;line-height:1.4;color:#fff;
  background:linear-gradient(0deg,rgba(1,40,50,.85),rgba(1,40,50,0));
}

/* ---------- Viikot + kalenteri ---------- */
.weeks{display:grid;grid-template-columns:1fr minmax(18rem,30rem);gap:clamp(2rem,7vw,7rem);align-items:center}
.plain{display:grid;gap:1rem;margin-top:2rem;max-width:36rem}
.plain li{padding-left:1.3rem;position:relative;color:var(--slate)}
.plain li::before{content:"";position:absolute;left:0;top:.75em;width:.5rem;height:1px;background:var(--gold-ink)}
.plain b{color:var(--ink);font-weight:600}
.plain--light li{color:rgba(255,255,255,.82)}
.plain--light li::before{background:var(--gold-lt)}

.cal{background:var(--cream-2);border-radius:calc(var(--r) * 1.4);padding:clamp(1.1rem,2.4vw,1.8rem);box-shadow:0 30px 60px -30px rgba(1,57,70,.35)}
.cal__head{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.5rem);letter-spacing:-.02em;margin-bottom:1rem}
.cal__head span:last-child{color:var(--gold-ink);font-style:italic}
.cal__dow,.cal__row{display:grid;grid-template-columns:repeat(7,1fr);align-items:center;text-align:center}
.cal__dow{font:600 .7rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--taupe);padding-bottom:.6rem}
.cal__row{margin-top:.35rem;min-height:3rem}
.cal__row > span{color:var(--slate);font-variant-numeric:tabular-nums}
.cal__row--off{opacity:.45}
.band{
  grid-column:3/8;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;text-align:center;
  height:3rem;border-radius:999px;border:1.5px solid var(--gold);background:transparent;color:var(--ink);
  font:inherit;padding:0;position:relative;isolation:isolate;
  transition:background .35s var(--ease),color .35s,transform .35s var(--ease),border-color .35s;
  font-variant-numeric:tabular-nums;
}
/* band: Ke To Pe La Su, joten 4. on lauantai */
.band span:nth-child(4){position:relative;font-weight:700}
.band span:nth-child(4)::before{content:"";position:absolute;inset:50% auto auto 50%;width:2.3rem;height:2.3rem;transform:translate(-50%,-50%);border-radius:50%;background:var(--gold-lt);z-index:-1}
.cal__legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;margin-top:1.2rem;font-size:.85rem;color:var(--slate)}
.dot{display:inline-block;width:.8rem;height:.8rem;border-radius:50%;background:var(--gold-lt)}
.cal__sel{margin-left:auto;font-weight:600;color:var(--teal)}

/* ---------- Ohjelma (päivät) ---------- */
.days{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(.6rem,1.4vw,1.2rem);margin-top:clamp(2rem,5vh,3.4rem)}
.days > li{display:flex;flex-direction:column;gap:.7rem;padding:1.4rem 1.2rem;border-radius:var(--r);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14)}
.days > li:nth-child(4){background:var(--gold-lt);color:var(--teal);border-color:var(--gold-lt)}
.days__d{font:600 .74rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-lt)}
.days > li:nth-child(4) .days__d{color:var(--teal)}
.days__t{font-size:clamp(1.5rem,1.2rem + .9vw,2rem);font-style:italic;font-weight:400;color:#fff}
.days > li:nth-child(4) .days__t{color:var(--teal)}
.dl{display:grid;gap:.7rem;margin-top:.3rem}
.dl li{position:relative;padding-left:1rem;font-size:.95rem;line-height:1.4;color:rgba(255,255,255,.88)}
.dl li::before{content:"";position:absolute;left:0;top:.7em;width:.4rem;height:1px;background:var(--gold-lt)}
.days > li:nth-child(4) .dl li{color:var(--teal)}
.days > li:nth-child(4) .dl li::before{background:var(--teal)}
.rhythm .fine{margin-top:2rem}

/* ---------- Menu ---------- */
.menu{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.key{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;margin:1.8rem 0 2rem;font-size:.9rem;color:var(--slate)}
.key span{display:inline-flex;align-items:center;gap:.5rem}
.m{display:inline-block;width:.8rem;height:.8rem;border-radius:50%;flex:none}
.m--in{background:var(--teal)}
.m--pay{border:1.5px solid var(--gold-ink);background:transparent}
.m--lim{background:linear-gradient(90deg,var(--gold-ink) 50%,transparent 50%);border:1.5px solid var(--gold-ink)}
.ph--menu{border-radius:var(--r);margin-top:1rem}
.ph--menu img{aspect-ratio:3/2}
.ph--menu figcaption{font-size:.82rem;color:var(--slate);padding:.7rem 0 0}
.menu__card{background:var(--cream-2);border-radius:calc(var(--r) * 1.4);padding:clamp(1.5rem,3.5vw,3rem);box-shadow:0 30px 60px -34px rgba(13,42,49,.35)}
.menu__card section{padding-block:1.2rem;border-top:1px solid rgba(13,42,49,.14)}
.menu__card section:first-child{border-top:0;padding-top:0}
.menu__card h3{font-style:italic;font-weight:400;font-size:clamp(1.4rem,1.2rem + .8vw,2rem);color:var(--gold-ink);margin-bottom:.7rem}
.menu__card li{display:flex;align-items:baseline;gap:.7rem;padding:.3rem 0}
.menu__card li span{flex:0 1 auto}
.menu__card li::after{content:"";flex:1;order:1;border-bottom:1.5px dotted rgba(13,42,49,.28);transform:translateY(-.28em);min-width:1rem}
.menu__card li i{order:2;align-self:center}
.menu__card .fine{margin-top:1.4rem}

/* ---------- Kumppanit ---------- */
.ctn{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.8rem,2vw,1.6rem);margin-top:clamp(2.2rem,5vh,3.4rem)}
.ctn__card{background:var(--cream-2);border-radius:var(--r);overflow:hidden;padding-bottom:1.4rem}
.ctn__card figure{aspect-ratio:3/2;overflow:hidden;margin-bottom:1.2rem}
.ctn__card img{width:100%;height:100%;object-fit:cover}
.ctn__card h3,.ctn__card p{padding-inline:1.3rem}
.ctn__card h3{margin-bottom:.5rem;font-size:clamp(1.25rem,1.1rem + .6vw,1.6rem)}
.ctn__card p{color:var(--slate);font-size:.97rem}
.ctn__by{display:flex;align-items:center;gap:1rem;margin-top:1rem;font-size:.85rem;color:var(--slate)}
.ctn__by img{height:2.4rem;width:auto;mix-blend-mode:multiply}
.plist{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.8rem,2vw,1.6rem);margin-top:clamp(2rem,5vh,3.2rem)}
.plist li{border-top:1px solid rgba(13,42,49,.25);padding-top:1.2rem}
.plist img{height:2rem;width:auto;max-width:100%;object-fit:contain;object-position:left;margin-bottom:1rem}
.plist img.mult{mix-blend-mode:multiply;height:3rem}
.plist img.inv{filter:none}
.plist p{font-size:.95rem;color:var(--slate)}

/* ---------- Yhdessä ---------- */
.together__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,7vw,7rem);align-items:center}
.ph--tall{aspect-ratio:4/5;border-radius:calc(var(--r) * 1.6) calc(var(--r) * 1.6) calc(var(--r) * 1.6) 12rem}
.together .plain{max-width:none}

/* ---------- Hinta ---------- */
.price__grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.price .btn{margin-top:1rem;justify-self:start}
.steps{display:grid;gap:0;counter-reset:s}
.steps li{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;padding:1.4rem 0;border-top:1px solid rgba(255,255,255,.2)}
.steps li:last-child{border-bottom:1px solid rgba(255,255,255,.2)}
.steps b{font-family:var(--serif);font-weight:500;font-size:1.4rem;color:var(--gold-lt);line-height:1.1}
.steps span{color:rgba(255,255,255,.86)}
.price__notes{grid-column:1/-1;max-width:none;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:1rem}
.price .btn{grid-column:1/-1}

/* ---------- Ihmiset ---------- */
.hosts{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:clamp(1rem,2.4vw,2rem);align-items:start}
.ph--host{grid-row:1/3}
.ph--host img{aspect-ratio:4/3}
.ph--host figcaption{font-size:.82rem;color:var(--slate);padding:.6rem .2rem 0;background:none}
.host{padding-top:1rem;border-top:1px solid rgba(13,42,49,.25)}
.host h4{font-size:clamp(1.5rem,1.2rem + 1vw,2.1rem);margin-bottom:.6rem}
.host p{color:var(--slate);font-size:.98rem}
.hosts__what{grid-column:2/4;color:var(--ink);font-weight:500}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.8rem,2vw,1.4rem)}
.card{display:flex;flex-direction:column;gap:.35rem}
.card__ph{aspect-ratio:5/3;border-radius:999px 999px var(--r) var(--r);background:var(--mist);margin-bottom:.8rem}
.card.is-open .card__ph{background:transparent;border:1.5px dashed var(--taupe)}
.card b{font-family:var(--serif);font-weight:500;font-size:1.25rem;line-height:1.15}
.card small{color:var(--slate);font-size:.88rem}
.therapists{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(.8rem,2vw,1.4rem)}
.therapists li{padding-top:1rem;border-top:1px solid rgba(13,42,49,.25);display:flex;flex-direction:column;gap:.3rem}
.therapists b{font-family:var(--serif);font-weight:500;font-size:1.2rem;line-height:1.15}
.therapists span{font-size:.9rem;color:var(--slate)}
.therapists .is-open b{font-style:italic;color:var(--gold-ink)}
.callout{margin-top:clamp(3rem,7vh,5rem);padding:clamp(1.6rem,4vw,3.2rem);border-radius:calc(var(--r) * 1.4);background:var(--teal);color:#fff;display:grid;gap:1.1rem;justify-items:start}
.callout h3{font-size:clamp(1.7rem,1.3rem + 1.6vw,2.8rem);max-width:22ch}
.callout p{max-width:50rem;color:rgba(255,255,255,.84)}
.callout .btn{margin-top:.4rem}

/* ---------- Lomake ---------- */
.signup__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.form{background:var(--cream-2);border-radius:calc(var(--r) * 1.4);padding:clamp(1.4rem,3.2vw,2.6rem);display:grid;gap:1.1rem;box-shadow:0 30px 60px -34px rgba(1,57,70,.4)}
.f{display:grid;gap:.4rem;font-weight:600;font-size:.92rem}
.f small{font-weight:400;color:var(--slate)}
.f input,.f select,.f textarea{
  font:400 1rem/1.4 var(--sans);color:var(--ink);width:100%;
  padding:.85rem 1rem;border-radius:.8rem;border:1.5px solid rgba(13,42,49,.22);background:#fff;
  transition:border-color .2s,box-shadow .2s;
}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px rgba(1,57,70,.14)}
.f--weeks{border:0;padding:0;margin:0;grid-template-columns:repeat(4,1fr);gap:.5rem}
.f--weeks legend{padding:0;margin-bottom:.5rem;font-weight:600;font-size:.92rem}
.f--weeks label{position:relative;display:block}
.f--weeks input{position:absolute;opacity:0;inset:0;cursor:pointer}
.f--weeks span{display:block;text-align:center;padding:.8rem .3rem;border-radius:999px;border:1.5px solid var(--gold);font-weight:600;font-size:.88rem;font-variant-numeric:tabular-nums;transition:background .25s,color .25s}
.f--weeks input:checked + span{background:var(--teal);border-color:var(--teal);color:#fff}
.f--weeks input:focus-visible + span{outline:3px solid var(--gold);outline-offset:2px}
.chk{display:flex;gap:.7rem;align-items:flex-start;font-size:.92rem;color:var(--slate);cursor:pointer}
.chk input{margin-top:.28rem;width:1.1rem;height:1.1rem;accent-color:var(--teal);flex:none}
.hp{position:absolute;left:-9999px;opacity:0}
.form__msg{min-height:1.4em;font-weight:600;font-size:.95rem}
.form__msg.is-ok{color:var(--teal)}
.form__msg.is-err{color:#8A2B2B}
.f input[aria-invalid="true"]{border-color:#8A2B2B}

/* ---------- Footer ---------- */
.foot{background:var(--teal);color:#fff;padding-block:clamp(3rem,8vh,5rem)}
.foot__in{display:grid;gap:1.4rem}
.foot__logos{display:flex;align-items:center;gap:1.6rem}
.foot__logos img:first-child{height:3rem;width:auto}
.foot__logos img:last-child{height:3.6rem;width:auto}

/* ---------- Paljastus ---------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}

/* ---------- Mobiili ---------- */
@media (max-width:980px){
  .trio,.ctn,.cards{grid-template-columns:1fr 1fr}
  .place__grid,.weeks,.menu,.together__grid,.price__grid,.signup__grid{grid-template-columns:1fr}
  .reborn-note{grid-template-columns:1fr}
  .reborn-note img{max-width:13rem}
  .place__more{grid-template-columns:1fr}
  .days{grid-template-columns:1fr 1fr}
  .plist{grid-template-columns:1fr 1fr}
  .therapists{grid-template-columns:1fr 1fr}
  .hosts{grid-template-columns:1fr 1fr}
  .ph--host{grid-column:1/-1;grid-row:auto}
  .hosts__what{grid-column:1/-1}
  .price__notes{grid-template-columns:1fr}
  .ph--tall{max-width:26rem;border-radius:var(--r) var(--r) var(--r) 8rem}
  .stage{min-height:auto}
  .hero{min-height:100svh}
}
@media (max-width:620px){
  .trio,.ctn,.cards,.plist,.therapists,.days,.hosts{grid-template-columns:1fr}
  .f--weeks{grid-template-columns:1fr 1fr}
  .brand__x{display:none}
  .brand__ts{display:none}
  .steps li{grid-template-columns:1fr;gap:.3rem}
  .top .btn{padding:.65rem 1rem}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
  .hero__img img{transform:scaleX(-1)}
}

/* Kuvatekstilliset kuvat: laatikko vain kuvalle, ei tekstille */
.ph--menu,.ph--host{background:none;overflow:visible}
.ph--menu img,.ph--host img{border-radius:var(--r)}
.ph--menu:hover img,.ph--host:hover img{transform:none}

.cta-card{background:var(--cream-2);border-radius:calc(var(--r) * 1.4);padding:clamp(1.6rem,3.5vw,2.8rem);display:grid;gap:1.2rem;justify-items:start;box-shadow:0 30px 60px -34px rgba(1,57,70,.4)}
.cta-card img{height:4.5rem;width:auto}
.cta-card .btn{width:100%}

/* Otsikkofontti: Bodoni Moda -hiusviivat katoavat isossa koossa, joten käytetään vahvempaa optista kokoa */
h1,h2,h3,h4,.statement,.cal__head,.days p,.steps b,.card b,.therapists b{font-optical-sizing:none;font-variation-settings:"opsz" 18}
h1{font-weight:600}
h2,.statement{font-weight:600}

/* Kielivalinta */
.top__right{display:flex;align-items:center;gap:1rem}
.lang{display:flex;align-items:center;gap:.35rem;font:600 .78rem/1 var(--sans);letter-spacing:.14em;color:rgba(255,255,255,.6)}
.lang a{text-decoration:none;color:rgba(255,255,255,.7);padding:.35rem .2rem;transition:color .2s}
.lang a:hover{color:#fff}
.lang a[aria-current]{color:#fff;box-shadow:0 1px 0 var(--gold-lt)}
@media (max-width:620px){.top__right{gap:.7rem}.top .btn{padding:.6rem .85rem;font-size:.85rem}}

/* Englanninkielinen otsikko on pidempi: pienempi koko, ettei se mene hahmon päälle */
html[lang="en"] h1{font-size:clamp(3.2rem,8.6vw,8.2rem)}

/* ---------- Paketti / offer stack ---------- */
.pack__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.pcard{margin-top:2rem;background:var(--teal);color:#fff;border-radius:calc(var(--r) * 1.4);padding:clamp(1.4rem,3vw,2.2rem);display:grid;gap:.6rem;box-shadow:0 30px 60px -30px rgba(1,57,70,.55)}
.pcard__k{font:600 .72rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-lt)}
.pcard h3{color:#fff;font-size:clamp(1.8rem,1.3rem + 1.6vw,2.6rem)}
.pcard__s{color:rgba(255,255,255,.8)}
.pcard__price{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .9rem;margin-top:.6rem}
.pcard__price s{color:rgba(255,255,255,.55);font-size:1.15rem}
.pcard__price b{font-family:var(--serif);font-weight:600;font-size:clamp(3rem,2rem + 3vw,4.6rem);line-height:1;color:var(--gold-lt);letter-spacing:-.03em}
.pcard__price span{color:rgba(255,255,255,.75)}
.pcard__n{font-weight:600}
.pcard__more{font-size:.92rem;color:rgba(255,255,255,.72)}
.pcard .btn{margin-top:.6rem;background:var(--cream);color:var(--teal);width:100%}
.stack{background:var(--cream-2);border-radius:calc(var(--r) * 1.4);padding:clamp(.6rem,1.6vw,1.2rem) clamp(1.2rem,3vw,2.2rem);box-shadow:0 30px 60px -34px rgba(13,42,49,.35)}
.stack li{display:flex;justify-content:space-between;align-items:baseline;gap:1.2rem;padding:1rem 0;border-top:1px solid rgba(13,42,49,.14)}
.stack li:first-child{border-top:0}
.stack b{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(1.15rem,1rem + .6vw,1.45rem);line-height:1.15}
.stack small{display:block;color:var(--slate);font-size:.88rem;margin-top:.2rem}
.stack .v{font-variant-numeric:tabular-nums;font-weight:600;color:var(--gold-ink);white-space:nowrap}
.stack__sum{border-top:2px solid var(--teal)!important}
.stack__sum b{font-style:italic}
.stack__sum .v{color:var(--teal);font-size:1.3rem}
.extra{margin-top:1.8rem}
.extra h3{font-style:italic;font-weight:400;color:var(--gold-ink);margin-bottom:.5rem}
.tip{display:grid;gap:.2rem;margin-top:1.2rem;padding:1.1rem 1.3rem;border-radius:var(--r);background:var(--gold-lt);color:var(--teal)}
.tip b{font-family:var(--serif);font-weight:600;font-size:1.2rem;line-height:1.2}

/* ---------- Varaus ---------- */
.price__btns{display:flex;flex-wrap:wrap;gap:.9rem;grid-column:1/-1}
.price .price__btns .btn{margin-top:0}
.steps li{grid-template-columns:6.5rem 1fr}

/* ---------- Esiintyjät ---------- */
.profs{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.4vw,2rem)}
.prof{display:flex;flex-direction:column;gap:.5rem;align-items:center;text-align:center}
.prof__ph{aspect-ratio:1;overflow:hidden;border-radius:50%;background:var(--mist);margin:0 auto .8rem;width:min(100%,15rem)}
.prof__ph img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.prof h4{font-size:clamp(1.5rem,1.2rem + 1vw,2.1rem)}
.prof__t{color:var(--gold-ink);font-weight:600;font-size:.92rem;line-height:1.35}
.prof__tags{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin:.2rem 0 .3rem}
.prof__tags li{padding:.3rem .7rem;border-radius:999px;border:1px solid rgba(13,42,49,.25);font-size:.8rem;color:var(--ink)}
.prof p:last-child{color:var(--slate);font-size:.95rem}
@media (max-width:980px){.profs{grid-template-columns:1fr 1fr}.pack__grid{grid-template-columns:1fr}}
@media (max-width:620px){.profs{grid-template-columns:1fr}}

/* Viikon vieraat: samankokoiset kuvat kuin joka viikko mukana olevilla */
.prof__wk{font:600 .72rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);margin-top:.2rem}
.profs + .profs,.sub + .profs{margin-top:0}
.prof--guest p:last-child{color:var(--slate);font-size:.95rem}
.prof--soon .prof__ph{background:transparent;border:1.5px dashed var(--taupe)}
.prof--soon h4{font-style:italic;font-weight:400;color:var(--slate);font-size:1.4rem}
.prof__ph .ini{display:grid;place-items:center;width:100%;height:100%;font-family:var(--serif);font-weight:600;color:var(--teal);font-size:3rem}
.profs{row-gap:clamp(1.8rem,4vw,3rem)}

/* Hero: Sonjan tekstit */
.hero__p{max-width:38rem;margin-top:1rem;color:rgba(255,255,255,.82);font-size:clamp(.98rem,.94rem + .2vw,1.1rem);line-height:1.6}
.hero .lede{max-width:40rem}
.hero__cta{margin-top:1.6rem}

/* Konsepti: pitkä otsikko ja johdanto */
.statement--long{max-width:20ch;font-size:clamp(2.2rem,5.4vw,5rem);line-height:1}
.intro{display:grid;grid-template-columns:minmax(9rem,14rem) 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start;margin-top:clamp(2rem,5vh,3.2rem)}
.intro__logo{width:100%;height:auto}
.intro__txt{columns:2;column-gap:clamp(1.5rem,3vw,3rem);max-width:60rem}
.intro__txt p{color:var(--slate);max-width:none;break-inside:avoid;margin:0 0 1.1rem}
.intro__txt strong{color:var(--ink)}
@media (max-width:980px){.intro{grid-template-columns:1fr}.intro__logo{max-width:11rem}.intro__txt{columns:1}}

.btn{white-space:nowrap}
@media (max-width:420px){.top .btn{padding:.6rem .8rem;font-size:.82rem}.brand__reborn{height:1.7rem}}

/* Hostit: suorakaiteen muotoinen kuva */
.ph--host img{aspect-ratio:3/2;object-fit:cover}

/* Viikon vieraat: selkeät viikkopaneelit */
.wps{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.8rem,2vw,1.4rem)}
.wp{border-radius:calc(var(--r) * 1.3);padding:clamp(1.1rem,2.4vw,1.8rem);display:grid;gap:1.3rem;align-content:start;background:var(--cream-2);border:1px solid rgba(13,42,49,.1)}
.wp--1{background:var(--cream-2)}
.wp--2{background:var(--mist-2)}
.wp--3{background:var(--blush)}
.wp--4{background:transparent;border:1.5px dashed var(--taupe)}
.wp__h{display:flex;align-items:center;gap:.9rem}
.wp__n{display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:50%;background:var(--teal);color:#fff;font-family:var(--serif);font-weight:600;font-size:1.4rem}
.wp--4 .wp__n{background:transparent;border:1.5px dashed var(--taupe);color:var(--slate)}
.wp__h h4{font-size:clamp(1.5rem,1.2rem + .9vw,2rem)}
.wp__h small{display:block;font:600 .74rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);margin-top:.35rem}
.wp__c{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:1.4rem 1rem}
.gc{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.3rem}
.gc__ph{width:min(100%,9.5rem);aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--mist);margin-bottom:.5rem;display:grid;place-items:center}
.gc__ph img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.gc__ph .ini{font-family:var(--serif);font-weight:600;color:var(--teal);font-size:2.4rem}
.gc h5{font-family:var(--serif);font-weight:500;font-size:1.25rem;line-height:1.15;letter-spacing:-.01em}
.gc__d{font:600 .72rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.gc__n{color:var(--slate);font-size:.9rem;line-height:1.4}
.gc--soon .gc__ph{background:transparent;border:1.5px dashed var(--taupe)}
.gc--soon .gc__n{font-style:italic}
@media (max-width:760px){.wps{grid-template-columns:1fr}}

/* Viikko 4 on nyt täytetty */
.wp--4{background:#EFE6D2;border:1px solid rgba(13,42,49,.1)}
.wp--4 .wp__n{background:var(--teal);border:0;color:#fff}

.ph--host img{aspect-ratio:1/1}

.pcard__code{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.4rem;padding:.8rem 1rem;border-radius:var(--r);border:1.5px dashed var(--gold-lt)}
.pcard__code span{font:600 .72rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.pcard__code b{font-family:var(--serif);font-weight:600;font-size:1.5rem;color:var(--gold-lt);letter-spacing:.01em}
.steps b b,.steps span b{font-family:var(--sans);font-weight:700;color:var(--gold-lt)}

/* Samankokoiset puhujakuvat molemmissa osioissa */
.prof__ph{width:min(100%,12rem)}
.gc__ph{width:min(100%,12rem)}
.wp__c{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}
.gc__ph .ini{font-size:3rem}

.wps{align-items:start}

.therapists{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}

/* Viikon vieraat: yksi rivi per viikko (to / pe / la) */
.wps{grid-template-columns:1fr;align-items:stretch}
.wp__c{grid-template-columns:repeat(3,1fr);gap:1.4rem clamp(1rem,2.5vw,2.5rem)}
.gc__t{color:var(--gold-ink);font-weight:600;font-size:.82rem;line-height:1.35;max-width:22rem}
.gc__n{max-width:22rem}
.gc__tr{margin-top:.2rem;padding:.25rem .7rem;border-radius:999px;border:1px solid rgba(13,42,49,.25);font-size:.78rem;color:var(--ink)}
.gc__d{margin-bottom:.4rem}
@media (max-width:860px){.wp__c{grid-template-columns:1fr}.gc{padding-bottom:1rem;border-bottom:1px solid rgba(13,42,49,.12)}.gc:last-child{border-bottom:0}}

/* Hoitajat: oma osio */
.ther .therg{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,4vw,3rem) clamp(1rem,2.5vw,2.5rem);margin-top:clamp(2rem,5vh,3.4rem)}
.ther .gc__n{font-weight:600;color:var(--ink)}
.ther .gc__t{max-width:20rem}
.ther .gc__d{letter-spacing:.12em}
.ther .fine{margin-top:2.5rem}
@media (max-width:980px){.ther .therg{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.ther .therg{grid-template-columns:1fr}}

.ther .gc__ph{background:var(--cream-2)}

/* Kylpylän omat hoidot */
.spa__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.spa__note{margin-top:1.4rem;font-weight:600;color:var(--ink);max-width:34rem}
.spa__btn{margin-top:1.6rem;width:auto}
.spa__list{display:grid;gap:.8rem}
.spa__bar{background:#fff;border-radius:var(--r);padding:1.4rem 1.6rem;box-shadow:0 18px 40px -28px rgba(13,42,49,.45)}
.spa__bar b{font-family:var(--serif);font-weight:500;font-size:clamp(1.4rem,1.1rem + 1vw,1.9rem);letter-spacing:-.01em;color:var(--teal)}
.spa__chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.spa__chips li{padding:.4rem .9rem;border-radius:999px;background:var(--mist-2);color:var(--teal);font-size:.92rem;font-weight:500}
@media (max-width:980px){.spa__grid{grid-template-columns:1fr}}

/* Neljä joka viikko mukana olevaa; viikon rivit joustavat vierasmäärän mukaan */
.profs--4{grid-template-columns:repeat(4,1fr)}
.profs--4 .prof p:last-child{font-size:.9rem}
.prof__ph .ini{display:grid;place-items:center;width:100%;height:100%;font-family:var(--serif);font-weight:600;color:var(--teal);font-size:3rem}
.wp__c{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}
@media (max-width:980px){.profs--4{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.profs--4{grid-template-columns:1fr}}

/* Sonjan tekstit: keskitetty johdanto, hero */
.hero h1{font-size:clamp(3.2rem,9.5vw,8.5rem)}
.hero .lede{font-size:clamp(1.2rem,1.05rem + .7vw,1.55rem);max-width:44rem}
.hero__p{max-width:44rem;margin-top:.8rem;font-size:clamp(.95rem,.92rem + .15vw,1.05rem);line-height:1.55}
.hero__when{font-weight:600;letter-spacing:.04em;margin-top:1.2rem;color:var(--gold-lt)}
.hero__cta{margin-top:1.2rem}
.intro--c{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0;margin-top:0}
.intro--c .eyebrow{margin-bottom:1.4rem}
.intro--c .statement{max-width:24ch;margin-inline:auto;text-align:center}
.intro--c .intro__logo{width:min(15rem,60%);margin:clamp(1.6rem,4vh,2.6rem) auto}
.intro--c .intro__txt{columns:1;max-width:42rem;margin-inline:auto}
.intro--c .intro__txt p{max-width:none;margin:0 0 1.15rem;color:var(--slate)}
.intro--c .intro__lead{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,1.1rem + .8vw,1.8rem);line-height:1.3;color:var(--ink)!important}
.intro--c .intro__close{font-family:var(--serif);font-size:clamp(1.2rem,1.05rem + .6vw,1.5rem);color:var(--teal)!important;margin-top:.6rem}
.banner{margin:clamp(2.2rem,6vh,4rem) 0 0;border-radius:calc(var(--r) * 1.4);overflow:hidden}
.banner img{width:100%;aspect-ratio:21/9;object-fit:cover;object-position:50% 55%}
@media (max-width:620px){.banner img{aspect-ratio:4/3}}

.intro--c .intro__txt{text-align:center}

/* Joka viikko mukana olevien nimet samaa kokoa kuin vieraiden */
.prof h4{font-size:1.25rem;line-height:1.15;font-weight:500;letter-spacing:-.01em}

@media (max-width:620px){.banner img{object-position:38% 50%}}

/* Myyntivaltit: pienet vaakakuvat */
.trio article{border-top:0;padding-top:0}
.trio__ph{aspect-ratio:3/2;overflow:hidden;border-radius:var(--r);margin-bottom:1.2rem}
.trio__ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.trio article:hover .trio__ph img{transform:scale(1.04)}

/* Paikka: keskitetty ja symmetrinen */
.place__c{display:flex;flex-direction:column;align-items:center;text-align:center}
.place__c h2{max-width:20ch;margin-inline:auto}
.place__txt{max-width:44rem;margin:1.8rem auto 0}
.place__txt p{max-width:none;margin:0 0 1.1rem;color:rgba(255,255,255,.84)}
.place__lead{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,1.1rem + .8vw,1.8rem);line-height:1.3;color:#fff!important}
.place__close{font-family:var(--serif);font-size:clamp(1.2rem,1.05rem + .6vw,1.5rem);color:var(--gold-lt)!important}
.trip{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.7rem,1.6vw,1.2rem);width:100%;margin-top:clamp(1.8rem,5vh,3rem)}
.trip .ph{aspect-ratio:4/3}
.trip--cap .ph{position:relative;aspect-ratio:3/2}
.trip--cap figcaption{position:absolute;inset:auto 0 0 0;padding:2.4rem 1.1rem .9rem;font-size:.86rem;line-height:1.4;color:#fff;background:linear-gradient(0deg,rgba(1,40,50,.85),rgba(1,40,50,0));text-align:left}
.allthis{margin-top:clamp(2.6rem,7vh,4.2rem);font-style:italic;font-weight:400;color:var(--gold-lt)}
.allgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:1.4rem clamp(1rem,2.5vw,2.4rem);width:100%;margin:clamp(1.6rem,4vh,2.4rem) 0 clamp(2rem,5vh,3rem);text-align:center}
.allgrid li{grid-column:span 2;color:rgba(255,255,255,.84);padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.2)}
.allgrid li:nth-child(4){grid-column:2 / span 2}
.allgrid li:nth-child(5){grid-column:4 / span 2}
.allgrid b{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(1.15rem,1rem + .5vw,1.4rem);line-height:1.2;color:#fff;margin-bottom:.5rem}
@media (max-width:980px){.trip{grid-template-columns:1fr}.allgrid{grid-template-columns:1fr 1fr}.allgrid li,.allgrid li:nth-child(4),.allgrid li:nth-child(5){grid-column:auto}}
@media (max-width:620px){.allgrid{grid-template-columns:1fr}}

/* Ajankohta: keskitetty johdanto, viikkovalinta + kalenteri */
.dates__c{display:flex;flex-direction:column;align-items:center;text-align:center}
.dates__c h2{max-width:20ch;margin-inline:auto}
.dates__sub{margin-top:1.4rem;font-style:italic;font-weight:400;color:var(--gold-ink)}
.dates__txt{max-width:44rem;margin:1.6rem auto 0}
.dates__txt p{max-width:none;margin:0 0 1.1rem;color:var(--slate)}
.dates__lead{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,1.1rem + .8vw,1.8rem);line-height:1.3;color:var(--ink)!important}
.dates__close{font-family:var(--serif);font-size:clamp(1.2rem,1.05rem + .6vw,1.5rem);color:var(--teal)!important}
.dates__pick{display:grid;grid-template-columns:1fr minmax(18rem,30rem);gap:clamp(2rem,6vw,5rem);align-items:center;width:100%;max-width:62rem;margin-top:clamp(2rem,5vh,3.2rem);text-align:left}
.dates__pills h3{margin-bottom:1.2rem}
.dates__pills ul{display:grid;gap:.7rem}
.dates__pills a{display:block;padding:1rem 1.4rem;border-radius:999px;border:1.5px solid var(--gold);text-decoration:none;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);transition:background .3s,color .3s,transform .3s var(--ease)}
.dates__pills a:hover{background:var(--teal);color:#fff;border-color:var(--teal);transform:translateX(4px)}
@media (max-width:860px){.dates__pick{grid-template-columns:1fr}.dates__pills{text-align:center}}

.wp__c{grid-template-columns:repeat(auto-fit,minmax(11.5rem,1fr))}

.wp__c{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1.4rem 1rem}

/* Nimi, heti titteli, väli, aihe */
.gc h5{margin:0}
.gc{gap:0}
.gc__ph{margin-bottom:.9rem}
.gc__t{margin-top:.3rem}
.gc__n{margin-top:.8rem}
.gc__d{margin-bottom:.5rem}

/* Kylpylän työpajat */
.spa__people{margin-top:clamp(2.5rem,7vh,4.5rem);text-align:center}
.spa__people h3{font-style:italic;font-weight:400;color:var(--gold-ink);margin-bottom:1.6rem}
.spa__cards{display:grid;grid-template-columns:repeat(2,minmax(0,18rem));gap:2rem clamp(1.5rem,5vw,4rem);justify-content:center}
@media (max-width:620px){.spa__cards{grid-template-columns:1fr}}

.gc__free{margin-top:.7rem;padding:.35rem .9rem;border-radius:999px;background:var(--teal);color:#fff;font-size:.8rem;font-weight:600;letter-spacing:.02em}
.spa__cards{grid-template-columns:repeat(3,minmax(0,18rem))}
@media (max-width:980px){.spa__cards{grid-template-columns:repeat(2,minmax(0,18rem))}}
@media (max-width:620px){.spa__cards{grid-template-columns:1fr}}

/* Ilmainen-merkintä: hillitty, tavallista tekstiä */
.gc__free{margin-top:.5rem;padding:0;border-radius:0;background:none;color:var(--slate);font-size:.9rem;font-weight:400;letter-spacing:0;font-style:italic}

/* Ohjelma: Sonjan teksti, keskitetty ja symmetrinen */
.prog__c{display:flex;flex-direction:column;align-items:center;text-align:center}
.prog__c h2{max-width:20ch;margin-inline:auto}
.prog__sub{margin-top:1.4rem;font-style:italic;font-weight:400;color:var(--gold-lt)}
.prog__txt{max-width:44rem;margin:1.6rem auto 0}
.prog__txt p{max-width:none;margin:0 0 1.1rem;color:rgba(255,255,255,.84)}
.prog__lead{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,1.1rem + .8vw,1.8rem);line-height:1.3;color:#fff!important}
.prog__close{font-family:var(--serif);font-size:clamp(1.2rem,1.05rem + .6vw,1.5rem);color:var(--gold-lt)!important}
.pdays{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(.8rem,1.6vw,1.2rem);width:100%;margin-top:clamp(2rem,5vh,3.2rem);text-align:left}
.pd{grid-column:span 2;display:flex;flex-direction:column;gap:.7rem;padding:1.6rem 1.5rem;border-radius:var(--r);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14)}
.pd--4{grid-column:2 / span 2}
.pd--5{grid-column:4 / span 2}
.pd h3{font-size:clamp(1.4rem,1.15rem + .9vw,1.85rem);font-style:italic;font-weight:400;color:#fff}
.pd p{font-size:.95rem;line-height:1.55;color:rgba(255,255,255,.86);max-width:none}
.pd--4{background:var(--gold-lt);border-color:var(--gold-lt)}
.pd--4 .days__d{color:var(--teal)}
.pd--4 h3,.pd--4 p{color:var(--teal)}
.prog__fine{max-width:44rem;margin:2rem auto 0;font-size:.92rem;line-height:1.55;color:rgba(255,255,255,.75)}
.banner--prog{width:100%;margin-top:clamp(2rem,5vh,3.2rem)}
@media (max-width:980px){.pdays{grid-template-columns:1fr 1fr}.pd,.pd--4,.pd--5{grid-column:auto}}
@media (max-width:620px){.pdays{grid-template-columns:1fr}}

.banner--prog img{aspect-ratio:7/5;object-position:50% 40%}
@media (max-width:620px){.banner--prog img{aspect-ratio:4/5;object-position:62% 40%}}

/* Hinta ja sisältö (Mitä sisältyy) */
.pk__head{text-align:center;max-width:56rem;margin-inline:auto}
.pk__head h2{margin-top:.6rem}
.pk__intro{max-width:44rem;margin:clamp(2rem,5vw,3.5rem) auto 0;text-align:center;display:grid;gap:1rem}
.pk__intro h3{font-style:italic;font-weight:400;color:var(--gold-ink);font-size:clamp(1.5rem,1.2rem + 1.2vw,2.1rem)}
.pk__lead{font-family:var(--serif);font-size:clamp(1.25rem,1.1rem + .7vw,1.6rem);line-height:1.35;color:var(--ink)}
.pk__intro p{color:var(--slate);font-size:1.08rem;line-height:1.6}
.pk__value{max-width:46rem;margin:clamp(2.5rem,6vw,4.5rem) auto 0;text-align:center}
.pk__step{font:600 .72rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:.9rem}
.pk__value > h3{margin-bottom:1.6rem}
.pk__value .stack{text-align:left}
.pk__d{font-family:var(--sans);font-weight:500}
.pk__arrow{width:1.1rem;height:1.1rem;margin:clamp(1.6rem,4vw,2.6rem) auto;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(45deg)}
.pk__offer{max-width:52rem;margin-inline:auto}
.pk__badge{text-align:center;font-family:var(--serif);font-weight:600;font-size:clamp(1.3rem,1.1rem + 1vw,1.9rem);line-height:1.2;color:var(--teal);margin-bottom:1.4rem}
.pcard--wide{margin-top:0;text-align:center;justify-items:center;gap:.7rem;grid-template-columns:minmax(0,1fr)}
.pcard--wide h3{font-size:clamp(1.5rem,1rem + 2.4vw,2.4rem);overflow-wrap:anywhere}
.pk__was{margin-top:.4rem}
.pk__was s{color:rgba(255,255,255,.6);font-size:1.5rem;text-decoration-thickness:2px}
.pk__from{font:600 .8rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-lt)}
.pk__big{display:flex;align-items:baseline;justify-content:center;gap:.6rem;line-height:1}
.pk__big b{font-family:var(--serif);font-weight:600;font-size:clamp(3.6rem,2.4rem + 5vw,6rem);color:var(--gold-lt);letter-spacing:-.03em}
.pk__big span{font-size:1.4rem;color:rgba(255,255,255,.8)}
.pk__inc-t{margin-top:1.2rem;padding-top:1.4rem;width:100%;border-top:1px solid rgba(255,255,255,.22);font:600 .78rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-lt)}
.pk__inc{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 2.2rem;text-align:left;width:100%}
.pk__inc li{position:relative;padding-left:1.7rem;color:rgba(255,255,255,.92);line-height:1.4}
.pk__inc li::before{content:"";position:absolute;left:.2rem;top:.2em;width:.4rem;height:.8rem;border:solid var(--gold-lt);border-width:0 2px 2px 0;transform:rotate(45deg)}
.pk__where{margin-top:1rem;color:rgba(255,255,255,.8);max-width:34rem}
.pcard--wide .pcard__code{width:100%;max-width:26rem}
.pk__cta{margin-top:.8rem;font-family:var(--serif);font-weight:600;font-size:clamp(1.3rem,1.1rem + .8vw,1.7rem);line-height:1.2;color:#fff}
.pcard--wide .btn{max-width:26rem}
.pk__info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin-top:clamp(2.5rem,6vw,4rem)}
.pk__info article{background:var(--cream-2);border-radius:var(--r);padding:1.6rem;text-align:center}
.pk__info h3{font-size:1.35rem;margin-bottom:.6rem}
.pk__info p{color:var(--slate);line-height:1.55}
.pack .tip{margin-top:1.2rem;text-align:center}
.banner--spa img{aspect-ratio:21/9;object-position:50% 58%}
@media (max-width:900px){.pk__info{grid-template-columns:1fr}}
@media (max-width:700px){.pk__inc{grid-template-columns:1fr}}

/* Yhteistyökumppanit & hyvinvointipalvelut */
.pt__head{text-align:center;max-width:56rem;margin-inline:auto}
.pt__head h2{margin-top:.6rem}
.pt__intro{max-width:44rem;margin:clamp(2rem,5vw,3.5rem) auto 0;text-align:center;display:grid;gap:1rem}
.pt__intro p{color:var(--slate);font-size:1.08rem;line-height:1.6}
.pt__intro .pt__lead{font-family:var(--serif);font-size:clamp(1.25rem,1.1rem + .7vw,1.6rem);line-height:1.35;color:var(--ink)}
.pt__intro .pt__close{font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--gold-ink)}
.pt__note{max-width:44rem;margin:1.6rem auto 0;padding:1.1rem 1.4rem;text-align:center;border-radius:var(--r);background:var(--gold-lt);color:var(--teal);font-weight:600;line-height:1.5}
.partners .ctn{margin-top:clamp(2.2rem,5vw,3.4rem)}
.partners .ctn__card{text-align:center}
.pt__logo{display:flex;align-items:center;gap:1.5rem;max-width:34rem;margin:clamp(1.6rem,4vw,2.6rem) auto 0}
.pt__logo::before,.pt__logo::after{content:"";flex:1;height:1px;background:rgba(13,42,49,.25)}
.pt__logo img{height:clamp(4.2rem,3rem + 3vw,6rem);width:auto}
.partners .plist li{text-align:center}
.pl__logo{height:4rem;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}
.pl__logo img,.partners .plist .pl__logo img.mult{height:auto;width:auto;max-height:3.6rem;max-width:85%;margin:0;object-fit:contain}
.partners .plist .pl__logo img.mult{max-height:6rem;max-width:100%}
