@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&family=Jost:wght@300;400;500;600&display=swap');

:root {
  --ak-ink: #1b1119;
  --ak-ink-soft: #3a2a39;
  --ak-body: #2b1f2b;
  --ak-plum: #4c2145;
  --ak-plum-deep: #2a1027;
  --ak-plum-light: #6d3a63;
  --ak-gold: #d9a94a;
  --ak-gold-deep: #9d7318;
  --ak-cream: #fbf7f2;
  --ak-sand: #f0e6db;
  --ak-white: #ffffff;
  --ak-line: rgba(27, 17, 25, 0.12);
  --ak-line-light: rgba(255, 255, 255, 0.18);
  --ak-radius: 20px;
  --ak-radius-sm: 12px;
  --ak-radius-pill: 999px;
  --ak-shadow-sm: 0 8px 22px rgba(42, 16, 39, 0.08);
  --ak-shadow: 0 22px 55px rgba(42, 16, 39, 0.14);
  --ak-font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --ak-font-body: 'Jost', 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ak-container: 1200px;
  --ak-header-h: 92px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--ak-header-h) + 16px);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--ak-font-body);
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--ak-body);
  background-color: var(--ak-cream);
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--ak-plum);
  text-decoration: none;
  transition: color 0.25s ease, opacity 0.25s ease;
}

a:hover,
a:focus-visible {
  color: var(--ak-gold-deep);
}

ul,
ol {
  padding-left: 1.15rem;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--ak-font-display);
  font-weight: 600;
  line-height: 1.18;
  color: var(--ak-ink);
  margin: 0 0 0.75rem;
  letter-spacing: -0.01em;
}

h1 { font-size: clamp(2.2rem, 4.6vw, 3.6rem); }
h2 { font-size: clamp(1.8rem, 3.4vw, 2.7rem); }
h3 { font-size: clamp(1.3rem, 2.1vw, 1.7rem); }
h4 { font-size: 1.15rem; }

p { margin: 0 0 1rem; }

::selection {
  background: var(--ak-gold);
  color: var(--ak-ink);
}

:focus-visible {
  outline: 3px solid var(--ak-gold-deep);
  outline-offset: 3px;
}

.ak-container {
  width: 100%;
  max-width: var(--ak-container);
  margin: 0 auto;
  padding: 0 20px;
}

.ak-section {
  position: relative;
  padding: 96px 0;
}

.ak-section--tight { padding: 64px 0; }
.ak-section--cream { background-color: var(--ak-cream); }
.ak-section--sand { background-color: var(--ak-sand); }
.ak-section--white { background-color: var(--ak-white); }

.ak-section--dark {
  background-color: var(--ak-plum-deep);
  color: #f6eef5;
}

.ak-section--dark h1,
.ak-section--dark h2,
.ak-section--dark h3,
.ak-section--dark h4 {
  color: var(--ak-white);
}

.ak-section--dark p,
.ak-section--dark li {
  color: rgba(255, 255, 255, 0.88);
}

.ak-section--overlay {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--ak-white);
}

.ak-section--overlay h1,
.ak-section--overlay h2,
.ak-section--overlay h3 {
  color: var(--ak-white);
}

.ak-section--overlay p,
.ak-section--overlay li {
  color: rgba(255, 255, 255, 0.9);
}

.ak-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ak-font-body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ak-gold-deep);
  margin-bottom: 14px;
}

.ak-section--dark .ak-eyebrow,
.ak-section--overlay .ak-eyebrow {
  color: var(--ak-gold);
}

.ak-eyebrow::before {
  content: "";
  width: 34px;
  height: 2px;
  background-color: currentColor;
  display: inline-block;
}

.ak-lead {
  font-size: 1.15rem;
  line-height: 1.8;
  max-width: 68ch;
}

.ak-muted {
  color: #5c4a5a;
}

.ak-section--dark .ak-muted,
.ak-section--overlay .ak-muted {
  color: rgba(255, 255, 255, 0.8);
}

.ak-head {
  max-width: 720px;
  margin-bottom: 52px;
}

.ak-head--center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.ak-head--center .ak-eyebrow {
  justify-content: center;
}

.ak-divider {
  width: 72px;
  height: 3px;
  background: linear-gradient(90deg, var(--ak-gold), var(--ak-plum-light));
  border-radius: var(--ak-radius-pill);
  margin: 18px 0 0;
}

.ak-head--center .ak-divider {
  margin-left: auto;
  margin-right: auto;
}

.ak-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 15px 32px;
  border: 2px solid transparent;
  border-radius: var(--ak-radius-pill);
  font-family: var(--ak-font-body);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.ak-btn:hover {
  transform: translateY(-3px);
}

.ak-btn--gold {
  background-color: var(--ak-gold);
  color: var(--ak-ink);
  box-shadow: 0 14px 32px rgba(157, 115, 24, 0.32);
}

.ak-btn--gold:hover,
.ak-btn--gold:focus-visible {
  background-color: #e6bb63;
  color: var(--ak-ink);
}

.ak-btn--plum {
  background-color: var(--ak-plum);
  color: var(--ak-white);
  box-shadow: 0 14px 32px rgba(42, 16, 39, 0.28);
}

.ak-btn--plum:hover,
.ak-btn--plum:focus-visible {
  background-color: var(--ak-plum-light);
  color: var(--ak-white);
}

.ak-btn--ghost {
  background-color: transparent;
  border-color: rgba(255, 255, 255, 0.65);
  color: var(--ak-white);
}

.ak-btn--ghost:hover,
.ak-btn--ghost:focus-visible {
  background-color: var(--ak-white);
  color: var(--ak-ink);
  border-color: var(--ak-white);
}

.ak-btn--outline {
  background-color: transparent;
  border-color: var(--ak-plum);
  color: var(--ak-plum);
}

.ak-btn--outline:hover,
.ak-btn--outline:focus-visible {
  background-color: var(--ak-plum);
  color: var(--ak-white);
}

.ak-btn--block { width: 100%; }
.ak-btn--sm { padding: 11px 22px; font-size: 0.82rem; }

