/* ============================================================
   Salon KBH — Elite Grooming
   Reference: interfilm.dk (dark editorial)
   Accent: gold #C9A06A (Salon KBH brand)
   ============================================================ */

:root {
  /* Warm exclusive palette — dark espresso/leather */
  --bg: #15110D;            /* deep warm charcoal */
  --bg-2: #1E1812;          /* warm card */
  --bg-3: #2A2118;          /* lighter warm surface */
  --bg-deep: #0A0805;       /* near-black warm base */
  --bg-tint: #1A1410;       /* between bg and bg-2 */

  --line: rgba(232, 213, 184, 0.08);
  --line-strong: rgba(232, 213, 184, 0.16);

  --text: #F5EFE5;          /* warm cream */
  --text-soft: #D8CFC0;     /* soft cream */
  --text-muted: #8F8579;    /* warm muted */

  --gold: #C9A06A;
  --gold-2: #E0BE85;        /* brighter warm highlight */
  --gold-deep: #8C6E45;
  --gold-soft: #B8935A;     /* ms-totalbyg's amber gold */
  --gold-glow: rgba(201,160,106,0.35);

  --rust: #A8542B;          /* terracotta accent (use sparingly) */

  /* ms-totalbyg shared accent palette (used by pickers + badges) */
  --ms-gold: #b08a4f;
  --ms-gold-light: #d6a978;
  --ms-gold-deep: #8e6d3f;
  --ms-accent: #c2562b;
  --ms-accent-dark: #9c4220;

  --radius: 14px;
  --radius-lg: 22px;
  --shadow: 0 18px 50px rgba(0,0,0,0.55);
  --shadow-soft: 0 24px 60px rgba(0,0,0,0.4);

  /* Match interfilm.dk content width: 90vw capped at 1400px */
  --container: 1400px;
  --container-pad: 5vw;

  --ease: cubic-bezier(.22,.61,.36,1);
}

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

html {
  background: var(--bg);
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body {
  margin: 0;
  font-family: 'Montserrat', system-ui, -apple-system, sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  color: var(--text);
  background: var(--bg);
  overflow-x: hidden;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

h1, h2 {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: 0.01em;
  margin: 0;
}
h3, h4, h5 {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.01em;
  margin: 0;
}

em { font-style: italic; color: var(--gold); font-weight: 500; }

.container {
  width: 90%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0;
}
@media (max-width: 880px) {
  .container { width: calc(100% - 40px); }
}

/* ============================================================
   Buttons
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 26px;
  border-radius: 999px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.01em;
  border: none;
  cursor: pointer;
  transition: all .25s var(--ease);
  text-decoration: none;
  white-space: nowrap;
}

.btn--gold {
  background: rgba(15, 10, 8, 0.45);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  color: #f0e7d8;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px !important;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  gap: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.25);
}
.btn--gold:hover {
  background: rgba(30, 20, 14, 0.6);
  color: #f0e7d8;
  transform: none;
  box-shadow: 0 6px 20px rgba(0,0,0,0.35);
}

.btn--ghost {
  background: transparent;
  color: var(--text);
  border: 1px solid var(--line-strong);
}
.btn--ghost:hover {
  border-color: var(--gold);
  color: var(--gold);
}

.btn--small { padding: 10px 18px; font-size: 13px; }
.btn--large { padding: 18px 38px; font-size: 17px; }

/* ============================================================
   Navigation
   ============================================================ */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  padding: 10px 0;
  background: transparent;
  transition: background .35s var(--ease), backdrop-filter .35s var(--ease), border-color .35s var(--ease);
}
.nav::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.34) 0%, rgba(0, 0, 0, 0.18) 55%, rgba(0, 0, 0, 0) 100%);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,0.6) 55%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,0.6) 55%, transparent 100%);
  transition: opacity .35s var(--ease);
}
.nav.is-scrolled::before { opacity: 0; }
.nav.is-scrolled {
  background: #e8e0d3;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom: 1px solid rgba(31, 24, 20, 0.12);
}
.nav.is-scrolled .nav__links a { color: #3d3022; }
.nav.is-scrolled .nav__links a:hover { color: #b08a4f; }
.nav.is-scrolled .nav__cta {
  color: #1f1814;
  background: rgba(31,24,20,0.08);
  border-color: rgba(31,24,20,0.28);
  box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset, 0 2px 8px rgba(0,0,0,0.08);
}
.nav.is-scrolled .nav__cta::after { background: #b08a4f; }
.nav.is-scrolled .nav__cta:hover { color: #1f1814; background: rgba(31,24,20,0.14); border-color: rgba(31,24,20,0.5); }
.nav.is-scrolled .nav__cta .dot { background: #b08a4f; }
.nav.is-scrolled .nav__burger span { background: #1f1814; }
.nav__inner {
  width: 90%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.nav__logo {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 22px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: 0.02em;
  flex-shrink: 0;
}
.nav__logo img {
  height: 51px;
  width: auto;
  display: block;
  flex-shrink: 0;
}
/* Logo keeps its true gold always — swap wordmark color instead of darkening */
.nav__logo .nav__logo-img--dark { display: none; }
.nav.is-scrolled .nav__logo .nav__logo-img--light { display: none; }
.nav.is-scrolled .nav__logo .nav__logo-img--dark { display: block; }
.nav__logo-text em {
  font-style: italic;
  color: var(--gold);
  margin-left: 2px;
}
.nav__links {
  display: flex;
  gap: 30px;
}
.nav__links a {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: color .2s var(--ease);
  position: relative;
}
.nav__links a::after {
  content: '';
  position: absolute;
  left: 0; right: 100%;
  bottom: -6px;
  height: 1px;
  background: var(--gold);
  transition: right .3s var(--ease);
}
.nav__links a:hover { color: var(--gold); }
.nav__links a:hover::after { right: 0; }

/* Dropdown */
.nav__dropdown {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.nav__dropdown-toggle {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.nav__dropdown-toggle svg {
  width: 10px;
  height: 10px;
  flex-shrink: 0;
  transition: transform .2s ease;
}
.nav__dropdown:hover .nav__dropdown-toggle svg { transform: rotate(180deg); }
.nav__dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 14px);
  left: 50%;
  transform: translateX(-50%);
  background: rgba(30,22,15,0.95);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(201,160,106,0.2);
  border-radius: 8px;
  padding: 8px 0;
  min-width: 140px;
  z-index: 200;
}
.nav__dropdown-menu a {
  display: block;
  padding: 10px 18px;
  font-size: 13px;
  white-space: nowrap;
}
.nav__dropdown-menu a::after { display: none; }
.nav__dropdown:hover .nav__dropdown-menu { display: block; }

.nav__cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 18px;
  background: rgba(255,255,255,0.12);
  backdrop-filter: blur(24px) saturate(1.8);
  -webkit-backdrop-filter: blur(24px) saturate(1.8);
  color: #ffffff;
  border: 1px solid rgba(255,255,255,0.35);
  border-radius: 9999px;
  box-shadow: 0 1px 0 rgba(255,255,255,0.22) inset, 0 2px 12px rgba(0,0,0,0.18);
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  position: relative;
  text-decoration: none;
  transition: background .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.nav__cta:hover { background: rgba(255,255,255,0.22); border-color: rgba(255,255,255,0.6); }
.nav__cta::after { display: none; }
.nav__cta .dot {
  width: 7px; height: 7px;
  border-radius: 50% !important;
  background: var(--gold);
  animation: pulse 2s infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.85); }
}

.nav__mobile-icons {
  display: none;
  align-items: center;
  gap: 14px;
}
@media (max-width: 720px) {
  .nav__inner { gap: 0; }
  .nav__mobile-icons { display: flex; margin-left: auto; margin-right: 10px; }
  .nav__burger { margin-left: 0; }
}
.nav__mobile-icon {
  display: flex;
  align-items: center;
  color: #ffffff;
  text-decoration: none;
  opacity: 0.9;
  transition: color .2s, opacity .2s;
}
.nav.is-scrolled .nav__mobile-icon,
.nav.is-menu-open .nav__mobile-icon { color: #000000; opacity: 1; }
.nav__mobile-icon:hover { opacity: 0.6; }
.nav__mobile-icon--flag { font-size: 20px; line-height: 1; }

.nav__burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: transparent;
  border: none;
  padding: 8px;
  cursor: pointer;
}
.nav__burger span {
  width: 22px; height: 2px;
  background: var(--text);
  transition: all .3s var(--ease);
}

/* ============================================================
   Hero
   ============================================================ */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 120px 0 calc(110px + 10vh);
  overflow: hidden;
  text-align: center;
}
/* Hele hero + rating-bar + trust fylder præcis ÉN skærm — på alle formater */
.hero-screen {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}
.hero-screen .hero { flex: 1 1 auto; min-height: 0; padding: 104px 0 calc(26px + 18vh); }
.hero-screen .rating-bar-section,
.hero-screen .trust { flex: 0 0 auto; }
.hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
.hero__bg img,
.hero__bg video {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 70% 25%;
  filter: none;                 /* fully clean image/video */
  display: block;
}
.hero__bg img {
  animation: heroZoom 18s ease-out infinite alternate;
}
@keyframes heroZoom {
  from { transform: scale(1); }
  to   { transform: scale(1.08); }
}
/* Brown gradient only at the very bottom */
.hero__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg,
    rgba(21,17,13,0)    0%,
    rgba(21,17,13,0)   72%,
    rgba(21,17,13,0.45) 85%,
    rgba(21,17,13,0.95) 96%,
    var(--bg)          100%);
}
.hero__inner { z-index: 2; }
.hero__inner {
  position: relative;
  z-index: 1;
  width: 90%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0;
  margin-top: calc(-70px + 15vh);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}
.hero__kicker {
  display: inline-block;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 24px;
  padding: 8px 18px;
  border: 1px solid var(--gold);
  border-radius: 999px;
  background: rgba(201,160,106,0.08);
  animation: fadeUp .8s var(--ease) both;
}
.hero__title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(50px, 7vw, 93px) !important;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.1;
  margin: 0 0 10px;
  max-width: 24ch;
  text-wrap: balance;
  animation: fadeUp 1s var(--ease) .1s both;
  text-shadow: 0 2px 16px rgba(0,0,0,0.28), 0 1px 4px rgba(0,0,0,0.2);
}
@media (max-width: 480px) {
  .hero__title { font-size: 46px; max-width: none; }
}

/* One-line title */
.hero__title--line {
  font-family: 'Playfair Display', serif;
  font-weight: 500;
  font-size: clamp(32px, 3.6vw, 52px) !important;
  line-height: 1.14;
  letter-spacing: 0.01em;
  text-transform: none;
  max-width: min(95vw, 1180px);
  margin-left: 0;
  margin-right: 0;
  text-align: left;
  color: #ffffff;
  white-space: normal;
}
.hero__title--line em {
  font-style: italic;
  font-weight: inherit;
  color: #ffffff;
}
/* Legacy block variant — kept in case it's reused elsewhere */
.hero__title--block {
  font-family: 'Playfair Display', serif;
  font-weight: 500;
  font-size: clamp(20px, 3.4vw, 50px);
  line-height: 1.1;
  letter-spacing: -0.005em;
  text-transform: uppercase;
  max-width: none;
  color: #ffffff;
  white-space: nowrap;
}
.hero__title--block em {
  font-style: normal;
  font-family: inherit;
  color: #C9A06A;
}
.hero__kicker {
  display: block;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(10px, 0.9vw, 12px);
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: #cba66d;
  margin: 0 0 14px;
}

.hero__subtitle {
  font-family: Arial, sans-serif;
  font-size: clamp(15px, 1.4vw, 22px);
  font-weight: 700;
  font-style: normal;
  letter-spacing: 0.005em;
  text-transform: none;
  color: #ffffff;
  margin: 0 0 16px;
  max-width: 70ch;
  line-height: 1.45;
  animation: fadeUp 1s var(--ease) .25s both;
  display: inline-block;
  background: rgba(0,0,0,0.45);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  padding: 12px 18px;
  border-radius: 4px;
}
@media (max-width: 880px) {
  .hero__title--block,
  .hero__title--line { white-space: normal; font-size: clamp(38px, 9.5vw, 62px); }
  .hero__subtitle { font-size: 15px; }
}

.hero__lead {
  font-size: 16px;
  color: var(--text-soft);
  max-width: 48ch;
  margin: 0 0 32px;
  line-height: 1.6;
  animation: fadeUp 1s var(--ease) .25s both;
}
@media (min-width: 1024px) { .hero__lead { font-size: 19px; line-height: 1.55; } }
.hero__cta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-bottom: 40px;
  animation: fadeUp 1s var(--ease) .4s both;
}
.hero__cta .btn--gold {
  background: rgba(15, 10, 8, 0.45);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.2);
  color: #f0e7d8;
  font-weight: 600;
  font-family: 'Montserrat', sans-serif;
}
.hero__cta--sm {
  font-size: 13.5px;
  padding: 12px 22px;
}
.hero__cta .btn--gold:hover {
  background: rgba(30, 20, 14, 0.6);
  color: #f0e7d8;
}
.hero__rating {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center;
  animation: fadeUp 1s var(--ease) .55s both;
}
.rating-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--line);
  border-radius: 999px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  font-size: 13px;
}
.rating-pill strong {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 22px;
  font-weight: 600;
  color: var(--gold);
}
.rating-pill .stars {
  color: var(--gold);
  letter-spacing: 0.05em;
  font-size: 12px;
}
.rating-pill__src {
  color: var(--text-muted);
  font-weight: 500;
}

.hero__scroll {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 38px;
  border: 1.5px solid var(--text-muted);
  border-radius: 12px;
  z-index: 2;
}
.hero__scroll span {
  position: absolute;
  left: 50%;
  top: 8px;
  width: 2px; height: 8px;
  background: var(--gold);
  border-radius: 1px;
  transform: translateX(-50%);
  animation: scrollDot 1.8s ease-in-out infinite;
}
@keyframes scrollDot {
  0%   { top: 6px; opacity: 1; }
  100% { top: 22px; opacity: 0; }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   Trust strip
   ============================================================ */
.trust {
  background: #1f1814;
  border-top: 1px solid rgba(176, 138, 79, 0.3);
  border-bottom: 1px solid rgba(176, 138, 79, 0.25);
  padding: 28px 0;
  color: #f5efe2;
}
.trust__inner .trust__item { color: #f5efe2; font-size: 15px; }
.trust__inner .trust__item svg { color: #c9a06a; width: 26px; height: 26px; }
.trust__inner {
  width: 90%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0;
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr 1fr;
  gap: clamp(20px, 3vw, 48px);
  align-items: center;
}
.trust__item:first-child {
  border-right: 1px solid rgba(176, 138, 79, 0.25);
  padding-right: clamp(20px, 3vw, 36px);
}
@media (max-width: 720px) {
  .trust { padding: 16px 0; }
  .trust__inner { grid-template-columns: 1fr 1fr; row-gap: 14px; }
  .trust__item:first-child { border-right: none; padding-right: 0; }
  .trust__inner .trust__item { font-size: 12px; }
  .trust__inner .trust__item svg { width: 20px; height: 20px; }
}
.trust__item {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--text-soft);
  font-family: 'ClashDisplay-Variable', 'Clash Display', sans-serif;
  font-size: 14px;
  font-weight: 400;
}
.trust__item svg { color: var(--gold); flex-shrink: 0; }
.trust__address-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(245,239,226,0.4); }

/* ============================================================
   Section navigation pills (under trust strip)
   Cream backdrop · pill left-aligned with logo
   ============================================================ */
.section-nav {
  background: #f6f1ea;            /* same cream as Produkter panel — flows together */
  border-top: 1px solid #d8cdbd;  /* divider from trust strip above */
  border-bottom: none;             /* no divider — pill and content read as ONE box */
  padding: 32px 0 0;               /* breathing room above pill; flush at bottom */
}
.section-nav .container {
  display: flex;
  justify-content: flex-start;
}

/* picker--nav variant: single segmented pill spanning the FULL container
   width, tabs distributed evenly. Same gold sliding indicator. */
.picker.picker--nav {
  margin: 0 auto 0 0 !important;
  left: 0 !important;
  transform: none !important;
  flex-wrap: nowrap;
  max-width: 100%;
  align-self: stretch !important;
  width: 100%;
  display: flex;
}
.picker--nav .picker__tab {
  text-decoration: none;
  flex: 1 1 0;
  justify-content: center;
}

@media (max-width: 880px) {
  /* Mobile: stick filter at the BOTTOM of viewport for thumb-friendly access */
  .section-nav {
    padding: 12px 0 calc(12px + env(safe-area-inset-bottom, 0px));
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 60;
    background: #f6f1ea;
    border-top: 1px solid #d8cdbd;
    border-bottom: none;
    box-shadow: 0 -8px 22px rgba(31, 28, 25, 0.18);
  }
  /* push page content above the fixed bottom-nav */
  .picker--nav {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
    justify-content: flex-start;
    flex-wrap: nowrap;
  }
  .picker--nav::-webkit-scrollbar { display: none; }
}

/* ============================================================
   Marquee — looping image carousel just above prices.
   Transparent background, rounded thumbnails, pauses on hover.
   ============================================================ */
.marquee {
  background: transparent;
  padding: 28px 0;
  overflow: hidden;
  border: none;
  position: relative;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
}
.marquee__track {
  display: flex;
  gap: 8px;                        /* tight — images close to each other */
  width: max-content;
  animation: marqueeScroll 60s linear infinite;
}
.marquee:hover .marquee__track,
.marquee:focus-within .marquee__track {
  animation-play-state: paused;
}
.marquee__item {
  flex-shrink: 0;
  width: 180px;
  height: 120px;
  border-radius: 14px;             /* clearly rounded corners */
  overflow: hidden;
  background: rgba(0,0,0,0.2);
  position: relative;
  transition: transform .35s var(--ease);
}
.marquee__item:hover { transform: scale(1.04); }
.marquee__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: inherit;
}
@keyframes marqueeScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (max-width: 720px) {
  .marquee__item { width: 140px; height: 92px; }
  .marquee__track { animation-duration: 45s; }
}

/* ============================================================
   FAQ accordion
   ============================================================ */
