/*
Theme Name:   Leading Voice – Elementor
Theme URI:    https://leadingvoice.com/
Description:  Child theme av Hello Elementor for Leading Voice / Lederstemme — Andrea Rydin.
              Inneholder designsystemet (farger, typografi, komponenter). All funksjonalitet
              og alt tekstinnhold ligger i pluginen «Lederstemme Core»; header og footer
              bygges i Elementor Theme Builder. Tospråklig via Polylang (EN standard, NO).
Author:       Leading Voice
Author URI:   https://leadingvoice.com/
Template:     hello-elementor
Version:      3.0.0
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  lederstemme-elementor
Tags:         elementor, custom-colors, custom-logo, e-commerce, translation-ready
*/

/* ============================================================
   1. DESIGN TOKENS
   Samme verdier som Elementors globale farger, slik at alt som
   ikke er en Elementor-widget følger samme designsystem.
   ============================================================ */
:root {
  --ls-bg:           #f7f1e8;
  --ls-bg-alt:       #efe6d6;
  --ls-bg-soft:      #f4ebe0;
  --ls-bg-cream:     #f1e7dd;
  --ls-bg-card:      #fbf6ee;
  --ls-surface:      #ffffff;
  --ls-sand:         #d6c2ad;

  --ls-footer:       #2e2b29;
  --ls-footer-deep:  #231f1c;
  --ls-footer-text:  #c4b9a8;
  /* Hevet fra #6a5e52 — lå på 2.2:1 mot footerbakgrunnen */
  --ls-footer-muted: #a2947f;

  --ls-ink:          #2a2521;
  --ls-ink-2:        #4a423a;
  --ls-ink-3:        #7a6e60;

  /* Skarpere, mer oransje gull. Den forrige tonen (#b48861) forsvant
     mot sandbakgrunnen og gjorde knappene utydelige.
     #B0651C gir 4.5:1 mot hvit tekst — WCAG AA. */
  --ls-gold:         #b0651c;
  --ls-gold-deep:    #935314;
  --ls-gold-soft:    #d9a063;
  --ls-gold-tint:    #f0dcc2;
  --ls-gold-link:    #8a4408;

  --ls-rule:         #e5d8c4;
  --ls-rule-2:       #d8c8af;

  --ls-font-serif:   "Ubuntu", sans-serif;
  --ls-font-sans:    "Ubuntu", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --ls-radius:       2px;
  --ls-radius-card:  4px;
  --ls-maxw:         1240px;
}

[data-theme="dark"], body.ls-dark {
  --ls-bg:           #1a1612;
  --ls-bg-alt:       #221c16;
  --ls-bg-soft:      #1f1914;
  --ls-bg-cream:     #221a14;
  --ls-bg-card:      #251e18;
  --ls-surface:      #2a221b;
  --ls-ink:          #f4ead8;
  --ls-ink-2:        #d4c6ad;
  --ls-ink-3:        #9a8d77;
  --ls-rule:         #3a2e22;
  --ls-rule-2:       #4a3b2b;
  --ls-gold:         #d4a574;
  --ls-gold-deep:    #b8895a;
}

/* ============================================================
   2. GLOBAL TYPOGRAFI
   ============================================================ */
body {
  font-family: var(--ls-font-sans);
  color: var(--ls-ink);
  background: var(--ls-bg);
  font-size: 15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--ls-font-serif);
  font-weight: 400;
  color: var(--ls-ink);
  letter-spacing: 0.005em;
}

h1 { font-size: clamp(36px, 5vw, 64px); line-height: 1.08; }
h2 { font-size: clamp(28px, 3.6vw, 44px); line-height: 1.12; }
h3 { font-size: clamp(21px, 2.4vw, 28px); line-height: 1.18; }

p { color: var(--ls-ink-2); }

/* Elementor setter tekstfargen på selve widgeten, og <p> arver den.
   En direkte regel på «p» slår arv, så uten dette overstyrer temaets
   standardfarge alt som er satt i editoren — mest synlig i footeren,
   der mørk tekst havnet på mørk bakgrunn. */
