/*
Theme Name: Profuge Theme
Theme URI: https://profuge.dk
Author: Profuge ApS
Author URI: https://profuge.dk
Description: Custom WordPress theme for Profuge — fugmester i hele Danmark
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: profuge
Tags: custom, elementor
*/

/* ============================================================
   RESET
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { overflow-x: hidden; }
html { scroll-behavior: smooth; }

/* ============================================================
   CSS VARIABLES
   ============================================================ */
:root {
  --ink: #1E1E1E;
  --ink-soft: rgba(30,30,30,0.55);
  --surface: #FFFFFF;
  --surface-warm: #F4F4F1;
  --surface-dark: #233B31;
  --surface-darker: #1D2622;
  --off-white: #F5F5F2;
  --accent-green: #8FBFA1;
  --primary: #355E4A;
  --primary-hover: #2d5240;
  --primary-foreground: #FFFFFF;
  --border: #E5E5E5;
  --muted-foreground: rgba(30,30,30,0.5);
  --radius: 2px;
  --font-display: 'Cabinet Grotesk', 'Satoshi', system-ui, sans-serif;
  --font-sans: 'Satoshi', system-ui, sans-serif;
  --header-height: 88px;
}

/* ============================================================
   BASE TYPOGRAPHY  (matches source @layer base exactly)
   ============================================================ */
body {
  font-family: var(--font-sans);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: -0.005em;
  color: var(--ink);
  background-color: var(--surface);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "ss01","ss02","ss03";
}
h1,h2,h3,h4,h5,h6 {
  font-family: var(--font-display);
  font-weight: 500;
  line-height: 1.0;
  letter-spacing: -0.04em;
  color: var(--ink);
  font-feature-settings: "ss01";
}
h1 { font-weight: 500; letter-spacing: -0.045em; }
h2 { font-weight: 500; letter-spacing: -0.04em; }
h3 { font-weight: 500; letter-spacing: -0.035em; }
h4,h5 { font-weight: 600; letter-spacing: -0.025em; }

/* Elementor heading widgets must inherit the same look as native h1-h6.
   !important is required because Elementor's global Kit colors/typography
   are output in a stylesheet that loads after style.css and would otherwise
   win on equal specificity. */
.elementor-heading-title {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  line-height: 1.0 !important;
  letter-spacing: -0.04em !important;
  color: var(--ink) !important;
  font-feature-settings: "ss01";
}
.dark-section .elementor-heading-title,
.dark-section--deeper .elementor-heading-title { color: var(--off-white) !important; }

a { color: inherit; text-decoration: none; }
img { pointer-events: none; }
img { max-width: 100%; display: block; }
ul,ol { list-style: none; }
::selection { background-color: var(--primary); color: var(--primary-foreground); }

/* ============================================================
   CONTAINER
   ============================================================ */
.container-page {
  max-width: 1480px;
  margin-left: auto; margin-right: auto;
  padding-left: 1.5rem; padding-right: 1.5rem;
}
@media (min-width: 768px) { .container-page { padding-left: 2.5rem; padding-right: 2.5rem; } }
@media (min-width: 1280px) { .container-page { padding-left: 4rem; padding-right: 4rem; } }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: .625rem;
  background: var(--primary); color: var(--primary-foreground);
  font-family: var(--font-sans); font-weight: 500; font-size: 15px;
  letter-spacing: -0.005em; padding: 16px 32px;
  border-radius: var(--radius); border: 1px solid var(--primary);
  min-height: 52px; cursor: pointer; white-space: nowrap; text-decoration: none;
  transition: background 200ms ease, border-color 200ms ease;
}
.btn-primary:hover { background: var(--primary-hover); border-color: var(--primary-hover); color: var(--primary-foreground); }
.btn-primary-lg { padding: 20px 40px; font-size: 16px; }

.btn-ghost {
  display: inline-flex; align-items: center; justify-content: center; gap: .625rem;
  background: transparent; color: var(--ink);
  font-family: var(--font-sans); font-weight: 500; font-size: 15px;
  letter-spacing: -0.005em; padding: 16px 32px;
  border-radius: var(--radius); border: 1px solid var(--border);
  min-height: 52px; cursor: pointer; white-space: nowrap; text-decoration: none;
  transition: all 200ms ease;
}
.btn-ghost:hover { border-color: var(--ink); background: var(--ink); color: var(--primary-foreground); }

.btn-ghost-light {
  display: inline-flex; align-items: center; justify-content: center; gap: .625rem;
  background: transparent; color: var(--off-white);
  font-family: var(--font-sans); font-weight: 500; font-size: 15px;
  letter-spacing: -0.005em; padding: 16px 32px;
  border-radius: var(--radius); border: 1px solid rgba(245,245,242,0.25);
  min-height: 52px; cursor: pointer; white-space: nowrap; text-decoration: none;
  transition: all 200ms ease;
}
.btn-ghost-light:hover { background: var(--off-white); color: var(--surface-dark); border-color: var(--off-white); }

/* Elementor Button widget — reapply theme button styles with !important so
   they win over Elementor's own .elementor-button / global Kit button
   defaults regardless of stylesheet load order. */
.elementor-button.btn-primary,
.elementor-button.btn-ghost,
.elementor-button.btn-ghost-light {
  display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: .625rem !important;
  font-family: var(--font-sans) !important; font-weight: 500 !important; font-size: 15px !important;
  letter-spacing: -0.005em !important; padding: 16px 32px !important;
  border-radius: var(--radius) !important;
  min-height: 52px !important; white-space: nowrap !important;
  transition: background 200ms ease, border-color 200ms ease;
}
.elementor-button.btn-primary { background: var(--primary) !important; color: var(--primary-foreground) !important; border: 1px solid var(--primary) !important; }
.elementor-button.btn-primary:hover { background: var(--primary-hover) !important; border-color: var(--primary-hover) !important; color: var(--primary-foreground) !important; }
.elementor-button.btn-primary-lg { padding: 20px 40px !important; font-size: 16px !important; }
.elementor-button.btn-ghost { background: transparent !important; color: var(--ink) !important; border: 1px solid var(--border) !important; }
.elementor-button.btn-ghost:hover { border-color: var(--ink) !important; background: var(--ink) !important; color: var(--primary-foreground) !important; }
.elementor-button.btn-ghost-light { background: transparent !important; color: var(--off-white) !important; border: 1px solid rgba(245,245,242,0.25) !important; }
.elementor-button.btn-ghost-light:hover { background: var(--off-white) !important; color: var(--surface-dark) !important; border-color: var(--off-white) !important; }
.elementor-button.btn-primary .elementor-button-content-wrapper,
.elementor-button.btn-ghost .elementor-button-content-wrapper,
.elementor-button.btn-ghost-light .elementor-button-content-wrapper { display: contents; }
.elementor-button.btn-primary .elementor-button-icon,
.elementor-button.btn-ghost .elementor-button-icon,
.elementor-button.btn-ghost-light .elementor-button-icon { display: inline-flex; font-size: 16px; line-height: 1; }

