/* NORDIC SPA — page-specific only. Header, nav, footer, buttons, .psd-title and
   the base rules come from site.css + exact-home.css. <body class="psd-page">. */

.spa-hero { position:relative; height:min(34vw,648px); min-height:400px; overflow:hidden; background:#222; }
.spa-hero img { width:100%; height:100%; object-fit:cover; object-position:center 52%; }
.spa-hero__veil { position:absolute; inset:0; background:
  radial-gradient(ellipse 62% 52% at 50% 56%,rgba(10,16,25,.62) 0%,rgba(10,16,25,.34) 60%,rgba(10,16,25,.08) 100%),
  linear-gradient(180deg,rgba(9,13,19,.72) 0%,rgba(9,13,19,0) 32%); }
.spa-hero__content { position:absolute; z-index:1; top:56%; left:50%; width:min(1170px,calc(100% - 48px)); transform:translate(-50%,-50%); text-align:center; color:#fff; }
.spa-hero h1 { margin:0; font-family:var(--psd-serif); font-size:clamp(38px,3.6vw,69px); font-style:italic; line-height:1.02; }
.spa-hero p { margin:14px 0 0; font-size:13px; letter-spacing:.14em; text-transform:uppercase; }

.spa-section { width:var(--psd-shell); margin-inline:auto; }

.spa-intro { padding:88px 0 76px; }
.spa-intro__grid { display:grid; grid-template-columns:1fr 1.06fr; gap:60px; align-items:start; }
.spa-intro__grid img { width:100%; aspect-ratio:1.4; object-fit:cover; }
.spa-lede { margin:0 0 20px; color:var(--psd-ink); font-family:var(--psd-serif); font-size:23px; font-style:italic; line-height:1.45; }
.spa-body p { max-width:58ch; margin:0 0 20px; color:var(--psd-muted); font-size:16px; line-height:1.62; }

.spa-features { padding:82px 0 88px; background:#faf9f6; --psd-muted:#6b6b6b; }
.spa-features .psd-title { margin-bottom:48px; }
.spa-features__grid { display:grid; grid-template-columns:repeat(5,1fr); gap:22px; }
.spa-features__grid div { padding:26px 22px 28px; background:#fff; border:1px solid rgba(36,36,36,.12); text-align:center; }
.spa-features__grid strong { display:block; margin-bottom:8px; color:var(--psd-ink); font-family:var(--psd-serif); font-size:20px; font-style:italic; font-weight:400; line-height:1.25; }
.spa-features__grid span { color:var(--psd-muted); font-size:14px; line-height:1.55; }

.spa-gallery { padding:88px 0 40px; }
.spa-gallery .psd-title { margin-bottom:48px; }
.spa-gallery__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.spa-gallery__grid img { width:100%; aspect-ratio:1.5; object-fit:cover; background:#efece6; }
/* first tile spans two columns and two rows so the grid does not read as a
   flat contact sheet */
.spa-gallery__grid img:first-child { grid-column:span 2; grid-row:span 2; aspect-ratio:1.503; }

.spa-notice { padding:52px 0 92px; }
.spa-notice__inner { max-width:78ch; margin-inline:auto; padding:26px 30px; border-left:4px solid var(--psd-gold); background:#faf9f6; --psd-muted:#6b6b6b; }
.spa-notice__inner p { margin:0; color:var(--psd-muted); font-size:15px; line-height:1.62; }
.spa-notice__hours { margin-top:14px!important; color:var(--psd-ink)!important; font-size:15px!important; }
.spa-notice__hours b { color:var(--psd-gold-text); font-weight:400; font-size:12px; letter-spacing:.06em; text-transform:uppercase; }
.spa-notice__warn { margin-top:12px!important; color:var(--psd-ink)!important; font-family:var(--psd-sans); font-size:14px!important; letter-spacing:.04em; text-transform:uppercase; }

.spa-book { padding:0 0 100px; text-align:center; }
.spa-book p { max-width:56ch; margin:0 auto 26px; color:var(--psd-muted); font-size:16px; line-height:1.62; }

@media (max-width:1100px) {
  .spa-hero h1 { font-size:clamp(34px,5vw,52px); }
  .spa-features__grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:860px) {
  .spa-intro__grid { grid-template-columns:1fr; gap:34px; }
  .spa-features__grid { grid-template-columns:1fr 1fr; }
  .spa-gallery__grid { grid-template-columns:1fr 1fr; gap:14px; }
  .spa-gallery__grid img:first-child { grid-column:span 2; grid-row:auto; }
  .spa-intro { padding:58px 0 52px; }
  .spa-features,.spa-gallery { padding:62px 0 60px; }
  .spa-notice { padding:36px 0 64px; }
}
@media (max-width:520px) {
  .spa-features__grid { grid-template-columns:1fr; }
  .spa-gallery__grid { grid-template-columns:1fr; }
  .spa-gallery__grid img:first-child { grid-column:auto; }
}