.ak-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1040;
  background-color: rgba(27, 17, 25, 0.86);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--ak-line-light);
  transition: background-color 0.3s ease, padding 0.3s ease, box-shadow 0.3s ease;
}

.ak-header.is-scrolled {
  background-color: rgba(27, 17, 25, 0.97);
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.32);
}

.ak-header__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  min-height: var(--ak-header-h);
  padding: 14px 0;
}

.ak-header__brand {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: var(--ak-white);
  font-family: var(--ak-font-display);
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.ak-header__brand:hover {
  color: var(--ak-gold);
}

.ak-header__brand-text small {
  display: block;
  font-family: var(--ak-font-body);
  font-size: 0.62rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--ak-gold);
  font-weight: 500;
}

.ak-header__meta {
  display: flex;
  align-items: center;
  gap: 26px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.88rem;
}

.ak-header__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

.ak-header__meta-item i {
  color: var(--ak-gold);
}

.ak-nav {
  display: flex;
  align-items: center;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.ak-nav__link {
  display: inline-block;
  padding: 10px 14px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-radius: var(--ak-radius-pill);
  position: relative;
}

.ak-nav__link:hover,
.ak-nav__link:focus-visible {
  color: var(--ak-gold);
  background-color: rgba(255, 255, 255, 0.08);
}

.ak-nav__link.is-active {
  color: var(--ak-ink);
  background-color: var(--ak-gold);
}

.ak-header__toggle {
  display: none;
  width: 48px;
  height: 48px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ak-line-light);
  border-radius: var(--ak-radius-sm);
  background: transparent;
  color: var(--ak-white);
  font-size: 1.15rem;
}

.ak-header__toggle:hover { color: var(--ak-gold); }

.ak-hero {
  position: relative;
  padding: calc(var(--ak-header-h) + 96px) 0 110px;
  background-size: cover;
  background-position: center;
  color: var(--ak-white);
  overflow: hidden;
}

.ak-hero--page {
  padding: calc(var(--ak-header-h) + 70px) 0 90px;
}

.ak-hero h1,
.ak-hero h2 { color: var(--ak-white); }

.ak-hero__inner {
  position: relative;
  z-index: 2;
  max-width: 780px;
}

.ak-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 34px;
  margin-top: 34px;
  padding-top: 26px;
  border-top: 1px solid var(--ak-line-light);
  list-style: none;
  padding-left: 0;
}

.ak-hero__meta li {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.92rem;
}

.ak-hero__meta i { color: var(--ak-gold); }

.ak-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 34px;
}

.ak-hero__badge {
  position: absolute;
  right: 6%;
  bottom: 12%;
  z-index: 3;
  width: 190px;
  padding: 24px 20px;
  text-align: center;
  background-color: rgba(255, 255, 255, 0.96);
  color: var(--ak-ink);
  border-radius: var(--ak-radius);
  box-shadow: var(--ak-shadow);
}

.ak-hero__badge strong {
  display: block;
  font-family: var(--ak-font-display);
  font-size: 2.1rem;
  color: var(--ak-plum);
  line-height: 1;
}

.ak-hero__badge span {
  display: block;
  margin-top: 8px;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #4a3a48;
}

.ak-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ak-breadcrumb li { color: rgba(255, 255, 255, 0.78); }
.ak-breadcrumb a { color: var(--ak-gold); }
.ak-breadcrumb li + li::before {
  content: "/";
  margin-right: 8px;
  color: rgba(255, 255, 255, 0.5);
}

.ak-grid {
  display: grid;
  gap: 28px;
}

.ak-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ak-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ak-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ak-grid--split {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 56px;
}

.ak-card {
  position: relative;
  background-color: var(--ak-white);
  border: 1px solid var(--ak-line);
  border-radius: var(--ak-radius);
  padding: 34px 30px;
  box-shadow: var(--ak-shadow-sm);
  transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
  height: 100%;
}

.ak-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--ak-shadow);
  border-color: rgba(157, 115, 24, 0.35);
}

.ak-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  margin-bottom: 20px;
  border-radius: 18px;
  background: linear-gradient(135deg, var(--ak-plum), var(--ak-plum-light));
  color: var(--ak-gold);
  font-size: 1.35rem;
}

.ak-card h3 { margin-bottom: 10px; }

.ak-card__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ak-plum);
}

.ak-card__link:hover { color: var(--ak-gold-deep); }

.ak-service-card {
  overflow: hidden;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.ak-service-card__media {
  position: relative;
  aspect-ratio: 16 / 11;
  overflow: hidden;
  background-color: var(--ak-sand);
}

.ak-service-card__media img,
.ak-service-card__media > a img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.ak-service-card:hover .ak-service-card__media img {
  transform: scale(1.06);
}

.ak-service-card__tag {
  position: absolute;
  top: 16px;
  left: 16px;
  padding: 7px 15px;
  border-radius: var(--ak-radius-pill);
  background-color: rgba(27, 17, 25, 0.85);
  color: var(--ak-gold);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.ak-service-card__body {
  padding: 26px 28px 30px;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.ak-service-card__body p { flex: 1 1 auto; }

.ak-media-frame {
  position: relative;
  border-radius: var(--ak-radius);
  overflow: hidden;
  box-shadow: var(--ak-shadow);
  background-color: var(--ak-sand);
}

.ak-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 4 / 3;
}

.ak-media-frame--portrait img { aspect-ratio: 3 / 4; }

.ak-media-frame__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 22px 24px;
  background: linear-gradient(to top, rgba(20, 8, 19, 0.88), rgba(20, 8, 19, 0));
  color: var(--ak-white);
  font-size: 0.9rem;
}

.ak-media-frame__caption strong {
  display: block;
  font-family: var(--ak-font-display);
  font-size: 1.15rem;
  color: var(--ak-white);
}

.ak-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.ak-stat {
  text-align: center;
  padding: 28px 16px;
  border-radius: var(--ak-radius);
  background-color: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--ak-line-light);
}

.ak-stat__value {
  display: block;
  font-family: var(--ak-font-display);
  font-size: clamp(2rem, 3.6vw, 2.9rem);
  line-height: 1;
  color: var(--ak-gold);
}