/* ============================================================
   EYEBROW
   ============================================================ */
.eyebrow {
  font-family: var(--font-sans); font-size: 12px; font-weight: 500;
  letter-spacing: 0.22em; text-transform: uppercase; color: var(--primary);
  display: inline-flex; align-items: center; gap: .75rem;
}
.eyebrow::before {
  content: ""; display: inline-block;
  width: 32px; height: 1px; background: currentColor; opacity: 0.6; flex-shrink: 0;
}

/* ============================================================
   NAV LINK
   ============================================================ */
.nav-link {
  position: relative; color: var(--ink);
  font-family: var(--font-sans); font-weight: 500; font-size: 14px;
  letter-spacing: -0.005em; padding: 6px 0;
  background: none; border: none; cursor: pointer;
  text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
  white-space: nowrap; transition: color 200ms ease;
}
.nav-link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0;
  height: 1px; background: var(--primary);
  transform: scaleX(0); transform-origin: left center;
  transition: transform 280ms cubic-bezier(0.22,1,0.36,1);
}
.nav-link:hover, .nav-link[aria-expanded="true"] { color: var(--primary); }
.nav-link:hover::after, .nav-link[aria-expanded="true"]::after { transform: scaleX(1); }
.nav-link .chevron { width: 13px; height: 13px; transition: transform 300ms ease; flex-shrink: 0; }
.nav-link[aria-expanded="true"] .chevron { transform: rotate(180deg); }

/* ============================================================
   REVEAL ANIMATION
   ============================================================ */
.reveal { opacity: 0; transform: translateY(10px); transition: opacity 450ms cubic-bezier(0.22,1,0.36,1), transform 450ms cubic-bezier(0.22,1,0.36,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

/* ============================================================
   DARK SECTIONS
   ============================================================ */
.dark-section { background-color: var(--surface-dark); color: var(--off-white); }
.dark-section--deeper { background-color: var(--surface-darker); color: var(--off-white); }
.dark-section h1,.dark-section h2,.dark-section h3,.dark-section h4,.dark-section h5,
.dark-section--deeper h1,.dark-section--deeper h2,.dark-section--deeper h3,
.dark-section--deeper h4,.dark-section--deeper h5 { color: var(--off-white); }
.dark-section .eyebrow,.dark-section--deeper .eyebrow { color: var(--accent-green); }
.dark-section .eyebrow::before,.dark-section--deeper .eyebrow::before { background: var(--accent-green); opacity: 0.7; }

/* ============================================================
   LINK UNDERLINE UTILITY
   ============================================================ */
.link-underline { position: relative; display: inline-block; }
.link-underline::after { content:""; position:absolute; left:0; bottom:-2px; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform 350ms cubic-bezier(0.22,1,0.36,1); }
.link-underline:hover::after { transform:scaleX(1); transform-origin:left; }

/* ============================================================
   UTILITY BAR
   ============================================================ */
.utility-bar { display: none; border-bottom: 1px solid rgba(229,229,229,0.6); }
@media (min-width: 1024px) { .utility-bar { display: block; } }
.utility-bar__inner { display:flex; height:36px; align-items:center; justify-content:space-between; font-size:12px; letter-spacing:0.02em; color:var(--muted-foreground); }
.utility-bar__right { display:flex; align-items:center; gap:24px; }
.utility-bar__phone { display:inline-flex; align-items:center; gap:6px; color:var(--ink); font-weight:500; transition:color 200ms; text-decoration:none; }
.utility-bar__phone:hover { color:var(--primary); text-decoration:none; }

/* ============================================================
   SITE HEADER
   ============================================================ */
.site-header { position:sticky; top:0; z-index:50; background:var(--surface); border-bottom:1px solid transparent; transition:border-color 300ms,box-shadow 300ms; }
.site-header.is-scrolled { border-bottom-color:var(--border); box-shadow:0 1px 0 rgba(30,30,30,0.02); }
.header-main { position:relative; }
.header__inner { display:flex; align-items:center; justify-content:space-between; height:var(--header-height); gap:40px; position:relative; }
.header__logo { flex-shrink:0; display:flex; align-items:center; text-decoration:none; z-index:1; }
.header__logo img { height:128px; width:auto; max-width:420px; }

.header__nav { display:none; }
@media (min-width:1024px) {
  .header__nav { display:flex; align-items:center; gap:40px; position:absolute; left:50%; transform:translateX(-50%); }
}
.header__cta { display:none; z-index:1; }
@media (min-width:1024px) { .header__cta { display:flex; align-items:center; } }

.header__cta-btn {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--ink); color:#fff;
  font-family:var(--font-sans); font-weight:500; font-size:13px;
  letter-spacing:0.02em; text-transform:uppercase;
  padding:14px 28px; border-radius:var(--radius);
  border:none; cursor:pointer; text-decoration:none; white-space:nowrap;
  transition:background 200ms;
}
.header__cta-btn:hover { background:var(--primary); color:#fff; }
.header__cta-btn .arrow-icon { transition:transform 200ms; flex-shrink:0; }
.header__cta-btn:hover .arrow-icon { transform:translate(2px,-2px); }

.header__hamburger { display:flex; align-items:center; justify-content:center; padding:8px; background:none; border:none; cursor:pointer; color:var(--ink); z-index:1; }
@media (min-width:1024px) { .header__hamburger { display:none; } }

/* ============================================================
   DROPDOWN PANELS
   ============================================================ */
@keyframes dropdownIn { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:translateY(0); } }

.dropdown-panel { display:none; position:absolute; top:100%; left:0; right:0; background:var(--surface); border-top:1px solid var(--border); box-shadow:0 24px 40px -24px rgba(30,30,30,0.18); z-index:100; }
.dropdown-panel.is-visible { display:block; animation:dropdownIn 200ms ease forwards; }
.dropdown-panel__body { padding-top:48px; padding-bottom:48px; }

.dropdown-grid-12 { display:grid; grid-template-columns:repeat(12,1fr); gap:40px; }
.col-span-3 { grid-column:span 3; }
.col-span-9 { grid-column:span 9; }

.dropdown-intro__eyebrow { font-size:11px; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted-foreground); margin-bottom:12px; }
.dropdown-intro__heading { font-family:var(--font-display); font-size:28px; font-weight:600; line-height:1.05; letter-spacing:-0.02em; color:var(--ink); margin-bottom:16px; }
.dropdown-intro__desc { font-size:13px; line-height:1.65; color:var(--muted-foreground); margin-bottom:24px; }
.dropdown-intro__link { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:500; color:var(--ink); border-bottom:1px solid var(--ink); padding-bottom:2px; text-decoration:none; transition:color 200ms,border-color 200ms; }
.dropdown-intro__link:hover { color:var(--primary); border-color:var(--primary); }
.dropdown-intro__link .arrow-icon { transition:transform 200ms; }
.dropdown-intro__link:hover .arrow-icon { transform:translate(2px,-2px); }