.elementor-widget-text-editor p,
.elementor-widget-text-editor li,
.elementor-widget-theme-post-content p { color: inherit; }

a { color: var(--ls-gold-deep); transition: color .2s; }
a:hover { color: var(--ls-gold); }

.ls-eyebrow {
  font-family: var(--ls-font-sans);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ls-ink-3);
  font-weight: 500;
}

.ls-eyebrow-serif {
  font-family: var(--ls-font-serif);
  font-style: italic;
  font-size: 17px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ls-ink-2);
}

/* Fremhevede ord i overskrifter — brukes i forsidens hero */
.ls-accent { color: var(--ls-gold-link); }

/* Kun synlig for skjermlesere */
.screen-reader-text {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Redaktørbeskjeder — vises aldri for besøkende */
.ls-editor-note {
  border: 1px dashed var(--ls-gold);
  background: var(--ls-bg-card);
  color: var(--ls-ink-2);
  padding: 16px 20px;
  border-radius: var(--ls-radius-card);
  font-size: 13px;
}

/* ============================================================
   3. KNAPPER
   Elementor-knapper styles per widget. Her dekkes kun det
   WooCommerce og plugins rendrer selv.
   ============================================================ */
.ls-btn,
a.ls-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px 28px;
  background: var(--ls-gold);
  color: #fff;
  font-family: var(--ls-font-sans);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  border-radius: var(--ls-radius);
  border: 1px solid transparent;
  transition: all 0.2s ease;
  line-height: 1;
}
.ls-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  background: var(--ls-gold-deep);
  color: #fff;
  transform: translateY(-1px);
}

.ls-btn-secondary,
a.ls-btn-secondary {
  background: transparent;
  color: var(--ls-ink);
  border-color: var(--ls-ink);
}
.ls-btn-secondary:hover {
  background: var(--ls-ink);
  color: var(--ls-bg);
}

.ls-btn-ghost {
  font-family: var(--ls-font-sans);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--ls-gold-link);
  background: transparent;
  border: none;
  padding: 8px 0;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
}
.ls-btn-ghost:hover { color: var(--ls-gold); }
.ls-btn-ghost::after { content: " →"; }

/* ---- Felles knappestørrelse ----
   Alle Elementor-knapper skal se like ut: samme mellomstore skrift,
   samme sperring og gjennomført versaler. */
.elementor-button {
  font-family: var(--ls-font-sans);
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1.2;
}

/* ============================================================
   4. HELLO ELEMENTOR-OPPRYDDING
   Header og footer kommer fra Elementor Theme Builder. Hello sine
   egne template-parts kjører kun som fallback, og røres derfor ikke.
   ============================================================ */
.site-main,
.page-content {
  margin: 0;
  padding: 0;
}

/* Elementor tvinger «width: 48px» på lenkede SVG-er
   (.elementor-widget-image a img[src$=".svg"]) fordi SVG-er ikke alltid
   har egen størrelse. Det klemmer den brede logoen sammen. Vi lar
   bredden følge høyden og SVG-ens eget størrelsesforhold. */
[data-elementor-type="header"] .elementor-widget-image a img[src$=".svg"],
[data-elementor-type="footer"] .elementor-widget-image a img[src$=".svg"] {
  width: auto;
  max-width: 100%;
}

.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* ============================================================
   5. SPRÅKVELGER — diskret EN | NO
   ============================================================ */
.ls-langswitch {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ls-font-sans);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
}
.ls-langswitch .ls-lang {
  color: var(--ls-ink-3);
  text-decoration: none;
  transition: color .2s;
}
.ls-langswitch a.ls-lang:hover { color: var(--ls-gold-deep); }
.ls-langswitch .ls-lang.is-current { color: var(--ls-ink); }
.ls-langswitch .ls-lang-sep { color: var(--ls-rule-2); }

/* Språkvelger i footeren arver lysere farger */
.ls-footer-langswitch .ls-lang { color: var(--ls-footer-muted); }
.ls-footer-langswitch .ls-lang.is-current { color: var(--ls-footer-text); }

