/* Design values: _src/design-system/tokens.json. Component structure only. */
body {
  letter-spacing: var(--tracking-body);
  background: var(--paper-light);
}

h1,
h2,
h3 {
  font-family: var(--sans);
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-heading);
  text-wrap: pretty;
}

h1 {
  max-width: 12ch;
  margin-bottom: var(--measure-1-45rem);
  font-size: var(--type-page-title-size);
  line-height: var(--leading-page-title);
}

h3 {
  line-height: var(--leading-heading);
}

.lead,
.hero__lead,
.article-hero__lead {
  color: var(--graphite-soft);
  font-family: var(--sans);
  line-height: var(--leading-scale-1-52);
}

.lead {
  font-size: var(--type-lead-size);
}

.hero__lead,
.article-hero__lead {
  font-size: var(--hero-lead-size);
}

.eyebrow,
.step-label,
.section-label,
.brand-line {
  margin-bottom: var(--space-4);
  color: var(--graphite-soft);
  font-size: var(--type-caption-size);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-scale-0-11em);
  line-height: var(--leading-eyebrow);
  text-transform: uppercase;
}

.button {
  min-height: var(--measure-3-25rem);
  padding: var(--measure-0-9rem) var(--measure-1-3rem);
  border-radius: var(--radius-sm);
  font-size: var(--button-font-size);
  letter-spacing: var(--tracking-scale-0-01em);
  transition: color var(--duration-fast) ease, background var(--duration-fast) ease, border-color var(--duration-fast) ease;
}

.button:hover {
  color: var(--paper-light);
  background: var(--accent);
  border-color: var(--accent);
  transform: none;
}

.button--light {
  color: var(--graphite);
  background: var(--white);
  border-color: var(--white);
}

.button--light:hover {
  color: var(--white);
  background: var(--accent);
  border-color: var(--accent);
}

.button--quiet {
  border-radius: var(--radius-sm);
}

.plain-link {
  display: inline-flex;
  align-items: center;
  gap: var(--measure-0-55rem);
  color: var(--white);
  font-size: var(--type-body-size);
  font-weight: var(--weight-bold);
  text-decoration: none;
}

.plain-link span,
.text-link span {
  transition: transform var(--duration-fast) ease;
}

.plain-link:hover span,
.text-link:hover span {
  transform: translateX(var(--measure-0-2rem));
}

.site-header {
  border-bottom: var(--border-width) solid var(--line);
}

html[data-site="takseringshjelpen"] .site-header {
  background: color-mix(in srgb, var(--white) 97%, transparent);
}

html[data-site="enovahjelpen"] .site-header {
  background: color-mix(in srgb, var(--white) 97%, transparent);
}

.site-header.is-scrolled {
  box-shadow: none;
}

.wordmark {
  display: inline-flex;
  flex-direction: row !important;
  align-items: center !important;
  gap: var(--wordmark-gap) !important;
}

.footer-mark {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  color: var(--on-accent);
  background: var(--accent);
  letter-spacing: var(--tracking-heading);
}

.wordmark__symbol {
  display: block;
  flex: 0 0 auto;
  width: var(--wordmark-symbol-size);
  height: var(--wordmark-symbol-size);
}

.wordmark__house {
  display: block;
  width: 100%;
  height: 100%;
}

.wordmark__detail {
  stroke: var(--wordmark-accent, var(--accent));
}

.wordmark__lockup {
  display: grid;
  flex: 0 0 auto;
  gap: var(--space-1);
}

.wordmark__parent {
  white-space: nowrap;
  text-transform: none;
}

html[data-site] :is(.main-nav > a:not(.button), .filter-bar .filter-label) {
  position: relative;
}

html[data-site] :is(.main-nav > a:not(.button), .filter-bar .filter-label)::after {
  position: absolute;
  right: 0;
  bottom: var(--measure-negative-0-35rem);
  left: 0;
  height: var(--border-width);
  background: var(--accent);
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--duration-normal) ease;
}

html[data-site] .main-nav > a:not(.button):is(:hover, :focus-visible, [aria-current="page"])::after,
html[data-site] .filter-bar button:is(:hover, :focus-visible, [aria-pressed="true"]) .filter-label::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* Full-bleed, image-led home heroes. */

/* Image hero — the homepage is the reference, not a page-specific variant.
   All brands, local pages, services and profiles use media_hero() in build.py.
   Typography/spacing may only change here. Image crops and functional slots
   (search or price) may vary without introducing another type scale. */
html[data-site] .media-hero {
  position: relative;
  display: grid;
  min-height: var(--hero-height);
  overflow: hidden;
  color: var(--white);
  background: var(--graphite-deep);
  isolation: isolate;
}

html[data-site] .media-hero__content {
  display: flex;
  align-self: end;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  padding-block: var(--hero-padding-top) var(--hero-padding-bottom);
}

html[data-site] .media-hero h1 {
  width: fit-content;
  max-width: min(100%, var(--hero-title-width));
  margin: 0 0 var(--hero-title-gap);
  color: var(--white);
  font-family: var(--sans);
  font-size: var(--hero-title-size);
  font-weight: var(--weight-heading);
  line-height: var(--hero-title-leading);
  letter-spacing: var(--hero-title-tracking);
  text-wrap: balance;
  overflow-wrap: break-word;
}

html[data-site] .media-hero h1 > span {
  display: block;
}

html[data-site] .media-hero__content > p {
  max-width: var(--hero-lead-width);
  margin: 0;
  color: color-mix(in srgb, var(--white) 84%, transparent);
  font-family: var(--sans);
  font-size: var(--hero-lead-size);
  font-weight: var(--weight-regular);
  line-height: var(--hero-lead-leading);
  letter-spacing: normal;
}

html[data-site] .media-hero .hero__actions {
  gap: var(--hero-action-gap);
  margin: var(--hero-action-space) 0 0;
}

@media (min-width: 40.001rem) {
  html[data-site] .media-hero h1 > span {
    white-space: nowrap;
  }
}

@media (max-width: 40rem) {
  html[data-site] .media-hero h1 {
    text-wrap: pretty;
  }
}

.media-hero > img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--image-position, center);
}

.media-hero--termobolig > img {
  object-position: 58% center;
}

.media-hero--takst > img {
  object-position: center 58%;
}

.media-hero__shade {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, color-mix(in srgb, var(--graphite-deep) 84%, transparent) 0%, color-mix(in srgb, var(--graphite-deep) 48%, transparent) 44%, color-mix(in srgb, var(--graphite-deep) 6%, transparent) 77%), linear-gradient(0deg, color-mix(in srgb, var(--graphite-deep) 55%, transparent), transparent 45%);
}

.media-hero .brand-line {
  color: color-mix(in srgb, var(--white) 78%, transparent);
}

.media-hero__price {
  display: flex;
  align-items: baseline;
  gap: var(--measure-0-6rem);
  margin-top: var(--space-8);
  padding-top: var(--measure-1-1rem);
  border-top: var(--border-width) solid color-mix(in srgb, var(--white) 45%, transparent);
}

.media-hero__price strong {
  color: var(--white);
  font-size: var(--type-scale-1-65rem);
  letter-spacing: var(--tracking-scale-negative-0-04em);
}

.media-hero__price span {
  color: color-mix(in srgb, var(--white) 68%, transparent);
  font-size: var(--type-caption-size);
}

.trust-strip {
  z-index: 2;
  margin-top: 0;
  border: 0;
  border-bottom: var(--border-width) solid var(--line-strong);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  grid-template-columns: repeat(3, 1fr);
}

.trust-strip span {
  min-height: var(--space-24);
  padding: var(--measure-1-2rem) 0;
  border-right: 0;
  color: var(--graphite-soft);
  font-size: var(--type-caption-size);
}

.trust-strip b {
  color: var(--graphite);
  font-size: var(--type-body-size);
  font-weight: var(--weight-scale-650);
}

.section + .section {
  border-top: 0;
}

.editorial-heading {
  max-width: var(--measure-59rem);
}

.editorial-heading > p:last-child {
  max-width: var(--measure-36rem);
  margin: 0;
  color: var(--graphite-soft);
  font-size: var(--type-lead-size);
}

.editorial-heading--row {
  display: flex;
  max-width: none;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-8);
}

.editorial-heading--row h2 {
  margin-bottom: 0;
}

/* A shared, numbered process with the same outer frame as its introduction. */
.service-choice {
  background: var(--paper-light);
}

.service-pick-list {
  display: grid;
  border-top: var(--border-width) solid var(--line-strong);
  border-left: var(--border-width) solid var(--line-strong);
  grid-template-columns: var(--layout-equal-columns);
}

.service-pick {
  display: grid;
  min-height: var(--measure-12rem);
  align-items: start;
  gap: var(--space-4);
  padding: var(--measure-1-6rem);
  border-right: var(--border-width) solid var(--line-strong);
  border-bottom: var(--border-width) solid var(--line-strong);
  text-decoration: none;
  grid-template-columns: var(--space-8) 1fr auto;
  transition: color var(--duration-fast) ease, background var(--duration-fast) ease;
}

.service-pick:hover {
  background: var(--brand-soft);
}

.service-pick > span {
  color: var(--accent);
  font-size: var(--type-caption-size);
  font-weight: var(--weight-bold);
}

.service-pick h3 {
  margin: 0 0 var(--measure-0-55rem);
  font-size: var(--type-service-pick-h3-size);
}

.service-pick p {
  max-width: var(--measure-27rem);
  margin: 0;
  color: var(--graphite-soft);
}

.service-pick > b {
  color: var(--accent);
  font-size: var(--type-body-size);
}

.other-services {
  display: flex;
  flex-wrap: wrap;
  gap: var(--measure-0-8rem) var(--space-6);
  padding-top: var(--measure-1-4rem);
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
}

.other-services span {
  color: var(--graphite);
  font-weight: var(--weight-bold);
}

.other-services a {
  text-decoration-color: var(--line-strong);
}

/* Expert section: contextual photography, never a fabricated portrait. */
.section--glen {
  position: relative;
  padding-block: 0;
  color: var(--paper-light);
  background: var(--graphite-deep);
}

.glen-grid {
  display: grid;
  min-height: var(--measure-46rem);
  align-items: stretch;
  gap: 0 clamp(var(--measure-4-5rem), 7.5vw, var(--measure-9rem));
  grid-template-columns: var(--layout-equal-columns);
}

.glen-media {
  min-height: var(--measure-42rem);
  margin: 0;
}

.glen-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.glen-copy {
  display: flex;
  justify-content: center;
  flex-direction: column;
  padding-block: var(--section-space-compact);
  padding-inline: 0;
}

@media (min-width: 55.001rem) {
  .glen-media img {
    position: absolute;
    inset-block: 0;
    inset-inline-start: 0;
    width: 50%;
  }
}

.glen-copy .section-label {
  color: color-mix(in srgb, var(--accent) 72%, var(--white));
}

.glen-copy h2 {
  color: var(--white);
}

.credential-list span {
  padding: var(--measure-0-85rem) 0;
  border: 0;
  border-bottom: var(--border-width) solid color-mix(in srgb, var(--white) 25%, transparent);
  border-radius: 0;
  color: color-mix(in srgb, var(--white) 82%, transparent);
  font-size: var(--type-body-size);
}

.credential-list span:nth-child(odd) {
  margin-right: var(--space-6);
}

.text-link--light {
  color: var(--white);
}

.calm-process {
  background: var(--paper);
}

.simple-steps {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(var(--space-6), 4vw, var(--space-16));
}

.simple-steps li {
  display: grid;
  min-width: 0;
  align-content: start;
  gap: var(--space-6);
  grid-template-rows: auto 1fr;
}

.simple-steps > li > span {
  color: var(--accent);
  font-size: var(--type-section-heading-size);
  font-weight: var(--weight-medium);
  line-height: var(--leading-label);
}

.simple-steps h3 {
  margin-bottom: var(--space-2);
  font-size: var(--type-reading-card-heading-size);
  font-weight: var(--weight-medium);
}

.simple-steps p {
  max-width: var(--measure-24rem);
  margin: 0;
  color: var(--graphite-soft);
}

.family-services {
  color: var(--white);
  background: var(--graphite-deep);
}

.family-services__grid {
  display: grid;
  align-items: start;
  gap: var(--space-16) var(--space-32);
  grid-template-columns: .72fr 1.28fr;
}

.family-services h2,
.family-services h3 {
  color: var(--white);
}

.family-services .section-label,
.family-services p {
  color: color-mix(in srgb, var(--white) 66%, transparent);
}

.family-service-list {
  border-top: var(--border-width) solid color-mix(in srgb, var(--white) 34%, transparent);
}

.family-service-list a {
  border-bottom: var(--border-width) solid color-mix(in srgb, var(--white) 30%, transparent);
  color: var(--white);
  text-decoration: none;
}

.family-service-list span {
  color: color-mix(in srgb, var(--white) 62%, transparent);
}

.selected-reading {
  background: var(--paper-light);
}

.reading-list {
  display: grid;
  border-top: var(--border-width) solid var(--line-strong);
  border-left: var(--border-width) solid var(--line-strong);
  grid-template-columns: repeat(3, 1fr);
}

.reading-list article {
  display: flex;
  flex-direction: column;
  border-right: var(--border-width) solid var(--line-strong);
  border-bottom: var(--border-width) solid var(--line-strong);
}

.reading-list article > p {
  margin-bottom: var(--space-10);
  color: var(--graphite-soft);
  font-size: var(--type-caption-size);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

.reading-list h3 {
  max-width: 21ch;
}

.reading-list h3 a {
  text-decoration: none;
}

.reading-list .text-link {
  margin-top: auto;
}

.area-band {
  padding-block: var(--section-space);
  color: var(--graphite);
}

.area-band__grid {
  display: grid;
  align-items: end;
  gap: var(--space-12) var(--space-32);
  grid-template-columns: .8fr 1.2fr;
}

.area-band h2 {
  font-size: var(--type-area-band-h2-size);
}

.area-band ul {
  display: grid;
  margin: 0;
  padding: 0;
  border-top: var(--border-width) solid var(--line-strong);
  list-style: none;
  grid-template-columns: var(--layout-equal-columns);
}

.area-band li {
  border-bottom: var(--border-width) solid var(--line-strong);
}

.area-band li:nth-child(odd) {
  margin-right: var(--space-6);
}

.area-band a {
  display: block;
  padding: var(--measure-0-9rem) 0;
  text-decoration: none;
}

.area-band a span {
  display: none;
}

/* Product offer inspired by the clarity of a split price/inclusions layout. */
.offer-section {
  background: var(--paper-light);
}

.offer-panel {
  display: grid;
  grid-template-columns: .92fr 1.08fr;
}

.offer-panel__intro {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  background: var(--brand-soft);
}

.offer-panel__intro h2 {
  max-width: 9.5ch;
}

.offer-panel__intro > p:not(.section-label) {
  max-width: var(--measure-31rem);
  color: color-mix(in srgb, var(--graphite) 70%, transparent);
  font-size: var(--type-lead-size);
}

.offer-price {
  display: grid;
  margin: auto 0 0;
  padding-top: var(--measure-2-4rem);
}

.offer-price span,
.offer-price small {
  color: var(--graphite-soft);
}

.offer-price span {
  font-size: var(--type-caption-size);
}

.offer-price small {
  font-size: var(--type-meta-size);
}

.offer-price span {
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

.offer-price strong {
  margin: var(--measure-0-2rem) 0;
  font-size: var(--type-offer-price-strong-size);
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-scale-negative-0-06em);
  line-height: var(--leading-display);
}

.offer-panel__list {
  display: flex;
  flex-direction: column;
  background: var(--white);
}

.offer-panel__list > .form-actions {
  margin-top: auto;
  padding-top: var(--space-8);
}

.offer-panel__list h3 {
  margin-bottom: var(--measure-1-8rem);
}

.offer-panel__list ul {
  margin: 0;
  padding: 0;
  border-top: var(--border-width) solid var(--line);
  list-style: none;
}

.offer-panel__list li {
  display: grid;
  align-items: center;
  border-bottom: var(--border-width) solid var(--line);
}

.offer-panel__list li span {
  color: var(--accent);
  font-size: var(--type-body-size);
  font-weight: var(--weight-bold);
}

.offer-panel__list > p {
  margin: var(--measure-1-8rem) 0 0;
  color: var(--graphite-soft);
}

.scope-section {
  color: var(--white);
  background: var(--graphite-deep);
}

.scope-grid {
  display: grid;
  align-items: start;
  gap: var(--space-16) var(--measure-9rem);
  grid-template-columns: 1.05fr .95fr;
}

.scope-section h2,
.scope-section h3 {
  color: var(--white);
}

.scope-section .section-label,
.scope-section p {
  color: color-mix(in srgb, var(--white) 68%, transparent);
}

.scope-grid > div:last-child {
  border-top: var(--border-width) solid color-mix(in srgb, var(--white) 34%, transparent);
}

.scope-grid > div:last-child h3 {
  margin: 0;
  padding-top: var(--space-5);
  font-size: var(--type-scale-1-08rem);
}

.scope-grid > div:last-child p {
  margin: var(--measure-0-45rem) 0 0;
  padding-bottom: var(--space-5);
  border-bottom: var(--border-width) solid color-mix(in srgb, var(--white) 25%, transparent);
}

/* Enovahjelpen keeps the useful search-first idea, now with a calm image. */
.enova-hero {
  padding-block: var(--section-space);
  background: var(--brand-soft);
}

.enova-hero__grid {
  display: grid;
  align-items: stretch;
  gap: clamp(var(--space-12), 6vw, var(--space-24));
  grid-template-columns: minmax(0, 1.08fr) minmax(var(--measure-22rem), .92fr);
}

.enova-hero__copy {
  display: flex;
  justify-content: center;
  flex-direction: column;
}

.enova-hero h1 {
  max-width: 9.5ch;
  font-size: var(--type-enova-hero-h1-size);
}

.enova-hero .hero__lead {
  max-width: var(--measure-37rem);
  margin-bottom: var(--measure-2-4rem);
  color: color-mix(in srgb, var(--graphite) 72%, transparent);
}

.enova-hero__media {
  min-height: var(--measure-38rem);
  margin: 0;
}

.enova-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 48% center;
}

.smart-search {
  max-width: var(--measure-45rem);
}

.smart-search__input kbd {
  border-radius: var(--radius-sm);
}

.smart-search__hint {
  display: none;
}

.smart-search__results {
  position: static;
  margin-top: var(--space-2);
  border-radius: var(--radius-sm);
}

.popular-searches {
  display: flex;
  flex-wrap: wrap;
  gap: var(--measure-0-6rem) var(--measure-1-1rem);
  margin-top: var(--space-4);
  font-size: var(--type-body-size);
}

.popular-searches span {
  font-weight: var(--weight-bold);
}

.topic-layout {
  display: grid;
  gap: var(--space-16) var(--space-32);
  grid-template-columns: .72fr 1.28fr;
}

.topic-layout > div > p:last-child {
  max-width: var(--measure-25rem);
  color: var(--graphite-soft);
}

.topic-list {
  margin: 0;
  padding: 0;
  border-top: var(--border-width) solid var(--line-strong);
  list-style: none;
}

.topic-list a {
  display: grid;
  align-items: center;
  gap: var(--measure-1-2rem);
  padding: var(--space-4) 0;
  border-bottom: var(--border-width) solid var(--line-strong);
  text-decoration: none;
}

.topic-list a > span,
.topic-list a > b {
  color: var(--accent);
  font-size: var(--type-body-size);
}

.topic-list div {
  display: grid;
  gap: var(--measure-0-18rem);
}

.topic-list small {
  color: var(--graphite-soft);
}

.faq-layout {
  display: grid;
  align-items: start;
  gap: var(--space-16) var(--space-32);
  grid-template-columns: .68fr 1.32fr;
}

.faq-intro {
  position: sticky;
  top: var(--sticky-offset);
}

.faq-intro h2 {
  font-size: var(--type-faq-intro-h2-size);
}

.faq {
  width: 100%;
  border-top: var(--border-width) solid var(--line-strong);
}

.faq summary {
  min-height: var(--measure-5-2rem);
  padding: var(--measure-1-1rem) 0;
}

.faq details > div {
  max-width: var(--measure-39rem);
  font-family: var(--sans);
}

/* One outer box holds the entire enquiry or booking experience. */
.contact-section {
  padding-block: var(--section-space);
  color: var(--graphite);
  background: var(--paper-deep);
}

.contact-panel {
  display: grid;
  align-items: start;
  color: var(--white);
  background: var(--graphite-deep);
}

.contact-copy h2 {
  max-width: 9.5ch;
  color: var(--white);
}

.contact-copy .section-label,
.contact-copy > p {
  color: color-mix(in srgb, var(--white) 68%, transparent);
  font-family: var(--sans);
}

.contact-direct a {
  color: var(--white);
}

.form-card {
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: var(--graphite);
  background: transparent;
  box-shadow: none;
}

.form-card label:not(.check) {
  color: var(--graphite);
}

.form-card .check {
  color: var(--graphite-soft);
}

.form-card .check a {
  color: var(--graphite);
}

.form-card .form-status {
  color: var(--graphite-soft);
}

