/* Shared visual rules for every redesigned page. Loaded after layout styles.
   Existing Elementor, Gutenberg and plugin classes are adapters to these rules;
   source HTML and the original comparison view remain unchanged. */
@font-face {
  font-family: ADInter;
  src: url('assets/inter-var.woff2') format('woff2');
  font-weight: 100 900;
  font-display: swap;
}
:root {
  color-scheme: light;
  --ad-body-size: 1rem;
  --ad-body-line: 1.65;
  --ad-danger: #b42318;
  --ad-success: #216e39;
  --ad-space-1: .25rem;
  --ad-space-2: .5rem;
  --ad-space-3: .75rem;
  --ad-space-4: 1rem;
  --ad-space-6: 1.5rem;
  --ad-space-8: 2rem;
  --ad-space-12: 3rem;
  --ad-surface: #fff;
  --ad-group: #f4f5f7;
  --ad-ink: #171b20;
  --ad-muted: #60666f;
  --ad-line: #8a919c;
  --ad-card-line: #d9dde2;
  --ad-gold: #f5d752;
  --ad-gold-hover: #efc93b;
  --ad-gold-active: #e6bc2a;
  --ad-night: #161826;
  --ad-focus: #145ac8;
  --ad-font: system-ui, -apple-system, BlinkMacSystemFont, ADInter, sans-serif;
  --ad-max: 1200px;
  --ad-pad: clamp(1.25rem, 4vw, 3.5rem);
  --ad-radius: 1.5rem;
  --ad-radius-small: 1rem;
  --ad-pill-radius: 999px;
  --ad-heading-weight: 650;
  --ad-h1-size: clamp(2.35rem, 4.5vw, 3.9rem);
  --ad-h1-line: 1.1;
  --ad-h2-size: clamp(1.7rem, 3vw, 2.6rem);
  --ad-h2-line: 1.2;
  --ad-h3-size: 1.25rem;
  --ad-h3-line: 1.3;
  --ad-control-height: 3rem;
  --ad-button-font-size: 1rem;
  --ad-button-line: 1.45;
  --ad-button-weight: 600;
  --ad-button-padding: .75rem 1.25rem;
  --ad-button-small-size: .8125rem;
  --ad-button-small-padding: .75rem 1rem;
  --ad-card-padding: clamp(1.25rem, 3vw, 2rem);
  --ad-card-padding-compact: 1rem 1.25rem;
  --ad-field-height: 2.75rem;
  --ad-field-gap: .75rem;
  --ad-label-gap: .25rem;
  --ad-form-padding: 1.25rem;
  --ad-field-padding: .5rem .75rem;
  --ad-field-radius: .75rem;
  --ad-field-line: 1.5;
  --ad-textarea-height: 7rem;
  /* Legacy components consume the same palette and page dimensions. */
  --rt-gull: var(--ad-gold);
  --rt-messing: #756018;
  --rt-natt: var(--ad-night);
  --rt-natt-tekst: #f1f3f5;
  --rt-nordsjo: var(--ad-focus);
  --rt-papir: var(--ad-surface);
  --rt-kort: var(--ad-surface);
  --rt-stripe: var(--ad-group);
  --rt-blekk: var(--ad-ink);
  --rt-sekundaer: var(--ad-muted);
  --rt-dempet: var(--ad-muted);
  --rt-dempet-alt: var(--ad-muted);
  --rt-linje: var(--ad-card-line);
  --rt-pad: var(--ad-pad);
  --rt-maxw: var(--ad-max);
}
/* Important component rules in this layer take precedence over the original
   WordPress styles. :where keeps adapters weak so explicit variants win. */