.ak-stat__label {
  display: block;
  margin-top: 12px;
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.86);
}

.ak-steps {
  counter-reset: ak-step;
  display: grid;
  gap: 22px;
}

.ak-step {
  position: relative;
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
  padding: 26px 28px;
  border-radius: var(--ak-radius);
  background-color: var(--ak-white);
  border: 1px solid var(--ak-line);
  box-shadow: var(--ak-shadow-sm);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.ak-step:hover {
  transform: translateX(6px);
  box-shadow: var(--ak-shadow);
}

.ak-step__num {
  counter-increment: ak-step;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background-color: var(--ak-plum);
  color: var(--ak-gold);
  font-family: var(--ak-font-display);
  font-size: 1.35rem;
  font-weight: 600;
}

.ak-step__num::before { content: counter(ak-step, decimal-leading-zero); }

.ak-step h3 { margin-bottom: 6px; font-size: 1.18rem; }
.ak-step p { margin: 0; font-size: 0.99rem; }

.ak-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 190px;
  gap: 18px;
}

.ak-gallery__item {
  position: relative;
  overflow: hidden;
  border-radius: var(--ak-radius-sm);
  background-color: var(--ak-sand);
}

.ak-gallery__item--wide { grid-column: span 2; }
.ak-gallery__item--tall { grid-row: span 2; }

.ak-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.ak-gallery__item:hover img { transform: scale(1.07); }

.ak-gallery__caption {
  position: absolute;
  inset: auto 0 0 0;
  padding: 18px;
  background: linear-gradient(to top, rgba(20, 8, 19, 0.9), rgba(20, 8, 19, 0));
  color: var(--ak-white);
  font-size: 0.88rem;
}

.ak-slider {
  position: relative;
  overflow: hidden;
  border-radius: var(--ak-radius);
}

.ak-slider__track {
  display: flex;
  transition: transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}

.ak-slider__slide {
  flex: 0 0 100%;
  min-width: 100%;
  position: relative;
}

.ak-slider__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 16 / 8;
}

.ak-slider__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 42px;
  background: linear-gradient(to top, rgba(20, 8, 19, 0.88), rgba(20, 8, 19, 0.05));
  color: var(--ak-white);
}

.ak-slider__overlay h3 {
  color: var(--ak-white);
  font-size: clamp(1.4rem, 2.6vw, 2.1rem);
  margin-bottom: 8px;
}

.ak-slider__overlay p {
  color: rgba(255, 255, 255, 0.9);
  max-width: 60ch;
  margin: 0;
}

.ak-slider__controls {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-between;
  padding: 0 20px;
  pointer-events: none;
}

.ak-slider__arrow {
  pointer-events: auto;
  width: 52px;
  height: 52px;
  border: none;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.9);
  color: var(--ak-ink);
  font-size: 1rem;
  cursor: pointer;
  transition: background-color 0.25s ease, transform 0.25s ease;
}

.ak-slider__arrow:hover {
  background-color: var(--ak-gold);
  transform: scale(1.06);
}

.ak-slider__dots {
  position: absolute;
  bottom: 22px;
  right: 32px;
  display: flex;
  gap: 10px;
}

.ak-slider__dot {
  width: 11px;
  height: 11px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: background-color 0.25s ease, width 0.25s ease;
}

.ak-slider__dot.is-active {
  width: 32px;
  border-radius: var(--ak-radius-pill);
  background-color: var(--ak-gold);
}

.ak-quote {
  background-color: var(--ak-white);
  border: 1px solid var(--ak-line);
  border-radius: var(--ak-radius);
  padding: 34px 32px;
  box-shadow: var(--ak-shadow-sm);
  height: 100%;
  display: flex;
  flex-direction: column;
}

.ak-quote__stars {
  color: var(--ak-gold-deep);
  letter-spacing: 3px;
  margin-bottom: 16px;
}

.ak-quote__text {
  font-family: var(--ak-font-display);
  font-size: 1.08rem;
  line-height: 1.7;
  color: var(--ak-ink);
  flex: 1 1 auto;
}

.ak-quote__author {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--ak-line);
}

.ak-quote__author img {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  object-fit: cover;
  background-color: var(--ak-sand);
}

.ak-quote__name {
  font-weight: 600;
  color: var(--ak-ink);
  display: block;
  line-height: 1.3;
}

.ak-quote__role {
  font-size: 0.84rem;
  color: #5c4a5a;
}

.ak-partners {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 22px;
}

.ak-partners__item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 172px;
  padding: 22px 26px;
  border-radius: var(--ak-radius-sm);
  background-color: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--ak-line-light);
  color: var(--ak-white);
  font-family: var(--ak-font-display);
  font-size: 1.05rem;
  letter-spacing: 0.04em;
}

.ak-price-card {
  display: flex;
  flex-direction: column;
  background-color: var(--ak-white);
  border: 1px solid var(--ak-line);
  border-radius: var(--ak-radius);
  padding: 36px 30px;
  box-shadow: var(--ak-shadow-sm);
  height: 100%;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.ak-price-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--ak-shadow);
}

.ak-price-card--featured {
  background-color: var(--ak-plum-deep);
  border-color: var(--ak-plum-deep);
  color: rgba(255, 255, 255, 0.9);
}

.ak-price-card--featured h3 { color: var(--ak-white); }

.ak-price-card__badge {
  align-self: flex-start;
  margin-bottom: 14px;
  padding: 6px 16px;
  border-radius: var(--ak-radius-pill);
  background-color: var(--ak-gold);
  color: var(--ak-ink);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.ak-price-card__amount {
  font-family: var(--ak-font-display);
  font-size: 2.6rem;
  line-height: 1;
  color: var(--ak-plum);
  margin: 6px 0 4px;
}

.ak-price-card--featured .ak-price-card__amount { color: var(--ak-gold); }

.ak-price-card__period {
  font-size: 0.84rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #5c4a5a;
}

.ak-price-card--featured .ak-price-card__period { color: rgba(255, 255, 255, 0.78); }

.ak-price-card__list {
  list-style: none;
  padding: 0;
  margin: 24px 0 28px;
  flex: 1 1 auto;
}

.ak-price-card__list li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 9px 0;
  border-bottom: 1px dashed var(--ak-line);
  font-size: 0.96rem;
}

