/* ==========================================================================
   Jurahjælpen — designsystem (hifi, matcher mockup)
   Display: Newsreader · Brød: Inter · Palet: creme + slate + guld · Motiv: §
   Alle værdier styres herfra. Skift fx --gold eller --slate for hele sitet.
   ========================================================================== */

:root {
  /* Creme / papir */
  --paper:      #f5f0e6;   /* primær baggrund */
  --paper-om:   #efe7d6;   /* "Om os"-sektion */
  --card:       #fbf7ee;   /* kort */
  --input-bg:   #fffdf8;   /* felter */

  /* Slate */
  --slate:      #2e4952;   /* primær tekst + mørke sektioner */
  --slate-dark: #263c45;   /* statistik-bånd */
  --slate-deep: #1f3038;   /* footer */

  /* Tekst */
  --body:       #56646b;
  --policy:     #4b5860;
  --muted:      #7c8a8f;
  --cream:      #f4efe3;   /* tekst på mørk */

  /* Guld */
  --gold:       #e4cf94;   /* CTA */
  --gold-hover: #d8c079;
  --gold-mid:   #c9ad64;   /* accent, §, eyebrow */
  --gold-deep:  #a9853a;   /* ikoner, links */

  /* Chips / tags / flader */
  --chip:       #f4ecda;
  --chip-on:    #f0dfae;
  --tag:        #f0e7d2;
  --tag-text:   #6c6350;
  --tile:       #f1e6c8;

  /* Kanter */
  --line:       #e7dec9;
  --line-input: #e2d8c2;
  --line-gold:  #d8c690;
  --line-pol:   #ece2cd;

  --err:        #b25a4a;
  --warn-bg:    #f6ecce;
  --warn-line:  #e4cf94;

  --font-display: "Newsreader", Georgia, "Times New Roman", serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --maxw: 1180px;
  --maxw-text: 820px;
  --pad-inline: clamp(20px, 5vw, 48px);
}

/* ---------- Reset ---------- */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-body);
  background: var(--paper);
  color: var(--slate);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
ul { list-style: none; }
a { color: var(--gold-deep); text-decoration: none; }
::selection { background: var(--gold); color: var(--slate); }
input::placeholder, textarea::placeholder { color: #a79f8d; }
input, textarea, button { font-family: inherit; }
textarea { resize: vertical; }

/* ---------- Layout ---------- */
.wrap { max-width: var(--maxw); margin-inline: auto; padding-inline: var(--pad-inline); }
.section-pad { padding-block: clamp(76px, 9vw, 116px); }
.center-col { display: flex; flex-direction: column; align-items: center; text-align: center; }

/* ---------- Eyebrow (§) ---------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: 9px;
  font-family: var(--font-body);
  font-size: 12px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase;
  color: var(--slate);
}
.eyebrow::before {
  content: "§";
  font-family: var(--font-display); font-weight: 400; font-size: 17px; line-height: 1;
  color: var(--gold-mid);
}
.eyebrow--dark { color: var(--cream); }
.eyebrow--dark::before { color: var(--gold); }

/* ---------- Typografi ---------- */
.h-hero  { font-family: var(--font-display); font-weight: 400; font-size: clamp(40px,6.2vw,74px); line-height: 1.04; letter-spacing: -.015em; }
.h-page  { font-family: var(--font-display); font-weight: 400; font-size: clamp(38px,5.4vw,64px); line-height: 1.05; letter-spacing: -.015em; }
.h2      { font-family: var(--font-display); font-weight: 400; font-size: clamp(30px,4vw,46px); line-height: 1.1; letter-spacing: -.01em; }
.lead    { font-size: clamp(16px,1.5vw,19px); line-height: 1.65; color: var(--body); }
.balance { text-wrap: balance; }
.pretty  { text-wrap: pretty; }

/* ---------- Knapper ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font-weight: 600; font-size: 16px; line-height: 1;
  border-radius: 100px; border: none; cursor: pointer; text-decoration: none;
  padding: 16px 32px;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}
.btn--gold {
  background: var(--gold); color: var(--slate);
  box-shadow: 0 8px 22px rgba(201,173,100,.32);
  animation: floatY 3.2s ease-in-out infinite;
}
.btn--gold:hover { background: var(--gold-hover); transform: translateY(-2px); box-shadow: 0 12px 28px rgba(201,173,100,.42); }
.btn--ghost {
  background: transparent; color: var(--slate);
  border: 1.5px solid rgba(46,73,82,.3);
}
.btn--ghost:hover { background: rgba(46,73,82,.05); border-color: rgba(46,73,82,.55); }
.btn-row { display: flex; flex-wrap: wrap; gap: 14px; }

@keyframes floatY { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

/* Tryghedsrække med prikker */
.dots { display: flex; flex-wrap: wrap; gap: 10px 24px; }
.dot { display: inline-flex; align-items: center; gap: 9px; font-weight: 500; font-size: 14.5px; color: var(--body); }
.dot::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--gold-mid); flex: none; }
.dots--dark .dot { color: rgba(244,239,227,.72); font-size: 14px; }
.dots--dark .dot::before { background: var(--gold); width: 6px; height: 6px; }