@layer roalds-components {
html { scroll-padding-top: 2rem; }

body {
  background: var(--ad-surface) !important;
  color: var(--ad-ink);
  font: 400 1.0625rem/1.65 var(--ad-font) !important;
  -webkit-font-smoothing: antialiased;
}

body #content { font-family: var(--ad-font); max-width: 100%; padding: 0; }

body :is(.rtcp-page, .rtgp-info, .rtgp-purchase-form) { font-family: var(--ad-font) !important; }

body :is(#content, main.site-main) img { max-width: 100% !important; height: auto; }

body :is(#content, main.site-main) :is(h1, h2, h3) {
  font-family: var(--ad-font) !important;
  font-weight: var(--ad-heading-weight) !important;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

body :is(#content, main.site-main) h1 {
  font-size: var(--ad-h1-size) !important;
  line-height: var(--ad-h1-line) !important;
  letter-spacing: -.045em !important;
}

body :is(#content, main.site-main) h2 {
  font-size: var(--ad-h2-size) !important;
  line-height: var(--ad-h2-line) !important;
  letter-spacing: -.035em !important;
}

body :is(#content, main.site-main) h3 {
  font-size: var(--ad-h3-size) !important;
  line-height: var(--ad-h3-line) !important;
  letter-spacing: -.02em !important;
}

/* Some existing card titles are paragraphs; give them the same title role. */

body #content :where(.rt-ks-tittel, .rt-pr-sk-tittel, .rt-kv-tittel, .rt-pm-steg,
  .rt-oo-instr-navn, .rt-tr-tittel, .rt-pr-navn) {
  font: var(--ad-heading-weight) var(--ad-h3-size)/var(--ad-h3-line) var(--ad-font) !important;
  letter-spacing: -.02em !important;
  color: var(--ad-card-title, var(--ad-ink)) !important;
  text-transform: none !important;
}

body #content :is(p, li, dd) { overflow-wrap: anywhere; }
}

@layer roalds-components {
/* Buttons: shared geometry, with primary/outline/selected semantic variants.
   Never select bare .button: cookie controls and image viewers also use it. */

body :is(#content, .rtgp-purchase-form, .rt-next-course-dialog) :where(.elementor-button, .wp-block-button__link,
  .rh-button, .primary-button, .closing-button, .rt-btn-gull, .rt-btn-gull-liten,
  .rt-vl-avbryt, .rt-pr-fane, .rt-kal-knapp, .rt-pm-sidekort-tlf,
  .rtcp-page .button, .rt-kursfilter button, .single_add_to_cart_button,
  [data-rt="cta-knapper"] a, .rt-nestekurs > a, .rt-next-course-action,
  .rt-next-dialog-actions button) {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  box-sizing: border-box !important;
  min-height: var(--ad-control-height) !important;
  max-width: 100%;
  min-width: 0;
  padding: var(--ad-button-padding) !important;
  border-radius: var(--ad-pill-radius) !important;
  font: var(--ad-button-weight) var(--ad-button-font-size)/var(--ad-button-line) var(--ad-font) !important;
  text-align: center;
  text-decoration: none !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
  transition: background .16s, border-color .16s, transform .16s;
}

body :is(#content, .rtgp-purchase-form, .rt-next-course-dialog) :where(.rt-btn-gull, .rt-btn-gull-liten, .rh-button, .primary-button,
  .closing-button, .rt-pm-ga .wp-block-button__link, .single_add_to_cart_button,
  .rtcp-page .button:not(.outline):not([aria-pressed="true"]),
  .rt-next-course > .rt-next-course-action, .rt-next-dialog-actions button[type="submit"]) {
  border: 1px solid var(--ad-gold) !important;
  background: var(--ad-gold) !important;
  color: var(--ad-night) !important;
}

body :is(#content, .rtgp-purchase-form, .rt-next-course-dialog) :where(.rt-btn-gull, .rt-btn-gull-liten, .rh-button, .primary-button,
  .closing-button, .rt-pm-ga .wp-block-button__link, .single_add_to_cart_button,
  .rtcp-page .button:not(.outline):not([aria-pressed="true"]),
  .rt-next-course > .rt-next-course-action, .rt-next-dialog-actions button[type="submit"]):hover {
  background: var(--ad-gold-hover) !important;
  border-color: var(--ad-gold-hover) !important;
}

body :is(#content, .rtgp-purchase-form, .rt-next-course-dialog) :where(.rt-btn-gull, .rt-btn-gull-liten, .rh-button, .primary-button,
  .closing-button, .rt-pm-ga .wp-block-button__link, .single_add_to_cart_button,
  .rtcp-page .button:not(.outline):not([aria-pressed="true"]),
  .rt-next-course > .rt-next-course-action, .rt-next-dialog-actions button[type="submit"]):active {
  background: var(--ad-gold-active) !important;
}

body :is(#content, .rt-next-course-dialog) :where(.rt-vl-avbryt, .rt-pr-fane, .rt-kal-knapp, .rt-pm-sidekort-tlf,
  .rt-kursfilter button, .rt-nestekurs > a, .rtcp-page .button.outline:not([aria-pressed="true"]),
  .rt-next-course-alternative .rt-next-course-action, .rt-next-dialog-actions button:not([type="submit"])) {
  border: 1px solid var(--ad-line) !important;
  background: var(--ad-surface) !important;
  color: var(--ad-ink) !important;
}

body :is(#content, .rt-next-course-dialog) :where(.rt-vl-avbryt, .rt-pr-fane, .rt-kal-knapp, .rt-pm-sidekort-tlf,
  .rt-kursfilter button, .rt-nestekurs > a, .rtcp-page .button.outline:not([aria-pressed="true"]),
  .rt-next-course-alternative .rt-next-course-action, .rt-next-dialog-actions button:not([type="submit"])):hover { background: var(--ad-group) !important; }

body #content :is(.rt-pr-fane.er-valgt, .rt-kursfilter button.er-valgt,
  .rtcp-page .button[aria-pressed="true"]) {
  background: var(--ad-night) !important;
  border-color: var(--ad-night) !important;
  color: var(--ad-surface) !important;
}

/* Full courses retain their visible status and existing event behaviour. */

body #content .rt-kal-knapp.er-fullt { background: var(--ad-group) !important; color: var(--ad-muted) !important; }

body :is(#content, .rtgp-purchase-form) :is(button:disabled, input:disabled, select:disabled, textarea:disabled) { cursor: not-allowed; }
}

@layer roalds-components {
/* Header actions share the compact button size; navigation links keep their role. */

body header.elementor-241 :is(.elementor-button, .rt-student-trigger) {
  min-height: var(--ad-control-height) !important;
  padding: var(--ad-button-small-padding) !important;
  border-radius: var(--ad-pill-radius) !important;
  font: var(--ad-button-weight) var(--ad-button-small-size)/var(--ad-button-line) var(--ad-font) !important;
}

body header.elementor-241 .elementor-element-ff9b03f .elementor-heading-title {
  white-space: normal !important;
  overflow-wrap: anywhere;
}
}

@layer roalds-components {
/* Cards use a shared surface, edge, radius and inset. Semantic variants below
   change the palette; layouts and component-specific content stay in page CSS. */

body #content :where(.rt-kal-sidekort, .rt-pr-sidekort, .rt-pr-kort, .rt-kt-kontaktkort,
  .rt-kursvarsel, .rt-oo-instr, .rt-fakta.er-3 > .e-con,
  .rtcp-page .package, .rtcp-page .licence-card, .rtcp-page .overview-card,
  .rtcp-page .compare-panel, .rtcp-page .course-panel, .rtcp-page dialog,
  .rt-nestekurs, .rh-includes, .finance-calculator, .featured-review,
  .supporting-review, .closing-contact, .rt-relatert-liste li,
  .rt-pm-grid > .elementor-element-bd61a32, .elementor-element-cbf82e4) {
  box-sizing: border-box;
  min-width: 0;
  padding: var(--ad-card-padding) !important;
  border: 1px solid var(--ad-card-border, var(--ad-card-line)) !important;
  border-radius: var(--ad-radius) !important;
  background: var(--ad-card-background, var(--ad-group)) !important;
  box-shadow: none !important;
  overflow-wrap: anywhere;
}

body #content :is(.rt-nestekurs, .rt-kt-kontaktkort, .finance-calculator,
  .featured-review, .supporting-review) { --ad-card-background: var(--ad-surface); }