/* ============================================================
   6. METODEMODELLEN — likesidet trekant
   Geometrien ligger i SVG, all tekst er HTML. Etikettene er
   absolutt posisjonert på desktop og stables vertikalt på mobil.
   ============================================================ */
.ls-triangle {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding-top: 104px;
}

.ls-triangle-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 10 / 9;
  /* Reserve for nettlesere uten aspect-ratio — hindrer at scenen
     kollapser og drar etikettene inn i hverandre. */
  min-height: 420px;
}

.ls-triangle-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}

.ls-triangle-labels {
  position: absolute;
  inset: 0;
}

.ls-tri-label {
  position: absolute;
  text-align: center;
  max-width: 230px;
  width: max-content;
}

.ls-tri-point {
  display: block;
  font-family: var(--ls-font-sans);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ls-gold-link);
  font-weight: 600;
  margin-bottom: 6px;
}

.ls-tri-dim {
  display: block;
  font-family: var(--ls-font-serif);
  font-size: 19px;
  line-height: 1.25;
  color: var(--ls-ink);
}

/* Toppunkt, og de to nedre hjørnene */
.ls-tri-top   { left: 50%; top: 10%;   transform: translate(-50%, -122%); }
.ls-tri-left  { left: 18%; top: 83.1%; transform: translate(-50%, 42%); }
.ls-tri-right { left: 82%; top: 83.1%; transform: translate(-50%, 42%); }

/* Midten skal dominere visuelt */
.ls-tri-centre {
  left: 50%;
  top: 58.7%;
  transform: translate(-50%, -50%);
  max-width: 320px;
}
.ls-tri-centre-title {
  display: block;
  font-family: var(--ls-font-serif);
  font-size: clamp(22px, 3vw, 32px);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.1;
  margin-bottom: 10px;
}
.ls-tri-centre-sub {
  display: block;
  font-family: var(--ls-font-sans);
  font-size: clamp(12px, 1.5vw, 15px);
  line-height: 1.5;
  color: #f6eee3;
}

/* Bunnteksten forklarer trekantens grunnlinje. En tynn loddrett strek
   knytter den til figuren, så den ikke står som en løsrevet setning. */
/* Smalere blokk med sentrert tekst må også sentreres som blokk.
   !important er nødvendig: Elementor skriver ut margin som én samlet
   erklæring per widget (margin: 0 0 22px 0), med høyere spesifisitet enn
   en klasse — og dens venstre/høyre-null ville ellers nulle ut auto. */