.ak-price-card--featured .ak-price-card__list li {
  border-bottom-color: rgba(255, 255, 255, 0.16);
}

.ak-price-card__list i {
  color: var(--ak-gold-deep);
  margin-top: 6px;
}

.ak-price-card--featured .ak-price-card__list i { color: var(--ak-gold); }

.ak-price-table {
  width: 100%;
  border-collapse: collapse;
  background-color: var(--ak-white);
  border-radius: var(--ak-radius);
  overflow: hidden;
  box-shadow: var(--ak-shadow-sm);
}

.ak-price-table th,
.ak-price-table td {
  padding: 18px 22px;
  text-align: left;
  border-bottom: 1px solid var(--ak-line);
}

.ak-price-table thead th {
  background-color: var(--ak-plum);
  color: var(--ak-white);
  font-family: var(--ak-font-body);
  font-size: 0.8rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.ak-price-table tbody tr:last-child td { border-bottom: none; }

.ak-price-table tbody tr:hover { background-color: rgba(217, 169, 74, 0.08); }

.ak-price-table .ak-price-table__amount {
  font-family: var(--ak-font-display);
  font-size: 1.15rem;
  color: var(--ak-plum);
  white-space: nowrap;
}

.ak-team-card {
  background-color: var(--ak-white);
  border: 1px solid var(--ak-line);
  border-radius: var(--ak-radius);
  overflow: hidden;
  box-shadow: var(--ak-shadow-sm);
  height: 100%;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.ak-team-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--ak-shadow);
}

.ak-team-card__media {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background-color: var(--ak-sand);
}

.ak-team-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ak-team-card__body { padding: 24px 24px 28px; }

.ak-team-card__role {
  display: block;
  margin-bottom: 10px;
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ak-gold-deep);
}

.ak-team-card__social {
  display: flex;
  gap: 12px;
  margin-top: 16px;
  list-style: none;
  padding: 0;
}

.ak-team-card__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: var(--ak-sand);
  color: var(--ak-plum);
  transition: background-color 0.25s ease, color 0.25s ease;
}

.ak-team-card__social a:hover {
  background-color: var(--ak-plum);
  color: var(--ak-gold);
}

.ak-timeline {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0 0 0 34px;
  border-left: 2px solid var(--ak-line);
}

.ak-timeline__item {
  position: relative;
  padding-bottom: 34px;
}

.ak-timeline__item:last-child { padding-bottom: 0; }

.ak-timeline__item::before {
  content: "";
  position: absolute;
  left: -43px;
  top: 6px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: var(--ak-gold);
  border: 3px solid var(--ak-cream);
}

.ak-timeline__year {
  display: block;
  font-family: var(--ak-font-display);
  font-size: 1.2rem;
  color: var(--ak-plum);
  margin-bottom: 4px;
}

.ak-accordion .accordion-item {
  border: 1px solid var(--ak-line);
  border-radius: var(--ak-radius-sm) !important;
  margin-bottom: 14px;
  overflow: hidden;
  background-color: var(--ak-white);
}

.ak-accordion .accordion-button {
  font-family: var(--ak-font-display);
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--ak-ink);
  background-color: var(--ak-white);
  padding: 22px 26px;
  box-shadow: none;
}

.ak-accordion .accordion-button:not(.collapsed) {
  color: var(--ak-plum);
  background-color: rgba(217, 169, 74, 0.14);
}

.ak-accordion .accordion-button:focus {
  box-shadow: none;
  border-color: var(--ak-gold);
}

.ak-accordion .accordion-body {
  padding: 4px 26px 24px;
  color: var(--ak-body);
}

.ak-form {
  background-color: var(--ak-white);
  border: 1px solid var(--ak-line);
  border-radius: var(--ak-radius);
  padding: 38px 34px;
  box-shadow: var(--ak-shadow-sm);
}

.ak-form--dark {
  background-color: rgba(255, 255, 255, 0.06);
  border-color: var(--ak-line-light);
  box-shadow: none;
}

.ak-field { margin-bottom: 20px; }

.ak-field__label {
  display: block;
  margin-bottom: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ak-ink-soft);
}

.ak-form--dark .ak-field__label { color: rgba(255, 255, 255, 0.9); }

.ak-field__control {
  width: 100%;
  padding: 14px 18px;
  font-family: var(--ak-font-body);
  font-size: 1rem;
  color: var(--ak-ink);
  background-color: var(--ak-cream);
  border: 1px solid var(--ak-line);
  border-radius: var(--ak-radius-sm);
  transition: border-color 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}

.ak-field__control::placeholder { color: #7a6878; }

.ak-field__control:focus {
  outline: none;
  background-color: var(--ak-white);
  border-color: var(--ak-plum);
  box-shadow: 0 0 0 4px rgba(76, 33, 69, 0.14);
}

.ak-form--dark .ak-field__control {
  background-color: rgba(255, 255, 255, 0.08);
  border-color: var(--ak-line-light);
  color: var(--ak-white);
}

.ak-form--dark .ak-field__control::placeholder { color: rgba(255, 255, 255, 0.62); }

.ak-field__control.is-invalid {
  border-color: #b3261e;
  background-color: rgba(179, 38, 30, 0.06);
}

.ak-field__error {
  display: none;
  margin-top: 7px;
  font-size: 0.84rem;
  color: #8f1d16;
}

.ak-form--dark .ak-field__error { color: #ffb4a8; }

.ak-field__error.is-visible { display: block; }

.ak-checkbox {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 0.92rem;
}

.ak-checkbox input {
  margin-top: 5px;
  width: 18px;
  height: 18px;
  accent-color: var(--ak-plum);
}

.ak-form__note {
  margin: 16px 0 0;
  font-size: 0.85rem;
}

.ak-map {
  position: relative;
  border-radius: var(--ak-radius);
  overflow: hidden;
  box-shadow: var(--ak-shadow);
  line-height: 0;
}

.ak-map iframe {
  width: 100%;
  height: 460px;
  border: 0;
  display: block;
}

.ak-info-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ak-info-list li {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 18px 0;
  border-bottom: 1px dashed var(--ak-line);
}

.ak-info-list li:last-child { border-bottom: none; }

.ak-info-list i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background-color: var(--ak-sand);
  color: var(--ak-plum);
  font-size: 1.05rem;
}

.ak-info-list strong {
  display: block;
  font-family: var(--ak-font-display);
  font-size: 1.05rem;
  color: var(--ak-ink);
}

.ak-cta {
  position: relative;
  padding: 90px 0;
  background-size: cover;
  background-position: center;
  color: var(--ak-white);
  text-align: center;
}

.ak-cta h2 { color: var(--ak-white); }
.ak-cta p { color: rgba(255, 255, 255, 0.9); max-width: 62ch; margin: 0 auto 30px; }

.ak-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}