/* ---------- Nav ---------- */
.nav-outer { position: sticky; top: 16px; z-index: 100; padding: 0 clamp(16px,4vw,40px); }
.nav {
  max-width: var(--maxw); margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  background: rgba(253,250,243,.72);
  backdrop-filter: blur(14px) saturate(1.4);
  -webkit-backdrop-filter: blur(14px) saturate(1.4);
  border: 1px solid rgba(231,222,201,.7);
  border-radius: 100px;
  padding: 9px 12px 9px 20px;
  box-shadow: 0 14px 36px rgba(31,48,56,.12);
  position: relative;
}
.brand { display: flex; align-items: center; gap: 12px; cursor: pointer; }
.brand__badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 52px; height: 52px; border-radius: 50%; background: rgba(46,73,82,.06); flex: none;
}
.brand__badge img { width: 40px; height: 40px; object-fit: contain; }
.brand__name { font-family: var(--font-display); font-weight: 500; font-size: 22px; line-height: 1; color: var(--slate); letter-spacing: .005em; }

.nav__links { display: flex; align-items: center; gap: 4px; }
.nav__links a {
  white-space: nowrap;
  font-weight: 500; font-size: 14.5px; line-height: 1; color: #3f4f56;
  padding: 9px 12px; border-radius: 100px;
  transition: color .18s ease, background-color .18s ease, transform .18s ease;
}
.nav__links a:hover { color: var(--slate); background: rgba(46,73,82,.06); transform: translateY(-2px); }
.nav__cta {
  margin-left: 6px; padding: 11px 20px; border-radius: 100px;
  background: var(--gold); color: var(--slate);
  font-weight: 600; font-size: 14.5px; line-height: 1;
  animation: floatY 3.2s ease-in-out infinite;
  transition: background-color .2s ease, transform .2s ease;
}
.nav__cta:hover { background: var(--gold-hover); transform: translateY(-1px); color: var(--slate); }

.nav__toggle {
  display: none; align-items: center; justify-content: center;
  width: 44px; height: 44px; border: none; background: transparent; color: var(--slate); cursor: pointer; border-radius: 50%;
}
.nav__toggle svg { width: 24px; height: 24px; }

@media (max-width: 900px) {
  .nav__toggle { display: inline-flex; }
  .nav__links {
    position: absolute; top: calc(100% + 10px); left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 2px;
    background: rgba(253,250,243,.96);
    backdrop-filter: blur(14px) saturate(1.4);
    -webkit-backdrop-filter: blur(14px) saturate(1.4);
    border: 1px solid rgba(231,222,201,.7); border-radius: 22px;
    padding: 8px; box-shadow: 0 14px 36px rgba(31,48,56,.14);
    display: none;
  }
  .nav__links.is-open { display: flex; }
  .nav__links a { padding: 12px 16px; }
  .nav__cta { text-align: center; justify-content: center; margin: 4px 0 0; animation: none; }
}