.form-row {
  gap: var(--space-4);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
select,
textarea,
.slot-grid button,
.choice-card,
.calendar-panel,
.price-chip,
.consent,
.consent-dialog {
  border-radius: var(--radius-sm);
}

.form-card input:not([type="checkbox"]):not([type="radio"]),
.form-card select,
.form-card textarea {
  border-color: transparent;
  background: var(--white);
}

.contact-section.booking-section {
  background: var(--paper);
}

.booking-panel {
  background: var(--white);
}

.booking-heading {
  align-items: end;
  margin-bottom: var(--space-10);
}

.booking-heading h2 {
  max-width: 12ch;
  margin-bottom: var(--measure-0-8rem);
  color: var(--graphite);
}

.booking-heading p:last-child {
  max-width: var(--measure-33rem);
  margin: 0;
  color: var(--graphite-soft);
}

.price-chip {
  min-width: var(--measure-11rem);
  border-color: var(--line-strong);
}

.price-chip strong {
  color: var(--graphite);
}

.price-chip span {
  color: var(--graphite-soft);
}

.booking-card {
  width: 100%;
  border-top: var(--border-width) solid var(--line-strong);
  border-radius: 0;
  box-shadow: none;
}

.choice-card {
  border-color: var(--line-strong);
}

.payment-note > span {
  border-radius: 0;
}

/* Dedicated, truthful expert page. */
.profile-hero {
  padding-block: var(--section-space);
  background: var(--paper);
}

.profile-hero__grid {
  display: grid;
  align-items: center;
  gap: var(--space-16) var(--measure-9rem);
  grid-template-columns: 1.05fr .75fr;
}

.profile-hero h1 {
  max-width: 10ch;
}

.profile-hero figure {
  margin: 0;
}

.profile-hero img {
  width: 100%;
  max-height: var(--measure-43rem);
  object-fit: cover;
}

.profile-hero figcaption {
  margin-top: var(--measure-0-6rem);
  color: var(--graphite-soft);
  font-size: var(--type-caption-size);
}

.profile-story .scope-grid > div:last-child {
  border-color: var(--line-strong);
}

.profile-story .scope-grid > div:last-child h3 {
  color: var(--graphite);
}

.profile-story .scope-grid > div:last-child p {
  color: var(--graphite-soft);
  border-color: var(--line);
}

.profile-credentials ul {
  margin: 0;
  padding: 0;
  border-top: var(--border-width) solid var(--line-strong);
  list-style: none;
}

.profile-credentials li {
  display: grid;
  gap: var(--measure-0-35rem);
  padding: var(--space-5) 0;
  border-bottom: var(--border-width) solid var(--line-strong);
}

.profile-credentials li:nth-child(odd) {
  margin-right: var(--space-8);
}

.profile-credentials span {
  color: var(--graphite-soft);
}

.profile-cta {
  text-align: center;
}

.profile-cta h2 {
  margin-inline: auto;
}

/* Existing article, archive, service and local pages inherit the same system. */
.hero,
.service-hero,
.archive-hero {
  background: var(--paper);
}

.hero::before,
.service-hero::before,
.archive-hero::before {
  display: none;
}

.service-hero__grid,
.hero__grid {
  min-height: var(--measure-38rem);
  padding-block: var(--section-space);
}

.service-symbol {
  border-radius: 0;
  background: var(--brand-soft);
}

.article-card,
.service-card,
.pricing-grid article,
.boundary-card,
.source-note,
.answer-box,
.legal-note,
.calculator,
.plan-stack,
.report-board {
  border-radius: var(--radius-sm);
  box-shadow: none;
}

.article-card:hover,
.service-card:hover {
  border-color: var(--line-strong);
  background: var(--brand-soft);
  box-shadow: none;
  transform: none;
}

.article-card > p:not(.article-card__meta),
.service-card p,
.process-list p,
.pricing-grid p {
  font-family: var(--sans);
}

.article-grid {
  gap: 0;
  border-top: var(--border-width) solid var(--line-strong);
  border-left: var(--border-width) solid var(--line-strong);
}

.article-card {
  min-height: var(--measure-19rem);
  border-top: 0;
  border-left: 0;
}

.section-action {
  text-align: left;
}

.archive-hero .smart-search {
  max-width: var(--measure-47rem);
  margin-top: var(--space-8);
}

.filter-bar button,
.menu-toggle {
  border-radius: var(--radius-sm);
}

.local-link-list,
.local-service-list,
.knowledge-topic-list,
.knowledge-article-list {
  border-color: var(--line-strong);
}

.local-link-list a:hover,
.local-service-list a:hover,
.knowledge-topic-list a:hover,
.knowledge-article-list a:hover {
  background: var(--brand-soft);
}

.section--calculator,
.section--process,
.section--boundary {
  color: var(--white);
  background: var(--graphite-deep);
}

.calculator {
  background: color-mix(in srgb, var(--graphite-deep) 86%, var(--white));
}

.site-footer {
  padding-top: var(--space-20);
}

.site-footer__brand img {
  display: none;
}

.site-footer__brand .footer-mark {
  background: var(--accent);
}

.site-footer__brand p {
  font-family: var(--sans);
}

.network-card b {
  color: color-mix(in srgb, var(--accent) 65%, var(--white));
}

@media (max-width: 68rem) {
  .family-services__grid,
  .topic-layout,
  .faq-layout,
  .area-band__grid,
  .scope-grid,
  .contact-panel,
  .profile-hero__grid {
    gap: var(--measure-3-5rem) var(--space-20);
  }

  .enova-hero__grid {
    gap: var(--space-12);
    grid-template-columns: minmax(0, 1.1fr) minmax(var(--measure-18rem), .9fr);
  }

  .enova-hero__media {
    min-height: var(--measure-31rem);
  }
}

@media (max-width: 55rem) {
  /* Shared page edges; article shells retain their reading cap at every width.
     Full-bleed media containers keep their explicit 100% overrides below. */
  .shell,
  .shell--narrow {
    width: var(--shell);
  }

  .shell--article {
    width: var(--article);
  }

  .main-nav {
    border-radius: 0;
    background: var(--paper-light);
    box-shadow: none;
  }

  .media-hero__shade {
    background: linear-gradient(90deg, color-mix(in srgb, var(--graphite-deep) 81%, transparent), color-mix(in srgb, var(--graphite-deep) 20%, transparent)), linear-gradient(0deg, color-mix(in srgb, var(--graphite-deep) 72%, transparent), transparent 60%);
  }

  .glen-grid,
  .family-services__grid,
  .topic-layout,
  .faq-layout,
  .area-band__grid,
  .scope-grid,
  .contact-panel,
  .profile-hero__grid,
  .enova-hero__grid,
  .offer-panel {
    grid-template-columns: 1fr;
  }

  .faq-intro {
    position: static;
  }

  .contact-panel {
    gap: var(--space-8);
  }

  .enova-hero__copy {
    order: 2;
  }

  .enova-hero__media {
    min-height: var(--measure-28rem);
  }

  .offer-panel__intro h2 {
    max-width: 12ch;
  }
}

@media (max-width: 40rem) {
  h1 {
    font-size: var(--type-page-title-mobile-size);
  }

  .site-header__inner {
    min-height: var(--measure-4-4rem);
  }

  .media-hero > img {
    object-position: var(--image-position-mobile, 64% center);
  }

  .media-hero__shade {
    background: linear-gradient(0deg, color-mix(in srgb, var(--graphite-deep) 88%, transparent) 0%, color-mix(in srgb, var(--graphite-deep) 48%, transparent) 68%, color-mix(in srgb, var(--graphite-deep) 12%, transparent) 100%);
  }

  .trust-strip {
    grid-template-columns: 1fr;
  }

  .trust-strip span {
    min-height: auto;
    padding: var(--measure-0-9rem) 0;
    border-bottom: var(--border-width) solid var(--line);
  }

  .service-pick-list,
  .simple-steps,
  .reading-list,
  .area-band ul,
  .profile-credentials ul,
  .credential-list {
    grid-template-columns: 1fr;
  }

  .service-pick {
    min-height: var(--measure-10rem);
    padding: var(--measure-1-2rem);
  }

  .glen-media {
    min-height: var(--measure-29rem);
  }

  .credential-list span,
  .credential-list span:nth-child(odd) {
    margin: 0;
  }

  .area-band li:nth-child(odd),
  .profile-credentials li:nth-child(odd) {
    margin-right: 0;
  }

  .editorial-heading--row {
    align-items: flex-start;
    flex-direction: column;
  }

  .offer-price strong {
    font-size: var(--type-scale-3-8rem);
  }

  .enova-hero {
    padding-block: var(--space-6) var(--space-16);
  }

  .enova-hero__grid {
    gap: var(--space-10);
  }

  .enova-hero__media {
    min-height: var(--measure-22rem);
  }

  .enova-hero h1 {
    font-size: var(--type-page-title-mobile-size);
  }

  .smart-search__input input {
    min-height: var(--space-16);
    font-size: var(--type-input-size);
  }

  .smart-search__input kbd {
    display: none;
  }

  .popular-searches {
    display: grid;
  }

  .topic-list a {
    grid-template-columns: var(--space-6) 1fr auto;
  }

  .topic-list small {
    font-size: var(--type-body-size);
  }

  .booking-heading {
    align-items: stretch;
  }

  .booking-choice {
    grid-template-columns: 1fr;
  }

  .form-row {
    grid-template-columns: 1fr;
  }

  .profile-hero {
    padding-top: var(--space-10);
  }
}

.main-nav .header-cta,
.site-header.is-scrolled .main-nav .header-cta,
body:not(.home-template) .site-header:not(.is-scrolled) .main-nav .header-cta {
  color: inherit;
  border-color: currentColor;
  background: transparent;
  transition: opacity var(--duration-fast) ease;
}

.main-nav .header-cta:hover,
.site-header.is-scrolled .main-nav .header-cta:hover,
body:not(.home-template) .site-header:not(.is-scrolled) .main-nav .header-cta:hover {
  color: inherit;
  border-color: currentColor;
  background: transparent;
  opacity: .66;
}

.price-calculator[data-empty="true"] :is(
  .price-calculator__controls,
  .price-calculator__result,
  .price-calculator__breakdown,
  .price-calculator__note,
  .price-calculator__cta-note,
  [data-price-cta]
) {
  display: none;
}

.quantity-stepper--compact button,
.quantity-stepper--compact input[type="text"] {
  min-height: var(--space-12);
}

.quantity-stepper--compact button {
  font-size: var(--type-body-size);
}

.quantity-stepper--compact input[type="text"] {
  font-size: var(--type-input-size);
}

.price-calculator > [data-price-cta] {
  display: flex;
  width: 100%;
  min-height: var(--measure-4-75rem);
  margin-top: var(--measure-1-75rem);
  padding: var(--measure-1-15rem) var(--space-8);
  justify-content: center;
}

.price-directory__label h3 {
  color: var(--accent);
}

@media (max-width: 40rem) {
  .service-row {
    grid-template-columns: 1fr;
  }

  .price-extra-choice {
    align-items: start;
  }
}

/* Pricing page — driven by the September 2026 customer pricing model. */
body.pricing-template main {
  padding-top: var(--measure-5-8rem);
}

.pricing-hero {
  border-bottom: 0;
}

.pricing-hero__grid {
  display: grid;
  align-items: end;
  gap: clamp(var(--space-12), 9vw, var(--space-32));
  grid-template-columns: minmax(0, 1.05fr) minmax(var(--measure-22rem), .95fr);
}

.pricing-hero h1 {
  max-width: 9ch;
  margin-bottom: 0;
}

.pricing-hero__intro > p {
  max-width: var(--measure-38rem);
  color: var(--graphite-soft);
  font-size: var(--hero-lead-size);
  line-height: var(--leading-help);
}

.pricing-hero__intro .hero__actions {
  margin-block: var(--space-8) var(--space-12);
}

.pricing-hero__intro > ul {
  display: grid;
  gap: var(--space-3);
  margin: 0;
  padding: var(--space-6) 0 0;
  border-top: var(--border-width) solid var(--line-strong);
  list-style: none;
}

.pricing-hero__intro > ul li {
  display: grid;
  align-items: start;
  gap: var(--space-3);
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
  grid-template-columns: var(--space-6) 1fr;
}

.pricing-hero__intro .material-icon {
  margin-top: var(--measure-0-05rem);
  color: var(--accent);
}

.pricing-calculator-layout {
  display: grid;
  align-items: start;
}

.pricing-calculator-copy {
  position: sticky;
  top: var(--sticky-offset);
}

.pricing-calculator-copy .eyebrow,
.pricing-calculator-copy .lead,
.calculator-context {
  color: color-mix(in srgb, var(--white) 70%, transparent);
}

.price-calculator {
  min-width: 0;
  color: var(--graphite);
}

.price-calculator label,
.price-extras legend {
  display: block;
  font-weight: var(--weight-heading);
}

.price-calculator select,
.price-calculator input[type="number"] {
  border-color: var(--line-strong);
  border-radius: var(--space-1);
}

.price-calculator__field > p {
  margin: var(--space-3) 0 0;
  color: var(--graphite-soft);
}

.price-calculator__controls {
  display: grid;
  grid-template-columns: var(--layout-equal-columns);
}

.price-control--range,
.price-control--select,
.price-extras {
  grid-column: 1 / -1;
}

.price-control--select {
  min-width: 0;
}

.price-calculator .price-select-value {
  margin: var(--measure-0-55rem) 0 0;
  color: var(--graphite-soft);
  font-size: var(--type-meta-size);
  line-height: var(--leading-help);
  overflow-wrap: anywhere;
}

.price-calculator .price-select-value[hidden] {
  display: none;
}

.price-control__heading {
  display: flex;
  justify-content: space-between;
  gap: var(--space-4);
}

.price-control__heading output {
  color: var(--accent);
  font-weight: var(--weight-heading);
}

.price-control--range input {
  width: 100%;
  margin-block: var(--measure-0-65rem) var(--measure-0-2rem);
  accent-color: var(--accent);
}

.price-control__limits {
  display: flex;
  justify-content: space-between;
  color: var(--graphite-soft);
}

.price-extras {
  display: grid;
  min-width: 0;
  margin: var(--measure-0-2rem) 0 0;
  padding: 0;
  border: 0;
}

.price-extra-choice {
  display: grid;
  align-items: center;
  gap: var(--space-3);
  grid-template-columns: minmax(0, 1fr) auto;
}

.price-extra-choice label {
  display: grid;
  align-items: start;
  gap: var(--measure-0-8rem);
  margin: 0;
  cursor: pointer;
  grid-template-columns: auto 1fr;
}

.price-extra-choice input[type="checkbox"] {
  margin-top: var(--measure-0-2rem);
  accent-color: var(--accent);
}

.price-extra-choice > input[type="number"] {
  width: var(--measure-4-5rem);
  max-width: var(--measure-4-5rem);
  min-height: var(--measure-2-8rem);
}

.price-extra-choice > input[type="number"]:disabled {
  display: none;
}

.price-extra-choice strong,
.price-extra-choice small {
  display: block;
}

.price-extra-choice small {
  margin-top: var(--measure-0-2rem);
  color: var(--graphite-soft);
  line-height: var(--leading-meta);
}

.price-calculator__result {
  display: grid;
}

.price-calculator__result span {
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

.price-calculator__result strong {
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-heading);
}

.price-calculator__result small {
  grid-column: 1 / -1;
  color: var(--graphite-soft);
}

.price-calculator__breakdown {
  margin-top: var(--space-8);
}

.price-calculator__breakdown h3 {
  margin-bottom: var(--space-3);
}

.price-calculator__breakdown ul,
.price-card ul,
.pricing-extra-list {
  margin: 0;
  padding: 0;
  border-top: var(--border-width) solid var(--line-strong);
  list-style: none;
}

.price-calculator__breakdown li,
.price-card li,
.pricing-extra-list li {
  display: grid;
  align-items: baseline;
  gap: var(--space-4);
  padding-block: var(--measure-0-7rem);
  border-bottom: var(--border-width) solid var(--line);
  grid-template-columns: minmax(0, 1fr) auto;
}

.price-calculator__breakdown strong,
.price-card li strong,
.pricing-extra-list strong {
  font-weight: var(--weight-heading);
  white-space: nowrap;
}

.price-calculator__note {
  margin: var(--space-4) 0 0;
  color: var(--graphite-soft);
}

.price-directory {
  background: var(--paper-light);
}

.price-directory__group {
  display: grid;
  align-items: start;
}

.price-directory__label {
  position: sticky;
  top: var(--sticky-offset);
}

.price-directory__label span {
  display: block;
  margin-bottom: var(--measure-0-8rem);
  color: var(--accent);
  font-size: var(--type-meta-size);
  font-weight: var(--weight-scale-650);
  letter-spacing: var(--tracking-scale-0-1em);
}

.price-card-grid {
  display: grid;
  gap: 0;
  border-top: var(--border-width) solid var(--line-strong);
}

.price-card {
  min-width: 0;
  flex-direction: column;
  border-bottom: var(--border-width) solid var(--line-strong);
}

.price-card__heading p,
.price-card__note {
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
}

.pricing-extras {
  background: var(--paper-deep);
}

.pricing-extras__grid,
.pricing-terms__grid {
  display: grid;
  align-items: start;
  gap: clamp(var(--space-12), 9vw, var(--space-32));
  grid-template-columns: minmax(0, .7fr) minmax(var(--measure-26rem), 1.3fr);
}

.pricing-extras__grid > div > p:last-child,
.pricing-terms__grid > div > p {
  max-width: var(--measure-36rem);
  color: var(--graphite-soft);
}

.pricing-extras__grid > div > p:last-child {
  font-size: var(--type-lead-size);
}

.pricing-terms__grid > div > p {
  font-size: var(--type-lead-size);
}

.pricing-extra-list {
  columns: 2;
  column-gap: var(--space-12);
  border-top: 0;
}

.pricing-extra-list li {
  break-inside: avoid;
  border-top: var(--border-width) solid var(--line-strong);
  font-size: var(--type-body-size);
}

.digital-price-grid {
  display: grid;
  border-top: var(--border-width) solid var(--line-strong);
  border-left: var(--border-width) solid var(--line-strong);
  grid-template-columns: var(--layout-equal-columns);
}

.digital-price-card {
  display: grid;
  border-right: var(--border-width) solid var(--line-strong);
  border-bottom: var(--border-width) solid var(--line-strong);
  text-decoration: none;
}

.digital-price-card:hover {
  background: var(--brand-soft);
}

.digital-price-card > span {
  color: var(--graphite-soft);
}

.digital-price-card strong {
  margin-top: var(--space-8);
  font-weight: var(--weight-control);
  letter-spacing: var(--tracking-heading);
}

.digital-price-card small {
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}

.pricing-terms {
  background: var(--paper);
}

.pricing-terms__grid > div > ul {
  display: grid;
  gap: var(--space-4);
  margin: var(--space-6) 0 0;
  padding-left: var(--measure-1-2rem);
}

@media (max-width: 68rem) {
  .pricing-hero__grid,
  .pricing-calculator-layout {
    gap: var(--space-12) var(--space-16);
    grid-template-columns: minmax(0, .8fr) minmax(var(--measure-26rem), 1.2fr);
  }

  .price-directory__group {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 55rem) {
  body.pricing-template main {
    padding-top: var(--space-20);
  }

  .pricing-hero__grid,
  .pricing-calculator-layout,
  .pricing-extras__grid,
  .pricing-terms__grid {
    grid-template-columns: 1fr;
  }

  .pricing-hero .breadcrumbs {
    margin-bottom: var(--measure-3-5rem);
  }

  .pricing-calculator-copy {
    position: static;
  }

  .price-card-grid {
    grid-template-columns: 1fr;
  }

  .price-card {
    min-height: 0;
  }
}

@media (max-width: 40rem) {
  .price-calculator .button {
    width: 100%;
  }

  .price-calculator {
    padding: var(--space-5);
  }

  .price-calculator__result strong,
  .price-calculator__result small {
    grid-column: 1;
  }

  .price-extra-choice {
    grid-template-columns: 1fr;
  }

  .price-extra-choice > input[type="number"] {
    margin-left: var(--measure-1-95rem);
  }

  .price-calculator__breakdown li,
  .price-card li,
  .pricing-extra-list li {
    gap: var(--measure-0-65rem);
    grid-template-columns: 1fr;
  }

  .price-calculator__breakdown strong,
  .price-card li strong,
  .pricing-extra-list strong {
    white-space: normal;
  }

  .pricing-extra-list {
    columns: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}

.site-header {
  --wordmark-accent: var(--accent);
  position: fixed;
  inset: 0 0 auto;
  color: var(--graphite);
  border-bottom-color: transparent;
  background: transparent !important;
  backdrop-filter: none;
  transition: color .22s ease, background .22s ease, border-color .22s ease, backdrop-filter .22s ease;
}

.site-header.is-scrolled {
  color: var(--graphite);
  border-bottom-color: var(--line);
  background: color-mix(in srgb, var(--paper-light) 94%, transparent) !important;
  backdrop-filter: blur(var(--measure-18px));
}

html[data-site="termobolig"] body.home-template .site-header:not(.is-scrolled),
html[data-site="takseringshjelpen"] body.home-template .site-header:not(.is-scrolled),
body.local-template .site-header:not(.is-scrolled) {
  --wordmark-accent: var(--accent);
  color: var(--white);
}

.site-header__inner {
  min-height: var(--measure-5-8rem);
}

.site-header .wordmark,
.site-header .main-nav > a:not(.button),
.site-header .menu-toggle {
  color: inherit;
}

.footer-mark {
  width: var(--measure-2-15rem);
  height: var(--measure-2-15rem);
  border: var(--border-width) solid var(--accent);
  border-radius: 50%;
  font-size: var(--type-body-size);
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-scale-negative-0-04em);
}

/* Feedback preserves the open house and the contrast of the current surface. */
.wordmark:hover {
  opacity: .82;
}

.wordmark:focus-visible {
  outline: var(--focus-width) solid currentColor;
  outline-offset: var(--space-2);
}

.wordmark__name {
  display: block;
  width: auto;
  height: var(--type-brand-size);
  overflow: visible;
}

.wordmark__parent {
  color: currentColor;
  font-size: var(--type-caption-size);
  font-weight: var(--weight-regular);
  line-height: var(--leading-display);
  opacity: .72;
  letter-spacing: var(--tracking-body);
}

.main-nav {
  gap: clamp(var(--space-6), 2.4vw, var(--space-10));
}

/* Keep the enlarged wordmarks and navigation on one line on compact desktops. */
@media (min-width: 55.001rem) and (max-width: 68rem) {
  .site-header__inner {
    gap: var(--space-4);
  }

  .site-header .wordmark {
    gap: var(--wordmark-mobile-gap) !important;
  }

  .site-header .wordmark__name {
    height: var(--type-brand-mobile-size);
  }

  .site-header .wordmark__symbol {
    width: var(--wordmark-mobile-symbol-size);
    height: var(--wordmark-mobile-symbol-size);
  }

  .site-header .main-nav {
    gap: var(--space-4);
  }

  .site-header .main-nav > a:not(.button) {
    font-size: var(--nav-font-size);
    white-space: nowrap;
  }

  .site-header .header-cta {
    white-space: nowrap;
  }
}

.button,
.button--quiet {
  min-height: var(--measure-3-75rem);
  padding: var(--measure-0-95rem) var(--measure-1-6rem);
  border-radius: var(--measure-999px);
  font-size: var(--button-font-size);
  font-weight: var(--weight-control);
}

.main-nav .button {
  min-height: var(--measure-3-15rem);
  padding-inline: var(--space-5);
  color: var(--white);
  background: var(--graphite);
  border-color: var(--graphite);
  font-size: var(--button-font-size);
}

.site-header:not(.is-scrolled) .main-nav .button {
  color: var(--graphite);
  background: var(--white);
  border-color: var(--white);
}

html[data-site="enovahjelpen"] body.home-template .site-header:not(.is-scrolled) .main-nav .button,
body.service-template .site-header:not(.is-scrolled) .main-nav .button,
body.archive-template .site-header:not(.is-scrolled) .main-nav .button,
body.article-template .site-header:not(.is-scrolled) .main-nav .button,
body.profile-template .site-header:not(.is-scrolled) .main-nav .button,
body.legal-template .site-header:not(.is-scrolled) .main-nav .button,
body.result-template .site-header:not(.is-scrolled) .main-nav .button {
  color: var(--white);
  background: var(--graphite);
  border-color: var(--graphite);
}

body.service-template main,
body.archive-template main,
body.article-template main,
body.profile-template main,
body.legal-template main,
body.result-template main {
  padding-top: var(--measure-5-8rem);
}

.lead,
.hero__lead,
.article-hero__lead,
.editorial-heading > p:last-child {
  line-height: var(--leading-lead);
}

.lead,
.editorial-heading > p:last-child {
  font-size: var(--type-lead-size);
}

.hero__lead,
.article-hero__lead {
  font-size: var(--hero-lead-size);
}

.text-link,
.plain-link {
  font-size: var(--type-body-size);
  font-weight: var(--weight-control);
}


.media-hero__price span,
.offer-price span {
  font-size: var(--type-caption-size);
}

.offer-price small {
  font-size: var(--type-meta-size);
}

.section {
  padding-block: var(--section-space);
}

.editorial-heading {
  margin-bottom: clamp(var(--space-12), 5vw, var(--space-20));
}

/* Services are one calm, scannable list instead of a numbered card wall. */
.service-choice__inner {
  display: grid;
  align-items: start;
  gap: clamp(var(--space-12), 7vw, var(--space-32)) var(--service-gutter);
  grid-template-columns: var(--service-columns);
}

.service-choice .editorial-heading {
  position: sticky;
  top: var(--sticky-offset);
  margin: 0;
}

.service-list {
  border-top: var(--border-width) solid var(--line-strong);
}

.service-row {
  display: grid;
  gap: var(--space-3) var(--space-8);
  padding: var(--measure-1-8rem) 0;
  border-bottom: var(--border-width) solid var(--line-strong);
  text-decoration: none;
}

.service-row h3 {
  margin: 0;
  font-size: var(--type-service-heading-size);
  font-weight: var(--weight-medium);
  transition: color var(--duration-fast) ease;
}

.service-row p {
  max-width: var(--measure-33rem);
  margin: 0;
  color: var(--graphite-soft);
  line-height: var(--leading-lead);
}

.service-row > span {
  color: var(--accent);
  font-size: var(--type-body-size);
  transition: transform var(--duration-fast) ease;
}

.service-row:hover h3,
.service-row:focus-visible h3 {
  color: var(--accent);
}

.service-row:hover > span {
  transform: translateX(var(--measure-0-3rem));
}

.reassurance-section {
  background: var(--brand-soft);
}

.reassurance-section__inner {
  display: grid;
  align-items: start;
  gap: var(--space-12) clamp(var(--space-16), 10vw, var(--measure-10rem));
  grid-template-columns: minmax(0, 1fr) minmax(var(--measure-18rem), .72fr);
}

.reassurance-section__inner h2 {
  max-width: 13ch;
  margin: 0;
}

.reassurance-section__inner .button {
  margin-top: var(--measure-0-8rem);
}

/* Glen's qualifications read as genuine vertical bullet points. */
.glen-name {
  margin-bottom: var(--measure-0-7rem);
  color: color-mix(in srgb, var(--accent) 62%, var(--white));
  font-size: var(--type-body-size);
}

.credential-list {
  display: grid;
  padding: 0;
  border-top: var(--border-width) solid color-mix(in srgb, var(--white) 28%, transparent);
  list-style: none;
  grid-template-columns: 1fr;
}

.credential-list li {
  display: flex;
  align-items: center;
  border-bottom: var(--border-width) solid color-mix(in srgb, var(--white) 24%, transparent);
}

.material-icon {
  width: var(--measure-1-6rem);
  height: var(--measure-1-6rem);
  flex: 0 0 auto;
  fill: currentColor;
}

.offer-panel {
  border: 0;
}

.offer-panel__intro,
.offer-panel__list {
  padding: clamp(var(--space-10), 6vw, var(--space-24));
}

.offer-panel__list h3 {
  font-size: var(--type-dialog-heading-size);
  font-weight: var(--weight-medium);
}

.offer-panel__list li {
  min-height: var(--measure-5-4rem);
  gap: var(--space-5);
  grid-template-columns: var(--measure-1-8rem) 1fr;
}

.offer-panel__list li strong {
  font-size: var(--type-body-size);
  font-weight: var(--weight-medium);
}

.offer-panel__list .material-icon {
  color: var(--accent);
}

.offer-panel__list > p {
  font-size: var(--type-body-size);
}

.topic-list a {
  min-height: var(--measure-7-4rem);
  grid-template-columns: 1fr auto;
}

.topic-list strong {
  font-weight: var(--weight-medium);
}

.topic-list small {
  font-size: var(--type-body-size);
}

.topic-list a > b {
  font-size: var(--type-body-size);
}

.reading-list h3 {
  font-size: var(--type-reading-card-heading-size);
  font-weight: var(--weight-medium);
}

.area-band {
  background: var(--paper);
}

.area-cards {
  display: grid;
  margin: 0;
  padding: 0;
  border-top: var(--border-width) solid var(--line-strong);
  border-left: var(--border-width) solid var(--line-strong);
  list-style: none;
}

.area-cards li {
  min-width: 0;
  border-right: var(--border-width) solid var(--line-strong);
  border-bottom: var(--border-width) solid var(--line-strong);
}

.area-cards a {
  display: grid;
  text-decoration: none;
}

.area-cards strong {
  font-weight: var(--weight-medium);
}

.area-cards b {
  grid-row: 1 / span 2;
  grid-column: 2;
  color: var(--accent);
  font-weight: var(--weight-medium);
}

.area-cards a:hover {
  background: var(--brand-soft);
}

.local-context {
  background: var(--paper-light);
}

.local-context__grid {
  display: grid;
  align-items: start;
  gap: var(--space-16) clamp(var(--space-20), 11vw, var(--measure-11rem));
  grid-template-columns: 1fr .78fr;
}

.local-context__grid > div:first-child > p:last-child {
  color: var(--graphite-soft);
}

.local-context__grid h3 {
  margin-bottom: var(--measure-1-2rem);
  font-size: var(--type-scale-1-4rem);
  font-weight: var(--weight-medium);
}

.local-context__grid ul {
  margin: 0;
  padding: 0;
  border-top: var(--border-width) solid var(--line-strong);
  list-style: none;
}

.local-context__grid li {
  padding: var(--measure-1-15rem) 0 var(--measure-1-15rem) var(--measure-1-8rem);
  border-bottom: var(--border-width) solid var(--line-strong);
  font-size: var(--type-body-size);
  position: relative;
}

.local-context__grid li::before {
  position: absolute;
  top: var(--measure-1-72rem);
  left: var(--space-1);
  width: var(--measure-0-42rem);
  height: var(--measure-0-42rem);
  border-radius: 50%;
  background: var(--accent);
  content: "";
}

.local-services {
  background: var(--paper);
}

.local-service-list {
  display: grid;
  margin: 0;
  padding: 0;
  border-top: var(--border-width) solid var(--line-strong);
  list-style: none;
}

.local-service-list li {
  border-bottom: var(--border-width) solid var(--line-strong);
}

.local-service-list a {
  display: grid;
  align-items: center;
  gap: var(--measure-0-6rem) var(--space-8);
  padding: var(--measure-1-6rem) 0;
  text-decoration: none;
  grid-template-columns: minmax(var(--measure-14rem), .72fr) minmax(0, 1.28fr) auto;
}

.local-service-list strong {
  font-size: var(--type-local-service-list-strong-size);
  font-weight: var(--weight-medium);
}

.local-service-list small {
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
  line-height: var(--leading-meta);
}

.local-service-list b {
  color: var(--accent);
  font-weight: var(--weight-medium);
}

.local-service-list a:hover {
  background: transparent;
}

.local-service-list a:hover strong {
  color: var(--accent);
}

.nearby-links {
  display: grid;
  margin-top: var(--space-12);
  border-top: var(--border-width) solid var(--line-strong);
}

.nearby-links > span {
  padding: var(--measure-0-9rem) 0;
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
}

.nearby-links a {
  display: grid;
  align-items: center;
  gap: var(--measure-0-15rem) var(--space-4);
  padding: var(--space-4) 0;
  border-top: var(--border-width) solid var(--line);
  text-decoration: none;
  grid-template-columns: 1fr auto;
}

.nearby-links a strong {
  font-size: var(--type-body-size);
  font-weight: var(--weight-medium);
}

.nearby-links a span {
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
}

.nearby-links a b {
  grid-row: 1 / span 2;
  grid-column: 2;
  color: var(--accent);
}

/* Service pages are editorial, not diagrams. */
.service-hero {
  background: var(--paper);
}

.service-hero__grid {
  min-height: clamp(var(--measure-36rem), 66svh, var(--measure-48rem));
  gap: clamp(var(--space-12), 7vw, var(--space-32));
  padding-block: var(--section-space);
  grid-template-columns: minmax(0, 1fr) minmax(var(--measure-22rem), .78fr);
}

.service-hero h1 {
  max-width: 11ch;
  font-size: var(--type-service-hero-h1-size);
}

.service-hero__media {
  min-height: var(--measure-34rem);
  margin: 0;
}

.service-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-summary {
  border-left: var(--measure-3px) solid var(--accent);
}

.service-summary p {
  margin: 0;
  color: var(--graphite);
  line-height: var(--leading-meta);
}

.service-content .article-content {
  font-family: var(--sans);
  font-size: var(--type-body-size);
  line-height: var(--leading-scale-1-72);
}

.service-content .article-content h2 {
  margin-top: var(--space-16);
  font-size: var(--type-service-content-article-content-h2-size);
  font-weight: var(--weight-medium);
}

.service-content .article-list {
  gap: var(--measure-0-7rem);
  padding-left: var(--measure-1-35rem);
}

/* Forms: one visual box, one vertical sequence and an unmistakable submit action. */
.contact-panel {
  gap: var(--space-16) clamp(var(--space-16), 9vw, var(--measure-9rem));
  padding: clamp(var(--space-10), 6vw, var(--space-24));
  grid-template-columns: minmax(var(--measure-15rem), .72fr) minmax(var(--measure-25rem), 1.1fr);
}

.contact-copy > p {
  font-size: var(--type-body-size);
  line-height: var(--leading-scale-1-65);
}

.contact-direct {
  gap: var(--measure-0-55rem);
  margin-top: var(--space-10);
}

.contact-direct a {
  font-size: var(--type-body-size);
  font-weight: var(--weight-medium);
}

.form-card label:not(.check),
.booking-card label:not(.check):not(.choice-card),
.calendar-panel > label,
.booking-choice legend {
  margin: var(--space-8) 0 var(--measure-0-55rem);
  font-weight: var(--weight-medium);
}

.form-card input:not([type="checkbox"]):not([type="radio"]),
.form-card select,
.form-card textarea {
  color: var(--graphite);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
select {
  min-height: var(--measure-4-2rem);
  padding: var(--measure-0-9rem) var(--space-4);
  font-size: var(--type-input-size);
}

select {
  appearance: none;
  padding-right: var(--measure-3-3rem);
  background-image: linear-gradient(45deg, transparent 50%, var(--graphite) 50%), linear-gradient(135deg, var(--graphite) 50%, transparent 50%);
  background-position: calc(100% - var(--space-5)) 50%, calc(100% - var(--measure-0-92rem)) 50%;
  background-repeat: no-repeat;
  background-size: var(--measure-0-38rem) var(--measure-0-38rem), var(--measure-0-38rem) var(--measure-0-38rem);
}

.form-card select,
.booking-card select {
  background-color: var(--white);
  background-image: linear-gradient(45deg, transparent 50%, var(--graphite) 50%), linear-gradient(135deg, var(--graphite) 50%, transparent 50%);
  background-position: calc(100% - var(--measure-1-35rem)) 50%, calc(100% - var(--measure-0-97rem)) 50%;
  background-repeat: no-repeat;
  background-size: var(--measure-0-46rem) var(--measure-0-46rem), var(--measure-0-46rem) var(--measure-0-46rem);
}

textarea {
  min-height: var(--measure-10rem);
  padding: var(--space-4);
  font-size: var(--type-input-size);
  line-height: var(--leading-lead);
}

textarea::placeholder,
input::placeholder {
  color: var(--graphite-soft);
  opacity: 1;
}

.check {
  gap: var(--space-4);
  margin-top: var(--space-6);
  font-size: var(--type-body-size);
  line-height: var(--leading-meta);
}

.check input {
  width: var(--space-6);
  height: var(--space-6);
  margin-top: var(--measure-0-05rem);
}

.form-actions {
  align-items: stretch;
  flex-direction: column;
  margin-top: var(--space-8);
}

.form-actions .button {
  width: 100%;
  min-height: var(--measure-4-5rem);
  color: var(--graphite-deep);
  background: var(--white);
  border-color: var(--white);
  font-size: var(--button-font-size);
}

.form-actions .button:hover {
  color: var(--white);
  background: var(--accent);
  border-color: var(--accent);
}

.form-status {
  font-size: var(--type-meta-size);
}

/* Validation belongs to its field; submit status is reserved for delivery errors. */
html[data-site] .field-error {
  margin: var(--measure-0-55rem) 0 var(--space-4);
  color: var(--danger);
  font-size: var(--type-meta-size);
  font-weight: var(--weight-medium);
  line-height: var(--leading-meta);
}

html[data-site] .check + .field-error {
  padding-left: var(--measure-2-25rem);
}

html[data-site] [data-async-form] [aria-invalid="true"],
html[data-site] [data-async-form] [aria-invalid="true"]:focus {
  border-color: var(--danger) !important;
}

html[data-site] [data-async-form] [aria-invalid="true"]:focus {
  box-shadow: 0 0 0 var(--focus-width) var(--focus) !important;
}

html[data-site] [data-async-form] .form-status.is-error {
  color: var(--danger);
}

.booking-card .form-actions .button {
  color: var(--white);
  background: var(--graphite);
  border-color: var(--graphite);
}

.booking-card .form-actions .button:hover {
  background: var(--accent);
}

.choice-card b {
  font-size: var(--type-body-size);
  font-weight: var(--weight-control);
}


.choice-card small {
  font-size: var(--type-caption-size);
}

.payment-note p {
  font-size: var(--type-meta-size);
}

/* A warm, useful footer instead of another dark feature grid. */
.site-footer {
  padding: clamp(var(--space-20), 9vw, var(--space-32)) 0 var(--space-12);
  color: var(--graphite);
  border-top: var(--border-width) solid var(--line-strong);
  background: var(--paper-light);
}

.site-footer .wordmark {
  justify-self: start;
  width: fit-content;
  max-width: 100%;
  color: var(--graphite);
}

.site-footer__top {
  display: grid;
  align-items: end;
  gap: var(--space-12);
  padding-bottom: clamp(var(--space-12), 6vw, var(--space-20));
  border-bottom: var(--border-width) solid var(--line-strong);
}

.site-footer__contact {
  display: grid;
  justify-items: end;
}

.site-footer__contact span {
  margin-bottom: var(--space-2);
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
}

.site-footer__contact a {
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-heading);
}

.site-footer__middle {
  display: grid;
  align-items: start;
  gap: var(--space-12) var(--measure-7rem);
  padding-block: var(--section-space-compact);
}

.site-footer__middle > p {
  max-width: var(--measure-22rem);
  margin: 0;
  font-size: var(--type-lead-size);
  line-height: var(--leading-meta);
  letter-spacing: var(--tracking-body);
}

.site-footer__middle nav {
  border-top: var(--border-width) solid var(--line-strong);
}

.site-footer .network-card {
  min-height: var(--measure-5-2rem);
  padding: var(--space-4) 0;
  border-bottom-color: var(--line-strong);
}

.site-footer .network-card span {
  color: var(--graphite);
  font-size: var(--type-body-size);
  font-weight: var(--weight-medium);
}

.site-footer .network-card small {
  color: var(--graphite-soft);
  font-size: var(--type-meta-size);
}

.site-footer .network-card b {
  color: var(--accent);
}

.site-footer__meta {
  min-height: var(--measure-4-8rem);
  color: var(--graphite-soft);
  border-top-color: var(--line);
  font-size: var(--type-caption-size);
}

.site-footer__meta span:last-child {
  align-items: center;
}

.profile-credentials li,
.profile-credentials li:nth-child(odd) {
  display: grid;
  align-items: start;
  gap: var(--space-4);
  margin: 0;
  grid-template-columns: var(--measure-1-8rem) 1fr;
}

.profile-credentials .material-icon {
  color: var(--accent);
}

.profile-credentials strong {
  display: block;
  margin-bottom: var(--measure-0-2rem);
  font-size: var(--type-body-size);
  font-weight: var(--weight-medium);
}

.profile-credentials span {
  font-size: var(--type-body-size);
}

@media (max-width: 68rem) {
  .service-row,
  .local-service-list a {
    grid-template-columns: minmax(var(--measure-12rem), .75fr) minmax(0, 1.25fr) auto;
  }

  .contact-panel {
    gap: var(--space-12) var(--space-16);
  }
}

@media (max-width: 55rem) {
  body.service-template main,
  body.archive-template main,
  body.article-template main,
  body.profile-template main,
  body.legal-template main,
  body.result-template main {
    padding-top: var(--space-20);
  }

  .site-header:not(.is-scrolled) .menu-toggle {
    border-color: currentColor;
  }

  .site-header:not(.is-scrolled) .main-nav .button {
    color: var(--white);
    background: var(--graphite);
    border-color: var(--graphite);
  }

  .menu-toggle {
    font-size: var(--button-font-size);
    font-weight: var(--weight-medium);
  }

  .service-choice__inner,
  .reassurance-section__inner,
  .local-context__grid,
  .site-footer__middle {
    grid-template-columns: 1fr;
  }

  .service-choice .editorial-heading {
    position: static;
  }

  .service-row,
  .local-service-list a {
    grid-template-columns: 1fr auto;
  }

  .service-row p,
  .local-service-list small {
    grid-column: 1;
  }

  .service-row > span,
  .local-service-list b {
    grid-row: 1 / span 2;
    grid-column: 2;
  }

  .service-hero__grid {
    grid-template-columns: 1fr;
  }

  .service-hero__media {
    min-height: var(--measure-28rem);
  }

  .contact-panel {
    grid-template-columns: 1fr;
  }

  .site-footer__top {
    grid-template-columns: 1fr;
  }

  .site-footer__contact {
    justify-items: start;
  }
}

@media (max-width: 40rem) {
  body {
    font-size: var(--type-body-size);
  }

  .section {
    padding-block: var(--space-20);
  }

  .service-row,
  .local-service-list a {
    padding-block: var(--measure-1-4rem);
  }


.service-row p {
  font-size: var(--type-body-size);
}

.local-service-list small {
  font-size: var(--type-body-size);
}

  .simple-steps {
    gap: var(--space-12);
  }

  .simple-steps li {
    grid-template-columns: 1ch minmax(0, 1fr);
    grid-template-rows: auto;
    column-gap: var(--space-8);
  }

  .area-cards {
    grid-template-columns: 1fr;
  }

  .service-hero h1 {
    font-size: var(--type-service-title-mobile-size);
  }

  .service-hero__media {
    min-height: var(--measure-22rem);
  }

  .service-summary {
    margin-bottom: var(--measure-3-5rem);
  }

  .service-summary p {
    font-size: var(--type-lead-size);
  }

  .offer-panel__intro,
  .offer-panel__list,
  .booking-panel,
  .contact-panel {
    padding: var(--space-8) var(--space-5);
  }

  .choice-card {
    min-height: auto;
  }

  .site-footer__contact a {
    overflow-wrap: anywhere;
  }

  .site-footer__meta {
    align-items: flex-start;
    flex-direction: column;
    padding-block: var(--space-5);
  }

  .site-footer__meta span:last-child {
    flex-wrap: wrap;
  }
}

/* September refinement v3 — company-led language, calmer type and richer conversion pages. */
h2,
.service-choice .editorial-heading > h1 {
  max-width: 17ch;
  margin-bottom: var(--measure-1-55rem);
  font-size: var(--type-section-heading-size);
  line-height: var(--leading-section);
}

.editorial-heading h2,
.editorial-heading > div h2 {
  margin-bottom: var(--measure-1-55rem);
}

.editorial-heading > p:last-child,
.editorial-heading > div > p:last-child {
  max-width: var(--measure-43rem);
  margin-top: 0;
  font-size: var(--type-lead-size);
  line-height: var(--leading-lead);
}

.section-link {
  display: flex;
  margin-top: var(--space-10);
}

html[data-site="enovahjelpen"] body.home-template .site-header:not(.is-scrolled),
body.service-template .site-header:not(.is-scrolled),
body.profile-template .site-header:not(.is-scrolled) {
  --wordmark-accent: var(--accent);
  color: var(--white);
}

html[data-site="enovahjelpen"] body.home-template .site-header:not(.is-scrolled) .main-nav .button,
body.service-template .site-header:not(.is-scrolled) .main-nav .button,
body.profile-template .site-header:not(.is-scrolled) .main-nav .button {
  color: var(--graphite);
  background: var(--white);
  border-color: var(--white);
}

body.service-template main,
body.profile-template main {
  padding-top: 0;
}

/* The expert block uses real bullet rhythm without decorative dividers. */
.credential-list {
  max-width: var(--measure-31rem);
  margin: var(--measure-2-4rem) 0 var(--measure-2-8rem);
  border: 0;
}

.credential-list li {
  min-height: 0;
  padding: 0;
  border: 0;
}

/* Compact, contiguous local entries. */
.area-cards {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.area-cards a {
  padding: var(--measure-1-4rem);
}

/* The two digital services are image-led destinations, not thin text rows. */
.family-services__intro {
  align-items: end;
  gap: var(--space-8) clamp(var(--space-16), 10vw, var(--measure-10rem));
  margin-bottom: clamp(var(--space-12), 6vw, var(--space-20));
  grid-template-columns: 1fr .75fr;
}

.family-services__intro h2 {
  max-width: 13ch;
  margin: 0;
  font-size: var(--type-section-heading-size);
}

.family-services__intro p {
  margin: 0;
  line-height: var(--leading-body);
}

.family-service-list {
  display: grid;
  gap: var(--space-6);
  border: 0;
  grid-template-columns: var(--layout-equal-columns);
}

.family-service-list a {
  display: grid;
  align-items: start;
  gap: var(--space-3);
  min-height: var(--measure-31rem);
  padding: 0 0 var(--measure-1-8rem);
  overflow: hidden;
  border: var(--border-width) solid color-mix(in srgb, var(--white) 25%, transparent);
  grid-template-columns: 1fr;
}

.family-service-list img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.family-service-list span,
.family-service-list strong,
.family-service-list b {
  padding-inline: var(--measure-1-6rem);
}

.family-service-list span {
  margin-top: var(--measure-0-8rem);
}

.family-service-list strong {
  grid-row: auto;
  font-weight: var(--weight-medium);
  line-height: var(--leading-control);
}

.family-service-list b {
  display: flex;
  justify-content: space-between;
  grid-row: auto;
  grid-column: auto;
  color: color-mix(in srgb, var(--accent) 62%, var(--white));
  font-weight: var(--weight-medium);
}

.family-service-list b i {
  font-style: normal;
  transition: transform var(--duration-fast) ease;
}

.family-service-list a:hover b i {
  transform: translateX(var(--measure-0-3rem));
}

/* Enovahjelpen now shares the same image-led grammar as the other fronts. */

html[data-site] .enova-search-hero {
  overflow: visible;
  z-index: 4;
}

.enova-search-hero > img {
  object-position: center 56%;
}

.enova-search-hero .media-hero__shade {
  background: linear-gradient(90deg, color-mix(in srgb, var(--graphite-deep) 90%, transparent), color-mix(in srgb, var(--graphite-deep) 48%, transparent) 62%, color-mix(in srgb, var(--graphite-deep) 8%, transparent)), linear-gradient(0deg, color-mix(in srgb, var(--graphite-deep) 52%, transparent), transparent 58%);
}

.enova-search-hero .smart-search {
  position: relative;
  z-index: 2;
  width: min(100%, var(--measure-49rem));
  margin-top: var(--hero-action-space);
}

.smart-search__input {
  min-height: var(--measure-4-85rem);
  padding: 0 var(--measure-1-35rem);
  border: 0;
  border-radius: var(--measure-0-2rem);
  background: var(--white);
  box-shadow: none;
}

.smart-search__input:focus-within {
  outline: var(--measure-3px) solid color-mix(in srgb, var(--accent) 74%, var(--white));
  outline-offset: var(--measure-3px);
}

.smart-search__input .icon {
  color: var(--accent);
}

.smart-search__input input {
  min-height: var(--measure-4-85rem);
  padding: 0 var(--space-4);
  font-size: var(--type-input-size);
}

.smart-search__results {
  top: calc(100% + var(--space-2));
  border: 0;
  color: var(--graphite);
  background: var(--white);
  box-shadow: 0 var(--measure-1-4rem) var(--measure-3-5rem) color-mix(in srgb, var(--graphite-deep) 18%, transparent);
}

.smart-search__results > a[role="option"],
.smart-search__results strong {
  color: var(--graphite);
}

.topic-layout {
  align-items: start;
}

.topic-layout > div > p:last-child {
  font-size: var(--type-lead-size);
  line-height: var(--leading-lead);
}

.energy-offer .offer-panel__intro h2,
.offer-panel__intro h2 {
  max-width: 12ch;
  font-size: var(--type-energy-offer-offer-panel-intro-h2-size);
}

/* Full-bleed service and expert heroes use the proven homepage composition. */

.service-media-hero > img,
.profile-media-hero > img {
  object-position: center 52%;
}

.service-media-hero .media-hero__shade,
.profile-media-hero .media-hero__shade {
  background: linear-gradient(90deg, color-mix(in srgb, var(--graphite-deep) 88%, transparent), color-mix(in srgb, var(--graphite-deep) 34%, transparent) 62%, color-mix(in srgb, var(--graphite-deep) 6%, transparent)), linear-gradient(0deg, color-mix(in srgb, var(--graphite-deep) 50%, transparent), transparent 58%);
}

.service-media-hero .breadcrumbs,
.service-media-hero .breadcrumbs a,
.profile-media-hero .breadcrumbs,
.profile-media-hero .breadcrumbs a {
  color: color-mix(in srgb, var(--white) 72%, transparent);
}

.service-detail-grid {
  display: grid;
  align-items: start;
  gap: var(--space-16) var(--service-gutter);
  grid-template-columns: var(--service-columns);
}

.service-detail-grid > div:first-child {
  position: sticky;
  top: var(--sticky-offset);
}

.service-summary {
  margin: 0;
  padding: var(--space-8);
  border: 0;
  background: var(--brand-soft);
}

.service-summary p {
  font-size: var(--type-lead-size);
  line-height: var(--leading-scale-1-48);
}

.service-content {
  min-width: 0;
  max-width: none;
  font-family: var(--sans);
  font-size: var(--type-body-size);
  line-height: var(--leading-scale-1-72);
}

.service-content h2 {
  max-width: 19ch;
  margin-top: var(--measure-4-5rem);
  font-size: var(--type-service-content-h2-size);
}

.service-content h2:first-child {
  margin-top: 0;
}

.service-reading .reading-list {
  margin-top: 0;
}

.profile-media-hero > img {
  object-position: 70% 52%;
}

.profile-story .scope-grid {
  align-items: start;
}

.profile-story .glen-name {
  color: var(--accent);
  font-weight: var(--weight-medium);
}

.profile-credentials {
  padding-block: var(--section-space);
  background: var(--paper);
}

.profile-credentials ul {
  display: grid;
  gap: var(--space-8) var(--space-20);
  max-width: none;
  grid-template-columns: var(--layout-equal-columns);
}

.profile-credentials li,
.profile-credentials li:nth-child(odd) {
  padding: 0;
  border: 0;
}

.profile-principle {
  background: var(--brand-soft);
}

/* Booking is presented as one product column and one continuous form column. */
.booking-panel {
  display: grid;
  align-items: start;
  gap: 0;
  padding: 0;
  position: relative;
  overflow: visible;
  border: 0;
  grid-template-columns: minmax(var(--measure-20rem), .82fr) minmax(var(--measure-30rem), 1.18fr);
}

.booking-product {
  position: sticky;
  top: var(--anchor-header-height);
  align-self: start;
  display: flex;
  flex-direction: column;
  padding: clamp(var(--space-10), 5vw, var(--space-20));
  background: var(--brand-soft);
}

@media (min-width: 55.001rem) {
  .booking-product {
    min-height: calc(100vh - var(--anchor-header-height));
    min-height: calc(100dvh - var(--anchor-header-height));
  }
}

.booking-product .eyebrow {
  color: var(--graphite);
  font-size: var(--type-caption-size);
}

.booking-product h2 {
  max-width: 11ch;
  font-size: var(--type-booking-product-h2-size);
}

.booking-product .lead {
  max-width: var(--measure-35rem);
  margin-bottom: 0;
  color: var(--graphite-soft);
  font-size: var(--type-lead-size);
}

.booking-benefits {
  display: grid;
  gap: var(--space-4);
  margin: var(--space-8) 0 var(--measure-3-5rem);
  padding: 0;
  list-style: none;
}

.booking-benefits li {
  display: grid;
  align-items: center;
  gap: var(--measure-0-85rem);
  grid-template-columns: var(--space-6) 1fr;
}

.booking-benefits .material-icon {
  width: var(--measure-1-45rem);
  height: var(--measure-1-45rem);
  color: var(--accent);
}

.booking-benefits span {
  font-size: var(--type-body-size);
}

.booking-price {
  display: grid;
  justify-items: start;
  margin-top: auto;
}

.booking-price span {
  color: var(--graphite-soft);
  font-size: var(--type-caption-size);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-scale-0-1em);
  text-transform: uppercase;
}

.booking-price strong {
  margin-block: var(--measure-0-35rem) var(--measure-0-15rem);
  font-size: var(--type-booking-price-size);
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-scale-negative-0-065em);
  line-height: var(--leading-scale-0-95);
}

.booking-price small {
  color: var(--graphite-soft);
  font-size: var(--type-meta-size);
}

.booking-card {
  padding: clamp(var(--space-10), 5vw, var(--space-20));
  border: 0;
  background: var(--white);
}

.booking-choice {
  grid-template-columns: 1fr;
}

.choice-card {
  min-height: auto;
  padding: var(--measure-1-15rem) var(--space-5);
}

.booking-card label:not(.check):not(.choice-card) {
  font-size: var(--type-body-size);
}

.calendar-panel {
  margin-top: var(--space-5);
}

.calendar-panel__heading h3 {
  font-size: var(--type-lead-size);
}

.calendar-selection {
  margin-top: var(--space-6);
  padding-top: var(--space-6);
}

.booking-card .check {
  font-size: var(--type-body-size);
}

.booking-fields {
  max-width: none;
}

.booking-section {
  position: relative;
}

.booking-anchor-alias {
  position: absolute;
  top: 0;
}

#bestill,
.booking-anchor-alias {
  scroll-margin-top: var(--measure-negative-1-5rem);
}

.field-help,
.field-optional,
.upload-status {
  color: var(--graphite-soft);
  line-height: var(--leading-meta);
}

.field-help,
.upload-status {
  font-size: var(--type-meta-size);
}

.field-optional {
  font-size: var(--type-caption-size);
}

.form-upload .field-help {
  margin-block: var(--space-2) var(--space-4);
}

.form-upload input[type="file"] {
  max-width: 100%;
  padding: var(--space-3);
  font-size: var(--type-input-size);
}

.form-upload input::file-selector-button {
  margin-right: var(--space-3);
  padding: var(--measure-0-65rem) var(--measure-0-85rem);
  border: var(--border-width) solid var(--graphite);
  border-radius: var(--measure-0-2rem);
  color: var(--white);
  background: var(--graphite);
  font: inherit;
  cursor: pointer;
}

.upload-files {
  display: grid;
  gap: var(--space-2);
  margin: var(--space-4) 0 0;
  padding: 0;
  list-style: none;
}

.upload-files[hidden] {
  display: none;
}

.upload-files li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  font-size: var(--type-meta-size);
}