/* Featured reviews use the same readable light palette as supporting reviews. */

body #content .featured-review,
body #content .featured-review figcaption strong { color: var(--ad-ink) !important; }

body #content .featured-review :is(.class-label, figcaption > span:last-child > span) {
  color: var(--ad-muted) !important;
}

body #content .featured-review .stars { color: #8a6b08 !important; }

body #content .featured-review :is(.class-label, figcaption) { border-color: var(--ad-card-line) !important; }

body #content :is(.rh-includes, .closing-contact, .rtcp-page .course-panel,
  .rt-pm-grid .elementor-element-abe2c82) {
  --ad-card-background: var(--ad-night);
  --ad-card-border: #596074;
  --ad-card-title: #fff;
  color: #d8dde6 !important;
}

body #content .rh-includes { --ad-card-background: #232737; }

body #content :is(.rtcp-page .course-panel, .rt-pm-grid .elementor-element-abe2c82) :is(h2, h3, .rt-ks-tittel) {
  color: var(--ad-card-title) !important;
}

body #content .rt-pm-grid .elementor-element-abe2c82 .rt-ks-linje { color: #d8dde6 !important; }

body #content .rtcp-page .closing h2 { color: var(--ad-surface) !important; }

body #content .rtcp-page .course-panel :is(h4, .textlink, .datebox) { color: #f1f3f5 !important; }