/* ---------- Sektioner / baggrunde ---------- */
.bg-paper { background: var(--paper); }
.bg-om    { background: var(--paper-om); border-top: 1px solid var(--line-input); }
.bg-slate { background: var(--slate); color: var(--cream); }
.bg-stats { background: var(--slate-dark); }
.has-ghost { position: relative; overflow: hidden; }
.ghost {
  position: absolute; font-family: var(--font-display); font-weight: 400; line-height: 1;
  pointer-events: none; user-select: none; z-index: 0;
}
.ghost--hero  { top: 50%; left: 50%; transform: translate(-50%,-45%); font-size: clamp(26rem,55vw,48rem); color: var(--slate); opacity: .05; }
.ghost--proc  { left: -6%; bottom: -24%; font-size: clamp(24rem,42vw,40rem); color: var(--cream); opacity: .04; }
.ghost--page  { left: -6%; top: 1%; font-size: clamp(24rem,44vw,42rem); color: var(--slate); opacity: .045; }
.ghost--right { right: -8%; top: 2%; font-size: clamp(24rem,44vw,42rem); color: var(--slate); opacity: .045; }
.above { position: relative; z-index: 1; }

/* ---------- Hero ---------- */
.hero { padding: clamp(84px,11vw,140px) 0 clamp(72px,9vw,108px); }
.hero .center-col { gap: 26px; }
.hero__emblem { width: 104px; height: auto; }
.hero .h-hero { max-width: 16ch; }
.hero .lead { max-width: 56ch; }

/* ---------- Mission ---------- */
.mission { padding-block: clamp(64px,8vw,100px); }
.mission .center-col { gap: 22px; max-width: 820px; margin-inline: auto; }
.mission__line { font-family: var(--font-display); font-weight: 400; font-size: clamp(25px,3.2vw,36px); line-height: 1.32; color: var(--slate); max-width: 22ch; }
.mission p.body { font-size: clamp(16px,1.4vw,18px); line-height: 1.7; color: var(--body); max-width: 58ch; }

/* ---------- Proces ---------- */
.section-head { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 18px; max-width: 640px; margin-inline: auto; }
.section-head .lead { max-width: 52ch; }
.section-head--dark .lead { color: rgba(244,239,227,.74); }
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: clamp(22px,3vw,40px); margin-top: clamp(48px,6vw,72px); }
.step { display: flex; flex-direction: column; gap: 12px; padding-top: 24px; border-top: 1px solid rgba(228,207,148,.3); }
.step__head { display: flex; align-items: baseline; gap: 8px; }
.step__sec { font-family: var(--font-display); font-size: 16px; color: var(--gold); }
.step__num { font-family: var(--font-display); font-size: clamp(36px,4vw,52px); line-height: .9; color: var(--gold); }
.step h3 { font-family: var(--font-display); font-weight: 400; font-size: 20px; line-height: 1.25; color: var(--cream); }
.step p { font-size: 14.5px; line-height: 1.65; color: rgba(244,239,227,.72); }

/* ---------- Retsområder ---------- */
.areas { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); gap: clamp(20px,2.5vw,28px); margin-top: clamp(48px,6vw,68px); }
.area-card {
  display: flex; flex-direction: column; gap: 15px;
  padding: 30px 28px; background: var(--card);
  border: 1px solid var(--line); border-radius: 18px;
  box-shadow: 0 1px 2px rgba(31,48,56,.04);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.area-card:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(31,48,56,.12); border-color: var(--line-gold); }
.tile {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; border-radius: 13px; background: var(--tile); color: var(--gold-deep);
}
.tile svg { width: 26px; height: 26px; }
.area-card h3 { font-family: var(--font-display); font-weight: 400; font-size: 23px; line-height: 1.2; color: var(--slate); }
.area-card p { font-size: 15px; line-height: 1.6; color: var(--body); }
.tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; }
.tag { font-weight: 500; font-size: 12.5px; line-height: 1; color: var(--tag-text); background: var(--tag); border-radius: 100px; padding: 7px 13px; }

