@import url("https://fonts.googleapis.com/css2?family=Lora:wght@400;500;600&family=Nunito+Sans:wght@300;400;500;600&display=swap");

400;500&family=Newsreader:opsz,wght@6..72,300;6..72,400;6..72,500&display=swap');

:root {
  --ink: #423A32;
  --heading: #6D6255;
  --paper: #F8F3EB;
  --white: #FFFDF9;
  --line: rgba(88, 72, 57, 0.16);
  --signal: #E8DDCC;
  --muted: #70665B;
  --agnetha: #F5C84C;
  --caroline: #F3A6B5;
  --helena: #88C9E8;
  --katarina: #93BC82;
  --lina: #C5A8E4;
  --header-h: 76px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 17px;
  line-height: 1.5;
  letter-spacing: 0;
}

body.menu-open { overflow: hidden; }

a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
button, input, textarea { font: inherit; }

.skip-link {
  position: fixed;
  left: 12px;
  top: -80px;
  z-index: 200;
  padding: 12px 16px;
  background: var(--signal);
  color: var(--ink);
}
.skip-link:focus { top: 12px; }

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 20;
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 clamp(20px, 4vw, 64px);
  color: var(--white);
  border-bottom: 1px solid rgba(255, 255, 255, 0.42);
}

.site-header.dark {
  position: relative;
  background: var(--ink);
}

.brand {
  font-size: 20px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0;
}

.brand small {
  display: block;
  font-size: 10px;
  font-weight: 600;
  text-transform: none;
}

.desktop-nav { display: flex; align-items: center; gap: 30px; }
.desktop-nav a { font-size: 14px; font-weight: 700; }
.desktop-nav a:hover, .desktop-nav a:focus-visible { text-decoration: underline; text-underline-offset: 5px; }

.nav-cta, .button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 18px;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.nav-cta { min-height: 40px; padding: 8px 14px; color: var(--ink); background: var(--signal); border-color: var(--signal); }
.button:hover, .button:focus-visible { background: var(--ink); color: var(--white); transform: translateY(-2px); }
.button.light:hover, .button.light:focus-visible { background: var(--white); color: var(--ink); }
.button.signal { background: var(--signal); color: var(--ink); border-color: var(--signal); }

.menu-button {
  display: none;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}
.menu-button span, .menu-button::before, .menu-button::after {
  content: "";
  display: block;
  width: 24px;
  height: 2px;
  margin: 5px auto;
  background: currentColor;
  transition: transform 180ms ease, opacity 180ms ease;
}
.menu-open .menu-button span { opacity: 0; }
.menu-open .menu-button::before { transform: translateY(7px) rotate(45deg); }
.menu-open .menu-button::after { transform: translateY(-7px) rotate(-45deg); }

.mobile-nav {
  position: fixed;
  inset: 0;
  z-index: 15;
  display: grid;
  align-content: center;
  gap: 20px;
  padding: 90px 24px 40px;
  background: var(--ink);
  color: var(--white);
  visibility: hidden;
  opacity: 0;
  transform: translateY(-12px);
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms;
}
.menu-open .mobile-nav { visibility: visible; opacity: 1; transform: none; }
.mobile-nav a { font: 700 clamp(34px, 10vw, 56px)/1.05 Georgia, "Times New Roman", serif; }

.hero {
  position: relative;
  min-height: 92svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  color: var(--white);
  background: var(--ink);
}

.hero-media { position: absolute; inset: 0; }
.hero-media::after { content: ""; position: absolute; inset: 0; background: rgba(68, 62, 69, 0.10); }
.hero-media img { height: 100%; object-fit: cover; object-position: 52% 48%; transform: scale(1.035); animation: hero-settle 1.4s cubic-bezier(.2,.7,.2,1) forwards; }

.hero-content {
  position: relative;
  z-index: 1;
  width: min(1500px, 100%);
  margin: 0 auto;
  padding: 130px clamp(20px, 4vw, 64px) clamp(38px, 7vw, 92px);
}

.kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
}
.kicker::before { content: ""; width: 34px; height: 3px; background: currentColor; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, .display {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: 0;
}
.hero h1 { max-width: 1040px; margin-bottom: 22px; font-size: clamp(54px, 9.4vw, 148px); line-height: .86; }
.hero-copy { max-width: 610px; margin-bottom: 30px; font-size: clamp(18px, 2vw, 24px); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }

.ticker {
  overflow: hidden;
  padding: 17px 0;
  background: var(--signal);
  border-bottom: 1px solid rgba(73, 60, 67, 0.16);
  color: var(--ink);
  white-space: nowrap;
}
.ticker-track { display: inline-flex; gap: 40px; min-width: max-content; animation: ticker 28s linear infinite; }
.ticker span { font-size: 13px; font-weight: 900; text-transform: uppercase; }
.ticker span::after { content: "+"; margin-left: 40px; }

.section { padding: clamp(74px, 10vw, 150px) clamp(20px, 4vw, 64px); }
.section-inner { width: min(1370px, 100%); margin: 0 auto; }
.section-head { display: grid; grid-template-columns: 1fr 2fr; gap: 40px; align-items: start; margin-bottom: clamp(44px, 7vw, 88px); }
.section-head h2 { max-width: 920px; margin-bottom: 0; font-size: clamp(42px, 6vw, 88px); line-height: .98; }
.section-intro { max-width: 700px; font-size: clamp(19px, 2vw, 26px); }

.manifesto { background: var(--ink); color: var(--white); }
.manifesto-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(30px, 6vw, 100px); align-items: end; }
.manifesto h2 { margin-bottom: 40px; font-size: clamp(48px, 7vw, 110px); line-height: .92; }
.manifesto p { max-width: 660px; color: rgba(255,255,255,.74); font-size: 20px; }
.manifesto figure { margin: 0; }
.manifesto figure img { aspect-ratio: 4 / 5; object-fit: cover; filter: saturate(.82) contrast(1.04); }
.manifesto figcaption { margin-top: 10px; font-size: 12px; text-transform: uppercase; }

.offer-list { border-top: 1px solid var(--line); }
.offer-row {
  display: grid;
  grid-template-columns: 70px minmax(180px, .8fr) 1.4fr 32px;
  gap: 22px;
  align-items: center;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
  transition: padding 180ms ease, background 180ms ease;
}
.offer-row:hover { padding-left: 14px; background: rgba(255,255,255,.62); }
.offer-index { font-size: 12px; font-weight: 900; }
.offer-row h3 { margin: 0; font-size: clamp(24px, 3vw, 42px); line-height: 1.1; }
.offer-row p { margin: 0; color: var(--muted); }
.arrow { font-size: 28px; }

.editorial-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 18px; }
.editorial-grid figure { position: relative; margin: 0; overflow: hidden; background: #E5DACB; }
.editorial-grid figure:first-child { grid-row: span 2; }
.editorial-grid img { height: 100%; min-height: 320px; object-fit: cover; transition: transform 600ms cubic-bezier(.2,.7,.2,1); }
.editorial-grid figure:hover img { transform: scale(1.025); }
.editorial-grid figcaption { position: absolute; inset: auto 14px 14px; width: max-content; max-width: calc(100% - 28px); padding: 7px 9px; background: var(--signal); color: var(--ink); font-size: 12px; font-weight: 800; text-transform: uppercase; }

.people-list { border-top: 1px solid var(--line); }
.person-row {
  --person: var(--ink);
  display: grid;
  grid-template-columns: 82px minmax(260px, 1fr) 1.35fr 40px;
  gap: 26px;
  align-items: center;
  padding: 27px 0;
  border-bottom: 1px solid var(--line);
}
.person-row:hover .person-mark { transform: rotate(-5deg) scale(1.04); }
.person-mark {
  width: 64px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  background: var(--person);
  color: white;
  font: 700 23px Georgia, serif;
  transition: transform 180ms ease;
}
.person-row h3 { margin: 0; font-size: clamp(23px, 2.5vw, 36px); line-height: 1.1; }
.person-row p { margin: 0; color: var(--muted); }
.agnetha { --person: var(--agnetha); }
.caroline { --person: var(--caroline); }
.helena { --person: var(--helena); }
.katarina { --person: var(--katarina); }
.lina { --person: var(--lina); }

.portrait-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(36px, 6vw, 90px) 22px;
}
.portrait-card {
  --person: var(--ink);
  grid-column: span 4;
  display: block;
  align-self: start;
}
.portrait-card:nth-child(4) { grid-column: 3 / span 4; }
.portrait-card:nth-child(5) { grid-column: 7 / span 4; }
.portrait-image { position: relative; overflow: hidden; margin-bottom: 22px; background: var(--person); }
.portrait-image::after { content: ""; position: absolute; inset: auto 0 0; height: 12px; background: var(--person); }
.portrait-image img { aspect-ratio: 4 / 5; object-fit: cover; filter: none; transition: filter 280ms ease, transform 500ms cubic-bezier(.2,.7,.2,1); }
.portrait-card:hover .portrait-image img { filter: none; transform: scale(1.025); }
.portrait-card .kicker { color: var(--person); margin-bottom: 10px; }
.portrait-card h2 { margin: 0 0 12px; font-size: clamp(34px, 3.8vw, 58px); line-height: .92; }
.portrait-card > span { font-size: 13px; font-weight: 900; text-transform: uppercase; }

.image-band { min-height: 70svh; position: relative; display: flex; align-items: flex-end; color: var(--white); overflow: hidden; }
.image-band img { position: absolute; inset: 0; height: 100%; object-fit: cover; }
.image-band::after { content: ""; position: absolute; inset: 0; background: rgba(68, 62, 69, .10); }
.image-band .section-inner { position: relative; z-index: 1; padding: 70px 0; }
.image-band h2 { max-width: 900px; margin: 0; font-size: clamp(48px, 8vw, 120px); line-height: .9; }

.final-cta { background: var(--signal); }
.final-cta .section-inner { display: grid; grid-template-columns: 1.4fr .6fr; gap: 60px; align-items: end; }
.final-cta h2 { max-width: 900px; margin: 0; font-size: clamp(50px, 8vw, 116px); line-height: .9; }
.final-cta p { font-size: 19px; }

.page-hero {
  min-height: 72svh;
  display: grid;
  align-items: end;
  padding: clamp(100px, 14vw, 190px) clamp(20px, 4vw, 64px) clamp(60px, 8vw, 110px);
  background: var(--ink);
  color: var(--white);
}
.page-hero .section-inner { margin: 0 auto; }
.page-hero h1 { max-width: 1150px; margin-bottom: 24px; font-size: clamp(62px, 10vw, 150px); line-height: .86; }
.page-hero p { max-width: 720px; font-size: clamp(19px, 2.2vw, 28px); color: rgba(255,255,255,.75); }
.page-hero.accent { background: var(--signal); color: var(--ink); }
.page-hero.accent p { color: rgba(73,60,67,.72); }

.two-col { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(36px, 8vw, 120px); align-items: start; }
.two-col h2 { font-size: clamp(44px, 6vw, 82px); line-height: .98; }
.body-copy { max-width: 690px; }
.body-copy p { font-size: 19px; }