body #content .rtcp-page .course-panel .course-preview p { color: #d3d8e1 !important; }

body #content :is(.rt-pr-kort.er-gull, .rtcp-page .package.selected) {
  border: 2px solid var(--ad-gold) !important;
}

body #content .rt-kt-kontaktkort:hover { background: var(--ad-group) !important; }

/* Quiet support sections have an explicit variant shared across pages. */

body #content .rt-kal-sidekort.er-noytral {
  padding: 1.125rem .25rem 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--ad-card-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body #content :where(.rt-kal-rad, .rtcp-page .course-row, .rt-pm-valgkort) {
  box-sizing: border-box;
  min-width: 0;
  padding: var(--ad-card-padding-compact) !important;
  border: 1px solid var(--ad-card-line) !important;
  border-radius: var(--ad-radius-small) !important;
  background: var(--ad-group) !important;
  box-shadow: none !important;
}

body #content .rt-pm-valgkort { background: var(--ad-surface) !important; text-decoration: none !important; }

body #content .rt-pm-valgkort:hover { border-color: var(--ad-line) !important; background: var(--ad-group) !important; }

body #content :is(.rt-pm-valgkort, .rt-pm-sidekort-tlf, .rt-nestekurs > a):active { background: #e6e9ee !important; }

body #content .rt-pm-valgkort span:first-child {
  font: var(--ad-heading-weight) 1.0625rem/1.4 var(--ad-font) !important;
  color: var(--ad-ink) !important;
}

body #content .rt-pm-valgkort span:last-child {
  border-radius: 50%;
  background: var(--ad-group);
  color: var(--ad-ink) !important;
  font: 500 1.125rem/1 var(--ad-font) !important;
}

body #content .rt-kal-sidekort.er-noytral a:not(.rt-pm-sidekort-tlf) { color: var(--ad-focus) !important; }

body #content [data-rt="ctaband"] { box-sizing: border-box !important; border-radius: var(--ad-radius) !important; }

body #content .rtcp-page .course-row > .datebox {
  background: var(--ad-surface) !important;
  border-color: var(--ad-card-line) !important;
  border-radius: var(--ad-field-radius) !important;
}