/* ---------- Statistik ---------- */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: 36px; max-width: 1000px; margin-inline: auto; padding-block: clamp(54px,6vw,76px); }
.stat { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; }
.stat__num { font-family: var(--font-display); font-size: clamp(46px,6vw,66px); line-height: 1; color: var(--gold); }
.stat__label { font-weight: 600; font-size: 12.5px; letter-spacing: .18em; text-transform: uppercase; color: rgba(244,239,227,.82); }

/* ---------- Afsluttende CTA ---------- */
.cta-card {
  position: relative; overflow: hidden; max-width: 1000px; margin-inline: auto;
  background: var(--slate); border-radius: 28px;
  padding: clamp(48px,7vw,84px) clamp(28px,5vw,64px); text-align: center;
  box-shadow: 0 30px 70px rgba(31,48,56,.26);
}
.cta-card .ghost { right: -2%; top: 50%; transform: translateY(-50%); font-size: clamp(18rem,34vw,30rem); color: var(--cream); opacity: .05; }
.cta-card__inner { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 22px; }
.cta-card h2 { color: var(--cream); max-width: 18ch; font-size: clamp(30px,4.4vw,52px); line-height: 1.08; }
.cta-card p { color: rgba(244,239,227,.78); max-width: 50ch; font-size: clamp(16px,1.5vw,19px); line-height: 1.65; }
.cta-card .btn--gold { box-shadow: 0 10px 26px rgba(0,0,0,.22); }
.cta-card .btn--gold:hover { box-shadow: 0 14px 32px rgba(0,0,0,.3); }

/* ---------- Kontakt ---------- */
.contact-grid { display: flex; flex-wrap: wrap; gap: clamp(24px,3.5vw,44px); align-items: flex-start; }
.contact-head { display: flex; flex-direction: column; gap: 16px; max-width: 640px; margin: 0 auto clamp(40px,5vw,60px); text-align: center; align-items: center; }
.contact-head .lead { max-width: 54ch; }
.aside { flex: 1 1 300px; max-width: 400px; display: flex; flex-direction: column; gap: 20px; }
.info-card { background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 28px 26px; display: flex; flex-direction: column; gap: 22px; }
.info-card h2 { font-family: var(--font-display); font-weight: 400; font-size: 22px; line-height: 1.2; color: var(--slate); }
.info-row { display: flex; gap: 14px; align-items: flex-start; }
.info-ico {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 11px; background: var(--tile); color: var(--gold-deep);
  font-family: var(--font-display); font-weight: 400; font-size: 21px; line-height: 1;
}
.info-row div { display: flex; flex-direction: column; gap: 3px; }
.info-row strong { font-weight: 600; font-size: 15px; line-height: 1.3; color: var(--slate); }
.info-row span.t { font-size: 14.5px; line-height: 1.6; color: var(--body); }

