/* 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-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-padding: .8rem .95rem;
  --ad-field-radius: .75rem;
  --ad-field-line: 1.5;
  --ad-textarea-height: 10rem;
  /* Legacy components consume the same palette and page dimensions. */
  --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; }

/* 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; }

/* 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;
}

/* 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); }
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; }

/* 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-control-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;
}
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;
  }
}