.ak-newsletter {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  max-width: 560px;
  margin: 24px auto 0;
}

.ak-newsletter .ak-field__control { flex: 1 1 260px; }

.ak-footer {
  background-color: #180d17;
  color: rgba(255, 255, 255, 0.82);
  padding: 78px 0 0;
}

.ak-footer h4 {
  color: var(--ak-white);
  font-size: 1.05rem;
  margin-bottom: 20px;
  letter-spacing: 0.02em;
}

.ak-footer a { color: rgba(255, 255, 255, 0.82); }
.ak-footer a:hover,
.ak-footer a:focus-visible { color: var(--ak-gold); }

.ak-footer__brand {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
  color: var(--ak-white);
  font-family: var(--ak-font-display);
  font-size: 1.35rem;
}

.ak-footer__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ak-footer__list li { padding: 6px 0; }

.ak-footer__list i { color: var(--ak-gold); margin-right: 9px; }

.ak-footer__social {
  display: flex;
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 22px 0 0;
}

.ak-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid var(--ak-line-light);
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.ak-footer__social a:hover {
  background-color: var(--ak-gold);
  border-color: var(--ak-gold);
  color: var(--ak-ink);
}

.ak-footer__bottom {
  margin-top: 56px;
  padding: 26px 0;
  border-top: 1px solid var(--ak-line-light);
  font-size: 0.86rem;
  color: rgba(255, 255, 255, 0.72);
}

.ak-footer__bottom-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 26px;
  justify-content: space-between;
  align-items: center;
}

.ak-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.ak-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 1035;
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 50%;
  background-color: var(--ak-plum);
  color: var(--ak-gold);
  font-size: 1.05rem;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(14px);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease, background-color 0.25s ease;
  box-shadow: 0 14px 32px rgba(42, 16, 39, 0.34);
}

.ak-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.ak-to-top:hover { background-color: var(--ak-plum-light); }