.tips { border: 1px dashed var(--line-gold); border-radius: 16px; padding: 24px; background: #f7f0df; display: flex; flex-direction: column; gap: 16px; }
.tips__title { font-weight: 600; font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-deep); }
.tip { display: flex; gap: 11px; align-items: flex-start; }
.tip svg { flex: none; width: 17px; height: 17px; margin-top: 1px; }
.tip span { font-size: 14.5px; line-height: 1.6; color: #5b5236; }

/* Formular-kort */
.form-card { flex: 2 1 440px; background: var(--card); border: 1px solid var(--line); border-radius: 22px; padding: clamp(28px,4vw,44px); box-shadow: 0 20px 50px rgba(31,48,56,.08); }
.warn { display: flex; gap: 14px; align-items: flex-start; background: var(--warn-bg); border: 1px solid var(--warn-line); border-radius: 14px; padding: 18px 20px; margin-bottom: 30px; }
.warn__ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: #ead9a4; color: #8a6d24; font-family: var(--font-display); font-size: 22px; line-height: 1; }
.warn div { display: flex; flex-direction: column; gap: 5px; }
.warn strong { font-weight: 600; font-size: 15px; line-height: 1.3; color: var(--slate); }
.warn span.t { font-size: 14.5px; line-height: 1.65; color: #5b5236; }

.form { display: flex; flex-direction: column; gap: 22px; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field > label { font-weight: 600; font-size: 13.5px; line-height: 1.3; color: var(--slate); }
.field .opt { font-weight: 400; color: var(--muted); }
.field input[type="text"], .field input[type="email"], .field textarea {
  width: 100%; padding: 14px 16px;
  border: 1.5px solid var(--line-input); border-radius: 12px; background: var(--input-bg);
  font-size: 16px; line-height: 1.3; color: var(--slate); outline: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.field textarea { line-height: 1.55; }
.field input:focus, .field textarea:focus { border-color: var(--gold-mid); box-shadow: 0 0 0 4px rgba(201,173,100,.16); }
.field-err { font-weight: 500; font-size: 13px; line-height: 1.4; color: var(--err); }

/* Chips (retsområde-valg) */
.chips { display: flex; flex-wrap: wrap; gap: 9px; }
.chip { cursor: pointer; }
.chip input { position: absolute; opacity: 0; width: 0; height: 0; }
.chip span {
  display: inline-block; font-weight: 500; font-size: 14px; line-height: 1;
  color: var(--body); background: var(--chip);
  border: 1.5px solid transparent; border-radius: 100px; padding: 10px 15px;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.chip:has(input:checked) span { background: var(--chip-on); border-color: var(--gold-mid); color: var(--slate); font-weight: 600; }
.chip input:focus-visible + span { outline: 2px solid var(--gold-mid); outline-offset: 2px; }

/* Fil-upload */
.file-label {
  display: flex; align-items: center; gap: 13px; padding: 15px 16px;
  border: 1.5px dashed var(--line-gold); border-radius: 12px; background: var(--input-bg); cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease;
}
.file-label:hover { border-color: var(--gold-mid); background: #fbf4e2; }
.file-label input { display: none; }
.file-ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 10px; background: var(--tile); color: var(--gold-deep); }
.file-ico svg { width: 20px; height: 20px; }
.file-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.file-name { font-weight: 500; font-size: 14.5px; line-height: 1.3; color: var(--slate); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-hint { font-size: 13px; line-height: 1.3; color: var(--muted); }

/* Samtykke */
.consents { display: flex; flex-direction: column; gap: 14px; padding-top: 2px; }
.consent { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; }
.consent input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--gold-mid); cursor: pointer; flex: none; }
.consent span { font-size: 14px; line-height: 1.6; color: var(--body); }
.consent a { text-decoration: underline; text-underline-offset: 2px; }

.form-note { font-size: 13px; line-height: 1.5; color: var(--muted); text-align: center; }
.submit-full { width: 100%; margin-top: 4px; padding: 17px 30px; }

/* Kvittering */
.receipt { text-align: center; padding: 24px 0; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.receipt__badge { display: inline-flex; align-items: center; justify-content: center; width: 74px; height: 74px; border-radius: 50%; background: #f1e2b6; color: var(--gold-deep); font-family: var(--font-display); font-size: 40px; line-height: 1; }
.receipt h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(26px,3.4vw,34px); line-height: 1.15; color: var(--slate); max-width: 20ch; }
.receipt p { font-size: 16px; line-height: 1.7; color: var(--body); max-width: 46ch; }
.receipt strong { color: var(--slate); }
.hidden { display: none; }

/* ---------- Policy-sider ---------- */
.policy { max-width: var(--maxw-text); margin-inline: auto; padding: clamp(56px,7vw,96px) var(--pad-inline) clamp(76px,9vw,116px); }
.back {
  display: inline-flex; align-items: center; gap: 8px; background: none; border: none; cursor: pointer;
  font-weight: 500; font-size: 14.5px; line-height: 1; color: #3f4f56; padding: 0; margin-bottom: 28px;
  transition: color .16s ease, transform .16s ease; text-decoration: none;
}
.back:hover { color: var(--gold-deep); transform: translateX(-3px); }
.back svg { width: 17px; height: 17px; }
.policy__head { display: flex; flex-direction: column; gap: 16px; margin-bottom: clamp(32px,4vw,44px); }
.policy__head .h-page { font-size: clamp(38px,5.2vw,60px); line-height: 1.06; }
.policy__head p { font-size: clamp(16px,1.4vw,18px); line-height: 1.7; color: var(--body); max-width: 60ch; }
.policy-card { background: var(--card); border: 1px solid var(--line); border-radius: 22px; padding: clamp(28px,4vw,44px); box-shadow: 0 20px 50px rgba(31,48,56,.07); }
.policy-card + .policy-card { margin-top: clamp(20px,3vw,28px); }
.policy-card > h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(22px,2.6vw,28px); line-height: 1.25; color: var(--slate); margin-bottom: 8px; }

/* Nummererede punkter (ansvarsfraskrivelse) */
.numbered { display: flex; flex-direction: column; }
.numbered > div { display: flex; gap: 18px; align-items: flex-start; padding: 22px 0; border-top: 1px solid var(--line-pol); }
.numbered .n { flex: none; font-family: var(--font-display); font-size: clamp(22px,2.4vw,28px); line-height: 1; color: var(--gold-mid); min-width: 38px; }
.numbered p { font-size: clamp(15px,1.3vw,16.5px); line-height: 1.7; color: var(--policy); }

/* Underafsnit (privatliv) */
.sub + .sub { margin-top: 22px; }
.sub h3 { font-family: var(--font-display); font-weight: 500; font-size: 18px; line-height: 1.3; color: var(--slate); margin-bottom: 6px; }
.sub p { font-size: 15.5px; line-height: 1.7; color: var(--policy); }
.sub ul { margin-top: 8px; display: flex; flex-direction: column; gap: 7px; }
.sub ul li { display: flex; gap: 10px; font-size: 15.5px; line-height: 1.6; color: var(--policy); }
.sub ul li::before { content: "§"; color: var(--gold-mid); font-family: var(--font-display); flex: none; }
.publisher { background: var(--paper-om); border: 1px solid var(--line-input); border-radius: 16px; padding: 20px 24px; margin-top: 24px; font-size: 15px; color: var(--policy); }

/* ---------- Footer ---------- */
.footer { background: var(--slate-deep); color: rgba(244,239,227,.62); padding-block: clamp(48px,6vw,72px) 32px; }
.footer a { color: var(--cream); transition: color .18s ease, transform .18s ease; }
.footer a:hover { color: var(--gold); }
.footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px; }
.footer__brand-row { display: flex; align-items: center; gap: 12px; }
.footer__badge { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 16px; background: #fff; flex: none; }
.footer__badge img { width: 42px; height: 42px; object-fit: contain; }
.footer__brand-row .brand__name { color: var(--cream); }
.footer__tag { margin-top: 16px; font-size: 14.5px; line-height: 1.6; max-width: 34ch; }
.footer__col h4 { color: var(--cream); font-family: var(--font-body); font-weight: 600; font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 14px; }
.footer__col ul { display: flex; flex-direction: column; gap: 9px; font-size: 14.5px; }
.footer__contact p { font-size: 14.5px; line-height: 1.6; margin-bottom: 12px; }
.footer__cta { display: inline-flex; align-items: center; justify-content: center; padding: 12px 22px; border-radius: 100px; background: var(--gold); color: var(--slate); font-weight: 600; font-size: 14px; line-height: 1; margin-bottom: 12px; animation: floatY 3.2s ease-in-out infinite; }
.footer__cta:hover { background: var(--gold-hover); color: var(--slate); }
.footer__bottom { margin-top: clamp(36px,5vw,56px); padding-top: 24px; border-top: 1px solid rgba(244,239,227,.12); display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; font-size: 13.5px; }
.footer__bottom-links { display: flex; gap: 20px; }

@media (max-width: 820px) { .footer__grid { grid-template-columns: 1fr 1fr; } .footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .footer__grid { grid-template-columns: 1fr; } }

/* ---------- A11y / motion ---------- */
:focus-visible { outline: 2px solid var(--gold-mid); outline-offset: 2px; border-radius: 6px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