.upload-files li > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.upload-files button {
  flex: 0 0 auto;
  min-height: var(--measure-2-75rem);
  padding: var(--space-1) var(--space-2);
  border: 0;
  color: var(--graphite);
  background: transparent;
  text-decoration: underline;
}

.upload-status:empty {
  display: none;
}

.payment-note {
  display: grid;
  gap: var(--measure-0-2rem);
  margin: var(--space-8) 0;
  padding: var(--space-5) 0;
  border: 0;
  border-top: var(--border-width) solid var(--line-strong);
  border-bottom: var(--border-width) solid var(--line-strong);
  color: var(--graphite);
  background: transparent;
  grid-template-columns: 1fr;
}

.payment-note strong,
.payment-note span {
  font-size: var(--type-meta-size);
}

.payment-note span {
  display: block;
  width: auto;
  height: auto;
  place-items: initial;
  border-radius: 0;
  color: var(--graphite-soft);
  background: transparent;
  line-height: var(--leading-meta);
}

/* Keep the search field visually quiet inside its single outer container. */
.smart-search__input input {
  border: 0 !important;
  outline: 0;
  background: transparent !important;
  box-shadow: none !important;
  font-size: var(--type-input-size);
}

/* Earlier list styling added short rules beneath each credential label. */
.credential-list li > span {
  margin: 0;
  padding: 0;
  border: 0;
}