.dropdown-services-grid { display:grid; grid-template-columns:1fr 1fr; column-gap:40px; row-gap:28px; }
.dropdown-service-item { display:flex; gap:16px; align-items:flex-start; text-decoration:none; }
.dropdown-service-item__num { font-family:monospace; font-size:11px; color:var(--muted-foreground); padding-top:4px; width:24px; flex-shrink:0; }
.dropdown-service-item__content { flex:1; min-width:0; }
.dropdown-service-item__label-row { display:flex; align-items:center; gap:8px; }
.dropdown-service-item__label { font-family:var(--font-display); font-size:15px; font-weight:500; color:var(--ink); transition:color 200ms; letter-spacing:-0.01em; }
.dropdown-service-item__arrow { color:var(--muted-foreground); opacity:0; transform:translateX(-4px); transition:opacity 200ms,transform 200ms; flex-shrink:0; }
.dropdown-service-item:hover .dropdown-service-item__label { color:var(--primary); }
.dropdown-service-item:hover .dropdown-service-item__arrow { opacity:1; transform:translateX(0); }
.dropdown-service-item__desc { display:block; margin-top:4px; font-size:13px; color:var(--muted-foreground); line-height:1.55; }

.dropdown-cases-grid { display:grid; grid-template-columns:1fr 1fr; column-gap:40px; row-gap:28px; }
.dropdown-case-item { display:flex; gap:16px; align-items:flex-start; text-decoration:none; }
.dropdown-case-item__num { font-family:monospace; font-size:11px; color:var(--muted-foreground); padding-top:4px; width:24px; flex-shrink:0; }
.dropdown-case-item__content { flex:1; }
.dropdown-case-item__label-row { display:flex; align-items:center; gap:8px; }
.dropdown-case-item__label { font-family:var(--font-display); font-size:15px; font-weight:500; color:var(--ink); transition:color 200ms; letter-spacing:-0.01em; }
.dropdown-case-item__arrow { color:var(--muted-foreground); opacity:0; transform:translateX(-4px); transition:opacity 200ms,transform 200ms; flex-shrink:0; }
.dropdown-case-item:hover .dropdown-case-item__label { color:var(--primary); }
.dropdown-case-item:hover .dropdown-case-item__arrow { opacity:1; transform:translateX(0); }
.dropdown-case-item__desc { display:block; margin-top:4px; font-size:13px; color:var(--muted-foreground); line-height:1.55; }

/* ============================================================
   MOBILE MENU
   ============================================================ */
.mobile-menu { display:none; position:fixed; inset:0; z-index:50; background:var(--surface); overflow-y:auto; flex-direction:column; }
.mobile-menu.is-open { display:flex; flex-direction:column; }
@media (min-width:1024px) { .mobile-menu { display:none !important; } }

.mobile-menu__header { flex-shrink:0; display:flex; align-items:center; justify-content:space-between; height:var(--header-height); border-bottom:1px solid var(--border); }
.mobile-menu__header .container-page { display:flex; align-items:center; justify-content:space-between; width:100%; }
.mobile-menu__logo { display:flex; align-items:center; text-decoration:none; }
.mobile-menu__logo img { height:90px; width:auto; max-width:300px; }
.mobile-menu__close { display:flex; align-items:center; justify-content:center; padding:8px; background:none; border:none; cursor:pointer; color:var(--ink); }
.mobile-menu__nav { flex:1; padding-top:24px; padding-bottom:48px; display:flex; flex-direction:column; }