.ls-center-block {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ============================================================
   7. DE TRE STEMMEDIMENSJONENE
   ============================================================ */
.ls-dimensions {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  width: 100%;
}
.ls-dimension {
  display: flex;
  flex-direction: column;
  padding-top: 24px;
  border-top: 1px solid var(--ls-rule);
}
.ls-dimension-num {
  font-family: var(--ls-font-serif);
  font-size: 13px;
  letter-spacing: 0.2em;
  color: var(--ls-gold);
  margin-bottom: 14px;
}
.ls-dimension-title {
  font-family: var(--ls-font-serif);
  font-size: 22px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 500;
  margin: 0 0 12px;
}
.ls-dimension-lead {
  font-family: var(--ls-font-serif);
  font-style: italic;
  font-size: 17px;
  color: var(--ls-ink);
  line-height: 1.5;
  margin: 0 0 14px;
}
.ls-dimension-body {
  font-size: 15px;
  line-height: 1.7;
  color: var(--ls-ink-2);
  margin: 0;
}

/* ============================================================
   8. TILBUDSKORT
   ============================================================ */
.ls-offerings {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  width: 100%;
}
.ls-offering {
  display: flex;
  flex-direction: column;
  background: var(--ls-bg-card);
  border: 1px solid var(--ls-rule);
  border-radius: var(--ls-radius-card);
  padding: 28px 26px 26px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.ls-offering:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(60, 40, 20, 0.10);
}
/* Reset er det primære betalte inngangsproduktet */
.ls-offering--primary {
  background: var(--ls-sand);
  border-color: var(--ls-gold);
}
.ls-offering--soon {
  opacity: 0.72;
}
.ls-offering--soon:hover {
  transform: none;
  box-shadow: none;
}
.ls-offering-tag {
  align-self: flex-start;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ls-gold-link);
  background: rgba(255, 255, 255, 0.55);
  padding: 5px 10px;
  border-radius: 20px;
  margin-bottom: 14px;
  font-weight: 600;
}
.ls-offering-title {
  font-family: var(--ls-font-serif);
  font-size: 20px;
  letter-spacing: 0.06em;
  margin: 0 0 12px;
  font-weight: 500;
  color: var(--ls-ink);
}
.ls-offering-lead {
  font-size: 14px;
  line-height: 1.6;
  color: var(--ls-ink-2);
  margin: 0 0 14px;
  flex: 1;
}
.ls-offering-meta {
  font-size: 12px;
  color: var(--ls-ink-3);
  margin: 0 0 16px;
  padding-top: 14px;
  border-top: 1px solid var(--ls-rule);
}
/* Reset-kortet har sandbakgrunn — dempet tekst blir for svak der (2.9:1) */
.ls-offering--primary .ls-offering-meta,
.ls-offering--primary .ls-offering-unit { color: var(--ls-ink-2); }
.ls-offering-foot {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--ls-rule);
}
.ls-offering-price {
  font-family: var(--ls-font-serif);
  font-size: 23px;
  color: var(--ls-ink);
  line-height: 1.2;
  /* Beløpet skal aldri brytes mellom tusenskille og valuta */
  white-space: nowrap;
  flex: 0 0 auto;
}
.ls-offering-unit {
  display: block;
  font-family: var(--ls-font-sans);
  font-size: 11px;
  letter-spacing: 0.05em;
  color: var(--ls-ink-3);
  margin-top: 2px;
  white-space: nowrap;
}

/* ============================================================
   9. RESET — de tre øktene
   ============================================================ */
.ls-sessions {
  list-style: none;
  counter-reset: ls-session;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.ls-session {
  counter-increment: ls-session;
  padding-top: 22px;
  border-top: 1px solid var(--ls-rule);
}
.ls-session-title {
  font-family: var(--ls-font-serif);
  font-size: 19px;
  font-weight: 500;
  color: var(--ls-ink);
  margin: 0 0 10px;
}
.ls-session-lead {
  font-size: 15px;
  line-height: 1.65;
  color: var(--ls-ink-2);
  margin: 0;
}

/* ============================================================
   10. KUNDEREISEN
   ============================================================ */
.ls-journey {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
}
.ls-journey-step {
  flex: 1 1 170px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px 18px;
  background: var(--ls-bg-card);
  border: 1px solid var(--ls-rule);
  border-radius: var(--ls-radius-card);
}
.ls-journey-num {
  font-family: var(--ls-font-serif);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--ls-gold);
}
.ls-journey-label {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ls-ink);
}

/* ============================================================
   11. HISTORIEN
   ============================================================ */
.ls-story {
  max-width: 720px;
  margin: 0 auto;
}
.ls-story-section + .ls-story-section { margin-top: 56px; }
.ls-story-heading {
  font-family: var(--ls-font-serif);
  font-size: 24px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ls-ink);
  margin: 0 0 20px;
}
.ls-story p {
  font-size: 17px;
  line-height: 1.8;
  color: var(--ls-ink-2);
  margin: 0 0 20px;
}
.ls-story-closing {
  margin-top: 56px;
  padding-top: 40px;
  border-top: 1px solid var(--ls-rule);
  font-family: var(--ls-font-serif);
  font-style: italic;
  font-size: 22px !important;
  line-height: 1.6 !important;
  color: var(--ls-ink) !important;
  text-align: center;
}

/* ============================================================
   12. TESTIMONIALS
   ============================================================ */