/* Primary form actions use the site's colour and invert on hover. */
.contact-section .form-actions .button,
.booking-card .form-actions .button {
  color: var(--white);
  background: var(--accent);
  border-color: var(--accent);
}

.contact-section .form-actions .button:hover,
.booking-card .form-actions .button:hover {
  color: var(--graphite);
  background: var(--white);
  border-color: var(--white);
}

.booking-card .form-actions .button:hover {
  border-color: var(--graphite);
}

/* Footer navigation is useful on its own and does not depend on personal contact details. */
.site-footer__action {
  display: inline-flex;
  align-items: center;
  gap: var(--space-4);
  color: var(--graphite);
  font-size: var(--type-body-size);
  font-weight: var(--weight-medium);
  text-decoration: none;
}

.site-footer__action span {
  color: var(--accent);
}

.site-footer__middle {
  grid-template-columns: minmax(var(--measure-15rem), .55fr) minmax(0, 1.45fr);
}

.footer-links {
  display: grid;
  gap: var(--space-10) var(--space-16);
  border: 0 !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

html[data-site="takseringshjelpen"] .footer-links,
html[data-site="enovahjelpen"] .footer-links {
  grid-template-columns: var(--layout-equal-columns);
}

.footer-links__group h2 {
  max-width: none;
  margin-bottom: var(--space-4);
  color: var(--graphite-soft);
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

.footer-links__group ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-links__group a {
  display: flex;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--measure-0-65rem) 0;
  border-bottom: var(--border-width) solid var(--line);
  color: var(--graphite);
  text-decoration: none;
}

.footer-links__group a span {
  color: var(--accent);
}

@media (max-width: 68rem) {
  .area-cards {
    grid-template-columns: var(--layout-equal-columns);
  }

  .booking-panel {
    grid-template-columns: minmax(var(--measure-18rem), .72fr) minmax(var(--measure-26rem), 1.28fr);
  }

  .footer-links {
    gap-inline: var(--space-8);
  }
}

@media (max-width: 55rem) {
  .family-services__intro,
  .service-detail-grid,
  .booking-panel,
  .site-footer__middle {
    grid-template-columns: 1fr;
  }

  .service-detail-grid > div:first-child {
    position: static;
  }

  .family-service-list,
  .profile-credentials ul {
    grid-template-columns: 1fr;
  }

  .family-service-list a {
    min-height: var(--measure-28rem);
  }

  .booking-product,
  .booking-card {
    padding: clamp(var(--space-8), 7vw, var(--space-16));
  }

  .footer-links {
    grid-template-columns: var(--layout-equal-columns);
  }

  .site-footer__top {
    align-items: start;
  }
}

@media (max-width: 40rem) {
  h2 {
    font-size: var(--type-section-heading-mobile-size);
  }

  .section-link {
    justify-content: flex-start;
  }

  .area-cards,
  .footer-links,
  html[data-site="takseringshjelpen"] .footer-links,
  html[data-site="enovahjelpen"] .footer-links {
    grid-template-columns: 1fr;
  }

  .family-services__intro h2 {
    font-size: var(--type-family-services-intro-h2-size);
  }

  .family-service-list a {
    min-height: var(--measure-25rem);
  }

  .smart-search__input,
  .smart-search__input input {
    min-height: var(--measure-4-25rem);
  }

  .smart-search__input {
    padding-inline: var(--space-4);
  }

  .service-detail-grid {
    gap: var(--space-12);
  }

  .booking-price strong {
    font-size: var(--type-scale-3-6rem);
  }
}

/* September refinement v4 — larger editorial type, quieter links and compact consent. */
html {
  scroll-padding-top: var(--measure-5-8rem);
}

/* Native anchors and scrollIntoView share one offset, without double-counting headings. */
html[data-site] {
  --sticky-offset: calc(var(--anchor-header-height) + var(--sticky-gap));
  scroll-padding-top: var(--anchor-offset);
}

/* Keep native smooth scrolling, deep links and keyboard navigation. Section
   content lands on the same axis as sticky intros; general anchors retain 24px.
   JS measures each section's actual padding/border as it changes responsively. */
html[data-site] :is(.section[id], .contact-section[id]) {
  --section-anchor-gap: var(--sticky-gap);
  scroll-margin-top: calc(var(--section-anchor-gap) - var(--space-6) - var(--anchor-section-inset, 0px));
}

body {
  font-size: var(--type-body-size);
  letter-spacing: 0;
}

.lead {
  font-size: var(--type-lead-size);
  line-height: var(--leading-lead);
}

.button,
.button--quiet,
.button--small,
.main-nav .button,
.form-actions .button,
.booking-card .form-actions .button,
.pricing-hero__intro .button,
.price-calculator .button {
  font-size: var(--button-font-size);
}

.main-nav > a:not(.button) {
  font-size: var(--nav-font-size);
  font-weight: var(--nav-font-weight);
  line-height: var(--nav-line-height);
}

.main-nav .header-cta,
.site-header:not(.is-scrolled) .main-nav .header-cta,
html[data-site="enovahjelpen"] body.home-template .site-header:not(.is-scrolled) .main-nav .header-cta,
body.service-template .site-header:not(.is-scrolled) .main-nav .header-cta,
body.archive-template .site-header:not(.is-scrolled) .main-nav .header-cta,
body.article-template .site-header:not(.is-scrolled) .main-nav .header-cta,
body.profile-template .site-header:not(.is-scrolled) .main-nav .header-cta,
body.legal-template .site-header:not(.is-scrolled) .main-nav .header-cta,
body.result-template .site-header:not(.is-scrolled) .main-nav .header-cta {
  color: inherit;
  border-color: currentColor;
  background: transparent;
}

.site-header.is-scrolled .main-nav .header-cta:hover,
body:not(.home-template) .site-header:not(.is-scrolled) .main-nav .header-cta:hover {
  color: var(--white);
  border-color: var(--graphite);
  background: var(--graphite);
}

html[data-site="termobolig"] body.home-template .site-header:not(.is-scrolled) .main-nav .header-cta:hover,
html[data-site="takseringshjelpen"] body.home-template .site-header:not(.is-scrolled) .main-nav .header-cta:hover,
html[data-site="enovahjelpen"] body.home-template .site-header:not(.is-scrolled) .main-nav .header-cta:hover,
body.local-template .site-header:not(.is-scrolled) .main-nav .header-cta:hover,
body.service-template .site-header:not(.is-scrolled) .main-nav .header-cta:hover,
body.profile-template .site-header:not(.is-scrolled) .main-nav .header-cta:hover {
  color: var(--graphite);
  border-color: var(--white);
  background: var(--white);
}

.chevron-icon,
.card-chevron {
  width: var(--measure-1-35rem);
  height: var(--measure-1-35rem);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.chevron-icon--down {
  transform: rotate(90deg);
}

.service-row > .chevron-icon {
  color: var(--accent);
  transition: transform var(--duration-fast) ease;
}

.service-row:hover > .chevron-icon {
  transform: translateX(var(--space-1));
}

.section.section--glen {
  padding-block: 0;
}

.glen-copy h2 {
  max-width: 15ch;
  font-size: var(--type-expert-heading-size);
}

.glen-copy .lead {
  max-width: var(--measure-39rem);
  color: color-mix(in srgb, var(--white) 82%, transparent);
  font-size: var(--type-lead-size);
}

.credential-list {
  gap: var(--measure-1-15rem);
}

.credential-list li {
  gap: var(--space-4);
  color: var(--white);
  font-size: var(--type-body-size);
  line-height: var(--leading-scale-1-4);
}

.credential-list li > span {
  color: var(--white);
  font-size: var(--type-body-size);
}

.credential-list .material-icon {
  width: var(--measure-1-7rem);
  height: var(--measure-1-7rem);
  padding: 0;
  border-radius: 0;
  color: color-mix(in srgb, var(--white) 82%, transparent);
  background: transparent;
}

.glen-copy > .text-link {
  width: fit-content;
  font-size: var(--type-body-size);
  text-decoration: underline;
  text-decoration-thickness: var(--border-width);
  text-underline-offset: .3em;
}

.reassurance-section__inner p,
.reassurance-section__inner p.lead {
  color: var(--graphite);
  font-size: var(--type-lead-size);
  line-height: var(--leading-lead);
}

.selected-reading .editorial-heading {
  max-width: none;
  margin-inline: auto;
  text-align: left;
}

.selected-reading .editorial-heading > p:last-child {
  font-size: var(--type-lead-size);
}

.reading-list article {
  position: relative;
  min-height: var(--measure-22rem);
  padding: 0;
}

.reading-card-link {
  display: flex;
  height: 100%;
  flex-direction: column;
  padding: var(--space-8);
  color: var(--graphite);
  text-decoration: none;
}

.reading-card-link > p {
  max-width: var(--measure-28rem);
  margin: var(--space-5) 0 0;
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
  font-weight: var(--weight-regular);
  letter-spacing: 0;
  line-height: var(--leading-card-copy);
  text-transform: none;
}

.reading-card-link:hover {
  background: var(--brand-soft);
}

.reading-card-cta {
  width: fit-content;
  margin-top: auto;
  padding-top: var(--space-8);
  color: var(--graphite);
  font-size: var(--type-body-size);
  font-weight: var(--weight-control);
  text-decoration: underline;
  text-decoration-thickness: var(--border-width);
  text-underline-offset: .3em;
}

.section-link {
  justify-content: flex-start;
}

.section-link .text-link {
  font-size: var(--type-body-size);
  text-decoration: underline;
  text-decoration-thickness: var(--border-width);
  text-underline-offset: .3em;
}

.area-cards {
  gap: 0;
  row-gap: 0;
}

.area-cards li {
  margin: 0 !important;
}

.area-cards a {
  min-height: var(--measure-11-5rem);
  grid-template-columns: 1fr;
}

.area-cards strong {
  font-size: var(--type-area-cards-strong-size);
  font-weight: var(--weight-medium);
}

.area-cards span {
  padding-right: 0;
  line-height: var(--leading-meta);
}

.section--faq {
  background: var(--paper-light);
}

/* Separate FAQ from the light video-consultation section when they are adjacent. */
.section--faq:has(+ .digital-prices) {
  background: var(--paper-deep);
}

html[data-site="termobolig"] body.service-template .section--faq {
  background: var(--white);
}

.faq-intro > p:last-child {
  color: var(--graphite);
  font-size: var(--type-lead-size);
  line-height: var(--leading-lead);
}

.faq summary {
  font-size: var(--type-body-size);
  font-weight: var(--weight-control);
}

.faq details > div {
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
  line-height: var(--leading-scale-1-65);
}

/* Shared editorial modules use the homepage's central 50/50 axis on every
   family template. Service lists intentionally keep their wider column. */
@media (max-width: 55rem) {
  html[data-site] :is(.reassurance-section__inner, .pricing-terms__grid, .local-context__grid, .split-heading) {
    row-gap: var(--measure-1-55rem);
  }

  html[data-site] :is(.reassurance-section__inner, .pricing-terms__grid, .local-context__grid, .split-heading) > h2,
  html[data-site] :is(.local-context__grid, .split-heading) > div:first-child > h2 {
    margin-bottom: 0;
  }
}

@media (min-width: 55.001rem) {
  html[data-site] .reassurance-section__inner,
  html[data-site] .faq-layout,
  html[data-site] .local-context__grid {
    column-gap: 0;
    grid-template-columns: var(--layout-equal-columns);
  }

  html[data-site] .faq-intro,
  html[data-site] .local-context__heading {
    min-width: 0;
    padding-right: var(--layout-column-inset);
  }
}

.family-services__intro {
  display: block;
  max-width: var(--measure-54rem);
}

.family-services__intro h2 {
  margin-bottom: var(--measure-1-6rem);
  font-size: var(--type-family-services-heading-size);
}

.family-services__intro p {
  max-width: var(--measure-44rem);
  font-size: var(--type-lead-size);
  line-height: var(--leading-body);
}

.family-service-list a {
  grid-template-rows: var(--measure-22rem) auto auto 1fr auto;
  transition: background-color var(--duration-normal) ease, border-color var(--duration-normal) ease, transform var(--duration-normal) ease;
}

.family-service-list img {
  min-height: 0;
  transition: transform var(--duration-slow) ease;
}

.family-service-list a:hover {
  border-color: color-mix(in srgb, var(--white) 55%, transparent);
  background: color-mix(in srgb, var(--white) 5.5%, transparent);
  transform: translateY(var(--measure-negative-0-2rem));
}

.family-service-list a:hover img {
  transform: scale(1.015);
}

.family-service-list span {
  font-size: var(--type-caption-size);
}

.family-service-list strong {
  font-size: var(--type-family-service-list-strong-size);
  font-weight: var(--weight-medium);
  line-height: var(--leading-eyebrow);
}

.family-service-list p {
  max-width: var(--measure-36rem);
  margin: 0;
  padding-inline: var(--measure-1-6rem);
  color: color-mix(in srgb, var(--white) 74%, transparent);
  font-size: var(--type-body-size);
  line-height: var(--leading-lead);
}

.family-service-list b {
  margin-top: var(--space-2);
  font-size: var(--type-body-size);
  font-weight: var(--weight-medium);
}

.contact-section:not(.booking-section) {
  color: var(--graphite);
  background: var(--paper-light);
}

.contact-section:not(.booking-section) .contact-panel {
  gap: var(--space-16) clamp(var(--space-20), 10vw, var(--measure-10rem));
  padding: 0;
  border-top: 0;
  color: var(--graphite);
  background: transparent;
}

.contact-section:not(.booking-section) .contact-copy h2 {
  max-width: 12ch;
  color: var(--graphite);
}

.contact-section:not(.booking-section) .contact-copy > p,
.contact-section:not(.booking-section) .form-card label:not(.check),
.contact-section:not(.booking-section) .form-card .check,
.contact-section:not(.booking-section) .form-card .form-status {
  color: var(--graphite-soft);
}

.contact-section:not(.booking-section) .contact-direct a,
.contact-section:not(.booking-section) .form-card .check a {
  color: var(--graphite);
}

.contact-section:not(.booking-section) .form-card input:not([type="checkbox"]):not([type="radio"]),
.contact-section:not(.booking-section) .form-card select,
.contact-section:not(.booking-section) .form-card textarea {
  border-color: var(--line-strong);
  background-color: var(--white);
}

.contact-copy > .lead {
  font-size: var(--type-lead-size);
  line-height: var(--leading-lead);
}

.form-card label:not(.check),
.booking-card label:not(.check):not(.choice-card),
.calendar-panel > label,
.booking-choice legend {
  font-size: var(--type-body-size);
  font-weight: var(--weight-medium);
}

.site-footer__top {
  grid-template-columns: 1fr auto;
}

.footer-links__group h2 {
  font-size: var(--type-caption-size);
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-label);
}

.footer-links__group a {
  align-items: center;
  font-size: var(--type-body-size);
}

.footer-links__group .chevron-icon {
  flex: 0 0 auto;
  color: var(--accent);
}

.consent-backdrop[hidden],
.consent[hidden] {
  display: none;
}

.consent-backdrop {
  display: none;
}

.consent {
  outline: none;
  position: fixed;
  z-index: 300;
  right: auto;
  bottom: var(--space-8);
  left: var(--space-8);
  display: block;
  width: min(calc(100% - var(--space-16)), var(--measure-34rem));
  margin: 0;
  padding: var(--space-8);
  border: var(--border-width) solid color-mix(in srgb, var(--white) 40%, transparent);
  border-radius: var(--space-3);
  color: var(--white);
  background: var(--graphite-deep);
  box-shadow: 0 var(--measure-24px) var(--measure-70px) color-mix(in srgb, var(--graphite-deep) 24%, transparent);
}

.consent h2 {
  max-width: none;
  margin: 0 0 var(--measure-0-8rem);
  color: var(--white);
  font-size: var(--type-dialog-heading-size);
  line-height: var(--leading-control);
}

.consent p,
.consent .consent__detail,
.consent .consent__status {
  margin: 0;
  color: color-mix(in srgb, var(--white) 82%, transparent);
  line-height: var(--leading-meta);
}

.consent p {
  font-size: var(--type-body-size);
}

.consent .consent__detail,
.consent .consent__status {
  font-size: var(--type-caption-size);
}

.consent .consent__detail,
.consent .consent__status {
  margin-top: var(--space-3);
  font-size: var(--type-caption-size);
}

.consent a {
  color: var(--white);
  text-underline-offset: .2em;
}

.consent__actions {
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-6);
  grid-template-columns: var(--layout-equal-columns);
}

.consent .button {
  width: 100%;
  min-height: var(--measure-3-6rem);
  padding: var(--measure-0-85rem) var(--space-4);
  color: var(--graphite);
  border-color: var(--accent);
  background: var(--accent);
  font-size: var(--button-font-size);
}

.consent .button--quiet {
  color: var(--graphite);
  border-color: var(--white);
  background: var(--white);
}

@media (max-width: 55rem) {
  .glen-grid,
  .contact-section:not(.booking-section) .contact-panel {
    grid-template-columns: 1fr;
  }

  .glen-grid {
    width: 100%;
  }

  .glen-media {
    min-height: var(--measure-34rem);
  }

  .glen-copy {
    width: var(--shell);
    margin-inline: auto;
    padding: clamp(var(--space-12), 9vw, var(--space-20)) 0;
  }

  .family-services__intro {
    display: block;
  }

  .consent-backdrop {
    position: fixed;
    z-index: 299;
    inset: 0;
    display: block;
    background: color-mix(in srgb, var(--graphite-deep) 48%, transparent);
    backdrop-filter: blur(var(--focus-width));
  }

  body.consent-open {
    overflow: hidden;
  }

  .consent {
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: none;
    padding: var(--measure-1-75rem) var(--mobile-page-gutter) calc(var(--space-6) + env(safe-area-inset-bottom));
    border: 0;
    border-radius: var(--space-3) var(--space-3) 0 0;
  }
}

@media (max-width: 40rem) {
  .main-nav > a:not(.button) {
    font-size: var(--nav-font-size);
  }

  .reading-list article {
    min-height: var(--measure-18rem);
  }

  .family-service-list a {
    grid-template-rows: var(--measure-15rem) auto auto 1fr auto;
  }

  html[data-site="termobolig"] .footer-links {
    grid-template-columns: 1fr;
  }

  .consent h2 {
    font-size: var(--type-dialog-heading-mobile-size);
  }

  .consent p {
    font-size: var(--type-body-size);
  }

  .consent__actions {
    grid-template-columns: 1fr;
  }
}

/* September refinement v5 — calmer pricing hierarchy and one service per row. */
.pricing-hero {
  padding-block: var(--section-space);
  background: var(--paper);
}

.pricing-hero__inner {
  display: block;
}

.pricing-hero__inner .eyebrow {
  margin-bottom: var(--space-6);
  color: var(--graphite-soft);
  font-size: var(--type-caption-size);
}

.pricing-hero__inner h1 {
  max-width: 13ch;
  margin: 0;
  font-size: var(--type-pricing-title-size);
}

.pricing-hero__inner > .lead {
  max-width: var(--measure-52rem);
  margin: var(--space-8) 0 0;
  color: var(--graphite-soft);
  font-size: var(--hero-lead-size);
}

.pricing-hero__inner .hero__actions {
  margin-block: var(--space-10) var(--measure-3-25rem);
}

.pricing-hero__secondary {
  color: var(--graphite);
  font-size: var(--type-body-size);
  text-decoration: underline;
  text-decoration-thickness: var(--border-width);
  text-underline-offset: .3em;
}

.pricing-hero__assurance {
  max-width: var(--measure-52rem);
  margin: 0;
  padding-top: var(--measure-1-6rem);
  border-top: var(--border-width) solid var(--line-strong);
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
  line-height: var(--leading-lead);
}

.pricing-calculator-section {
  color: var(--graphite);
  background: var(--paper-deep);
}

.pricing-calculator-copy h2 {
  color: var(--graphite);
}

.pricing-calculator-copy .eyebrow {
  color: var(--accent);
}

.pricing-calculator-copy .lead {
  color: var(--graphite);
  font-size: var(--type-lead-size);
}

.calculator-context {
  margin-top: var(--space-6);
  padding-top: 0;
  border-top: 0;
}

.price-calculator {
  border-color: var(--line-strong);
  border-radius: var(--measure-0-35rem);
  background: var(--paper-light);
}

.price-calculator label,
.price-extras legend {
  margin-bottom: var(--measure-0-7rem);
  font-size: var(--type-body-size);
  font-weight: var(--weight-heading);
}

.price-calculator select,
.price-calculator input[type="number"] {
  min-height: var(--space-16);
  font-size: var(--type-input-size);
}

.price-calculator__field > p {
  margin-top: var(--measure-0-9rem);
  font-size: var(--type-body-size);
  line-height: var(--leading-meta);
}

.price-control__heading output {
  font-size: var(--type-meta-size);
  font-weight: var(--weight-scale-650);
}

.price-control__limits {
  font-size: var(--type-caption-size);
}

.price-extras {
  gap: 0;
}

.price-extra-choice {
  padding: var(--measure-1-1rem) 0;
  border-bottom: var(--border-width) solid var(--line);
}

.price-extra-choice input[type="checkbox"] {
  width: var(--space-5);
  height: var(--space-5);
}

.price-extra-choice strong {
  font-size: var(--type-body-size);
}

.price-calculator__result {
  margin-top: var(--space-10);
  padding: var(--space-8) 0;
  border-block: var(--border-width) solid var(--line-strong);
  border-radius: 0;
  background: transparent;
}