.mobile-nav-item { border-bottom:1px solid var(--border); }
.mobile-nav-btn { display:flex; width:100%; align-items:center; justify-content:space-between; padding:20px 0; font-family:var(--font-display); font-size:20px; font-weight:500; letter-spacing:-0.03em; color:var(--ink); background:none; border:none; cursor:pointer; text-align:left; text-decoration:none; }
.mobile-nav-btn .chevron { width:18px; height:18px; transition:transform 250ms; flex-shrink:0; color:var(--muted-foreground); }
.mobile-nav-item.is-open .mobile-nav-btn .chevron { transform:rotate(180deg); }
.mobile-submenu { display:none; padding-bottom:20px; flex-direction:column; gap:12px; }
.mobile-nav-item.is-open .mobile-submenu { display:flex; }
.mobile-submenu__link { font-size:15px; color:var(--muted-foreground); text-decoration:none; transition:color 200ms; }
.mobile-submenu__link:hover { color:var(--primary); }
.mobile-nav-link-static { display:block; padding:20px 0; font-family:var(--font-display); font-size:20px; font-weight:500; letter-spacing:-0.03em; color:var(--ink); border-bottom:1px solid var(--border); text-decoration:none; }
.mobile-menu__actions { padding-top:32px; display:flex; flex-direction:column; gap:12px; }
.mobile-phone-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid var(--border); padding:20px; color:var(--ink); font-weight:500; font-size:15px; text-decoration:none; transition:border-color 200ms,background 200ms; }
.mobile-phone-btn:hover { border-color:var(--ink); background:var(--surface-warm); }
.mobile-cta-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--ink); color:#fff; padding:20px; font-weight:500; font-size:14px; letter-spacing:0.02em; text-transform:uppercase; border-radius:var(--radius); text-decoration:none; transition:background 200ms; }
.mobile-cta-btn:hover { background:var(--primary); color:#fff; }

/* ============================================================
   HERO SPLIT  (used on every page)
   ============================================================ */
.hero-split { display:grid !important; grid-template-columns:1fr !important; }
@media (min-width:1024px) { .hero-split { grid-template-columns:45fr 55fr !important; } }
.hero-split--equal { }
@media (min-width:1024px) { .hero-split--equal { grid-template-columns:50fr 50fr; } }

.hero-content { display:flex !important; align-items:center !important; }
.hero-content__inner {
  width:100%; max-width:760px;
  padding-left:clamp(1.5rem,5vw,6rem);
  padding-right:clamp(1.5rem,4vw,5rem);
  padding-top:clamp(1.75rem,3.5vw,2.75rem);
  padding-bottom:clamp(1.75rem,3.5vw,2.75rem);
}
.hero-image { position:relative; width:100%; background:var(--surface-warm); overflow:hidden; }
.hero-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

/* ============================================================
   STATS BAR
   ============================================================ */
.stats-grid { display:grid !important; grid-template-columns:1fr 1fr !important; }
@media (min-width:768px) { .stats-grid { grid-template-columns:repeat(5,1fr) !important; } }
.stat-item { padding:48px 16px; text-align:center; border-right:1px solid rgba(245,245,242,0.10); }
.stat-item:last-child { border-right:none; }
@media (max-width:767px) { .stat-item:nth-child(2n) { border-right:none; } }
@media (min-width:768px) { .stat-item { padding:64px 16px; text-align:center; } }
.stat-value { font-family:var(--font-display); font-size:clamp(44px,4.5vw,56px); line-height:1; color:var(--off-white); font-weight:500; letter-spacing:-0.045em; }
.stat-label { margin-top:16px; font-size:12px; letter-spacing:0.18em; text-transform:uppercase; color:var(--accent-green); }

/* ============================================================
   SERVICE CARDS
   ============================================================ */
.service-card { display:block; text-decoration:none; }
.service-card__image { aspect-ratio:4/5; overflow:hidden; background:var(--surface-warm); }
.service-card__image img { width:100%; height:100%; object-fit:cover; transition:transform 800ms ease-out; }
.service-card:hover .service-card__image img { transform:scale(1.04); }
.service-card__body { padding-top:24px; }
.service-card__title-row { display:flex !important; align-items:flex-start !important; justify-content:space-between !important; gap:12px !important; }
.service-card__title { font-family:var(--font-display); font-size:20px; font-weight:500; color:var(--ink); letter-spacing:-0.01em; }
.service-card__arrow { color:var(--muted-foreground); transition:color 200ms; margin-top:4px; flex-shrink:0; }
.service-card:hover .service-card__arrow { color:var(--primary); }
.service-card__desc { margin-top:8px; font-size:15px; line-height:1.65; color:var(--muted-foreground); }

.services-grid { display:grid !important; gap:24px !important; grid-template-columns:1fr !important; }
@media (min-width:640px) { .services-grid { grid-template-columns:1fr 1fr !important; } }
@media (min-width:1024px) { .services-grid { grid-template-columns:repeat(4,1fr) !important; } }
.services-grid--3col { }
@media (min-width:1024px) { .services-grid--3col { grid-template-columns:repeat(3,1fr); } }

/* ============================================================
   CASES SECTION
   ============================================================ */
.case-item { display:grid !important; gap:40px !important; }
@media (min-width:1024px) { .case-item { grid-template-columns:repeat(12,1fr) !important; gap:64px !important; align-items:center !important; } }
.case-image-col { }
@media (min-width:1024px) { .case-image-col { grid-column:span 7 !important; } }
.case-text-col { }
@media (min-width:1024px) { .case-text-col { grid-column:span 5 !important; } }
.case-image-col--reversed { }
@media (min-width:1024px) { .case-image-col--reversed { grid-column:span 7 !important; order:2 !important; } .case-text-col--reversed { grid-column:span 5 !important; order:1 !important; } }
.case-item__image { aspect-ratio:4/3; overflow:hidden; background:var(--surface-warm); }
.case-item__image img { width:100%; height:100%; object-fit:cover; }
.case-meta { display:flex !important; align-items:center !important; gap:8px !important; font-size:13px; color:var(--muted-foreground); }
.case-meta__dot { opacity:0.4; }
.case-item__title { margin-top:20px; font-family:var(--font-display); font-weight:600; color:var(--ink); font-size:clamp(28px,3.5vw,44px); line-height:1.1; letter-spacing:-0.02em; }
.case-item__desc { margin-top:20px; font-size:17px; line-height:1.65; color:var(--muted-foreground); }

/* ============================================================
   WHY CHOOSE US / FEATURES
   ============================================================ */
.feature-grid { display:grid !important; gap:48px !important; }
@media (min-width:640px) { .feature-grid { grid-template-columns:1fr 1fr !important; } }
.feature-item { padding-top:8px; }
.feature-icon { color:var(--accent-green); }
.feature-title { margin-top:20px; font-family:var(--font-display); font-size:20px; color:var(--off-white); font-weight:500; letter-spacing:-0.02em; }
.feature-desc { margin-top:12px; font-size:15px; line-height:1.65; color:rgba(245,245,242,0.65); }

/* Erhverv Gallery */
.erhverv-gallery__grid { display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:220px; gap:10px; }
.erhverv-gallery__grid-item {
  position:relative; display:block; width:100%; height:100%;
  margin:0; padding:0; border:0; background:none; font:inherit; text-align:left;
  overflow:hidden; cursor:pointer;
}
.erhverv-gallery__grid-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.55s ease; }
.erhverv-gallery__grid-item::after {
  content:''; position:absolute; inset:0; background:rgba(20,20,18,0); transition:background 0.35s ease;
}
.erhverv-gallery__grid-item:hover img { transform:scale(1.04); }
.erhverv-gallery__grid-item:hover::after { background:rgba(20,20,18,0.18); }
.erhverv-gallery__grid-item-icon {
  position:absolute; top:50%; left:50%; width:44px; height:44px;
  display:flex; align-items:center; justify-content:center; border-radius:999px;
  background:rgba(255,255,255,0.92); color:var(--ink);
  opacity:0; transform:translate(-50%,-50%) scale(0.85);
  transition:opacity 0.3s ease, transform 0.3s ease;
}
.erhverv-gallery__grid-item:hover .erhverv-gallery__grid-item-icon { opacity:1; transform:translate(-50%,-50%) scale(1); }
.erhverv-gallery__grid-item--featured { grid-column:span 2; grid-row:span 2; }
@media (max-width:1023px) {
  .erhverv-gallery__grid { grid-template-columns:repeat(3, 1fr); grid-auto-rows:180px; }
}
@media (max-width:767px) {
  .erhverv-gallery__grid { grid-template-columns:repeat(2, 1fr); grid-auto-rows:150px; gap:6px; }
}