body #content :is(.rt-pr-sml > summary, .rtcp-page .faq summary) {
  min-height: var(--ad-control-height) !important;
  padding: 1rem 1.25rem !important;
  font: 600 1rem/1.5 var(--ad-font) !important;
  background: var(--ad-group) !important;
  border-radius: var(--ad-radius-small) !important;
  box-shadow: none !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
}

body #content .rtcp-page .faq details { border-radius: var(--ad-radius-small) !important; background: var(--ad-group) !important; }

/* Image tiles and gift-card illustrations share radius, not content-card insets. */

body #content :is(.rh-tile, .rh-gift-card, .rtcp-page .car-image, .rtcp-page .hero-photo img) { border-radius: var(--ad-radius) !important; }
}

@layer roalds-components {
/* Fields: content forms, calculators and the gift product use one definition.
   Checkboxes, radios, hidden values and action inputs are deliberately excluded. */

body :is(#content, .rtgp-purchase-form, .rt-next-course-dialog) :where(.rt-skjema, .rt-kursskjema-form,
  .rt-soknad-skjema, .rt-kursvarsel, .rt-vl, .rt-portal-sok,
  .rt-dbk, .finance-calculator, .rtgp-purchase-form, [data-next-waitlist])
  :where(input:not([hidden]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]), select, textarea),
body .rt-next-course-dialog select,
body.rt-gift-page .rtgp-purchase-form :is(input[type="number"], input[type="email"], input:not([type]), textarea) {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: var(--ad-field-height) !important;
  padding: var(--ad-field-padding) !important;
  border: 1px solid var(--ad-line) !important;
  border-radius: var(--ad-field-radius) !important;
  background: var(--ad-surface) !important;
  color: var(--ad-ink) !important;
  font: 400 1rem/var(--ad-field-line) var(--ad-font) !important;
}

body :is(#content, .rtgp-purchase-form) textarea {
  min-height: var(--ad-textarea-height) !important;
  resize: vertical;
}

body #content .rt-skjema label {
  color: var(--ad-ink) !important;
  font: 550 1rem/var(--ad-field-line) var(--ad-font) !important;
}
}
@layer roalds-components {
body #content :where(.rt-skjema,.rt-soknad-skjema,.rt-kursskjema-form) {
  gap: var(--ad-field-gap) !important;
}
body :is(#content,main.site-main) :where(.rt-skjema,.rt-soknad-skjema,.rt-kursskjema-form,.rtgp-purchase-form,.woocommerce form)
  :where(label:not(.woocommerce-form__label-for-checkbox)) {
  margin-bottom: var(--ad-label-gap) !important;
  line-height: 1.4 !important;
}
body .woocommerce form :where(.form-row) {
  margin-bottom: var(--ad-field-gap) !important;
  padding-block: 0;
}
}

