/*
Theme Name: Hello Elementor Child
Theme URI: https://annabrauner.dk
Template: hello-elementor
Author: JR Productions
Description: Child theme for annabrauner.dk
Version: 1.0.0
*/

/* ── RESET & BASE ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; min-width: 0; }

:root {
  --free-reign: #D2CEC9;
  --florentine: #7B5344;
  --city-tower: #B0AAA5;
  --hemp: #997D73;
  --wetlands: #3C2715;
  --bg: #F5F2EF;
  --bg-alt: #EAE5E1;
  --text: #2A1F18;
  --text-mid: #6B5248;
  --border: #D2CEC9;
}

/* overflow-x: clip frem for hidden. Begge undertrykker vandret overløb, men
   "hidden" gør elementet til scroll-container, og det slår position:sticky ihjel
   for alt indhold nedenunder — det var derfor den faste menu aldrig satte sig
   fast. "clip" klipper uden at scrolle og bevarer sticky.
   Dobbeltdeklarationen er bevidst: browsere uden clip-understøttelse falder
   tilbage på hidden og opfører sig som hidtil. */
html { overflow-x: hidden; overflow-x: clip; }
body { font-family: 'Inter', sans-serif; background: var(--bg); color: var(--text); font-size: 16px; line-height: 1.7; overflow-x: hidden; overflow-x: clip; max-width: 100vw; }

/* Hide Hello Elementor theme chrome — nav + footer lives inside Elementor */
#site-header,
.page-header,
.site-footer,
.elementor-page .site-branding { display: none !important; }

/* Strip Elementor section padding so our HTML handles its own spacing */
.elementor-section .elementor-container { max-width: 100% !important; width: 100% !important; }
.elementor-section.elementor-section-stretched { width: 100% !important; left: 0 !important; max-width: 100% !important; }
.elementor-widget-html { width: 100%; max-width: 100%; }
.elementor-widget-container { overflow-x: hidden; }

/* ── NAV ── */
/* Menuen udskrives nu direkte i <body> fra temaet (se functions.php), så dens
   containing block er siden selv og sticky virker på selve <nav>.
   Forudsætningen er overflow-x: clip på html/body — se kommentaren deroppe.

   Reglen herunder er en rest fra dengang menuen lå i en Elementor-sektion, hvis
   forældrekæde var præcis lige så høj som menuen og derfor gav sticky nul
   spillerum. Den bevares, så en side der stadig måtte have menuen liggende
   inline ikke mister den faste menu. */
.elementor-top-section:has(> .elementor-container nav.ab-nav) {
  position: sticky;
  top: 0;
  z-index: 1000;
}

nav.ab-nav {
  position: sticky; top: 0; z-index: 1000;
  background: rgba(245,242,239,0.97);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
  padding: 0 56px;
  display: flex; align-items: center; justify-content: space-between;
  height: 72px;
}
.nav-logo { font-family: 'Cormorant Garamond', serif; font-size: 22px; font-weight: 400; letter-spacing: 0.06em; color: var(--wetlands); text-decoration: none; }
.nav-logo em { font-style: italic; color: var(--florentine); }
.nav-links { display: flex; gap: 32px; align-items: center; list-style: none; }
.nav-links > li > a { text-decoration: none; color: var(--text-mid); font-size: 13px; font-weight: 400; letter-spacing: 0.06em; text-transform: uppercase; transition: color .2s; font-family: 'Inter', sans-serif; }
.nav-links > li > a:hover { color: var(--wetlands); }
.nav-dropdown { position: relative; }
.nav-dropdown-menu {
  display: none; position: absolute; top: 100%; left: -16px;
  background: white; border: 1px solid var(--border); border-radius: 6px;
  padding: 8px 0; min-width: 240px; box-shadow: 0 8px 24px rgba(60,39,21,0.08);
  margin-top: 0; padding-top: 16px;
}
.nav-dropdown:hover .nav-dropdown-menu { display: block; }
.nav-dropdown-menu a { display: block; padding: 10px 20px; font-size: 13px; color: var(--text-mid); text-decoration: none; transition: all .15s; }
.nav-dropdown-menu a:hover { color: var(--florentine); background: var(--bg); padding-left: 26px; }
.nav-dropdown > a::after { content: ' ↓'; font-size: 10px; opacity: 0.5; }
.nav-cta { background: var(--florentine); color: white !important; padding: 10px 22px; border-radius: 4px; font-size: 12px !important; font-weight: 500 !important; letter-spacing: 0.08em !important; text-transform: uppercase !important; transition: background .2s; }
.nav-cta:hover { background: var(--wetlands) !important; }

/* Mega dropdown (Jeg tilbyder) */
.nav-mega {
  min-width: 540px;
  padding: 20px 0 !important;
  flex-direction: row;
  gap: 0;
}
.nav-dropdown:hover .nav-mega { display: flex; }
.nav-mega-col { flex: 1; padding: 0 20px; }
.nav-mega-col + .nav-mega-col { border-left: 1px solid var(--border); }
.nav-mega-label {
  display: block;
  font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--hemp); font-weight: 500; font-family: 'Inter', sans-serif;
  padding-bottom: 7px; margin: 18px 0 6px;
  border-bottom: 1px solid var(--border);
}
.nav-mega-col .nav-mega-label:first-child { margin-top: 0; }
.nav-mega a { border-bottom: none; }
.nav-mega-extras {
  margin-top: 14px; padding-top: 14px;
  border-top: 1px solid var(--border);
  display: flex; flex-direction: column; gap: 2px;
}

.hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 8px; background: none; border: none; }
.hamburger span { display: block; width: 24px; height: 2px; background: var(--wetlands); border-radius: 2px; transition: all .3s; }
.hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; }
.hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.mobile-menu { display: none; position: fixed; top: 72px; left: 0; right: 0; bottom: 0; background: var(--bg); z-index: 999; padding: 32px 24px; flex-direction: column; overflow-y: auto; }
.mobile-menu.open { display: flex; }
.mobile-menu a { display: block; padding: 15px 0; font-size: 17px; color: var(--text); text-decoration: none; border-bottom: 1px solid var(--border); }
.mobile-menu .mobile-sub { padding-left: 16px; font-size: 14px; color: var(--text-mid); }
.mobile-menu .mobile-cta { margin-top: 24px; background: var(--florentine); color: white !important; text-align: center; border-radius: 4px; border: none; font-weight: 500; font-size: 15px; padding: 16px; }

/* Desktop-menuen kræver ~1054px for at kunne være der (logo + 6 punkter + CTA).
   Mobil-blokken nedenfor overtager først ved 768px, så i hullet 769–1054px
   ombrød menupunkterne og BOOK TID-knappen blev klippet af i højre kant.
   Her skifter vi til hamburger allerede ved 1060px. Navhøjden forbliver 72px
   i dette interval (60px gælder først ≤768px), og .mobile-menu's top: 72px
   ovenfor passer derfor uden yderligere regler. */
@media (max-width: 1060px) {
  .nav-links { display: none; }
  .hamburger { display: flex; }
}