/* Erhverv Gallery — Lightbox */
.erhverv-lightbox {
  position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center;
  padding:24px; background:rgba(20,20,18,0.94);
  opacity:0; visibility:hidden; transition:opacity 0.25s ease, visibility 0.25s ease;
}
.erhverv-lightbox.is-open { opacity:1; visibility:visible; }
.erhverv-lightbox__img { max-width:100%; max-height:100%; object-fit:contain; }
.erhverv-lightbox__close,
.erhverv-lightbox__nav {
  position:absolute; display:flex; align-items:center; justify-content:center;
  width:48px; height:48px; border:1px solid rgba(245,245,242,0.25); border-radius:999px;
  background:rgba(245,245,242,0.06); color:var(--off-white); cursor:pointer;
  transition:background 0.2s ease, border-color 0.2s ease;
}
.erhverv-lightbox__close:hover,
.erhverv-lightbox__nav:hover { background:rgba(245,245,242,0.16); border-color:rgba(245,245,242,0.4); }
.erhverv-lightbox__close { top:24px; right:24px; }
.erhverv-lightbox__nav--prev { left:24px; top:50%; transform:translateY(-50%); }
.erhverv-lightbox__nav--next { right:24px; top:50%; transform:translateY(-50%); }
@media (max-width:640px) {
  .erhverv-lightbox__close, .erhverv-lightbox__nav { width:40px; height:40px; }
  .erhverv-lightbox__nav--prev { left:8px; }
  .erhverv-lightbox__nav--next { right:8px; }
  .erhverv-lightbox__close { top:12px; right:12px; }
}

/* ============================================================
   REVIEW CARDS
   ============================================================ */