.ls-testimonials {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  width: 100%;
}
.ls-testimonial {
  margin: 0;
  padding: 34px 32px;
  background: var(--ls-bg-card);
  border: 1px solid var(--ls-rule);
  border-radius: var(--ls-radius-card);
  display: flex;
  flex-direction: column;
}
.ls-testimonial-quote {
  margin: 0 0 22px;
  padding: 0;
  border: 0;
  flex: 1;
}
.ls-testimonial-quote p {
  font-family: var(--ls-font-serif);
  font-style: italic;
  font-size: 18px;
  line-height: 1.7;
  color: var(--ls-ink);
  margin: 0 0 14px;
}
.ls-testimonial-quote p:last-child { margin-bottom: 0; }
.ls-testimonial-by {
  padding-top: 18px;
  border-top: 1px solid var(--ls-rule);
}
.ls-testimonial-name {
  display: block;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ls-ink);
  font-weight: 600;
}
.ls-testimonial-role {
  display: block;
  font-size: 12px;
  color: var(--ls-ink-3);
  margin-top: 4px;
}

/* ============================================================
   13. GRATIS MEDITASJON — lead magnet
   ============================================================ */
.ls-leadmag-inner { max-width: 640px; }
.ls-leadmag-product {
  font-family: var(--ls-font-serif);
  font-size: 20px;
  letter-spacing: 0.06em;
  color: var(--ls-ink);
  margin: 10px 0 6px;
}
.ls-leadmag-lead {
  font-size: 17px;
  line-height: 1.7;
  color: var(--ls-ink-2);
}
.ls-lead-form { max-width: 500px; }
.ls-leadmag-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 14px;
}
.ls-leadmag-input {
  background: var(--ls-surface);
  border: 1px solid var(--ls-rule);
  padding: 14px 16px;
  font-family: var(--ls-font-sans);
  font-size: 14px;
  color: var(--ls-ink);
  border-radius: var(--ls-radius);
  width: 100%;
}
.ls-leadmag-input:focus { outline: none; border-color: var(--ls-gold); }
.ls-btn-block { width: 100%; max-width: 500px; display: block; }

/* ============================================================
   14. KORT OG PRODUKT (WooCommerce)
   ============================================================ */
.ls-card {
  background: var(--ls-bg-card);
  border: 1px solid var(--ls-rule);
  border-radius: var(--ls-radius-card);
  padding: 28px 26px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.ls-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(60, 40, 20, 0.08);
}
.ls-card-title {
  font-family: var(--ls-font-serif);
  font-size: 22px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin: 0 0 14px;
  font-weight: 500;
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--ls-font-serif);
  color: var(--ls-ink);
  font-size: 28px;
}
.woocommerce div.product .product_meta {
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--ls-ink-3);
}
.ls-subs-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ls-gold-deep);
  background: var(--ls-gold-tint);
  padding: 5px 10px;
  border-radius: 20px;
  font-weight: 500;
}

.ls-program-details {
  display: grid;
  gap: 18px;
  margin: 28px 0;
  padding-top: 24px;
  border-top: 1px solid var(--ls-rule);
}
.ls-program-detail .ls-eyebrow,
.ls-program-included .ls-eyebrow { display: block; margin-bottom: 6px; }
.ls-program-included ul { list-style: none; padding: 0; margin: 0; }
.ls-program-included li {
  position: relative;
  padding-left: 20px;
  margin-bottom: 8px;
  color: var(--ls-ink-2);
  font-size: 14px;
}
.ls-program-included li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--ls-gold);
}

/* ============================================================
   15. BOOKLY
   ============================================================ */