/* ── HIDDEN ELEMENTS ── */
.hero-badge { display: none !important; }
.about-img-overlay { display: none !important; }
.footer-bottom a[href*="jrproductions"] { display: none !important; }
.footer-bottom p:has(a[href*="jrproductions"]) { display: none !important; }


/* ── HERO ── */
.hero-section { min-height: 92vh; }
.hero-section > .elementor-container { min-height: 92vh; align-items: stretch; }

.hero-content-col { position: relative; }
.hero-content-col > .elementor-widget-wrap {
  display: flex !important; flex-direction: column; justify-content: center;
  padding: 52px 64px 52px 96px !important;
}
.hero-content { display: flex; flex-direction: column; height: 100%; justify-content: center; }
.hero-eyebrow { display: flex; align-items: center; gap: 12px; margin-bottom: 32px; }
.hero-eyebrow-line { width: 32px; height: 1px; background: var(--hemp); }
.hero-eyebrow span { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--hemp); font-weight: 400; }
.hero-title { font-family: 'Cormorant Garamond', serif; font-size: 68px; line-height: 1.05; font-weight: 300; color: var(--wetlands); margin-bottom: 28px; }
.hero-title em { font-style: italic; color: var(--florentine); }
.hero-subtitle { font-size: 15px; color: var(--text-mid); line-height: 1.85; max-width: 380px; margin-bottom: 48px; font-weight: 300; }
.hero-actions { display: flex; gap: 20px; align-items: center; }
.btn-primary { background: var(--florentine); color: white; padding: 15px 36px; border-radius: 4px; font-size: 13px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; transition: background .2s; display: inline-block; }
.btn-primary:hover { background: var(--wetlands); }
.btn-outline { color: var(--text-mid); font-size: 13px; text-decoration: none; letter-spacing: 0.06em; text-transform: uppercase; display: flex; align-items: center; gap: 8px; font-weight: 400; border-bottom: 1px solid var(--border); padding-bottom: 2px; transition: color .2s, border-color .2s; }
.btn-outline:hover { color: var(--wetlands); border-color: var(--wetlands); }
.hero-badge {
  display: flex; align-items: center; gap: 14px;
  background: white; border-radius: 6px; padding: 16px 22px;
  box-shadow: 0 4px 24px rgba(60,39,21,0.12);
  position: absolute; bottom: 36px; right: -20px;
  z-index: 10;
}
.hero-badge-icon { font-size: 24px; }
.hero-badge-text { font-size: 12px; color: var(--text-mid); line-height: 1.4; }
.hero-badge-text strong { display: block; font-size: 14px; color: var(--wetlands); font-weight: 500; margin-bottom: 2px; }

.hero-image-col { position: relative; }
.hero-image-col > .elementor-widget-wrap { position: absolute !important; inset: 0; padding: 0 !important; }
.hero-image-col .elementor-widget-image,
.hero-image-col .elementor-widget-image .elementor-widget-container { height: 100%; }
.hero-image-col .elementor-widget-image img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }

/* ── ABOUT ── */
.about-image-col { position: relative; }
.about-image-col > .elementor-widget-wrap { position: absolute !important; inset: 0; padding: 0 !important; }
.about-image-col .elementor-widget-image,
.about-image-col .elementor-widget-image .elementor-widget-container { height: 100%; }
.about-image-col .elementor-widget-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }

.about-content-col > .elementor-widget-wrap {
  display: flex !important; flex-direction: column; justify-content: center;
  padding: 80px 80px 80px 72px !important; position: relative;
  min-height: 82vh;
}
.about-content { display: flex; flex-direction: column; justify-content: center; }
.about-img-overlay { align-self: flex-start; margin-top: 36px; background: var(--florentine); color: white; padding: 18px 24px; border-radius: 4px; }
.about-img-overlay p { font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.7; margin-bottom: 4px; }
.about-img-overlay strong { font-family: 'Cormorant Garamond', serif; font-size: 30px; font-weight: 300; }
.section-eyebrow { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.section-eyebrow-line { width: 28px; height: 1px; background: var(--hemp); }
.section-eyebrow span { font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--hemp); font-weight: 400; font-family: 'Inter', sans-serif; }
.section-title { font-family: 'Cormorant Garamond', serif; font-size: 50px; line-height: 1.1; font-weight: 300; margin-bottom: 28px; color: var(--wetlands); }
.section-title em { font-style: italic; color: var(--florentine); }
.section-body { font-size: 15px; color: var(--text-mid); line-height: 1.9; margin-bottom: 18px; font-weight: 300; }
.about-quote { border-left: 1px solid var(--hemp); padding-left: 20px; margin: 28px 0; font-family: 'Cormorant Garamond', serif; font-size: 20px; font-style: italic; color: var(--florentine); line-height: 1.5; }
.signature { font-family: 'Cormorant Garamond', serif; font-size: 30px; font-style: italic; color: var(--hemp); margin-top: 32px; }

/* ── SERVICES ── */
.services { padding: 112px 96px; background: var(--bg-alt); }
.services-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; max-width: 960px; margin: 0 auto; }
/* V1 service-card regler — :not(.elementor-column) så de ikke rammer V2 Elementor-kolonner */
.service-card:not(.elementor-column) { background: white; border-radius: 6px; padding: 36px 32px; border: 1px solid var(--border); transition: border-color .25s; cursor: pointer; }
.service-card:not(.elementor-column):hover { border-color: var(--city-tower); }
.service-icon { font-size: 32px; margin-bottom: 18px; display: block; }
.service-card:not(.elementor-column) h3 { font-family: 'Cormorant Garamond', serif; font-size: 25px; font-weight: 400; margin-bottom: 10px; color: var(--wetlands); }
.service-card:not(.elementor-column) p { font-size: 14px; color: var(--text-mid); line-height: 1.8; margin-bottom: 20px; font-weight: 300; }
.service-link { font-size: 12px; color: var(--florentine); text-decoration: none; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; }
.service-link::after { content: ' →'; }