@layer roalds-components {
body :is(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid var(--ad-focus) !important;
  outline-offset: 4px !important;
}

body :is(header, footer, .rh-package, .rt-closing26, .rtcp-page .closing,
  .rt-native-hero .elementor-element-1ba9f80) :is(a, button, summary):focus-visible { outline-color: var(--ad-gold) !important; }

body header.elementor-241 .rt-student-links a:focus-visible { outline-offset: 0 !important; }
}
@media (max-width: 600px) {
  :root {
    --ad-h1-size: clamp(2.125rem, 5.8vw, 2.375rem);
    --ad-card-padding: 1.25rem;
    --ad-card-padding-compact: .75rem 1rem;
  }
}
@media (prefers-contrast: more) {
  :root { --ad-muted: #42474f; --ad-line: #5a6370; --ad-card-line: #5a6370; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  body *, body *::before, body *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

/* WooCommerce and TSuite adapters. Provider-owned payment frames retain provider styling. */
@layer roalds-components {
body :is(.woocommerce, .woocommerce-page, .rt-db-portal, .tsuite-kursomrade, .rt-404) {
  --rt-gull: var(--ad-gold);
  --rt-mork: var(--ad-night);
  --rt-tekst: var(--ad-ink);
  --rt-bakgrunn: var(--ad-surface);
  font-family: var(--ad-font) !important;
  color: var(--ad-ink);
}
body :is(#content, main.site-main) :where(.woocommerce, .rt-db-portal, .wc-block-checkout, .wc-block-cart) {
  font-size: var(--ad-body-size);
  line-height: var(--ad-body-line);
}
/* Native controls, text fields and action buttons have different roles. Do not
   turn password visibility, quantity arrows, checkboxes or payment tabs into CTAs. */
body :is(#content, main.site-main) :where(.woocommerce, .rt-db-portal, .woocommerce-MyAccount-content)
  :where(a.button, button.button, input.button, input[type="submit"]),
body :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button) {
  box-sizing: border-box !important;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: var(--ad-control-height) !important;
  max-width: 100%;
  height: auto !important;
  padding: var(--ad-button-padding) !important;
  border: 1px solid var(--ad-gold) !important;
  border-radius: var(--ad-pill-radius) !important;
  background: var(--ad-gold) !important;
  color: var(--ad-night) !important;
  box-shadow: none !important;
  font: var(--ad-button-weight) var(--ad-button-font-size)/var(--ad-button-line) var(--ad-font) !important;
  text-align: center;
  text-decoration: none !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
}
body :is(#content, main.site-main) :where(.woocommerce, .rt-db-portal)
  :where(a.button, button.button, input.button, input[type="submit"]):hover,
body :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button):hover {
  background: var(--ad-gold-hover) !important;
  border-color: var(--ad-gold-hover) !important;
}
body :is(#content, main.site-main) :where(.woocommerce, .rt-db-portal)
  :where(a.button, button.button, input.button, input[type="submit"]):active {
  background: var(--ad-gold-active) !important;
}
body :is(#content, main.site-main) :where(.woocommerce, .rt-db-portal)
  :where(a.button, button.button, input.button):is(:disabled, .disabled, [aria-disabled="true"]),
body :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button):is(:disabled,[aria-disabled="true"]) {
  opacity: .55 !important;
  cursor: not-allowed !important;
}
body :is(#content, main.site-main) :where(.woocommerce, .rt-db-portal, .wc-block-checkout, .wc-block-cart)
  :where(input[type="text"],input[type="email"],input[type="tel"],input[type="password"],input[type="number"],input[type="search"],input[type="date"],input[type="url"],input:not([type]),select,textarea):where(:not([hidden]):not([aria-hidden="true"]):not([class*="activelayer-"])) {
  box-sizing: border-box !important;
  min-height: var(--ad-field-height) !important;
  max-width: 100% !important;
  min-width: 0;
  padding: var(--ad-field-padding) !important;
  border: 1px solid var(--ad-line) !important;
  border-radius: var(--ad-field-radius) !important;
  background: var(--ad-surface) !important;
  color: var(--ad-ink) !important;
  font: 400 var(--ad-body-size)/var(--ad-field-line) var(--ad-font) !important;
  box-shadow: none !important;
}
body :is(#content,main.site-main) :where(.woocommerce,.rt-db-portal) input[type="password"] {
  padding-inline-end: 3rem !important;
}
body :is(#content,main.site-main) :where(.woocommerce,.rt-db-portal) :where(input[type="checkbox"],input[type="radio"]) {
  accent-color: var(--ad-night);
}
body :is(#content,main.site-main) :where(.woocommerce,.rt-db-portal) textarea {
  min-height: var(--ad-textarea-height);
  resize: vertical;
}
body :is(#content,main.site-main) :where(.woocommerce,.rt-db-portal) :where(input,select,textarea)[aria-invalid="true"],
body :is(#content,main.site-main) .woocommerce .woocommerce-invalid :where(input,select,textarea) { border-color: var(--ad-danger) !important; }
body :is(#content,main.site-main) :where(.woocommerce,.rt-db-portal) :where(label,.woocommerce-privacy-policy-text) {
  font-family: var(--ad-font) !important;
}
body .woocommerce :is(form.login,form.register,form.checkout_coupon,.woocommerce-order-details,.woocommerce-customer-details address),
body .rt-db-portal .rt-db-login {
  box-sizing: border-box;
  padding: var(--ad-card-padding) !important;
  border: 1px solid var(--ad-card-line) !important;
  border-radius: var(--ad-radius) !important;
  background: var(--ad-surface) !important;
  box-shadow: none !important;
}
body .woocommerce :is(.woocommerce-message,.woocommerce-info,.woocommerce-error) {
  border-radius: var(--ad-radius-small);
  background: var(--ad-group);
  color: var(--ad-ink);
  font: 400 var(--ad-body-size)/var(--ad-body-line) var(--ad-font);
}
body .woocommerce .woocommerce-message { border-top-color: var(--ad-success); }
body .woocommerce .woocommerce-info { border-top-color: var(--ad-focus); }
body .woocommerce .woocommerce-error { border-top-color: var(--ad-danger); }
body .woocommerce .woocommerce-MyAccount-navigation a {
  display: block;
  min-height: var(--ad-control-height);
  padding: var(--ad-field-padding);
  color: var(--ad-ink);
  font-family: var(--ad-font);
}
body .woocommerce .woocommerce-MyAccount-navigation .is-active a {
  background: var(--ad-night);
  color: var(--ad-surface);
  border-radius: var(--ad-radius-small);
}
body .woocommerce table.shop_table {
  border-color: var(--ad-card-line);
  border-radius: var(--ad-radius-small);
  font-family: var(--ad-font);
}
body :is(#content,main.site-main) :where(.woocommerce,.rt-db-portal,.wc-block-checkout,.wc-block-cart)
  :where(a,button,input,select,textarea,summary):focus-visible {
  outline: 3px solid var(--ad-focus) !important;
  outline-offset: 3px !important;
}
/* Floating labels need room above the input value. */
body .wc-block-components-text-input input { padding-top: 1.5rem !important; padding-bottom: .4rem !important; }
}
@layer roalds-components {
body :is(.rt-konto-layout,.rt-db-portal) :where(p,li,td,th,dt,dd,label,summary,a,button) {
  font-family: var(--ad-font) !important;
}
body :is(.rt-kontomeny,.rt-db-portal > .rt-dbs-sammendrag) {
  border-color: var(--ad-card-line) !important;
  border-radius: var(--ad-radius) !important;
  background: var(--ad-surface) !important;
  box-shadow: none !important;
}
body .rt-kontomeny li :where(a,button) {
  min-height: var(--ad-control-height) !important;
  border-radius: var(--ad-radius-small) !important;
}
body .rt-kontomeny li.is-active a {
  background: var(--ad-group) !important;
  color: var(--ad-ink) !important;
  box-shadow: inset 3px 0 0 var(--ad-gold) !important;
}
body .rt-db-portal .rt-dbs-plantabell {
  max-width: 100%;
  overflow-x: auto;
}
}

@layer roalds-components {
body .woocommerce :is(form.login,form.register,form.checkout_coupon) {
  padding: var(--ad-form-padding) !important;
}
}

/* Shared site chrome and generic content pages, without imposing marketing layouts. */
@layer roalds-components {
body header.elementor-241, body footer.elementor-242 {
  font-family: var(--ad-font) !important;
}
body footer.elementor-242 :where(a,p,span,li) { font-family: var(--ad-font) !important; }
body footer.elementor-242 :where(a,button,summary):focus-visible {
  outline: 3px solid var(--ad-gold) !important;
  outline-offset: 3px !important;
}
body :is(#content,main.site-main) :where(h4,h5,h6) {
  font-family: var(--ad-font) !important;
  font-weight: var(--ad-heading-weight) !important;
  line-height: var(--ad-h3-line);
}
body.woocommerce-page main.site-main > :is(.page-header,.page-content),
body.page-id-206 main.site-main > :is(.page-header,.page-content),
body.error404 main.site-main {
  box-sizing: border-box;
  width: min(var(--ad-max),calc(100% - 2 * var(--ad-pad)));
  margin-inline: auto;
}
body.woocommerce-page main.site-main > .page-header,
body.page-id-206 main.site-main > .page-header { padding-block: var(--ad-space-8) var(--ad-space-4); }
body.woocommerce-page main.site-main > .page-content,
body.page-id-206 main.site-main > .page-content { padding-bottom: var(--ad-space-12); }
body :is(#content,main.site-main) :where(p,li,dt,dd,label) {
  font-family: var(--ad-font) !important;
  overflow-wrap: break-word;
}
}
@layer roalds-components {
body header.elementor-241 :where(.elementor-item,.elementor-sub-item,.elementor-heading-title) {
  font-family: var(--ad-font) !important;
}
}
@layer roalds-components {
/* Samarbeid: keep the telephone action clear of the footer. */
body.page-id-285 #content .elementor-element-2decce5 {
  padding-block-end: clamp(var(--ad-space-8), 4vw, var(--ad-space-12)) !important;
}
}

/* WPConsent exports parts and CSS variables across its shadow boundary. */
#wpconsent-root {
  --wpconsent-background: var(--ad-night) !important;
  --wpconsent-text: var(--ad-surface) !important;
  --wpconsent-outline-color: var(--ad-line) !important;
  --wpconsent-accept-bg: var(--ad-gold) !important;
  --wpconsent-accept-color: var(--ad-night) !important;
  --wpconsent-cancel-bg: var(--ad-surface) !important;
  --wpconsent-cancel-color: var(--ad-ink) !important;
  --wpconsent-preferences-bg: var(--ad-surface) !important;
  --wpconsent-preferences-color: var(--ad-ink) !important;
  --wpconsent-font-size: var(--ad-body-size) !important;
  font-family: var(--ad-font);
}
#wpconsent-container::part(wpconsent-banner),
#wpconsent-container::part(wpconsent-banner-body) { font-family: var(--ad-font) !important; }
#wpconsent-container::part(wpconsent-button-accept),
#wpconsent-container::part(wpconsent-button-cancel),
#wpconsent-container::part(wpconsent-button-preferences) {
  border-radius: var(--ad-pill-radius) !important;
  font-family: var(--ad-font) !important;
  font-weight: var(--ad-button-weight) !important;
  line-height: var(--ad-button-line) !important;
}
#wpconsent-container::part(wpconsent-button-accept):hover { background: var(--ad-gold-hover) !important; }
#wpconsent-container::part(wpconsent-button-accept):focus-visible,
#wpconsent-container::part(wpconsent-button-cancel):focus-visible,
#wpconsent-container::part(wpconsent-button-preferences):focus-visible {
  outline: 3px solid var(--ad-gold) !important;
  outline-offset: 3px !important;
}
#wpconsent-container::part(wpconsent-preferences-content) {
  box-sizing: border-box;
  max-width: calc(100vw - 2rem);
  margin-inline: auto;
  border-radius: var(--ad-radius) !important;
  font-family: var(--ad-font) !important;
}
#wpconsent-container::part(wpconsent-preferences-buttons),
#wpconsent-container::part(wpconsent-preferences-buttons-left) {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ad-space-2);
}
#wpconsent-container::part(wpconsent-preferences-accept-button),
#wpconsent-container::part(wpconsent-preferences-cancel-button),
#wpconsent-container::part(wpconsent-preferences-save-button) {
  box-sizing: border-box;
  min-height: var(--ad-control-height);
  max-width: 100%;
  border-radius: var(--ad-pill-radius) !important;
  font: var(--ad-button-weight) var(--ad-button-font-size)/var(--ad-button-line) var(--ad-font) !important;
  white-space: normal;
}