.bookly-form,
.bookly-form-wrapper {
  font-family: var(--ls-font-sans) !important;
  color: var(--ls-ink);
}
.bookly-form .bookly-progress-tracker .bookly-progress-tracker-step.active {
  background: var(--ls-gold) !important;
  color: #fff !important;
}
.bookly-form .bookly-progress-tracker .bookly-progress-tracker-step {
  background: var(--ls-bg-card);
  border: 1px solid var(--ls-rule);
}
.bookly-form .bookly-label,
.bookly-form-group label {
  font-size: 11px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ls-ink-3) !important;
  font-weight: 500 !important;
}
.bookly-form input,
.bookly-form select,
.bookly-form textarea {
  background: var(--ls-surface) !important;
  border: 1px solid var(--ls-rule) !important;
  border-radius: var(--ls-radius) !important;
  padding: 14px 16px !important;
  font-family: var(--ls-font-sans) !important;
  font-size: 14px !important;
  color: var(--ls-ink) !important;
}
.bookly-form input:focus,
.bookly-form select:focus,
.bookly-form textarea:focus {
  outline: none !important;
  border-color: var(--ls-gold) !important;
}
.bookly-calendar,
.picker__holder {
  background: var(--ls-bg-card) !important;
  border: 1px solid var(--ls-rule) !important;
  border-radius: var(--ls-radius-card) !important;
}
.bookly-calendar .bookly-day--selected,
.picker__day--selected {
  background: var(--ls-gold) !important;
  color: #fff !important;
  border-color: var(--ls-gold) !important;
}
.bookly-slot,
.bookly-time-slot {
  border: 1px solid var(--ls-rule) !important;
  background: var(--ls-bg) !important;
  border-radius: var(--ls-radius) !important;
  padding: 12px !important;
  font-size: 13px !important;
  cursor: pointer;
  transition: all 0.15s;
}
.bookly-slot:hover {
  border-color: var(--ls-gold-soft) !important;
  background: var(--ls-bg-soft) !important;
}
.ls-booking-confirmed { text-align: center; padding: 48px 24px; }

/* ============================================================
   16. VIPPS
   ============================================================ */
.payment_method_vipps label,
.payment_box.payment_method_vipps {
  display: flex;
  align-items: center;
  gap: 10px;
}
.wc_payment_method.payment_method_vipps img { max-height: 28px; }
.ls-vipps-btn,
button.ls-vipps-btn,
#place_order.vipps_button {
  background: #ff5b24 !important;
  color: #fff !important;
  border-radius: 32px !important;
  padding: 16px !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  letter-spacing: 0.04em !important;
  border: none !important;
  width: 100%;
  text-transform: none !important;
}
.ls-vipps-btn:hover { background: #e44a18 !important; }

/* ============================================================
   17. FLUENT FORMS
   ============================================================ */
.frm-fluent-form .ff-el-input--label label,
.frm-fluent-form .ff-el-input--content label {
  font-size: 11px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ls-ink-3) !important;
  font-weight: 500 !important;
}
.frm-fluent-form input[type="text"],
.frm-fluent-form input[type="email"],
.frm-fluent-form input[type="tel"],
.frm-fluent-form select,
.frm-fluent-form textarea {
  background: var(--ls-surface) !important;
  border: 1px solid var(--ls-rule) !important;
  padding: 14px 16px !important;
  font-family: var(--ls-font-sans) !important;
  font-size: 14px !important;
  color: var(--ls-ink) !important;
  border-radius: var(--ls-radius) !important;
  transition: border-color 0.2s;
}
.frm-fluent-form input:focus,
.frm-fluent-form textarea:focus {
  outline: none !important;
  border-color: var(--ls-gold) !important;
}
.frm-fluent-form button.ff-btn-submit,
.frm-fluent-form .ff-btn-submit {
  background: var(--ls-gold) !important;
  color: #fff !important;
  padding: 16px 28px !important;
  font-size: 12px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  border-radius: var(--ls-radius) !important;
  border: none !important;
}
.frm-fluent-form .ff-btn-submit:hover { background: var(--ls-gold-deep) !important; }

/* ============================================================
   18. BLOGG / ARTIKKEL
   ============================================================ */