/* ── BOOKING BANNER ── */
.booking-banner { background: var(--florentine); padding: 80px max(48px, calc((100% - 1100px) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 48px; }
.booking-banner-text { max-width: 600px; }
.booking-banner-text h2 { font-family: 'Cormorant Garamond', serif; font-size: 48px; font-weight: 300; color: white; margin-bottom: 10px; line-height: 1.1; }
.booking-banner-text h2 em { font-style: italic; color: var(--free-reign); }
.booking-banner-text p { font-size: 15px; color: rgba(255,255,255,0.55); font-weight: 300; }
.booking-banner-actions { display: flex; flex-direction: column; gap: 12px; flex-shrink: 0; }
.btn-light { background: white; color: var(--florentine); padding: 15px 36px; border-radius: 4px; font-size: 13px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; white-space: nowrap; transition: background .2s; text-align: center; }
.btn-light:hover { background: var(--bg); }
.btn-light-secondary { background: transparent; color: white; border: 1px solid rgba(255,255,255,0.45); }
.btn-light-secondary:hover { background: rgba(255,255,255,0.1); }

/* ── REVIEWS ── */
.reviews { padding: 112px 96px; background: #5A3828; position: relative; overflow: hidden; }
.reviews::before { content: '"'; position: absolute; top: 20px; left: 64px; font-family: 'Cormorant Garamond', serif; font-size: 240px; line-height: 1; color: rgba(255,255,255,0.04); pointer-events: none; }
.reviews-header { text-align: center; margin-bottom: 56px; max-width: 900px; margin-left: auto; margin-right: auto; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 1200px; margin: 0 auto; }
.reviews-header .section-eyebrow { justify-content: center; }
.reviews-header .section-eyebrow-line { background: var(--free-reign); }
.reviews-header .section-eyebrow span { color: var(--free-reign); }
.reviews-header .section-title { color: white; }
.review-card:not(.elementor-column) { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.08); border-radius: 6px; padding: 36px; }
.review-stars { color: #D4A853; font-size: 13px; margin-bottom: 18px; letter-spacing: 3px; }
.review-text { font-size: 18px; color: rgba(255,255,255,0.8); line-height: 1.7; font-style: italic; margin-bottom: 24px; font-family: 'Cormorant Garamond', serif; font-weight: 300; }
.review-author { font-size: 12px; color: var(--free-reign); font-weight: 400; letter-spacing: 0.1em; text-transform: uppercase; }

/* ── INSTAGRAM ── */
.instagram-section { padding: 96px 96px; background: white; }
.instagram-header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 36px; max-width: 1200px; margin-left: auto; margin-right: auto; }
.instagram-handle { font-size: 12px; color: var(--florentine); font-weight: 500; text-decoration: none; letter-spacing: 0.1em; text-transform: uppercase; }
.instagram-handle::after { content: ' →'; }
.insta-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; max-width: 1200px; margin: 0 auto; }
.insta-cell { aspect-ratio: 1; border-radius: 4px; overflow: hidden; display: flex; align-items: center; justify-content: center; font-size: 26px; cursor: pointer; transition: opacity .2s; }
.insta-cell:nth-child(1) { background: #EAE5E1; }
.insta-cell:nth-child(2) { background: #D2CEC9; }
.insta-cell:nth-child(3) { background: #B0AAA5; }
.insta-cell:nth-child(4) { background: #997D73; }
.insta-cell:nth-child(5) { background: #7B5344; }
.insta-cell:nth-child(6) { background: #3C2715; }
.insta-cell:hover { opacity: 0.85; }

/* ── FOOTER ── */
.ab-footer { background: var(--wetlands); color: rgba(255,255,255,0.5); padding: 72px 96px 36px; }
.footer-top { display: grid; grid-template-columns: 2fr 1fr 1fr 2fr; gap: 56px; margin-bottom: 48px; max-width: 1200px; margin-left: auto; margin-right: auto; }
.footer-logo { font-family: 'Cormorant Garamond', serif; font-size: 20px; color: white; display: block; margin-bottom: 14px; letter-spacing: 0.06em; text-decoration: none; }
.footer-logo em { font-style: italic; color: var(--free-reign); }
.footer-brand p { font-size: 14px; line-height: 1.8; max-width: 220px; font-weight: 300; }
.footer-col h4 { color: white; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 500; margin-bottom: 18px; }
.footer-col ul { list-style: none; }
.footer-col ul li { margin-bottom: 10px; }
.footer-col ul a { color: rgba(255,255,255,0.4); text-decoration: none; font-size: 14px; transition: color .2s; font-weight: 300; }
.footer-col ul a:hover { color: var(--free-reign); }
.footer-col p { font-size: 14px; line-height: 1.8; font-weight: 300; }
.footer-col a { color: rgba(255,255,255,0.4); text-decoration: none; transition: color .2s; }
.footer-col a:hover { color: var(--free-reign); }
.footer-map { width: 100%; height: 150px; border-radius: 4px; overflow: hidden; margin-top: 14px; }
.footer-map iframe { width: 100%; height: 100%; border: 0; filter: grayscale(30%); }

/* To klinikker i footeren: Aalborg SV og Hobro. Kun Aalborg har kort — Hobro
   står med adresse alene. */
.footer-klinikker .footer-klinik + .footer-klinik { margin-top: 26px; }
.footer-klinikker .footer-map { height: 130px; margin-top: 10px; }
.footer-klinik-navn { color: white; font-weight: 400 !important; margin-bottom: 2px; }
.footer-klinik-note { font-size: 12px; opacity: 0.4; }

/* Kort på /klinik-hobro/ — samme udtryk som footerens kort, blot større, da
   det her er sidens egentlige indhold og ikke en fodnote. */
.kh-map { width: 100%; height: 340px; border-radius: 6px; overflow: hidden; margin: 20px 0 8px; border: 1px solid var(--border); }
.kh-map iframe { width: 100%; height: 100%; border: 0; }
@media (max-width: 768px) { .kh-map { height: 240px; } }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.07); padding-top: 24px; display: flex; justify-content: space-between; align-items: center; max-width: 1200px; margin: 0 auto; }
.footer-bottom p { font-size: 12px; letter-spacing: 0.04em; }
.footer-bottom a { color: var(--free-reign); text-decoration: none; }

/* ── V2: NATIVE ELEMENTOR WIDGET OVERRIDES (inject-home-v2.php) ─────────────
   Elementor JSON sætter INGEN padding på services/reviews-sektioner —
   al padding styres herunder via CSS !important. Det sikrer at mobil-
   overrides fungerer uden at kæmpe mod Elementors element-specifikke CSS.
   ────────────────────────────────────────────────────────────────────────── */

/* Hero subtitle: max-width — <p> er direkte i widget-elementet (ingen .elementor-text-editor wrapper) */
.elementor-widget.hero-subtitle p { max-width: 380px; }

/* ── NATIVE EYEBROW WIDGETS (ab_eyebrow) ── */
/* <p> er direkte i widget-elementet: div.elementor-widget.ab-eyebrow > p */
.elementor-widget.ab-eyebrow p,
.elementor-widget.ab-eyebrow-hero p,
.elementor-widget.ab-eyebrow-light p {
  display: flex !important; align-items: center; gap: 12px;
  font-size: 11px !important; letter-spacing: 0.16em !important; text-transform: uppercase !important;
  font-weight: 400 !important; font-family: 'Inter', sans-serif !important; margin: 0 !important;
}
.elementor-widget.ab-eyebrow-hero p { letter-spacing: 0.18em !important; }
.elementor-widget.ab-eyebrow p,
.elementor-widget.ab-eyebrow-hero p { color: #997D73 !important; }
.elementor-widget.ab-eyebrow-light p { color: #D2CEC9 !important; justify-content: center !important; }
/* Dekorativ streg — .ew-line span i HTML-indholdet */
.elementor-widget.ab-eyebrow .ew-line,
.elementor-widget.ab-eyebrow-hero .ew-line,
.elementor-widget.ab-eyebrow-light .ew-line {
  display: block; flex-shrink: 0; height: 1px;
}
.elementor-widget.ab-eyebrow .ew-line { width: 28px; background: #997D73; }
.elementor-widget.ab-eyebrow-hero .ew-line { width: 32px; background: #997D73; }
.elementor-widget.ab-eyebrow-light .ew-line { width: 28px; background: #D2CEC9; }

/* ── ABOUT: CITAT OG SIGNATUR ── */
.elementor-widget.about-quote {
  border-left: 1px solid #997D73; padding-left: 20px; margin-top: 28px !important; margin-bottom: 28px !important;
}
.elementor-widget.about-quote p { margin: 0 !important; }
.elementor-widget.about-signature { margin-top: 32px !important; }

/* ── YDELSER ── */
.elementor-section.services-intro     { padding: 112px 96px 56px !important; }
.elementor-section.services-cards-first { padding: 0 96px 16px !important; }
.elementor-section.services-cards-last  { padding: 0 96px 112px !important; }

/* Heading em-styling og højrejustering af højre kolonne */
.elementor-section.services-intro .elementor-heading-title em { font-style: italic; color: var(--florentine); }
.elementor-section.services-intro .elementor-column.services-intro-right > .elementor-widget-wrap {
  justify-content: flex-end; text-align: right;
}

/* Service-kort: baggrund + border på widget-wrap */
.elementor-column.service-card > .elementor-widget-wrap {
  background: white !important;
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  padding: 36px 32px !important;
  transition: border-color .25s;
  box-sizing: border-box;
  height: 100%;
}
.elementor-column.service-card:hover > .elementor-widget-wrap { border-color: var(--city-tower) !important; }

/* Services-cards: top-level 2-kolonne sektion */
.elementor-section.services-cards > .elementor-container {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 16px !important;
  align-items: stretch;
}
.elementor-section.services-cards > .elementor-container > .elementor-column {
  width: 100% !important;
  max-width: 100% !important;
  flex-basis: auto !important;
}

/* ── ANMELDELSER ── */
.elementor-section.reviews       { padding: 112px 96px 56px !important; }
.elementor-section.reviews-cards { padding: 0 96px 112px !important; }

/* Anmeldelseskort: baggrund + border på widget-wrap */
.elementor-column.review-card > .elementor-widget-wrap {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 6px !important;
  padding: 36px !important;
  box-sizing: border-box;
  height: 100%;
}

/* Reviews-cards: top-level 3-kolonne sektion */
.elementor-section.reviews-cards > .elementor-container {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;
  align-items: stretch;
}
.elementor-section.reviews-cards > .elementor-container > .elementor-column {
  width: 100% !important;
  max-width: 100% !important;
  flex-basis: auto !important;
}

/* ── TABLET (769–1100px): reduce section padding ── */
@media (min-width: 769px) and (max-width: 1100px) {
  .hero-content-col > .elementor-widget-wrap { padding: 60px 40px 60px 80px !important; }
  .about-content-col > .elementor-widget-wrap { padding: 60px 48px 60px 40px !important; }
  .services { padding: 80px 48px; }
  .booking-banner { padding: 60px 48px; }
  .reviews { padding: 80px 48px; }
  .instagram-section { padding: 72px 48px; }
  .ab-footer { padding: 60px 48px 28px; }
  .page-hero { padding: 72px 48px 0; }
  /* V2 Elementor sektioner på tablet */
  .elementor-section.services-intro     { padding: 80px 48px 40px !important; }
  .elementor-section.services-cards-first { padding: 0 48px 12px !important; }
  .elementor-section.services-cards-last  { padding: 0 48px 80px !important; }
  .elementor-section.reviews       { padding: 80px 48px 40px !important; }
  .elementor-section.reviews-cards { padding: 0 48px 80px !important; }
}

/* ── PAGE: OM MIG ── */
.page-hero {
  background: var(--wetlands);
  padding: 96px 96px 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
  min-height: 480px;
  position: relative;
  overflow: hidden;
}
.page-hero::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 80% 50%, rgba(123,83,68,0.35) 0%, transparent 65%);
  pointer-events: none;
}
.page-hero-content { padding-bottom: 72px; position: relative; }
.page-eyebrow { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.page-eyebrow-line { width: 28px; height: 1px; background: var(--hemp); }
.page-eyebrow span { font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--hemp); font-weight: 400; }
.page-hero-title { font-family: 'Cormorant Garamond', serif; font-size: 64px; font-weight: 300; line-height: 1.05; color: white; margin-bottom: 24px; }
.page-hero-title em { font-style: italic; color: var(--free-reign); }
.page-hero-lead { font-size: 16px; color: rgba(255,255,255,0.55); line-height: 1.8; max-width: 400px; font-weight: 300; }
.page-hero-photo { align-self: end; position: relative; }
.page-hero-photo-wrap {
  width: 100%; aspect-ratio: 3/4; max-height: 420px;
  background: linear-gradient(170deg, #B0AAA5 0%, #7B5344 60%, #3C2715 100%);
  border-radius: 4px 4px 0 0;
  display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px;
  overflow: hidden;
}
.page-hero-quote {
  position: absolute; left: -32px; top: 50%; transform: translateY(-50%);
  background: var(--florentine); color: white; padding: 24px 28px; border-radius: 4px;
  max-width: 220px; box-shadow: 0 8px 32px rgba(0,0,0,0.2);
}
.page-hero-quote p { font-family: 'Cormorant Garamond', serif; font-size: 17px; font-style: italic; line-height: 1.5; color: rgba(255,255,255,0.9); }
.page-hero-quote cite { display: block; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.45); margin-top: 10px; font-style: normal; }

/* Hero right column — no Elementor inner padding, full height photo */
.hero-photo-col > .elementor-widget-wrap { padding: 0 !important; min-height: 480px; display: flex !important; flex-direction: column; }
.page-hero-photo-inner { position: relative; flex: 1; display: flex; flex-direction: column; }
.page-hero-photo-wrap {
  flex: 1; min-height: 420px;
  background: linear-gradient(170deg, #B0AAA5 0%, #7B5344 60%, #3C2715 100%);
  border-radius: 4px 4px 0 0;
  display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px;
}
/* Override old .page-hero-photo-wrap if present from mockup HTML */
.page-hero-photo { position: relative; }

/* em color: free-reign in hero, florentine elsewhere */
.hero-h1 .elementor-heading-title em { font-style: italic; color: var(--free-reign); }
.elementor-heading-title em { font-style: italic; color: var(--florentine); }

/* Story section */
.story-stats { margin-top: 40px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.stat { border-left: 1px solid var(--border); padding-left: 20px; }
.stat-number { font-family: 'Cormorant Garamond', serif; font-size: 48px; font-weight: 300; color: var(--florentine); line-height: 1; }
.stat-label { font-size: 12px; color: var(--text-mid); letter-spacing: 0.08em; text-transform: uppercase; margin-top: 4px; }
.story-photo-main { width: 100%; aspect-ratio: 4/5; background: linear-gradient(160deg, #EAE5E1 0%, #B0AAA5 50%, #7B5344 100%); border-radius: 6px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.story-photo-small { aspect-ratio: 1; background: var(--bg-alt); border-radius: 6px; display: flex; align-items: center; justify-content: center; }

/* Values section */
.value-icon { font-size: 36px; margin-bottom: 16px; display: block; text-align: center; }
.values-header-col .section-eyebrow { justify-content: center; }
.values-header-col .elementor-heading-title { text-align: center; }

/* Education timeline */
.edu-list { list-style: none; }
.edu-item { display: grid; grid-template-columns: 64px 1fr; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--border); align-items: start; }
.edu-item:first-child { border-top: 1px solid var(--border); }
.edu-year { font-size: 12px; color: var(--hemp); font-weight: 500; letter-spacing: 0.06em; padding-top: 3px; }
.edu-content h4 { font-size: 15px; color: var(--text); font-weight: 500; margin-bottom: 3px; }
.edu-content p { font-size: 13px; color: var(--text-mid); font-weight: 300; }

/* Clinic section */
/* Ankermål for footerens "Praktisk info" (/om-mig#klinik). Menuen er sticky og
   72px høj, så uden scroll-margin lander overskriften bag den ved anker-spring. */
#klinik { scroll-margin-top: 96px; }
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

.clinic-map-wrap { height: 100%; min-height: 400px; }
.clinic-details { display: flex; flex-direction: column; gap: 20px; margin-top: 28px; }
.clinic-detail { display: flex; align-items: flex-start; gap: 16px; }
.clinic-detail-icon { font-size: 18px; margin-top: 2px; flex-shrink: 0; }
.clinic-detail-text { font-size: 14px; color: var(--text-mid); line-height: 1.7; font-weight: 300; }
.clinic-detail-text strong { display: block; font-size: 11px; color: var(--text); font-weight: 500; margin-bottom: 2px; letter-spacing: 0.08em; text-transform: uppercase; }

/* Elementor widget spacing overrides for om-mig */
.elementor-widget-heading + .elementor-widget-heading { margin-top: 0; }
.elementor-widget-html + .elementor-widget-text-editor { margin-top: 16px; }

/* ── SUBPAGE HERO (billede med tekst henover) ── */
.subpage-hero {
  position: relative;
  min-height: 420px;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.subpage-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
}
.subpage-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(60,39,21,0.78) 0%, rgba(60,39,21,0.48) 100%);
}
.subpage-hero-content {
  position: relative;
  z-index: 1;
  padding: 80px 96px;
  max-width: 760px;
}
.subpage-hero-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
}
.subpage-hero-eyebrow-line { width: 28px; height: 1px; background: var(--free-reign); display: block; flex-shrink: 0; }
.subpage-hero-eyebrow span { font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--free-reign); font-weight: 400; font-family: 'Inter', sans-serif; }
.subpage-hero-title { font-family: 'Cormorant Garamond', serif; font-size: 64px; font-weight: 300; line-height: 1.05; color: white; margin-bottom: 16px; }
.subpage-hero-title em { font-style: italic; color: var(--free-reign); }
.subpage-hero-subtitle { font-size: 16px; color: rgba(255,255,255,0.6); line-height: 1.8; font-weight: 300; max-width: 480px; }

/* ── SUBPAGE HERO: desktop = side by side; mobil = tekst over billede ── */
.sp-hero > .elementor-container { align-items: stretch; }

/* Tekstkolonne: indhold centreret, fylder sektionens højde */
.sp-hero-text > .elementor-widget-wrap {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 70vh;
  text-align: center;
}

/* Billedkolonne: fylder kolonnes fulde højde på desktop */
.sp-hero-img > .elementor-widget-wrap { height: 100%; min-height: 50vh; }

/* Eyebrow */
.sp-eyebrow { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 20px; }
.sp-hero-lead, .sp-hero-lead p { text-align: center !important; }
.sp-hero-text .elementor-widget-text-editor,
.sp-hero-text .elementor-widget-text-editor p { text-align: center !important; }
.sp-eyebrow-line { width: 28px; height: 1px; background: rgba(210,206,201,0.6); flex-shrink: 0; }
.sp-eyebrow span { font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(210,206,201,0.75); font-weight: 400; font-family: 'Inter', sans-serif; }

/* Heading + lead */
.elementor-widget.sp-hero-title .elementor-heading-title { color: #fff !important; }
.elementor-widget.sp-hero-title .elementor-heading-title em { color: var(--free-reign) !important; font-style: italic; }
/* Sikkerhedsnet: lange sammensatte ord (fx "Samarbejdspartnere") må ikke løbe
   ud over tekstkolonnen og blive klippet af billedkolonnen. */
.elementor-widget.sp-hero-title .elementor-heading-title { overflow-wrap: break-word; hyphens: auto; }
.elementor-widget.sp-hero-lead p { color: rgba(255,255,255,0.7) !important; max-width: 520px; margin-top: 16px; }

/* ── PRIVATLIVSPOLITIK ── */
.pp-body { max-width: 1100px; margin: 0 auto; padding: 80px 48px; }
/* .pp-title blev demoteret fra <h1> til <p>, fordi den dublerede
   hero-overskriften og gav siden to H1'er.
   To konsekvenser af det nye tag, som håndteres her:
   1. Selektoren skal være .pp-body .pp-title (0,2,0) — ellers vinder
      .pp-body p (0,1,1) længere nede og titlen falder ned i brødtekst-stil.
   2. margin-top pinnes til 0.67em, browserens default for h1, så afstanden
      over titlen er præcis som før. */
.pp-body .pp-title { font-family: 'Cormorant Garamond', serif; font-size: 48px; font-weight: 300; color: var(--wetlands); margin-top: 0.67em; margin-bottom: 8px; line-height: 1.1; }
.pp-updated { font-size: 13px; color: var(--text-mid); margin-bottom: 56px; }
.pp-body h2 { font-family: 'Cormorant Garamond', serif; font-size: 28px; font-weight: 400; color: var(--wetlands); margin: 48px 0 14px; line-height: 1.2; }
.pp-body p { font-size: 15px; color: var(--text-mid); line-height: 1.9; font-weight: 300; margin-bottom: 16px; }
.pp-body ul { margin: 12px 0 20px 20px; }
.pp-body ul li { font-size: 15px; color: var(--text-mid); line-height: 1.85; font-weight: 300; margin-bottom: 4px; }
.pp-body a { color: var(--florentine); }

/* ── YDELSER HERO ── */
.ydelser-hero-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 72px; font-weight: 300; line-height: 1.0;
  color: #fff; margin: 16px 0 20px;
}
.ydelser-hero-lead { font-size: 17px; color: rgba(255,255,255,0.72); font-weight: 300; line-height: 1.8; max-width: 520px; }

/* ── YDELSER OVERVIEW ── */
.ydelser-overview { max-width: 1100px; margin: 0 auto; padding: 0 48px; }
.ydelser-cat-group { margin-bottom: 72px; }
.ydelser-cat-heading {
  display: flex; align-items: center; gap: 20px;
  font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 500;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--florentine);
  margin-bottom: 28px;
}
.ydelser-cat-heading::before,
.ydelser-cat-heading::after { content: ''; flex: 1; height: 1px; background: var(--border); }
.ydelser-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ydelser-card {
  display: flex; flex-direction: column; gap: 8px;
  background: #fff; border: 1px solid var(--border); border-radius: 8px;
  padding: 28px 28px 24px; text-decoration: none;
  transition: border-color 0.18s, box-shadow 0.18s;
}
.ydelser-card:hover { border-color: var(--florentine); box-shadow: 0 4px 16px rgba(60,39,21,0.08); }
.ydelser-card-cat { font-size: 10px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--florentine); }
.ydelser-card-title { font-family: 'Cormorant Garamond', serif; font-size: 24px; font-weight: 400; color: var(--wetlands); line-height: 1.2; margin-top: 4px; }
.ydelser-card-desc { font-size: 13.5px; color: var(--text-mid); line-height: 1.75; font-weight: 300; flex: 1; }
.ydelser-card-link { font-size: 12px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--florentine); margin-top: 8px; }

/* ── SERVICE PAGES ── */
.service-hero-content { display: flex; flex-direction: column; justify-content: center; }
.service-body { max-width: 1100px; margin: 0 auto; padding: 80px 0; }
.service-lead { font-family: 'Cormorant Garamond', serif; font-size: 22px; color: var(--text-mid); line-height: 1.7; margin-bottom: 36px; font-weight: 300; font-style: italic; }
.service-text { font-size: 15px; color: var(--text-mid); line-height: 1.9; margin-bottom: 20px; font-weight: 300; }
.service-text + .service-text { margin-top: 0; }
.service-h2 { font-family: 'Cormorant Garamond', serif; font-size: 36px; font-weight: 300; color: var(--wetlands); margin: 48px 0 16px; line-height: 1.1; }
.service-h3 { font-family: 'Cormorant Garamond', serif; font-size: 24px; font-weight: 400; color: var(--wetlands); margin: 32px 0 12px; }
.service-includes { background: var(--bg-alt); border-radius: 6px; padding: 36px 40px; margin: 40px 0; }
.service-includes h3 { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-weight: 400; color: var(--wetlands); margin-bottom: 20px; }
.service-includes ul { list-style: none; }
.service-includes ul li { padding: 9px 0; border-bottom: 1px solid var(--border); font-size: 15px; color: var(--text-mid); display: flex; align-items: flex-start; gap: 12px; font-weight: 300; }
.service-includes ul li:last-child { border-bottom: none; }
.service-includes ul li::before { content: '✦'; color: var(--florentine); font-size: 9px; margin-top: 6px; flex-shrink: 0; }
.service-price-box { background: var(--florentine); color: white; border-radius: 6px; padding: 36px 40px; margin: 40px 0; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.service-price-amount { font-family: 'Cormorant Garamond', serif; font-size: 60px; font-weight: 300; line-height: 1; white-space: nowrap; }
.service-price-duration { font-size: 13px; opacity: 0.6; margin-top: 4px; letter-spacing: 0.06em; text-transform: uppercase; }
.service-price-note { font-size: 14px; line-height: 1.75; opacity: 0.82; max-width: 340px; }
.service-price-note a { color: rgba(255,255,255,0.65); text-decoration: underline; }
.service-subsidy { background: white; border: 1px solid var(--border); border-radius: 6px; padding: 20px 28px; margin: 20px 0; display: flex; align-items: center; gap: 16px; font-size: 14px; color: var(--text-mid); }
.service-subsidy-icon { font-size: 24px; flex-shrink: 0; }
/* Om mig — personlig boks ("Lidt om mig når jeg har fri") */
.personal-box { background: var(--bg-alt); border-radius: 8px; padding: 32px 36px; margin: 40px 0 0; }
.personal-box h3 { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-weight: 400; color: var(--wetlands); margin-bottom: 14px; }
.personal-box p { font-size: 15px; color: var(--text-mid); line-height: 1.85; font-weight: 300; margin-bottom: 12px; }
.personal-box p:last-child { margin-bottom: 0; }
@media (max-width: 640px) { .personal-box { padding: 26px 24px; } }

/* Kontakt — direkte handlingsknapper (ring / sms / mail) */
.contact-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 8px 0 12px; }
.contact-btn { display: flex; flex-direction: column; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--border); border-radius: 8px; padding: 34px 24px; text-decoration: none; text-align: center; transition: border-color .18s, box-shadow .18s; }
.contact-btn:hover { border-color: var(--florentine); box-shadow: 0 4px 16px rgba(60,39,21,0.08); }
.contact-btn-icon { color: var(--florentine); line-height: 0; }
.contact-btn-icon svg { width: 26px; height: 26px; display: block; }
.contact-btn-label { font-family: 'Cormorant Garamond', serif; font-size: 23px; font-weight: 400; color: var(--wetlands); line-height: 1.2; }
.contact-btn-sub { font-size: 13.5px; color: var(--text-mid); font-weight: 300; }
/* Alle tre vises overalt: sms: åbner beskeder på mobil, og på desktop står
   nummeret stadig på knappen — så den er informativ frem for en blindgyde. */
@media (max-width: 860px) { .contact-actions { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .contact-actions { grid-template-columns: 1fr; } }
.contact-map { width: 100%; height: 380px; border-radius: 6px; overflow: hidden; margin: 24px 0 0; }
.contact-map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Samarbejdspartnere — kort med navn, beskrivelse og link */
.partner-list { display: grid; gap: 16px; margin: 8px 0 0; }
.partner-card { display: block; background: #fff; border: 1px solid var(--border); border-radius: 8px; padding: 26px 30px; text-decoration: none; transition: border-color .18s, box-shadow .18s; }
.partner-card:hover { border-color: var(--florentine); box-shadow: 0 4px 16px rgba(60,39,21,0.08); }
.partner-name { display: block; font-family: 'Cormorant Garamond', serif; font-size: 24px; font-weight: 400; color: var(--wetlands); line-height: 1.25; }
.partner-desc { display: block; font-size: 14.5px; color: var(--text-mid); line-height: 1.75; font-weight: 300; margin-top: 8px; }
.partner-url { display: block; font-size: 12px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--florentine); margin-top: 14px; }
@media (max-width: 640px) { .partner-card { padding: 22px 24px; } }

/* Billedrække i service-body (fx gavekort) */
.service-images { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 40px 0; }
.service-images figure { margin: 0; }
/* Specificiteten skal slå Elementors ".elementor img { height:auto }" (samme
   specificitet vinder ved load-rækkefølge, og Elementor loader efter os). */
.service-body .service-images img { width: 100%; height: 340px; object-fit: cover; border-radius: 6px; display: block; }
@media (max-width: 640px) { .service-images { grid-template-columns: 1fr; gap: 14px; } .service-body .service-images img { height: 260px; } }

/* ── PRISER PAGE ── */
.priser-body { max-width: 1100px; margin: 0 auto; padding: 80px 48px; }
.priser-intro { background: var(--bg-alt); border-radius: 6px; padding: 24px 32px; margin-bottom: 56px; font-size: 15px; color: var(--text-mid); display: flex; align-items: center; gap: 16px; }
.priser-section { margin-bottom: 56px; }
.priser-section-title { font-family: 'Cormorant Garamond', serif; font-size: 38px; font-weight: 300; color: var(--wetlands); margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.price-item { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: start; padding: 18px 0; border-bottom: 1px solid var(--border); }
.price-item:first-child { border-top: none; }
.price-item-name { font-size: 15px; font-weight: 500; color: var(--text); margin-bottom: 3px; }
.price-item-desc { font-size: 13px; color: var(--text-mid); line-height: 1.6; font-weight: 300; margin-top: 4px; }
.price-item-subsidy { font-size: 12px; color: var(--florentine); margin-top: 4px; display: flex; align-items: center; gap: 5px; }
.price-item-amount { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-weight: 300; color: var(--florentine); white-space: nowrap; text-align: right; }
.price-item-duration { font-size: 11px; color: var(--text-mid); text-align: right; letter-spacing: 0.04em; margin-top: 2px; }
.price-note-box { background: var(--bg-alt); border-radius: 6px; padding: 24px 28px; margin-top: 12px; font-size: 13px; color: var(--text-mid); line-height: 1.75; }
.price-note-box strong { color: var(--text); display: block; margin-bottom: 4px; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; }
.priser-cancellation { border: 1px solid var(--border); border-radius: 6px; padding: 28px 32px; margin-top: 48px; }
.priser-cancellation h3 { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-weight: 400; color: var(--wetlands); margin-bottom: 12px; }

/* ── MOBILE ── */
@media (max-width: 768px) {
  nav.ab-nav { padding: 0 20px; height: 60px; }
  /* Menuen er 60px på mobil, ikke 72px — ellers viser der sig en stribe af
     siden i sprækken mellem menubjælken og den åbne mobilmenu. */
  .mobile-menu { top: 60px; }
  .nav-links { display: none; }
  .hamburger { display: flex; }

  /* Force ALL Elementor columns to stack full-width on mobile */
  .elementor-container { flex-direction: column !important; }
  .elementor-column {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
  }
  /* Elementor sætter custom widget-bredder (f.eks. 126%) — nulstil på mobil */
  .elementor-widget__width-initial {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* V2 top-level grid-sektioner: skift til 1 kolonne på mobil */
  .elementor-section.services-cards > .elementor-container { grid-template-columns: 1fr !important; gap: 12px !important; }
  .elementor-section.reviews-cards > .elementor-container { grid-template-columns: 1fr !important; gap: 12px !important; }
  .elementor-widget.hero-subtitle .elementor-text-editor { max-width: 100%; }

  /* Services + reviews: mobil-padding (overskriver desktop-reglerne ovenfor) */
  .elementor-section.services-intro     { padding: 64px 20px 32px !important; }
  .elementor-section.services-cards-first { padding: 0 20px 12px !important; }
  .elementor-section.services-cards-last  { padding: 0 20px 64px !important; }
  .elementor-section.services-intro .elementor-column.services-intro-right > .elementor-widget-wrap {
    justify-content: flex-start; text-align: left;
  }
  .elementor-section.reviews       { padding: 64px 20px 32px !important; }
  .elementor-section.reviews-cards { padding: 0 20px 64px !important; }

  /* Kortenes interne padding: reducer på mobil */
  .elementor-column.service-card > .elementor-widget-wrap { padding: 24px 20px !important; }
  .elementor-column.review-card > .elementor-widget-wrap  { padding: 24px 20px !important; }

  /* Hero */
  .hero-section { min-height: auto; }
  .hero-section > .elementor-container { min-height: auto; }
  /* V2: sæt padding direkte på widget-wrap (ingen .hero-content div) */
  .hero-content-col > .elementor-widget-wrap { padding: 48px 24px 40px !important; }
  /* Image col: nulstil absolute positionering */
  .hero-image-col > .elementor-widget-wrap {
    position: relative !important;
    inset: auto;
    padding: 0 !important;
  }
  .hero-image-col .elementor-widget-image,
  .hero-image-col .elementor-widget-image .elementor-widget-container { height: auto; }
  .hero-image-col .elementor-widget-image img { width: 100%; height: 300px; object-fit: cover; object-position: center top; display: block; }
  .hero-title { font-size: 40px; }
  .hero-subtitle { max-width: 100%; }
  .hero-actions { flex-wrap: wrap; gap: 16px; }

  /* About */
  .about-image-col > .elementor-widget-wrap {
    position: relative !important;
    inset: auto;
    padding: 0 !important;
  }
  .about-image-col .elementor-widget-image,
  .about-image-col .elementor-widget-image .elementor-widget-container { height: auto; }
  .about-image-col .elementor-widget-image img { width: 100%; height: 280px; object-fit: cover; object-position: center 30%; display: block; }
  .about-content-col > .elementor-widget-wrap { padding: 48px 24px !important; min-height: auto !important; }
  .section-title { font-size: 34px; }
  .about-quote { font-size: 17px; }
  .signature { font-size: 24px; }

  /* Services (HTML-styret padding) */
  .services { padding: 64px 24px; }

  /* Booking */
  .booking-banner { flex-direction: column; text-align: center; padding: 60px 24px; }
  .booking-banner-text h2 { font-size: 36px; }
  .btn-light { width: 100%; box-sizing: border-box; }

  .instagram-section { padding: 64px 24px; }
  .instagram-header { flex-direction: column; align-items: flex-start; gap: 12px; }
  .insta-grid { grid-template-columns: repeat(3, 1fr); }

  .ab-footer { padding: 56px 24px 28px; }
  .footer-top { grid-template-columns: 1fr; gap: 36px; }
  .footer-bottom { flex-direction: column; gap: 8px; text-align: center; }

  .page-hero { grid-template-columns: 1fr; padding: 56px 24px 0; gap: 40px; min-height: auto; }
  .page-hero-title { font-size: 40px; }
  .page-hero-quote { position: relative; left: auto; top: auto; transform: none; margin-top: 20px; }
  .clinic-map-wrap { min-height: 260px; }

  .subpage-hero { min-height: 300px; }
  .subpage-hero-content { padding: 56px 24px; }
  .subpage-hero-title { font-size: 40px; }
  .subpage-hero-subtitle { font-size: 15px; }

  /* Mobil: billedkolonne skjules; sektion-bg + overlay viser igennem */
  .sp-hero-img { display: none !important; }
  .sp-hero > .elementor-container { min-height: 60vh; }
  .sp-hero-text { width: 100% !important; }
  .sp-hero-text > .elementor-widget-wrap {
    background: transparent !important;
    min-height: 60vh;
    justify-content: center;
  }

  .service-body { padding: 52px 24px; }
  .service-lead { font-size: 18px; }
  .service-h2 { font-size: 28px; }
  .service-includes { padding: 24px 20px; }
  .service-price-box { flex-direction: column; align-items: flex-start; }
  .service-price-amount { font-size: 48px; }

  .priser-body { padding: 52px 24px; }
  .price-item { grid-template-columns: 1fr; gap: 4px; }
  .price-item-amount { text-align: left; font-size: 22px; }
  .price-item-duration { text-align: left; }

  .ydelser-hero-title { font-size: 48px; }
  .ydelser-overview { padding: 0 20px; }
  .ydelser-grid { grid-template-columns: 1fr; }
  .ydelser-cat-group { margin-bottom: 48px; }

  .pp-body { padding: 52px 24px; }
  .pp-body h2 { font-size: 22px; }
}

/* ── KAMPAGNE-POPUP ──
   Lille kort nede i højre hjørne — bevidst ikke en fuldskærms-overlay: ingen
   mørklægning af siden, intet der spærrer for indholdet. Man kan læse videre
   uden at forholde sig til den. */
.ab-popup {
  position: fixed;
  /* På pc: nederste højre hjørne. Hjørnet er frit, efter at TranslatePress'
     flydende sprogvælger blev slået fra — den lå der før med z-index 99999.
     Bagved ligger forsidens foto, ikke brødtekst. */
  right: 24px;
  bottom: 24px;
  --ab-popup-y: 0px;
  z-index: 1200;               /* over menuen (1000), under intet andet */
  width: 348px;
  max-width: calc(100vw - 32px);
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  /* To lag: et tæt, kort skygge der giver kanten vægt, og et bredt, blødt der
     løfter kortet fri af siden. Ét lag alene bliver enten hårdt eller sjusket. */
  box-shadow: 0 1px 2px rgba(60,39,21,0.06), 0 18px 48px -12px rgba(60,39,21,0.28);
  padding: 32px 30px 26px;
  /* Startpunkt for indtoningen — .ab-popup--synlig ophæver det. */
  opacity: 0;
  /* --ab-popup-y bærer den lodrette centrering, så indtoningen kan lægge sine
     14 px oveni uden at ophæve den. På mobil sættes variablen til 0. */
  transform: translateY(calc(var(--ab-popup-y) + 14px)) scale(0.985);
  transition: opacity .42s cubic-bezier(.2,.7,.3,1), transform .42s cubic-bezier(.2,.7,.3,1);
}
.ab-popup--synlig { opacity: 1; transform: translateY(var(--ab-popup-y)) scale(1); }
.ab-popup[hidden] { display: none; }

/* Lukkeknappen sad før som et gråt kryds inde på det hvide kort og forsvandt
   simpelthen. Nu er den en rigtig knap: egen flade, egen kant, og den hænger
   ud over hjørnet, så den læses som "luk" og ikke som pynt. */
.ab-popup-luk {
  position: absolute; top: -13px; right: -13px;
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  background: #fff; border: 1px solid var(--city-tower); border-radius: 50%;
  color: var(--wetlands); cursor: pointer;
  box-shadow: 0 2px 8px rgba(60,39,21,0.16);
  transition: background .18s, color .18s, border-color .18s, transform .18s;
}
.ab-popup-luk:hover {
  background: var(--wetlands); border-color: var(--wetlands); color: #fff;
  transform: scale(1.06);
}
.ab-popup-luk:focus-visible { outline: 2px solid var(--florentine); outline-offset: 2px; }
/* Krydset er flex-item i en flex-container, og reset'ens min-width:0 lod det
   klemme sig selv ned til 0 px bredt — knappen så tom ud. flex: none låser det. */
.ab-popup .ab-popup-luk svg { width: 16px; height: 16px; flex: none; display: block; }

/* Ekstra udvej nederst: nogle klikker aldrig på et kryds. Den er bevidst
   diskret — teksten skal ikke konkurrere med "Book tid". */
/* Temaet giver alle <button> en lyserød ramme og polstring. Klassen alene
   taber til den regel, så afvis-knappen adresseres via .ab-popup + button. */
.ab-popup button.ab-popup-afvis {
  display: block; width: 100%;
  background: none; border: none; border-radius: 0;
  padding: 12px 0 0; margin: 0;
  box-shadow: none; letter-spacing: normal; text-transform: none;
  font-family: 'Inter', sans-serif; font-size: 12.5px; font-weight: 300;
  color: var(--text-mid);
  text-decoration: underline; text-underline-offset: 3px;
  text-decoration-color: var(--free-reign);
  cursor: pointer; transition: color .18s;
}
.ab-popup button.ab-popup-afvis:hover { background: none; color: var(--wetlands); }
.ab-popup button.ab-popup-afvis:focus-visible { outline: 2px solid var(--florentine); outline-offset: 2px; }

/* Mærkatet står på en tynd streg, så det læses som et stempel og ikke som
   endnu en tekstlinje over overskriften. */
.ab-popup-mærkat {
  display: flex; align-items: center; gap: 10px;
  font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--florentine); font-weight: 500; margin-bottom: 14px;
}
.ab-popup-mærkat::after {
  content: ""; flex: 1; height: 1px; background: var(--border);
}
.ab-popup-titel {
  font-family: 'Cormorant Garamond', serif;
  font-size: 33px; font-weight: 400; line-height: 1.12; letter-spacing: -0.005em;
  color: var(--wetlands); margin-bottom: 12px; text-wrap: balance;
}
.ab-popup-tekst {
  font-size: 14.5px; line-height: 1.6; color: var(--text-mid); font-weight: 300;
  margin-bottom: 16px;
}

/* Rabatkoden er det eneste man skal huske fra kortet, så den får sin egen
   flade og sin egen skala. Ordene er uændrede — kun brudt over tre linjer. */
.ab-popup-kode {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  background: var(--bg); border: 1px dashed var(--free-reign); border-radius: 8px;
  padding: 16px 14px 14px; margin-bottom: 16px;
  text-align: center;
}
.ab-popup-kode-før,
.ab-popup-kode-efter {
  font-size: 12.5px; color: var(--text-mid); font-weight: 300; line-height: 1.4;
}
.ab-popup-kode-værdi {
  font-family: 'Cormorant Garamond', serif;
  font-size: 30px; font-weight: 600; letter-spacing: 0.14em;
  color: var(--florentine); line-height: 1.15;
  /* Kompenser for at letter-spacing lægger luft efter sidste bogstav. */
  text-indent: 0.14em;
}
.ab-popup-cta {
  display: block; text-align: center;
  background: var(--florentine); color: #fff; text-decoration: none;
  padding: 14px 24px; border-radius: 4px;
  font-size: 12.5px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase;
  transition: background .2s;
  margin-bottom: 18px;
}
.ab-popup-cta:hover { background: var(--wetlands); }
.ab-popup-cta:focus-visible { outline: 2px solid var(--wetlands); outline-offset: 2px; }
.ab-popup-småt {
  font-size: 11.5px; line-height: 1.55; color: var(--text-mid); opacity: 0.7; font-weight: 300;
  padding-top: 14px; border-top: 1px solid var(--bg-alt);
}

@media (max-width: 600px) {
  /* På mobil sætter den sig langs bunden i fuld bredde — stadig kun nederste
     del af skærmen, aldrig hele. */
  .ab-popup {
    right: 12px; left: 12px;
    top: auto; bottom: 16px; --ab-popup-y: 0px;
    width: auto; max-width: none;
    padding: 26px 22px 20px;
  }
  .ab-popup-luk { top: -11px; right: -3px; }
  .ab-popup-titel { font-size: 28px; }
  .ab-popup-kode { padding: 13px 12px 11px; }
  .ab-popup-kode-værdi { font-size: 26px; }
}

@media (prefers-reduced-motion: reduce) {
  .ab-popup { transition: opacity .01s; transform: translateY(var(--ab-popup-y)); }
  .ab-popup--synlig { transform: translateY(var(--ab-popup-y)); }
}