.price-calculator__result span {
  font-size: var(--type-caption-size);
}

.price-calculator__result strong {
  font-size: var(--type-price-size);
}

.price-calculator__result small {
  font-size: var(--type-meta-size);
}

.price-calculator__breakdown h3 {
  font-size: var(--type-calculator-breakdown-size);
}

.price-calculator__breakdown li {
  padding-block: var(--measure-0-85rem);
  font-size: var(--type-meta-size);
}

.price-calculator__note {
  font-size: var(--type-meta-size);
  line-height: var(--leading-lead);
}

.price-directory > .editorial-heading {
  max-width: none;
  margin-inline: auto;
  margin-bottom: clamp(var(--space-16), 7vw, var(--space-24));
  text-align: left;
}

.price-directory > .editorial-heading > p:last-child {
  font-size: var(--type-lead-size);
}

.price-directory__label h3 {
  font-size: var(--type-card-heading-size);
}

.price-card-grid {
  border-left: 0;
  grid-template-columns: 1fr;
}

.price-card {
  display: grid;
  min-height: 0;
  gap: var(--measure-1-75rem) clamp(var(--space-12), 7vw, var(--space-24));
  padding: clamp(var(--space-10), 5vw, var(--space-16)) 0;
  border-right: 0;
  grid-template-columns: minmax(var(--measure-16rem), .72fr) minmax(0, 1.28fr);
}

.price-card__heading {
  flex: none;
}

.price-card h3 {
  margin-bottom: var(--space-4);
}

.price-card__heading p {
  max-width: var(--measure-31rem);
  font-size: var(--type-body-size);
  line-height: var(--leading-meta);
}

.price-card ul {
  margin-top: 0;
}

.price-card li {
  padding-block: var(--measure-0-95rem);
  font-size: var(--type-body-size);
}

.price-card li strong {
  font-size: var(--type-body-size);
}

.price-card__note {
  max-width: var(--measure-39rem);
  margin: 0;
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
  line-height: var(--leading-lead);
  grid-column: 2;
}

.digital-price-card > span {
  font-size: var(--type-body-size);
  letter-spacing: var(--tracking-body);
  text-transform: none;
}

.digital-price-card small {
  font-size: var(--type-meta-size);
}

@media (max-width: 68rem) {
  .pricing-calculator-layout,
  .price-directory__group {
    grid-template-columns: 1fr;
  }

  .pricing-calculator-copy,
  .price-directory__label {
    position: static;
  }

  .price-directory__label h3 {
    max-width: none;
  }
}

@media (max-width: 55rem) {
  .price-card {
    gap: var(--space-6);
    grid-template-columns: 1fr;
  }

  .price-card__note {
    grid-column: 1;
  }
}

@media (max-width: 40rem) {
  .pricing-hero {
    padding-block: var(--measure-4-5rem) var(--measure-5-5rem);
  }

  .pricing-hero__inner h1 {
    font-size: var(--type-pricing-title-mobile-size);
  }

  .price-calculator__controls,
  .digital-price-grid {
    grid-template-columns: 1fr;
  }
}

/* September refinement v6 — final cascade overrides. */
.site-header:not(.is-ready),
.site-header:not(.is-ready) * {
  transition: none !important;
}

.main-nav .header-cta,
.site-header.is-scrolled .main-nav .header-cta,
body:not(.home-template) .site-header:not(.is-scrolled) .main-nav .header-cta,
.main-nav .header-cta:hover,
.site-header.is-scrolled .main-nav .header-cta:hover,
body:not(.home-template) .site-header:not(.is-scrolled) .main-nav .header-cta:hover {
  color: inherit;
  border-color: currentColor;
  background: transparent;
}

.main-nav .header-cta {
  transition: opacity var(--duration-fast) ease;
}

.main-nav .header-cta:hover {
  opacity: .66;
}

.service-row {
  align-items: start;
  grid-template-columns: minmax(var(--measure-12rem), .8fr) minmax(var(--measure-15rem), 1.2fr);
}

.service-row p {
  font-size: var(--type-body-size);
  line-height: var(--leading-lead);
}

.area-cards a {
  align-content: start;
  gap: var(--measure-0-45rem);
  grid-template-rows: auto auto;
}

.area-cards span {
  align-self: start;
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
  line-height: var(--leading-help);
}

.digital-prices {
  background: var(--paper-light);
}

.digital-prices .editorial-heading {
  max-width: none;
  margin-bottom: clamp(var(--space-12), 5vw, var(--space-16));
  text-align: left;
}

.digital-prices .editorial-heading > p:last-child {
  max-width: var(--measure-49rem);
  color: var(--graphite-soft);
  font-size: var(--type-lead-size);
}

.digital-price-grid {
  margin-top: 0;
}

.digital-price-card {
  min-height: var(--measure-22rem);
  padding: clamp(var(--space-8), 4vw, var(--space-12));
  transition: background-color var(--duration-fast) ease;
}

.digital-price-card:hover,
.digital-price-card:focus-visible {
  background: var(--brand-soft);
}

.digital-price-card > span,
.digital-price-card small {

  letter-spacing: 0;
  text-transform: none;
}

.digital-price-card > span {
  font-size: var(--type-body-size);
}

.digital-price-card small {
  font-size: var(--type-meta-size);
}

.digital-price-card > span {
  font-weight: var(--weight-medium);
  font-size: var(--type-body-size);
  letter-spacing: 0;
}

.digital-price-card h3 {
  margin-block: var(--measure-1-15rem) var(--measure-0-8rem);
  font-size: var(--type-digital-price-card-h3-size);
}

.digital-price-card p {
  max-width: var(--measure-36rem);
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
  line-height: var(--leading-lead);
}

.digital-price-card strong {
  font-size: var(--type-price-size);
}

.digital-price-card small {
  display: block;
  color: var(--graphite-soft);
}

.digital-price-card__link {
  color: var(--graphite);
  text-decoration: underline;
  text-decoration-thickness: var(--border-width);
  text-underline-offset: .25em;
}

html[data-site="termobolig"] .site-footer {
  background: var(--paper-deep);
}

html[data-site="termobolig"] .footer-links {
  gap: var(--space-12) clamp(var(--space-12), 6vw, var(--space-24));
  grid-template-columns: minmax(0, 2fr) minmax(var(--measure-13rem), 1fr);
}

.footer-links__columns {
  display: grid;
  gap: 0 clamp(var(--space-10), 5vw, var(--space-20));
  grid-template-columns: var(--layout-equal-columns);
}

.site-footer__contact {
  gap: var(--measure-0-45rem);
}

.site-footer__contact a {
  font-size: var(--type-body-size);
  text-decoration: underline;
  text-decoration-thickness: var(--border-width);
  text-underline-offset: .24em;
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-scale-negative-0-03em);
}

.pricing-hero__inner .hero__actions {
  margin-bottom: 0;
}

.pricing-calculator-copy .eyebrow {
  font-size: var(--type-caption-size);
}

.calculator-context {
  max-width: var(--measure-36rem);
  color: var(--graphite);
  font-size: var(--type-lead-size);
  line-height: var(--leading-lead);
}

.price-calculator {
  padding: clamp(var(--space-8), 4vw, var(--measure-3-25rem));
  border: 0;
}

.price-calculator select,
.price-calculator input[type="text"] {
  min-height: var(--space-16);
  border-color: var(--line-strong);
  border-radius: var(--measure-0-2rem);
  background: var(--white);
  font-size: var(--type-input-size);
}

.price-calculator__controls {
  gap: var(--measure-1-75rem);
  margin-top: var(--measure-2-25rem);
  padding-top: 0;
  border-top: 0;
}

.price-calculator[data-empty="true"] :is(.price-calculator__controls, .price-calculator__result, .price-calculator__breakdown, .price-calculator__note, .price-calculator__cta-note, [data-price-cta]) {
  display: none;
}

.price-area-input input[type="text"] {
  width: var(--measure-4-5rem);
  min-height: var(--measure-2-9rem);
  padding: var(--measure-0-45rem) var(--measure-0-2rem) var(--measure-0-45rem) var(--measure-0-8rem);
  border: 0;
  background: transparent;
  text-align: right;
}

.price-area-input span {
  padding-right: var(--space-3);
}

.quantity-stepper {
  display: grid;
  width: min(100%, var(--measure-14rem));
  overflow: hidden;
  border: var(--border-width) solid var(--line-strong);
  border-radius: var(--measure-0-2rem);
  background: var(--white);
  grid-template-columns: var(--measure-3-5rem) minmax(var(--measure-3-5rem), 1fr) var(--measure-3-5rem);
}

.quantity-stepper button,
.quantity-stepper input[type="text"] {
  width: 100%;
  min-height: var(--measure-3-6rem);
  padding: var(--measure-0-4rem);
  border: 0;
  border-radius: 0;
  background: transparent;

  text-align: center;
}

.quantity-stepper button {
  font-size: var(--type-reading-size);
}

.quantity-stepper input[type="text"] {
  font-size: var(--type-input-size);
}

.quantity-stepper button {
  cursor: pointer;
}

.quantity-stepper button:first-child {
  border-right: var(--border-width) solid var(--line);
}

.quantity-stepper button:last-child {
  border-left: var(--border-width) solid var(--line);
}

.quantity-stepper button:hover:not(:disabled) {
  background: var(--brand-soft);
}

.quantity-stepper button:disabled,
.quantity-stepper input:disabled {
  cursor: not-allowed;
  opacity: .38;
}

.quantity-stepper--compact {
  width: var(--measure-11rem);
  grid-template-columns: var(--space-12) 1fr var(--space-12);
}

.price-extras {
  border-top: 0;
}

.price-extra-choice {
  border: 0;
  border-radius: 0;
}

.price-extra-choice + .price-extra-choice {
  border-top: var(--border-width) solid var(--line);
}

.price-extra-choice:has(input[type="checkbox"]:checked) {
  border-color: var(--line);
  background: transparent;
}

.price-extra-choice small {
  font-size: var(--type-meta-size);
  font-weight: var(--weight-regular);
  line-height: var(--leading-help);
}

.price-calculator__result {
  border: 0;
  border-top: var(--border-width) solid var(--line);
}

.price-calculator__breakdown ul {
  border-top: 0;
}

.price-calculator__breakdown li {
  border-bottom: 0;
  font-size: var(--type-meta-size);
}

.price-calculator__breakdown li + li {
  border-top: var(--border-width) solid var(--line);
}

.price-calculator > [data-price-cta] {
  color: var(--white);
  border-color: var(--graphite);
  background: var(--graphite);
  font-size: var(--type-body-size);
}

.price-calculator > [data-price-cta]:hover {
  color: var(--white);
  border-color: var(--accent);
  background: var(--accent);
}

.price-calculator__cta-note {
  max-width: var(--measure-36rem);
  margin: var(--space-4) 0 0;
  color: var(--graphite-soft);
  font-size: var(--type-caption-size);
  line-height: var(--leading-lead);
}

.price-directory > .editorial-heading {
  padding-top: 0;
  border-top: 0;
}

.price-directory__group {
  gap: clamp(var(--space-12), 6vw, var(--space-24));
  padding-block: var(--section-space);
  border-top: 0;
  grid-template-columns: minmax(var(--measure-17rem), .48fr) minmax(0, 1.52fr);
}

.price-directory__group + .price-directory__group {
  border-top: var(--border-width) solid var(--line);
}

.price-directory__label h3 {
  max-width: none;
  font-size: var(--type-digital-price-card-h3-size);
}

.price-card-grid {
  border: 0;
}

.price-card {
  border: 0;
}

.price-card:first-child {
  padding-top: 0;
}

.price-card:last-child {
  padding-bottom: 0;
}

.price-card + .price-card {
  border-top: var(--border-width) solid var(--line);
}

.price-card h3 {
  font-size: var(--type-price-card-h3-size);
}

.price-card ul {
  border-top: 0;
}

.price-card li {
  border-bottom: 0;
  font-size: var(--type-body-size);
}

.price-card li + li {
  border-top: var(--border-width) solid var(--line);
}

.pricing-terms {
  border-top: 0;
}

.pricing-template .pricing-terms__grid,
.pricing-template .contact-panel {
  gap: var(--space-16) clamp(var(--space-20), 10vw, var(--measure-10rem));
  grid-template-columns: minmax(var(--measure-15rem), .72fr) minmax(var(--measure-25rem), 1.1fr);
}

.pricing-terms__grid > div > p,
.pricing-terms__grid > div li {
  color: var(--graphite);
  font-size: var(--type-body-size);
  line-height: var(--leading-lead);
}

.pricing-terms__grid > div > p {
  font-size: var(--type-lead-size);
}


small,
.offer-price small,
.payment-note p {
  font-size: var(--type-meta-size);
}

.eyebrow,
.step-label,
.wordmark__parent,
.price-control__limits,
.price-calculator__result span,
.site-footer__meta,
.footer-links__group h2,
.consent .consent__detail,
.consent .consent__status,
.media-hero__price span,
.offer-price span,
.choice-card small {
  font-size: var(--type-caption-size);
}

@media (max-width: 68rem) {
  .pricing-template .pricing-terms__grid,
  .pricing-template .contact-panel,
  .price-directory__group {
    grid-template-columns: 1fr;
  }

  .price-directory__label {
    position: static;
  }
}

@media (max-width: 55rem) {
  html[data-site="termobolig"] .footer-links {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 40rem) {
  .service-row,
  .price-extra-choice {
    grid-template-columns: 1fr;
  }

  .footer-links__columns {
    gap: 0;
    grid-template-columns: 1fr;
  }

  .price-calculator {
    padding-inline: var(--measure-1-35rem);
  }
}

/* Price groups collapse only on mobile; the original content remains available
   without JavaScript and the full directory stays visible on desktop/print. */
.price-card-grid[hidden] {
  display: none;
}

@media (max-width: 55rem) {
  .price-directory__group.is-accordion {
    gap: 0;
    padding-block: 0;
    border-top: var(--border-width) solid var(--line);
  }

  .price-directory__group.is-accordion .price-directory__label h3 {
    margin: 0;
  }

  html[data-site] .price-directory__toggle {
    position: relative;
    display: block;
    width: 100%;
    min-height: var(--space-12);
    margin: 0;
    padding: var(--space-6) var(--space-10) var(--space-6) 0;
    border: 0;
    border-radius: 0;
    color: inherit;
    background: transparent;
    font: inherit;
    letter-spacing: inherit;
    text-align: left;
    cursor: pointer;
  }

  .price-directory__toggle::before,
  .price-directory__toggle::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    width: var(--space-5);
    height: var(--border-width);
    background: currentColor;
  }

  .price-directory__toggle::after {
    transform: rotate(90deg);
  }

  .price-directory__toggle[aria-expanded="true"]::after {
    display: none;
  }

  html[data-site] .price-directory__toggle:focus-visible {
    outline: var(--focus-width) solid var(--accent);
    outline-offset: var(--accent-border-width);
  }

  .price-directory__group.is-accordion .price-card-grid {
    padding-bottom: var(--space-8);
  }
}

@media print {
  .price-directory .price-card-grid[hidden] {
    display: grid;
  }

  .price-directory__toggle::before,
  .price-directory__toggle::after {
    display: none;
  }
}/* Booking refinement — one monthly calendar and readable form typography. */


.booking-card label:not(.check):not(.choice-card),
.booking-card .choice-card b {
  font-size: var(--type-body-size);
}

.calendar-panel__heading h3,
.calendar-toolbar h4,
.calendar-selection h4 {
  font-size: var(--type-body-size);
}


.booking-card .choice-card small {
  font-size: var(--type-caption-size);
}

.booking-card .payment-note strong,
.booking-card .payment-note span,
.calendar-day__number,
.slot-grid button,
.slot-status,
.calendar-error {
  font-size: var(--type-meta-size);
}

.booking-card .calendar-weekdays span {
  font-size: var(--type-caption-size);
}

.booking-card .calendar-day__availability {
  font-size: 0;
}

@media (max-width: 55rem) {
  .booking-product {
    position: static;
  }

  .booking-card .calendar-toolbar h4 {
    font-size: var(--type-body-size);
  }
}

@media (min-width: 68.01rem) {
  .price-directory__group {
    grid-template-columns: minmax(var(--measure-20rem), .54fr) minmax(0, 1.46fr);
  }

  .price-directory__label h3 {
    font-size: var(--type-price-directory-label-h3-size);
  }
}/* Readable floor for supporting copy: no visible type below 14 px. */


.section-label,
.brand-line,
.wordmark__symbol,
.service-pick > span,
.reading-list article > p,
.profile-hero figcaption,
.family-service-list span {
  font-size: var(--type-caption-size);
}

.offer-panel__list li span,
.offer-panel__list > p,
.topic-list a > span,
.topic-list a > b,
.profile-credentials span,
.nearby-links > span {
  font-size: var(--type-body-size);
}

.price-directory__label span,
.site-footer .network-card small {
  font-size: var(--type-meta-size);
}

/* September refinement v8 — editorial articles, archive and expert profile. */
html[data-site] body.archive-template main,
html[data-site] body.profile-template main {
  background: var(--paper-light);
}

html[data-site] body.profile-template main {
  padding-top: 0;
}

html[data-site] body.article-template main {
  background: var(--paper);
}

html[data-site] body.archive-template .breadcrumbs,
html[data-site] body.article-template .breadcrumbs,
html[data-site] body.profile-template .breadcrumbs {
  margin-bottom: clamp(var(--space-10), 5vw, var(--measure-4-5rem));
  font-size: var(--type-meta-size);
}

/* The archive is a calm editorial front page, not a wall of bordered cards. */
.archive-hero--editorial {
  padding-block: var(--section-space);
  background: var(--paper);
}

.archive-hero--editorial .archive-hero__grid {
  position: relative;
  display: grid;
  align-items: end;
  gap: var(--layout-gap);
  grid-template-columns: minmax(var(--measure-22rem), .82fr) minmax(var(--measure-30rem), 1.18fr);
}

.archive-hero--editorial .archive-hero__copy {
  padding-bottom: clamp(var(--space-2), 2vw, var(--space-8));
}

.archive-hero--editorial .eyebrow,
.article-header .eyebrow,
.profile-intro .eyebrow,
.archive-article-card__meta {
  font-size: var(--type-caption-size);
}

.archive-hero--editorial h1 {
  max-width: 10ch;
  margin-bottom: var(--space-8);
  font-size: var(--type-archive-hero-editorial-h1-size);
}

.archive-hero__lead {
  max-width: var(--measure-31rem);
  margin: 0;
  color: var(--graphite-soft);
  font-size: var(--hero-lead-size);
  line-height: var(--leading-lead);
}

.archive-hero__media {
  margin: 0;
  overflow: hidden;
  background: var(--paper-deep);
  aspect-ratio: 16 / 10;
}

.archive-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.article-archive--editorial {
  padding-block: var(--section-space);
  background: var(--paper-light);
}

.article-archive__heading {
  display: grid;
  align-items: end;
  gap: var(--space-8) var(--space-24);
  margin-bottom: var(--space-10);
  grid-template-columns: minmax(0, 1fr) minmax(var(--measure-18rem), .7fr);
}

.article-archive__heading h2 {
  max-width: none;
  margin: 0;
  font-size: var(--type-article-archive-heading-h2-size);
}

.article-archive__heading p {
  max-width: var(--measure-31rem);
  margin: 0;
  color: var(--graphite-soft);
  font-size: var(--type-lead-size);
  line-height: var(--leading-lead);
}

html[data-site] .filter-bar {
  gap: var(--space-3) var(--space-8);
  padding: var(--space-4) 0;
}

html[data-site] .filter-bar button {
  min-height: var(--measure-2-75rem);
  padding: var(--measure-0-55rem) 0;
  border: 0;
  border-radius: 0;
  color: var(--graphite);
  background: transparent;
  font-size: var(--type-body-size);
  font-weight: var(--nav-font-weight);
  line-height: var(--nav-line-height);
}

html[data-site] .filter-bar .filter-label {
  display: inline-flex;
  align-items: baseline;
  gap: var(--measure-0-45rem);
  color: inherit;
  font: inherit;
}

html[data-site] .filter-bar .filter-count {
  color: inherit;
  font: inherit;
}

html[data-site] .filter-bar button:hover,
html[data-site] .filter-bar button.is-active,
html[data-site] .filter-bar button[aria-pressed="true"] {
  color: var(--graphite);
  background: transparent;
}

html[data-site] .filter-bar button:focus-visible {
  outline-offset: var(--measure-negative-2px);
}

@media (max-width: 55rem) {
  html[data-site] .filter-bar {
    width: auto;
    max-width: none;
    margin-left: 0;
    margin-right: calc(-1 * var(--mobile-page-gutter));
    padding-inline: 0 var(--mobile-page-gutter);
  }

  html[data-site] .filter-bar.shell {
    width: calc(100% - var(--mobile-page-gutter));
    margin-left: var(--mobile-page-gutter);
    margin-right: 0;
  }

  html[data-site] .filter-bar button {
    font-size: var(--type-body-size);
  }
}

.article-archive--editorial .article-grid {
  gap: clamp(var(--space-16), 7vw, var(--measure-7rem)) clamp(var(--space-8), 4vw, var(--space-16));
  border: 0;
  grid-template-columns: var(--layout-equal-columns);
}

.archive-article-card,
.archive-article-card__link {
  display: block;
  height: 100%;
}

.archive-article-card__link {
  color: var(--graphite);
  text-decoration: none;
}

.archive-article-card__media {
  margin: 0 0 var(--measure-1-75rem);
  overflow: hidden;
  background: var(--paper-deep);
  aspect-ratio: 16 / 10;
}

.archive-article-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--image-position, 50% 50%);
  transition: transform var(--duration-slow) ease-out;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .archive-article-card__link:is(:hover, :focus-visible) .archive-article-card__media img {
    transform: scale(var(--article-image-hover-scale));
  }
}

.archive-article-card__body {
  display: flex;
  flex-direction: column;
}

.archive-article-card__meta {
  margin-bottom: var(--space-3);
  color: var(--accent);
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-scale-0-07em);
  text-transform: uppercase;
}

.archive-article-card h2 {
  max-width: 19ch;
  overflow-wrap: anywhere;
  margin-bottom: var(--measure-1-35rem);
  font-size: var(--type-card-heading-size);
  line-height: var(--leading-display);
}

.archive-article-card__body > p:not(.archive-article-card__meta) {
  max-width: var(--measure-34rem);
  margin: 0;
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
  line-height: var(--leading-scale-1-62);
}

/* Article pages use a wide editorial header and a readable, generous column. */
.article-header {
  padding-block: var(--section-space) var(--section-space-compact);
  background: var(--paper);
}

.article-header__copy {
  max-width: var(--measure-72rem);
  margin-bottom: clamp(var(--measure-3-5rem), 7vw, var(--space-24));
}

.article-header h1 {
  max-width: 15ch;
  margin-bottom: var(--space-8);
  font-size: var(--type-article-title-size);
  line-height: var(--leading-scale-0-96);
}

.article-header__lead {
  max-width: var(--measure-50rem);
  margin: 0;
  color: var(--graphite-soft);
  font-size: var(--hero-lead-size);
  line-height: var(--leading-card-copy);
}

html[data-site] .article-header .article-byline {
  display: flex;
  flex-flow: row wrap;
  align-items: baseline;
  justify-content: flex-start;
  gap: var(--measure-0-65rem) var(--space-6);
  margin-top: var(--measure-1-75rem);
  padding: 0;
  border: 0;
  color: var(--graphite-soft);
  font-size: var(--type-meta-size);
  line-height: var(--leading-meta);
}

html[data-site] .article-header .article-byline > span {
  white-space: nowrap;
}

html[data-site] .article-header .article-byline__author {
  color: var(--graphite);
}

html[data-site] .article-header .article-byline a {
  color: var(--graphite);
  font-weight: var(--weight-medium);
  text-decoration: underline;
  text-decoration-color: var(--accent);
  text-underline-offset: .2em;
  transition: none;
}

html[data-site] .article-header .article-byline a:hover,
html[data-site] .article-header .article-byline a:focus-visible {
  color: var(--accent);
}

.article-byline__category {
  max-width: 100%;
  overflow-wrap: anywhere;
}

@media (max-width: 55rem) {
  html[data-site] .article-header .article-byline {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 40rem) {
  html[data-site] .article-header .article-byline {
    gap: var(--space-2) var(--space-5);
    font-size: var(--type-meta-size);
  }
}

.article-lead-media {
  margin-block: 0;
  overflow: hidden;
  background: var(--paper-deep);
  max-height: var(--measure-47rem);
  aspect-ratio: 16 / 9;
}

.article-lead-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--image-position, 50% 50%);
}

.service-media-hero > img {
  object-position: var(--image-position, 50% 52%);
}

.service-detail-media {
  display: grid;
  grid-template-columns: var(--layout-equal-columns);
  gap: clamp(var(--space-6), 4vw, var(--space-16));
  margin-top: clamp(var(--space-12), 6vw, var(--space-24));
}

.service-detail-media figure {
  margin: 0;
  min-width: 0;
}