.faq {
  background: #f5efe2;
  padding: clamp(60px, 8vw, 100px) 0;
  position: relative;
}
.faq::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(var(--container), calc(100% - 48px));
  height: 2px;
  background: #b08a4f;
}
.faq .kicker { color: #c2562b; }
.faq .section-title { color: #1f1814; }
.faq .section-title em { color: #b08a4f; }
.faq .section-lead { color: #6b5d4c; }

.faq__list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(31, 24, 20, 0.16);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 64px;
}
.faq__item {
  border-bottom: 1px solid rgba(31, 24, 20, 0.16);
}
@media (max-width: 720px) {
  .faq__list { grid-template-columns: 1fr; column-gap: 0; }
}
.faq__q {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  width: 100%;
  padding: 10px 4px;
  background: transparent;
  border: none;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: #1f1814;
  text-align: left;
  cursor: pointer;
  letter-spacing: 0;
  transition: color .25s var(--ease);
}
.faq__q:hover { color: #b08a4f; }
.faq__q[aria-expanded="true"] { color: #b08a4f; }

.faq__icon {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 22px;
  font-weight: 300;
  color: #9c8a72;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  transition: transform .35s var(--ease), color .25s var(--ease);
}
.faq__q[aria-expanded="true"] .faq__icon {
  transform: rotate(45deg);
  color: #b08a4f;
}

.faq__a {
  max-height: 0;
  overflow: hidden;
  transition: max-height .45s var(--ease);
}
.faq__q[aria-expanded="true"] + .faq__a {
  max-height: 400px;
}
.faq__a p {
  margin: 0;
  padding: 0 4px 22px;
  color: #4a3f35;
  font-size: 14.5px;
  line-height: 1.65;
  max-width: 78ch;
}

/* ============================================================
   Priser tab-panel — elegant card grid on light gray backdrop
   ============================================================ */
.tab-panel.prices-panel {
  background: #f5efe2;
  border-bottom: none;
  padding: clamp(60px, 7vw, 100px) 0;
  --on-cream-text: #1f1814;
  --on-cream-soft: #3a302a;
  --on-cream-muted: #7a6a55;
  --on-cream-line: #d6c69b;
}
.prices-panel .kicker { color: #c2562b; }
.prices-panel .section-title { color: #1f1814; }
.prices-panel .section-title em { color: #b08a4f; }
.prices-panel .section-lead { color: #3a302a; }
.prices-panel .scroll-progress__track { background: rgba(176, 138, 79, 0.20); }
.prices-panel .scroll-progress__thumb { background: #1f1814; }

/* ============================================================
   Faciliteter — "Alt hvad du behøver" amenity row (Park Lane style)
   ============================================================ */
.amenities {
  background:
    radial-gradient(ellipse at 50% 0%, rgba(176,138,79,0.12) 0%, transparent 55%),
    #f5efe2;
  padding: clamp(64px, 8vw, 110px) 0;
  text-align: center;
}
.amenities__title {
  margin: 0 0 clamp(40px, 5vw, 70px);
  line-height: 1.04;
  white-space: nowrap;
}
.amenities__title span { display: inline; }
.amenities__title-gold {
  color: #c9a06a;
  font-size: clamp(28px, 3.6vw, 46px);
  letter-spacing: 0.06em;
}
.amenities__title-dark {
  color: #1f1814;
  font-size: clamp(30px, 3.9vw, 50px);
  letter-spacing: 0.06em;
}
.amenities__grid {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: clamp(30px, 5vw, 78px);
  max-width: 1080px;
  margin: 0 auto;
}
.amenity {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 130px;
}
.amenity__icon {
  width: 46px;
  height: 46px;
  color: #5f5347;
}
.amenity__icon svg { width: 100%; height: 100%; display: block; }
.amenity__label {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-weight: 300;
  font-size: 14px;
  letter-spacing: 0.04em;
  line-height: 1.4;
  color: rgba(42, 33, 26, 0.72);
}
@media (max-width: 640px) {
  .amenities__grid { flex-wrap: nowrap; gap: 0; justify-content: space-around; padding: 0 8px; }
  .amenity { width: auto; flex: 1 1 0; gap: 10px; }
  .amenity__icon { width: 28px; height: 28px; }
  .amenity__label { font-size: 10px; letter-spacing: 0.02em; }
}

/* ============================================================
   Oplevelser — Experiences carousel (dark brown, Park Lane style)
   ============================================================ */
.experiences {
  background: #3a2f26;
  padding: clamp(60px, 7vw, 100px) 0;
  color: #f0e7d8;
}
.experiences__head { margin: 0 0 8px; }

/* Light variant — for standalone Priser page */
.experiences--light {
  background:
    radial-gradient(ellipse at 50% 0%, rgba(176,138,79,0.10) 0%, transparent 55%),
    #f5efe2;
  color: #2a211a;
}
.experiences--light .kicker { color: #c2562b; }
.experiences--light .experiences__title-row .section-title { color: #1f1814; }
.experiences--light .scroll-progress__track { background: rgba(176,138,79,0.22); }
.experiences--light .scroll-progress__thumb { background: #1f1814; }
.experiences--light .exp-card__title { color: #1f1814; }
.experiences--light .exp-card__desc { color: #5f5347; }
.experiences--light .exp-card__meta { color: #6b5e50; border-top-color: rgba(176,138,79,0.28); }
.experiences--light .exp-card__meta li:not(:last-child)::after { color: rgba(176,138,79,0.5); }
.experiences--light .exp-card__foot { border-top-color: rgba(176,138,79,0.28); }
.experiences--light .exp-card__price { color: #1f1814; }
.experiences--light .exp-card__book { color: #1f1814; border-bottom-color: rgba(31,24,20,0.4); }
.experiences--light .exp-card__book:hover { color: #b08a4f; border-color: #b08a4f; }
.experiences--light .exp-toggle { border-bottom-color: #b08a4f; }
.experiences--light .exp-toggle__btn { color: #6b5e50; }
.experiences--light .exp-toggle__btn:hover { color: #1f1814; }
.experiences--light .exp-toggle__btn.is-active { color: #1f1814; border-color: #b08a4f; }
.experiences--light .exp-pricecat__title { color: #1f1814; border-bottom-color: rgba(176,138,79,0.28); }
.experiences--light .exp-pricecat__title em { color: #b08a4f; }
.experiences--light .exp-priceitem { border-bottom-color: rgba(176,138,79,0.16); }
.experiences--light .exp-priceitem__name { color: #1f1814; }
.experiences--light .exp-priceitem__amount { color: #b08a4f; }
.experiences--light .exp-priceitem__desc { color: #6b5e50; }
.experiences--light .exp-prices__book { color: #1f1814; }
.experiences__title .kicker { color: #c9a06a; display: inline-block; margin: 0 0 12px; }
.experiences__title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.experiences__title-row .section-title { margin: 0; color: #f4ecdd; }
.experiences .scroll-progress__track { background: rgba(240, 231, 216, 0.18); }
.experiences .scroll-progress__thumb { background: #e8dcc8; }

.experiences__list-wrap { position: relative; }
.experiences__nav-row {
  display: flex;
  justify-content: flex-end;
  padding: 4px 0 0;
}
.exp-services-nav {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}
.svc-nav-btn {
  pointer-events: all;
  background: none;
  border: 1px solid rgba(201,160,106,0.55);
  border-radius: 50% !important;
  color: #c9a06a;
  width: 34px;
  height: 34px;
  min-width: 34px;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background .15s, border-color .15s;
  padding: 0 0 1px;
}
.svc-nav-btn:hover { background: rgba(201,160,106,0.12); border-color: #c9a06a; }
.experiences--light .svc-nav-btn { color: #3a2f26; border-color: rgba(58,47,38,0.4); }
.price-carousel__header { display: none !important; }
.experiences--light .price-carousel__nav { color: #3a2f26; }
.experiences__list {
  display: flex;
  gap: clamp(22px, 2.6vw, 40px);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 4px 0 18px 0;
  margin-right: calc((100% - 100vw) / 2);   /* bleed to right viewport edge */
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;                     /* hide native scrollbar (Firefox) */
}
.experiences__list::-webkit-scrollbar { display: none; }   /* hide native scrollbar (WebKit) */

.exp-card {
  flex: 0 0 calc((100% - 3 * clamp(22px, 2.6vw, 40px)) / 3.5);
  min-width: 240px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
}
.exp-card__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  margin: 0 0 24px;
}
.exp-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s var(--ease);
}
.exp-card:hover .exp-card__media img { transform: scale(1.04); }
.exp-card__title {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(19.8px, 1.8vw, 25.2px);
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #f4ecdd;
  margin: 0 0 14px;
}
.exp-card__desc {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-weight: 400;
  font-size: 14.5px;
  line-height: 1.7;
  letter-spacing: 0.01em;
  color: rgba(240, 231, 216, 0.92);
  margin: 0;
  max-width: 42ch;
  flex: 1;
}
.exp-card__meta {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 18px 0;
  border-top: 1px solid rgba(240, 231, 216, 0.18);
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(240, 231, 216, 0.55);
}
.exp-card__meta li { display: inline-flex; align-items: center; }
.exp-card__meta li:not(:last-child)::after {
  content: "/";
  margin-left: 10px;
  color: rgba(240, 231, 216, 0.30);
}
.exp-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 18px;
  border-top: 1px solid rgba(240, 231, 216, 0.18);
}
.exp-card__price {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 26px;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: #f4ecdd;
}
.exp-card__book {
  background: none;
  border: none;
  cursor: pointer;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #f0e7d8;
  padding: 0 0 5px;
  border-bottom: 1px solid rgba(240, 231, 216, 0.5);
  transition: color .2s ease, border-color .2s ease;
}
.exp-card__book:hover { color: #c9a06a; border-color: #c9a06a; }
@media (max-width: 900px) {
  .exp-card { flex-basis: calc((100% - 1.5 * clamp(22px, 2.6vw, 40px)) / 2.3); }
}
@media (max-width: 600px) {
  .experiences { padding: 36px 0; }
  .experiences__head { margin-bottom: 18px; }
  .experiences__list { gap: 14px; }
  .exp-card { flex-basis: 63%; min-width: 0; }
  .exp-card__media { aspect-ratio: 16 / 9; margin-bottom: 12px; }
  .exp-card__title { font-size: 16px; margin-bottom: 8px; padding: 0 3px; }
  .exp-card__desc { font-size: 12.5px; line-height: 1.55; padding: 0 3px; }
  .exp-card__meta { padding: 12px 3px; font-size: 10px; }
  .exp-card__foot { padding-top: 12px; padding-left: 3px; padding-right: 3px; }
  .exp-card__price { font-size: 18px; }
}

/* Oplevelser toggle — Produkter / Prisliste */
.experiences__tabs-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}
.exp-toggle {
  display: flex;
  gap: 12px;
  margin: 0 0 clamp(28px, 4vw, 44px);
  border-bottom: 1px solid #c9a06a;
  flex: 1;
}
.exp-toggle__btn {
  background: none;
  cursor: pointer;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(240, 231, 216, 0.6);
  padding: 13px 30px;
  border: 1px solid transparent;
  margin-bottom: -1px;
  transition: color .2s ease, border-color .2s ease;
}
.exp-toggle__btn:hover { color: rgba(240, 231, 216, 0.92); }
.exp-toggle__btn.is-active { color: #f4ecdd; border-color: #c9a06a; }
.exp-panel[hidden] { display: none; }

.exp-pricecat:not(.exp-pricecat--featured) .exp-pricecat__title { margin-top: 36px; }
.exp-pricecat__badge {
  display: inline-block;
  background: #c2562b;
  color: #fff;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 5px 12px;
  margin: 0 0 10px;
}

/* Price carousel */
.price-carousel { position: relative; }
.price-carousel__header {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
  z-index: 2;
  padding: 0 4px;
}
.price-carousel__label {
  display: none;
  font-family: 'Playfair Display', serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #c9a06a;
  text-align: center;
  flex: 1;
}
.price-carousel__nav {
  pointer-events: all;
  background: none;
  border: none;
  color: #c9a06a;
  width: 32px;
  height: 32px;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  opacity: 1;
  transition: opacity .15s;
}
.price-carousel__nav:hover { opacity: 0.65; }
.price-carousel__dots { display: none; }

.exp-prices {
  display: flex;
  align-items: flex-start;
  gap: clamp(14px, 2vw, 24px);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 4px 0 4px;
  scroll-behavior: smooth;
  transition: height 0.25s ease;
}
.exp-prices::-webkit-scrollbar { display: none; }
.exp-pricecat {
  flex: 0 0 clamp(240px, 75vw, 420px);
  display: flex;
  flex-direction: column;
  gap: 10px;
  scroll-snap-align: start;
}
.exp-pricecat__title {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #f4ecdd;
  margin: 0 0 4px;
  padding: 0 0 12px;
  border-bottom: 1px solid rgba(201,160,106,0.25);
}
.exp-pricecat__title em { color: #c9a06a; font-style: italic; }
.exp-priceitem {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(201,160,106,0.14);
  border-radius: 8px;
  padding: 18px 20px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: background .2s ease, border-color .2s ease;
  cursor: pointer;
}
.exp-priceitem:hover {
  background: rgba(201,160,106,0.1);
  border-color: rgba(201,160,106,0.3);
}
.exp-priceitem__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.exp-priceitem__name {
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: #f0e7d8;
  line-height: 1.3;
}
.exp-priceitem__amount-wrap { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; }
.exp-priceitem__duration { display: block; font-size: 10px; font-family: 'Montserrat', sans-serif; letter-spacing: 0.1em; text-transform: uppercase; color: #8a7a6a; margin-top: 3px; white-space: nowrap; }
.exp-priceitem__amount {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: #c9a06a;
  white-space: nowrap;
  flex-shrink: 0;
}
.exp-priceitem__desc {
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  font-size: 12px;
  line-height: 1.6;
  color: rgba(240, 231, 216, 0.72);
  margin: 0;
}
.exp-prices__note {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-weight: 400;
  font-size: 12.5px;
  line-height: 1.5;
  color: rgba(240, 231, 216, 0.55);
  margin: 32px 0 0;
}
.experiences--light .exp-prices__note { color: rgba(31, 24, 20, 0.6); }
.exp-prices__book { margin-top: 24px; color: #f0e7d8; display: block; margin-left: auto; }

/* ============================================================
   Om Salon KBH — dark split section: text left, portrait right
   ============================================================ */
.om-split {
  background:
    radial-gradient(ellipse at 50% 0%, rgba(176,138,79,0.12) 0%, transparent 55%),
    #f5efe2;
  padding: clamp(64px, 9vw, 132px) 0;
  color: #2a211a;
}
#uddannelse-home,
#uddannelse {
  background: #2a1f17;
  color: #f0e7d8;
  padding: clamp(32px, 4.5vw, 66px) 0;
}
#uddannelse-home .kicker { color: #c9a06a; }
#uddannelse-home .om-split__title { color: #f0e7d8; }
#uddannelse-home .om-split__title em,
#uddannelse .om-split__title em { color: #c9a06a; }
#uddannelse-home .about-quote,
#uddannelse .about-quote { color: #d8cfc0; }
#uddannelse-home p,
#uddannelse p { color: #c4b8a8; }
#uddannelse-home .om-split__title,
#uddannelse .om-split__title { color: #f0e7d8; }
#uddannelse-home .kicker,
#uddannelse .kicker { color: #c9a06a; }
#uddannelse-home .om-stat strong,
#uddannelse .om-stat strong { color: #f0e7d8; font-size: clamp(15px, 1.4vw, 18px); }
#uddannelse-home .om-stat span,
#uddannelse .om-stat span { color: #9a8878; }
#uddannelse-home .om-split__stats,
#uddannelse .om-split__stats { gap: clamp(14px, 2vw, 22px); flex-wrap: wrap; margin-right: 0 !important; }

/* Reversed split — image left, text right */
.om-split--reverse .om-split__inner { grid-template-columns: 2fr 3fr; }
.om-split--reverse .om-split__text { padding: 56px 0 56px 64px; }
@media (max-width: 980px) {
  .om-split--reverse .om-split__inner { grid-template-columns: 1fr; }
  .om-split--reverse .om-split__text { padding: 40px 0 0; }
}

/* About page hero — 60vh full-width video band */
.about-hero {
  position: relative;
  height: 60vh;
  min-height: 440px;
  display: flex;
  align-items: flex-end;
  padding-bottom: clamp(48px, 7vh, 90px);
  width: 100%;
  overflow: hidden;
}
.about-hero__bg { position: absolute; inset: 0; z-index: 0; }
.about-hero__bg img,
.about-hero__bg video {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
}
.about-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(15,17,13,0.5) 0%, rgba(15,17,13,0.68) 100%);
}
.about-hero__inner {
  position: relative; z-index: 1;
  width: 90%; max-width: var(--container);
  margin: 0 auto;
  text-align: left;
}
.about-hero__title {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-weight: 500;
  font-size: clamp(24px, 2.4vw, 34px);
  line-height: 1.18;
  letter-spacing: 0.01em;
  color: #ffffff;
  margin: 0 0 14px;
  max-width: 26ch;
}
.about-hero__title em { color: var(--gold-2); font-style: italic; }
.about-hero__lead {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(15px, 1.1vw, 18px);
  font-weight: 400;
  letter-spacing: 0.005em;
  line-height: 1.6;
  color: #d8cfc0;
  max-width: 52ch;
}
.om-split__inner {
  display: grid;
  grid-template-columns: 3fr 2fr;          /* 60% text / 40% image */
  background: transparent;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
  border: none;
}
.om-split__text {
  padding: 56px 64px 56px 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: none;
}
.om-split__text .kicker {
  color: #b08a4f;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  margin: 0 0 22px;
  display: inline-block;
}
.om-split__title {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(32px, 3.6vw, 52px);
  font-weight: 500;
  line-height: 1.14;
  letter-spacing: 0.02em;
  margin: 0 0 28px;
  color: #1f1814;
}
.om-split__title em {
  color: #b08a4f;
  font-style: italic;
  font-weight: 500;
}
.om-split__text p {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.02em;
  color: #5f5347;
  margin: 0 0 20px;
  max-width: none;
}

/* Rating items on the stats row */
.om-rating {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 13px;
  color: #b6a587;
  white-space: nowrap;
}
.om-rating strong {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-weight: 500;
  font-size: 18px;
  color: #cba66d;
  line-height: 1;
}
.om-rating svg { width: 13px; height: 13px; color: #cba66d; }
.om-rating__dot { color: rgba(176, 138, 79, 0.45); padding: 0 4px; }
.om-split__stats {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 28px 0;
  margin: 18px 0 0;
  border-top: 1px solid rgba(176, 138, 79, 0.22);
  border-bottom: 1px solid rgba(176, 138, 79, 0.22);
  flex-wrap: nowrap;
  min-width: 0;
  width: 100%;
}
.om-split__stats .om-split__cta {
  margin-left: auto;
  flex: 0 0 auto;
}
@media (max-width: 980px) {
  .om-split__stats { margin-right: 0; }
  .om-split__stats .om-split__cta { margin-left: auto; }
}
.om-stat strong {
  font-family: 'ClashDisplay-Variable', 'Clash Display', sans-serif;
  font-size: clamp(24px, 2.4vw, 32px);
  font-weight: 600;
  color: #1f1814;
  letter-spacing: 0.02em;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  line-height: 1;
}
.om-stat--rating strong svg {
  width: 22px;
  height: 22px;
  color: #b08a4f;
  flex: 0 0 22px;
}
.om-stat span {
  display: block;
  font-family: 'ClashDisplay-Variable', 'Clash Display', sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: #6b5e50;
  margin-top: 6px;
  letter-spacing: 0.04em;
}
.om-stat { flex: 0 0 auto; display: flex; flex-direction: column; }
.om-stat__icon { width: 26px; height: 26px; margin-bottom: 8px; flex-shrink: 0; }
.om-split__cta {
  align-self: flex-start;
  margin-top: 4px;
}
.om-split__media {
  position: relative;
  overflow: hidden;
}
.om-split__media img,
.om-split__media video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

@media (max-width: 980px) {
  .om-split { padding-top: 0; padding-bottom: 0; }
  .om-split__title { font-size: 19px; }
  .om-split__inner {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .om-split__text {
    padding: 44px 28px 0;
    order: 2;
    max-width: 100%;
    min-width: 0;
  }
  #uddannelse-home .om-split__text,
  #uddannelse .om-split__text { padding-top: 0; }
  .om-split__media {
    order: 1;
    aspect-ratio: 4 / 3.5;
    max-height: 80vh;
    width: 100vw;
    margin-left: calc(50% - 50vw);
  }
  .om-split__media img { object-position: center top; }
  .om-split__stats {
    flex-wrap: nowrap;
    gap: 12px;
    padding: 24px 0;
  }
}

/* ============================================================
   Home gallery — chalk-white section, white wrapper card, magazine grid
   ============================================================ */
.home-gallery {
  background: #f5efe2 !important;
  padding: clamp(60px, 7vw, 100px) 0;
  color: #2a211a;
}
.home-gallery .gallery-head .kicker { color: #b08a4f; }
.home-gallery .gallery-head .section-title { color: #2a211a; }
.gallery-head { margin: 0 0 clamp(28px, 4vw, 46px); }
.gallery-head .kicker { color: #c9a06a; display: inline-block; margin: 0 0 12px; }
.gallery-head .section-title { color: #f4ecdd; margin: 0; }
.gallery-head__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.home-gallery .scroll-progress__track { background: rgba(240, 231, 216, 0.18); }
.home-gallery .scroll-progress__thumb { background: #e8dcc8; }
.gallery-carousel {
  display: flex;
  gap: 3px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 0;
  margin-left: calc((100% - 100vw) / 2);    /* bleed to left viewport edge */
  margin-right: calc((100% - 100vw) / 2);   /* bleed to right viewport edge */
  width: 100vw;
  -webkit-overflow-scrolling: touch;
}
.gallery-carousel::-webkit-scrollbar { display: none; }
.gallery-sq {
  flex: 0 0 35%;
  margin: 0;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  scroll-snap-align: start;
}
.gallery-sq img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s var(--ease);
}
.gallery-sq:hover img { transform: scale(1.04); }
@media (max-width: 720px) {
  .gallery-sq { flex-basis: 62%; }
}

/* Additional gallery — 5 client photos under the before/after sliders */
.home-gallery__extra {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3px;
  margin: 0;
  border-top: 3px solid #ffffff;
  background: #ffffff;
  width: 100vw;
  margin-left: calc((100% - 100vw) / 2);
  margin-right: calc((100% - 100vw) / 2);
}
.home-gallery__extra-item {
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  position: relative;
  background: #ebeae6;
}
.home-gallery__extra-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 500ms cubic-bezier(.2,.7,.2,1);
}
.home-gallery__extra-item:hover img { transform: scale(1.04); }
.home-gallery__extra-item--hidden { display: none; }
.home-gallery__extra-more { text-align: center; padding: 36px 16px; background: #f0ebe0; width: 100vw; margin-left: calc((100% - 100vw) / 2); }
.home-gallery__extra-more .photo-grid__btn { background: #3a3530; border-color: #3a3530; color: #c9a06a; padding: 16px 48px; font-size: 13px; letter-spacing: 0.18em; }
.home-gallery__extra-more .photo-grid__btn:hover { background: #2a2520; border-color: #2a2520; }

/* Gallery lightbox */
.gl-lb { display:none; position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,0.92); align-items:center; justify-content:center; }
.gl-lb.is-open { display:flex; }
.gl-lb__img { max-width:90vw; max-height:90vh; width:auto; height:auto; object-fit:contain; border-radius:4px; }
.gl-lb__close,.gl-lb__nav { position:absolute; background:rgba(255,255,255,0.10); border:1.5px solid rgba(255,255,255,0.55); color:#fff; cursor:pointer; border-radius:50%; width:46px; height:46px; display:flex; align-items:center; justify-content:center; transition:background .2s, border-color .2s; z-index:2; }
.gl-lb__close:hover,.gl-lb__nav:hover { background:rgba(201,160,106,0.75); border-color:#c9a06a; }
.gl-lb__close { top:20px; right:20px; }
.gl-lb__close svg { width:20px; height:20px; }
.gl-lb__nav { top:50%; transform:translateY(-50%); }
.gl-lb__nav svg { width:24px; height:24px; }
.gl-lb__nav--prev { left:20px; }
.gl-lb__nav--next { right:20px; }
@media(max-width:600px){.gl-lb__close{top:10px;right:10px;width:38px;height:38px;}.gl-lb__nav--prev{left:6px;}.gl-lb__nav--next{right:6px;}.gl-lb__nav{width:38px;height:38px;}}


/* Before/after slider grid — all 4 side by side, full-bleed to wrapper edges */
.ba-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3px;
  margin: 0;
  background: #ffffff;
  width: 100vw;
  margin-left: calc((100% - 100vw) / 2);
  margin-right: calc((100% - 100vw) / 2);
}
.ba-slider {
  position: relative;
  margin: 0;
  border-radius: 0;
  overflow: hidden;
  background: transparent;
  border: none;
  user-select: none;
  touch-action: pan-y;             /* allow page vertical scroll, drag horizontally */
  aspect-ratio: 4 / 5;
  --ba-pos: 60%;                   /* default: show 60% efter (left), 40% før (right) */
}
.ba-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
  user-select: none;
}
.ba-after-wrap {
  position: absolute;
  inset: 0;
  overflow: hidden;
  clip-path: inset(0 calc(100% - var(--ba-pos)) 0 0);
}

/* Labels */
.ba-label {
  position: absolute;
  top: 14px;
  display: inline-block;
  width: auto;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #ffffff;
  background: rgba(15, 25, 35, 0.65);
  padding: 6px 12px;
  border-radius: 999px;
  pointer-events: none;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 3;
}
.ba-label--before { left: 14px; }
.ba-label--after  { right: 14px; }

/* Handle */
.ba-handle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--ba-pos);
  transform: translateX(-50%);
  width: 44px;
  border: none;
  background: transparent;
  padding: 0;
  cursor: ew-resize;
  z-index: 4;
  touch-action: none;
}
.ba-handle__line {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.45);
}
.ba-handle__knob {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 44px;
  height: 44px;
  border-radius: 999px;
  background: #ffffff;
  color: #0F1923;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.30), 0 0 0 1px rgba(0, 0, 0, 0.06);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ba-handle__knob svg { width: 20px; height: 20px; }
.ba-slider.is-dragging .ba-handle__knob { transform: translate(-50%, -50%) scale(0.95); }

.ba-slider { cursor: zoom-in; }

/* Register --ba-pos so it can be animated smoothly (not just jump at 50%) */
@property --ba-pos {
  syntax: '<percentage>';
  inherits: true;
  initial-value: 50%;
}

/* Thumbnails show ONLY the after (finished) image — no split, no labels, no hint animation */
.ba-slider:not(.ba-slider--lightbox) .ba-after-wrap {
  clip-path: none !important;
}
.ba-slider:not(.ba-slider--lightbox) .ba-label { display: none; }

.ba-slider:not(.ba-slider--lightbox) .ba-handle { display: none; }

@media (max-width: 720px) {
  .ba-slider { aspect-ratio: 4 / 5; border-radius: 0; }
  .ba-handle { width: 56px; }
  .ba-label { font-size: 10px; padding: 5px 10px; }
}

/* ===== Lightbox ===== */
.ba-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(255, 255, 255, 0.98);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 80px;
  animation: baFade 220ms ease;
}
.ba-lightbox[hidden] { display: none; }
body.ba-lock { overflow: hidden; }
@keyframes baFade { from { opacity: 0; } to { opacity: 1; } }

.ba-lightbox .ba-slider--lightbox {
  position: relative;
  aspect-ratio: auto;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  background: transparent;
  border: none;
  border-radius: 0;
  cursor: ew-resize;
}
.ba-lightbox .ba-img {
  object-fit: contain;
  background: transparent;
}
.ba-lightbox .ba-label { top: 24px; left: auto; right: auto; }
.ba-lightbox .ba-label--before { left: 24px; right: auto; }
.ba-lightbox .ba-label--after  { right: 24px; left: auto; }

.ba-lightbox__close,
.ba-lightbox__nav {
  position: absolute;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(15, 25, 35, 0.10);
  color: #0F1923;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 180ms ease;
  z-index: 5;
}
.ba-lightbox__close { top: 24px; right: 24px; }
.ba-lightbox__close svg { width: 18px; height: 18px; }
.ba-lightbox__nav  { top: 50%; transform: translateY(-50%); }
.ba-lightbox__nav svg { width: 22px; height: 22px; }
.ba-lightbox__nav--prev { left: 24px; }
.ba-lightbox__nav--next { right: 24px; }
.ba-lightbox__close:hover,
.ba-lightbox__nav:hover {
  background: #ffffff;
  border-color: #b08a4f;
  color: #b08a4f;
}

@media (max-width: 720px) {
  .ba-lightbox { padding: 16px; }
  .ba-lightbox__close { top: 14px; right: 14px; }
  .ba-lightbox__nav--prev { left: 8px; }
  .ba-lightbox__nav--next { right: 8px; }
  .ba-lightbox__close,
  .ba-lightbox__nav { width: 38px; height: 38px; }
}

/* ============================================================
   Park Lane-style rating bar (multi-platform horizontal strip)
   ============================================================ */
/* Full-width section wrapping the rating bar, sits directly above the trust strip.
   The dark brown fades from transparent at the top into solid at the bottom,
   so it visually blends with the hero above it. */
.rating-bar-section {
  background: linear-gradient(to bottom, transparent 0%, #1f1814 70%);
  position: relative;
  z-index: 3;
}
.rating-bar {
  display: flex;
  align-items: center;
  gap: clamp(20px, 3vw, 48px);
  padding: 28px clamp(28px, 5vw, 80px) 22px;
  background: transparent;
  color: #f5efe2;
  border-radius: 0;
  flex-wrap: wrap;
  max-width: var(--container);
  margin: 0 auto;
}
/* Align rating-bar columns with the trust strip below (same grid) */
.rating-bar-section .rating-bar {
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr 1fr;
  width: 90%;
  max-width: var(--container);
  padding: 14px 0 20px;
  align-items: center;
}
.rating-bar-section .rating-bar__platform { justify-content: flex-start; }
/* Make platforms wrapper transparent to grid so each platform occupies its own column */
.rating-bar-section .rating-bar__platforms {
  display: contents;
}
.rbar-break { display: none; }
@media (max-width: 720px) {
  .rating-bar-section .rating-bar { grid-template-columns: 1fr 1fr; padding-bottom: 22px; }
  .rating-bar-section .rating-bar__platforms { display: flex; flex-direction: column; gap: 4px; grid-column: 2 / 3; }
}
.rating-bar__main {
  display: flex;
  align-items: center;
  gap: 7px;
  padding-right: clamp(10px, 1.5vw, 18px);
  border-right: 1px solid rgba(214, 198, 155, 0.25);
  flex: 0 0 auto;
}
.rating-bar__score {
  font-family: 'Montserrat', sans-serif !important;
  font-size: clamp(18px, 1.9vw, 23px);
  font-weight: 500;
  color: #cba66d;
  line-height: 1;
  letter-spacing: -0.01em;
}
.rating-bar__divider {
  font-family: 'Montserrat', sans-serif !important;
  font-size: clamp(10px, 0.95vw, 13px);
  color: #cba66d;
  opacity: 0.7;
  margin-left: -4px;
  align-self: flex-end;
  padding-bottom: 3px;
}
.rating-bar__main-text { display: flex; flex-direction: column; gap: 1px; }
.rating-bar__main-text strong {
  font-family: 'Montserrat', sans-serif !important;
  font-size: clamp(13px, 1.15vw, 16px);
  font-weight: 600;
  color: #f5efe2;
  letter-spacing: 0.02em;
}
.rating-bar__main-text span {
  font-family: 'Montserrat', sans-serif !important;
  font-size: clamp(11px, 0.95vw, 14px);
  color: rgba(245, 239, 226, 0.65);
  letter-spacing: 0.01em;
}
.rating-bar__platform {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 5px;
  min-width: 0;
}
.rating-bar__platform-name {
  font-family: 'Montserrat', sans-serif !important;
  font-size: clamp(12px, 1.05vw, 15px);
  font-weight: 400;
  color: rgba(245, 239, 226, 0.75);
  letter-spacing: 0.01em;
}
.rating-bar__brand {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  display: block;
}
.rating-bar__platform-score {
  font-family: 'Montserrat', sans-serif !important;
  font-size: clamp(15px, 1.4vw, 19px);
  font-weight: 500;
  color: #cba66d;
  line-height: 1;
}
.rating-bar__small {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 7px;
  color: rgba(203, 166, 109, 0.65);
  margin-left: 1px;
}
@media (max-width: 720px) {
  .rating-bar { padding: 18px 18px; gap: 14px; justify-content: center; }
  .rating-bar-section .rating-bar {
    grid-template-columns: 1fr 1fr;
    align-items: center;
    padding: 14px 0 20px;
  }
  .rating-bar__main {
    flex: 1 1 100%;
    justify-content: flex-start;
    align-items: center;
    padding-right: 12px;
    padding-bottom: 0;
    border-right: 1px solid rgba(214, 198, 155, 0.25);
    border-bottom: none;
  }
  .rating-bar__platform { flex: 0 0 auto; }
  .rating-bar__platforms { padding-left: 12px; }
}

/* Cream anmeldelses-strip (kontakt, over footer) + light inline rating bar */
.rating-strip {
  background: #f5efe2;
  padding: clamp(40px, 6vw, 64px) 0;
}
.rating-bar--inline {
  padding: 22px 0;
  margin: 0;
  border-top: 1px solid rgba(176, 138, 79, 0.22);
  border-bottom: 1px solid rgba(176, 138, 79, 0.22);
  max-width: none;
  color: #1f1814;
}
.testimonials .rating-bar--inline { margin: 0 0 0; }
.rating-bar--inline .rating-bar__main { border-right-color: rgba(176, 138, 79, 0.28); }
.rating-bar--inline .rating-bar__main-text strong { color: #1f1814; }
.rating-bar--inline .rating-bar__main-text span { color: #6b5e50; }
.rating-bar--inline .rating-bar__platform-name { color: #6b5e50; }
.rating-bar--inline .rating-bar__score,
.rating-bar--inline .rating-bar__platform-score,
.rating-bar--inline .rating-bar__divider { color: #b08a4f; }
/* Hide scroll thumb in testimonials; platforms wrap to own left-aligned row on mobile */
.testimonials .scroll-progress__thumb { display: none; }
.testimonials .rating-bar--inline {
  flex-wrap: nowrap;
  gap: 0;
}
@media (max-width: 720px) {
  .testimonials__title-row .scroll-progress { margin-left: auto; }
}

/* ============================================================
   Scroll progress bar — minimal indicator, replaces arrows
   ============================================================ */
.scroll-progress {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 18px auto 0;
  width: 100%;
  max-width: 360px;
}
.scroll-progress--inline {
  margin: 0;
  max-width: 240px;
  flex: 1 1 auto;
}
/* Top-right placement next to section title (instead of bottom) */
.scroll-progress--top {
  margin: 0;
  max-width: 304px;
  flex: 0 0 auto;
  align-self: center;          /* vertically centered with the headline */
  padding-bottom: 0;
}

/* Section head variant with title left + nav right */
.section-head--with-nav {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(24px, 4vw, 60px);
  flex-wrap: wrap;
}
.section-head--with-nav .section-head__title { flex: 1 1 auto; min-width: 280px; }

/* Reviews header: center the progress line with the headline */
.home-reviews__head {
  align-items: center !important;
}
.home-reviews__title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.home-reviews__title-row .section-title { margin: 0; }
@media (max-width: 640px) {
  .home-reviews__title-row { flex-wrap: wrap; gap: 12px; }
}
.scroll-progress__track {
  width: 100%;
  height: 4px;
  background: rgba(176, 138, 79, 0.20);
  border-radius: 999px;
  overflow: hidden;
  position: relative;
}
.scroll-progress__thumb {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 25%;
  background: #1f1814;
  border-radius: 999px;
  transition: left 240ms ease, width 240ms ease;
}

/* ============================================================
   Udtalelser — testimonial carousel (image + quote, right bleed)
   ============================================================ */
.testimonials {
  background: #f5efe2;
  padding: clamp(54px, 7.2vw, 90px) 0;
}
.testimonials__head { margin: 0 0 clamp(16px, 2vw, 24px); }
.testimonials__head .kicker { color: #c2562b; display: inline-block; margin: 0 0 10px; }
.testimonials__head .section-title { color: #1f1814; }

/* Dark variant */
.testimonials--dark {
  background:
    radial-gradient(ellipse at 50% 0%, rgba(201,160,106,0.12) 0%, transparent 55%),
    #3a2f26;
}
/* Rating bar readable on the brown background */
.testimonials--dark .rating-bar--inline { border-top-color: rgba(232,213,184,0.18); border-bottom-color: rgba(232,213,184,0.18); }
.testimonials--dark .rating-bar--inline .rating-bar__main { border-right-color: rgba(232,213,184,0.22); }
.testimonials--dark .rating-bar--inline .rating-bar__main-text strong { color: #f5efe2; }
.testimonials--dark .rating-bar--inline .rating-bar__main-text span { color: rgba(245,239,226,0.62); }
.testimonials--dark .rating-bar--inline .rating-bar__platform-name { color: rgba(245,239,226,0.7); }
.testimonials--dark .rating-bar--inline .rating-bar__score,
.testimonials--dark .rating-bar--inline .rating-bar__platform-score,
.testimonials--dark .rating-bar--inline .rating-bar__divider { color: var(--gold-2); }
.testimonials--dark .testimonials__head .kicker { color: var(--gold-2); }
.testimonials--dark .testimonials__head .section-title { color: var(--text); }
.testimonials--dark .scroll-progress__track { background: rgba(240, 231, 216, 0.18); }
.testimonials--dark .scroll-progress__thumb { background: #e8dcc8; }
/* Testimonial wall on the brown background */
.testimonials--dark .rev-marquee::before { background: linear-gradient(to bottom, #3a2f26, rgba(58,47,38,0)); }
.testimonials--dark .rev-marquee::after  { background: linear-gradient(to top, #3a2f26, rgba(58,47,38,0)); }
.testimonials--dark .rev-card {
  background: rgba(245,239,226,0.05);
  border-color: rgba(232,213,184,0.14);
  box-shadow: 0 10px 30px rgba(0,0,0,0.32), inset 0 1px 0 rgba(255,255,255,0.05);
}
.testimonials--dark .rev-card__mark { color: rgba(245,239,226,0.22); }
.testimonials--dark .rev-card__name { color: #f5efe2; }
.testimonials--dark .rev-card__src { color: rgba(245,239,226,0.65); }
.testimonials--dark .rev-card__src:hover { color: var(--gold-2); }
.testimonials--dark .rev-card__quote { color: rgba(245,239,226,0.82); }
.testimonials__title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.testimonials__title-row .section-title { margin: 0; }
@media (max-width: 640px) {
  .testimonials__title-row { flex-wrap: wrap; gap: 12px; }
}
.testimonials__track {
  display: flex;
  gap: clamp(20px, 2.4vw, 36px);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 8px 0 44px 0;
  margin-right: calc((100% - 100vw) / 2);   /* bleed to right viewport edge */
  -webkit-overflow-scrolling: touch;
}
.testimonials__track::-webkit-scrollbar { display: none; }
.tcard {
  flex: 0 0 calc((100% - clamp(20px, 2.4vw, 36px)) / 1.4);
  min-width: 340px;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  display: flex;
  flex-direction: row;
  background: #ffffff;
  box-shadow: 0 20px 44px -26px rgba(31, 24, 20, 0.4);
  overflow: hidden;
}
.tcard__media { flex: 0 0 38%; align-self: stretch; overflow: hidden; margin: 0; min-height: 300px; }
.tcard__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s var(--ease);
}
.tcard:hover .tcard__media img { transform: scale(1.04); }
.tcard__body { flex: 1 1 62%; display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 3vw, 46px); }
.tcard__mark {
  order: 0;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 40px;
  line-height: 0.5;
  color: #b08a4f;
  margin: 0 0 18px;
}
.tcard__quote {
  order: 2;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-weight: 400;
  font-size: 14.5px;
  line-height: 1.75;
  letter-spacing: 0.01em;
  color: #3a302a;
  margin: 0;
}
.tcard__person {
  order: 1;
  margin: 0 0 18px;
}
.tcard__person strong {
  display: block;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(18px, 1.62vw, 23px);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #1f1814;
  margin: 0 0 6px;
}
.tcard__platform {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #7a6a55;
}
.tcard__icon { width: 14px; height: 14px; flex: 0 0 14px; }
.tcard__icon path { fill: currentColor; }
@media (max-width: 720px) {
  .tcard { flex-basis: 86%; min-width: 0; }
}

/* ============================================================
   Home reviews — Trustpilot-style carousel under priser
   ============================================================ */
.home-reviews {
  background:
    radial-gradient(ellipse at 50% 0%, rgba(176,138,79,0.12) 0%, transparent 55%),
    #f5efe2;
  padding: 22px 0;
  --on-cream-text: #1f1814;
  --on-cream-soft: #3a302a;
  --on-cream-muted: #7a6a55;
}
.home-reviews-wrap {
  position: relative;
  background: #fcf9f1;
  border-radius: 22px;
  padding: 32px 32px 28px;
  box-shadow: 0 1px 2px rgba(31, 24, 20, 0.05), 0 14px 40px rgba(31, 24, 20, 0.08);
  border: 1px solid rgba(176, 138, 79, 0.22);
}
.home-reviews__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  margin: 0 0 22px;
}
.home-reviews__title { flex: 1 1 auto; min-width: 260px; }
.home-reviews__title .kicker { color: #c2562b; display: inline-block; margin: 0 0 8px; }
.home-reviews__title .section-title { color: var(--on-cream-text); margin: 0 0 10px; }
.home-reviews__title .section-lead { color: var(--on-cream-soft); margin: 0; max-width: 60ch; }
.home-reviews__nav { display: flex; gap: 10px; flex: 0 0 auto; }
.home-reviews__arrow {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(15, 25, 35, 0.15);
  background: #ffffff;
  color: var(--on-cream-text);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  transition: all 180ms ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.home-reviews__arrow:hover {
  border-color: #b08a4f;
  color: #b08a4f;
  transform: translateY(-1px);
}
.home-reviews__arrow:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  transform: none;
}

.home-reviews__list-wrap { position: relative; }
.home-reviews__list-wrap + .home-reviews__list-wrap { margin-top: 14px; }
.home-reviews__list-wrap::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 96px;
  pointer-events: none;
  background: linear-gradient(to left, #fcf9f1 30%, rgba(252,249,241,0) 100%);
  opacity: 1;
  transition: opacity 220ms ease;
}
.home-reviews-wrap.is-end .home-reviews__list-wrap::after { opacity: 0; }

.home-reviews__list {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 6px 4px 14px;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}
.home-reviews__list::-webkit-scrollbar { display: none; }

.home-review {
  position: relative;
  flex: 0 0 calc((100% - 18px * 2.5) / 2.5);
  min-width: 320px;
  scroll-snap-align: start;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 4px 28px 4px 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
  overflow: visible;
}
.home-review::before { content: none; }

/* Badge sits as a single horizontal row with icon + name + platform · rating */
.home-review__badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  align-self: center;
  padding: 0;
  border-radius: 0;
  background: transparent !important;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0;
}
.home-review__icon {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
}
.home-review__rating {
  font-weight: 700;
  letter-spacing: 0;
  margin-left: 2px;
  padding-left: 8px;
  border-left: 1px solid currentColor;
  opacity: 0.85;
}
.home-review__badge--google {
  background: rgba(66, 133, 244, 0.08);
  color: #1a73e8;
}
.home-review__badge--trustpilot {
  background: rgba(0, 182, 122, 0.10);
  color: #008a5c;
}
.home-review__badge--facebook {
  background: rgba(24, 119, 242, 0.10);
  color: #1564d3;
}

/* Inline row: name + badge, with a thin divider rule beneath (Park Lane style) */
.home-review__head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin: 0;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(31, 24, 20, 0.14);
}
.home-review__name {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 19px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--on-cream-text);
}

.home-review__quotemark {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 32px;
  line-height: 0.6;
  color: rgba(184, 147, 90, 0.6);
  margin: 0 0 -6px;
}
.home-review__quote {
  margin: 0;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.01em;
  color: var(--on-cream-soft);
}

@media (max-width: 720px) {
  .home-reviews { padding: 0 0 60px; }
  .home-reviews-wrap { padding: 24px 18px 22px; border-radius: 16px; }
  .home-reviews__head { margin-bottom: 16px; }
  .home-reviews__nav { display: none; }
  .home-review {
    flex: 0 0 calc((100% - 14px * 1.5) / 1.5);
    min-width: 240px;
    padding: 22px 18px 18px;
  }
}

/* One big outer card wrapping the priser header + carousel */
.prices-wrap {
  position: relative;
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  border: none;
}
/* Right-edge fade overlay — hints at hidden cards beyond. Sits over the carousel only. */
.prices-list-wrap {
  position: relative;
}
.prices-list-wrap::after { content: none; }

/* Swipe hint at bottom */
.prices-hint {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 6px 0 0;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--on-cream-muted);
  user-select: none;
  pointer-events: none;
  transition: opacity 220ms ease;
}
.prices-wrap.is-end .prices-hint { opacity: 0.35; }
.prices-hint__arrow {
  display: inline-flex;
  width: 36px;
  height: 14px;
  position: relative;
}
.prices-hint__arrow::before,
.prices-hint__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 26px;
  height: 1.5px;
  background: currentColor;
  transform: translateY(-50%);
  animation: priceSwipe 1.8s ease-in-out infinite;
}
.prices-hint__arrow::after {
  width: 8px;
  background: transparent;
  border-right: 1.5px solid currentColor;
  border-top: 1.5px solid currentColor;
  height: 8px;
  left: 18px;
  transform: translateY(-50%) rotate(45deg);
  animation: priceSwipeHead 1.8s ease-in-out infinite;
}
@keyframes priceSwipe {
  0%   { transform: translate(-6px, -50%); opacity: 0.25; }
  35%  { opacity: 1; }
  100% { transform: translate(10px, -50%); opacity: 0.15; }
}
@keyframes priceSwipeHead {
  0%   { transform: translate(-6px, -50%) rotate(45deg); opacity: 0.25; }
  35%  { opacity: 1; }
  100% { transform: translate(10px, -50%) rotate(45deg); opacity: 0.15; }
}
@media (prefers-reduced-motion: reduce) {
  .prices-hint__arrow::before,
  .prices-hint__arrow::after { animation: none; }
}
.prices-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin: 0 0 10px;
}
.prices-title-row .section-title { margin: 0; }
.prices-head-cta { display: inline-flex; margin-top: 18px; }
.prices-wrap .section-head { margin: 0 0 6px; max-width: none; }
.prices-wrap .section-head .kicker { margin: 0 0 8px; display: inline-block; }
.prices-wrap .section-head .section-lead { margin: 0; max-width: 70ch; }
@media (max-width: 640px) {
  .prices-title-row { flex-wrap: wrap; gap: 12px; }
  .prices-head-cta { width: 100%; }
}

/* Horizontal carousel of category cards */
.prices-list {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin: 18px 0 8px;
  margin-right: calc((100% - 100vw) / 2);   /* bleed to right viewport edge */
  padding: 24px 0 16px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  cursor: grab;
  -webkit-overflow-scrolling: touch;
  transition: height 280ms ease;
}
.prices-list:active { cursor: grabbing; }
.prices-list::-webkit-scrollbar { display: none; }

.price-cat {
  position: relative;
  flex: 0 0 calc((100% - 24px * 2.5) / 2.5);   /* 2.5 cards visible — peek of next */
  min-width: 300px;
  scroll-snap-align: start;
  background: transparent;
  border-radius: 0;
  padding: 8px 28px 8px 0;
  border: none;
  box-shadow: none;
  display: flex;
  flex-direction: column;
}
.price-cat--featured {
  background: transparent;
  box-shadow: none;
}
.price-cat__book {
  align-self: flex-start;
  margin-top: 22px;
  background: none;
  border: none;
  border-bottom: 1px solid currentColor;
  color: #1f1814;
  cursor: pointer;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 0 0 6px;
  transition: color .2s ease, border-color .2s ease;
}
.price-cat__book:hover { color: #c9a06a; border-color: #c9a06a; }

.price-cat__badge {
  position: absolute;
  top: 0;
  left: 0;
  transform: translateY(-50%);   /* badge sits centred ON the border line */
  background: #c2562b;
  color: #fff;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 5px 11px;
  border-radius: 999px;
  box-shadow: 0 3px 10px rgba(194, 86, 43, 0.35);
}
.price-cat__title {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.015em;
  margin: 0 0 8px;
  padding: 0 0 14px;
  border-bottom: 1px solid rgba(15, 25, 35, 0.10);
  color: var(--on-cream-text);
}
.price-cat__title em {
  color: #b08a4f;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 500;
}

.price-cat__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.price-cat__list li {
  display: grid;
  grid-template-columns: 1fr auto auto;
  grid-template-areas:
    "name dots amount"
    "desc desc desc";
  column-gap: 8px;
  row-gap: 6px;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px solid rgba(40, 49, 58, 0.08);
  font-size: 13px;
  color: var(--on-cream-text);
  font-weight: 500;
}
.price-cat__list li:last-child { border-bottom: none; }
.price-cat__info {
  display: contents;
}
.price-cat__name {
  grid-area: name;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-weight: 600;
  font-size: 15px;
  letter-spacing: -0.005em;
  color: var(--on-cream-text);
}
.price-cat__desc {
  grid-area: desc;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-style: normal;
  font-weight: 400;
  font-size: 12.5px;
  color: var(--on-cream-muted);
  line-height: 1.55;
  margin: 0;
  max-width: 48ch;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.price-cat__name em {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 400;
  color: var(--on-cream-muted);
  margin-left: 3px;
  font-size: 12.5px;
}
.price-cat__dots {
  grid-area: dots;
  border-bottom: 1px dotted var(--on-cream-line);
  transform: translateY(-4px);
  min-width: 14px;
  align-self: center;
}
.price-cat__amount {
  grid-area: amount;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 22px;
  font-weight: 500;
  color: #b08a4f;
  letter-spacing: 0;
  white-space: nowrap;
}

.prices-foot {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 0 4px;
  border-top: 1px solid rgba(15, 25, 35, 0.08);
  margin-top: 4px;
}
.prices-foot .prices-panel__note {
  margin: 0;
  font-size: 11.5px;
  color: var(--on-cream-muted);
  font-style: italic;
  flex: 1 1 auto;
}
.prices-foot .prices-hint {
  margin: 0;
  flex: 0 0 auto;
}
.prices-foot .btn { flex: 0 0 auto; }

@media (max-width: 720px) {
  .prices-list {
    margin: 0 0 24px;
    padding: 22px 4px 18px;
    gap: 14px;
  }
  .price-cat {
    flex: 0 0 calc((100% - 14px * 1.5) / 1.5);  /* 1.5 cards visible on mobile */
    min-width: 240px;
    padding: 24px 20px 18px;
    border-radius: 14px;
  }
  .price-cat__title { font-size: 20px; }
  .price-cat__amount { font-size: 16px; }
  .prices-foot { flex-wrap: wrap; }
  .prices-foot .prices-panel__note { flex: 1 1 100%; order: 1; }
  .prices-foot .prices-hint { order: 2; }
  .prices-foot .btn { order: 3; margin-left: auto; }
}

/* ============================================================
   Hours panel — clean white cards in a 4-column grid
   ============================================================ */
.tab-panel.hours-panel {
  background: #f6f1ea;
  border-bottom: 1px solid #d8cdbd;
  padding: 36px 0 90px;
  --on-cream-text: #1a1816;
  --on-cream-soft: #3b342d;
  --on-cream-muted: #7a6e60;
  --on-cream-line: #d8cdbd;
}
.hours-panel .kicker { color: #c2562b; }
.hours-panel .section-title { color: var(--on-cream-text); }
.hours-panel .section-title em { color: #b08a4f; }
.hours-panel .section-lead { color: var(--on-cream-soft); }

.hours-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 40px;
}
.hour-card {
  background: #ffffff;
  border: 1px solid #e7ddca;
  border-radius: 10px;
  padding: 22px 22px 26px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
  box-shadow: 0 2px 12px rgba(31,28,25,0.04);
  transition: all .25s var(--ease);
}
.hour-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(31,28,25,0.08);
  border-color: #b08a4f;
}
.hour-card__day {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--on-cream-muted);
}
.hour-card__time {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 24px;
  font-weight: 500;
  color: var(--on-cream-text);
  letter-spacing: 0.005em;
}
.hour-card__time em {
  font-style: italic;
  color: #b08a4f;
}
.hour-card--closed .hour-card__time { font-size: 26px; }

.hours-contact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 28px;
  padding-top: 28px;
  border-top: 1px solid var(--on-cream-line);
}
.hours-contact__phone {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 26px;
  font-weight: 500;
  color: var(--on-cream-text);
  letter-spacing: 0.005em;
}
.hours-contact__phone svg { color: #b08a4f; }
.hours-contact__phone:hover { color: #b08a4f; }
.hours-contact__email {
  font-size: 14px;
  color: var(--on-cream-muted);
}
.hours-contact__email:hover { color: #c2562b; }
.hours-contact__cta { margin-left: auto; }

@media (max-width: 880px) {
  .hours-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .hour-card { padding: 18px 16px 22px; gap: 10px; }
  .hour-card__time { font-size: 20px; }
  .hour-card--closed .hour-card__time { font-size: 22px; }
  .hours-contact { gap: 12px 18px; }
  .hours-contact__cta { margin-left: 0; width: 100%; }
}

/* ============================================================
   Tab content (panels under section-nav, only one visible at a time)
   ============================================================ */
.tab-content { position: relative; }
/* ============================================================
   PRODUKTER tab panel — cream cards matching prices/reviews
   ============================================================ */
.produkter-panel {
  padding: 22px 0;
  --on-cream-text: #1f1814;
  --on-cream-soft: #3a302a;
}
.produkter-wrap {
  background: #fcf9f1;
  border-radius: 22px;
  padding: 32px 32px 28px;
  box-shadow: 0 1px 2px rgba(31, 24, 20, 0.05), 0 14px 40px rgba(31, 24, 20, 0.08);
  border: 1px solid rgba(176, 138, 79, 0.22);
}
.produkter-wrap .section-head { margin: 0 0 24px; max-width: none; }
.produkter-wrap .section-head .kicker { color: #c2562b; margin: 0 0 8px; display: inline-block; }
.produkter-wrap .section-head .section-title { color: var(--on-cream-text); margin: 0 0 10px; }
.produkter-wrap .section-head .section-title em { color: #b08a4f; }
.produkter-wrap .section-head .section-lead { color: var(--on-cream-soft); margin: 0; max-width: 70ch; }
.produkter-feature {
  margin: 0 0 26px;
  border-radius: 16px;
  overflow: hidden;
}
.produkter-feature img {
  width: 100%;
  height: 300px;
  object-fit: cover;
  display: block;
}
.produkter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 16px;
}
.produkt-card {
  background: #fefcf6;
  border: 1px solid rgba(176, 138, 79, 0.25);
  border-radius: 14px;
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.produkt-card:hover {
  transform: translateY(-4px);
  border-color: #b08a4f;
  box-shadow: 0 12px 28px rgba(31, 24, 20, 0.10);
}
.produkt-card .kicker { color: #c2562b; font-size: 11px; display: inline-block; }
.produkt-card h3 {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-weight: 500;
  font-size: 21px;
  line-height: 1.2;
  color: var(--on-cream-text);
  margin: 0;
}
.produkt-card p { font-size: 14px; line-height: 1.55; color: var(--on-cream-soft); margin: 0; }
.produkt-card__from {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid rgba(15, 25, 35, 0.10);
  font-size: 14px;
  color: #b08a4f;
  font-weight: 600;
  letter-spacing: .04em;
}
@media (max-width: 640px) {
  .produkter-feature img { height: 200px; }
}

.tab-panel {
  display: none;
  animation: tabFadeIn .35s var(--ease) both;
}
.tab-panel.is-active { display: block; }
/* Prisliste must always be visible on the home page (not tab-gated) */
.tab-panel.prices-panel { display: block !important; }

/* All tab panels dock tight under the section-nav pill, share compact head */
.tab-panel.gallery,
.tab-panel.reviews,
.tab-panel.find,
.tab-panel.about { padding-top: 50px; }
/* Gallery tab opens with a full-bleed cover (about-hero) flush at the top */
.tab-panel.gallery { padding-top: 0; }
.tab-panel.gallery .about-hero--gallery { margin-bottom: clamp(36px, 5vh, 60px); }
.tab-panel .section-head {
  max-width: 100%;
  margin-bottom: 36px;
}
.tab-panel .kicker {
  font-size: 11px;
  margin-bottom: 12px;
}
.tab-panel .section-title {
  font-size: clamp(26px, 3.2vw, 42px);
  margin-bottom: 14px;
}
.tab-panel .section-lead {
  font-size: clamp(13px, 1vw, 14px);
  line-height: 1.55;
}
@keyframes tabFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   Reviews
   ============================================================ */
.reviews {
  padding: 120px 0;
  background: #f6f1ea;
  border-top: 1px solid #d8cdbd;
  border-bottom: 1px solid #d8cdbd;
  --on-cream-text: #1a1816;
  --on-cream-soft: #3b342d;
  --on-cream-muted: #7a6e60;
}
.reviews .kicker { color: #c2562b; }
.reviews .section-title { color: var(--on-cream-text); }
.reviews .section-title em { color: #b08a4f; }
.reviews .section-lead { color: var(--on-cream-soft); }

/* Horizontal carousel — desktop: 3.5 visible · mobile: 1.25 (1 + 1/4 peek) */
.reviews__grid {
  display: grid;
  grid-template-rows: repeat(2, 1fr);
  grid-auto-flow: column;
  grid-auto-columns: clamp(260px, calc((100% - 40px) / 3.5), 380px);
  gap: 12px 16px;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 20px;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: rgba(31,28,25,0.3) rgba(31,28,25,0.08);
  cursor: grab;
  scroll-padding-left: 0;
}
.reviews__grid:active { cursor: grabbing; }
.reviews__grid::-webkit-scrollbar { height: 6px; }
.reviews__grid::-webkit-scrollbar-thumb {
  background: rgba(31,28,25,0.3);
  border-radius: 999px;
}
.reviews__grid::-webkit-scrollbar-track {
  background: rgba(31,28,25,0.06);
  border-radius: 999px;
}
.reviews__grid > .review { scroll-snap-align: start; }
.review--hidden { /* legacy class — no longer hides anything in carousel mode */ }
.reviews__actions {
  display: flex;
  justify-content: center;
  margin-top: 28px;
}
.reviews__actions .btn {
  background: #DC2626;
  color: #ffffff;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.01em;
  padding: 13px 28px;
  border-radius: 12px;
  box-shadow: 0 8px 22px rgba(220, 38, 38, 0.28);
}
.reviews__actions .btn:hover {
  background: #B91C1C;
  color: #ffffff;
  box-shadow: 0 14px 32px rgba(220, 38, 38, 0.42);
  transform: translateY(-2px);
}
.review {
  background: #ffffff;
  border: 1px solid #d8cdbd;
  border-radius: var(--radius-lg);
  padding: 24px 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
  transition: box-shadow .35s var(--ease), border-color .35s var(--ease);
  box-shadow: 0 8px 24px rgba(31,28,25,0.06);
  will-change: transform;
}

/* (Auto-rolling parallax removed — reviews now use horizontal slide carousel) */
.review:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 50px rgba(31,28,25,0.12);
}
.review--featured {
  background: #1f1c19;
  border-color: #1f1c19;
  color: #f6f1ea;
}
.review--featured .review__quote { color: #f6f1ea; }
.review--featured .review__by strong { color: #f6f1ea; }
.review--featured .review__by span { color: #b08a4f; }

/* Review header: name + source stacked left, stars top-right; separator below */
.review__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #d8cdbd;
  margin: -2px 0 0;
}
.review--featured .review__head { border-bottom-color: rgba(184,147,90,0.3); }

.review__person {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.review__name {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--on-cream-text);
  line-height: 1.2;
}
.review--featured .review__name { color: #f6f1ea; }

.review__source {
  font-size: 10px;
  color: var(--on-cream-muted);
  letter-spacing: 0.04em;
  text-decoration: none;
  font-weight: 500;
  transition: color .2s var(--ease);
  line-height: 1.2;
}
.review__source:hover { color: #c2562b; }
.review--featured .review__source { color: #d6a978; }
.review--featured .review__source:hover { color: #ffd9a8; }

.review__stars {
  color: #b08a4f;
  font-size: 13px;
  letter-spacing: 0.1em;
}
.review--featured .review__stars { color: #d6a978; }

.review__quote {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 20px;            /* +30% from 15.5px */
  font-weight: 500;
  font-style: italic;
  line-height: 1.4;
  color: var(--on-cream-text);
  margin: 0;
  flex: 1;
}

/* Source link sits at the bottom on its own row */
.review__by {
  display: flex;
  align-items: center;
}
.review__by a {
  font-size: 10px;
  color: var(--on-cream-muted);
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: color .2s var(--ease);
  font-weight: 500;
}
.review__by a:hover {
  color: #c2562b;
}
.review--featured .review__by a { color: #d6a978; }
.review--featured .review__by a:hover { color: #ffd9a8; }
.reviews__note {
  text-align: center;
  margin-top: 32px;
  font-size: 12px;
  color: var(--on-cream-muted);
  font-style: italic;
}

@media (max-width: 880px) {
  .reviews__grid {
    grid-auto-columns: 78vw;     /* 1 full card + 1/4 of the next peeking */
    gap: 10px 14px;
  }
  .reviews { padding: 80px 0; }
}

/* ============================================================
   Omtale — interfilm-style 4-column auto-scrolling testimonial wall
   ============================================================ */
.reviews__source { display: none !important; }   /* hidden data source for the wall */

.rev-marquee {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-height: 760px;
  overflow: hidden;
}
/* top + bottom fades into the cream background */
.rev-marquee::before,
.rev-marquee::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  height: 96px;
  z-index: 5;
  pointer-events: none;
}
.rev-marquee::before { top: 0; background: linear-gradient(to bottom, #f5efe2, rgba(245,239,226,0)); }
.rev-marquee::after  { bottom: 0; background: linear-gradient(to top, #f5efe2, rgba(245,239,226,0)); }

.rev-col { position: relative; overflow: hidden; max-height: 760px; }
.rev-col__inner {
  display: flex;
  flex-direction: column;
  gap: 20px;
  animation: revScrollUp linear infinite;
  will-change: transform;
}
.rev-col--down .rev-col__inner { animation-name: revScrollDown; }
.rev-col__inner:hover { animation-play-state: paused; }

.rev-card {
  flex-shrink: 0;
  border-radius: 18px;
  padding: 26px 24px;
  background: rgba(255,255,255,0.6);
  -webkit-backdrop-filter: blur(14px) saturate(1.4);
  backdrop-filter: blur(14px) saturate(1.4);
  border: 1px solid rgba(255,255,255,0.85);
  box-shadow: 0 8px 32px rgba(31,28,25,0.07),
              inset 0 1px 0 rgba(255,255,255,0.9),
              inset 0 -1px 0 rgba(255,255,255,0.3);
}
.rev-card__mark {
  font-family: 'Playfair Display', serif;
  font-size: 32px;
  line-height: 1;
  color: rgba(31,28,25,0.22);
  margin-bottom: 10px;
}
.rev-card__head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.rev-card__avatar {
  flex: 0 0 auto;
  width: 38px; height: 38px;
  border-radius: 999px;
  background: var(--gold);
  color: #1a1816;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-weight: 700;
  font-size: 14px;
}
.rev-card__who { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rev-card__name { font-family: 'Playfair Display', 'Times New Roman', serif; font-size: 14px; font-weight: 600; color: #1a1816; line-height: 1.2; }
.rev-card__src { font-size: 11px; color: #7a6e60; letter-spacing: .03em; text-decoration: none; line-height: 1.2; transition: color .2s var(--ease); }
.rev-card__src:hover { color: #c2562b; }
.rev-card__quote { font-size: 14.5px; line-height: 1.6; color: #3b342d; margin: 0; }

@keyframes revScrollUp   { 0% { transform: translateY(0); }        100% { transform: translateY(-50%); } }
@keyframes revScrollDown { 0% { transform: translateY(-50%); }     100% { transform: translateY(0); } }

@media (prefers-reduced-motion: reduce) {
  .rev-col__inner { animation: none !important; }
  .rev-card.is-clone { display: none; }
}

/* Below desktop: drop the auto-scroll, show a clean stacked list */
@media (max-width: 780px) {
  .rev-marquee { grid-template-columns: repeat(2, 1fr); max-height: none; overflow: visible; }
  .rev-marquee::before, .rev-marquee::after { display: none; }
  .rev-col { max-height: none; overflow: visible; }
  .rev-col__inner { animation: none !important; }
  .rev-card.is-clone { display: none; }
}
@media (max-width: 520px) {
  .rev-marquee { grid-template-columns: 1fr; }
}

/* ============================================================
   Section heads
   ============================================================ */
.section-head {
  text-align: left;
  margin-bottom: 64px;
  max-width: 780px;
  margin-left: 0;
  margin-right: auto;
}
.kicker {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 18px;
  /* Pill tag — same "tegn" used across the whole site */
  border: 1px solid currentColor;
  border-radius: 999px;
  padding: 7px 16px;
  line-height: 1;
  width: fit-content;
  max-width: 100%;
  align-self: flex-start;
}
.section-title {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(26px, 3.2vw, 42px);
  font-weight: 500;
  margin: 0 0 18px;
  letter-spacing: 0.02em;
}
.section-lead {
  font-size: clamp(15px, 1.2vw, 17px);
  color: var(--text-muted);
  max-width: 60ch;
  margin: 0;
  line-height: 1.6;
}

/* ============================================================
   Services — exclusive white & brown editorial layout
   ============================================================ */
.services {
  padding: 36px 0 90px;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(176,138,79,0.12) 0%, transparent 55%),
    #f5efe2;
  border-top: none;
  border-bottom: 1px solid rgba(176, 138, 79, 0.22);
  --on-cream-text: #1f1814;
  --on-cream-soft: #3a302a;
  --on-cream-muted: #7a6a55;
  --on-cream-line: #d6c69b;
}

/* Outer wrapper — fades softly out of the section instead of a hard white box */
.services-wrap {
  position: relative;
  background: linear-gradient(180deg, #f5efe2 0%, #fcf9f1 14%);
  border-radius: 22px 0 0 22px;
  padding: 32px 32px 32px;
  box-shadow: 0 24px 60px rgba(31, 24, 20, 0.07);
  border: none;
  margin-right: calc(-1 * (100vw - 100%) / 2);
}
@media (max-width: 720px) {
  .services-wrap { margin-right: -20px; }
}
.services-wrap .section-head { margin: 0 0 22px; max-width: none; }
.services-wrap .section-head .kicker { margin: 0 0 8px; display: inline-block; }
.services-wrap .section-head .section-title { margin: 0 0 10px; }
.services-wrap .section-head .section-lead { margin: 0; max-width: 70ch; }
.services .section-head { margin-bottom: 44px; }
.services .kicker { color: #c2562b; font-size: 11px; margin-bottom: 12px; }
.services .section-head {
  max-width: 100%;
  margin-bottom: 36px;
}
.services .section-title {
  color: var(--on-cream-text);
  font-size: clamp(26px, 3.2vw, 42px);   /* ~30% smaller — fits on one line */
  margin-bottom: 14px;
}
.services .section-title em { color: #b08a4f; }
.services .section-lead {
  color: var(--on-cream-soft);
  font-size: clamp(13px, 1vw, 14px);
  line-height: 1.55;
}

/* ============================================================
   Editorial services — portrait cards + flagship hierarchy
   ============================================================ */
.services__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px 22px;
  margin: 0;
  padding: 0;
}

.service-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: transparent;
  border: none;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
  transition: transform .5s var(--ease);
}
.service-card:hover { transform: translateY(-4px); }

.service-card__media {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  aspect-ratio: 3 / 4;
  background: #e9e0cf;
}
.service-card__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 52%, rgba(31,24,20,0.30) 100%);
  pointer-events: none;
}
.service-card__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1s var(--ease);
}
.service-card:hover .service-card__media img { transform: scale(1.04); }

.service-card__tag {
  position: absolute;
  top: 14px; left: 14px;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #1f1814;
  background: rgba(245,239,226,0.92);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  padding: 6px 12px;
  border-radius: 999px;
}

.service-card__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 9px;
  padding: 18px 2px 0;
  flex: 1;
}
.service-card__eyebrow {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #b08a4f;
}
.service-card__body h3 {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 23px;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.05;
  margin: 0;
  color: var(--on-cream-text);
}
.service-card__sense {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: var(--on-cream-soft);
  margin: 0;
  max-width: 44ch;
}

/* meta row: 60 min · klip · barbering · drink */
.service-card__meta {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 2px 0 0;
  padding: 0;
}
.service-card__meta li {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--on-cream-muted);
}
.service-card__meta li:not(:last-child)::after {
  content: '·';
  margin: 0 8px;
  color: rgba(176,138,79,0.65);
}

.service-card__foot {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  width: 100%;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid rgba(176,138,79,0.22);
}
.service-card__price {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--on-cream-muted);
}
.service-card__book {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: #b08a4f;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: color .3s var(--ease);
}
.service-card__book span { transition: transform .3s var(--ease); }
.service-card__book:hover { color: #c2562b; }
.service-card__book:hover span { transform: translateX(4px); }

/* ---- Flagship: wide hero card on top ---- */
.service-card--flagship {
  grid-column: 1 / -1;
  flex-direction: row;
  align-items: stretch;
  background: #fbf6ec;
  border: 1px solid rgba(176,138,79,0.22);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 18px 50px rgba(31,24,20,0.10);
  margin-bottom: 6px;
}
.service-card--flagship:hover { transform: translateY(-4px); }
.service-card--flagship .service-card__media {
  flex: 0 0 50%;
  border-radius: 0;
  aspect-ratio: auto;
}
.service-card--flagship .service-card__body {
  flex: 1;
  justify-content: center;
  gap: 11px;
  padding: 44px 48px;
}
.service-card--flagship .service-card__body h3 {
  font-size: clamp(30px, 3vw, 42px);
}
.service-card--flagship .service-card__sense {
  font-size: 15.5px;
  max-width: 48ch;
}
.service-card--flagship .service-card__foot { margin-top: 18px; padding-top: 18px; }
.service-card--flagship .service-card__price { font-size: 15px; }

@media (max-width: 920px) {
  .services__grid { grid-template-columns: repeat(2, 1fr); }
  .service-card__body h3 { font-size: 21px; }
}
@media (max-width: 720px) {
  .service-card--flagship { flex-direction: column; }
  .service-card--flagship .service-card__media { flex: none; width: 100%; aspect-ratio: 4 / 3; }
  .service-card--flagship .service-card__body { padding: 26px 24px 30px; }
}
@media (max-width: 560px) {
  .services-wrap { padding-right: 0; overflow: visible; }
  .services__grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 14px;
    padding-bottom: 20px;
    padding-right: 20px;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .services__grid::-webkit-scrollbar { display: none; }
  .service-card {
    min-width: 82vw;
    flex-shrink: 0;
    scroll-snap-align: start;
  }
  .service-card__media { aspect-ratio: 4 / 5; }
}

/* ============================================================
   Prices — interactive picker on warm cream backdrop
   (à la "Three packages for your wedding journey")
   ============================================================ */
.prices {
  padding: 120px 0;
  background: #f6f1ea;       /* ms-totalbyg --bg */
  border-top: 1px solid #d8cdbd;
  border-bottom: 1px solid #d8cdbd;
  overflow: hidden;
  --on-cream-text: #1a1816;     /* ms-totalbyg --ink */
  --on-cream-soft: #3b342d;     /* --ink-soft */
  --on-cream-muted: #7a6e60;    /* --muted */
  --on-cream-line: #d8cdbd;     /* --line */
  --on-cream-line-dashed: rgba(122, 110, 96, 0.32);
  --on-cream-card: #ffffff;     /* --paper */
  --ms-accent: #c2562b;         /* --accent (terracotta) */
  --ms-gold: #b08a4f;           /* --gold */
}
.prices__container { position: relative; }

.prices .kicker { color: var(--ms-accent); }
.prices .section-title { color: var(--on-cream-text); }
.prices .section-title em { color: var(--ms-gold); }
.prices .section-lead { color: var(--on-cream-soft); }

/* --- Tab switcher pill (dark pill on cream backdrop) --- */
.picker {
  position: relative;
  display: inline-flex;
  margin: 0 auto 40px;
  padding: 6px;
  background: #1f1c19;          /* ms-totalbyg --dark */
  border: 1px solid #1f1c19;
  border-radius: 999px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), 0 18px 44px rgba(31, 28, 25, 0.3);
  left: 50%;
  transform: translateX(-50%);
}
.picker__indicator {
  position: absolute;
  top: 6px;
  bottom: 6px;
  background: linear-gradient(180deg, #d6a978 0%, var(--ms-gold) 60%, #8e6d3f 100%);
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(184, 147, 90, 0.5), inset 0 1px 0 rgba(255,255,255,0.35);
  transition: left .45s var(--ease), width .45s var(--ease);
  z-index: 0;
  /* set via JS */
  left: 6px;
  width: 0;
}
.picker__tab {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 22px;
  background: transparent;
  border: none;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-muted);
  cursor: pointer;
  border-radius: 999px;
  transition: color .35s var(--ease);
  white-space: nowrap;
}
.picker__tab:hover { color: var(--text-soft); }
.picker__tab.is-active {
  color: #1f1c19;
}
.picker__badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  background: var(--ms-accent);
  color: #fff;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  border-radius: 999px;
  transition: all .3s var(--ease);
}
.picker__tab.is-active .picker__badge {
  background: #1f1c19;
  color: var(--ms-gold);
}

/* --- Stage with arrows --- */
.picker-stage {
  position: relative;
  width: 100%;
  margin: 0 auto;
}
.picker-stage__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1f1c19;
  border: 1px solid #1f1c19;
  border-radius: 50%;
  color: #f6f1ea;
  cursor: pointer;
  transition: all .25s var(--ease);
  box-shadow: 0 8px 22px rgba(31, 28, 25, 0.25);
}
.picker-stage__arrow:hover {
  background: var(--ms-accent);
  border-color: var(--ms-accent);
  color: #fff;
}
.picker-stage__arrow--prev { left: -26px; }
.picker-stage__arrow--next { right: -26px; }
@media (min-width: 1280px) {
  .picker-stage__arrow--prev { left: -68px; }
  .picker-stage__arrow--next { right: -68px; }
}

/* --- Card --- */
.picker-card {
  position: relative;
  background: var(--on-cream-card);
  border: 1px solid var(--on-cream-line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  min-height: 540px;
  box-shadow:
    0 30px 80px rgba(31, 28, 25, 0.18),
    0 1px 0 rgba(255, 255, 255, 0.6) inset;
}

.picker-panel {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  opacity: 0;
  pointer-events: none;
  transition: opacity .55s var(--ease);
}
.picker-panel.is-active {
  opacity: 1;
  pointer-events: auto;
  position: relative;
}

.picker-panel__media {
  position: relative;
  overflow: hidden;
  background: #2A2118;
  min-height: 540px;
}
.picker-panel__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 1.4s var(--ease);
}
.picker-panel.is-active .picker-panel__media img {
  transform: scale(1.04);
}
.picker-panel__media-tint {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, transparent 55%, rgba(255, 255, 255, 0.20) 100%),
    linear-gradient(180deg, rgba(31,28,25,0.10) 0%, rgba(31,28,25,0.30) 100%);
  pointer-events: none;
}

.picker-panel__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 50px 56px;
  background: var(--on-cream-card);
  color: var(--on-cream-text);
}
.picker-panel__kicker {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--ms-accent);
  margin-bottom: 14px;
}
.picker-panel__title {
  font-size: clamp(36px, 4vw, 52px);
  margin: 0 0 14px;
  letter-spacing: -0.02em;
  color: var(--on-cream-text);
}
.picker-panel__title em { color: var(--ms-gold); }
.picker-panel__lead {
  font-size: 15px;
  line-height: 1.65;
  color: var(--on-cream-soft);
  margin: 0 0 28px;
  max-width: 44ch;
}

.picker-list {
  list-style: none;
  margin: 0 0 32px;
  padding: 0;
  border-top: 1px solid var(--on-cream-line);
}
.picker-list li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 13px 0;
  border-bottom: 1px dashed var(--on-cream-line-dashed);
  font-size: 15px;
  color: var(--on-cream-soft);
  font-weight: 500;
}
.picker-list li span:last-child {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 22px;
  font-weight: 500;
  color: var(--ms-gold);
  white-space: nowrap;
  letter-spacing: 0.01em;
}

.picker-panel__cta {
  align-self: flex-start;
  background: var(--ms-accent);
  color: #fff;
  box-shadow: 0 8px 22px rgba(194, 86, 43, 0.28);
}
.picker-panel__cta:hover {
  background: #9c4220;
  box-shadow: 0 14px 32px rgba(194, 86, 43, 0.4);
}

.prices__note {
  text-align: center;
  margin-top: 36px;
  font-size: 13px;
  color: var(--on-cream-muted);
  font-style: italic;
}

/* --- Mobile --- */
@media (max-width: 880px) {
  .picker {
    width: calc(100% - 16px);
    margin: 0 8px 32px;
    left: 0;
    transform: none;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
    border-radius: 999px;
    flex-wrap: nowrap;
    justify-content: flex-start;
  }
  .picker::-webkit-scrollbar { display: none; }
  .picker__tab { padding: 11px 16px; font-size: 11px; letter-spacing: 0.12em; flex-shrink: 0; }
  .picker__badge { font-size: 9px; padding: 2px 6px; }

  .picker-card { min-height: auto; border-radius: var(--radius); }
  .picker-panel {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .picker-panel__media {
    min-height: 220px;
    aspect-ratio: 16/10;
  }
  .picker-panel__media-tint {
    background: linear-gradient(180deg, transparent 30%, rgba(26,43,61,0.55) 100%);
  }
  .picker-panel__body { padding: 32px 26px 36px; }
  .picker-panel__title { font-size: 32px; }

  .picker-stage__arrow { display: none; }
}

/* ============================================================
   Gallery — horizontal carousel, slide right for more
   First image aligns with logo · last extends to viewport edge
   ============================================================ */
.gallery {
  padding: clamp(60px, 7vw, 100px) 0;
  background: #3a2f26;
}
.gallery .container {
  width: 100%;
  max-width: 100%;
}
.gallery .section-head {
  width: 90%;
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
.gallery .kicker { color: #c9a06a; }
.gallery .section-title { color: #f4ecdd; }
.gallery .section-title em { color: #c9a06a; }

.gallery__grid {
  display: flex;
  gap: 3px;
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  padding: 0;                 /* full-bleed: images span edge to edge */
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  cursor: grab;
}
.gallery__grid:active { cursor: grabbing; }
.gallery__grid::-webkit-scrollbar { display: none; }

/* ============================================================
   Photo grid — 3-col full-bleed (galleri.html)
   ============================================================ */
.photo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3px;
  width: 100%;
}
.photo-grid figure {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  background: #2e2620;
}
.photo-grid figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.photo-grid figure:hover img { transform: scale(1.04); }
.photo-grid__hidden { display: none; }
.photo-grid__more {
  display: flex;
  justify-content: center;
  padding: 32px 0 0;
}
.photo-grid__btn {
  background: none;
  border: 1px solid rgba(201,160,106,0.6);
  color: #c9a06a;
  font-family: 'Montserrat', sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 13px 32px;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.photo-grid__btn:hover { background: rgba(201,160,106,0.1); }
.photo-grid__more--hidden { display: none; }

.gallery__item {
  margin: 0;
  border-radius: 6px;
  overflow: hidden;
  position: relative;
  cursor: pointer;
  background: #2e2620;
  outline: none;
  transform: none !important;
  flex: 0 0 auto;
  width: 320px;
  height: 440px;
  scroll-snap-align: start;
  isolation: isolate;
}
.gallery__item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: center center;
  transition: transform 1.2s var(--ease);
  display: block;
  will-change: transform;
}
.gallery__item:hover img { transform: scale(1.05); }

@media (max-width: 880px) {
  .gallery { padding: 60px 0 60px; }
  .gallery__item { width: 240px; height: 340px; }
  .gallery__grid { padding-left: 20px; }
}

/* ============================================================
   About
   ============================================================ */
.about {
  padding: 120px 0;
  background: var(--bg-2);
  border-top: 1px solid var(--line);
}
.about__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.about__copy h2 { margin-bottom: 28px; }
.about__copy p {
  font-size: 17px;
  line-height: 1.7;
  color: var(--text-soft);
  margin: 0 0 18px;
}
.about__stats {
  display: flex;
  justify-content: space-between;
  gap: 0;
  margin: 36px 0;
  padding: 28px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.about__stats > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.about__stats strong {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 38px;
  font-weight: 600;
  color: var(--gold);
  line-height: 1;
}
.about__stats span {
  font-size: 13px;
  color: var(--text-muted);
  letter-spacing: 0.02em;
}
.about__image {
  margin: 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
  position: relative;
  aspect-ratio: 4/5;
}
.about__image img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.about__image figcaption {
  position: absolute;
  bottom: 24px; left: 24px;
  background: rgba(21,17,13,0.7);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--text);
  padding: 10px 18px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
}

@media (max-width: 880px) {
  .about__inner { grid-template-columns: 1fr; gap: 48px; }
  .about__image { aspect-ratio: 3/4; }
}

/* ============================================================
   Find os
   ============================================================ */
.find {
  padding: 120px 0;
  background: var(--bg);
  border-top: 1px solid var(--line);
}
.find__inner {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 60px;
  align-items: stretch;
}
.find__info h2 { margin-bottom: 32px; }
.find__hours {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px 26px;
  margin-bottom: 28px;
}
.find__hours h4 {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 16px;
}
.find__hours ul {
  list-style: none;
  margin: 0; padding: 0;
}
.find__hours li {
  display: flex;
  justify-content: space-between;
  padding: 7px 0;
  font-size: 14px;
  color: var(--text-soft);
  border-bottom: 1px dashed var(--line);
}
.find__hours li:last-child { border-bottom: none; }

.find__contact {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 28px;
}
.find__phone {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 32px;
  font-weight: 500;
  color: var(--text);
  letter-spacing: 0.02em;
}
.find__phone svg { color: var(--gold); }
.find__phone:hover { color: var(--gold); }
.find__email {
  font-size: 15px;
  color: var(--text-muted);
}
.find__email:hover { color: var(--gold); }

.find__map {
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--bg-2);
  min-height: 480px;
  border: 1px solid var(--line);
}
.find__map iframe {
  width: 100%; height: 100%;
  min-height: 480px;
  border: 0;
  filter: grayscale(0.3) contrast(1.05);
}

@media (max-width: 880px) {
  .find__inner { grid-template-columns: 1fr; gap: 40px; }
  .find__map { min-height: 360px; }
  .find__map iframe { min-height: 360px; }
}

/* ============================================================
   Om Salon KBH page — two-card layout on cream background
   ============================================================ */
.about-page {
  background:
    radial-gradient(ellipse at 50% 0%, rgba(216,178,122,0.12) 0%, transparent 55%),
    #f5efe2;
  padding: clamp(80px, 9vw, 120px) 0;
  color: #1d150e;
}
.about-page--alt { background: #ebe2cd; }
.about-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: clamp(20px, 2.5vw, 36px);
  align-items: stretch;
}
.about-card {
  background: #fcf9f1;
  border: 1px solid rgba(176, 138, 79, 0.25);
  border-radius: 22px;
  padding: clamp(32px, 4vw, 56px);
  box-shadow: 0 1px 2px rgba(31, 24, 20, 0.05), 0 14px 40px rgba(31, 24, 20, 0.08);
  position: relative;
  overflow: hidden;
}
.about-card--media {
  padding: 0;
  background: #1d150e;
  min-height: 380px;
}
.about-card--media img,
.about-card--media video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.about-card__kicker {
  color: #c2562b;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  margin: 0 0 18px;
  display: inline-block;
}
.about-card__title {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: clamp(26px, 3.2vw, 42px);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.015em;
  margin: 0 0 22px;
  color: #1d150e;
}
.about-card__title em { color: #b08a4f; font-style: italic; font-weight: 500; }
.about-card__lead {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-style: italic;
  font-size: clamp(16px, 1.4vw, 19px);
  line-height: 1.45;
  color: #b08a4f;
  margin: 0 0 22px;
  font-weight: 500;
}
.about-card__lead strong { font-weight: 500; }
.about-card p {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 14.5px;
  line-height: 1.7;
  color: #3d3022;
  margin: 0 0 16px;
  max-width: 60ch;
}
.about-card p:last-child { margin-bottom: 0; }

/* Numbered list — right card */
.about-list {
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.about-list li {
  display: flex;
  gap: 18px;
  padding: 18px 0;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 16px;
  font-weight: 600;
  color: #1d150e;
  border-bottom: 1px solid rgba(176, 138, 79, 0.22);
  align-items: baseline;
}
.about-list li:last-child { border-bottom: none; }
.about-list .num {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-weight: 500;
  color: #b08a4f;
  font-size: 18px;
  min-width: 38px;
}
.about-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 26px;
  border-radius: 999px;
  background: #1d150e;
  color: #fcf9f1;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.005em;
  text-decoration: none;
  transition: all 220ms ease;
}
.about-card__cta:hover { background: #b08a4f; color: #1a1208; transform: translateY(-1px); }

/* Quote + tag (used in academy/social engagement cards) */
.about-quote {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-style: italic;
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.4;
  color: #1d150e;
  margin: 22px 0 18px;
  padding: 12px 0 12px 20px;
  border-left: 3px solid #b08a4f;
  max-width: 50ch;
}
.about-tag {
  display: inline-block;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #b08a4f;
  padding: 8px 16px;
  border: 1px solid rgba(176, 138, 79, 0.45);
  border-radius: 999px;
}

@media (max-width: 880px) {
  .about-grid { grid-template-columns: 1fr; }
  .about-card--media { min-height: 320px; aspect-ratio: 4 / 5; }
}

/* Legacy credential card classes (unused hero rules removed — see .about-hero near top) */
.about-hero__credentials {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 28px;
  background: #fcf9f1;
  border-radius: 18px;
  border: 1px solid rgba(176, 138, 79, 0.25);
  box-shadow: 0 1px 2px rgba(31, 24, 20, 0.05), 0 14px 40px rgba(31, 24, 20, 0.08);
}
.cred { display: flex; flex-direction: column; gap: 4px; }
.cred strong {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 22px;
  font-weight: 500;
  color: #b08a4f;
  line-height: 1.1;
}
.cred span {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12.5px;
  color: #7a6b54;
  letter-spacing: 0.01em;
}
.cred--quote {
  padding-top: 18px;
  border-top: 1px solid rgba(176, 138, 79, 0.28);
}
.cred--quote p {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-style: italic;
  font-size: 16px;
  line-height: 1.4;
  color: #3d3022;
  margin: 0 0 8px;
}
.cred--quote span { font-style: normal; }

/* About split sections (text + media) */
.about-split {
  padding: clamp(60px, 8vw, 110px) 0;
  background: #fcf9f1;
  color: #1d150e;
  border-top: 1px solid rgba(184, 147, 90, 0.18);
}
.about-split--reverse { background: #f5efe2; }
.about-split__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}
.about-split--reverse .about-split__inner > .about-split__media { order: 0; }
.about-split--reverse .about-split__inner > .about-split__text  { order: 1; }
.about-split__text .kicker {
  color: #c2562b;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  margin: 0 0 18px;
  display: inline-block;
}
.about-split__title {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: clamp(32px, 4vw, 54px);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.015em;
  margin: 0 0 22px;
  color: #1d150e;
}
.about-split__title em { color: #b08a4f; font-style: italic; font-weight: 500; }
.about-split__text p {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 15px;
  line-height: 1.65;
  color: #3d3022;
  margin: 0 0 16px;
  max-width: 56ch;
}
.about-quote {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-style: italic;
  font-size: clamp(20px, 1.8vw, 26px);
  line-height: 1.35;
  color: #1d150e;
  margin: 24px 0 22px;
  padding: 14px 0 14px 22px;
  border-left: 3px solid #b08a4f;
  max-width: 50ch;
}
.about-tag {
  display: inline-block;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #b08a4f;
  padding: 8px 16px;
  border: 1px solid rgba(176, 138, 79, 0.45);
  border-radius: 999px;
}
.about-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 14px 26px;
  border-radius: 999px;
  background: #b08a4f;
  color: #1a1208;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 0.005em;
  transition: all 220ms ease;
}
.about-cta:hover { background: #cba66d; transform: translateY(-1px); }

.about-split__media {
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: #1d150e;
  box-shadow: 0 14px 40px rgba(31, 24, 20, 0.16);
}
.about-split__media img,
.about-split__media video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 880px) {
  .about-hero__inner { grid-template-columns: 1fr; gap: 36px; }
  .about-split__inner { grid-template-columns: 1fr; gap: 32px; }
  .about-split--reverse .about-split__inner > .about-split__media { order: 0; }
  .about-split--reverse .about-split__inner > .about-split__text  { order: 1; }
}

/* ============================================================
   Kontakt section — split: text + form card over a background photo
   ============================================================ */
.contact {
  position: relative;
  padding: clamp(120px, 12vw, 180px) 0 clamp(80px, 10vw, 140px);
  color: #fff;
  overflow: hidden;
  min-height: 70vh;
}
.contact__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.contact__bg img,
.contact__bg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.contact__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, rgba(15,25,35,0.78) 0%, rgba(15,25,35,0.55) 50%, rgba(15,25,35,0.30) 100%);
}
.contact__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.contact__left { max-width: 540px; }
.contact__title {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: clamp(32px, 4vw, 56px);
  font-weight: 500;
  line-height: 1.05;
  margin: 0 0 22px;
  color: #fff;
}
.contact__title em { color: #cba66d; font-style: italic; font-weight: 500; }
.contact__lead {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 16px;
  line-height: 1.55;
  color: rgba(255,255,255,0.82);
  margin: 0 0 32px;
  max-width: 50ch;
}
.contact__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.contact__btn {
  display: inline-flex;
  align-items: center;
  padding: 12px 22px;
  border-radius: 999px;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  letter-spacing: 0.005em;
  transition: all 220ms ease;
}
.contact__btn--ghost {
  background: rgba(255,255,255,0.10);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.25);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.contact__btn--ghost:hover {
  background: rgba(255,255,255,0.18);
  border-color: rgba(255,255,255,0.45);
}
.contact__btn--gold {
  background: #cba66d;
  color: #1a1208;
  box-shadow: 0 6px 18px rgba(216, 178, 122, 0.30);
}
.contact__btn--gold:hover {
  background: #c8a16a;
  transform: translateY(-1px);
}

/* Frosted glass form card */
.contact__kicker {
  color: #cba66d;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.22em; text-transform: uppercase;
  display: inline-block; margin: 0 0 18px;
}
.contact__address {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 14.5px;
  line-height: 1.6;
  color: rgba(255,255,255,0.72);
  margin: 28px 0 0;
  max-width: 46ch;
}
.contact__maplink {
  color: #f5efe5;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(203,166,109,0.6);
  transition: color .2s ease, border-color .2s ease;
}
.contact__maplink:hover { color: #cba66d; border-color: #cba66d; }
/* Åbningstider panel (replaces form) */
.contact__hours {
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 22px;
  padding: 18px 36px;
  backdrop-filter: blur(22px) saturate(120%);
  -webkit-backdrop-filter: blur(22px) saturate(120%);
  box-shadow: 0 18px 50px rgba(0,0,0,0.30);
}
.hours-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 0;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}
.hours-row:last-child { border-bottom: none; }
.hours-row__day {
  display: flex; flex-direction: column; gap: 2px;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 15px; font-weight: 600;
  letter-spacing: 0.02em;
  color: #f5efe5;
}
.hours-row__day small {
  font-size: 11px; font-weight: 400;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: rgba(245,239,229,0.5);
}
.hours-row__time {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 19px;
  color: #f5efe5;
  white-space: nowrap;
}
.hours-row__time--closed { font-style: italic; color: #cba66d; }
@media (max-width: 880px) {
  .contact__hours { padding: 12px 28px; }
}

.contact__form {
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 22px;
  padding: 38px 36px 30px;
  backdrop-filter: blur(22px) saturate(120%);
  -webkit-backdrop-filter: blur(22px) saturate(120%);
  box-shadow: 0 18px 50px rgba(0,0,0,0.30);
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 560px;
  margin-left: auto;
  width: 100%;
}
.contact__form h3 {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(22px, 2.2vw, 30px);
  font-weight: 500;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 8px;
}
.contact__form h3 em { color: #cba66d; font-style: italic; font-weight: 500; }
.contact__field input,
.contact__field textarea {
  width: 100%;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.20);
  border-radius: 12px;
  padding: 14px 16px;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 14px;
  color: #fff;
  outline: none;
  transition: border-color 180ms ease, background 180ms ease;
}
.contact__field input::placeholder,
.contact__field textarea::placeholder { color: rgba(255,255,255,0.55); }
.contact__field input:focus,
.contact__field textarea:focus {
  border-color: rgba(216, 178, 122, 0.65);
  background: rgba(255,255,255,0.10);
}
.contact__field textarea { resize: vertical; min-height: 90px; }
.contact__submit {
  margin-top: 6px;
  padding: 15px 20px;
  border-radius: 12px;
  border: none;
  background: #ffffff;
  color: #0F1923;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: all 200ms ease;
}
.contact__submit:hover {
  background: #cba66d;
  color: #1a1208;
}
.contact__note {
  margin: 4px 0 0;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  line-height: 1.45;
  color: rgba(255,255,255,0.65);
}
.contact__note strong { color: #fff; font-weight: 700; }

@media (max-width: 900px) {
  .contact__inner { grid-template-columns: 1fr; gap: 36px; }
  .contact__form { margin-left: 0; padding: 28px 24px 22px; }
}

/* ============================================================
   Final CTA
   ============================================================ */
.cta-final {
  position: relative;
  padding: clamp(80px, 9vw, 120px) 0;
  overflow: hidden;
  color: #fff;
  border-top: none;
}
.cta-final__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.cta-final__bg img,
.cta-final__bg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.cta-final__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15,25,35,0.50) 0%, rgba(15,25,35,0.40) 100%);
}
.cta-final__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;       /* center the frosted card horizontally */
  gap: 32px;
  flex-wrap: wrap;
  max-width: 1100px;
  margin: 0 auto;
  padding: clamp(32px, 4vw, 48px) clamp(28px, 4vw, 56px);
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.20);
  border-radius: 22px;
  backdrop-filter: blur(26px) saturate(130%);
  -webkit-backdrop-filter: blur(26px) saturate(130%);
  box-shadow: 0 20px 60px rgba(0,0,0,0.30);
  text-align: center;
}
.cta-final__text {
  flex: 1 1 auto;
  min-width: 280px;
  max-width: 640px;
  text-align: left;
}
.cta-final h2 {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(28px, 3.4vw, 44px);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.015em;
  margin: 0 0 8px;
  color: #fff;
}
.cta-final h2 em { color: #cba66d; font-style: italic; font-weight: 500; }
.cta-final p {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(14px, 1vw, 16px);
  color: rgba(255,255,255,0.82);
  margin: 0;
}
.cta-final__cta {
  flex: 0 0 auto;
}
@media (max-width: 720px) {
  .cta-final__inner { flex-direction: column; align-items: stretch; gap: 24px; }
  .cta-final__text { text-align: center; max-width: none; }
  .cta-final__cta { align-self: center; }
}

/* ============================================================
   Footer
   ============================================================ */
.footer {
  background: #2a221b;
  padding: clamp(56px, 6vw, 84px) 0 0;
  border-top: none;
  color: rgba(240, 231, 216, 0.7);
}
.footer__crest {
  display: flex;
  align-items: center;
  gap: clamp(20px, 3vw, 40px);
  margin: 0 0 clamp(40px, 5vw, 64px);
}
.footer__rule { flex: 1 1 auto; height: 1px; background: rgba(240, 231, 216, 0.18); }
.footer__wordmark {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(24px, 2.4vw, 34px);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #f4ecdd;
  line-height: 1;
  white-space: nowrap;
}
.footer__crest-logo {
  width: clamp(120px, 13vw, 168px);
  height: auto;
  flex: 0 0 auto;
}
.footer__grid {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1fr 1fr;
  gap: clamp(32px, 4vw, 64px);
  align-items: start;
  padding-bottom: 56px;
}
.footer__book { grid-column: 1; }
.footer__book-link {
  background: none;
  border: none;
  cursor: pointer;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(34px, 4.4vw, 60px);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #f4ecdd;
  line-height: 1.05;
  padding: 0;
  text-align: left;
  transition: color .2s ease;
}
.footer__book-link:hover { color: #c9a06a; }
.footer__book-text {
  margin: 18px 0 0;
  max-width: 34ch;
  font-family: 'ClashDisplay-Variable', 'Clash Display', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  color: rgba(244, 236, 221, 0.7);
}

/* ============================================================
   Book Nu page — on-page version of the booking panel
   ============================================================ */
.book-page {
  background: var(--bg);
  padding: clamp(48px, 7vw, 90px) 0 clamp(60px, 8vw, 110px);
}
.book-page__inner {
  width: 90%;
  max-width: 560px;
  margin: 0 auto;
}
.book-page .kicker {
  display: block;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 14px;
}
.book-page__title {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(30px, 3.4vw, 44px);
  font-weight: 500;
  color: var(--text);
  line-height: 1.08;
  margin: 0 0 12px;
}
.book-page__lead {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(15px, 1.1vw, 17px);
  line-height: 1.6;
  color: var(--text-soft);
  margin: 0 0 30px;
}
.book-page .booking__option { color: var(--text); text-decoration: none; }
.book-page .booking__option:hover { border-color: var(--gold); }
.book-page .booking__option--primary,
.book-page .booking__option--primary:hover { color: #1a1208; }
.book-page .booking__option small { color: var(--text-muted); font-size: 13px; }
.book-page .booking__option--primary small { color: rgba(26,18,8,0.7); }
.book-page .booking__icon { display: inline-flex; color: inherit; }
.book-page__sub {
  margin: 40px 0 16px;
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(22px, 2.4vw, 30px);
  color: var(--text);
}
.book-page__sub-lead { color: var(--text-soft); font-size: 14px; margin: 0 0 22px; line-height: 1.6; }
.exp-intro-lead {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 15px;
  color: #5f5347;
  margin: 8px 0 4px;
}
.exp-card__media[data-open-booking] { cursor: pointer; }

/* ============================================================
   Book Nu — booking methods as one horizontal strip (trust-style)
   ============================================================ */
.book-strip {
  background: #1f1814;
  border-top: 1px solid rgba(176, 138, 79, 0.45);
  border-bottom: 1px solid rgba(176, 138, 79, 0.25);
  padding-top: 86px; /* clear the fixed nav now that the hero is gone */
}
.book-strip__inner {
  width: 90%;
  max-width: var(--container);
  margin: 0 auto;
  display: flex;
  align-items: stretch;
}
.book-strip__item {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 22px clamp(14px, 1.8vw, 26px);
  color: var(--text);
  text-decoration: none;
  transition: background .25s var(--ease);
}
.book-strip__item + .book-strip__item { border-left: 1px solid rgba(176, 138, 79, 0.18); }
.book-strip__item:hover { background: rgba(176, 138, 79, 0.08); }
.book-strip__item--primary { background: var(--gold); color: #1a1208; }
.book-strip__item--primary:hover { background: var(--gold); }
.book-strip__icon { color: var(--gold); display: inline-flex; flex-shrink: 0; }
.book-strip__item--primary .book-strip__icon { color: #1a1208; }
.book-strip__text strong { display: block; font-size: 15px; font-weight: 600; line-height: 1.2; }
.book-strip__text small { display: block; font-size: 12.5px; color: var(--text-muted); margin-top: 2px; }
.book-strip__item--primary .book-strip__text small { color: rgba(26, 18, 8, 0.72); }
.book-strip__status {
  text-align: center;
  padding: 14px;
  background: #1a1410;
  color: var(--text-soft);
  font-size: 13px;
  border-top: 1px solid rgba(176, 138, 79, 0.12);
}
.book-strip__status strong { color: var(--gold); }
.book-strip--hours .book-strip__status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  flex-wrap: wrap;
  font-size: 14px;
}
.book-strip__clock { color: var(--gold); flex-shrink: 0; }
.book-strip__sep { color: var(--text-muted); }

/* Planway booking embedded inline */
.book-embed { background: #f5efe2; padding: clamp(40px, 6vw, 80px) 0; }
.book-embed__frame {
  border: 1px solid rgba(176, 138, 79, 0.22);
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1px 2px rgba(31, 24, 20, 0.04), 0 16px 44px rgba(31, 24, 20, 0.08);
}
.book-embed__frame iframe { width: 100%; height: 880px; border: 0; display: block; }
@media (max-width: 640px) { .book-embed__frame iframe { height: 1050px; } }

@media (max-width: 900px) {
  .book-strip__inner { flex-wrap: wrap; }
  .book-strip__item { flex: 1 1 50%; }
  .book-strip__item + .book-strip__item { border-left: none; }
  .book-strip__item:nth-child(even) { border-left: 1px solid rgba(176, 138, 79, 0.18); }
  .book-strip__item:nth-child(n+3) { border-top: 1px solid rgba(176, 138, 79, 0.12); }
}
@media (max-width: 540px) {
  .book-strip__item { flex: 1 1 100%; border-left: none !important; border-top: 1px solid rgba(176, 138, 79, 0.12); }
}

/* ============================================================
   Book Nu — full treatment grid (no carousel), live-site card style
   ============================================================ */
.book-treatments { background: #f5efe2; padding: clamp(48px, 7vw, 90px) 0; }
.book-treatments__head { text-align: center; margin: 0 0 clamp(32px, 4vw, 52px); }
.book-treatments__head .kicker { color: #c2562b; display: inline-block; margin: 0 0 10px; }
.book-treatments__head h2 {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(30px, 3.4vw, 46px);
  font-weight: 500;
  color: #1f1814;
  margin: 0 0 10px;
}
.book-treatments__head p { font-family: 'Playfair Display', 'Times New Roman', serif; font-size: 15px; color: #6b5e50; margin: 0; }
.book-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 1.8vw, 26px);
}
.book-card {
  background: #fff;
  border: 1px solid rgba(176, 138, 79, 0.18);
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 1px 2px rgba(31, 24, 20, 0.04), 0 12px 32px rgba(31, 24, 20, 0.06);
}
.book-card__media { aspect-ratio: 16 / 11; overflow: hidden; cursor: pointer; background: #2e2620; }
.book-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.book-card:hover .book-card__media img { transform: scale(1.04); }
.book-card__body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.book-card__title {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: 19px;
  font-weight: 500;
  color: #1f1814;
  margin: 0 0 8px;
  line-height: 1.2;
}
.book-card__min { display: flex; align-items: center; gap: 6px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #9a8c78; }
.book-card__min svg { width: 13px; height: 13px; color: #b08a4f; flex-shrink: 0; }
.book-card__foot {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid rgba(176, 138, 79, 0.22);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}
.book-card__price-label { display: block; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: #9a8c78; margin-bottom: 3px; }
.book-card__price { font-family: 'Playfair Display', 'Times New Roman', serif; font-size: 23px; color: #1f1814; line-height: 1; }
.book-card__btn {
  background: #1f1814;
  color: #f5efe2;
  border: none;
  border-radius: 8px;
  padding: 11px 20px;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s var(--ease);
  white-space: nowrap;
}
.book-card__btn:hover { background: #b08a4f; }
@media (max-width: 900px) { .book-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .book-grid { grid-template-columns: 1fr; } }

/* Editorial treatment grid (Image #19 exp-card style, all cards consistent) */
.book-editorial-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(30px, 3vw, 52px);
}
.book-editorial-grid .exp-card { flex: initial; min-width: 0; width: auto; }
.book-treatments .exp-card__title { color: #1f1814; font-size: clamp(19px, 1.7vw, 24px); }
.book-treatments .exp-card__desc { color: #5f5347; margin-bottom: 14px; }
/* No big auto-gap between description and meta line */
.book-treatments .exp-card__meta { margin-top: 0; padding-top: 14px; }
.book-treatments .exp-card__meta { color: #6b5e50; border-top-color: rgba(176, 138, 79, 0.28); }
.book-treatments .exp-card__meta li:not(:last-child)::after { color: rgba(176, 138, 79, 0.5); }
.book-treatments .exp-card__foot { border-top-color: rgba(176, 138, 79, 0.28); }
.book-treatments .exp-card__price { color: #1f1814; }
.book-treatments .exp-card__book { color: #1f1814; border-bottom-color: rgba(31, 24, 20, 0.4); }
.book-treatments .exp-card__book:hover { color: #b08a4f; border-color: #b08a4f; }
@media (max-width: 900px) { .book-editorial-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) {
  /* Full-width container so the cards control their own edge spacing */
  .book-treatments .container { width: 100%; max-width: none; margin: 0; padding-left: 12px; padding-right: 12px; }
  .book-editorial-grid { grid-template-columns: repeat(2, 1fr); gap: 5px 14px; }

  /* Each treatment in its own white card with soft shadow + rounded corners */
  .book-treatments .exp-card {
    background: #fff;
    border-radius: 22px;
    border: 1px solid rgba(31, 24, 20, 0.06);
    box-shadow: 0 6px 22px rgba(31, 24, 20, 0.10);
    overflow: hidden;
  }
  /* Image sits flush at the top; card's overflow rounds the top corners */
  .book-treatments .exp-card__media { margin-bottom: 0; }

  /* Content gets padding inside the box */
  .book-treatments .exp-card__title,
  .book-treatments .exp-card__desc,
  .book-treatments .exp-card__meta,
  .book-treatments .exp-card__foot { padding-left: 12px; padding-right: 12px; }
  .book-treatments .exp-card__title { font-size: 13.5px; letter-spacing: 0.02em; margin: 12px 0 7px; }
  .book-treatments .exp-card__desc { font-size: 10.5px; line-height: 1.45; margin-bottom: 12px; max-width: none; padding-left: 15px; padding-right: 15px; }
  .book-treatments .exp-card__meta { gap: 6px; padding-top: 12px; font-size: 9.5px; letter-spacing: 0.08em; }
  .book-treatments .exp-card__meta li:not(:last-child)::after { margin-left: 6px; }
  .book-treatments .exp-card__foot { padding-top: 12px; padding-bottom: 14px; }
  .book-treatments .exp-card__price { font-size: 18px; }
  .book-treatments .exp-card__book { font-size: 10px; letter-spacing: 0.1em; padding-bottom: 4px; }
}

/* ============================================================
   Inspiration — Grooming Guides cards
   ============================================================ */
/* Featured article hero */
.insight-featured {
  position: relative;
  display: block;
  height: 90vh;
  min-height: 520px;
  overflow: hidden;
  text-decoration: none;
}
.insight-featured__bg { position: absolute; inset: 0; }
.insight-featured__bg img { width: 100%; height: 100%; object-fit: cover; filter: sepia(60%) brightness(0.55); transition: transform 8s ease; }
.insight-featured:hover .insight-featured__bg img { transform: scale(1.03); }
.insight-featured__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,8,5,0.2) 0%, rgba(10,8,5,0.65) 70%, rgba(10,8,5,0.9) 100%);
}
.insight-featured__inner {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: clamp(32px, 6vw, 80px);
  color: #fff;
}
.insight-featured__cat {
  display: inline-block;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.5);
  border-radius: 999px;
  padding: 6px 14px;
  margin-bottom: 24px;
  backdrop-filter: blur(6px);
}
.insight-featured__title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(32px, 5vw, 72px);
  font-weight: 500;
  line-height: 1.1;
  color: #fff;
  margin: 0 0 28px;
  max-width: 18ch;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.insight-featured__meta {
  display: flex;
  gap: 28px;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 13px;
  color: rgba(255,255,255,0.65);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Inspiration / Blog — interfilm blog stil */
.insights { background: #f5f5f4; padding: clamp(48px, 7vw, 90px) 0; }
.book-treatments__head { margin: 0 0 clamp(32px, 5vw, 56px); }
.book-treatments__head h2 { font-family: 'Montserrat', system-ui, sans-serif; font-size: clamp(22px, 2.4vw, 30px); font-weight: 700; color: #1a1410; }
.insights__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 2vw, 28px);
}
.insight-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 4px 16px rgba(0,0,0,0.04);
  transition: box-shadow .25s ease, transform .25s ease;
}
.insight-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,0.10); transform: translateY(-2px); }
.insight-card__media { aspect-ratio: 4 / 3; overflow: hidden; background: #e8e2da; flex-shrink: 0; }
.insight-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.insight-card:hover .insight-card__media img { transform: scale(1.04); }
.insight-card__body { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.insight-card__meta {
  align-self: flex-start;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #4a4a4a;
  background: none;
  border: 1px solid #d0ccc7;
  border-radius: 999px;
  padding: 5px 12px;
  line-height: 1;
  margin-bottom: 14px;
  letter-spacing: 0.02em;
  text-transform: none;
}
.insight-card__title {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #1a1410;
  line-height: 1.3;
  margin: 0 0 10px;
}
.insight-card__excerpt { font-family: 'Montserrat', system-ui, sans-serif; font-size: 13.5px; line-height: 1.65; color: #6b6660; margin: 0 0 16px; }
.insight-card__link {
  margin-top: auto;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #999390;
}
@media (max-width: 900px) { .insights__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .insights__grid { grid-template-columns: 1fr; } }
.footer__col h5 {
  font-family: 'ClashDisplay-Variable', 'Clash Display', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #c9a06a;
  margin: 0 0 20px;
}
.footer__col a, .footer__col span {
  display: block;
  font-family: 'ClashDisplay-Variable', 'Clash Display', sans-serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: rgba(240, 231, 216, 0.7);
  padding: 5px 0;
  transition: color .2s ease;
  line-height: 1.6;
}
.footer__col a:hover { color: #f4ecdd; }
.footer__social { display: flex; gap: 16px; margin-top: 22px; }
.footer__social a { display: inline-flex; padding: 0; }
.footer__social svg { width: 18px; height: 18px; color: rgba(240, 231, 216, 0.7); transition: color .2s ease; }
.footer__social a:hover svg { color: #c9a06a; }
.footer__bar {
  border-top: 1px solid rgba(240, 231, 216, 0.14);
  padding: 22px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.06em;
  color: rgba(240, 231, 216, 0.5);
  width: 90%;
  max-width: var(--container);
  margin: 0 auto;
  flex-wrap: wrap;
  gap: 12px;
}

@media (max-width: 880px) {
  .footer__grid { grid-template-columns: 1fr 1fr; gap: 20px; }
  .footer__book { grid-column: 1 / -1; }
  .footer__col--social { text-align: right; }
  .footer__col--social .footer__social { justify-content: flex-end; }
  .footer__crest { gap: 16px; }
}
@media (max-width: 560px) {
  .footer__grid { grid-template-columns: 1fr 1fr; gap: 24px 16px; }
  .footer__book { grid-column: 1 / -1; }
  .footer__col:first-of-type { grid-column: 1 / -1; }
  .footer__col--social { grid-column: 2; text-align: right; }
  .footer__col--social .footer__social { justify-content: flex-end; }
}

/* ============================================================
   Sticky mobile CTA
   ============================================================ */
.sticky-cta {
  position: fixed;
  bottom: 18px;
  right: 18px;
  z-index: 90;
  display: none;
  align-items: center;
  gap: 6px;
  padding: 11px 17px;
  background: rgba(15, 10, 8, 0.35);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  color: #f0e7d8;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 10px;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3);
  transition: all .3s var(--ease);
  text-decoration: none;
}
.sticky-cta:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(0,0,0,0.28); }

/* ============================================================
   Booking modal
   ============================================================ */
.booking {
  position: fixed;
  inset: 0;
  z-index: 200;
  pointer-events: none;
  opacity: 0;
  transition: opacity .35s var(--ease);
}
.booking.is-open {
  pointer-events: auto;
  opacity: 1;
}
.booking__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10,8,5,0.72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.booking__panel {
  position: absolute;
  right: 0; top: 0; bottom: 0;
  width: 460px;
  max-width: 92vw;
  background: var(--bg-2);
  border-left: 1px solid var(--gold);
  padding: 60px 40px 40px;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform .45s var(--ease);
  box-shadow: -20px 0 60px rgba(0,0,0,0.5);
}
.booking.is-open .booking__panel { transform: translateX(0); }

.booking__close {
  position: absolute;
  top: 18px; right: 22px;
  width: 36px; height: 36px;
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--text);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  transition: all .2s var(--ease);
}
.booking__close:hover {
  background: var(--gold);
  color: #1a1208;
  border-color: var(--gold);
}
.booking__title {
  font-size: 38px;
  margin: 12px 0 8px;
}
.booking__lead {
  color: var(--text-muted);
  font-size: 14px;
  margin: 0 0 30px;
}

.booking__option {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  background: var(--bg-3);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  margin-bottom: 12px;
  transition: all .25s var(--ease);
}
.booking__option:hover {
  border-color: var(--gold);
  transform: translateX(4px);
  background: rgba(201,160,106,0.06);
}
.booking__option--primary {
  background: var(--gold);
  border-color: var(--gold);
  color: #1a1208;
}
.booking__option--primary:hover {
  background: var(--gold-2);
  border-color: var(--gold-2);
  color: #1a1208;
}
.booking__option--primary .booking__icon {
  background: rgba(26,18,8,0.15);
  color: #1a1208;
}
.booking__option--primary small { color: rgba(26,18,8,0.7); }

.booking__icon {
  width: 46px; height: 46px;
  border-radius: 50%;
  background: rgba(201,160,106,0.12);
  color: var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.booking__option strong {
  display: block;
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 2px;
}
.booking__option small {
  display: block;
  font-size: 13px;
  color: var(--text-muted);
}
.booking__option--primary strong { color: #1a1208; }

.booking__hours {
  margin-top: 30px;
  padding: 16px 18px;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  font-size: 13px;
  color: var(--text-soft);
}
.booking__hours strong { color: var(--gold); margin-right: 6px; }

/* ============================================================
   Reveal animations
   ============================================================ */
[data-reveal] {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .8s var(--ease), transform .8s var(--ease);
}
[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 1100px) {
  .nav__links, .nav__cta { display: none; }
  .nav__burger { display: flex; }
  .nav.is-menu-open .nav__burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav.is-menu-open .nav__burger span:nth-child(2) { opacity: 0; }
  .nav.is-menu-open .nav__burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .nav.is-menu-open .nav__links {
    display: flex;
    position: absolute;
    top: 100%; left: 0; right: 0;
    flex-direction: column;
    background: rgba(15,12,9,0.98);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--line);
    padding: 24px 28px 32px;
    gap: 18px;
  }
  .nav.is-menu-open .nav__links a {
    font-size: 18px;
    color: var(--text);
  }
  .sticky-cta {
    display: inline-flex;
    bottom: calc(80px + env(safe-area-inset-bottom, 0px));   /* lifted above bottom-nav */
    /* Skjult indtil man har scrollet halvvejs ind i næste sektion — fader så ind */
    opacity: 0; visibility: hidden; pointer-events: none;
    transform: translateY(12px);
    transition: opacity .4s var(--ease), transform .4s var(--ease), visibility .4s var(--ease);
  }
  .sticky-cta.is-visible {
    opacity: 1; visibility: visible; pointer-events: auto;
    transform: translateY(0);
  }
  .hero { padding: 100px 0 60px; min-height: 90vh; }
  /* Touch devices: no mouse-only animations */
  .hero__scroll { display: none; }
  .marquee__track,
  .reviews__grid,
  .prices-list { cursor: default; }
  .gallery__item { cursor: default; }
  .gallery__item:hover img { transform: none; }
  /* Hero rating pills — compact 3-up on mobile (rating + stars on top row, name beneath) */
  .hero__rating {
    gap: 6px;
    width: 100%;
    flex-wrap: nowrap;
  }
  .rating-pill {
    flex: 1 1 0;
    min-width: 0;
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    column-gap: 6px;
    row-gap: 2px;
    align-items: center;
    padding: 8px 10px;
    text-align: center;
  }
  .rating-pill strong { grid-column: 1; grid-row: 1; font-size: 14px; }
  .rating-pill .stars { grid-column: 2; grid-row: 1; font-size: 10px; letter-spacing: 0.04em; text-align: left; }
  .rating-pill__src {
    grid-column: 1 / -1;
    grid-row: 2;
    font-size: 9.5px;
    letter-spacing: 0.04em;
    text-align: center;
  }
  .services, .prices, .gallery, .about, .find { padding: 80px 0; }
  .section-head { margin-bottom: 48px; }
  .find__phone { font-size: 26px; }
  .trust__inner { justify-content: center; gap: 14px 28px; }
  .trust__item { font-size: 13px; }
  .footer__bar { justify-content: center; text-align: center; }
}

@media (max-width: 560px) {
  .container,
  .hero__inner,
  .nav__inner,
  .trust__inner { width: calc(100% - 40px); padding: 0; }
  .hero__cta .btn { flex: 0 0 auto; }
  .about__stats { gap: 20px; flex-wrap: wrap; }
  .about__stats strong { font-size: 30px; }
  .booking__panel { padding: 60px 24px 30px; }
  .booking__title { font-size: 30px; }
}

/* ============================================================
   Sådan hjælper vi — proces-sektion (tekst venstre, trin højre)
   ============================================================ */
.process {
  background: linear-gradient(135deg, #3a2f26 0%, #241d17 72%);
  padding: clamp(64px, 9vw, 120px) 0;
  color: #f0e7d8;
}
.process__inner {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(40px, 6vw, 96px);
  align-items: start;
}
.process__intro .kicker { color: #c9a06a; display: inline-block; margin: 0 0 16px; }
.process__title {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(30px, 4vw, 50px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: 0.02em;
  color: #f4ecdd;
  margin: 0 0 26px;
}
.process__title em { font-style: italic; color: #c9a06a; }
.process__lead {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.78;
  color: rgba(240, 231, 216, 0.7);
  max-width: 46ch;
  margin: 0;
}
.process__steps {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(30px, 3.4vw, 52px) clamp(32px, 4vw, 64px);
  border-left: 1px solid rgba(240, 231, 216, 0.14);
  padding-left: clamp(32px, 4vw, 72px);
}
.process__step-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
  padding: 0 0 16px;
  border-bottom: 1px solid rgba(240, 231, 216, 0.14);
}
.process__num {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(34px, 4vw, 46px);
  line-height: 1;
  color: rgba(240, 231, 216, 0.26);
}
.process__icon { display: inline-flex; color: #c9a06a; }
.process__icon svg { width: 22px; height: 22px; }
.process__step-title {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(19px, 1.6vw, 23px);
  font-weight: 500;
  letter-spacing: 0.01em;
  text-transform: none;
  color: #f4ecdd;
  margin: 0 0 10px;
}
.process__step-desc {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.66;
  color: rgba(240, 231, 216, 0.62);
  margin: 0;
}
@media (max-width: 860px) {
  .process__inner { grid-template-columns: 1fr; gap: clamp(36px, 6vw, 48px); }
  .process__steps { border-left: none; padding-left: 0; }
}
@media (max-width: 520px) {
  .process__steps { grid-template-columns: 1fr; }
}

/* ============================================================
   Flat editorial design — no rounded corners anywhere
   ============================================================ */
*, *::before, *::after { border-radius: 0 !important; }
.sticky-cta { border-radius: 999px !important; }
@media (max-width: 720px) {
  .sticky-cta {
    right: 18px;
    left: auto;
    min-width: 140px;
    justify-content: center;
    padding: 14px 24px;
    font-size: 12px;
  }
}

/* ============================================================
   Service detail popup → Cal.com  (replaces Planway booking)
   ============================================================ */
.svc-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center;
  padding: 24px; opacity: 0; visibility: hidden; transition: opacity .28s var(--ease), visibility .28s var(--ease); }
.svc-modal.is-open { opacity: 1; visibility: visible; }
.svc-modal__backdrop { position: absolute; inset: 0; background: rgba(8,6,4,0.72); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.svc-modal__panel { position: relative; width: min(440px, 100%); max-height: 90vh; overflow-y: auto;
  background: var(--bg-2); border: 1px solid var(--line-strong); border-radius: var(--radius-lg);
  box-shadow: var(--shadow); padding: 34px 32px 30px; transform: translateY(16px) scale(.98);
  transition: transform .32s var(--ease); }
.svc-modal.is-open .svc-modal__panel { transform: translateY(0) scale(1); }
.svc-modal__close { position: absolute; top: 14px; right: 16px; width: 38px; height: 38px; border: none; border-radius: 50%;
  background: var(--bg-3); color: var(--text-soft); font-size: 24px; line-height: 1; cursor: pointer; transition: background .2s ease, color .2s ease; }
.svc-modal__close:hover { background: var(--gold); color: var(--bg-deep); }
.svc-modal__kicker { display: inline-block; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
.svc-modal__title { font-size: 26px; line-height: 1.15; color: var(--text); margin: 0 0 12px; }
.svc-modal__meta { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; font-size: 15px; }
.svc-modal__dur { color: var(--text-soft); }
.svc-modal__sep { color: var(--text-muted); }
.svc-modal__price { color: var(--gold); font-weight: 600; }
.svc-modal__desc { color: var(--text-soft); font-size: 15.5px; line-height: 1.6; margin: 0 0 22px; }
.svc-modal__know { border-top: 1px solid var(--line); padding-top: 18px; margin-bottom: 24px; }
.svc-modal__know h4 { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); margin: 0 0 12px; }
.svc-modal__know ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.svc-modal__know li { position: relative; padding-left: 22px; color: var(--text-soft); font-size: 14.5px; line-height: 1.45; }
.svc-modal__know li::before { content: ""; position: absolute; left: 0; top: 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }
.svc-modal__book {
  width: 100%; justify-content: center; align-items: center; display: flex;
  background: linear-gradient(180deg, var(--gold-2), var(--gold));
  color: var(--bg-deep); border: none; border-bottom: none;
  padding: 16px 22px; font-size: 14px; font-weight: 600; letter-spacing: 0.06em;
  text-transform: none; cursor: pointer; box-shadow: 0 10px 28px var(--gold-glow);
  transition: filter .2s ease, transform .2s ease, opacity .2s ease;
}
.svc-modal__book:hover { filter: brightness(1.05); transform: translateY(-1px); opacity: 1; gap: 8px; }
.svc-modal__note { font-size: 12.5px; color: var(--text-muted); text-align: center; margin: 14px 0 0; line-height: 1.4; }

/* Make any service trigger feel clickable */
[data-service] { cursor: pointer; }
.exp-priceitem[data-service] { transition: background .2s ease, border-color .2s ease; border-radius: 12px; }
.exp-priceitem[data-service]:hover { background: rgba(201,160,106,0.06); }

/* ============================================================
   Booking panel — our own left side + embedded Cal.com calendar
   ============================================================ */
.cal-wrap { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center;
  padding: 20px; opacity: 0; visibility: hidden; transition: opacity .12s linear, visibility .12s linear;
  overscroll-behavior: none; }
.cal-wrap.is-open { opacity: 1; visibility: visible; }
.cal-wrap__backdrop { position: absolute; inset: 0; background: rgba(8,6,4,0.80); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.cal-wrap__panel { position: relative; display: flex; flex-direction: column; width: min(1000px, 100%); height: min(680px, 92vh);
  background: var(--bg-2); border: 1px solid var(--line-strong); box-shadow: var(--shadow); overflow: hidden; }
.cal-wrap__body { display: flex; flex: 1 1 auto; min-height: 0; }
.cal-wrap__close { position: absolute; top: 12px; right: 14px; z-index: 7; width: 38px; height: 38px; border: none;
  background: rgba(0,0,0,0.4); color: var(--text-soft); font-size: 24px; line-height: 1; cursor: pointer; transition: background .2s ease, color .2s ease; }
.cal-wrap__close:hover { background: var(--gold); color: var(--bg-deep); }

.cal-wrap__side { flex: 0 0 300px; padding: 36px 30px; overflow-y: auto; border-right: 1px solid var(--line); }
.cal-wrap__brand { flex: 0 0 auto; display: flex; align-items: center;
  margin: 0; border-bottom: 1px solid var(--line); }
.cal-wrap__brand-logo { flex: 0 0 300px; display: flex; align-items: center; padding: 14px 30px; border-right: 1px solid var(--line); }
.cal-wrap__brand-tag { flex: 1 1 auto; display: flex; align-items: center; padding: 14px 30px; }
.cal-wrap__logo { height: 30px; width: auto; object-fit: contain; }
.cal-wrap__brand span { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--text-soft); }
.cal-wrap__tagline { font-family: 'Playfair Display', serif !important; font-style: italic !important; font-size: 96px; font-weight: 400; color: #c9a06a; letter-spacing: 0.01em !important; text-transform: none !important; font-variant: normal !important; line-height: 1; }
.cal-wrap__title { font-size: 18px; line-height: 1.2; color: var(--text); margin: 0 0 12px; }
.cal-wrap__desc { font-size: 15px; line-height: 1.6; color: var(--text-soft); margin: 0; }
.cal-wrap__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin: 20px 0 0;
  font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); }
.cal-wrap__meta i { color: var(--gold); font-style: normal; opacity: .55; }

.cal-wrap__others { margin-top: 24px; border-top: 1px solid var(--line); padding-top: 18px; }
.cal-wrap__others-label { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--text-muted); }
.cal-wrap__others ul { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.cal-wrap__others button { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 12px;
  background: none; border: none; padding: 10px 12px; cursor: pointer; color: var(--text-soft); font-size: 14px;
  text-align: left; transition: background .15s ease, color .15s ease; }
.cal-wrap__others button:hover { background: rgba(201,160,106,0.08); color: var(--text); }
.cal-wrap__others em { font-style: normal; color: var(--gold); font-size: 13px; white-space: nowrap; }

/* Egen kalender bor her — fast bredde på desktop, fuld bredde på mobil. */
.cal-wrap__cal { flex: 1 1 auto; min-width: 0; overflow-x: hidden; overflow-y: auto; background: #0d0d0f; position: relative; }
.cal-wrap__cal #cal-inline { width: 100%; margin-left: 0; min-height: 100%; }
.cal-wrap__togglemask { display: none; }

@media (max-width: 820px) {
  /* whole sheet scrolls; panel grows with content (no bottom gap) */
  .cal-wrap { padding: 0; align-items: flex-start; overflow-y: auto; }
  .cal-wrap__panel { width: 100%; height: auto; min-height: 100%; }
  .cal-wrap__body { flex-direction: column; }
  .cal-wrap__side { flex: 0 0 auto; max-height: none; border-right: none; border-bottom: 1px solid var(--line); padding: 18px 18px 20px; }

  /* Kalender i FULD telefonbredde — ingen nedskalering. Cal.com renderer selv
     måneds-gridet fuldt ud og stakker tiderne UNDER kalenderen, når en dato er valgt.
     Uden scale(0.53) bliver dato-tallene ~dobbelt så store og felterne mere kompakte. */
  .cal-wrap__cal { flex: 1 1 auto; width: 100%; height: auto; overflow: visible; background: var(--bg-2); }
  .cal-wrap__cal #cal-inline { width: 100%; margin-left: 0; transform: none; min-height: 620px; }
  .cal-wrap__cal iframe { width: 100% !important; min-height: 620px; }
  .cal-wrap__togglemask { display: none; }

  /* Tekst som i Facebook-appen: overskrift ~17px halvfed, brødtekst ~15px */
  .cal-wrap__brand span { font-size: 11px; }
  .cal-wrap__brand { flex-wrap: nowrap; }
  .cal-wrap__brand-logo { flex: 0 0 auto; padding: 12px 16px; border-right: 1px solid var(--line); }
  .cal-wrap__brand-tag { flex: 1 1 auto; padding: 12px 16px; }
  .cal-wrap__tagline { font-size: 20px; }
  .cal-wrap__title { font-size: 17px; font-weight: 600; line-height: 1.25; }
  .cal-wrap__desc { font-size: 15px; line-height: 1.5; }

  /* "Dit valg" and "I alt" side by side in one section */
  .cal-wrap__valg { display: grid; grid-template-columns: 1fr auto; column-gap: 14px; margin-top: 14px; padding-top: 12px; }
  .cal-wrap__valg-label { grid-column: 1 / -1; font-size: 10px; margin-bottom: 6px; }
  .cal-wrap__valg ul { grid-column: 1; margin: 0; }
  /* "Dit valg" kun ~10% større end "Vælg flere services"-teksten (12.5px) */
  .cal-wrap__valg li { font-size: 13.75px; padding: 5px 0; }
  .cal-wrap__valg li em { font-size: 12.5px; }
  .cal-wrap__valg-sum { grid-column: 2; align-self: end; flex-direction: column; align-items: flex-end; gap: 1px;
    margin: 0; padding: 0; border-top: none; text-align: right; }
  /* "I alt"-sum + tid yderligere 30% mindre (8px → 5.5px) */
  .cal-wrap__valg-sum > span:first-child { font-size: 7px; }
  .cal-wrap__valg-total { font-size: 5.5px; }

  /* "Vælg flere services": show ~5, the rest fade as you scroll */
  .cal-wrap__others-label { font-size: 10px; }
  .cal-wrap__others ul { max-height: 212px; overflow-y: auto;
    -webkit-mask-image: linear-gradient(to bottom, #000 78%, transparent);
    mask-image: linear-gradient(to bottom, #000 78%, transparent); }
  .cal-wrap__others button { padding: 8px 8px; font-size: 12.5px; }
  .cal-wrap__others em { font-size: 11.5px; }
  .cal-wrap__plus { width: 20px; height: 20px; font-size: 13px; }
}

/* ============================================================
   Kurv (cart) — add-to-cart buttons, floating cart, cart modal
   ============================================================ */
/* + Kurv button on product/booking cards */
.exp-card__cart {
  background: none; border: 1px solid var(--line-strong); color: var(--text-soft);
  padding: 7px 14px; font-family: inherit; font-size: 12px; letter-spacing: .08em; text-transform: uppercase;
  cursor: pointer; transition: border-color .2s ease, color .2s ease, background .2s ease; white-space: nowrap; margin-right: 10px;
}
.exp-card__cart:hover { border-color: var(--gold); color: var(--gold); }
.exp-card__cart.is-added { border-color: var(--gold); color: var(--gold); background: rgba(201,160,106,0.10); }

/* + Kurv on price-list rows */
.exp-priceitem { position: relative; }
.exp-priceitem__cart {
  margin-top: 10px; background: none; border: 1px solid var(--line-strong); color: var(--text-muted);
  padding: 5px 12px; font-family: inherit; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
  transition: border-color .2s ease, color .2s ease; }
.exp-priceitem__cart:hover { border-color: var(--gold); color: var(--gold); }
.exp-priceitem__cart.is-added { border-color: var(--gold); color: var(--gold); }

/* Add-to-cart button inside the booking panel */
.cal-wrap__addcart {
  margin-top: 18px; width: 100%; background: none; border: 1px solid var(--gold); color: var(--gold);
  padding: 12px; font-family: inherit; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
  transition: background .2s ease, color .2s ease; }
.cal-wrap__addcart:hover { background: var(--gold); color: var(--bg-deep); }

/* Cart row (read-only) inside the booking panel "others" list */
.cal-wrap__others li.is-cartrow { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; color: var(--text-soft); font-size: 14px; }
.cal-wrap__others li.is-cartrow em { font-style: normal; color: var(--gold); font-size: 13px; }

/* Floating cart button */
.cart-fab {
  position: fixed; left: 22px; bottom: 22px; z-index: 900; display: none; align-items: center; gap: 9px;
  background: var(--gold); color: var(--bg-deep); border: none; padding: 13px 18px; cursor: pointer;
  box-shadow: 0 12px 30px rgba(0,0,0,0.4); transition: transform .2s ease, filter .2s ease; }
.cart-fab.is-visible { display: inline-flex; }
.cart-fab:hover { filter: brightness(1.05); transform: translateY(-2px); }
.cart-fab__count { font-weight: 700; font-size: 14px; min-width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center;
  background: var(--bg-deep); color: var(--gold); border-radius: 50%; padding: 0 6px; }
.cart-fab.bump { animation: cartbump .35s var(--ease); }
@keyframes cartbump { 0%{transform:scale(1)} 40%{transform:scale(1.12)} 100%{transform:scale(1)} }

/* Cart modal */
.cart-modal { position: fixed; inset: 0; z-index: 1001; display: flex; align-items: center; justify-content: center; padding: 24px;
  opacity: 0; visibility: hidden; transition: opacity .26s var(--ease), visibility .26s var(--ease); }
.cart-modal.is-open { opacity: 1; visibility: visible; }
.cart-modal__backdrop { position: absolute; inset: 0; background: rgba(8,6,4,0.74); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.cart-modal__panel { position: relative; width: min(440px, 100%); max-height: 88vh; overflow-y: auto;
  background: var(--bg-2); border: 1px solid var(--line-strong); box-shadow: var(--shadow); padding: 34px 32px 28px;
  transform: translateY(16px) scale(.98); transition: transform .3s var(--ease); }
.cart-modal.is-open .cart-modal__panel { transform: none; }
.cart-modal__close { position: absolute; top: 14px; right: 16px; width: 38px; height: 38px; border: none; background: var(--bg-3);
  color: var(--text-soft); font-size: 24px; line-height: 1; cursor: pointer; transition: background .2s ease, color .2s ease; }
.cart-modal__close:hover { background: var(--gold); color: var(--bg-deep); }
.cart-modal__kicker { display: inline-block; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); margin-bottom: 8px; }
.cart-modal__title { font-size: 25px; color: var(--text); margin: 0 0 20px; }
.cart-modal__list { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-direction: column; }
.cart-modal__list li { display: flex; align-items: center; gap: 10px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.cart-modal__name { flex: 1 1 auto; color: var(--text); font-size: 15px; }
.cart-modal__meta { color: var(--text-muted); font-size: 13px; white-space: nowrap; }
.cart-modal__remove { flex: 0 0 auto; width: 26px; height: 26px; border: none; background: var(--bg-3); color: var(--text-muted); font-size: 18px; line-height: 1; cursor: pointer; transition: background .2s ease, color .2s ease; }
.cart-modal__remove:hover { background: var(--rust); color: #fff; }
.cart-modal__empty { color: var(--text-muted); font-size: 14.5px; line-height: 1.5; border: none !important; padding: 4px 0 8px; }
.cart-modal__summary { border-top: 1px solid var(--line-strong); padding-top: 16px; margin-bottom: 22px; }
.cart-modal__row { display: flex; justify-content: space-between; align-items: baseline; font-size: 14px; color: var(--text-soft); margin-bottom: 8px; }
.cart-modal__row--total { font-size: 18px; color: var(--text); }
.cart-modal__row--total .cart-modal__total { color: var(--gold); font-weight: 600; }
.cart-modal__book { width: 100%; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(180deg, var(--gold-2), var(--gold)); color: var(--bg-deep); border: none;
  padding: 16px 22px; font-family: inherit; font-size: 14px; font-weight: 600; letter-spacing: .04em; cursor: pointer;
  box-shadow: 0 10px 28px var(--gold-glow); transition: filter .2s ease, transform .2s ease, opacity .2s ease; }
.cart-modal__book:hover { filter: brightness(1.05); transform: translateY(-1px); }
.cart-modal__book:disabled { opacity: .4; cursor: not-allowed; box-shadow: none; transform: none; filter: none; }
.cart-modal__note { font-size: 12.5px; color: var(--text-muted); text-align: center; margin: 13px 0 0; }

@media (max-width: 820px) { .cart-fab { left: 16px; bottom: 16px; } }

/* "Dit valg" selection block inside the booking panel */
.cal-wrap__valg { margin-top: 22px; border-top: 1px solid var(--line); padding-top: 16px; }
.cal-wrap__valg[hidden] { display: none; }
.cal-wrap__valg-label { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--text-muted); }
.cal-wrap__valg ul { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.cal-wrap__valg li { display: flex; align-items: center; gap: 10px; padding: 8px 0; color: var(--text-soft); font-size: 14.5px; }
.cal-wrap__valg li span:first-child { flex: 1 1 auto; }
.cal-wrap__valg li em { font-style: normal; color: var(--gold); font-size: 13px; white-space: nowrap; }
.cal-wrap__valg-rm { flex: 0 0 auto; width: 22px; height: 22px; border: none; background: var(--bg-3); color: var(--text-muted); font-size: 15px; line-height: 1; cursor: pointer; transition: background .15s ease, color .15s ease; }
.cal-wrap__valg-rm:hover { background: var(--rust); color: #fff; }
.cal-wrap__valg-sum { display: flex; justify-content: space-between; align-items: baseline; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line-strong); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); }
.cal-wrap__valg-total { font-size: 17px; text-transform: none; letter-spacing: 0; color: var(--gold); font-weight: 600; }
.cal-wrap__none { list-style: none; color: var(--text-muted); font-size: 13.5px; padding: 8px 0; }

/* "Vælg services" rows: name (left), price, and a + add-on icon (right) */
.cal-wrap__others button { gap: 12px; }
.cal-wrap__svc-name { flex: 1 1 auto; }
.cal-wrap__others button em { font-style: normal; color: var(--gold); font-size: 13px; white-space: nowrap; }
.cal-wrap__plus { flex: 0 0 auto; width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--line-strong); border-radius: 50%; color: var(--gold); font-size: 16px; line-height: 1;
  transition: background .2s ease, border-color .2s ease, color .2s ease; }
.cal-wrap__others button:hover .cal-wrap__plus { background: var(--gold); border-color: var(--gold); color: var(--bg-deep); }

/* Empty-state hint in the calendar area */
.cal-wrap__hint { display: flex; align-items: center; justify-content: center; height: 100%; min-height: 420px;
  padding: 40px; text-align: center; color: var(--text-muted); font-size: 15px; }

/* Price-list rows: same meta + Book style as the product cards */
.exp-priceitem__meta { list-style: none; display: flex; flex-wrap: nowrap; align-items: center; gap: 10px;
  margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid rgba(232,213,184,0.14);
  font-family: 'Montserrat', sans-serif; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: rgba(240,231,216,0.65); overflow: hidden; }
.exp-priceitem__meta li { display: inline-flex; align-items: center; white-space: nowrap; }
.exp-priceitem__meta li:not(:last-child)::after { content: "/"; margin-left: 10px; color: rgba(201,160,106,0.5); }
.exp-priceitem__foot { display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(232,213,184,0.14); }
.exp-priceitem__footprice { font-family: 'Montserrat', sans-serif; font-size: 16px; font-weight: 400; color: #f4ecdd; white-space: nowrap; }
.experiences--light .exp-priceitem__foot { border-top-color: rgba(176,138,79,0.28); }
.experiences--light .exp-priceitem__footprice { color: #1f1814; }
.exp-priceitem__book { background: none; border: none; border-bottom: 1px solid rgba(240,231,216,0.5);
  color: #f0e7d8; padding: 0 0 5px; font-family: 'Playfair Display', 'Times New Roman', serif; font-size: 12px; letter-spacing: .16em;
  text-transform: uppercase; cursor: pointer; transition: color .2s ease, border-color .2s ease; }
.exp-priceitem__book:hover { color: var(--gold); border-color: var(--gold); }
/* On the light experiences variant, match the dark-on-cream card treatment */
.experiences--light .exp-priceitem__meta { color: #6b5e50; border-top-color: rgba(176,138,79,0.28); }
.experiences--light .exp-priceitem__meta li:not(:last-child)::after { color: rgba(176,138,79,0.5); }
.experiences--light .exp-priceitem__book { color: #1f1814; border-bottom-color: rgba(31,24,20,0.4); }
.experiences--light .exp-priceitem__book:hover { color: #b08a4f; border-color: #b08a4f; }

/* Hide the floating cart button — the selection lives in the booking panel */
.cart-fab { display: none !important; }

/* Thin, subtle scrollbar in the booking panel (replaces the chunky default) */
.cal-wrap__side, .cal-wrap__cal { scrollbar-width: thin; scrollbar-color: rgba(201,160,106,0.45) transparent; }
.cal-wrap__side::-webkit-scrollbar, .cal-wrap__cal::-webkit-scrollbar { width: 5px; height: 5px; }
.cal-wrap__side::-webkit-scrollbar-track, .cal-wrap__cal::-webkit-scrollbar-track { background: transparent; }
.cal-wrap__side::-webkit-scrollbar-thumb, .cal-wrap__cal::-webkit-scrollbar-thumb { background: rgba(201,160,106,0.4); border-radius: 0; }
.cal-wrap__side::-webkit-scrollbar-thumb:hover, .cal-wrap__cal::-webkit-scrollbar-thumb:hover { background: rgba(201,160,106,0.65); }

/* Hide the redundant duration/count line in the booking panel — it's already shown in "Dit valg" + "I alt" */
.cal-wrap__meta { display: none; }

/* === Mobil-finjustering af booking-panelet ===
   SKAL stå sidst: desktop-reglerne .cal-wrap__valg* (uden media query) står
   senere end den primære mobil-blok og overskrev den ellers. Ekstra .cal-wrap
   foran hæver specificiteten, så disse vinder uanset rækkefølge. */
@media (max-width: 820px) {
  /* "Dit valg" og "I alt" toppjusteret: overskrifterne flugter på samme linje.
     col1 = DIT VALG-label (række 1) + liste (række 2); col2 = I alt + total (toppen). */
  .cal-wrap .cal-wrap__valg { display: grid; grid-template-columns: 1fr auto; column-gap: 16px; align-items: start; }
  .cal-wrap .cal-wrap__valg-label { grid-column: 1; grid-row: 1; }
  .cal-wrap .cal-wrap__valg ul { grid-column: 1; grid-row: 2; }

  /* Samme tekststørrelse i "Dit valg" og "I alt" */
  .cal-wrap .cal-wrap__valg li { font-size: 13.75px; padding: 5px 0; }
  .cal-wrap .cal-wrap__valg li em { font-size: 13.75px; }

  /* "I alt" øverst i højre kolonne; kroner og tid på SAMME linje (side om side) */
  .cal-wrap .cal-wrap__valg-sum { grid-column: 2; grid-row: 1 / span 2; align-self: start; display: flex;
    flex-direction: column; align-items: flex-end; justify-content: flex-start; gap: 4px;
    margin: 0; padding: 0; border-top: none; text-align: right; }
  .cal-wrap .cal-wrap__valg-sum > span:first-child { font-size: 13.75px; }
  .cal-wrap .cal-wrap__valg-total { font-size: 13.75px; font-weight: 700; white-space: nowrap; }

  /* Ingen vandret overløb på mobil — højresiden må aldrig skubbes ud over kanten */
  .cal-wrap .cal-wrap__panel,
  .cal-wrap .cal-wrap__side { overflow-x: hidden; }

  /* "Vælg flere services": vis kun ~5, resten fades når man scroller */
  .cal-wrap .cal-wrap__others ul { max-height: 212px; overflow-y: auto;
    -webkit-mask-image: linear-gradient(to bottom, #000 78%, transparent);
    mask-image: linear-gradient(to bottom, #000 78%, transparent); }

  /* Kalenderen reserverer mindre lodret grå plads (var 620px) */
  .cal-wrap .cal-wrap__cal { min-height: 0; }
  .cal-wrap .cal-wrap__cal #cal-inline { min-height: 0; }

  /* "Vælg flere services": priserne (tal) samme størrelse som under "Dit valg" (13.75px) */
  .cal-wrap .cal-wrap__others button { font-size: 13.1px; }
  .cal-wrap .cal-wrap__others em { font-size: 13.75px; }
}

/* ===== Egen booking-kalender (erstatter Cal.com-iframen — fuld kontrol) ===== */
.skbh-cal { padding: 22px 22px 26px; color: var(--text); }
.skbh-cal__head { display: flex; align-items: center; justify-content: space-between; margin: 0 0 16px; }
.skbh-cal__month { font-size: 17px; font-weight: 600; color: var(--text); text-transform: capitalize; }
.skbh-cal__nav { width: 36px; height: 36px; border: 1px solid var(--line-strong); background: none; color: var(--text-soft);
  font-size: 20px; line-height: 1; cursor: pointer; transition: border-color .2s ease, color .2s ease, background .2s ease; }
.skbh-cal__nav:hover { border-color: var(--gold); color: var(--gold); }
.skbh-cal__wdrow { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin: 0 0 6px; }
.skbh-cal__wd { text-align: center; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.skbh-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.skbh-cal__day { display: flex; align-items: center; justify-content: center; height: 42px; border: none;
  font-family: inherit; font-size: 17px; color: var(--text); background: transparent; }
.skbh-cal__day--empty { background: none; }
.skbh-cal__day.is-off { color: var(--text-muted); opacity: .32; }
.skbh-cal__day.is-avail { background: var(--bg-3); color: var(--text); cursor: pointer; transition: background .15s ease, color .15s ease; }
.skbh-cal__day.is-avail:hover { background: rgba(201,160,106,0.22); }
.skbh-cal__day.is-selected { background: var(--gold); color: var(--bg-deep); font-weight: 600; }
/* Desktop: kalender til venstre, tider til højre */
@media (min-width: 821px) {
  .skbh-cal { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto auto; column-gap: 28px; }
  .skbh-cal__head  { grid-column: 1; grid-row: 1; }
  .skbh-cal__wdrow { grid-column: 1; grid-row: 2; }
  .skbh-cal__grid  { grid-column: 1; grid-row: 3; }
  .skbh-cal__times { grid-column: 2; grid-row: 1 / 4; margin-top: 0; padding-top: 6px; min-height: 0; }
  .skbh-cal__hint  { grid-column: 2; grid-row: 1 / 4; }

  /* Tide-felter samme størrelse som kalenderens dato-felter (42px) */
  .skbh-cal__slot { height: 42px; padding: 0 6px; font-size: 14px; }
  .skbh-cal__slots { gap: 6px; }

  .skbh-cal__slots { overflow-y: visible; max-height: none; }
}
.skbh-cal__times { margin-top: 20px; }
.skbh-cal__times-head { font-size: 13px; letter-spacing: .04em; color: var(--text-soft); text-transform: capitalize; margin: 0 0 10px; }
.skbh-cal__slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.skbh-cal__slot { padding: 13px 6px; border: 1px solid var(--line-strong); background: none; color: var(--text);
  font-family: inherit; font-size: 15px; cursor: pointer; border-radius: 10px;
  transition: border-color .15s ease, color .15s ease, background .15s ease; }
.skbh-cal__slot { display: flex; align-items: center; justify-content: center; gap: 8px; }
.skbh-cal__slot:hover { border-color: var(--gold); color: var(--gold); background: rgba(201,160,106,0.08); }
.skbh-cal__slot.is-selected { border-color: #8B5E3C; background: rgba(139,94,60,0.18); color: var(--text); }
.skbh-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
.skbh-dot--green { background: #3ecf8e; }
.skbh-dot--brown { background: #8B5E3C; }
.skbh-cal__hint { color: var(--text-muted); font-size: 14px; padding: 18px 0; text-align: center; }

@media (max-width: 820px) {
  .skbh-cal { padding: 16px 14px 22px; }
  .skbh-cal__day { height: 40px; font-size: 18px; }   /* store dato-tal */
  .skbh-cal__slot { padding: 14px 4px; font-size: 16px; }
  .skbh-cal__slots { grid-template-columns: repeat(4, 1fr); }
}

/* ============================================================
   MOBILE ONLY — max 640px (phone)
   Desktop stays at original values above
   ============================================================ */
@media (max-width: 640px) {
  /* Hero title smaller */
  .hero__title--line { font-size: clamp(27px, 7vw, 44px) !important; }

  /* Hero content lower */
  .hero-screen .hero { padding: 104px 0 calc(18px + 12vh); }

  /* Logo 30% smaller */
  .nav__logo img { height: 32px; }

  /* Hero button smaller */
  .hero__cta .btn--gold { padding: 10px 20px; font-size: 13px; letter-spacing: 0.06em; font-family: 'Montserrat', sans-serif; }
  .hero__cta .btn--gold svg { width: 14px; height: 14px; }
  .hero__cta .btn { flex: 0 0 auto; }

  /* Rating bar → trust: ingen gap, én tynd skillelinje */
  .rating-bar-section { border-bottom: none; margin-bottom: 0; }
  .rating-bar-section .rating-bar { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
  .trust { margin-top: 0; padding-top: 18px; border-top: 1px solid rgba(176, 138, 79, 0.35); }
  .rating-bar__main-text strong { font-size: 14px; }
  .rating-bar__main-text span { font-size: 11px; }
  .rating-bar__platform-name { font-size: 14px; }
  .rating-bar__divider { font-size: 11px; }

  /* Rating bar — "anmeldelser" on new line */
  .rbar-break { display: inline; }

  /* om-split text smaller */
  .om-split__text p { font-size: 13px; }

  /* om-split stats smaller + one row */
  .om-stat strong { font-size: clamp(18px, 5vw, 22px); }
  .om-stat--rating strong svg { width: 16px; height: 16px; flex: 0 0 16px; }
  .om-split__stats { gap: 12px; flex-wrap: nowrap; }
  .om-split__cta { padding: 10px 20px; font-size: 13px; }

  /* CTA final — mobil */
  .cta-final { padding: 40px 0; }
  .cta-final__inner {
    width: calc(100% - 40px);
    margin: 0 auto;
    padding: 28px 20px;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    border-radius: 14px;
    text-align: center;
  }
  .cta-final__text { text-align: center; max-width: none; width: 100%; }
  .cta-final h2 { font-size: 26px; }
  .cta-final p { font-size: 14px; }
  .cta-final__cta { width: auto; padding: 12px 28px; font-size: 13px; }

  /* Uddannelse-home section — mobile fixes */
  #uddannelse-home { padding-top: 0; overflow-x: clip; }
  #uddannelse-home .om-split__text { padding-top: 44px; padding-right: 5vw !important; }
  #uddannelse-home .om-split__media {
    width: 100vw;
    margin-left: -20px;
    aspect-ratio: 4/3;
    max-height: none;
  }
  #uddannelse-home .om-split__stats {
    flex-wrap: wrap;
    gap: 16px;
  }
  #uddannelse-home .om-split__cta {
    width: 100%;
    margin-left: 0;
    order: 10;
  }
}

/* ============================================================
   MOBILE ONLY — priser/services korrektioner
   ============================================================ */
@media (max-width: 720px) {
  .exp-prices { gap: 0; scroll-padding-left: 0; overflow-y: visible; height: auto !important; }
  .exp-pricecat { flex: 0 0 100%; padding-right: 0; height: auto !important; }
}
@media (max-width: 640px) {
  /* Pris = overskrift størrelse */
  .exp-card__price { font-size: 16px; }

  /* Meta aldrig wrap */
  .exp-card__meta { flex-wrap: nowrap; font-size: 8.5px; gap: 5px; overflow: hidden; }
  .exp-card__meta li:not(:last-child)::after { margin-left: 5px; }
}

@media (max-width: 640px) {
  .hero__cta .btn--gold { font-family: 'Montserrat', sans-serif; }
  .rating-bar__main-text span { font-family: 'Montserrat', sans-serif !important; }
  .rating-bar__platform-name { font-family: 'Montserrat', sans-serif !important; }
}

@media (max-width: 640px) {
  /* Card-tekst 3px fra kant */
  .experiences .container,
  .experiences--light .container { width: calc(100% - 6px); padding: 0; }

  /* Tab-knapper mindre */
  .exp-toggle__btn { font-size: 11px; padding: 10px 16px; letter-spacing: 0.12em; }
}

/* ============================================================
   MOBIL — universel logo-alignment (5vw = nav__inner margin)
   ============================================================ */
@media (max-width: 640px) {
  /* Om-split tekst: var 28px, nu 5vw som nav */
  .om-split__text { padding-left: 5vw !important; padding-right: 5vw !important; }

  /* Experiences container: revert 3px fejl → align med logo */
  .experiences .container,
  .experiences--light .container { width: 90%; margin: 0 auto; padding: 0; }

  /* Alle andre sektioners containere */
  .container { width: 90%; }
  .hero__inner,
  .trust__inner,
  .rating-bar-section .rating-bar { width: 90%; }
}

/* ============================================================
   MOBIL — ENDELIG logo-alignment override (ALL sektioner)
   ============================================================ */
@media (max-width: 640px) {
  /* Alle containere = 90% centreret (= logo alignment) */
  .container,
  .experiences .container,
  .experiences--light .container,
  .section-inner,
  .hero__inner,
  .trust__inner,
  .rating-bar-section .rating-bar { width: 90% !important; margin-left: auto !important; margin-right: auto !important; padding-left: 0 !important; padding-right: 0 !important; }

  /* Om-split tekst */
  .om-split__text { padding-left: 5vw !important; padding-right: 5vw !important; }

  /* BOOK knap ikke overflow */
  .om-split__cta { min-width: 0; white-space: nowrap; }
}

@media (max-width: 640px) {
  /* Om-split: fjern ekstra padding — containeren klarer alignment */
  .om-split__text { padding-left: 0 !important; padding-right: 0 !important; }
  .om-split__stats { margin-right: 0 !important; }
}


/* ============================================================
   Interfilm-style full-screen mobile menu
   ============================================================ */
.mob-menu {
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.mob-menu.is-open {
  pointer-events: all;
  opacity: 1;
}
.mob-menu__blur {
  position: absolute;
  inset: 0;
  backdrop-filter: blur(20px) saturate(0.5);
  -webkit-backdrop-filter: blur(20px) saturate(0.5);
}
.mob-menu__panel {
  position: absolute;
  inset: 0;
  background: #f5efe2;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding-top: env(safe-area-inset-top, 0px);
}
.mob-menu__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 24px;
  height: 56px;
  flex-shrink: 0;
}
.mob-menu__logo img {
  height: 31px;
  width: auto;
  display: block;
}
.mob-menu__header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.mob-menu__icon-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: rgba(31,24,20,0.6);
  transition: color 0.2s ease;
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: none;
}
.mob-menu__icon-btn:hover { color: #1f1814; }
.mob-menu__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: rgba(31,24,20,0.6);
  transition: color 0.2s ease;
  background: none;
  border: none;
  cursor: pointer;
}
.mob-menu__close:hover { color: #1f1814; }
.mob-menu__nav {
  flex: 1;
  padding: 70px 28px 0;
  display: flex;
  flex-direction: column;
}
.mob-menu__item {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.35s ease, transform 0.35s ease;
  transition-delay: calc(60ms + var(--i, 0) * 20ms);
}
.mob-menu.is-open .mob-menu__item {
  opacity: 1;
  transform: translateY(0);
}
.mob-menu__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 8px 0;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -0.025em;
  color: #1f1814;
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: color 0.2s ease;
}
.mob-menu__link:hover { color: rgba(31,24,20,0.5); }

/* Book din tid nu — rund gold CTA knap */
.mob-menu__item--cta {
  margin-top: 20px;
  display: flex;
}
.mob-menu__cta-btn {
  display: inline-block !important;
  width: auto !important;
  padding: 15px 36px !important;
  background: #c9a06a !important;
  color: #ffffff !important;
  border-radius: 50px !important;
  font-family: 'Montserrat', system-ui, sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  text-decoration: none !important;
  text-align: center !important;
  transition: background 0.2s ease !important;
  cursor: pointer !important;
  border: none !important;
}
.mob-menu__cta-btn:hover { background: #b08a4f !important; }
.mob-menu__plus {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  color: rgba(31,24,20,0.3);
  transition: transform 0.3s cubic-bezier(0.32,0.72,0,1), color 0.2s ease;
}
.mob-menu__link--toggle.is-active .mob-menu__plus { transform: rotate(45deg); }
.mob-menu__sub {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height 0.4s cubic-bezier(0.32,0.72,0,1), opacity 0.3s ease, margin 0.3s ease;
  margin-bottom: 0;
}
.mob-menu__sub.is-open {
  max-height: 400px;
  opacity: 1;
  margin-bottom: 8px;
}
.mob-menu__sublink {
  display: block;
  padding: 7px 4px;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 15px;
  font-weight: 400;
  color: rgba(31,24,20,0.5);
  text-decoration: none;
  transition: color 0.2s ease;
}
.mob-menu__sublink:hover { color: #1f1814; }
.mob-menu__bottom {
  padding: 16px 28px calc(env(safe-area-inset-bottom, 0px) + 62px);
  margin-top: 30px;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.6s cubic-bezier(0.32,0.72,0,1) 400ms, transform 0.6s cubic-bezier(0.32,0.72,0,1) 400ms;
}
.mob-menu.is-open .mob-menu__bottom {
  opacity: 1;
  transform: translateY(0);
}
.mob-menu__utils {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  margin-bottom: 14px;
}
.mob-menu__utils a,
.mob-menu__utils button {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: rgba(31,24,20,0.65);
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: color 0.2s ease;
  text-transform: none;
}
.mob-menu__utils a:hover,
.mob-menu__utils button:hover { color: #1f1814; }
.mob-menu__copy {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 10px;
  color: rgba(31,24,20,0.35);
  margin: 0 0 12px;
  line-height: 1.6;
}
.mob-menu__social {
  display: flex;
  gap: 16px;
}
.mob-menu__social a {
  color: rgba(31,24,20,0.3);
  transition: color 0.2s ease;
}
.mob-menu__social a:hover { color: #1f1814; }
.mob-menu__social svg { width: 20px; height: 20px; display: block; }

/* Replace old is-menu-open nav__links popup with nothing */
@media (max-width: 880px) {
  .nav.is-menu-open .nav__links { display: none !important; }
}
/* v1780603353 */

/* Mobile: horisontal carousel */
@media (max-width: 640px) {
  .exp-prices {
    flex-direction: row;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    height: auto !important;
    gap: 14px;
    padding-bottom: 16px;
  }
  .exp-pricecat {
    flex: 0 0 82vw;
    height: auto !important;
    scroll-snap-align: start;
  }
  .price-carousel__header { display: none; }
  .price-carousel__dots { display: none !important; }
}

/* Optaget tider — grå, ikke klikbar */
.skbh-cal__slot--taken {
  opacity: 0.28;
  cursor: not-allowed;
  text-decoration: line-through;
  pointer-events: none;
  border-color: rgba(255,255,255,0.08) !important;
  color: var(--text-muted) !important;
}

/* Slot farver: grøn = ledig, brun = optaget */
.skbh-cal__slot {
  position: relative;
}
.skbh-cal__slot:not(.skbh-cal__slot--taken) {
  border-color: rgba(46,160,67,0.5) !important;
  color: #4caf68 !important;
}
.skbh-cal__slot:not(.skbh-cal__slot--taken):hover {
  background: rgba(46,160,67,0.12) !important;
  border-color: #4caf68 !important;
}
.skbh-cal__slot--taken {
  opacity: 0.55 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  text-decoration: none !important;
  border-color: rgba(176,138,79,0.35) !important;
  color: #b08a4f !important;
  background: rgba(176,138,79,0.06) !important;
}

/* ── Holiday notice banner ────────────────────────────────── */
.holiday-banner {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 10px 48px 10px 16px;
  background: #1a2330;
  border-bottom: 1px solid rgba(201,160,106,0.25);
  text-align: center;
}
.holiday-banner.is-hidden { display: none; }
.holiday-banner__text {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: #e8d5b0;
}
.holiday-banner__text strong {
  color: #C9A06A;
  font-weight: 600;
}
.holiday-banner__close {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: #8a8a8a;
  font-size: 0.9rem;
  cursor: pointer;
  padding: 4px 6px;
  line-height: 1;
  transition: color 0.2s;
}
.holiday-banner__close:hover { color: #C9A06A; }

/* ── Rebooking notice popup ───────────────────────────────── */
.rebook-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(3px);
  opacity: 1;
  transition: opacity 0.3s ease;
}
.rebook-overlay.is-hidden {
  display: none !important;
}
.rebook-modal {
  position: relative;
  width: 360px;
  max-width: 90vw;
  min-height: 320px;
  background: #12191f;
  border-right: 1px solid rgba(201,160,106,0.2);
  padding: 52px 40px 44px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  animation: slideInLeft 0.35s cubic-bezier(0.22,1,0.36,1);
}
@keyframes slideInLeft {
  from { transform: translateX(-100%); opacity: 0; }
  to   { transform: translateX(0);     opacity: 1; }
}
.rebook-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: none;
  border: none;
  color: #8a8a8a;
  font-size: 1rem;
  cursor: pointer;
  padding: 6px 8px;
  line-height: 1;
  transition: color 0.2s;
}
.rebook-modal__close:hover { color: #C9A06A; }
.rebook-modal__greeting {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #C9A06A;
  margin: 0;
}
.rebook-modal__body {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.88rem;
  line-height: 1.7;
  color: #d4c4a8;
  margin: 0;
}
.rebook-modal__thanks {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.82rem;
  color: #8a8a8a;
  margin: 0;
}
.rebook-modal__btn {
  margin-top: 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 22px;
  background: #2a2230;
  color: #d4c4a8;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  border: 1px solid rgba(201,160,106,0.2);
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
  align-self: flex-start;
}
.rebook-modal__btn:hover { background: #352840; border-color: rgba(201,160,106,0.5); }

/* ── Klip & Stil section ─────────────────────────────────── */
.klip-stil {
  background: #f5f0e8;
  padding: 80px 0;
}
.klip-stil__title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(28px, 3.5vw, 44px);
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 40px;
}
.klip-stil__title em {
  font-style: italic;
  color: #b08a4f;
}
.klip-stil__grid {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 600px;
}
.ks-card {
  background: #fff;
  border: 1px solid #e0d8cc;
  border-radius: 4px;
  padding: 28px 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.ks-card__name {
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 10px;
}
.ks-card__desc {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.82rem;
  color: #555;
  line-height: 1.6;
  margin: 0;
}
.ks-card__meta {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
  display: flex;
  gap: 0;
  border-top: 1px solid #e0d8cc;
  padding-top: 14px;
}
.ks-card__meta li {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #888;
}
.ks-card__meta li + li::before {
  content: " / ";
  color: #bbb;
  margin: 0 4px;
}
.ks-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ks-card__price {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: #1a1a1a;
}
.ks-card__book {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #b08a4f;
  background: none;
  border: none;
  border-bottom: 1px solid #b08a4f;
  padding: 2px 0;
  cursor: pointer;
  transition: color 0.2s;
}
.ks-card__book:hover { color: #8a6a38; border-color: #8a6a38; }