.reviews-grid { display:grid !important; gap:32px !important; grid-template-columns:1fr !important; }
@media (min-width:768px) { .reviews-grid { grid-template-columns:repeat(3,1fr) !important; } }
.review-card { background:var(--surface); padding:40px; border:1px solid var(--border); display:flex; flex-direction:column; border-radius:24px; }
.review-stars { display:flex; gap:4px; }
.review-text { margin-top:24px; font-size:16px; line-height:1.9; color:var(--ink); flex:1; }
.review-attribution { margin-top:32px; padding-top:24px; border-top:1px solid var(--border); }
.review-name { font-family:var(--font-display); font-size:15px; font-weight:500; color:var(--ink); }
.review-location { font-size:13px; color:var(--muted-foreground); margin-top:2px; }
.review-form-card { background:var(--surface); border:1px solid var(--border); padding:36px; border-radius:24px; display:grid; gap:24px; width:100%; max-width:none; }
.review-form-card__header h3 { font-family:var(--font-display); font-size:28px; font-weight:600; color:var(--ink); margin:0; }
.review-form-card__header p { margin:0; font-size:15px; line-height:1.7; color:var(--muted-foreground); max-width:none; }
.profuge-review-toggle { justify-self:start; padding:14px 28px; border-radius:999px; margin-top:0; border:1px solid transparent; background:var(--primary); color:var(--primary-foreground); transition:background 0.25s ease, transform 0.25s ease; }
.profuge-review-toggle:hover { background:var(--primary-hover); transform:translateY(-1px); }
.profuge-review-form { margin-top:0; display:grid; gap:18px; }
.profuge-review-form--hidden { display:none; }
.review-form-grid { display:grid; gap:18px; }
@media (min-width:768px) { .review-form-grid { grid-template-columns:1fr 1fr; } }
.review-rating-label { display:grid; gap:12px; }
.review-rating-label span { font-size:14px; font-weight:600; color:var(--ink); }
.review-stars-input { display:flex; align-items:center; gap:10px; }
.review-star { appearance:none; border:none; background:transparent; color:var(--border); font-size:28px; line-height:1; cursor:pointer; transition:color 0.2s ease, transform 0.2s ease; }
.review-star:hover,
.review-star:focus { color:var(--primary); transform:scale(1.05); outline:none; }
.review-star.is-active { color:var(--primary); }
.profuge-review-form input,
.profuge-review-form textarea { width:100%; border:1px solid var(--border); border-radius:16px; padding:14px 18px; font:inherit; color:var(--ink); background:var(--off-white); transition:border-color 0.2s ease, box-shadow 0.2s ease; }
.profuge-review-form input:focus,
.profuge-review-form textarea:focus { outline:none; border-color:rgba(34,197,94,0.55); box-shadow:0 0 0 4px rgba(34,197,94,0.12); }
.profuge-review-form textarea { min-height:130px; resize:vertical; }
.btn-primary--wide { width:100%; }
.review-form-status { min-height:24px; margin-top:4px; font-size:14px; color:var(--muted-foreground); }
.review-form-status.is-success { color:var(--accent-green); }
.review-form-status.is-error { color:#b91c1c; }
@media (max-width:767px) {
  .review-form-card { padding:28px 22px; }
  .review-form-grid { grid-template-columns:1fr; }
}
@media (max-width:767px) {
  .review-form-card { padding:28px 24px; }
  .review-card { padding:28px 24px; }
}

/* ============================================================
   CTA BANNER
   ============================================================ */
.cta-banner { display:grid; gap:40px; padding-top:56px; padding-bottom:56px; }
@media (min-width:768px) { .cta-banner { padding-top:72px; padding-bottom:72px; } }
@media (min-width:1024px) { .cta-banner { grid-template-columns:1.25fr 1fr; align-items:center; gap:0 64px; padding-top:88px; padding-bottom:88px; } }
.cta-banner__eyebrow { margin-bottom:24px; }
.cta-banner__title { color:var(--off-white); font-family:var(--font-display); font-weight:500; font-size:clamp(36px,5vw,60px); line-height:1.12; letter-spacing:-0.03em; }
.cta-banner__subtitle { margin-top:20px; max-width:440px; font-size:17px; line-height:1.65; color:rgba(245,245,242,0.7); }
.cta-banner__actions { margin-top:36px; display:flex !important; flex-wrap:wrap !important; align-items:center !important; gap:12px !important; }
.cta-banner__card { background:rgba(245,245,242,0.05); border:1px solid rgba(245,245,242,0.12); border-radius:4px; padding:32px; }
.cta-banner__card-rating { display:flex; align-items:center; gap:8px; padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid rgba(245,245,242,0.10); font-size:13px; color:rgba(245,245,242,0.75); }
.cta-banner__card-stars { display:flex; gap:2px; flex-shrink:0; }
.cta-banner__card-item { display:flex; align-items:flex-start; gap:14px; text-decoration:none; color:var(--off-white); }
.cta-banner__card-item:hover { text-decoration:none; }
.cta-banner__card-item + .cta-banner__card-item { margin-top:20px; }
.cta-banner__card-icon { color:var(--accent-green); flex-shrink:0; margin-top:2px; }
.cta-banner__card-label { display:block; font-size:11px; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; color:rgba(245,245,242,0.45); }
.cta-banner__card-value { display:block; margin-top:4px; font-family:var(--font-display); font-size:16px; font-weight:500; color:var(--off-white); }

/* ============================================================
   GRID HELPERS  (12-col responsive)
   ============================================================ */
.grid-12 { display:grid !important; gap:48px !important; }
@media (min-width:1024px) { .grid-12 { grid-template-columns:repeat(12,1fr) !important; gap:96px 40px !important; } }
.grid-12--gap-20 { }
@media (min-width:1024px) { .grid-12--gap-20 { gap:80px 80px; } }

/* Col spans (lg only) */
.lg-col-4 { } .lg-col-5 { } .lg-col-6 { } .lg-col-7 { } .lg-col-3 { } .lg-col-2 { }
@media (min-width:1024px) {
  .lg-col-2 { grid-column:span 2 !important; }
  .lg-col-3 { grid-column:span 3 !important; }
  .lg-col-4 { grid-column:span 4 !important; }
  .lg-col-5 { grid-column:span 5 !important; }
  .lg-col-6 { grid-column:span 6 !important; }
  .lg-col-7 { grid-column:span 7 !important; }
}

/* 2-col responsive helpers */
.grid-2 { display:grid; gap:40px; }
@media (min-width:768px) { .grid-2 { grid-template-columns:1fr 1fr; } }
.grid-3 { display:grid; gap:40px; }
@media (min-width:768px) { .grid-3 { grid-template-columns:repeat(3,1fr); } }
.grid-4 { display:grid; gap:24px; }
@media (min-width:768px) { .grid-4 { grid-template-columns:1fr 1fr; } }
@media (min-width:1024px) { .grid-4 { grid-template-columns:repeat(4,1fr); } }

/* Section spacing */
.section-py { padding-top:80px; padding-bottom:80px; }
@media (min-width:768px) { .section-py { padding-top:112px; padding-bottom:112px; } }

/* Sticky */
@media (min-width:1024px) { .sticky-top-32 { position:sticky; top:128px; } }

/* Scroll margin */
.scroll-mt-32 { scroll-margin-top:128px; }

/* ============================================================
   ABOUT / PILLARS
   ============================================================ */
.pillar-item { padding-top:20px; padding-bottom:20px; }
.pillar-item + .pillar-item { border-top:1px solid var(--border); }
.pillar-icon { color:var(--primary); }
.pillar-title { margin-top:10px; font-family:var(--font-display); font-size:20px; font-weight:500; color:var(--ink); letter-spacing:-0.01em; }
.pillar-desc { margin-top:8px; font-size:15px; line-height:1.65; color:var(--muted-foreground); }

/* ============================================================
   PULLQUOTE
   ============================================================ */
.pullquote { border-left:2px solid var(--primary); padding-left:24px; font-size:18px; line-height:1.6; color:var(--ink); margin-top:40px; }

/* ============================================================
   BORDER-TOP CARD  (used in Erhverv / feature sections)
   ============================================================ */
.border-top-card { padding-top:32px; border-top:1px solid var(--border); }

/* ============================================================
   PROCESS STEPS (Erhverv page)
   ============================================================ */
.process-step { display:flex; gap:24px; }
.process-step__num { font-family:var(--font-display); font-weight:600; font-size:20px; flex-shrink:0; width:40px; color:var(--primary); }
.process-step__title { font-family:var(--font-display); font-size:18px; font-weight:500; color:var(--ink); letter-spacing:-0.01em; }
.process-step__desc { margin-top:8px; font-size:15px; line-height:1.65; color:var(--muted-foreground); }

/* PROCESS CARDS (service pages 4-col) */
.process-card { background:var(--surface); padding:32px; border:1px solid var(--border); }
.process-card__num { font-family:var(--font-display); font-weight:600; font-size:32px; letter-spacing:-0.02em; color:var(--primary); }
.process-card__title { margin-top:16px; font-family:var(--font-display); font-size:18px; font-weight:500; color:var(--ink); letter-spacing:-0.01em; }
.process-card__desc { margin-top:8px; font-size:14px; line-height:1.65; color:var(--muted-foreground); }

/* ============================================================
   GALLERY (service pages)
   ============================================================ */
.gallery-grid { display:grid; gap:24px; }
@media (min-width:768px) { .gallery-grid { grid-template-columns:repeat(3,1fr); } }
.gallery-item { aspect-ratio:4/5; overflow:hidden; background:var(--surface-warm); }
.gallery-item img { width:100%; height:100%; object-fit:cover; }

/* ============================================================
   SERVICE FAQ ACCORDION  (matches Accordion.tsx)
   ============================================================ */
.service-faq-item { border-bottom:1px solid #E2E8F0; }
.service-faq-btn { display:flex; width:100%; align-items:center; justify-content:space-between; gap:16px; padding:20px; text-align:left; background:transparent; border:none; cursor:pointer; transition:background 150ms; }
.service-faq-item.is-open .service-faq-btn { background:#F7F9FB; }
.service-faq-question { font-family:var(--font-display); font-weight:500; color:#0F1923; flex:1; font-size:clamp(15px,2vw,18px) !important; }
.service-faq-item.is-open .service-faq-question { font-weight:600; }
.service-faq-icon { color:#2B8FD6; flex-shrink:0; }
.service-faq-answer { display:none; padding:0 20px 20px; font-size:15px !important; line-height:1.65; color:#4A5568; }
.service-faq-item.is-open .service-faq-answer { display:block; }

/* ============================================================
   FAQ PAGE ACCORDION
   ============================================================ */
.faq-item { border-bottom:1px solid var(--border); }
.faq-btn { display:flex; width:100%; align-items:center; justify-content:space-between; gap:16px; padding:24px 0; background:none; border:none; cursor:pointer; text-align:left; }
.faq-question { font-family:var(--font-display); font-weight:500; color:var(--ink); font-size:clamp(15px,2vw,19px) !important; letter-spacing:-0.01em; flex:1; max-width:85%; }
.faq-icon { color:var(--primary); flex-shrink:0; }
.faq-answer { display:none; padding-bottom:28px; font-size:16px !important; line-height:1.75; color:var(--muted-foreground); max-width:720px; }
.faq-item.is-open .faq-answer { display:block; }
.faq-answer-cta { display:inline-flex; align-items:center; gap:4px; margin-top:16px; font-size:14px; font-weight:500; color:var(--primary); text-decoration:none; }

.faq-sidebar-nav { display:none; }
@media (min-width:1024px) { .faq-sidebar-nav { display:block; } }
.faq-sidebar-link { display:block; padding:8px 0; font-size:15px; color:var(--muted-foreground); text-decoration:none; transition:color 200ms; }
.faq-sidebar-link.is-active { color:var(--primary); font-weight:500; }

/* ============================================================
   CONTACT FORM
   ============================================================ */
.form-label { display:block; font-size:12px; color:var(--ink); font-weight:500; letter-spacing:0.05em; text-transform:uppercase; margin-bottom:8px; }
.form-input { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px; font-size:16px; color:var(--ink); width:100%; font-family:var(--font-sans); display:block; transition:border-color 150ms; }
.form-input::placeholder { color:var(--muted-foreground); opacity:0.7; }
.form-input:focus { border-color:var(--primary); outline:none; }
textarea.form-input { resize:vertical; min-height:120px; }
.form-success { padding:32px; border:1px solid var(--border); background:var(--surface-warm); }
.form-error { font-size:14px; color:#c0392b; }

/* Contact info rows */
.contact-row { display:flex; align-items:center; gap:16px; padding:20px 0; border-bottom:1px solid var(--border); }
.contact-row:last-child { border-bottom:none; }
.contact-row__label { font-size:12px; text-transform:uppercase; letter-spacing:0.18em; color:var(--muted-foreground); }
.contact-row__value { font-size:16px; color:var(--ink); margin-top:4px; }

/* Hours table */
.hours-row { display:flex; justify-content:space-between; font-size:15px; padding:4px 0; }
.hours-day { color:var(--muted-foreground); }
.hours-time { color:var(--ink); font-weight:500; }
.hours-time--closed { color:var(--muted-foreground); font-weight:400; }

/* City tags */
.tag { font-size:13px; color:var(--ink); border:1px solid var(--border); padding:4px 12px; display:inline-block; }

/* ============================================================
   TRUST BAR (footer top)
   ============================================================ */
.trust-bar { background:var(--surface-dark); border-bottom:1px solid rgba(245,245,242,0.08); }
.trust-bar__list { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px 40px; padding-top:24px; padding-bottom:24px; font-size:13px; color:var(--off-white); }
.trust-bar__item { display:inline-flex; align-items:center; gap:10px; font-weight:500; letter-spacing:-0.005em; }
.trust-bar__check { display:inline-flex; width:16px; height:16px; align-items:center; justify-content:center; border-radius:50%; background:var(--accent-green); color:var(--surface-darker); flex-shrink:0; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer { background:var(--surface-darker); color:var(--off-white); }
.footer__main { padding-top:96px; padding-bottom:64px; }
.footer__grid { display:grid; gap:56px; grid-template-columns:1fr; }
@media (min-width:768px) { .footer__grid { grid-template-columns:1fr 1fr; gap:56px 40px; } }
@media (min-width:1024px) { .footer__grid { grid-template-columns:3fr 2fr 2fr 2fr; gap:0 40px; } }
.footer__logo-link { display:block; }
.footer__logo-crop { display:block; overflow:hidden; height:35px; width:130px; }
.footer__logo { height:140px; width:140px; display:block; margin:-51px 0 0 -6px; max-width:none; }
.footer__brand-desc { margin-top:28px; font-size:15px; line-height:1.7; color:rgba(245,245,242,0.65); max-width:320px; }
.footer__cta-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; margin-top:32px; padding:14px 28px; background:var(--accent-green); color:var(--surface-darker); font-family:var(--font-sans); font-weight:500; font-size:13px; letter-spacing:0.04em; text-transform:uppercase; border-radius:var(--radius); text-decoration:none; transition:opacity 200ms; }
.footer__cta-btn:hover { opacity:0.88; color:var(--surface-darker); }
.footer__cta-btn .arrow-icon { transition:transform 200ms; }
.footer__cta-btn:hover .arrow-icon { transform:translate(2px,-2px); }

.footer-heading { font-family:var(--font-sans); font-size:11px; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; color:var(--off-white); margin-bottom:1.5rem; }
.footer-list { display:flex; flex-direction:column; gap:.875rem; font-size:15px; color:rgba(245,245,242,0.7); }
.footer-link { color:rgba(245,245,242,0.7); transition:color 200ms; text-decoration:none; }
.footer-link:hover { color:var(--accent-green); }
.footer-areas-list { display:flex; flex-direction:column; gap:.875rem; font-size:15px; color:rgba(245,245,242,0.7); }
.footer-contact-list { display:flex; flex-direction:column; gap:20px; font-size:15px; }
.footer-contact-item { display:flex; align-items:flex-start; gap:12px; color:var(--off-white); text-decoration:none; transition:color 200ms; }
a.footer-contact-item:hover { color:var(--off-white); text-decoration:none; }
.footer-contact-icon { margin-top:4px; flex-shrink:0; color:var(--accent-green); }
.footer-contact-label { display:block; font-size:11px; font-weight:500; letter-spacing:0.22em; text-transform:uppercase; color:rgba(245,245,242,0.45); }
.footer-contact-value { display:block; margin-top:2px; font-weight:500; color:rgba(245,245,242,0.7); }
.footer-contact-note { display:block; font-size:12px; font-weight:500; margin-top:4px; color:var(--accent-green); }
.footer__bottom { border-top:1px solid rgba(245,245,242,0.10); }
.footer__bottom-inner { display:flex; flex-direction:column; gap:12px; padding-top:24px; padding-bottom:24px; font-size:12px; color:rgba(245,245,242,0.5); }
@media (min-width:768px) { .footer__bottom-inner { flex-direction:row; align-items:center; justify-content:space-between; } }
.footer__bottom-right { display:flex; flex-wrap:wrap; gap:8px 32px; }
.footer__bottom-right a { color:rgba(245,245,242,0.5); text-decoration:none; transition:color 200ms; }
.footer__bottom-right a:hover { color:var(--off-white); }

/* ============================================================
   MISC
   ============================================================ */
.site-content { min-height:60vh; }
.elementor-full-width { width:100%; }
.inline-link { color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.inline-link:hover { color:var(--primary); }

/* 404 */
.not-found-page { display:flex; min-height:100vh; align-items:center; justify-content:center; background:var(--surface); padding:16px; }
.not-found-page__inner { max-width:400px; text-align:center; }

/* ============================================================
   ELEMENTOR TEMPLATE HELPERS  (Forside)
   Small layout/typography helpers used by the Elementor "Forside"
   template so native widgets reproduce the front-page.php design.
   ============================================================ */
.ep-bg-surface { background:var(--surface); }
.ep-bg-surface-warm { background:var(--surface-warm); }

.ep-hero-section { min-height:calc(100vh - var(--header-height)); }
.ep-hero-content-bg { background:var(--surface); padding:0; }
.ep-hero-title { margin-top:24px; font-size:clamp(52px,6.5vw,104px); letter-spacing:-0.045em; line-height:0.95; }
.ep-hero-desc { margin-top:32px; max-width:480px; font-size:18px; line-height:1.65; color:var(--muted-foreground); }
.ep-hero-actions { margin-top:48px !important; display:flex !important; flex-direction:row !important; flex-wrap:wrap !important; gap:12px !important; }
.ep-btn-ghost-sm { font-size:15px; }
.ep-hero-trustbar {
  margin-top:56px !important; padding-top:32px !important; border-top:1px solid var(--border);
  display:flex !important; flex-direction:row !important; flex-wrap:wrap !important; align-items:center !important; gap:32px !important;
}
.ep-trust-divider { width:1px !important; height:40px !important; flex:0 0 auto !important; background:var(--border); }
.ep-trust-stat-value { font-family:var(--font-display); font-weight:500; font-size:22px; color:var(--ink); }
.ep-trust-sublabel { font-size:13px; color:var(--muted-foreground); }
.ep-mt-4 { margin-top:4px; }
.ep-hero-image-minh { min-height:480px; }

.ep-stat-border-right { border-right:1px solid rgba(245,245,242,0.10); }

/* Elementor nested containers default to width:100%, which breaks any flex
   row that should size its children to their content (e.g. trust-bar groups,
   the eyebrow+heading block beside a "see all" button). Force them to shrink. */
.ep-shrink { width:auto !important; flex:0 0 auto !important; }
.ep-trust-col { display:flex !important; flex-direction:column !important; width:auto !important; flex:0 0 auto !important; }

.ep-section-header-row {
  margin-bottom:56px !important;
  display:flex !important; flex-direction:row !important; flex-wrap:wrap !important;
  justify-content:space-between !important; align-items:flex-end !important; gap:24px !important;
}
.ep-flex-shrink-0 { flex-shrink:0; }
.ep-h2 { margin-top:16px; font-size:clamp(36px,4.5vw,64px); }
.ep-h2--off-white { color:var(--off-white); }
.ep-h2--max640 { max-width:640px; }
.ep-h2-about { margin-top:24px; font-size:clamp(36px,4.5vw,60px); }

.ep-mb-56 { margin-bottom:56px; }
.ep-case-item { margin-bottom:96px; }

.ep-align-self-start { align-self:flex-start; }
.ep-feature-intro-desc { margin-top:28px; font-size:17px; line-height:1.7; color:rgba(245,245,242,0.65); }
.ep-about-desc { margin-top:24px; font-size:17px; line-height:1.7; color:var(--muted-foreground); }
.ep-mt-40 { margin-top:40px; }

/* ============================================================
   LEGAL CONTENT  (privacy policy / terms pages)
   ============================================================ */
.legal-content { max-width: 760px; }
.legal-content h2 { margin-top: 56px; font-size: clamp(22px,2.5vw,30px); }
.legal-content > h2:first-child { margin-top: 0; }
.legal-content h3 { margin-top: 28px; font-size: 18px; }
.legal-content p { margin-top: 16px; font-size: 16px; line-height: 1.75; color: var(--muted-foreground); }
.legal-content ul { margin-top: 16px; display: flex; flex-direction: column; gap: 10px; }
.legal-content li { position: relative; padding-left: 24px; font-size: 16px; line-height: 1.7; color: var(--muted-foreground); }
.legal-content li::before { content: ''; position: absolute; left: 0; top: 11px; width: 6px; height: 6px; border-radius: 50%; background: var(--accent-green); }
.legal-content a.inline-link { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.legal-content a.inline-link:hover { color: var(--accent-green); }
.legal-content strong { color: var(--ink); font-weight: 600; }
.ep-pillar-item { padding-bottom:32px; margin-bottom:32px; }