.post-meta, .post-meta a {
  color: var(--ls-ink-3);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.entry-title, h1.entry-title {
  font-family: var(--ls-font-serif);
  font-weight: 400;
}
.single-post .entry-content p { font-size: 17px; line-height: 1.75; }
.single-post .entry-content blockquote {
  border-left: 2px solid var(--ls-gold);
  padding-left: 24px;
  margin: 32px 0;
  font-family: var(--ls-font-serif);
  font-style: italic;
  font-size: 22px;
  color: var(--ls-ink);
}

/* ============================================================
   19. FOOTER
   ============================================================ */
.ls-footer-form { display: flex; flex-direction: column; gap: 10px; }
.ls-footer-input {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--ls-radius);
  padding: 12px 16px;
  font-family: var(--ls-font-sans);
  font-size: 13px;
  color: #d9cdb9;
  width: 100%;
  outline: none;
}
.ls-footer-input::placeholder { color: #9a8d7e; }
.ls-footer-input:focus { border-color: rgba(180,136,97,0.4); }
.ls-footer-submit {
  /* Dypere gull: hvit tekst på 11 px trenger mer enn 4.5:1 */
  background: var(--ls-gold-deep);
  color: #fff;
  border: none;
  border-radius: var(--ls-radius);
  padding: 12px 20px;
  font-family: var(--ls-font-sans);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  cursor: pointer;
  width: 100%;
  transition: background 0.2s ease;
}
.ls-footer-submit:hover { background: var(--ls-gold); }

.ls-footer-nav { list-style: none; padding: 0; margin: 0; }
.ls-footer-nav li { margin-bottom: 13px; }
.ls-footer-nav li:last-child { margin-bottom: 0; }
.ls-footer-nav a {
  font-family: var(--ls-font-sans);
  font-size: 14px;
  color: var(--ls-footer-text);
  text-decoration: none;
}
.ls-footer-nav a:hover { color: var(--ls-gold-soft); }

/* Bunnlinjens lenker — 5.1:1 mot #231F1C */
.ls-footer-legal a {
  color: #9a8d7e;
  text-decoration: none;
  margin-left: 18px;
}
.ls-footer-legal a:first-child { margin-left: 0; }
.ls-footer-legal a:hover {
  color: var(--ls-gold-soft);
  text-decoration: underline;
}

/* ============================================================
   20. RESPONSIVT
   ============================================================ */
@media (max-width: 1024px) {
  .ls-offerings   { grid-template-columns: repeat(2, 1fr); }
  .ls-dimensions  { grid-template-columns: 1fr; gap: 32px; }
  .ls-sessions    { grid-template-columns: 1fr; gap: 24px; }
  .ls-testimonials{ grid-template-columns: 1fr; }
}

/* Trekanten stables vertikalt på mobil, i rekkefølgen
   Intuisjon og energi → kreativ → fysisk → Lederstemmen. */
@media (max-width: 900px) {
  .ls-triangle { padding-top: 0; }

  .ls-triangle-stage {
    aspect-ratio: auto;
    display: block;
  }

  .ls-triangle-svg {
    position: static;
    width: min(240px, 62%);
    height: auto;
    margin: 0 auto 36px;
  }

  .ls-triangle-labels {
    position: static;
    display: flex;
    flex-direction: column;
    gap: 26px;
  }

  .ls-tri-label {
    position: static;
    transform: none;
    max-width: 100%;
    width: 100%;
  }

  .ls-tri-top    { order: 1; }
  .ls-tri-right  { order: 2; }
  .ls-tri-left   { order: 3; }
  .ls-tri-centre { order: 4; }

  .ls-tri-centre {
    background: var(--ls-gold);
    border-radius: var(--ls-radius-card);
    padding: 28px 24px;
  }
  .ls-tri-centre-title { font-size: 24px; }
  .ls-tri-centre-sub   { font-size: 14px; }

}

@media (max-width: 767px) {
  .ls-offerings       { grid-template-columns: 1fr; }
  .ls-leadmag-fields  { grid-template-columns: 1fr; }
  .ls-journey-step    { flex-basis: 100%; }
  .ls-story-heading   { font-size: 20px; }
  .ls-story p         { font-size: 16px; }
  .ls-story-closing   { font-size: 19px !important; }
}