.service-block { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(30px, 7vw, 100px); padding: 58px 0; border-top: 1px solid var(--line); }
.service-block:last-child { border-bottom: 1px solid var(--line); }
.service-block h2 { margin: 0; font-size: clamp(38px, 5vw, 70px); line-height: .95; }
.service-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.tag { padding: 7px 10px; border: 1px solid var(--line); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.price-line { display: flex; justify-content: space-between; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.price-line span:last-child { color: var(--muted); text-align: right; }

.profile-hero { position: relative; overflow: hidden; background: var(--profile, var(--ink)); color: white; }
.profile-hero .section-inner { min-height: 76svh; display: grid; grid-template-columns: 1.15fr .85fr; gap: 60px; align-items: end; padding-top: 100px; padding-bottom: 72px; }
.profile-hero h1 { margin: 0; font-size: clamp(62px, 9vw, 132px); line-height: .84; }
.profile-hero p { max-width: 620px; font-size: clamp(20px, 2.3vw, 30px); }
.profile-image { position: relative; margin-bottom: 28px; overflow: hidden; border: 1px solid rgba(255,255,255,.65); }
.profile-image img { aspect-ratio: 4 / 5; object-fit: cover; filter: none; }
.profile-image span { position: absolute; right: 12px; bottom: 10px; font: 700 clamp(34px, 5vw, 72px)/1 Georgia, serif; color: white; }
.profile-contact { background: var(--profile, var(--signal)); color: white; }
.profile-contact .placeholder { color: rgba(255,255,255,.74); }
.profile-contact .button:hover, .profile-contact .button:focus-visible { background: white; color: var(--profile, var(--ink)); }

.visit-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.visit-grid > div { min-height: 330px; padding: 38px 38px 38px 0; border-bottom: 1px solid var(--line); }
.visit-grid > div:nth-child(even) { padding-left: 38px; border-left: 1px solid var(--line); }
.visit-grid h2 { font-size: clamp(34px, 4vw, 58px); }
.placeholder { color: var(--muted); font-style: italic; }
.map-placeholder { min-height: 460px; display: grid; place-items: center; padding: 30px; background: #EFE5D7; text-align: center; }
.map-placeholder strong { display: block; font: 400 clamp(40px, 6vw, 80px)/1 Georgia, serif; }

.footer { padding: 52px clamp(20px, 4vw, 64px); background: var(--ink); color: var(--white); }
.footer-inner { width: min(1370px, 100%); margin: 0 auto; display: grid; grid-template-columns: 1.4fr .6fr .6fr; gap: 40px; }
.footer-brand { font: 400 clamp(36px, 5vw, 70px)/.92 Georgia, serif; }
.footer h2 { font: 800 12px/1.3 Inter, sans-serif; text-transform: uppercase; }
.footer a { display: block; margin: 7px 0; color: rgba(255,255,255,.72); }
.footer-note { grid-column: 1 / -1; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.55); font-size: 12px; }

[data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity 700ms ease, transform 700ms cubic-bezier(.2,.7,.2,1); }
[data-reveal].visible { opacity: 1; transform: none; }

@keyframes hero-settle { to { transform: scale(1); } }
@keyframes ticker { to { transform: translateX(-50%); } }

@media (max-width: 820px) {
  :root { --header-h: 66px; }
  body { font-size: 16px; }
  .desktop-nav { display: none; }
  .menu-button { display: block; }
  .hero { min-height: 88svh; }
  .hero-content { padding-top: 110px; }
  .hero h1 { font-size: clamp(52px, 17vw, 94px); }
  .section-head, .manifesto-grid, .final-cta .section-inner, .two-col, .profile-hero .section-inner { grid-template-columns: 1fr; }
  .section-head { gap: 18px; }
  .manifesto figure { max-width: 80%; margin-left: auto; }
  .offer-row { grid-template-columns: 45px 1fr 28px; gap: 12px; }
  .offer-row p { grid-column: 2 / -1; }
  .editorial-grid { grid-template-columns: 1fr; }
  .editorial-grid figure:first-child { grid-row: auto; }
  .editorial-grid img { min-height: 280px; aspect-ratio: 4 / 3; }
  .person-row { grid-template-columns: 58px 1fr 28px; gap: 15px; }
  .person-mark { width: 52px; }
  .person-row p { grid-column: 2 / -1; }
  .service-block { grid-template-columns: 1fr; }
  .profile-hero .section-inner { gap: 36px; }
  .portrait-grid { grid-template-columns: 1fr 1fr; }
  .portrait-card, .portrait-card:nth-child(4), .portrait-card:nth-child(5) { grid-column: auto; }
  .visit-grid { grid-template-columns: 1fr; }
  .visit-grid > div, .visit-grid > div:nth-child(even) { min-height: 0; padding: 30px 0; border-left: 0; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 480px) {
  .hero-actions { align-items: stretch; flex-direction: column; }
  .button { width: 100%; }
  .manifesto figure { max-width: 100%; }
  .final-cta h2 { font-size: 48px; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-brand, .footer-note { grid-column: auto; }
  .portrait-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
}

/* 2026 warm neutral palette — practitioner colours remain individual accents. */
.site-header.dark,
.mobile-nav,
.manifesto,
.footer,
.page-hero:not(.accent) {
  background: #6A5949;
}
.hero {
  background: #6A5949;
}
.button:hover,
.button:focus-visible {
  background: #6A5949;
}
.person-mark {
  border-radius: 50%;
}
.nav-cta,
.button.signal,
.ticker,
.final-cta,
.page-hero.accent {
  background: var(--signal);
}

/* Fresh image-led homepage */
.photo-mosaic {
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:14px;
}
.photo-mosaic figure { margin:0; overflow:hidden; background:#f3efec; }
.photo-mosaic figure:nth-child(1){grid-column:span 7;}
.photo-mosaic figure:nth-child(2){grid-column:span 5;}
.photo-mosaic figure:nth-child(3){grid-column:span 4;}
.photo-mosaic figure:nth-child(4){grid-column:span 4;}
.photo-mosaic figure:nth-child(5){grid-column:span 4;}
.photo-mosaic figure:nth-child(6){grid-column:span 7;}
.photo-mosaic figure:nth-child(7){grid-column:span 5;}
.photo-mosaic img { width:100%; height:100%; min-height:300px; object-fit:cover; }
.photo-mosaic figure:nth-child(1) img,
.photo-mosaic figure:nth-child(6) img { min-height:440px; }
@media(max-width:820px){
  .photo-mosaic {grid-template-columns:1fr 1fr;}
  .photo-mosaic figure:nth-child(n){grid-column:auto;}
  .photo-mosaic img,.photo-mosaic figure:nth-child(1) img,.photo-mosaic figure:nth-child(6) img{min-height:240px;}
}

/* Daylight v3 */
.site-header,
.site-header.dark {
  position:absolute;
  background:rgba(255,255,255,.94);
  color:var(--ink);
  border-bottom:1px solid rgba(55,58,53,.10);
  backdrop-filter:blur(8px);
}
.site-header.dark { position:relative; }
.brand { display:flex; align-items:center; gap:12px; }
.brand-logo { width:108px; height:62px; object-fit:contain; mix-blend-mode:multiply; }
.brand-text { display:none; }
.hero { color:var(--ink); background:#fff; min-height:90svh; }
.hero-media { left:42%; }
.hero-media::after { background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.97) 18%,rgba(255,255,255,.68) 40%,rgba(255,255,255,.06) 66%); }
.hero-content { padding-right:58%; }
.hero .kicker,.hero-copy { color:var(--ink); }
.button.light { background:rgba(255,255,255,.88); color:var(--ink); }
.ticker { background:#EEF5EA; border-color:rgba(55,58,53,.10); }
.manifesto { background:#F3F7F0; color:var(--ink); }
.manifesto p { color:var(--muted); }
.footer { background:#F2F6EF; color:var(--ink); }
.footer a,.footer-note { color:var(--muted); }
.footer-note { border-color:rgba(55,58,53,.12); }
.page-hero:not(.accent) { background:#EEF4EA; color:var(--ink); }
.page-hero:not(.accent) p { color:var(--muted); }
.page-hero.accent,.final-cta { background:#E7F1E3; }
.portrait-image img,.profile-image img { filter:none; }
.fresh-story { display:grid; grid-template-columns:1.1fr .9fr; gap:16px; }
.fresh-story figure { margin:0; overflow:hidden; }
.fresh-story img { height:100%; min-height:420px; object-fit:cover; }
.fresh-story .stack { display:grid; grid-template-rows:1fr 1fr; gap:16px; }
@media(max-width:820px){
 .brand-logo{width:88px;height:52px}
 .hero-media{left:0}
 .hero-media::after{background:linear-gradient(0deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.55) 52%,rgba(255,255,255,.08) 100%)}
 .hero-content{padding-right:20px}
 .fresh-story{grid-template-columns:1fr}
}

/* v4: house hero + single-colour logo */
.brand-logo {
  width: 120px;
  height: 66px;
  object-fit: contain;
  mix-blend-mode: normal;
}
.hero-media { left: 39%; }
.hero-media img { object-position: 50% 48%; }
.hero-media::after {
  background:
    linear-gradient(90deg,
      #fff 0%,
      rgba(255,255,255,.98) 20%,
      rgba(255,255,255,.78) 38%,
      rgba(255,255,255,.18) 60%,
      rgba(255,255,255,.02) 82%);
}
@media(max-width:820px){
  .brand-logo { width: 96px; height: 54px; }
  .hero-media { left:0; }
  .hero-media::after {
    background:linear-gradient(0deg,
      rgba(255,255,255,.98) 0%,
      rgba(255,255,255,.72) 48%,
      rgba(255,255,255,.10) 100%);
  }
}

/* v5: team photo as hero, used only once */
.hero-media img {
  object-position: 54% 42%;
}
.hero-media::after {
  background:
    linear-gradient(90deg,
      #fff 0%,
      rgba(255,255,255,.98) 18%,
      rgba(255,255,255,.82) 36%,
      rgba(255,255,255,.22) 60%,
      rgba(255,255,255,.04) 82%);
}
@media (max-width: 820px) {
  .hero-media img { object-position: 52% 34%; }
}

/* v6: clearer team hero + larger logo */
.brand-logo {
  width: 158px;
  height: 88px;
  object-fit: contain;
}
.site-header { min-height: 96px; }
.hero-media::after {
  background: linear-gradient(90deg,
    rgba(255,255,255,.98) 0%,
    rgba(255,255,255,.90) 13%,
    rgba(255,255,255,.42) 27%,
    rgba(255,255,255,.08) 42%,
    rgba(255,255,255,0) 55%);
}
.hero-media img {
  object-position: 55% 42%;
  filter: none;
}
@media(max-width:820px){
  .brand-logo { width: 126px; height: 72px; }
  .site-header { min-height: 80px; }
  .hero-media::after {
    background: linear-gradient(0deg,
      rgba(255,255,255,.92) 0%,
      rgba(255,255,255,.40) 27%,
      rgba(255,255,255,.04) 52%,
      rgba(255,255,255,0) 70%);
  }
}

/* v8 fixed - calmer, slimmer, more refined typography */
400;500&family=Newsreader:opsz,wght@6..72,300;6..72,400;6..72,500&display=swap');

body, button, input, textarea, select {
  font-family: 'DM Sans', Arial, sans-serif;
  font-weight: 300;
  letter-spacing: -0.01em;
}

h1, h2, h3, .display, .page-hero h1 {
  font-family: 'Newsreader', Georgia, serif;
  font-weight: 300;
  letter-spacing: -0.02em;
}

.hero h1 {
  font-family: 'Newsreader', Georgia, serif;
  font-weight: 300;
  line-height: .94;
}

h2 { font-weight: 300; line-height: 1.02; }
h3 { font-weight: 400; line-height: 1.08; }

p, .hero-copy, .section-intro, .footer {
  font-weight: 300;
  line-height: 1.62;
}

.desktop-nav a, .mobile-nav a, .button, .kicker, .ticker span {
  font-family: 'DM Sans', Arial, sans-serif;
}
.desktop-nav a, .button { font-weight: 400; letter-spacing: .01em; }
.kicker, .ticker span { font-weight: 400; letter-spacing: .07em; }

/* v9 — ensure the new typography is visibly applied */
body, button, input, textarea, select {
  font-family: "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 300 !important;
}

h1, h2, h3, .display, .hero h1, .page-hero h1,
.profile-hero h1, .footer-brand {
  font-family: "Newsreader", Georgia, serif !important;
  font-weight: 300 !important;
  letter-spacing: -0.025em !important;
}

.hero h1 {
  line-height: .92 !important;
}

.section-head h2,
.manifesto h2,
.final-cta h2,
.image-band h2 {
  line-height: .98 !important;
}

.desktop-nav a,
.mobile-nav a,
.button,
.kicker,
.ticker span,
.tag,
.portrait-card > span {
  font-family: "DM Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 400 !important;
}


/* v10: schedule and courses */
.schedule-section { background:#fff; }
.schedule-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,64px); align-items:start; }
.schedule-card h2 { margin:.15em 0 .65em; font-size:clamp(2.2rem,4vw,4.5rem); }
.schedule-image-link { display:block; overflow:hidden; border-radius:22px; background:#f2f6ef; box-shadow:0 14px 40px rgba(55,58,53,.08); }
.schedule-image-link img { display:block; width:100%; height:auto; transition:transform .35s ease; }
.schedule-image-link:hover img { transform:scale(1.012); }
@media (max-width:820px){ .schedule-grid { grid-template-columns:1fr; gap:48px; } }

/* v11 — schema & kurser integrated into the bright editorial design */
.schedule-section {
  background: #fbfdf9;
  padding-top: clamp(82px, 10vw, 138px);
  padding-bottom: clamp(82px, 10vw, 138px);
}
.schedule-head {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 40px;
  align-items: start;
  margin-bottom: clamp(42px, 7vw, 76px);
}
.schedule-head h2 {
  max-width: 760px;
  margin: 0 0 18px;
  font-size: clamp(42px, 5.6vw, 78px);
  line-height: .98;
}
.schedule-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(20px, 3vw, 36px);
}
.schedule-card {
  overflow: hidden;
  border-radius: 2px;
  border: 1px solid rgba(55,58,53,.08);
}
.schedule-card--sage { background: #edf5e9; }
.schedule-card--blush { background: #fff1f3; }
.schedule-card-copy {
  position: relative;
  padding: clamp(28px, 4vw, 48px);
  min-height: 240px;
}
.schedule-number {
  position: absolute;
  top: 28px;
  right: 32px;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 12px;
  letter-spacing: .09em;
  color: rgba(55,58,53,.44);
}
.schedule-card-copy h3 {
  max-width: 520px;
  margin: 0 0 18px;
  font-family: "Newsreader", Georgia, serif !important;
  font-size: clamp(38px, 4.2vw, 62px);
  font-weight: 300 !important;
  line-height: .96;
}
.schedule-card-copy > p:last-child {
  max-width: 480px;
  margin-bottom: 0;
  color: var(--muted);
}
.schedule-poster {
  position: relative;
  display: block;
  margin: 0 clamp(18px, 3vw, 32px) clamp(18px, 3vw, 32px);
  padding: clamp(12px, 1.6vw, 18px);
  background: #fff;
  box-shadow: 0 18px 50px rgba(55,58,53,.08);
  overflow: hidden;
}
.schedule-poster img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 680px;
  object-fit: contain;
  background: #fff;
  transition: transform 350ms ease;
}
.schedule-poster:hover img { transform: scale(1.008); }
.schedule-open {
  position: absolute;
  right: 18px;
  bottom: 18px;
  padding: 8px 11px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(55,58,53,.12);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: .01em;
}
@media (max-width: 820px) {
  .schedule-head,
  .schedule-grid { grid-template-columns: 1fr; }
  .schedule-head { gap: 12px; }
  .schedule-card-copy { min-height: 0; }
}

/* v12 — requested typography: Lora + Nunito Sans */
body, button, input, textarea, select,
p, li, a, .hero-copy, .section-intro, .profile-copy, .footer,
.desktop-nav a, .mobile-nav a, .button, .kicker, .ticker span,
.tag, .small-label, .eyebrow {
  font-family: "Nunito Sans", Arial, sans-serif !important;
}

body, p, .hero-copy, .section-intro, .profile-copy, .footer {
  font-weight: 300 !important;
  line-height: 1.62;
}

h1, h2, h3, h4, h5, h6,
.display, .hero-title, .hero h1, .page-hero h1,
.profile-hero h1, .manifesto blockquote, .quote, .serif,
.section-head h2, .final-cta h2, .image-band h2 {
  font-family: "Lora", Georgia, serif !important;
  font-weight: 400 !important;
  letter-spacing: -0.025em !important;
}

.hero h1 { line-height: .98 !important; }
h2 { line-height: 1.08 !important; }
h3 { line-height: 1.15 !important; }

.desktop-nav a, .mobile-nav a, .button {
  font-weight: 500 !important;
}
.kicker, .eyebrow, .small-label, .ticker span {
  font-weight: 500 !important;
  letter-spacing: .06em;
}

/* v13 — slightly smaller headings + safer spacing */
.hero h1, .hero-title {
  font-size: clamp(3.1rem, 6.2vw, 6.4rem) !important;
  line-height: 1.00 !important;
  margin-bottom: 1.15rem !important;
}

.page-hero h1, .profile-hero h1 {
  font-size: clamp(2.9rem, 5.4vw, 5.4rem) !important;
  line-height: 1.03 !important;
  margin-bottom: 1.1rem !important;
}

h2, .section-head h2, .manifesto h2, .final-cta h2, .image-band h2 {
  font-size: clamp(2.25rem, 4.2vw, 4.25rem) !important;
  line-height: 1.08 !important;
  margin-bottom: 1rem !important;
}

h3 {
  font-size: clamp(1.45rem, 2.3vw, 2.15rem) !important;
  line-height: 1.18 !important;
  margin-bottom: .7rem !important;
}

h1 + p, h2 + p, h3 + p,
.hero h1 + .hero-copy,
.section-head h2 + p {
  margin-top: .65rem !important;
}

@media (max-width: 820px) {
  .hero h1, .hero-title {
    font-size: clamp(2.65rem, 12vw, 4.4rem) !important;
    line-height: 1.03 !important;
  }
  h2, .section-head h2, .manifesto h2, .final-cta h2, .image-band h2 {
    font-size: clamp(2rem, 9vw, 3.15rem) !important;
  }
}

/* v15 — larger/darker logo + larger top navigation */
.brand-logo {
  width: 190px !important;
  height: 104px !important;
  filter: brightness(.72) saturate(1.18) !important;
}

.site-header {
  min-height: 112px !important;
}

.desktop-nav a {
  font-size: 1.08rem !important;
  font-weight: 500 !important;
}

@media (max-width: 820px) {
  .brand-logo {
    width: 150px !important;
    height: 84px !important;
  }

  .site-header {
    min-height: 92px !important;
  }

  .mobile-nav a,
  .menu-toggle {
    font-size: 1.05rem !important;
  }
}

/* v16 — correct Hälsans Hus logo, transparent background */
.brand-logo {
  width: 190px !important;
  height: 104px !important;
  object-fit: contain !important;
  filter: none !important;
  background: transparent !important;
}
@media (max-width: 820px) {
  .brand-logo {
    width: 150px !important;
    height: 84px !important;
  }
}

/* v18b — small homepage corrections only */
.manifesto {
  padding-top: 2.25rem !important;
}
.footer h2 {
  font-family: "Nunito Sans", Arial, sans-serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: .02em !important;
  margin-bottom: .8rem !important;
}

/* v19 — complete requested refinements */
.manifesto {
  padding-top: 0 !important;
}
.manifesto .section-inner {
  padding-top: 2rem !important;
}
.manifesto-grid > div {
  align-self: start !important;
  padding-top: 0 !important;
}
.manifesto-grid .kicker {
  margin-top: 0 !important;
}

/* Utforska / Följ are headings and should use Lora like the site's other headings */
.footer h2 {
  font-family: "Lora", Georgia, serif !important;
  font-size: 1.35rem !important;
  font-weight: 400 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.015em !important;
  margin-bottom: .85rem !important;
}

/* v20 — center the content vertically in section two */
.manifesto {
  padding-top: inherit !important;
}
.manifesto .section-inner {
  padding-top: inherit !important;
}
.manifesto-grid {
  align-items: center !important;
}
.manifesto-grid > div {
  align-self: center !important;
  padding-top: 0 !important;
}

/* v24 — readable text on the final wide image while keeping it bright */
.image-band::after {
  background: linear-gradient(90deg,
    rgba(255,255,255,.88) 0%,
    rgba(255,255,255,.66) 32%,
    rgba(255,255,255,.18) 58%,
    rgba(255,255,255,0) 78%) !important;
}
.image-band h2,
.image-band p,
.image-band .kicker {
  color: #24362d !important;
  text-shadow: none !important;
}

/* v26 — brighter, more editorial footer */
.footer-editorial {
  background: #dfe9dd !important;
  color: #244032 !important;
  padding: 0 !important;
  overflow: hidden;
  border-top: 1px solid rgba(36,64,50,.14);
}
.footer-topline {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(1rem,3vw,2.8rem);
  padding: 1rem 5vw;
  border-bottom: 1px solid rgba(36,64,50,.14);
  font-family: "Nunito Sans", Arial, sans-serif;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.footer-topline i { font-style: normal; opacity: .45; }
.footer-editorial-inner {
  width: min(1180px,90vw);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(280px,1.15fr) minmax(420px,1.6fr);
  gap: clamp(3rem,8vw,8rem);
  padding: clamp(3.5rem,7vw,6.5rem) 0;
  align-items: start;
}
.footer-intro { max-width: 470px; }
.footer-logo {
  width: 150px;
  height: auto;
  object-fit: contain;
  margin-bottom: 2rem;
  mix-blend-mode: multiply;
}
.footer-statement {
  font-family: "Lora", Georgia, serif !important;
  font-size: clamp(2rem,3.3vw,3.6rem) !important;
  line-height: 1.04 !important;
  font-weight: 400 !important;
  letter-spacing: -.035em;
  margin: 0 0 2rem !important;
  color: #244032 !important;
}
.footer-arrow-link {
  display: inline-flex;
  gap: .75rem;
  align-items: center;
  font-family: "Nunito Sans", Arial, sans-serif;
  font-weight: 600;
  color: #244032 !important;
  text-decoration: none;
  border-bottom: 1px solid rgba(36,64,50,.55);
  padding-bottom: .25rem;
}
.footer-arrow-link span { font-size: 1.2em; }
.footer-original {
  padding-top: .5rem;
}
.footer-original h2 {
  font-family: "Lora", Georgia, serif !important;
  font-size: 1.25rem !important;
  font-weight: 400 !important;
  color: #244032 !important;
}
.footer-original a, .footer-original p, .footer-original li {
  color: #244032 !important;
}
.footer-bottom {
  border-top: 1px solid rgba(36,64,50,.14);
  width: min(1180px,90vw);
  margin: 0 auto;
  padding: 1.15rem 0 1.4rem;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-family: "Nunito Sans", Arial, sans-serif;
  font-size: .76rem;
  letter-spacing: .03em;
  opacity: .72;
}
@media(max-width:820px){
  .footer-editorial-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .footer-topline { gap: .8rem; letter-spacing: .1em; }
  .footer-logo { width: 125px; }
  .footer-bottom { flex-direction: column; }
}

/* v27 — real Hälsans Hus logo as footer background */
.footer-editorial {
  position: relative;
  isolation: isolate;
}
.footer-editorial::before {
  content: "";
  position: absolute;
  left: -4vw;
  top: 50%;
  width: min(48vw, 680px);
  height: 92%;
  transform: translateY(-50%);
  background-image: url("assets/logo-gron-vit.png");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: contain;
  opacity: .075;
  pointer-events: none;
  z-index: -1;
}
.footer-editorial-inner,
.footer-topline,
.footer-bottom {
  position: relative;
  z-index: 1;
}
@media(max-width:820px){
  .footer-editorial::before {
    left: -18vw;
    width: 92vw;
    height: 72%;
    opacity: .055;
  }
}

/* v28 — much larger real logo watermark; duplicate footer brand removed */
.footer-editorial::before {
  left: -18vw !important;
  top: 52% !important;
  width: min(88vw, 1180px) !important;
  height: 132% !important;
  opacity: .065 !important;
  background-size: contain !important;
  background-position: left center !important;
}
@media(max-width:820px){
  .footer-editorial::before {
    left: -42vw !important;
    width: 150vw !important;
    height: 100% !important;
    opacity: .05 !important;
  }
}

/* v29 — footer watermark uses only the drawn part of the real logo */
.footer-editorial::before {
  background-image: url("assets/logo-symbol.png") !important;
  left: -10vw !important;
  width: min(76vw, 980px) !important;
  height: 125% !important;
  background-size: contain !important;
  background-position: left center !important;
}
@media(max-width:820px){
  .footer-editorial::before {
    left: -28vw !important;
    width: 125vw !important;
    height: 96% !important;
  }
}

/* v30 — slightly more compact rhythm across the whole site */
.section {
  padding-top: clamp(3.5rem, 6vw, 5.5rem) !important;
  padding-bottom: clamp(3.5rem, 6vw, 5.5rem) !important;
}
.hero {
  min-height: auto !important;
}
.hero-inner {
  padding-top: clamp(3rem, 5vw, 5rem) !important;
  padding-bottom: clamp(3rem, 5vw, 5rem) !important;
}
.section-inner {
  gap: clamp(1.75rem, 3vw, 3rem);
}
.section-head {
  margin-bottom: clamp(1.8rem, 3vw, 3rem) !important;
}
.manifesto {
  padding-top: clamp(3rem, 5vw, 4.75rem) !important;
  padding-bottom: clamp(3rem, 5vw, 4.75rem) !important;
}
.manifesto .section-inner {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.offer-row,
.profile-row,
.person-row {
  padding-top: clamp(1.7rem, 2.8vw, 2.7rem) !important;
  padding-bottom: clamp(1.7rem, 2.8vw, 2.7rem) !important;
}
.image-mosaic,
.image-grid,
.two-images {
  margin-top: clamp(2rem, 3.5vw, 3.5rem) !important;
  margin-bottom: clamp(2rem, 3.5vw, 3.5rem) !important;
}
.image-band {
  margin-top: clamp(2.5rem, 4vw, 4rem) !important;
  margin-bottom: clamp(2.5rem, 4vw, 4rem) !important;
}
.footer-editorial-inner {
  padding-top: clamp(2.8rem, 5vw, 4.6rem) !important;
  padding-bottom: clamp(2.8rem, 5vw, 4.6rem) !important;
  gap: clamp(2.2rem, 5vw, 5rem) !important;
}
.footer-statement {
  margin-bottom: 1.4rem !important;
}
p {
  margin-bottom: .85em;
}
@media(max-width:820px){
  .section {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }
  .hero-inner {
    padding-top: 2.6rem !important;
    padding-bottom: 2.8rem !important;
  }
  .footer-editorial-inner {
    padding-top: 2.8rem !important;
    padding-bottom: 2.8rem !important;
  }
}

/* v31 — completely still, soft opening team image */
.hero-media,
.hero-media img {
  animation: none !important;
  transition: none !important;
  transform: none !important;
}
.hero-media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  filter: none !important;
  backface-visibility: hidden;
}
.hero-media::before {
  display: none !important;
  content: none !important;
}
.hero-media::after {
  background: linear-gradient(90deg,
    rgba(255,255,255,.96) 0%,
    rgba(255,255,255,.78) 15%,
    rgba(255,255,255,.30) 30%,
    rgba(255,255,255,.06) 43%,
    rgba(255,255,255,0) 56%) !important;
  animation: none !important;
  transition: none !important;
  transform: none !important;
}
@media(max-width:820px){
  .hero-media::after {
    background: linear-gradient(0deg,
      rgba(255,255,255,.88) 0%,
      rgba(255,255,255,.34) 30%,
      rgba(255,255,255,.04) 55%,
      rgba(255,255,255,0) 72%) !important;
  }
}

/* v32 — practitioner presentation: center name/content vertically */
.profile-hero-copy {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-self: stretch !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.profile-hero .kicker,
.profile-hero .eyebrow,
.profile-hero .small-label {
  margin-top: 0 !important;
}
@media(max-width:820px){
  .profile-hero-copy {
    justify-content: center !important;
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
}

/* v33 — ACTUAL profile markup: center the name block vertically */
.profile-hero .section-inner > div:first-child {
  align-self: center !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.profile-hero .section-inner > div:first-child h1 {
  margin-bottom: 0 !important;
}

@media (max-width: 820px) {
  .profile-hero .section-inner > div:first-child {
    align-self: center !important;
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
}

/* v34 — Vi i huset: all portraits consistently black & white */
.portrait-card .portrait-image img {
  filter: grayscale(1) contrast(1.03) !important;
}
.portrait-card:hover .portrait-image img {
  filter: grayscale(1) contrast(1.03) !important;
}

.utbud-hero .kicker {
  color: #2f332f !important;
  opacity: 1 !important;
}

/* v34 — arrows/row links on touch devices */
.person-row, .offer-row, .portrait-card, .schedule-card {
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(36,64,50,.08);
}
.person-row .arrow, .offer-row .arrow {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  min-height: 32px;
  pointer-events: none;
  position: relative;
  z-index: 2;
}
@media(max-width:820px){
  .person-row, .offer-row {
    position: relative;
    cursor: pointer;
  }
  .person-row .arrow, .offer-row .arrow {
    grid-column: -2 / -1 !important;
    grid-row: 1 / span 2 !important;
    justify-self: end;
    align-self: center;
    font-size: 1.55rem !important;
  }
}

/* v34 — three distinct, soft top blocks on Besök & kontakt */
.visit-top--one {
  background: #F3E6EA !important; /* soft blush */
}
.visit-top--two {
  background: #E7F1E3 !important; /* sage */
  color: #373A35 !important;
}
.visit-top--two p,
.visit-top--two h2,
.visit-top--two .kicker {
  color: #373A35 !important;
}
.visit-top--three {
  background: #E7F1F5 !important; /* pale blue */
  color: #373A35 !important;
}

/* v34 — robust mobile homepage hero: image and text no longer collide */
@media(max-width:820px){
  .hero {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    background: #fff !important;
    overflow: visible !important;
  }

  .hero-media {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    width: 100% !important;
    height: 56svh !important;
    min-height: 390px !important;
    order: 1;
    overflow: hidden !important;
  }

  .hero-media img {
    position: static !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 54% 34% !important;
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }

  .hero-media::after {
    background: linear-gradient(0deg,
      rgba(255,255,255,.18) 0%,
      rgba(255,255,255,.03) 28%,
      rgba(255,255,255,0) 55%) !important;
  }

  .hero-content {
    position: relative !important;
    order: 2;
    width: 100% !important;
    padding: 1.7rem 1.25rem 2.8rem !important;
    margin: 0 !important;
    background: #fff !important;
  }

  .hero h1,
  .hero-title {
    max-width: 9.5em !important;
    font-size: clamp(2.55rem, 11vw, 4rem) !important;
    line-height: 1.02 !important;
    margin: 0 0 1rem !important;
  }

  .hero-copy {
    max-width: 31rem !important;
    font-size: 1.05rem !important;
    line-height: 1.55 !important;
    margin-bottom: 1.35rem !important;
  }

  .hero-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: .75rem !important;
  }
}

/* v35 — Vad vi erbjuder + slightly lower top blocks */

/* New, softer top-block color for "Vad vi erbjuder" */
.utbud-hero {
  background: #F2F5EF !important;
  color: #373A35 !important;
}

/* Match the overheading tone used on the other pages */
.utbud-hero .kicker {
  color: var(--muted) !important;
  opacity: 1 !important;
}

/* Slightly lower/less tall top blocks across subpages */
.page-hero {
  min-height: 58svh !important;
  padding-top: clamp(92px, 10vw, 140px) !important;
  padding-bottom: clamp(42px, 5vw, 72px) !important;
}

@media (max-width: 820px) {
  .page-hero {
    min-height: auto !important;
    padding-top: 100px !important;
    padding-bottom: 44px !important;
  }
}

/* v36 — Besök: restore heading to the middle/right column */
#bokning .section-head {
  display: grid !important;
  grid-template-columns: minmax(180px, .7fr) minmax(0, 1.3fr) !important;
  gap: clamp(30px, 7vw, 100px) !important;
}
#bokning .section-head > div {
  grid-column: 2 !important;
}
@media(max-width:820px){
  #bokning .section-head {
    grid-template-columns: 1fr !important;
  }
  #bokning .section-head > div {
    grid-column: 1 !important;
  }
}

/* v36 — softer practitioner colours for Helena, Katarina and Lina */
:root {
  --helena: #A9CAD7 !important;
  --katarina: #B8CDA9 !important;
  --lina: #C8BEDB !important;
}

/* v37 — all five practitioner colours softer, while preserving their identities */
:root {
  --agnetha: #E4C86F !important;
  --caroline: #DFA9B4 !important;
  --helena: #A9CAD7 !important;
  --katarina: #B8CDA9 !important;
  --lina: #C8BEDB !important;
}

/* Keep all five colour dots/marks visible on homepage and contact lists */
.person-mark {
  display: inline-grid !important;
  place-items: center !important;
  width: 58px !important;
  height: 58px !important;
  border-radius: 50% !important;
  background: var(--person) !important;
  color: #373A35 !important;
  opacity: 1 !important;
  visibility: visible !important;
}
@media(max-width:820px){
  .person-mark {
    width: 48px !important;
    height: 48px !important;
  }
}

/* QR code in contact section */
.social-qr {
  display: block;
  width: min(190px, 60vw);
  height: auto;
  margin-top: 1.25rem;
  background: #fff;
  padding: 8px;
}
.visit-grid a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* v38 — standalone Schema & kurser page */
.schema-page-hero {
  background: #EFEAF4 !important; /* mild lavender */
  color: #373A35 !important;
}
.schema-page-hero .kicker {
  color: #756A7B !important;
  opacity: 1 !important;
}
.schema-page-hero p {
  color: #6F756C !important;
}

/* Give the page a subtle lavender identity without changing the cards themselves */
.schema-page-hero + .schedule-section {
  background: #FCFAFD !important;
}

/* v40 — schedule areas: only the two posters, no duplicate explanatory text */
.schedule-section--images-only {
  padding-top: clamp(2.5rem, 4vw, 4rem) !important;
  padding-bottom: clamp(3rem, 5vw, 5rem) !important;
}
.schedule-grid--images-only {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(1.25rem, 3vw, 2.5rem) !important;
  align-items: start !important;
}
.schedule-poster-only {
  display: block !important;
  overflow: hidden !important;
  border-radius: 18px !important;
  background: #fff !important;
}
.schedule-poster-only img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}
@media(max-width:820px){
  .schedule-grid--images-only {
    grid-template-columns: 1fr !important;
  }
}

/* v41 — simplified footer: watermark only, address + social icons */
.footer-editorial-inner--simple {
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: end !important;
}
.footer-editorial-inner--simple .footer-intro {
  max-width: 760px;
}
.footer-address {
  margin: 1.8rem 0 0 !important;
  font-size: 1rem;
  line-height: 1.65;
  color: #42574B;
}
.footer-social {
  display: flex;
  gap: .8rem;
  align-items: center;
  padding-bottom: .25rem;
}
.footer-social a {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(36,64,50,.32);
  border-radius: 50%;
  color: #244032 !important;
  transition: transform 160ms ease, background 160ms ease;
}
.footer-social a:hover,
.footer-social a:focus-visible {
  transform: translateY(-2px);
  background: rgba(255,255,255,.45);
}
.footer-social svg {
  width: 21px;
  height: 21px;
  fill: currentColor;
}
@media(max-width:820px){
  .footer-editorial-inner--simple {
    grid-template-columns: 1fr !important;
    align-items: start !important;
  }
  .footer-social {
    padding-top: .6rem;
  }
}

/* v43 — Referenser */
.references-hero {
  background: #F4EDEA !important;
  color: #373A35 !important;
}
.references-hero .kicker {
  color: #8A6F68 !important;
  opacity: 1 !important;
}
.references-hero p {
  color: #6F756C !important;
}
.references-intro {
  max-width: 760px;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}
.references-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2.2vw, 1.8rem);
}
.reference-card {
  min-height: 260px;
  padding: clamp(1.7rem, 3vw, 2.6rem);
  border-radius: 22px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.reference-card--rose { background: #F4E6E9; }
.reference-card--sage { background: #E8F0E4; }
.reference-card--blue { background: #E7F0F3; }
.reference-card--lavender { background: #EEEAF4; }
.reference-quote {
  font-family: "Lora", serif;
  font-size: clamp(1.35rem, 2.2vw, 2rem);
  line-height: 1.35;
  margin: 0 0 2rem;
}
.reference-meta {
  margin: 0;
  font-weight: 700;
  color: #667067;
}
.references-note {
  margin-top: 1.5rem;
  color: #747A72;
  font-size: .92rem;
}
.home-references-link {
  background: #FBF8F6;
}
.home-reference-card {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 2rem;
  padding: clamp(2rem, 4vw, 3.5rem);
  border-radius: 24px;
  background: #F4EDEA;
  color: inherit;
  text-decoration: none;
}
.home-reference-card h2 {
  margin-bottom: .7rem;
}
.home-reference-card .arrow {
  font-size: 2rem;
}
@media(max-width:820px){
  .references-grid { grid-template-columns: 1fr; }
  .reference-card { min-height: 220px; }
}

/* v44 — lite mer luft mellan logotypen och linjen under headern */
.site-header {
  padding-bottom: 12px !important;
}
@media(max-width:820px){
  .site-header {
    padding-bottom: 10px !important;
  }
}

/* v49 — original hero layout restored; portrait photo framed without cutting heads */
.hero-media {
  overflow: hidden !important;
  background: #f4f1eb !important;
}
.hero-media img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: 50% 18% !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
}

/* On mobile the photo sits above the text as before, but with extra height
   so the full upper part of the portrait is preserved. */
@media(max-width:820px){
  .hero {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    overflow: visible !important;
  }
  .hero-media {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: 72svh !important;
    min-height: 520px !important;
    order: 1 !important;
    overflow: hidden !important;
  }
  .hero-media img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 50% 16% !important;
  }
  .hero-content {
    position: relative !important;
    order: 2 !important;
  }
}

/* v50 — tydligare kontrast i andra blocket på startsidan */
.home-second-block {
  background: #E6EFE8 !important;
}

/* v51 — mjuk blå kontrast på den rörliga baren */
.ticker,
.marquee,
.moving-bar,
.word-strip,
.hero-strip,
.scroll-strip {
  background: #D9E8EE !important;
  color: #385766 !important;
}
.ticker *,
.marquee *,
.moving-bar *,
.word-strip *,
.hero-strip *,
.scroll-strip * {
  color: inherit !important;
}

.ticker { background: #D9E8EE !important; color: #385766 !important; }

.ticker-track { background: #D9E8EE !important; color: #385766 !important; }

/* v52 — coolare, tydligare blå/petrol på den rörliga baren */
.ticker {
  background: #4F7890 !important;
  border-color: rgba(35, 62, 76, .18) !important;
  color: #FFFFFF !important;
}
.ticker span,
.ticker-track {
  color: #FFFFFF !important;
}

/* v53 — sammanhållen varm greige/beige ticker */
.ticker {
  background: #D8CBBE !important;
  background-image: none !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  color: #4D4944 !important;
}
.ticker-track {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  color: inherit !important;
}
.ticker span,
.ticker span::after {
  color: #4D4944 !important;
}

/* v54 — svalare sand/greige, mindre brun */
.ticker {
  background: #DEDCD3 !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #4B504B !important;
}
.ticker-track {
  background: transparent !important;
  color: inherit !important;
}
.ticker span,
.ticker span::after {
  color: #4B504B !important;
}

/* v55 — byt det gröna blocket mot en varm, pudrig korallrosa kontrast */
.home-second-block {
  background: #E9D4D0 !important;
  color: #373A35 !important;
}
.home-second-block h1,
.home-second-block h2,
.home-second-block h3,
.home-second-block p {
  color: #373A35 !important;
}

/* v56 — två greige toner med tydlig men mjuk kontrast */
.ticker {
  background: #D5D2C8 !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #484A46 !important;
}
.ticker-track {
  background: transparent !important;
  color: inherit !important;
}
.ticker span,
.ticker span::after {
  color: #484A46 !important;
}
.home-second-block {
  background: #ECE9E2 !important;
  color: #373A35 !important;
}
.home-second-block h1,
.home-second-block h2,
.home-second-block h3,
.home-second-block p {
  color: #373A35 !important;
}

/* v57 — husbild överst i första blocket på Besök & kontakt */
.visit-top--one {
  padding-top: 0 !important;
}
.visit-house-image {
  width: 100%;
  height: clamp(260px, 40vw, 520px);
  overflow: hidden;
  margin: 0 0 clamp(42px, 5vw, 72px);
}
.visit-house-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media(max-width:820px){
  .visit-house-image {
    height: 42svh;
    min-height: 280px;
    margin-bottom: 38px;
  }
}

/* v58 — alla personporträtt svartvita, färgkodningen ligger kvar i ytor/detaljer */
.person-row img,
.person-card img,
.profile-hero img,
.profile-image img,
.portrait-card .portrait-image img {
  filter: grayscale(1) contrast(1.03) !important;
}
.person-row:hover img,
.person-card:hover img,
.profile-hero:hover img,
.profile-image:hover img,
.portrait-card:hover .portrait-image img {
  filter: grayscale(1) contrast(1.03) !important;
}

/* v59 — riktig Google-karta på Besök & kontakt */
.google-map {
  width: 100%;
  overflow: hidden;
  border-radius: 18px;
  background: #eeeae2;
}
.google-map iframe {
  display: block;
  width: 100% !important;
  height: clamp(360px, 48vw, 520px) !important;
  border: 0 !important;
}

/* v62 — Facebook-rubrik */
.social-follow-text {
  margin: 0 0 .8rem;
  font-weight: 700;
}

/* v64 — Facebook-länk ersätter QR-koden */
.facebook-link {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin-top: .75rem;
  padding: .85rem 1.15rem;
  border: 1px solid rgba(36,64,50,.28);
  border-radius: 999px;
  color: #244032 !important;
  text-decoration: none;
  font-weight: 700;
  background: rgba(255,255,255,.45);
}
.facebook-link:hover,
.facebook-link:focus-visible {
  background: rgba(255,255,255,.8);
}

/* v67 — stor footer inspirerad av Rydbergs struktur */
.footer-rydbergs-inspired {
  position: relative;
  overflow: hidden;
  padding: 0 !important;
  background: #DDE7DA !important;
  color: #244032 !important;
}
.footer-rydbergs-inspired::before { display: none !important; }

.footer-main {
  min-height: 650px;
  padding: clamp(42px, 5vw, 72px) clamp(28px, 5vw, 76px) 30px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: auto 1fr;
  gap: 48px 32px;
  position: relative;
}
.footer-main h2 {
  margin: 0 0 .65rem;
  font-family: "Nunito Sans", sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: inherit;
}
.footer-main p { margin: 0; line-height: 1.6; }
.footer-main a { color: inherit; }

.footer-visit { grid-column: 1; grid-row: 1; z-index: 2; }
.footer-visit > a {
  display: inline-block;
  margin-top: .25rem;
  text-underline-offset: 4px;
}
.footer-follow {
  grid-column: 2;
  grid-row: 1;
  text-align: center;
  z-index: 2;
}
.footer-social-new {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
}
.footer-social-new a,
.footer-social-new .footer-social-placeholder {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  color: #244032;
  text-decoration: none;
}
.footer-social-new svg {
  width: 28px;
  height: 28px;
  fill: currentColor;
}
.footer-social-placeholder { opacity: .72; }

.footer-contact-action {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  z-index: 2;
}
.footer-contact-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .7rem 1.25rem;
  border: 1px solid rgba(36,64,50,.55);
  border-radius: 6px;
  text-decoration: none;
  font-weight: 600;
}
.footer-contact-button:hover,
.footer-contact-button:focus-visible {
  background: rgba(255,255,255,.38);
}

.footer-wordmark {
  grid-column: 1 / span 2;
  grid-row: 2;
  align-self: end;
  font-family: "Lora", serif;
  font-size: clamp(5.5rem, 12vw, 12rem);
  font-weight: 600;
  line-height: .78;
  letter-spacing: -.07em;
  color: #244032;
  opacity: .96;
  z-index: 1;
}
.footer-about {
  grid-column: 3;
  grid-row: 2;
  align-self: end;
  max-width: 390px;
  padding-bottom: 18px;
  font-size: 1rem;
  line-height: 1.75;
  z-index: 2;
}
.footer-bottom--new {
  border-top: 1px solid rgba(36,64,50,.18);
  padding: 18px clamp(28px, 5vw, 76px) 22px !important;
  color: #42574B !important;
}

@media(max-width:820px) {
  .footer-main {
    min-height: 0;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 34px;
    padding: 40px 24px 30px;
  }
  .footer-visit,
  .footer-follow,
  .footer-contact-action,
  .footer-wordmark,
  .footer-about {
    grid-column: 1;
    grid-row: auto;
  }
  .footer-follow { text-align: left; }
  .footer-social-new { justify-content: flex-start; }
  .footer-contact-action { justify-self: start; }
  .footer-wordmark {
    font-size: clamp(5rem, 25vw, 8rem);
    margin-top: 28px;
  }
  .footer-about {
    max-width: 34rem;
    padding-bottom: 0;
  }
  .footer-bottom--new {
    padding: 18px 24px 22px !important;
  }
}

/* v68 — finjustering av footern */
.footer-visit p {
  font-size: 1.12rem !important;
  line-height: 1.65 !important;
}
.footer-social-new a,
.footer-social-new .footer-social-placeholder {
  width: 54px !important;
  height: 54px !important;
}
.footer-social-new svg {
  width: 36px !important;
  height: 36px !important;
}
.footer-bottom--new {
  justify-content: flex-start !important;
}

/* v69 — tillbaka med den stora stiliserade logosymbolen i footerbakgrunden */
.footer-rydbergs-inspired::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: -8vw !important;
  bottom: -14% !important;
  width: min(72vw, 980px) !important;
  height: 112% !important;
  background-image: url("assets/logo-symbol.png") !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
  background-position: left bottom !important;
  opacity: .10 !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
.footer-main,
.footer-bottom--new {
  position: relative !important;
  z-index: 1 !important;
}
@media(max-width:820px) {
  .footer-rydbergs-inspired::before {
    left: -34vw !important;
    bottom: -4% !important;
    width: 135vw !important;
    height: 82% !important;
    opacity: .09 !important;
  }
}

/* v70 — fullständigt namn och större ritad logosymbol */
.footer-wordmark {
  font-size: clamp(4.3rem, 9vw, 9rem) !important;
  line-height: .86 !important;
  letter-spacing: -.055em !important;
}
.footer-rydbergs-inspired::before {
  left: -13vw !important;
  bottom: -22% !important;
  width: min(92vw, 1280px) !important;
  height: 138% !important;
  opacity: .105 !important;
}
@media(max-width:820px) {
  .footer-wordmark {
    font-size: clamp(3.8rem, 18vw, 6.8rem) !important;
  }
  .footer-rydbergs-inspired::before {
    left: -48vw !important;
    bottom: -8% !important;
    width: 175vw !important;
    height: 104% !important;
  }
}

/* v71 — footer finjusterad */
.footer-rydbergs-inspired::before {
  top: 0 !important;
  bottom: auto !important;
  left: -10vw !important;
  width: min(98vw, 1380px) !important;
  height: 100% !important;
  background-size: contain !important;
  background-position: left top !important;
}

.footer-wordmark {
  font-size: clamp(3.2rem, 6.5vw, 6.8rem) !important;
  line-height: .9 !important;
}

.footer-main h2 {
  font-size: .9rem !important;
  letter-spacing: .01em !important;
}

@media(max-width:820px) {
  .footer-rydbergs-inspired::before {
    top: 0 !important;
    bottom: auto !important;
    left: -42vw !important;
    width: 165vw !important;
    height: 100% !important;
    background-position: left top !important;
  }
  .footer-wordmark {
    font-size: clamp(3rem, 14vw, 5.4rem) !important;
  }
  .footer-main h2 {
    font-size: .88rem !important;
  }
}

/* v72 — Besök oss / Följ oss i samma typografiska familj som wordmark */
.footer-main h2 {
  font-family: "Lora", serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: -.015em !important;
  line-height: 1.2 !important;
}
@media(max-width:820px) {
  .footer-main h2 {
    font-size: 16px !important;
  }
}

/* v73 — lite mer pondus i footer-rubrikerna */
.footer-main h2 {
  font-size: 20px !important;
}
@media(max-width:820px) {
  .footer-main h2 {
    font-size: 20px !important;
  }
}

/* v75 — luftigare placering av wordmark och bakgrundssymbol */
.footer-wordmark {
  transform: translate(4vw, -34px) !important;
}
.footer-rydbergs-inspired::before {
  left: -4vw !important;
  top: -7% !important;
  width: min(98vw, 1380px) !important;
  height: 107% !important;
  background-position: left top !important;
}
@media(max-width:820px) {
  .footer-wordmark {
    transform: translate(18px, -18px) !important;
  }
  .footer-rydbergs-inspired::before {
    left: -30vw !important;
    top: -5% !important;
    width: 165vw !important;
    height: 105% !important;
  }
}

/* v76 — något mindre porträtt på Vi i huset */
body.page-vi .person-card img,
body.page-vi .portrait-card .portrait-image img,
body.page-vi .person-row img,
.vi-page .person-card img,
.vi-page .portrait-card .portrait-image img,
.vi-page .person-row img {
  transform: scale(.92) !important;
  transform-origin: center center !important;
}

/* v77 — porträtten på Vi i huset cirka en tredjedel mindre än ursprunget */
body.page-vi .person-card img,
body.page-vi .portrait-card .portrait-image img,
body.page-vi .person-row img,
.vi-page .person-card img,
.vi-page .portrait-card .portrait-image img,
.vi-page .person-row img {
  transform: scale(.67) !important;
  transform-origin: center center !important;
}

/* v78 — Caroline: fylligare profilsida */
.caroline-profile[hidden] { display:none !important; }
.caroline-card-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.5rem);
  margin-top:2rem;
}
.caroline-card {
  padding:clamp(1.5rem,2.5vw,2.2rem);
  border-radius:20px;
  background:#F4E9EC;
}
.caroline-card:nth-child(2){background:#EEEAE3}
.caroline-card:nth-child(3){background:#E8EFEC}
.caroline-card:nth-child(4){background:#EEEAF2}
.caroline-card h3 {
  font-family:"Lora",serif;
  font-size:clamp(1.35rem,2vw,1.8rem);
  margin:0 0 .65rem;
}
.caroline-card p { margin:0; line-height:1.6; }
.profile-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
  margin-top:1.6rem;
}
@media(max-width:820px){
  .caroline-card-grid{grid-template-columns:1fr}
}

/* v79 — Katarina: fylligare profilsida */
.katarina-profile[hidden] { display:none !important; }
.katarina-profile .caroline-card:nth-child(1){background:#E8EFE6}
.katarina-profile .caroline-card:nth-child(2){background:#EEEAE3}
.katarina-profile .caroline-card:nth-child(3){background:#E9EDF1}
.katarina-profile .caroline-card:nth-child(4){background:#EEF1E7}

/* v80 — Helena: fylligare profilsida */
.helena-profile[hidden] { display:none !important; }
.helena-profile .caroline-card:nth-child(1){background:#E7F0F3}
.helena-profile .caroline-card:nth-child(2){background:#EDF2F1}
.helena-profile .caroline-card:nth-child(3){background:#EEEAE3}
.helena-profile .caroline-card:nth-child(4){background:#E9EDF4}

/* v81 — enklare väg in till utbudet */
.utbud-guide {
  background: #F5F2EC;
}
.utbud-guide .body-copy {
  max-width: 650px;
}
.price-line a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* v82 — Agnetha: fylligare profilsida */
.agnetha-profile[hidden] { display:none !important; }
.agnetha-profile .caroline-card:nth-child(1){background:#F1E9C9}
.agnetha-profile .caroline-card:nth-child(2){background:#E8EFE6}
.agnetha-profile .caroline-card:nth-child(3){background:#EEEAF2}
.agnetha-profile .caroline-card:nth-child(4){background:#EDF0E7}
.agnetha-price-list {
  margin: 1.2rem 0;
  border-top: 1px solid rgba(55,58,53,.16);
}
.agnetha-price-list p {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  margin:0;
  padding:.65rem 0;
  border-bottom:1px solid rgba(55,58,53,.16);
}

/* v83 — Lina: fylligare profilsida */
.lina-profile[hidden] { display:none !important; }
.lina-profile .caroline-card:nth-child(1){background:#E7EFEA}
.lina-profile .caroline-card:nth-child(2){background:#EEEAE3}
.lina-profile .caroline-card:nth-child(3){background:#EDEAF2}
.lina-profile .caroline-card:nth-child(4){background:#E8EEF0}


/* v85 — softer heading tone */
h1, h2, h3, h4, h5, h6,
.display, .hero-title, .hero h1, .page-hero h1,
.section-head h2, .manifesto h2, .final-cta h2 {
  color: var(--heading);
}
.image-band h2, .profile-hero h1, .manifesto h2, .final-cta h2 { color: var(--white); }

/* v87: softer heading colour */
h1, h2, h3 {
  color: #667166;
}
.image-band h2,
.profile-hero h1 {
  color: #ffffff;
}

/* v88 — visibly softer heading colour on light backgrounds */
:root { --heading-soft: #5F6B62; }

body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body .display,
body .hero-title,
body .hero h1,
body .page-hero h1,
body .section-head h2,
body .service-block h2,
body .two-col h2,
body .portrait-card h2,
body .person-row h3,
body .offer-row h3,
body .caroline-card h3,
body .visit-grid h2,
body .home-reference-card h2,
body .manifesto h2 {
  color: var(--heading-soft) !important;
}

/* Keep headings light only where they actually sit on dark/image backgrounds */
body .image-band h2,
body .profile-contact h2,
body .final-cta h2 {
  color: #FFFFFF !important;
}

/* Profile hero backgrounds are pale, so profile names should also use the softer tone */
body .profile-hero h1 {
  color: var(--heading-soft) !important;
}

/* v97: keep the whole team visible in the new hero photo */
.hero-media { left: 30%; }
.hero-media img {
  object-position: 50% 50% !important;
  transform: none !important;
}
@media (max-width: 820px) {
  .hero-media { left: 0; }
  .hero-media img {
    object-fit: contain;
    object-position: 50% 12% !important;
    background: #f5f0e8;
  }
}

/* v98: show more of the team photo without cutting heads */
@media (min-width: 821px) {
  .hero { min-height: 72svh; }
  .hero-media { left: 36%; }
  .hero-media img {
    object-fit: cover;
    object-position: 50% 50%;
    transform: none !important;
    animation: none !important;
  }
}
@media (max-width: 820px) {
  .hero { min-height: 78svh; }
  .hero-media img {
    object-fit: cover;
    object-position: 50% 18%;
    transform: none !important;
    animation: none !important;
  }
}

/* v99 — hero team photo: always show every face, no head cropping */
@media (min-width: 821px) {
  .hero {
    min-height: clamp(590px, 43vw, 700px) !important;
  }
  .hero-media {
    left: 36% !important;
    background: #f5f0e8 !important;
  }
  .hero-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    animation: none !important;
  }
}
@media (max-width: 820px) {
  .hero {
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: visible !important;
  }
  .hero-media {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 3 / 2 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    background: #f5f0e8 !important;
    order: 1 !important;
  }
  .hero-media img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    animation: none !important;
  }
  .hero-content {
    order: 2 !important;
  }
}

/* v110 — porträtt i färg */
.portrait-image img,
.profile-image img,
.portrait-card:hover .portrait-image img {
  filter: none !important;
}

/* v111: portraits in full color; show more of Katarina vertically */
.portrait-card.katarina .portrait-image img { aspect-ratio: 4 / 6; object-fit: cover; object-position: center top; }
body:has([data-profile]) .profile-image img[src*="katarina"] { aspect-ratio: 4 / 6; object-position: center top; }
/* v111 final portrait framing */
.portrait-card.katarina .portrait-image img {
  aspect-ratio: 2 / 3 !important;
  object-fit: cover !important;
  object-position: center top !important;
}
.profile-image img[src="assets/katarina.jpg"] {
  aspect-ratio: 2 / 3 !important;
  object-fit: cover !important;
  object-position: center top !important;
}

/* v112 — FINAL portrait fix: all five portraits in full color, equal card size */
body .portrait-card .portrait-image img,
body .portrait-card:hover .portrait-image img,
body .profile-hero .profile-image img,
body .profile-hero:hover .profile-image img,
body .profile-image img,
body .profile-image:hover img {
  filter: none !important;
  -webkit-filter: none !important;
}

/* Keep every portrait card exactly the same 4:5 size. */
body .portrait-card .portrait-image {
  aspect-ratio: 4 / 5 !important;
}
body .portrait-card .portrait-image img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
}

/* Katarina: same card size as everyone else, but preserve more of her tall portrait. */
body .portrait-card.katarina .portrait-image img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center top !important;
  background: #f4f1eb !important;
}

/* Profile hero: keep standard frame; Katarina gets contain instead of a hard crop. */
body .profile-image img[src*="katarina.jpg"] {
  aspect-ratio: 4 / 5 !important;
  object-fit: contain !important;
  object-position: center top !important;
  background: #f4f1eb !important;
}

/* v114 — wider, airier portrait framing */
@media (min-width: 761px) {
  body.page-vi .section-inner.portrait-grid {
    max-width: 1420px !important;
    grid-template-columns: repeat(10, minmax(0, 1fr)) !important;
    column-gap: 20px !important;
  }
  body.page-vi .portrait-card,
  body.page-vi .portrait-card:nth-child(4),
  body.page-vi .portrait-card:nth-child(5) {
    grid-column: span 2 !important;
  }
}
body.page-vi .portrait-card .portrait-image {
  aspect-ratio: 4 / 5 !important;
}
body.page-vi .portrait-card .portrait-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  filter: none !important;
  -webkit-filter: none !important;
}
/* Agnetha: show more of the original scene rather than zooming into her face. */
body.page-vi .portrait-card.agnetha .portrait-image img {
  object-fit: contain !important;
  object-position: center center !important;
  background: #f4f1eb !important;
}
/* Katarina: same frame as everyone else, with a gentle zoom so she reads at the same scale. */
body.page-vi .portrait-card.katarina .portrait-image img {
  object-fit: cover !important;
  object-position: center 24% !important;
  transform: scale(1.06) !important;
}
body.page-vi .portrait-card.katarina:hover .portrait-image img {
  transform: scale(1.085) !important;
}
/* Caroline: a very slight zoom/crop from the lower edge. */
body.page-vi .portrait-card.caroline .portrait-image img {
  object-position: center 18% !important;
  transform: scale(1.035) !important;
}
body.page-vi .portrait-card.caroline:hover .portrait-image img {
  transform: scale(1.06) !important;
}

/* v115 — equal portrait frames; only crop/position differs per person */
body.page-vi .section-inner.portrait-grid {
  align-items: start !important;
}
body.page-vi .portrait-card .portrait-image {
  width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
}
body.page-vi .portrait-card .portrait-image img,
body.page-vi .portrait-card:hover .portrait-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  filter: none !important;
  -webkit-filter: none !important;
  background: transparent !important;
}
/* Agnetha keeps the same frame; zoom out within it without changing the frame. */
body.page-vi .portrait-card.agnetha .portrait-image img {
  object-position: center center !important;
  transform: scale(0.92) !important;
}
body.page-vi .portrait-card.agnetha:hover .portrait-image img { transform: scale(0.94) !important; }
/* Katarina: same frame, slightly closer crop. */
body.page-vi .portrait-card.katarina .portrait-image img {
  object-position: center 20% !important;
  transform: scale(1.09) !important;
}
body.page-vi .portrait-card.katarina:hover .portrait-image img { transform: scale(1.11) !important; }
/* Caroline: same frame, subtle lower-edge crop. */
body.page-vi .portrait-card.caroline .portrait-image img {
  object-position: center 16% !important;
  transform: scale(1.045) !important;
}
body.page-vi .portrait-card.caroline:hover .portrait-image img { transform: scale(1.065) !important; }

/* v116 — hard reset: every portrait tile has exactly the same geometry */
body.page-vi .section-inner.portrait-grid {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 22px !important;
  max-width: 1420px !important;
  align-items: start !important;
}
body.page-vi .portrait-card,
body.page-vi .portrait-card:nth-child(4),
body.page-vi .portrait-card:nth-child(5) {
  grid-column: auto !important;
  min-width: 0 !important;
}
body.page-vi .portrait-card .portrait-image {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
  margin-bottom: 22px !important;
}
body.page-vi .portrait-card .portrait-image img,
body.page-vi .portrait-card:hover .portrait-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  transform: none !important;
  filter: none !important;
  -webkit-filter: none !important;
}
/* Only focal point differs; frame and scale stay identical. */
body.page-vi .portrait-card.agnetha .portrait-image img { object-position: center 42% !important; }
body.page-vi .portrait-card.helena .portrait-image img { object-position: center 30% !important; }
body.page-vi .portrait-card.katarina .portrait-image img { object-position: center 18% !important; }
body.page-vi .portrait-card.caroline .portrait-image img { object-position: center 16% !important; }
body.page-vi .portrait-card.lina .portrait-image img { object-position: center 28% !important; }
@media (max-width: 760px) {
  body.page-vi .section-inner.portrait-grid { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 520px) {
  body.page-vi .section-inner.portrait-grid { grid-template-columns: 1fr !important; }
}

/* v117 — final team portrait geometry */
body.page-vi .portrait-grid {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: start !important;
}
body.page-vi .portrait-card,
body.page-vi .portrait-card:nth-child(4),
body.page-vi .portrait-card:nth-child(5) {
  grid-column: auto !important;
  width: 100% !important;
  min-width: 0 !important;
}
body.page-vi .portrait-image {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
}
body.page-vi .portrait-image img,
body.page-vi .portrait-card:hover .portrait-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transform: none !important;
}
/* Agnetha uses the same 4:5 frame as everyone else; this focal point keeps her visible in the new portrait. */
body.page-vi .portrait-card.agnetha .portrait-image img { object-position: 50% 60% !important; }
body.page-vi .portrait-card.helena .portrait-image img { object-position: 50% 28% !important; }
body.page-vi .portrait-card.caroline .portrait-image img { object-position: 50% 15% !important; }
body.page-vi .portrait-card.lina .portrait-image img { object-position: 50% 26% !important; }
body.page-vi .portrait-card.katarina .portrait-image img { object-position: 50% 18% !important; }
@media (max-width: 900px) {
  body.page-vi .portrait-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 520px) {
  body.page-vi .portrait-grid { grid-template-columns: 1fr !important; }
}

/* v118 — airy 3 + 2 team layout */
body.page-vi .portrait-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  column-gap: 34px !important;
  row-gap: 58px !important;
}
body.page-vi .portrait-card,
body.page-vi .portrait-card:nth-child(4),
body.page-vi .portrait-card:nth-child(5) {
  grid-column: span 2 !important;
}
body.page-vi .portrait-card:nth-child(4) { grid-column: 2 / span 2 !important; }
body.page-vi .portrait-card:nth-child(5) { grid-column: 4 / span 2 !important; }
body.page-vi .portrait-image {
  aspect-ratio: 4 / 5 !important;
}
@media (max-width: 900px) {
  body.page-vi .portrait-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body.page-vi .portrait-card,
  body.page-vi .portrait-card:nth-child(4),
  body.page-vi .portrait-card:nth-child(5) { grid-column: auto !important; }
}
@media (max-width: 520px) {
  body.page-vi .portrait-grid { grid-template-columns: 1fr !important; }
}

/* v119 — fixed portrait grid: 3 + 2, identical boxes, no image movement */
body.page-vi .portrait-grid {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  column-gap: 36px !important;
  row-gap: 58px !important;
  align-items: start !important;
}
body.page-vi .portrait-card,
body.page-vi .portrait-card:nth-child(4),
body.page-vi .portrait-card:nth-child(5) {
  grid-column: span 2 !important;
  width: 100% !important;
  min-width: 0 !important;
  transform: none !important;
  opacity: 1 !important;
  transition: none !important;
}
body.page-vi .portrait-card:nth-child(4) { grid-column: 2 / span 2 !important; }
body.page-vi .portrait-card:nth-child(5) { grid-column: 4 / span 2 !important; }
body.page-vi .portrait-image {
  width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
  margin-bottom: 22px !important;
}
body.page-vi .portrait-image img,
body.page-vi .portrait-card:hover .portrait-image img,
body.page-vi .portrait-card:focus .portrait-image img,
body.page-vi .portrait-card:focus-visible .portrait-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  filter: none !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
}
/* Lock each crop so nothing jumps on hover or reveal */
body.page-vi .portrait-card.agnetha .portrait-image img { object-position: 50% 50% !important; }
body.page-vi .portrait-card.helena .portrait-image img { object-position: 50% 28% !important; }
body.page-vi .portrait-card.caroline .portrait-image img { object-position: 50% 15% !important; }
body.page-vi .portrait-card.lina .portrait-image img { object-position: 50% 26% !important; }
body.page-vi .portrait-card.katarina .portrait-image img { object-position: 50% 18% !important; }
body.page-vi .portrait-card[data-reveal],
body.page-vi .portrait-card[data-reveal].visible {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
@media (max-width: 900px) {
  body.page-vi .portrait-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body.page-vi .portrait-card,
  body.page-vi .portrait-card:nth-child(4),
  body.page-vi .portrait-card:nth-child(5) { grid-column: auto !important; }
}
@media (max-width: 520px) {
  body.page-vi .portrait-grid { grid-template-columns: 1fr !important; }
}

/* v120 — Vi i huset: smaller, fixed portrait cards; static pre-cropped images */
body.page-vi .section-inner.portrait-grid {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 52px 34px !important;
  max-width: 1060px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  align-items: start !important;
}
body.page-vi .portrait-card,
body.page-vi .portrait-card:nth-child(4),
body.page-vi .portrait-card:nth-child(5) {
  grid-column: span 2 !important;
  width: 100% !important;
  max-width: 320px !important;
  justify-self: center !important;
  transform: none !important;
  transition: none !important;
}
body.page-vi .portrait-card:nth-child(4) { grid-column: 2 / span 2 !important; }
body.page-vi .portrait-card:nth-child(5) { grid-column: 4 / span 2 !important; }
body.page-vi .portrait-card .portrait-image {
  width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  height: auto !important;
  overflow: hidden !important;
  margin-bottom: 18px !important;
}
body.page-vi .portrait-card .portrait-image img,
body.page-vi .portrait-card:hover .portrait-image img,
body.page-vi .portrait-card:focus .portrait-image img,
body.page-vi .portrait-card:focus-visible .portrait-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: fill !important; /* files are already exactly 4:5 */
  object-position: center !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
  filter: none !important;
  -webkit-filter: none !important;
}
body.page-vi .portrait-card[data-reveal],
body.page-vi .portrait-card[data-reveal].visible {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
@media (max-width: 900px) {
  body.page-vi .section-inner.portrait-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: 720px !important;
  }
  body.page-vi .portrait-card,
  body.page-vi .portrait-card:nth-child(4),
  body.page-vi .portrait-card:nth-child(5) {
    grid-column: auto !important;
    max-width: 320px !important;
  }
}
@media (max-width: 560px) {
  body.page-vi .section-inner.portrait-grid { grid-template-columns: 1fr !important; max-width: 340px !important; }
}

/* v123: image on Vad vi erbjuder */
.offer-photo-section{padding-top:0;padding-bottom:clamp(2.5rem,5vw,5rem)}
.offer-photo{margin:0;overflow:hidden}
.offer-photo img{display:block;width:100%;height:auto;max-height:620px;object-fit:cover;object-position:center}
@media (max-width:700px){.offer-photo img{max-height:none;aspect-ratio:4/3;object-fit:cover}}

/* v125 — Agnetha: same fixed portrait format as everyone else, with a closer lower crop. */
body.page-vi .portrait-card.agnetha .portrait-image {
  aspect-ratio: 4 / 5 !important;
}
body.page-vi .portrait-card.agnetha .portrait-image img,
body.page-vi .portrait-card.agnetha:hover .portrait-image img,
body.page-vi .portrait-card.agnetha:focus .portrait-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 28% !important;
  transform: scale(1.08) !important;
  transform-origin: 50% 0% !important;
  transition: none !important;
  animation: none !important;
}

/* v134: standing treatment image beside the movement text */
.service-side-photo{margin:2rem 0 0;max-width:360px;overflow:hidden}
.service-side-photo img{display:block;width:100%;height:auto}
@media (max-width:700px){.service-side-photo{max-width:300px;margin-top:1.5rem}}

/* v144 — Föreningen Hälsans Hus Norrtälje */
.page-foreningen .association-photo { padding-top: 0; }
.page-foreningen .association-photo figure { margin: 0; overflow: hidden; }
.page-foreningen .association-photo img { display:block; width:100%; height:auto; max-height:700px; object-fit:cover; object-position:center 32%; }
@media (max-width: 820px) {
  .page-foreningen .association-photo img { max-height:none; object-fit:contain; }
}

/* v158 — schema in the same clear, soft visual language as the site */
.schedule-section { background:#F8F3EB !important; }
.schedule-title { max-width:760px; }
.schedule-title h2 { margin:.2rem 0 2rem; }
.schedule-title--space { margin-top:clamp(4.5rem,8vw,7rem); }
.class-grid, .therapy-grid, .event-grid { display:grid; gap:1.2rem; }
.class-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.class-card, .therapy-day, .event-card { background:#FFFDF9; border-radius:22px; padding:clamp(1.5rem,3vw,2.4rem); box-shadow:0 10px 28px rgba(83,67,49,.08); }
.class-card:nth-child(4n+1), .event-card:nth-child(5n+1) { background:#F1E7D8; }
.class-card:nth-child(4n+2), .event-card:nth-child(5n+2) { background:#F5EDE2; }
.class-card:nth-child(4n+3), .event-card:nth-child(5n+3) { background:#EDE2D2; }
.class-card:nth-child(4n+4), .event-card:nth-child(5n+4) { background:#F3E8DC; }
.day, .event-kind, .therapy-type { color:#706052; font-weight:800; letter-spacing:.08em; text-transform:uppercase; font-size:.78rem; margin:0 0 .8rem; }
.class-card h3, .therapy-day h3, .event-card h3 { margin:0 0 .65rem; font-size:clamp(1.45rem,2.4vw,2rem); }
.class-card p, .therapy-day p, .event-card p { margin:.45rem 0; }
.class-card ul { margin:.6rem 0 1.1rem; padding-left:1.15rem; }
.class-card li { margin:.35rem 0; }
.schedule-section a { color:#6A5949; font-weight:800; text-decoration-thickness:1px; text-underline-offset:4px; }
.muted { color:#70665B; }
.therapy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.therapy-day { background:#FFFDF9; }
.therapy-day > div { border-top:1px solid #E2D6C7; margin-top:1.15rem; padding-top:1.05rem; }
.therapy-day > div p:not(.therapy-type) + a { display:inline-block; margin-bottom:.7rem; }
.event-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.event-card { min-height:250px; }
@media(max-width:820px){ .class-grid,.therapy-grid,.event-grid { grid-template-columns:1fr; } }

/* v159 — footer follows the warm neutral palette, without the former green base or green logo wash. */
.footer-rydbergs-inspired {
  background: #DCCDBA !important;
  color: #423A32 !important;
}
.footer-rydbergs-inspired::before {
  /* The PNG retains its exact shape; the filter turns its original green into warm beige. */
  display: block !important;
  background-image: url("assets/logo-symbol.png") !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
  background-position: left top !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  filter: sepia(1) saturate(.62) hue-rotate(338deg) brightness(2.15) contrast(.82) !important;
  opacity: .42 !important;
}
.footer-social-new a,
.footer-social-new .footer-social-placeholder,
.footer-wordmark {
  color: #423A32 !important;
}
.footer-contact-button {
  border-color: rgba(66, 58, 50, .55) !important;
}
.footer-contact-button:hover,
.footer-contact-button:focus-visible {
  background: rgba(255, 253, 249, .55) !important;
}
.footer-bottom--new {
  border-color: rgba(66, 58, 50, .18) !important;
  color: #6D6255 !important;
}
.footer-background-logo {
  display: block !important;
  position: absolute !important;
  z-index: 0 !important;
  top: -7% !important;
  left: -4vw !important;
  width: min(98vw, 1380px) !important;
  height: 107% !important;
  object-fit: contain !important;
  object-position: left top !important;
  pointer-events: none !important;
  filter: sepia(1) saturate(.62) hue-rotate(338deg) brightness(2.15) contrast(.82) !important;
  opacity: .42 !important;
}
@media(max-width:820px) {
  .footer-background-logo {
    top: -5% !important;
    left: -30vw !important;
    width: 165vw !important;
    height: 105% !important;
  }
}

/* v160 — the shared parts of the house use only warm beige tones.
   The five practitioner profiles keep their individual colours via --profile/--person. */
.page-hero,
.page-hero.accent,
.visit-top--one,
.visit-top--two,
.visit-top--three,
.utbud-hero,
.schema-page-hero,
.references-hero {
  color: #423A32 !important;
}
.page-hero p,
.page-hero.accent p,
.visit-top--one p,
.visit-top--two p,
.visit-top--three p,
.utbud-hero p,
.schema-page-hero p,
.references-hero p {
  color: #6D6255 !important;
}
.page-hero h1,
.page-hero.accent h1,
.page-hero h2,
.page-hero .kicker,
.page-hero.accent .kicker {
  color: #423A32 !important;
}
.page-hero.accent { background: #E8DDCC !important; }
.utbud-hero { background: #EDE2D2 !important; }
.schema-page-hero { background: #E5D7C4 !important; }
.references-hero { background: #F0E4D6 !important; }
.visit-top--one { background: #F2E6D8 !important; }
.visit-top--two { background: #E6D7C3 !important; }
.visit-top--three { background: #EDE2D2 !important; }
.page-foreningen .page-hero { background: #E9DDCD !important; }

/* Testimonials belong to the person they describe, with four gentle shades of that person's colour. */
.reference-card--caroline:nth-child(1) { background: #E4AAB5 !important; }
.reference-card--caroline:nth-child(2) { background: #EDBBC4 !important; }
.reference-card--caroline:nth-child(3) { background: #F2CCD2 !important; }
.reference-card--caroline:nth-child(4) { background: #F7DCE0 !important; }
.reference-card--agnetha:nth-child(1) { background: #E9C95F !important; }
.reference-card--agnetha:nth-child(2) { background: #F0D77D !important; }
.reference-card--agnetha:nth-child(3) { background: #F5E3A8 !important; }
.reference-card--agnetha:nth-child(4) { background: #F8ECD0 !important; }
.reference-card--lina:nth-child(1) { background: #B9ADD0 !important; }
.reference-card--lina:nth-child(2) { background: #C8BCDA !important; }
.reference-card--lina:nth-child(3) { background: #D7CEE7 !important; }
.reference-card--lina:nth-child(4) { background: #E5DFF0 !important; }

/* v161 — one beige family for the shared house; one colour family per practitioner. */
body.page-vi .page-hero { background: #F0E2D2 !important; }
.page-foreningen .page-hero { background: #E7D5C0 !important; }
.utbud-hero { background: #EDE0CD !important; }
.schema-page-hero { background: #E4D3BE !important; }
.references-hero { background: #F3E7D9 !important; }
.visit-top--one { background: #EADBCB !important; }
.visit-top--two { background: #E6D6C2 !important; }
.visit-top--three { background: #F1E4D4 !important; }
.manifesto:not(.profile-contact),
.home-second-block,
.home-references-link,
.home-reference-card,
.schedule-card--sage,
.schedule-image-link,
.footer-editorial {
  background: #EEE2D4 !important;
}

.reference-card--katarina:nth-child(1) { background: #AFC79F !important; }
.reference-card--katarina:nth-child(2) { background: #C2D6B4 !important; }
.reference-card--katarina:nth-child(3) { background: #D5E3CC !important; }
.reference-card--katarina:nth-child(4) { background: #E4EEDC !important; }

/* The profile detail cards also stay within the correct person's colour family. */
.caroline-profile .caroline-card:nth-child(1) { background: #E4AAB5 !important; }
.caroline-profile .caroline-card:nth-child(2) { background: #EDBBC4 !important; }
.caroline-profile .caroline-card:nth-child(3) { background: #F2CCD2 !important; }
.caroline-profile .caroline-card:nth-child(4) { background: #F7DCE0 !important; }
.katarina-profile .caroline-card:nth-child(1) { background: #AFC79F !important; }
.katarina-profile .caroline-card:nth-child(2) { background: #C2D6B4 !important; }
.katarina-profile .caroline-card:nth-child(3) { background: #D5E3CC !important; }
.katarina-profile .caroline-card:nth-child(4) { background: #E4EEDC !important; }
.helena-profile .caroline-card:nth-child(1) { background: #A9CAD7 !important; }
.helena-profile .caroline-card:nth-child(2) { background: #BDD8E3 !important; }
.helena-profile .caroline-card:nth-child(3) { background: #D0E5EC !important; }
.helena-profile .caroline-card:nth-child(4) { background: #E2EFF3 !important; }
.agnetha-profile .caroline-card:nth-child(1) { background: #E9C95F !important; }
.agnetha-profile .caroline-card:nth-child(2) { background: #F0D77D !important; }
.agnetha-profile .caroline-card:nth-child(3) { background: #F5E3A8 !important; }
.agnetha-profile .caroline-card:nth-child(4) { background: #F8ECD0 !important; }
.lina-profile .caroline-card:nth-child(1) { background: #B9ADD0 !important; }
.lina-profile .caroline-card:nth-child(2) { background: #C8BCDA !important; }
.lina-profile .caroline-card:nth-child(3) { background: #D7CEE7 !important; }
.lina-profile .caroline-card:nth-child(4) { background: #E5DFF0 !important; }

/* v162 — shared page-hero headings use the same soft greige, never black. */
.page-hero h1,
.page-hero.accent h1,
.page-hero h2,
.page-hero .kicker,
.page-hero.accent .kicker {
  color: #6D6255 !important;
}

/* v163 — small, clear owner labels make the schedule easy to scan. */
.person-tag {
  display: inline-flex;
  align-items: center;
  min-height: 1.65rem;
  padding: .18rem .55rem;
  border-radius: 999px;
  color: #423A32;
  font-size: .82em;
  font-weight: 800;
  line-height: 1.15;
  white-space: nowrap;
  vertical-align: baseline;
}
.person-tag.agnetha { background: var(--agnetha); }
.person-tag.caroline { background: var(--caroline); }
.person-tag.helena { background: var(--helena); }
.person-tag.katarina { background: var(--katarina); }
.person-tag.lina { background: var(--lina); }


/* v163 — compactare referenssida med mindre bilder och Helenas röster */
.references-section .section-inner { max-width: 1180px; }
.reference-photo {
  width: min(100%, 430px);
  margin: clamp(1.8rem,4vw,3rem) auto 0;
  border-radius: 18px;
  overflow: hidden;
  background: #f3eee7;
}
.reference-photo img { display:block; width:100%; height:auto; }
.reference-photo--portrait { width: min(100%, 360px); }
.references-section .references-intro { margin-top: clamp(2.8rem,6vw,5rem); }
.references-section > .section-inner > .references-intro:first-child { margin-top: 0; }
.reference-card { min-height: 220px; }
.reference-card--helena:nth-child(1) { background:#A9CAD7 !important; }
.reference-card--helena:nth-child(2) { background:#BDD8E3 !important; }
.reference-card--helena:nth-child(3) { background:#D0E5EC !important; }
.reference-card--helena:nth-child(4) { background:#E2EFF3 !important; }
@media (min-width: 900px) {
  .references-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .reference-photo { margin-left: 0; }
}
@media (max-width: 820px) {
  .reference-photo, .reference-photo--portrait { width:min(88vw,360px); }
}

/* v164 — referensbilder som rutor, tre röster per person */
.reference-image-card {
  margin: 0;
  min-height: 220px;
  border-radius: 22px;
  overflow: hidden;
  background: #f3eee7;
}
.reference-image-card img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
}
.reference-image-card--helena img { object-position: center 38%; }
@media (min-width: 900px) {
  .references-grid { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; }
  .reference-image-card, .reference-card { min-height: 280px; }
}
@media (max-width: 820px) {
  .reference-image-card { min-height: 240px; }
  .reference-image-card img { min-height: 240px; max-height: 430px; }
}

/* v165 — Företagsevent */
.event-hero { padding-bottom: clamp(2.5rem,6vw,5rem); }
.event-hero .lead { max-width: 760px; font-size: clamp(1.15rem,2vw,1.45rem); }
.event-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.95fr); gap:clamp(2rem,6vw,5rem); align-items:center; }
.event-layout-reverse { grid-template-columns:minmax(320px,.95fr) minmax(0,1fr); }
.event-copy { max-width:650px; }
.event-copy p { font-size:1.08rem; line-height:1.75; }
.event-image { margin:0; border-radius:0; overflow:hidden; }
.event-image img { display:block; width:100%; height:auto; }
.event-soft { background:#F3EEE7; }
@media(max-width:820px){ .event-layout,.event-layout-reverse{grid-template-columns:1fr;} .event-layout-reverse .event-image{order:2;} .event-layout-reverse .event-copy{order:1;} }


/* v166 — klassbeskrivningar i popupfönster */
.class-info-link {
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  margin-top:.55rem;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:650;
  text-decoration:underline;
  text-underline-offset:4px;
  cursor:pointer;
}
.class-info-link:hover { opacity:.72; }
.class-modal[hidden] { display:none; }
.class-modal {
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  padding:clamp(1rem,4vw,2.5rem);
}
.class-modal-backdrop {
  position:absolute;
  inset:0;
  background:rgba(31,37,33,.58);
  backdrop-filter:blur(3px);
}
.class-modal-dialog {
  position:relative;
  width:min(760px,100%);
  max-height:min(82vh,820px);
  overflow:auto;
  background:#FFFDF9;
  padding:clamp(1.5rem,4vw,3rem);
  box-shadow:0 24px 80px rgba(25,31,27,.28);
}
.class-modal-dialog h2 { margin:.2rem 3rem 1rem 0; }
.class-modal-dialog p { font-size:1.04rem; line-height:1.75; }
.class-modal-close {
  position:absolute;
  top:1rem;
  right:1rem;
  width:2.6rem;
  height:2.6rem;
  border:1px solid rgba(31,37,33,.2);
  border-radius:50%;
  background:#fff;
  font-size:1.7rem;
  line-height:1;
  cursor:pointer;
}
body.modal-open { overflow:hidden; }
@media (max-width:600px) {
  .class-modal { padding:.75rem; align-items:end; }
  .class-modal-dialog { max-height:88vh; padding:1.5rem 1.25rem 2rem; }
}

/* v167 — färgkodade klass-popup efter ledare */
.class-modal-dialog.owner-agnetha { background: #F8E8A9; border-top: 10px solid var(--agnetha); }
.class-modal-dialog.owner-helena { background: #DCECF2; border-top: 10px solid var(--helena); }
.class-card li .class-info-link { margin:.15rem 0 .15rem .25rem; font-size:.92em; }


/* Sammanhallen kontaktvag pa Halsans Hus */
.contact-choice{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.contact-choice .button{cursor:pointer}.contact-modal[hidden]{display:none}.contact-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px}.contact-modal-backdrop{position:absolute;inset:0;background:rgba(22,39,34,.58)}.contact-modal-dialog{position:relative;z-index:1;width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;padding:clamp(24px,4vw,42px);box-shadow:0 24px 80px rgba(0,0,0,.22);border-top:8px solid var(--contact-accent,#b8cda9)}.contact-modal-close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:30px;line-height:1;cursor:pointer}.contact-form{display:grid;gap:14px;margin-top:20px}.contact-form label{display:grid;gap:6px;font-weight:600}.contact-form input,.contact-form textarea{width:100%;font:inherit;border:1px solid rgba(31,55,47,.25);padding:12px 13px;background:#fff}.contact-form textarea{min-height:145px;resize:vertical}.contact-form .form-note{font-size:.9rem;opacity:.72;margin:0}.contact-success{padding:18px 0}.class-modal-contact{margin-top:22px;padding-top:18px;border-top:1px solid rgba(0,0,0,.12)}

/* v168 — ny vägvisande sida för Vad vi erbjuder */
.utbud-intro{max-width:760px;margin-bottom:clamp(2rem,5vw,3.5rem)}
.utbud-intro h2{margin-bottom:.8rem}
.need-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.need-card{display:block;padding:clamp(24px,4vw,38px);background:#f3eee7;color:inherit;text-decoration:none;border-top:4px solid rgba(90,105,83,.32);transition:transform .2s ease,box-shadow .2s ease}
.need-card:nth-child(3n+2){background:#eee7dd}.need-card:nth-child(3n){background:#f6f1ea}
.need-card:hover{transform:translateY(-3px);box-shadow:0 16px 35px rgba(42,48,42,.08)}
.need-card h3{margin:0 0 .7rem;font-size:clamp(1.35rem,2.2vw,1.8rem)}
.need-card p{margin:0 0 1.15rem;line-height:1.65}.need-card span{font-weight:650}
.need-card:last-child{grid-column:1/-1;max-width:calc(50% - 9px)}
.services-overview{background:#fbf8f3}.service-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.service-card-new{padding:clamp(24px,4vw,38px);background:#fff;border:1px solid rgba(50,63,54,.1)}
.service-card-new h3{margin-top:0;font-size:clamp(1.35rem,2.2vw,1.75rem)}
.service-card-new>p{line-height:1.7}.service-card-new .service-meta{margin:1.1rem 0}
.service-people{margin:1.3rem 0 0;font-weight:650}.service-people a{text-underline-offset:4px}
.utbud-help{background:#e9e1d6}.utbud-help-inner{display:flex;align-items:end;justify-content:space-between;gap:2rem}.utbud-help-inner>div{max-width:700px}.utbud-help h2{margin:.25rem 0 .75rem}
@media(max-width:760px){.need-grid,.service-card-grid{grid-template-columns:1fr}.need-card:last-child{grid-column:auto;max-width:none}.utbud-help-inner{align-items:flex-start;flex-direction:column}}
/* v168 — ny vägvisande Vad vi erbjuder */
.utbud-intro{max-width:760px;margin-bottom:clamp(2rem,5vw,3.5rem)}.need-grid,.service-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.need-card{display:block;padding:clamp(24px,4vw,38px);background:#f3eee7;color:inherit;text-decoration:none;border-top:4px solid rgba(90,105,83,.32)}.need-card:nth-child(3n+2){background:#eee7dd}.need-card:nth-child(3n){background:#f6f1ea}.need-card h3,.service-card-new h3{margin-top:0}.need-card p{line-height:1.65}.need-card span,.service-people{font-weight:650}.need-card:last-child{grid-column:1/-1;max-width:calc(50% - 9px)}.services-overview{background:#fbf8f3}.service-card-new{padding:clamp(24px,4vw,38px);background:#fff;border:1px solid rgba(50,63,54,.1)}.service-card-new>p{line-height:1.7}.service-card-new .service-meta{margin:1.1rem 0}.utbud-help{background:#e9e1d6}.utbud-help-inner{display:flex;align-items:end;justify-content:space-between;gap:2rem}.utbud-help-inner>div{max-width:700px}@media(max-width:760px){.need-grid,.service-card-grid{grid-template-columns:1fr}.need-card:last-child{grid-column:auto;max-width:none}.utbud-help-inner{align-items:flex-start;flex-direction:column}}

/* v15 — Vad vi erbjuder: bilder och personfärger */
.need-card{position:relative;overflow:hidden;border-top-width:5px}
.need-card:nth-child(1){background:#f7e6e9;border-top-color:#d98b9a}
.need-card:nth-child(2){background:#eee9f5;border-top-color:#9f8abc}
.need-card:nth-child(3){background:#f7edcf;border-top-color:#d7ad32}
.need-card:nth-child(4){background:#e9f1ed;border-top-color:#7da78a}
.need-card:nth-child(5){background:#f7edcf;border-top-color:#d7ad32}
.offer-photo-section{padding-top:0;background:#fffaf4}.offer-photo{margin:0;overflow:hidden;border-radius:0;max-height:520px}.offer-photo img{width:100%;height:clamp(300px,43vw,520px);object-fit:cover;display:block}
.service-card-new{position:relative;border:0;border-top:5px solid #b7aa99;background:#fffaf4}
.service-card-new:nth-child(1){background:#f9e9ec;border-top-color:#d98b9a}
.service-card-new:nth-child(2){background:#f0ebf6;border-top-color:#9f8abc}
.service-card-new:nth-child(3),.service-card-new:nth-child(6){background:#fbf1d5;border-top-color:#d7ad32}
.service-card-new:nth-child(4){background:#e8f2f5;border-top-color:#72aabd}
.service-card-new:nth-child(5){background:#f0ebf6;border-top-color:#9f8abc}
.service-card-new:nth-child(7){background:#eef3e9;border-top-color:#88a876}
.service-card-new .tag{background:rgba(255,255,255,.58);border-color:rgba(60,70,60,.13)}
.service-people a{text-decoration-thickness:1px;text-underline-offset:3px}
.service-image{margin:-1px -1px 1.35rem;overflow:hidden;border-radius:0;height:220px}
.service-image img{width:100%;height:100%;display:block;object-fit:cover}
@media(max-width:760px){.service-image{height:200px}.offer-photo img{height:320px}}

/* v16 — Vad vi erbjuder: kategorifärger i stället för personfärger + bättre bildutsnitt */
/* Behovskorten är neutrala eftersom flera praktiker kan höra till samma behov. */
.need-card:nth-child(1),
.need-card:nth-child(2),
.need-card:nth-child(3),
.need-card:nth-child(4),
.need-card:nth-child(5) {
  border-top-color: #B9AA98;
}
.need-card:nth-child(1) { background: #F2ECE4; }
.need-card:nth-child(2) { background: #EEE9E2; }
.need-card:nth-child(3) { background: #F5F0E8; }
.need-card:nth-child(4) { background: #EDEFEA; }
.need-card:nth-child(5) { background: #F3EEE5; }

/* Tjänstekorten färgkodas efter område, inte efter person. */
.service-card-new:nth-child(1) { background: #F3ECE7; border-top-color: #B79A89; }
.service-card-new:nth-child(2) { background: #EEEAE7; border-top-color: #9E938B; }
.service-card-new:nth-child(3) { background: #F3EFE2; border-top-color: #B9A871; }
.service-card-new:nth-child(4) { background: #EAF0F1; border-top-color: #7FA4AE; }
.service-card-new:nth-child(5) { background: #EDF0EA; border-top-color: #8FA08B; }
.service-card-new:nth-child(6) { background: #F3EEE2; border-top-color: #BAA36C; }
.service-card-new:nth-child(7) { background: #EAF0E8; border-top-color: #879B7D; }

/* Ge fotografierna mer höjd och placera motivet där det faktiskt finns. */
.service-image {
  height: clamp(270px, 31vw, 360px);
  background: #eee9e2;
}
.service-image img {
  object-fit: cover;
  object-position: 50% 40%;
}
.service-card-new:nth-child(1) .service-image img { object-position: 50% 40%; }
.service-card-new:nth-child(2) .service-image img { object-position: 50% 32%; }
.service-card-new:nth-child(3) .service-image img { object-position: 50% 46%; }
.service-card-new:nth-child(4) .service-image img { object-position: 50% 35%; }
.service-card-new:nth-child(5) .service-image img { object-position: 50% 35%; }
.service-card-new:nth-child(6) .service-image img { object-position: 50% 18%; }
.service-card-new:nth-child(7) .service-image img { object-position: 50% 50%; }

@media (max-width: 760px) {
  .service-image { height: 300px; }
  .service-card-new:nth-child(6) .service-image img { object-position: 50% 16%; }
}

/* v19 – stabil kontaktlayout, inga knappar utanför sidans kant */
#bokning .people-list .person-row {
  grid-template-columns: 64px minmax(0, 1.1fr) minmax(0, .9fr) minmax(0, 1.5fr);
  gap: clamp(12px, 1.8vw, 24px);
  min-width: 0;
}
#bokning .people-list .person-row > * {min-width:0;}
#bokning .people-list .person-row h3 {overflow-wrap:anywhere;}
#bokning .people-list .contact-choice {margin-top:0;min-width:0;justify-content:flex-start;}
#bokning .people-list .contact-choice .button {white-space:normal;max-width:100%;text-align:center;}
@media(max-width:1050px){
 #bokning .people-list .person-row {grid-template-columns:64px minmax(0,1fr) minmax(0,1fr);}
 #bokning .people-list .contact-choice {grid-column:2 / -1;}
}
@media(max-width:620px){
 #bokning .people-list .person-row {grid-template-columns:52px minmax(0,1fr);gap:10px 14px;}
 #bokning .people-list .person-mark {width:50px;}
 #bokning .people-list .person-row h3 {grid-column:2;}
 #bokning .people-list .person-row p {grid-column:2;}
 #bokning .people-list .contact-choice {grid-column:2;}
}

/* Förenklad huvudmeny */
.desktop-nav{gap:clamp(10px,1.4vw,23px)!important}
.desktop-nav>a,.nav-dropdown-trigger{font-size:clamp(.85rem,1.03vw,1.04rem)!important;white-space:nowrap}
.nav-dropdown{position:relative}
.nav-dropdown-trigger{font:inherit;font-weight:500;color:inherit;background:none;border:0;cursor:pointer;padding:12px 0}
.nav-dropdown-panel{position:absolute;top:100%;left:-16px;min-width:210px;padding:10px;background:#f8f3eb;color:#51463f;box-shadow:0 10px 26px #0002;display:none;z-index:80}
.nav-dropdown-panel a{display:block;padding:10px 12px;white-space:nowrap}
.nav-dropdown:hover .nav-dropdown-panel,.nav-dropdown:focus-within .nav-dropdown-panel,.nav-dropdown.is-open .nav-dropdown-panel{display:block}
.mobile-nav{overflow-y:auto;align-content:start;gap:14px;padding-top:125px}
.mobile-nav>a,.mobile-nav-group>summary{font-size:clamp(1.2rem,4vw,1.75rem)!important;font-family:Georgia,serif;line-height:1.3;cursor:pointer}
.mobile-nav-group>a{display:block;font-size:1.1rem!important;font-family:inherit;padding:7px 0 7px 20px}
.mobile-nav-group>summary{list-style:none}
.mobile-nav-group>summary:after{content:' +';font-family:sans-serif}
.mobile-nav-group[open]>summary:after{content:' −'}

/* v25: tydligare huvudmeny, utan andra layoutandringar */
@media (min-width: 821px) {
  .desktop-nav { gap: clamp(10px, 1.25vw, 20px) !important; }
  .desktop-nav > a,
  .desktop-nav > .nav-dropdown > .nav-dropdown-trigger {
    font-size: 17px !important;
    font-weight: 500 !important;
    line-height: 1.35;
  }
  .nav-dropdown-panel a { font-size: 16px !important; font-weight: 500 !important; }
}