.service-detail-media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 8 / 5;
  object-fit: cover;
}

.service-detail-media figcaption {
  margin-top: var(--space-4);
  color: var(--graphite-soft);
  font-size: var(--type-caption-size);
  line-height: var(--leading-meta);
}

@media (max-width: 55rem) {
  .service-media-hero > img {
    object-position: var(--image-position-mobile, var(--image-position, 50% 52%));
  }

  .service-detail-media {
    grid-template-columns: minmax(0, 1fr);
  }
}

.article-reading-layout {
  padding-block: var(--section-space);
}

html[data-site] .article-page--editorial .article-content {
  color: var(--graphite);
  font-family: var(--sans);
  font-size: var(--type-body-size);
  line-height: var(--leading-reading);
}

html[data-site] .article-page--editorial .article-content h2 {
  margin-bottom: var(--space-6);
  hyphens: none;
  overflow-wrap: normal;
}

html[data-site] .article-page--editorial .article-content p {
  margin-bottom: var(--measure-1-6rem);
}

html[data-site] .article-page--editorial .article-list {
  gap: var(--measure-0-8rem);
  margin: var(--measure-1-4rem) 0 var(--space-8);
  padding-left: var(--measure-1-35rem);
}

/* Summaries and closing source notes share the same reading-box surface. */
html[data-site] :is(.article-page--editorial, .service-detail-section) :is(.answer-box, .source-note) {
  padding: var(--space-8) var(--measure-2-25rem);
  border: 0;
  border-left: var(--accent-border-width) solid var(--accent);
  border-radius: 0;
  background: var(--brand-soft);
}

html[data-site] :is(.article-page--editorial, .service-detail-section) .answer-box .eyebrow {
  margin: 0 0 var(--measure-0-8rem);
  color: var(--graphite-soft);
  font-size: var(--type-caption-size);
  line-height: var(--leading-eyebrow);
}

html[data-site] :is(.article-page--editorial, .service-detail-section) .answer-box p:last-child {
  margin: 0;
  color: var(--graphite);
  font-size: var(--type-lead-size);
  line-height: var(--leading-lead);
}

html[data-site] .article-page--editorial .source-note > :last-child {
  margin-bottom: 0;
}

.article-related {
  background: var(--paper);
}

.article-related .editorial-heading {
  margin-inline: auto;
}

.article-related .section-link {
  justify-content: flex-start;
}

/* The expert page shares the same hierarchy and breathing room as the home page. */
.profile-intro {
  padding: 0;
  background: var(--paper);
}

.profile-intro__grid {
  display: grid;
  align-items: stretch;
  min-height: clamp(var(--measure-36rem), calc(100svh - var(--anchor-header-height)), var(--measure-52rem));
  grid-template-columns: minmax(var(--space-6), 1fr) repeat(2, minmax(0, var(--layout-half-width))) minmax(var(--space-6), 1fr);
}

.profile-intro__copy {
  grid-column: 2;
  align-self: center;
  min-width: 0;
  padding-block: var(--section-space);
  padding-right: clamp(var(--space-8), 4vw, var(--space-16));
}

.profile-intro h1 {
  max-width: 11ch;
  margin-bottom: var(--space-8);
  font-size: var(--type-profile-intro-h1-size);
}

.profile-intro__copy > p:last-child {
  max-width: var(--measure-34rem);
  margin: 0;
  color: var(--graphite-soft);
  font-size: var(--hero-lead-size);
  line-height: var(--leading-card-copy);
}

.profile-intro__media {
  position: relative;
  grid-column: 3 / -1;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: var(--paper-deep);
}

.profile-intro__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
}

.profile-story {
  background: var(--paper-light);
}

.profile-story__grid {
  display: grid;
  align-items: start;
  gap: clamp(var(--space-16), 9vw, var(--measure-9rem));
  grid-template-columns: minmax(var(--measure-22rem), .86fr) minmax(var(--measure-26rem), 1.14fr);
}

.profile-story__grid h2 {
  max-width: none;
}

.profile-story__title-line {
  display: block;
  white-space: nowrap;
}

.profile-story__grid .lead,
.profile-credentials__intro .lead {
  max-width: var(--measure-34rem);
  color: var(--graphite);
  font-size: var(--type-lead-size);
}

.profile-credentials__intro .lead {
  margin-bottom: 0;
  color: inherit;
}

.profile-story__points > div {
  padding-block: var(--space-8);
  border-top: var(--border-width) solid var(--line-strong);
}

.profile-story__points > div:last-child {
  border-bottom: var(--border-width) solid var(--line-strong);
}

.profile-story__points h3 {
  margin-bottom: var(--measure-0-9rem);
  font-size: var(--type-profile-story-points-h3-size);
}

.profile-story__points p {
  max-width: var(--layout-half-width);
  margin: 0;
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
  line-height: var(--leading-scale-1-65);
}

html[data-site] .profile-credentials {
  padding-block: var(--section-space);
  background: var(--brand-soft);
}

.profile-credentials__grid {
  display: grid;
  color: var(--black);
  align-items: start;
  gap: clamp(var(--space-16), 9vw, var(--measure-9rem));
  grid-template-columns: minmax(var(--measure-20rem), .7fr) minmax(var(--measure-28rem), 1.3fr);
}

.profile-credentials__grid h2 {
  max-width: 11ch;
  color: inherit;
  font-size: var(--type-profile-credentials-grid-h2-size);
}

.profile-credentials__grid ul {
  display: block;
  margin: 0;
  padding: 0;
}

.profile-credentials__grid li,
.profile-credentials__grid li:nth-child(odd) {
  display: grid;
  gap: var(--space-5);
  margin: 0;
  padding: var(--measure-1-7rem) 0;
  border-top: var(--border-width) solid var(--line-strong);
  grid-template-columns: var(--space-8) minmax(0, 1fr);
}

.profile-credentials__grid li:last-child {
  border-bottom: var(--border-width) solid var(--line-strong);
}

.profile-credentials__grid .material-icon {
  width: var(--credential-icon-size);
  height: var(--credential-icon-size);
  margin-block-start: calc((var(--credential-title-line-height) - var(--credential-icon-size)) / 2);
  color: inherit;
}

.profile-credentials__grid strong {
  margin-bottom: var(--measure-0-35rem);
  color: inherit;
  font-size: var(--type-body-size);
  font-weight: var(--weight-heading);
  line-height: var(--credential-title-line-height);
}

.profile-credentials__grid span {
  color: inherit;
  font-size: var(--type-body-size);
  line-height: var(--leading-lead);
}

html[data-site] .profile-principle .reassurance-section__inner p {
  max-width: var(--measure-39rem);
}