.ak-cookie {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1080;
  padding: 22px;
  background: radial-gradient(120% 180% at 8% 0%, rgba(109, 58, 99, 0.96), rgba(24, 13, 23, 0.98));
  border-top: 1px solid rgba(217, 169, 74, 0.42);
  box-shadow: 0 -20px 50px rgba(0, 0, 0, 0.42);
  animation: ak-cookie-rise 0.6s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.ak-cookie[hidden] { display: none; }

@keyframes ak-cookie-rise {
  from { transform: translateY(100%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .ak-cookie { animation: none; }
}

.ak-cookie__inner {
  max-width: var(--ak-container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
}

.ak-cookie__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border-radius: 18px;
  background-color: rgba(217, 169, 74, 0.18);
  border: 1px solid rgba(217, 169, 74, 0.5);
  color: var(--ak-gold);
  font-size: 1.4rem;
}

.ak-cookie__title {
  margin: 0 0 6px;
  font-family: var(--ak-font-display);
  font-size: 1.16rem;
  color: var(--ak-white);
}

.ak-cookie__text {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
}

.ak-cookie__link {
  display: inline-block;
  margin-top: 8px;
  color: var(--ak-gold);
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ak-cookie__link:hover,
.ak-cookie__link:focus-visible { color: #f0cd85; }

.ak-cookie__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: flex-end;
}

.ak-cookie__btn {
  padding: 13px 26px;
  border-radius: var(--ak-radius-pill);
  border: 2px solid transparent;
  font-family: var(--ak-font-body);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 0.22s ease, background-color 0.22s ease, color 0.22s ease, border-color 0.22s ease;
}

.ak-cookie__btn:hover { transform: translateY(-2px); }

.ak-cookie__btn--ghost {
  background-color: transparent;
  border-color: rgba(255, 255, 255, 0.6);
  color: var(--ak-white);
}

.ak-cookie__btn--ghost:hover,
.ak-cookie__btn--ghost:focus-visible {
  background-color: rgba(255, 255, 255, 0.14);
  color: var(--ak-white);
}

.ak-cookie__btn--gold {
  background-color: var(--ak-gold);
  border-color: var(--ak-gold);
  color: var(--ak-ink);
}

.ak-cookie__btn--gold:hover,
.ak-cookie__btn--gold:focus-visible {
  background-color: #e6bb63;
  border-color: #e6bb63;
  color: var(--ak-ink);
}

.ak-ratio-wide img,
.ak-img-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ak-list-check {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ak-list-check li {
  position: relative;
  padding: 8px 0 8px 30px;
  font-size: 0.98rem;
}

.ak-list-check li::before {
  content: "\f00c";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 10px;
  color: var(--ak-gold-deep);
  font-size: 0.82rem;
}

.ak-section--dark .ak-list-check li::before,
.ak-section--overlay .ak-list-check li::before { color: var(--ak-gold); }

.ak-badge-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
}

.ak-badge {
  display: inline-block;
  padding: 7px 16px;
  border-radius: var(--ak-radius-pill);
  background-color: var(--ak-sand);
  color: var(--ak-plum);
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ak-note-card {
  padding: 26px 28px;
  border-left: 4px solid var(--ak-gold);
  background-color: rgba(217, 169, 74, 0.12);
  border-radius: 0 var(--ak-radius-sm) var(--ak-radius-sm) 0;
}

.ak-note-card p:last-child { margin-bottom: 0; }

@media (max-width: 1199.98px) {
  .ak-header__meta { display: none; }
  .ak-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991.98px) {
  :root { --ak-header-h: 80px; }
  .ak-section { padding: 72px 0; }
  .ak-header__toggle { display: inline-flex; }
  .ak-nav {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    padding: 18px 0 26px;
  }
  .ak-nav__link { padding: 13px 16px; }
  .ak-grid--split,
  .ak-grid--3 { grid-template-columns: minmax(0, 1fr); }
  .ak-grid--split { gap: 36px; }
  .ak-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 170px; }
  .ak-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ak-hero__badge { display: none; }
  .ak-cookie__inner { grid-template-columns: 46px minmax(0, 1fr); }
  .ak-cookie__icon { width: 46px; height: 46px; font-size: 1.15rem; }
  .ak-cookie__actions { grid-column: 1 / -1; justify-content: stretch; }
  .ak-cookie__btn { flex: 1 1 180px; text-align: center; }
}

@media (max-width: 767.98px) {
  body { font-size: 1rem; }
  .ak-section { padding: 58px 0; }
  .ak-hero { padding: calc(var(--ak-header-h) + 62px) 0 76px; }
  .ak-grid--4,
  .ak-grid--2 { grid-template-columns: minmax(0, 1fr); }
  .ak-step { grid-template-columns: 54px minmax(0, 1fr); padding: 22px 20px; gap: 16px; }
  .ak-step__num { width: 50px; height: 50px; font-size: 1.1rem; }
  .ak-gallery { grid-template-columns: minmax(0, 1fr); grid-auto-rows: 200px; }
  .ak-gallery__item--wide,
  .ak-gallery__item--tall { grid-column: auto; grid-row: auto; }
  .ak-form { padding: 26px 20px; }
  .ak-slider__overlay { padding: 24px; }
  .ak-slider__arrow { width: 42px; height: 42px; }
  .ak-price-table th,
  .ak-price-table td { padding: 14px 14px; font-size: 0.92rem; }
  .ak-map iframe { height: 340px; }
  .ak-to-top { right: 16px; bottom: 16px; }
}

@media (max-width: 575.98px) {
  .ak-stats { grid-template-columns: minmax(0, 1fr); }
  .ak-hero__actions .ak-btn,
  .ak-cta__actions .ak-btn { width: 100%; }
  .ak-cookie { padding: 16px; }
  .ak-cookie__inner { gap: 14px; }
}
/* ============================================================
   Header top bar + collapse components (missing base styles)
   and contrast / mobile overlap fixes
   ============================================================ */

.ak-header__top {
  background-color: rgba(17, 8, 16, 0.97);
  border-bottom: 1px solid var(--ak-line-light);
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.86rem;
}

.ak-header__top-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 26px;
  padding: 9px 0;
}

.ak-header__top-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 22px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.ak-header__top-item {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.4;
}

.ak-header__top-item i {
  color: var(--ak-gold);
}

.ak-header__top-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
}

.ak-header__top-hours {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: rgba(255, 255, 255, 0.86);
}

.ak-header__top-hours i {
  color: var(--ak-gold);
}

.ak-header__top-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 18px;
  border-radius: var(--ak-radius-pill);
  background-color: var(--ak-gold);
  color: var(--ak-ink);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ak-header__top-cta:hover,
.ak-header__top-cta:focus-visible {
  background-color: #e6bb63;
  color: var(--ak-ink);
}

.ak-header__brand-text {
  display: inline-flex;
  flex-direction: column;
  line-height: 1.12;
}

.ak-header__collapse-contacts {
  list-style: none;
  margin: 16px 0 0;
  padding: 16px 0 0;
  border-top: 1px solid var(--ak-line-light);
}

.ak-header__collapse-contacts li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.9rem;
}

.ak-header__collapse-contacts i {
  color: var(--ak-gold);
  width: 18px;
}

.ak-header__collapse-cta {
  margin-top: 18px;
}

/* Explicit dark backgrounds so text-over-image sections have a
   solid, accessible base colour behind their content. */
.ak-hero,
.ak-cta {
  background-color: var(--ak-plum-deep);
}

@media (min-width: 992px) {
  .ak-header__collapse-contacts { display: none; }
  .ak-header__collapse-cta { margin-top: 0; }
}

@media (max-width: 991.98px) {
  /* Let the (tall) mobile header take up normal flow space so it can
     never overlap the hero section. */
  .ak-header {
    position: static;
  }
  .ak-hero,
  .ak-hero--page {
    padding-top: 46px;
  }
}

@media (max-width: 767.98px) {
  .ak-header__top-item--address { display: none; }
  .ak-header__top-hours { display: none; }
  .ak-header__top-inner { justify-content: center; }
}

/* ===== Fixes: header top-bar contrast ===== */
.ak-header__top,
.ak-header__top-inner,
.ak-header__top-list,
.ak-header__top-item,
.ak-header__top-hours {
  color: rgba(255, 255, 255, 0.92);
}

.ak-header__top-item i,
.ak-header__top-hours i {
  color: var(--ak-gold);
}

.ak-header__top-cta {
  color: var(--ak-gold);
  font-weight: 600;
  letter-spacing: 0.04em;
}

.ak-header__top-cta:hover,
.ak-header__top-cta:focus-visible {
  color: #f0cd85;
}

.ak-header__collapse-contacts,
.ak-header__collapse-contacts li,
.ak-header__collapse-contacts span {
  color: rgba(255, 255, 255, 0.92);
}

.ak-header__collapse-contacts i {
  color: var(--ak-gold);
}

/* ===== Fixes: dark backdrop behind light hero text ===== */
.ak-hero.ak-section--overlay {
  background-color: #140813;
}

/* ===== Fixes: article figure caption readability ===== */
.ak-media-frame__caption {
  background-color: #1a0b17;
  background-image: linear-gradient(to top, rgba(20, 8, 19, 0.96), rgba(20, 8, 19, 0.8));
}

/* =========================================================
   QA contrast + header overrides (appended, non-destructive)
   ========================================================= */

/* -- Header top utility bar (markup existed without any CSS) -- */
.ak-header__top {
  background-color: rgba(20, 10, 18, 0.55);
  border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}
.ak-header__top-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 22px;
  padding: 9px 0;
}
.ak-header__top-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 22px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ak-header__top-item,
.ak-header__top-hours {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #f3ebf1;
  font-size: 0.8rem;
  line-height: 1.4;
}
.ak-header__top-item i,
.ak-header__top-hours i { color: var(--ak-gold); }
.ak-header__top-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 18px;
}
.ak-header__top-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #f0cd85;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ak-header__top-cta:hover,
.ak-header__top-cta:focus-visible { color: #ffffff; }

/* Collapse contacts: duplicate of the top bar, only useful in the mobile menu */
.ak-header__collapse-contacts {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ak-header__collapse-contacts li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.88rem;
}
.ak-header__collapse-contacts i { color: var(--ak-gold); }
.ak-header__collapse-cta { margin-left: 12px; }

@media (min-width: 992px) {
  .ak-header__collapse-contacts { display: none; }
}

/* -- Give hero / image-overlay sections an opaque dark base --
   Their visible background is a photo+gradient; without an explicit
   background-color assistve tools sample the body cream and flag white text. */
.ak-hero,
.ak-hero--page,
.ak-section--overlay { background-color: #140813; }

/* -- Captions sit on a dark gradient: same reason as above -- */
.ak-media-frame__caption,
.ak-gallery__caption { background-color: #140813; }

/* -- Gold text on light backgrounds needs a darker gold for AA contrast -- */
.ak-eyebrow { color: #7a570c; }
.ak-team-card__role { color: #7a570c; }
.ak-quote__stars { color: #7a570c; }
.ak-list-check li::before { color: #7a570c; }
.ak-price-card__list i { color: #7a570c; }

/* -- Cards rendered on top of the dark overlay must keep dark text
   (they are white cards, so the section-wide white text rule breaks them) -- */
.ak-section--overlay .ak-card h3 { color: var(--ak-ink); }
.ak-section--overlay .ak-card p,
.ak-section--overlay .ak-card li { color: var(--ak-body); }

/* -- Fixed-header offset: pages opting in via .page-about push their
   content below the measured header height so the hero is never covered. -- */
.page-about {
  padding-top: 130px;
  padding-top: var(--ak-header-total, 130px);
}
.page-about .ak-hero,
.page-about .ak-hero--page { padding-top: 64px; }

@media (max-width: 991.98px) {
  .ak-header__top { display: none; }
  .page-about {
    padding-top: 80px;
    padding-top: var(--ak-header-total, 80px);
  }
  .page-about .ak-hero,
  .page-about .ak-hero--page { padding-top: 40px; }
}

/* =========================================================
   QA fix (contacts page): real white-on-white contrast bugs
   The dark sections force white text, but the child cards
   (.ak-step / .ak-quote) are white — flip their text to dark.
   ========================================================= */
.ak-section--dark .ak-step h3,
.ak-section--dark .ak-step h4 { color: var(--ak-ink); }

.ak-section--dark .ak-step p,
.ak-section--dark .ak-step li { color: var(--ak-body); }

.ak-section--dark .ak-quote__text { color: var(--ak-ink); }
.ak-section--dark .ak-quote__name { color: var(--ak-ink); }
.ak-section--dark .ak-quote__role { color: #5c4a5a; }

/* Header top-bar CTA: text was light gold on a gold pill (ratio 1.42).
   Drop the gold fill so the light-gold text sits on the dark bar. */
.ak-header__top-cta {
  background-color: transparent;
  border: 1px solid rgba(240, 205, 133, 0.55);
}

/* Mobile: guarantee a positive gap between the header bar and the
   hero so the two boxes never report as touching/overlapping. */
@media (max-width: 991.98px) {
  .ak-hero,
  .ak-hero--page { margin-top: 10px; }
}

/* =========================================================
   QA fixes (blog): contrast for dark-section cards + header CTA
   ========================================================= */

/* White cards rendered inside the dark plum section must keep dark text.
   The section-wide rule `.ak-section--dark h3/p` forced white text onto
   the white .ak-card background, making it invisible. */
.ak-section--dark .ak-card h1,
.ak-section--dark .ak-card h2,
.ak-section--dark .ak-card h3,
.ak-section--dark .ak-card h4,
.ak-section--dark .ak-card h5,
.ak-section--dark .ak-card h6 {
  color: var(--ak-ink);
}

.ak-section--dark .ak-card p,
.ak-section--dark .ak-card li,
.ak-section--dark .ak-card span:not(.ak-card__icon) {
  color: var(--ak-body);
}

.ak-section--dark .ak-card .ak-card__link {
  color: var(--ak-plum);
}

/* Header top-bar CTA: dark ink on the gold pill for AA contrast
   (previously light-gold text on gold, ratio ~1.4). */
.ak-header__top-cta {
  color: var(--ak-ink);
}

.ak-header__top-cta:hover,
.ak-header__top-cta:focus-visible {
  color: var(--ak-ink);
}

/* QA fix (contacts): margin-top on the hero collapsed away through the
   wrappers, so push the page content down with padding on the wrapper
   instead. The dark band keeps the gap visually seamless with the
   dark header and dark hero. */
@media (max-width: 991.98px) {
  .ak-hero,
  .ak-hero--page { margin-top: 0; }
  #page-root {
    padding-top: 12px;
    background-color: #140813;
  }
}

/* =========================================================
   QA fixes (appended): header CTA contrast + header/hero gap
   ========================================================= */

/* -- Header top-bar CTA: force a solid gold pill with dark ink text.
   Several later overrides set the text colour to a light gold while
   leaving the gold background, destroying the contrast. -- */
.ak-header__top-cta,
.ak-header__top-cta:visited,
.ak-header__top-cta:hover,
.ak-header__top-cta:focus-visible {
  background-color: #d9a94a !important;
  color: #1b1119 !important;
  text-shadow: none;
}

/* -- Page hero sits below the header with a real (strictly positive)
   gap so a fixed/sticky header can never touch or cover it. The offset
   is supplied by JS (--ak-hero-offset) and falls back to 0 when the
   header participates in normal flow (mobile). -- */
.ak-hero--page {
  margin-top: var(--ak-hero-offset, 0px) !important;
}

/* =========================================================
   QA fixes (homepage): header overlap + contrast on
   image-overlay / white-on-white elements
   ========================================================= */

/* -- Mobile: the fixed header must never cover the hero. Force the
   tall mobile header to participate in normal flow so the hero is
   pushed below it (JS provides a safety net as well). -- */
@media (max-width: 991.98px) {
  .ak-header { position: static !important; }
  .ak-hero,
  .ak-hero--page { margin-top: 0 !important; }
}

/* -- Slider caption sits on a photo+gradient. Give the overlay an
   opaque dark background-color so assistive contrast tools no longer
   sample the cream section behind it (white text was 1.07:1). -- */
.ak-slider__overlay {
  background-color: #140813;
}
.ak-slider__overlay h3 { color: #ffffff; }
.ak-slider__overlay p { color: rgba(255, 255, 255, 0.92); }

/* -- Stat cards are rendered on light (white) sections, but use gold
   values and light labels meant for a dark surface. Give them a solid
   dark base so gold value + light label are readable. -- */
.ak-stat {
  background-color: #2a1027;
  border-color: rgba(255, 255, 255, 0.18);
}
.ak-stat__value { color: #e6bb63; }
.ak-stat__label { color: rgba(255, 255, 255, 0.92); }

/* -- Quote cards are white; inside dark/overlay sections the section
   rule forced white text onto them (invisible). Keep dark text. -- */
.ak-section--overlay .ak-quote__text,
.ak-section--dark .ak-quote__text { color: var(--ak-ink); }
.ak-section--overlay .ak-quote__name,
.ak-section--dark .ak-quote__name { color: var(--ak-ink); }
.ak-section--overlay .ak-quote__role,
.ak-section--dark .ak-quote__role { color: #5c4a5a; }

/* -- Cookie banner uses a radial-gradient (no solid color), so its
   white text sampled against the cream body. Add a dark base. -- */
.ak-cookie {
  background-color: #180d17;
}
.ak-cookie__title { color: #ffffff; }
.ak-cookie__text { color: rgba(255, 255, 255, 0.92); }
.ak-cookie__btn--ghost { color: #ffffff; }
.ak-cookie__link { color: #f0cd85; }

/* =========================================================
   QA fix (kleuren-en-balayage): process step cards
   The "kleurtraject in stappen" section is an .ak-section--overlay
   whose white .ak-step cards inherited the section-wide white text,
   producing white-on-white text. Force dark text inside the cards.
   ========================================================= */
.ak-section--overlay .ak-step h3,
.ak-section--overlay .ak-step h4 { color: var(--ak-ink); }

.ak-section--overlay .ak-step p,
.ak-section--overlay .ak-step li { color: var(--ak-body); }

/* =========================================================
   QA fix: mobile header must stay in flow so it can never
   cover the hero section.
   ========================================================= */
@media (max-width: 991.98px) {
  .ak-header { position: static !important; top: auto !important; }
  #inject-header { position: relative; z-index: 5; }
}

/* =========================================================
   QA fix (price page): white-on-white contrast inside the
   white .ak-price-card cards that sit in the dark/overlay
   sections, plus unreadable plum links on dark surfaces.
   ========================================================= */

/* The "Onze pakketten" section is .ak-section--dark, whose rules
   `.ak-section--dark h3 { color:#fff }` and
   `.ak-section--dark p, li { color: rgba(255,255,255,.88) }`
   forced white text onto the white (non-featured) .ak-price-card,
   making the heading, amount and list items invisible. Force the
   correct dark text back — the featured card is dark and keeps white. */
.ak-section--dark .ak-price-card:not(.ak-price-card--featured) h1,
.ak-section--dark .ak-price-card:not(.ak-price-card--featured) h2,
.ak-section--dark .ak-price-card:not(.ak-price-card--featured) h3,
.ak-section--dark .ak-price-card:not(.ak-price-card--featured) h4,
.ak-section--dark .ak-price-card:not(.ak-price-card--featured) h5 {
  color: var(--ak-ink);
}

.ak-section--dark .ak-price-card:not(.ak-price-card--featured) p,
.ak-section--dark .ak-price-card:not(.ak-price-card--featured) li {
  color: var(--ak-body);
}

.ak-section--dark .ak-price-card:not(.ak-price-card--featured) .ak-price-card__amount {
  color: var(--ak-plum);
}

.ak-section--dark .ak-price-card:not(.ak-price-card--featured) .ak-price-card__period {
  color: #5c4a5a;
}

/* Text links that sit on the dark photo-overlay / plum sections kept
   the default plum colour, which is nearly invisible on the dark
   backdrop. Use gold (AA-passing) and underline so they read as links. */
.ak-section--overlay .ak-note-card p a,
.ak-section--dark .ak-note-card p a,
.ak-section--overlay .ak-note-card li a,
.ak-section--dark .ak-note-card li a,
.ak-section--overlay .ak-list-check li a,
.ak-section--dark .ak-list-check li a {
  color: var(--ak-gold);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ak-section--overlay .ak-note-card p a:hover,
.ak-section--dark .ak-note-card p a:hover,
.ak-section--overlay .ak-note-card li a:hover,
.ak-section--dark .ak-note-card li a:hover,
.ak-section--overlay .ak-list-check li a:hover,
.ak-section--dark .ak-list-check li a:hover {
  color: #f0cd85;
}

/* =========================================================
   QA fix (thank-you page): contrast of the contact info list
   inside the dark plum section on the thank-you page.
   `.ak-info-list strong` inherits a dark ink colour (var(--ak-ink)),
   which is invisible against the dark .ak-section--dark background.
   Force light text for the labels there.
   ========================================================= */
.ak-section--dark .ak-info-list strong,
.ak-section--overlay .ak-info-list strong {
  color: #ffffff;
}

.ak-section--dark .ak-info-list span,
.ak-section--overlay .ak-info-list span {
  color: rgba(255, 255, 255, 0.9);
}

.ak-section--dark .ak-info-list li,
.ak-section--overlay .ak-info-list li {
  color: rgba(255, 255, 255, 0.9);
}