@media (max-width: 68rem) {
  .archive-hero--editorial .archive-hero__grid,
  .profile-story__grid,
  .profile-credentials__grid {
    grid-template-columns: 1fr;
  }

  .archive-hero--editorial .archive-hero__copy,
  .profile-intro__copy {
    max-width: var(--measure-48rem);
  }

  .archive-hero__media {
    max-width: var(--measure-52rem);
  }

  .article-archive__heading {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 55rem) {
  .profile-intro__grid {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
  }

  .profile-intro__copy {
    grid-column: auto;
    width: var(--shell);
    max-width: none;
    margin-inline: auto;
    padding: clamp(var(--measure-3-5rem), 8vw, var(--space-20)) 0;
  }

  .profile-intro__media {
    grid-column: auto;
    aspect-ratio: 4 / 3;
  }

  .profile-intro h1 {
    max-width: 13ch;
    font-size: var(--type-profile-title-mobile-size);
    overflow-wrap: anywhere;
  }

  html[data-site] body.archive-template .breadcrumbs,
  html[data-site] body.article-template .breadcrumbs,
  html[data-site] body.profile-template .breadcrumbs {
    margin-bottom: var(--space-10);
    font-size: var(--type-meta-size);
  }

  .archive-hero--editorial h1 {
    font-size: var(--type-archive-intro-mobile-size);
  }

  .article-header h1 {
    font-size: var(--type-profile-title-mobile-size);
    overflow-wrap: anywhere;
  }

  .article-archive--editorial .article-grid {
    gap: var(--measure-4-5rem);
    grid-template-columns: minmax(0, 1fr);
  }

  .archive-article-card__body {
    min-height: 0;
  }

  .article-lead-media img {
    height: 100%;
  }

  .article-lead-media {
    aspect-ratio: 4 / 3;
  }

  html[data-site] .article-page--editorial .article-content {
    font-size: var(--type-body-size);
  }

  html[data-site] .article-page--editorial .article-content h2 {
    margin-top: var(--space-16);
    font-size: var(--type-article-page-editorial-article-content-h2-size);
  }

  html[data-site] :is(.article-page--editorial, .service-detail-section) :is(.answer-box, .source-note) {
    padding: var(--measure-1-6rem);
  }
}

@media (max-width: 40rem) {
  .archive-hero--editorial,
  .article-header {
    padding-top: var(--measure-3-5rem);
  }

  .profile-intro__copy {
    width: var(--shell);
  }


.archive-hero__lead,
.article-header__lead,
.profile-intro__copy > p:last-child {
  font-size: var(--hero-lead-size);
}

.article-archive__heading p,
.profile-story__grid .lead,
.profile-credentials__intro .lead,
.contact-copy > .lead {
  font-size: var(--type-lead-size);
}

}

/* September refinement v9 — local takstmann pages follow the approved home-page system. */
html[data-site="termobolig"] body.local-template main {
  background: var(--paper-light);
}

.local-context--refined {
  background: var(--paper-light);
}

.local-context--refined .local-context__grid {
  display: grid;
  align-items: start;
  row-gap: clamp(var(--space-12), 5vw, var(--space-20));
}

.local-context__heading {
  position: sticky;
  top: var(--sticky-offset);
}

.local-context__heading h2 {
  max-width: 12ch;
}

.local-context--refined .local-context__body > .lead {
  max-width: var(--measure-45rem);
  margin-bottom: var(--space-6);
  color: var(--graphite);
  font-size: var(--type-lead-size);
  line-height: var(--leading-card-copy);
}

.local-context__coverage {
  max-width: var(--measure-45rem);
  margin-bottom: 0;
  color: var(--graphite);
  font-size: var(--type-body-size);
  line-height: var(--leading-card-copy);
}

.local-context--refined .local-context__body h3 {
  margin: var(--measure-3-5rem) 0 var(--measure-1-75rem);
  font-size: var(--type-local-context-refined-local-context-body-h3-size);
  font-weight: var(--weight-heading);
}

.local-context--refined .local-context__body ul {
  display: grid;
  gap: var(--space-5);
  max-width: var(--measure-44rem);
  border: 0;
}

.local-context--refined .local-context__body li {
  position: relative;
  padding: 0 0 0 var(--measure-1-75rem);
  border: 0;
  font-size: var(--type-body-size);
  line-height: var(--leading-meta);
}

.local-context--refined .local-context__body li::before {
  top: .72em;
  left: var(--measure-0-2rem);
  width: var(--measure-0-42rem);
  height: var(--measure-0-42rem);
}

.local-services.service-choice {
  background: var(--paper);
}

.local-services .editorial-heading > p:last-child {
  font-size: var(--type-lead-size);
}

.local-services .service-row p {
  font-size: var(--type-body-size);
}

.local-reassurance .reassurance-section__inner h2 {
  max-width: 15ch;
}

.local-reassurance .reassurance-section__inner p,
.local-reassurance .reassurance-section__inner p.lead {
  max-width: var(--layout-narrow-width);
}

.local-faq--refined {
  background: var(--white);
}

.local-faq--refined .faq-intro h2 {
  max-width: 12ch;
}

.local-faq--refined .faq-intro > p:last-child {
  max-width: var(--measure-30rem);
  font-size: var(--type-lead-size);
}

.local-faq--refined .faq summary,
.local-faq--refined .faq details > div {
  font-size: var(--type-body-size);
}

.local-areas {
  background: var(--paper);
}

.local-areas .editorial-heading {
  max-width: none;
}

.local-areas .editorial-heading > p:last-child {
  font-size: var(--type-lead-size);
}

.local-areas .area-cards {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.local-areas .area-cards a {
  min-height: var(--measure-12rem);
}

.local-areas .area-cards strong {
  font-size: var(--type-local-areas-area-cards-strong-size);
}

.local-areas .area-cards span {
  display: block;
  font-size: var(--type-body-size);
}

@media (max-width: 55rem) {
  .local-context--refined .local-context__grid {
    grid-template-columns: 1fr;
  }

  .local-context__heading {
    position: static;
  }

  .local-context__heading h2,
  .local-context--refined .local-context__body > .lead,
  .local-context__coverage {
    max-width: var(--measure-46rem);
  }
}

@media (max-width: 55rem) {
  .local-areas .area-cards {
    grid-template-columns: 1fr;
  }

  .local-areas .area-cards a {
    min-height: var(--measure-9-5rem);
  }
}

@media (max-width: 40rem) {


.local-context--refined .local-context__body > .lead,
.local-faq--refined .faq-intro > p:last-child,
.local-areas .editorial-heading > p:last-child {
  font-size: var(--type-lead-size);
}

.local-context__coverage {
  font-size: var(--type-body-size);
}

  .local-context--refined .local-context__body li {
    font-size: var(--type-body-size);
  }
}

/* September refinement v10 — aligned digital products and alternating section rhythm. */
.digital-price-card {
  grid-template-rows: auto auto minmax(0, 1fr) auto auto;
}

.digital-price-card[data-brand="takseringshjelpen"] {
  --price-accent: var(--accent-takseringshjelpen);
}

.digital-price-card[data-brand="enovahjelpen"] {
  --price-accent: var(--accent-enovahjelpen);
}

.digital-price-card strong {
  align-self: end;
  color: var(--price-accent, var(--accent));
  font-size: var(--type-product-card-price-size);
  font-weight: var(--weight-control);
  letter-spacing: var(--tracking-scale-negative-0-05em);
}

.digital-price-card small {
  margin-top: var(--space-2);
  font-size: var(--type-meta-size);
}

html[data-site="termobolig"] .contact-section:not(.booking-section) {
  background: var(--paper-deep);
}

/* September refinement v11 — four equal footer columns with one shared gutter. */
html[data-site] .site-footer__middle {
  gap: var(--space-12) var(--footer-column-gap);
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

html[data-site] .site-footer__middle > p {
  grid-column: 1;
}

html[data-site] .footer-links {
  gap: var(--space-10) var(--footer-column-gap);
  grid-column: 2 / -1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

html[data-site] .footer-links__group--services {
  grid-column: span 2;
}

html[data-site] .footer-links__columns {
  gap: 0 var(--footer-column-gap);
}

html[data-site] .footer-links__group a {
  gap: var(--space-2);
  font-size: var(--type-body-size);
  white-space: nowrap;
}

@media (max-width: 72rem) {
  html[data-site] .site-footer__middle {
    grid-template-columns: 1fr;
  }

  html[data-site] .site-footer__middle > p,
  html[data-site] .footer-links {
    grid-column: auto;
  }

  html[data-site] .footer-links__group a {
    white-space: normal;
  }
}

@media (max-width: 55rem) {
  html[data-site] .footer-links {
    grid-template-columns: 1fr;
    row-gap: var(--space-16);
  }

  html[data-site] .footer-links__group--services {
    grid-column: auto;
  }

  html[data-site] .site-footer__contact {
    justify-items: end;
    text-align: right;
  }

  html[data-site] .site-footer {
    padding-bottom: calc(var(--space-24) + var(--mobile-menu-bottom, var(--space-4)));
  }
}

@media (max-width: 40rem) {
  html[data-site] .footer-links__columns {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 40rem) {
  html[data-site] .site-footer__top {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }
}

/* September refinement v12 — alternating profile sections and single row dividers. */
html[data-site] body.profile-template .profile-intro {
  background: var(--paper);
}

html[data-site] body.profile-template .profile-story {
  background: var(--paper-light);
}

html[data-site] body.profile-template .profile-credentials {
  background: var(--brand-soft);
}

html[data-site] body.profile-template .profile-credentials__grid ul {
  border-top: 0;
}

html[data-site] body.profile-template .profile-principle {
  background: var(--paper-light);
}

/* September refinement v13 — quieter article archive and editorial article navigation. */
.article-archive--editorial .article-archive__heading {
  display: block;
  margin-bottom: var(--space-8);
}

html[data-site] .filter-bar {
  margin-bottom: clamp(var(--space-12), 6vw, var(--space-20));
  padding-block: var(--space-2);
  border-block: 0;
}

.archive-article-card__body {
  min-height: 0;
}

.archive-article-card h2 {
  font-size: var(--type-archive-article-card-h2-size);
  line-height: var(--leading-scale-1-04);
}

@media (prefers-reduced-motion: reduce) {
  .archive-article-card__media img {
    transition: none;
  }
}

html[data-site] .article-page--editorial {
  background: var(--paper);
}

html[data-site] .article-reading-layout {
  display: grid;
  align-items: start;
  gap: clamp(var(--measure-3-5rem), 7vw, var(--measure-7rem));
  grid-template-columns: var(--layout-reading-columns);
}

.article-toc {
  position: sticky;
  top: var(--sticky-offset);
}

.article-toc h2 {
  margin: 0 0 var(--space-5);
  font-size: var(--type-body-size);
  line-height: var(--leading-label);
}

.article-toc ol {
  display: grid;
  gap: var(--measure-0-8rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.article-toc a {
  color: var(--graphite-soft);
  font-size: var(--type-body-size);
  line-height: var(--leading-help);
  text-decoration: none;
}

.article-toc a:hover,
.article-toc a:focus-visible,
.article-toc a[aria-current="location"] {
  color: var(--accent);
  text-decoration: underline;
  text-decoration-thickness: var(--border-width);
  text-underline-offset: .25em;
}

html[data-site] .article-related {
  background: var(--white);
}

@media (max-width: 68rem) {
  html[data-site] .article-reading-layout {
    grid-template-columns: 1fr;
  }

  .article-toc {
    position: static;
    width: min(100%, var(--measure-58rem));
    margin-inline: auto;
  }

  .article-toc ol {
    columns: 2;
    display: block;
    column-gap: var(--space-12);
  }

  .article-toc li {
    margin-bottom: var(--measure-0-8rem);
    break-inside: avoid;
  }

  html[data-site] .article-page--editorial .article-content {
    width: min(100%, var(--measure-58rem));
    margin-inline: auto;
  }
}

@media (max-width: 40rem) {
  .article-toc ol {
    columns: 1;
  }
}

/* September refinement v14 — one field focus treatment across every form. */
.form-card label:not(.check),
.booking-card label:not(.check):not(.choice-card),
.calendar-panel > label,
.booking-choice legend,
.price-calculator label,
.price-extras legend {
  color: var(--graphite) !important;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus,
select:focus,
textarea:focus {
  outline: 0;
  border: var(--focus-width) solid var(--accent) !important;
  box-shadow: none !important;
}

.smart-search__input:focus-within,
.price-area-input:focus-within,
.quantity-stepper:focus-within,
.choice-card:has(input:focus-visible) {
  outline: 0;
  border: var(--focus-width) solid var(--accent);
  box-shadow: none;
}

.smart-search__input input:focus,
.price-area-input input:focus,
.quantity-stepper input:focus {
  border: 0 !important;
  box-shadow: none !important;
}

input[type="checkbox"]:focus-visible,
input[type="radio"]:focus-visible {
  outline: 0;
  border: var(--focus-width) solid var(--accent);
  box-shadow: none;
}

:is(form, .price-calculator) button:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 var(--focus-width) var(--white), 0 0 0 var(--accent-border-width) var(--accent);
}

input[type="range"]:focus-visible {
  outline: 0;
}

input[type="range"]:focus-visible::-webkit-slider-thumb {
  border: var(--focus-width) solid var(--accent);
  background: var(--white);
  box-shadow: 0 var(--focus-width) var(--measure-8px) color-mix(in srgb, var(--graphite-deep) 20%, transparent);
}

input[type="range"]:focus-visible::-moz-range-thumb {
  border: var(--focus-width) solid var(--accent);
  background: var(--white);
  box-shadow: 0 var(--focus-width) var(--measure-8px) color-mix(in srgb, var(--graphite-deep) 20%, transparent);
}

/* September refinement v15 — breadcrumbs replace page-level hero taglines. */
.pricing-hero .breadcrumbs {
  margin-bottom: clamp(var(--space-10), 5vw, var(--measure-4-5rem));
  font-size: var(--type-meta-size);
}

/* September refinement v16 — readable calculator headings and explicit selects. */
.pricing-calculator-layout {
  gap: clamp(var(--measure-3-5rem), 6vw, var(--measure-5-25rem));
  grid-template-columns: minmax(0, .92fr) minmax(var(--measure-31rem), 1.08fr);
}

.pricing-calculator-copy h2 {
  max-width: none;
  font-size: var(--type-calculator-heading-size);
  line-height: var(--leading-calculator-heading);
  hyphens: manual;
  overflow-wrap: break-word;
  text-wrap: balance;
}

.price-calculator select {
  appearance: none;
  padding-right: var(--space-16);
  color: var(--graphite);
  background-color: var(--white);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='m7 9 5 5 5-5' fill='none' stroke='%231c1e1b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--space-5) center;
  background-size: var(--space-6) var(--space-6);
  cursor: pointer;
  transition: border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;
}

.price-calculator select:hover {
  border-color: var(--graphite);
}

@media (max-width: 68rem) {
  .pricing-calculator-layout {
    grid-template-columns: 1fr;
  }

  .pricing-calculator-copy h2 {
    max-width: 15ch;
  }
}

@media (max-width: 40rem) {
  .pricing-calculator-copy h2 {
    max-width: none;
    font-size: var(--type-calculator-heading-mobile-size);
  }

  .price-calculator select {
    padding-right: var(--space-12);
    background-position: right var(--measure-0-85rem) center;
    font-size: var(--type-input-size);
  }
}

.price-calculator__result span {
  align-self: start;
  grid-area: label;
  line-height: var(--leading-display);
  font-size: var(--type-caption-size);
  font-weight: var(--weight-scale-650);
  letter-spacing: var(--tracking-scale-0-06em);
}

.price-calculator__result strong {
  align-self: start;
  color: var(--accent);
  grid-area: price;
}

.price-calculator__result small {
  grid-area: detail;
  font-size: var(--type-meta-size);
}

@media (max-width: 40rem) {
  .price-calculator__result {
    grid-template-areas: "label"
      "price"
      "detail";
  }
}

/* September refinement v21 — integrated area input and a usable range handle. */
.price-control__heading {
  align-items: center;
}

.price-control__heading > label {
  margin: 0;
}

.price-area-input {
  display: grid;
  width: var(--measure-8-5rem);
  min-height: var(--measure-3-75rem);
  box-sizing: border-box;
  align-items: stretch;
  overflow: hidden;
  border: var(--border-width) solid var(--line-strong);
  border-radius: var(--space-1);
  background: var(--white);
  grid-template-columns: minmax(0, 1fr) auto;
}

.price-area-input:hover {
  border-color: var(--graphite);
}

.price-calculator .price-area-input input[type="text"] {
  width: 100%;
  min-width: 0;
  min-height: var(--measure-3-625rem);
  margin: 0;
  padding: var(--space-3) var(--space-1) var(--space-3) var(--space-4);
  appearance: textfield;
  border: 0 !important;
  border-radius: 0;
  outline: 0;
  background: transparent;
  box-shadow: none !important;
  color: var(--graphite);
  font-size: var(--type-input-size);
  line-height: var(--leading-display);
  text-align: right;
}

.price-area-input span {
  display: flex;
  align-items: center;
  padding: 0 var(--space-4) 0 var(--measure-0-4rem);
  color: var(--graphite-soft);
  font-size: var(--type-meta-size);
  line-height: var(--leading-display);
}

.price-control--range input[type="range"] {
  width: 100%;
  min-height: var(--measure-3-25rem);
  margin: var(--measure-0-85rem) 0 var(--measure-0-15rem);
  padding: 0;
  appearance: none;
  background: transparent;
  cursor: pointer;
}

.price-control--range input[type="range"]::-webkit-slider-runnable-track {
  height: var(--space-2);
  border: 0;
  border-radius: var(--measure-999px);
  background: linear-gradient(to right, var(--accent) 0 var(--range-progress, 0%), var(--line-strong) var(--range-progress, 0%) 100%);
}

.price-control--range input[type="range"]::-webkit-slider-thumb {
  width: var(--space-10);
  height: var(--space-10);
  margin-top: var(--measure-negative-1rem);
  box-sizing: border-box;
  appearance: none;
  border: var(--space-1) solid var(--white);
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 var(--focus-width) var(--measure-8px) color-mix(in srgb, var(--graphite-deep) 20%, transparent);
}

.price-control--range input[type="range"]::-moz-range-track {
  height: var(--space-2);
  border: 0;
  border-radius: var(--measure-999px);
  background: var(--line-strong);
}

.price-control--range input[type="range"]::-moz-range-progress {
  height: var(--space-2);
  border-radius: var(--measure-999px);
  background: var(--accent);
}

.price-control--range input[type="range"]::-moz-range-thumb {
  width: var(--space-10);
  height: var(--space-10);
  box-sizing: border-box;
  border: var(--space-1) solid var(--white);
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 var(--focus-width) var(--measure-8px) color-mix(in srgb, var(--graphite-deep) 20%, transparent);
}

.price-control--range input[type="range"]:focus-visible::-webkit-slider-thumb {
  border: var(--focus-width) solid var(--accent);
  background: var(--white);
  box-shadow: 0 var(--focus-width) var(--measure-8px) color-mix(in srgb, var(--graphite-deep) 20%, transparent);
}

.price-control--range input[type="range"]:focus-visible::-moz-range-thumb {
  border: var(--focus-width) solid var(--accent);
  background: var(--white);
  box-shadow: 0 var(--focus-width) var(--measure-8px) color-mix(in srgb, var(--graphite-deep) 20%, transparent);
}

/* September refinement v22 — one balanced title rhythm wherever breadcrumbs appear. */
.breadcrumbs {
  margin-bottom: var(--measure-1-45rem);
}

.pricing-hero .breadcrumbs,
.archive-hero--editorial .breadcrumbs,
.article-header .breadcrumbs,
.profile-intro .breadcrumbs {
  margin-bottom: var(--space-8);
}

html[data-site="termobolig"] body.archive-template .breadcrumbs,
html[data-site="termobolig"] body.article-template .breadcrumbs,
html[data-site="termobolig"] body.profile-template .breadcrumbs {
  margin-bottom: var(--space-8);
}

/* September refinement v23 — a calm full-screen mobile menu and clearer section endings. */
.main-nav__intro {
  display: none;
}

html[data-site] .site-footer {
  color: var(--paper-light);
  border-top-color: color-mix(in srgb, var(--white) 20%, transparent);
  background: var(--graphite-deep);
}

html[data-site] .site-footer .wordmark,
html[data-site] .site-footer__contact a,
html[data-site] .site-footer__middle > p,
html[data-site] .footer-links__group a {
  color: var(--paper-light);
}

.site-footer .wordmark {
  --wordmark-accent: var(--wordmark-accent-on-dark);
}

html[data-site] .site-footer__contact span,
html[data-site] .footer-links__group h2,
html[data-site] .site-footer__meta,
html[data-site] .site-footer__credit {
  color: color-mix(in srgb, var(--white) 68%, transparent);
}

.site-footer__credit {
  margin-block: var(--space-4) 0;
  font-size: var(--type-caption-size);
  line-height: var(--leading-meta);
}

.site-footer__credit a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: var(--border-width);
  text-underline-offset: .2em;
}

html[data-site] .site-footer__top,
html[data-site] .site-footer__meta,
html[data-site] .footer-links__group a {
  border-color: color-mix(in srgb, var(--white) 20%, transparent);
}

@media (max-width: 55rem) {
  html {
    scroll-padding-top: var(--space-6);
  }

  .site-header,
  .site-header.is-scrolled {
    position: absolute;
    color: var(--graphite);
    border-bottom-color: transparent;
    background: transparent !important;
    backdrop-filter: none;
  }

  body.menu-open .site-header {
    position: fixed;
  }

  /* Keep scrolling menu content behind an opaque logo area on short screens. */
  body.menu-open .site-header::before {
    position: absolute;
    z-index: 201;
    inset: 0;
    background: var(--brand-soft);
    content: "";
  }

  .site-header__inner {
    min-height: var(--measure-5-5rem);
  }

  .site-header .wordmark {
    position: relative;
    z-index: 202;
  }

  .site-header .menu-toggle {
    z-index: 202;
  }

  body.menu-open .site-header,
  body.menu-open .site-header .wordmark {
    color: var(--graphite);
  }

  .wordmark {
    gap: var(--wordmark-mobile-gap) !important;
  }

  .wordmark__symbol {
    width: var(--wordmark-mobile-symbol-size);
    height: var(--wordmark-mobile-symbol-size);
  }

  .wordmark__name {
    height: var(--type-brand-mobile-size);
  }

  .site-header .wordmark__parent {
    display: none;
  }

  body.menu-open .site-header .wordmark {
    --wordmark-accent: var(--accent);
  }

  .menu-toggle,
  .site-header:not(.is-scrolled) .menu-toggle {
    position: fixed;
    right: var(--mobile-page-gutter);
    bottom: max(var(--space-4), env(safe-area-inset-bottom));
    display: inline-flex;
    min-width: 0;
    min-height: var(--button-min-height);
    justify-content: center;
    padding: var(--button-padding-block) var(--button-padding-inline);
    color: var(--white);
    border: var(--border-width) solid var(--accent);
    border-radius: var(--measure-999px);
    background: var(--accent);
    box-shadow: none;
    font-size: var(--button-font-size);
    font-weight: var(--button-font-weight);
    line-height: var(--button-line-height);
    letter-spacing: var(--tracking-scale-0-01em);
    transition: none;
  }

  .menu-toggle:hover {
    color: var(--white);
    border-color: var(--graphite);
    background: var(--graphite);
  }

  .menu-toggle:focus-visible {
    outline: 0;
    border-color: currentColor;
    box-shadow: none;
  }

  .menu-toggle[aria-expanded="true"],
  .site-header:not(.is-scrolled) .menu-toggle[aria-expanded="true"] {
    color: var(--white);
    border-color: var(--graphite);
    background: var(--graphite);
  }

  body.consent-open .menu-toggle {
    opacity: 0;
    pointer-events: none;
  }

  .menu-toggle__lines,
  .menu-toggle__lines::before,
  .menu-toggle__lines::after {
    width: var(--space-5);
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle__lines {
    width: var(--space-5);
    height: var(--space-5);
    background: transparent;
    transform: none;
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle__lines::before,
  .menu-toggle[aria-expanded="true"] .menu-toggle__lines::after {
    top: 50%;
    left: 50%;
    height: var(--focus-width);
    border-radius: var(--measure-999px);
    transform-origin: center;
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle__lines::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle__lines::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .main-nav,
  .site-header:not(.is-scrolled) .main-nav {
    position: fixed;
    z-index: 200;
    inset: 0;
    display: flex;
    width: 100%;
    height: 100svh;
    min-height: 100%;
    align-items: stretch;
    flex-direction: column;
    gap: var(--space-4);
    visibility: hidden;
    overflow-x: hidden;
    overflow-y: auto;
    padding: calc(var(--space-24) + env(safe-area-inset-top)) var(--mobile-page-gutter) calc(var(--measure-6-75rem) + env(safe-area-inset-bottom));
    color: var(--graphite);
    border: 0;
    border-radius: 0;
    opacity: 0;
    background: var(--brand-soft);
    box-shadow: none;
    pointer-events: none;
    transform: none;
    transition: none;
  }

  .site-header .main-nav.is-open,
  .site-header:not(.is-scrolled) .main-nav.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }

  .main-nav__intro {
    display: block;
    max-width: var(--measure-32rem);
    margin: 0 0 var(--space-2);
    color: var(--graphite);
    font-size: var(--type-lead-size);
    line-height: var(--leading-meta);
  }

  .main-nav > a:not(.button) {
    display: block;
    width: fit-content;
    max-width: 100%;
    align-self: flex-start;
    padding: var(--measure-0-1rem) 0;
    color: var(--graphite);
    border: 0;
    border-radius: 0;
    background: transparent;
    font-size: var(--type-main-nav-a-size);
    font-weight: var(--weight-control);
    line-height: var(--leading-scale-1-08);
    text-align: left;
    text-decoration: none;
  }

  .main-nav > a:not(.button)::after {
    display: none;
  }

  .main-nav > a:not(.button):hover,
  .main-nav > a:not(.button):focus-visible {
    color: var(--paper-light);
    background: transparent;
  }

  .main-nav .header-cta,
  .site-header:not(.is-scrolled) .main-nav .header-cta,
  .site-header.is-scrolled .main-nav.is-open .header-cta {
    width: fit-content;
    max-width: 100%;
    align-self: flex-start;
    min-height: var(--button-min-height);
    padding: var(--button-padding-block) var(--button-padding-inline);
    margin: 0;
    color: var(--white);
    border-color: var(--graphite);
    background: var(--graphite);
    font-size: var(--button-font-size);
  }

  .main-nav .header-cta:hover,
  .main-nav .header-cta:focus-visible,
  .site-header:not(.is-scrolled) .main-nav .header-cta:hover,
  .site-header.is-scrolled .main-nav.is-open .header-cta:hover,
  .site-header.is-scrolled .main-nav.is-open .header-cta:focus-visible {
    color: var(--graphite);
    border-color: var(--white);
    background: var(--white);
    opacity: 1;
  }
}

@media (max-width: 40rem) {
  body h1,
  body h2 {
    max-width: none !important;
  }
}

/* September refinement v24 — one shared 50/50 axis across the expert page. */
@media (min-width: 68.01rem) {
  .profile-story__intro,
  .profile-credentials__intro {
    position: sticky;
    top: var(--sticky-offset);
    align-self: start;
  }

  html[data-site] body.profile-template .profile-story__grid,
  html[data-site] body.profile-template .profile-credentials__grid,
  html[data-site] body.profile-template .profile-principle .reassurance-section__inner,
  html[data-site] body.profile-template .contact-panel {
    column-gap: 0;
    grid-template-columns: var(--layout-equal-columns);
  }
}

@media (min-width: 55.001rem) and (max-width: 68rem) {
  html[data-site] body.profile-template .profile-principle .reassurance-section__inner,
  html[data-site] body.profile-template .contact-panel {
    column-gap: 0;
    grid-template-columns: var(--layout-equal-columns);
  }
}

/* September refinement v25 — homepage contact columns share a centred 50/50 axis. */
@media (min-width: 55.001rem) {
  html[data-site] body.home-template .contact-panel {
    grid-template-columns: var(--layout-equal-columns);
  }

  html[data-site] body.home-template .contact-panel {
    column-gap: clamp(var(--space-16), 8vw, var(--measure-10rem));
  }
}

/* September refinement v26 — one single, two-pixel accent border on every focused field. */
html[data-site] .smart-search__input:focus-within,
html[data-site] .price-area-input:focus-within,
html[data-site] .quantity-stepper:focus-within,
html[data-site] .choice-card:has(input:focus-visible) {
  outline: 0;
  border: var(--focus-width) solid var(--accent) !important;
  box-shadow: none !important;
}

html[data-site] .smart-search .smart-search__input input[type="search"]:focus,
html[data-site] .price-calculator .price-area-input input[type="text"]:focus,
html[data-site] .price-calculator .quantity-stepper input[type="text"]:focus {
  border: 0 !important;
  box-shadow: none !important;
}

/* September refinement v27 — calm steppers and a shared top axis for the price result. */
html[data-site] .price-calculator .quantity-stepper,
html[data-site] .price-calculator .quantity-stepper--compact {
  display: grid;
  width: max-content;
  max-width: 100%;
  align-items: center;
  gap: var(--space-2);
  overflow: visible;
  border: 0 !important;
  border-radius: 0;
  background: transparent;
  box-shadow: none !important;
  grid-template-columns: var(--measure-3-25rem) var(--measure-4-5rem) var(--measure-3-25rem);
}

html[data-site] .price-calculator .quantity-stepper--compact {
  gap: var(--measure-0-4rem);
  grid-template-columns: var(--space-12) var(--measure-3-75rem) var(--space-12);
}

html[data-site] .price-calculator .quantity-stepper[hidden] {
  display: none;
}

.price-extra-choice > label:only-child,
.price-extra-choice > label:has(+ .quantity-stepper[hidden]) {
  grid-column: 1 / -1;
}

html[data-site] .price-calculator .quantity-stepper:focus-within {
  border: 0 !important;
  box-shadow: none !important;
}

html[data-site] .price-calculator .quantity-stepper button,
html[data-site] .price-calculator .quantity-stepper input[type="text"] {
  width: 100%;
  min-width: 0;
  min-height: var(--measure-3-25rem);
  box-sizing: border-box;
  margin: 0;
  padding: var(--space-2);
  border: var(--border-width) solid var(--line-strong) !important;
  border-radius: var(--space-1);
  background: var(--white);
  color: var(--graphite);

  font-variant-numeric: tabular-nums;
  line-height: var(--leading-display);
  text-align: center;
}

html[data-site] .price-calculator .quantity-stepper button {
  font-size: var(--type-reading-size);
}

html[data-site] .price-calculator .quantity-stepper input[type="text"] {
  font-size: var(--type-input-size);
}

html[data-site] .price-calculator .quantity-stepper button {
  display: grid;
  place-items: center;
  padding: 0;
  background: var(--paper-deep);
  cursor: pointer;
  font-size: var(--type-subheading-size);
}

html[data-site] .price-calculator .quantity-stepper button:first-child,
html[data-site] .price-calculator .quantity-stepper button:last-child {
  border: var(--border-width) solid var(--line-strong) !important;
}

html[data-site] .price-calculator .quantity-stepper button:hover:not(:disabled) {
  border-color: var(--accent) !important;
  background: var(--brand-soft);
  color: var(--accent);
}

html[data-site] .price-calculator .quantity-stepper button:focus-visible,
html[data-site] .price-calculator .quantity-stepper input[type="text"]:focus {
  outline: 0;
  border: var(--focus-width) solid var(--accent) !important;
  box-shadow: none !important;
}

html[data-site] .price-calculator .quantity-stepper button:disabled,
html[data-site] .price-calculator .quantity-stepper input:disabled {
  cursor: not-allowed;
  opacity: .42;
}

.price-calculator__result {
  align-items: start;
  gap: var(--space-6);
  grid-template-areas: none;
  grid-template-columns: minmax(0, 1fr) auto;
}

.price-calculator__result-copy {
  display: grid;
  align-content: start;
  gap: var(--measure-0-55rem);
  padding-top: var(--measure-0-1rem);
}

.price-calculator__result .price-calculator__result-copy,
.price-calculator__result span,
.price-calculator__result small,
.price-calculator__result strong {
  align-self: auto;
  grid-area: auto;
}

.price-calculator__result strong {
  margin-top: -.08em;
  line-height: var(--leading-price);
  text-align: right;
  font-size: var(--type-price-size);
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-heading);
}

@media (max-width: 40rem) {
  html[data-site] .price-calculator .quantity-stepper {
    grid-template-columns: var(--measure-3-25rem) var(--measure-4-25rem) var(--measure-3-25rem);
  }

  html[data-site] .price-calculator .quantity-stepper--compact {
    grid-template-columns: var(--space-12) var(--measure-3-5rem) var(--space-12);
  }

  .price-calculator__result {
    gap: var(--space-5);
    grid-template-columns: 1fr;
  }

  .price-calculator__result strong {
    margin-top: 0;
    text-align: left;
  }
}

/* September refinement v28 — the article archive starts with its content, without a separate hero. */
html[data-site] body.archive-template .article-archive--editorial {
  padding-top: clamp(var(--measure-4-5rem), 8vw, var(--measure-7-5rem));
}

.article-archive__intro {
  margin-bottom: clamp(var(--space-10), 5vw, var(--space-16));
}

html[data-site] body.archive-template .article-archive__intro .breadcrumbs,
.article-archive__intro h1 {
  margin-bottom: var(--space-8);
}

.article-archive__intro h1 {
  max-width: 16ch;
  font-size: var(--type-archive-title-size);
  text-wrap: balance;
}

.article-archive__intro p {
  max-width: var(--layout-narrow-width);
  margin: 0;
  color: var(--graphite-soft);
  font-size: var(--hero-lead-size);
  line-height: var(--leading-lead);
}

.article-archive--editorial [data-article-grid] {
  scroll-margin-top: var(--measure-7rem);
}

@media (max-width: 40rem) {
  html[data-site] body.archive-template .article-archive--editorial {
    padding-top: var(--measure-3-5rem);
  }

  .article-archive__intro h1 {
    font-size: var(--type-archive-title-mobile-size);
  }

  .article-archive__intro p {
    font-size: var(--hero-lead-size);
  }

  .article-archive--editorial [data-article-grid] {
    scroll-margin-top: var(--space-6);
  }
}

/* September refinement v29 — a dedicated, calm services index with the shared contact ending. */
html[data-site="termobolig"] body.areas-template main {
  padding-top: var(--measure-5-8rem);
  background: var(--paper);
}

.areas-index h1 {
  max-width: 14ch;
  font-size: var(--type-areas-index-h1-size);
  line-height: var(--leading-scale-0-96);
}

.areas-index .editorial-heading > p:last-child {
  max-width: var(--measure-36rem);
}

.area-cards a:focus-visible {
  outline: var(--focus-width) solid var(--accent);
  outline-offset: var(--measure-negative-4px);
  background: var(--brand-soft);
}

html[data-site="termobolig"] body.services-template main {
  padding-top: var(--measure-5-8rem);
  background: var(--white);
}

.services-index {
  background: var(--white);
}

.services-index > .services-index__shell > .breadcrumbs {
  margin-bottom: clamp(var(--space-10), 4vw, var(--measure-3-5rem));
  font-size: var(--type-meta-size);
  line-height: var(--leading-scale-1-4);
}

.services-index__layout {
  display: grid;
  align-items: start;
  gap: clamp(var(--space-16), 7vw, var(--measure-7-5rem)) var(--service-gutter);
  grid-template-columns: var(--service-columns);
}

.services-index .services-index__intro {
  position: sticky;
  top: var(--sticky-offset);
}

.services-index__intro > p:last-child {
  max-width: var(--measure-32rem);
  margin-bottom: 0;
  font-size: var(--hero-lead-size);
  line-height: var(--leading-lead);
}

.services-index .service-row p {
  font-size: var(--type-body-size);
}

@media (max-width: 68rem) {
  .services-index__layout {
    gap: clamp(var(--measure-3-5rem), 8vw, var(--space-20));
    grid-template-columns: 1fr;
  }

  .services-index .services-index__intro {
    position: static;
  }
}

@media (max-width: 55rem) {
  html[data-site="termobolig"] body.areas-template main {
    padding-top: var(--space-20);
  }

  html[data-site="termobolig"] body.services-template main {
    padding-top: var(--space-20);
  }
}

@media (max-width: 40rem) {
  .services-index > .services-index__shell > .breadcrumbs {
    margin-bottom: var(--space-10);
  }

  .services-index__intro > p:last-child {
    font-size: var(--hero-lead-size);
  }
}

/* September refinement v30 — shared accent feedback for expert and footer links. */
html[data-site] .glen-copy > .text-link,
html[data-site] .site-footer a,
html[data-site] .site-footer button[data-consent-open] {
  transition: color var(--duration-fast) ease;
}

html[data-site] .glen-copy > .text-link:hover,
html[data-site] .glen-copy > .text-link:focus-visible {
  color: var(--accent);
}

html[data-site] .site-footer a:hover,
html[data-site] .site-footer a:focus-visible,
html[data-site] .site-footer button[data-consent-open]:hover,
html[data-site] .site-footer button[data-consent-open]:focus-visible {
  color: var(--accent-on-dark);
  outline-color: var(--accent-on-dark);
}

/* September refinement v31 — the enquiry form starts on the shared 50% axis. */
@media (min-width: 55.001rem) {
  html[data-site="termobolig"] .contact-section:not(.booking-section) .contact-panel {
    column-gap: 0;
    grid-template-columns: var(--layout-equal-columns);
  }

  html[data-site="termobolig"] .contact-copy {
    position: sticky;
    top: var(--sticky-offset);
  }
}

/* Shared button variants: dark/light to accent, accent to dark, outline stays clear. */
html[data-site] .button {
  min-height: var(--button-min-height);
  padding: var(--button-padding-block) var(--button-padding-inline);
  border: var(--border-width) solid var(--graphite);
  border-radius: var(--measure-999px);
  color: var(--white) !important;
  background: var(--graphite) !important;
  font-size: var(--button-font-size);
  font-weight: var(--button-font-weight);
  line-height: var(--button-line-height);
  opacity: 1;
  transform: none;
  transition: color var(--duration-fast) ease, border-color var(--duration-fast) ease, background-color var(--duration-fast) ease;
}

html[data-site] .button--outline,
html[data-site] .button--quiet {
  color: var(--graphite) !important;
  border-color: var(--graphite) !important;
  background: transparent !important;
}

html[data-site] .button--light {
  color: var(--graphite) !important;
  border-color: var(--white) !important;
  background: var(--white) !important;
}

html[data-site] .button--underline {
  color: var(--graphite) !important;
  border-color: transparent !important;
  background: transparent !important;
  text-decoration: underline;
  text-decoration-thickness: var(--border-width);
  text-underline-offset: .28em;
}

html[data-site] .button:where(:not(.button--outline):not(.button--quiet):not(.button--underline):not(.button--accent):not(:disabled):not([aria-disabled="true"]):hover),
html[data-site] .button:where(:not(.button--outline):not(.button--quiet):not(.button--underline):not(.button--accent):not(:disabled):not([aria-disabled="true"]):focus-visible) {
  color: var(--on-accent) !important;
  border-color: var(--accent) !important;
  background: var(--accent) !important;
}

html[data-site] .button--outline:where(:not(:disabled):not([aria-disabled="true"]):hover),
html[data-site] .button--outline:where(:not(:disabled):not([aria-disabled="true"]):focus-visible),
html[data-site] .button--quiet:where(:not(:disabled):not([aria-disabled="true"]):hover),
html[data-site] .button--quiet:where(:not(:disabled):not([aria-disabled="true"]):focus-visible) {
  color: var(--accent) !important;
  border-color: var(--accent) !important;
  background: transparent !important;
}

html[data-site] .button--underline:where(:not(:disabled):not([aria-disabled="true"]):hover),
html[data-site] .button--underline:where(:not(:disabled):not([aria-disabled="true"]):focus-visible) {
  color: var(--accent) !important;
  border-color: transparent !important;
  background: transparent !important;
}

html[data-site] .hero__actions {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  align-items: center;
  gap: var(--space-3);
}

/* One action layout for image, pricing, information and result heroes.
   Let available content width decide wrapping, never a mobile breakpoint. */
html[data-site] .hero__actions > .button {
  flex: 0 0 auto;
  width: fit-content;
  max-width: 100%;
  text-align: left;
}

html[data-site] .media-hero .button--underline {
  color: var(--white) !important;
}

html[data-site] .media-hero .button--underline:hover,
html[data-site] .media-hero .button--underline:focus-visible {
  color: var(--accent) !important;
}

@media (min-width: 55.001rem) {
  html[data-site] body.home-template .site-header:not(.is-scrolled) .button--outline {
    color: var(--white) !important;
    border-color: var(--white) !important;
  }
}

@media (max-width: 55rem) {
  html[data-site] .site-header .header-cta {
    min-height: var(--measure-4-25rem);
  }

  /* Mobile CTA focus stays inside the button, without an outer ring. */
  html[data-site] .button:focus {
    outline: 0;
    box-shadow: none !important;
  }

  html[data-site] .button:focus-visible {
    text-decoration: underline;
    text-decoration-thickness: var(--focus-width);
    text-underline-offset: .28em;
  }
}

html[data-site] .consent .button {
  min-height: var(--measure-3-6rem);
  padding: var(--measure-0-85rem) var(--space-4);
  box-shadow: none !important;
}

html[data-site] .main-nav > a:not(.button):hover,
html[data-site] .main-nav > a:not(.button):focus-visible {
  color: inherit !important;
}

html[data-site] .main-nav .header-cta {
  opacity: 1 !important;
  transition: color var(--duration-fast) ease, border-color var(--duration-fast) ease, background-color var(--duration-fast) ease !important;
}

html[data-site] .button--accent {
  color: var(--on-accent) !important;
  border-color: var(--accent) !important;
  background: var(--accent) !important;
}

html[data-site] .button--accent:where(:not(:disabled):not([aria-disabled="true"]):hover),
html[data-site] .button--accent:where(:not(:disabled):not([aria-disabled="true"]):focus-visible) {
  color: var(--white) !important;
  border-color: var(--graphite) !important;
  background: var(--graphite) !important;
  opacity: 1;
}

html[data-site] .form-actions .button--accent,
html[data-site] .price-calculator > [data-price-cta].button--accent {
  min-height: var(--button-min-height);
  padding-block: var(--button-padding-block);
  font-size: var(--button-font-size);
}

/* September refinement v34 — stable field feedback and in-button submit progress. */
html[data-site] :is(
  input:not([type="search"]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="button"]):not([type="submit"]),
  select,
  textarea
):not(:disabled):not([readonly]) {
  transition: border-color .16s ease, box-shadow .16s ease;
}

html[data-site] :is(
  input:not([type="search"]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="button"]):not([type="submit"]),
  select,
  textarea
):where(:not(:disabled):not([readonly]):not([aria-invalid="true"]):hover) {
  border-color: var(--accent) !important;
  box-shadow: none !important;
}

html[data-site] :is(
  input:not([type="search"]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="button"]):not([type="submit"]),
  select,
  textarea
):not(:disabled):not([readonly]):not([aria-invalid="true"]):focus {
  outline: 0;
  border-width: var(--border-width) !important;
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 var(--focus-width) var(--accent) !important;
}

html[data-site] :is(.smart-search__input, .price-area-input):hover,
html[data-site] .choice-card:hover {
  border-color: var(--accent) !important;
  box-shadow: none !important;
}

html[data-site] :is(.smart-search__input, .price-area-input):focus-within,
html[data-site] .choice-card:has(input:focus-visible) {
  outline: 0;
  border-width: var(--border-width) !important;
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 var(--focus-width) var(--accent) !important;
}

html[data-site] .smart-search__input input:focus,
html[data-site] .price-calculator .price-area-input input[type="text"]:focus {
  border: 0 !important;
  box-shadow: none !important;
}

html[data-site] :is(input[type="checkbox"], input[type="radio"]):where(:not(:disabled):not([aria-invalid="true"]):hover) {
  border-color: var(--accent) !important;
  box-shadow: none !important;
}

html[data-site] :is(input[type="checkbox"], input[type="radio"]):not([aria-invalid="true"]):focus-visible {
  outline: 0;
  border-width: var(--border-width) !important;
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 var(--focus-width) var(--accent) !important;
}

html[data-site] .price-calculator .quantity-stepper :is(button, input[type="text"]):where(:not(:disabled):hover) {
  border-color: var(--accent) !important;
  box-shadow: none !important;
}

html[data-site] .price-calculator .quantity-stepper :is(button, input[type="text"]):focus-visible {
  outline: 0;
  border-width: var(--border-width) !important;
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 var(--focus-width) var(--accent) !important;
}

html[data-site] input[type="range"]:hover::-webkit-slider-thumb {
  border: var(--border-width) solid var(--accent);
  box-shadow: none;
}

html[data-site] input[type="range"]:focus-visible::-webkit-slider-thumb {
  border: var(--border-width) solid var(--accent);
  box-shadow: 0 0 0 var(--focus-width) var(--accent);
}

html[data-site] input[type="range"]:hover::-moz-range-thumb {
  border: var(--border-width) solid var(--accent);
  box-shadow: none;
}

html[data-site] input[type="range"]:focus-visible::-moz-range-thumb {
  border: var(--border-width) solid var(--accent);
  box-shadow: 0 0 0 var(--focus-width) var(--accent);
}

html[data-site] .form-actions .button[aria-busy="true"] {
  gap: var(--measure-0-7rem);
  cursor: wait;
  opacity: .7;
  pointer-events: none;
}

.button__spinner {
  width: var(--space-4);
  height: var(--space-4);
  flex: 0 0 auto;
  border: var(--focus-width) solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: form-button-spinner .7s linear infinite;
}

.button__loading-label {
  white-space: nowrap;
}

@keyframes form-button-spinner {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .button__spinner {
    animation: none;
  }
}

/* September refinement v38 — immediate feedback; shared navigation lines animate above. */
html[data-site] :is(a, button, input, select, textarea),
html[data-site] :is(.service-card, .article-card, .choice-card, .digital-price-card),
html[data-site] :is(.plain-link, .text-link) span,
html[data-site] .service-row h3,
html[data-site] .service-row > span,
html[data-site] .service-row > .chevron-icon,
html[data-site] .family-service-list b i,
html[data-site] .family-service-list img,
html[data-site] .product-card::before {
  transition: none !important;
}

/* September refinement v39 — shared underlined-link hover treatment. */
html[data-site] .text-link:hover,
html[data-site] .text-link:focus-visible {
  color: var(--accent);
}

/* September refinement v40 — consistent interactive FAQ colours. */
html[data-site] .faq summary:hover,
html[data-site] .faq summary:focus-visible,
html[data-site] .faq details[open] > summary {
  color: var(--accent);
}

html[data-site] .faq details > div,
html[data-site] .faq details > div p {
  color: var(--graphite);
}

/* September refinement v41 — shared accent feedback for direct contact links. */
html[data-site] .contact-direct a:hover,
html[data-site] .contact-direct a:focus-visible {
  color: var(--accent);
}

/* Shared controls animate; outlined logos keep their shape on every surface. */
html[data-site] button:not([data-consent-open]),
html[data-site] .button {
  transition: color var(--duration-fast) ease, background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease !important;
}

@media (prefers-reduced-motion: reduce) {
  html[data-site] button:not([data-consent-open]),
  html[data-site] .button {
    transition-duration: .01ms !important;
  }
}

/* September refinement v44 — the mobile menu toggle changes state instantly. */
html[data-site] button.menu-toggle,
html[data-site] .menu-toggle__lines,
html[data-site] .menu-toggle__lines::before,
html[data-site] .menu-toggle__lines::after {
  transition: none !important;
}

/* September refinement v45 — mobile CTA first, primary navigation anchored low. */
@media (max-width: 55rem) {
  html[data-site] .site-header .main-nav {
    height: 100dvh;
    padding-bottom: calc(var(--mobile-menu-bottom) + var(--space-8));
    scroll-padding-top: var(--space-24);
    overscroll-behavior: contain;
  }

  html[data-site] .site-header,
  html[data-site] .site-header .wordmark {
    transition: none !important;
  }

  html[data-site] .main-nav__intro {
    flex: 0 0 auto;
    margin-bottom: var(--space-2);
  }

  html[data-site] body .site-header .main-nav .header-cta {
    flex: 0 0 auto;
    margin: 0 !important;
  }

  html[data-site] .main-nav > a:not(.button) {
    flex: 0 0 auto;
  }

  html[data-site] body .site-header .main-nav .header-cta + a:not(.button) {
    margin-top: auto;
  }
}

/* Keep the longer navigation labels clear of the fixed toggle on narrow phones. */
@media (max-width: 25rem) {
  html[data-site] .main-nav > a:not(.button) {
    display: flex;
    min-height: var(--measure-2-75rem);
    align-items: center;
    font-size: var(--type-menu-size);
  }
}

/* September refinement v47 — a calmer mobile ending for the expert section. */
@media (max-width: 40rem) {
  html[data-site] .section--glen .glen-copy {
    padding-bottom: var(--space-16);
  }
}

/* Mobile toggle: dark when closed, outlined when open, on the navigation's bottom axis. */
@media (max-width: 55rem) {
  html[data-site] .site-header .menu-toggle {
    bottom: var(--mobile-menu-bottom);
    min-height: var(--button-min-height);
    color: var(--white);
    border-color: var(--graphite);
    background: var(--graphite);
  }

  html[data-site] .site-header .menu-toggle[aria-expanded="true"] {
    color: var(--graphite);
    border-color: var(--graphite);
    background: transparent;
  }

  html[data-site] .site-header .menu-toggle:focus-visible {
    box-shadow: 0 0 0 var(--measure-3px) var(--paper-light), 0 0 0 var(--measure-5px) var(--focus);
  }
}

/* September refinement v49 — align pricing guidance with the contact form column. */
@media (min-width: 68.001rem) {
  html[data-site="termobolig"] body.pricing-template .pricing-terms__grid {
    grid-template-columns: minmax(0, 1fr) 50%;
  }
}

/* September refinement v51 — service titles read as links before interaction. */
html[data-site] .service-row h3 {
  color: var(--accent);
  hyphens: auto;
  -webkit-hyphens: auto;
}

html[data-site] .service-row:where(:hover, :focus-visible) h3 {
  color: var(--graphite);
}

html[data-site] .glen-copy > .text-link:hover,
html[data-site] .glen-copy > .text-link:focus-visible {
  color: var(--white);
}

/* September refinement v54 — a tighter, more varied editorial reading rhythm. */
html[data-site] .article-page--editorial .article-header {
  padding-bottom: 0;
}

html[data-site] .article-page--editorial .article-reading-layout {
  padding-block: var(--section-space) var(--section-space);
}

html[data-site] .article-page--editorial .article-content {
  width: min(100%, var(--measure-46rem));
  margin-inline: 0;
}

html[data-site] .article-page--editorial .article-content h2 {
  max-width: 22ch;
  margin-top: clamp(var(--measure-3-75rem), 5vw, var(--measure-4-75rem));
  font-size: var(--type-article-section-size);
  line-height: var(--leading-scale-1-08);
}

html[data-site] .article-page--editorial .answer-box {
  margin-bottom: clamp(var(--measure-3-5rem), 5vw, var(--measure-4-5rem));
}

html[data-site] .article-page--editorial .answer-box + h2 {
  margin-top: 0;
}

html[data-site] .article-page--editorial .article-list {
  margin-block: var(--measure-1-75rem) var(--space-10);
}

html[data-site] .article-page--editorial .article-list li::marker {
  color: var(--accent);
  font-weight: var(--weight-bold);
}

@media (max-width: 68rem) {
  html[data-site] .article-page--editorial .article-content,
  html[data-site] .article-page--editorial .article-toc {
    width: min(100%, var(--measure-46rem));
  }
}

@media (max-width: 40rem) {
  html[data-site] .article-page--editorial .article-reading-layout {
    padding-block: var(--space-12) var(--space-20);
  }

  html[data-site] .article-page--editorial .article-content h2 {
    margin-top: var(--measure-3-5rem);
    font-size: var(--type-article-section-mobile-size);
  }
}

/* Header CTA: dark outline on light surfaces, white over image heroes. */
html[data-site] body .site-header .main-nav .header-cta.button.button--outline {
  color: var(--graphite) !important;
  border-color: var(--graphite) !important;
  background: transparent !important;
}

html[data-site] body .site-header .main-nav .header-cta.button.button--outline:hover,
html[data-site] body .site-header .main-nav .header-cta.button.button--outline:focus-visible {
  color: var(--accent) !important;
  border-color: var(--accent) !important;
  background: transparent !important;
  opacity: 1 !important;
}

@media (min-width: 55.001rem) {
  /* A scrolled header uses a dark outline, with accent feedback. */
  html[data-site] body .site-header.is-scrolled .main-nav .header-cta.button.button--outline {
    color: var(--graphite) !important;
    border-color: var(--graphite) !important;
  }

  html[data-site] body .site-header.is-scrolled .main-nav .header-cta.button.button--outline:hover,
  html[data-site] body .site-header.is-scrolled .main-nav .header-cta.button.button--outline:focus-visible {
    color: var(--accent) !important;
    border-color: var(--accent) !important;
  }

  html[data-site] body:is(.home-template, .service-template, .local-template, .profile-template) .site-header:not(.is-scrolled) .main-nav .header-cta.button.button--outline {
    color: var(--white) !important;
    border-color: var(--white) !important;
    background: transparent !important;
  }

  html[data-site] body:is(.home-template, .service-template, .local-template, .profile-template) .site-header:not(.is-scrolled) .main-nav .header-cta.button.button--outline:hover,
  html[data-site] body:is(.home-template, .service-template, .local-template, .profile-template) .site-header:not(.is-scrolled) .main-nav .header-cta.button.button--outline:focus-visible {
    color: var(--accent) !important;
    border-color: var(--accent) !important;
    background: transparent !important;
  }
}

/* Mobile navigation keeps its brand-accent fill in every interaction state. */
@media (max-width: 55rem) {
  html[data-site] body .site-header .main-nav .header-cta.button.button--outline,
  html[data-site] body .site-header .main-nav .header-cta.button.button--outline:hover,
  html[data-site] body .site-header .main-nav .header-cta.button.button--outline:focus-visible,
  html[data-site] body .site-header .main-nav .header-cta.button.button--outline:active {
    color: var(--on-accent) !important;
    border-color: var(--accent) !important;
    background: var(--accent) !important;
  }
}

/* Image hero primary: brand accent, then white on hover or keyboard focus. */
html[data-site] .media-hero .hero__actions > .button:not(.button--underline):not(.button--accent):not(.button--outline):not(.button--quiet) {
  color: var(--on-accent) !important;
  border-color: var(--accent) !important;
  background: var(--accent) !important;
}

html[data-site] .media-hero .hero__actions > .button:not(.button--underline):not(.button--accent):not(.button--outline):not(.button--quiet):where(:not(:disabled):not([aria-disabled="true"])):hover,
html[data-site] .media-hero .hero__actions > .button:not(.button--underline):not(.button--accent):not(.button--outline):not(.button--quiet):where(:not(:disabled):not([aria-disabled="true"])):focus-visible {
  color: var(--graphite) !important;
  border-color: var(--white) !important;
  background: var(--white) !important;
}

html[data-site] .media-hero .hero__actions > .button--underline {
  color: var(--white) !important;
  border-color: transparent !important;
  background: transparent !important;
  text-decoration-color: currentColor;
}

html[data-site] .media-hero .hero__actions > .button--underline:hover,
html[data-site] .media-hero .hero__actions > .button--underline:focus-visible {
  color: var(--accent) !important;
  text-decoration-color: currentColor;
}

/* OAuth information uses the existing legal reading layout and brand tokens. */
.legal-page h1 {
  max-width: 100%;
  font-size: var(--type-legal-page-h1-size);
  hyphens: auto;
}

.booking-information .article-content {
  background: var(--paper);
}

.booking-information__services {
  display: grid;
  grid-template-columns: var(--layout-equal-columns);
  gap: var(--space-8);
  margin-block: var(--space-10) var(--measure-3-5rem);
}

.booking-information__services > section {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-top: var(--space-6);
  border-top: var(--border-width) solid var(--line);
}

.booking-information__services h3 {
  font-size: var(--type-subheading-size);
  overflow-wrap: anywhere;
}

.booking-information__services a {
  margin-top: auto;
  font-weight: var(--weight-bold);
}

.booking-information :is(a, li) {
  overflow-wrap: anywhere;
}

@media (max-width: 40rem) {
  .booking-information__services {
    grid-template-columns: 1fr;
  }
}

/* September refinement v57 — complete service lists always sit on white. */
html[data-site="termobolig"] .service-choice {
  background: var(--white);
}

html[data-site="termobolig"] .local-context--refined {
  background: var(--paper);
}

/* One transparent initial header across the family; the shared .is-scrolled
   state supplies the light fill and subtle border. Continue each plain hero's
   surface through the main's header clearance, so transparency leaves no seam. */
html[data-site] body:not(.menu-open) .site-header:not(.is-scrolled) {
  border-bottom-color: transparent;
  background: transparent !important;
  backdrop-filter: none;
}

html[data-site] body:is(.pricing-template, .article-template, .legal-template, .result-template) main,
html[data-site] body.archive-template main {
  background: var(--paper);
}

html[data-site] body.archive-template main {
  background: var(--paper-light);
}

/* A quiet, wrapping breadcrumb trail between the final section and footer. */
html[data-site] .page-breadcrumbs {
  padding-block: var(--space-6);
  border-top: var(--border-width) solid var(--line);
  background: var(--paper-deep);
  color: var(--graphite-soft);
  font-size: var(--type-meta-size);
  line-height: var(--leading-body);
}

html[data-site] .page-breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: var(--measure-0-35rem) var(--space-3);
  padding: 0;
  margin-block: 0;
  list-style: none;
}

html[data-site] .page-breadcrumbs li {
  display: flex;
  gap: var(--space-3);
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

html[data-site] .page-breadcrumbs li + li::before {
  content: "/";
  color: var(--graphite-soft);
}

html[data-site] .page-breadcrumbs a {
  color: inherit;
  text-underline-offset: .2em;
}

html[data-site] .page-breadcrumbs a:where(:hover, :focus-visible) {
  color: var(--accent);
  text-decoration: underline;
}

/* Shared family refinements. Brand differences belong to tokens; component
   structure, reading rhythm and interaction states stay shared. */
html[data-site] :is(h1, h2, h3),
html[data-site] .article-header h1,
html[data-site] .article-page--editorial .article-content :is(h2, h3) {
  hyphens: manual;
  -webkit-hyphens: manual;
  hyphenate-limit-chars: 12 5 5;
  overflow-wrap: break-word;
  word-break: normal;
}

@media (max-width: 55rem) {
  html[data-site] :is(h1, h2, h3),
  html[data-site] .article-header h1,
  html[data-site] .article-page--editorial .article-content :is(h2, h3) {
    hyphens: auto;
    -webkit-hyphens: auto;
  }
}

html[data-site] .glen-copy > .text-link {
  color: var(--accent-on-dark);
}

html[data-site] .glen-copy > .text-link:where(:hover, :focus-visible) {
  color: var(--white);
}

html[data-site] :is(.offer-price, .booking-price) strong {
  color: var(--accent);
}

html[data-site] .media-hero__price strong {
  color: var(--accent-on-dark);
}

@media (min-width: 55.001rem) {
  .offer-panel,
  .booking-panel,
  .topic-layout,
  .scope-grid {
    grid-template-columns: var(--layout-equal-columns);
    column-gap: 0;
  }

  .topic-layout > div:first-child,
  .scope-grid > div:first-child {
    position: sticky;
    top: var(--sticky-offset);
    padding-right: var(--layout-column-inset);
  }
}

.offer-panel__intro,
.offer-panel__list,
.booking-product,
.booking-card {
  min-width: 0;
  padding: clamp(var(--space-8), 4vw, var(--space-16));
}

.booking-product {
  padding-top: var(--sticky-gap);
}

.offer-panel__intro > p:not(.section-label),
.topic-layout > div > p:last-child,
.scope-grid > div:first-child > p {
  max-width: var(--measure-34rem);
  font-size: var(--type-lead-size);
  line-height: var(--leading-lead);
}

.topic-list strong {
  color: var(--accent);
  font-size: var(--type-topic-list-strong-size);
  line-height: var(--leading-control);
  font-weight: var(--weight-medium);
}

.topic-list small,
.simple-steps p,
.scope-grid > div:last-child p,
.offer-panel__list li strong {
  line-height: var(--leading-lead);
}

.topic-list small {
  font-size: var(--type-body-size);
}

.simple-steps p,
.scope-grid > div:last-child p,
.offer-panel__list li strong {
  font-size: var(--type-body-size);
}

.topic-list a:where(:hover, :focus-visible) strong {
  color: var(--graphite);
}

html[data-site="enovahjelpen"] .enova-topics,
html[data-site="takseringshjelpen"] .calm-process {
  background: var(--white);
}

html[data-site="enovahjelpen"] .selected-reading:not(.article-related),
html[data-site="takseringshjelpen"] .offer-section {
  background: var(--paper);
}

/* Supporting articles follow the enquiry; separate the newly adjacent sections. */
html[data-site] .contact-section + .selected-reading:not(.article-related) {
  background: var(--paper-light);
}

html[data-site] .reassurance-section + .area-band {
  background: var(--white);
}

html[data-site] .enova-topics + .energy-offer {
  background: var(--paper);
}

html[data-site="takseringshjelpen"] .scope-section {
  color: var(--graphite);
  background: var(--brand-soft);
}

html[data-site="takseringshjelpen"] .scope-section :is(h2, h3, p) {
  color: var(--graphite);
}

html[data-site="takseringshjelpen"] .scope-grid > div:last-child,
html[data-site="takseringshjelpen"] .scope-grid > div:last-child p {
  border-color: var(--line-strong);
}

.article-header__copy:last-child {
  margin-bottom: 0;
}

html[data-site] .article-content :is(h2, h3),
html[data-site] .article-archive--editorial [data-article-grid] {
  scroll-margin-top: 0;
}

/* Native clicks, deep links and scrollIntoView must land on the TOC's top
   axis. Add only the difference: root scroll-padding already reserves the
   header and normal reading gap. Match the TOC's two-column breakpoint. */
@media (min-width: 68.001rem) {
  html[data-site] .article-page--editorial .article-content :is(h2, h3) {
    scroll-margin-top: calc(var(--sticky-offset) - var(--anchor-offset));
  }
}

.article-archive__intro .smart-search {
  max-width: var(--measure-46rem);
  margin-top: var(--space-10);
}

.archive-article-card:not(:has(.archive-article-card__media)) {
  padding-top: var(--measure-1-75rem);
  border-top: var(--border-width) solid var(--line-strong);
}

/* Search suggestions overlay the page, anchored directly to the input. */
html[data-site] .smart-search {
  position: relative;
  z-index: 3;
  padding: 0;
  color: var(--graphite);
}

html[data-site] .smart-search > label:not(.visually-hidden) {
  font-size: var(--type-body-size);
  line-height: var(--leading-meta);
}

html[data-site] .smart-search .smart-search__input {
  min-height: var(--measure-4-75rem);
  padding: 0 var(--space-5);
  border: var(--border-width) solid var(--line-strong);
  border-radius: var(--measure-0-2rem);
  grid-template-columns: auto minmax(0, 1fr) auto;
}

html[data-site] .smart-search .smart-search__input:focus-within {
  outline: 0;
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 var(--focus-width) var(--accent) !important;
}

html[data-site] .smart-search .smart-search__input input[type="search"],
html[data-site] .smart-search .smart-search__input input[type="search"]:is(:hover, :focus, :focus-visible) {
  width: 100%;
  min-height: var(--measure-4-75rem);
  padding: var(--space-4) 0 var(--space-4) var(--space-4);
  border: 0 !important;
  outline: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  color: var(--graphite) !important;
  background: transparent !important;
  font-family: var(--sans);
  font-size: var(--type-body-size);
  line-height: var(--leading-meta);
}

html[data-site] .smart-search:has(.smart-search__results:not([hidden])) .smart-search__input {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.smart-search__input input::-webkit-search-cancel-button {
  -webkit-appearance: none;
  appearance: none;
}

.smart-search__clear {
  display: grid;
  place-items: center;
  width: var(--measure-2-75rem);
  height: var(--measure-2-75rem);
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  color: var(--accent);
  background: transparent;
  cursor: pointer;
}

.smart-search__clear[hidden] {
  display: none;
}

.smart-search__clear:is(:hover, :focus-visible) {
  color: var(--accent);
  background: var(--brand-soft);
}

.smart-search__clear:focus-visible {
  outline: var(--focus-width) solid var(--accent);
  outline-offset: var(--focus-width);
}

.smart-search__input input::placeholder {
  color: var(--graphite-soft);
  opacity: 1;
}

.smart-search__input .icon {
  margin: 0;
  width: var(--space-6);
  height: var(--space-6);
}

html[data-site] .smart-search__results {
  position: absolute;
  top: 100%;
  inset-inline: 0;
  z-index: 4;
  max-height: min(var(--measure-32rem), 60svh);
  overflow-y: auto;
  overscroll-behavior: contain;
  scroll-padding: var(--space-2);
  margin-top: 0;
  border: var(--border-width) solid var(--line-strong);
  border-top: 0;
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  background: var(--white);
  box-shadow: var(--shadow-lg);
}

html[data-site] .smart-search__input:focus-within + .smart-search__results {
  inset-inline: calc(0px - var(--focus-width));
  border-inline-width: calc(var(--border-width) + var(--focus-width));
  border-color: var(--accent);
}

html[data-site] .smart-search__results > a[role="option"] {
  display: grid;
  gap: var(--measure-0-35rem);
  padding: var(--space-5);
  border: 0;
  border-bottom: var(--border-width) solid var(--line);
  text-decoration: none;
  scroll-margin: var(--space-2);
}

html[data-site] .smart-search__results > a[role="option"]:last-child {
  border-bottom: 0;
}

html[data-site] .smart-search__results strong {
  color: var(--graphite);
  font-size: var(--type-body-size);
  font-weight: var(--weight-control);
  line-height: var(--leading-scale-1-35);
  overflow-wrap: anywhere;
}

html[data-site] .smart-search__results small {
  color: var(--graphite-soft);
  font-size: var(--type-meta-size);
  line-height: var(--leading-scale-1-4);
}

html[data-site] .smart-search__results > a[role="option"]:is(:hover, :focus-visible, [aria-selected="true"]) {
  outline: 0;
  background: var(--brand-soft);
  box-shadow: inset var(--measure-3px) 0 var(--accent);
}

html[data-site] .smart-search__results .search-empty {
  margin: 0;
  padding: var(--space-5);
  color: var(--graphite);
  font-size: var(--type-body-size);
  line-height: var(--leading-meta);
}

html[data-site] .smart-search__results .search-empty a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

@media (max-width: 55rem) {
  .topic-layout,
  .scope-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-10);
  }
}

@media (max-width: 40rem) {
  html[data-site] .article-header h1 {
    font-size: var(--type-article-title-mobile-size);
  }

  .area-cards a {
    min-height: var(--measure-6-5rem);
  }

  .offer-panel__intro,
  .offer-panel__list,
  .booking-product,
  .booking-card {
    padding: var(--space-8) var(--space-5);
  }

  .offer-panel__intro > p:not(.section-label),
  .topic-layout > div > p:last-child,
  .scope-grid > div:first-child > p,
  .booking-product .lead {
    font-size: var(--type-lead-size);
  }

  html[data-site] .smart-search .smart-search__input {
    padding-inline: var(--measure-0-875rem);
    min-height: var(--space-16);
  }

  html[data-site] .smart-search .smart-search__input input[type="search"],
  html[data-site] .smart-search .smart-search__input input[type="search"]:is(:hover, :focus, :focus-visible) {
    min-height: var(--space-16);
    padding-left: var(--space-3);
    font-size: var(--type-body-size);
  }

  html[data-site] .smart-search__results strong {
    font-size: var(--type-body-size);
  }

  html[data-site] .smart-search__results > a[role="option"] {
    padding: var(--space-4);
  }
}
