/*
 * Hemsidan folje.se (apps/site, #348). Formen följer profilförslaget "Två spår": benvit yta, kort
 * med rundade hörn och en färg per område. Alla färger är appens färger ur packages/ui/tokens.json,
 * i ljust och mörkt läge; site.test.ts prövar att de är det och att kontrasten räcker. Typsnittet är
 * Atkinson Hyperlegible Next från repot (OFL, fonts/OFL.txt). Ingen text är mindre än 18 px.
 */
@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  src: url(/fonts/atkinson-regular.woff2);
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  src: url(/fonts/atkinson-bold.woff2);
  font-weight: 700;
  font-display: swap;
}

:root {
  color-scheme: light dark;
  --splash-background: #f6f3eb;
  --surface: #fffefa;
  --surface-soft: #edf0e8;
  --text: #0d3335;
  --text-muted: #526359;
  --sage: #526b50;
  --border: #cbd3c8;
  --card-border: #dfe3d7;
  --tag-background: #edeadf;
  --primary-background: #0d3335;
  --primary-text: #fffefa;
  --focus: #99531d;
  --shadow: #0d333522;
  --journal-ink: #63428b;
  --journal-bg: #f1eaf8;
  --tests-ink: #245b96;
  --tests-bg: #e8f1fc;
  --medicines-ink: #286540;
  --medicines-bg: #e9f4e9;
  --contacts-ink: #923d69;
  --contacts-bg: #fbeaf3;
  --everyday-ink: #96501d;
  --everyday-bg: #fff0e2;
  --privacy-ink: #756019;
  --privacy-bg: #faf4d9;
}

@media (prefers-color-scheme: dark) {
  :root {
    --splash-background: #0b1d20;
    --surface: #162e32;
    --surface-soft: #203c3d;
    --text: #e8f1e9;
    --text-muted: #b5c8bf;
    --sage: #b6c8a6;
    --border: #45615c;
    --card-border: #45615c;
    --tag-background: #2a4443;
    --primary-background: #d7e5d0;
    --primary-text: #122a2b;
    --focus: #f1be7a;
    --shadow: #0d333522;
    --journal-ink: #cab2ee;
    --journal-bg: #302c42;
    --tests-ink: #a3cdf3;
    --tests-bg: #23364c;
    --medicines-ink: #abd6af;
    --medicines-bg: #243e2d;
    --contacts-ink: #efacd0;
    --contacts-bg: #432c3b;
    --everyday-ink: #eec292;
    --everyday-bg: #423525;
    --privacy-ink: #decd7f;
    --privacy-bg: #3c3826;
  }
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--splash-background);
  color: var(--text);
  font-family: 'Atkinson Hyperlegible Next', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  font-size: 1.125rem;
  line-height: 1.6;
}

.top,
main,
footer {
  max-width: 74rem;
  margin: 0 auto;
  padding: 0 1.25rem;
}

/* Logotypen: minst 120 px bred, proportionen behålls (logotyp/LÄS-MIG.md). */
.logo {
  max-width: 100%;
  height: auto;
}

.top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 1.5rem;
  padding-bottom: 1rem;
}

.nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

a {
  color: var(--text);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.15em;
  overflow-wrap: anywhere;
}

a:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}

h1,
h2,
h3,
h4,
p,
ul {
  margin: 0 0 1rem;
}

h1 {
  font-size: 2.75rem;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

h2 {
  font-size: 1.875rem;
  line-height: 1.15;
}

h3 {
  font-size: 1.375rem;
  line-height: 1.25;
}

h4 {
  font-size: 1.25rem;
  line-height: 1.25;
}

.green {
  display: block;
  color: var(--sage);
}

.eyebrow {
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.lead {
  font-size: 1.25rem;
}

.note,
.label,
.tag {
  color: var(--text-muted);
}

section {
  padding: 2.5rem 0;
}

.card {
  background: var(--surface);
  border: 1px solid var(--card-border);
  border-radius: 1.75rem;
  box-shadow: 0 0.75rem 2rem var(--shadow);
  padding: 1.75rem;
}

/* Hjälten: text och kortet "En glimt av Följe". */
.hero {
  display: grid;
  gap: 2rem;
  align-items: center;
}

/*
 * Vattenmärket: symbolen, svag, i hörnet på kortet "En glimt av Följe" och överst i bågen. Det
 * ligger aldrig över text: i kortet flyter texten runt det, och i bågen står texten under det.
 * `opacity` finns bara här (site.test.ts).
 */
.watermark {
  height: auto;
  opacity: 0.25;
}

.glimpse .watermark {
  float: right;
  margin-left: 1rem;
  margin-bottom: 0.5rem;
}

.arch .watermark {
  display: block;
  margin: 0 auto 1rem;
}

.tiles,
.area-cards,
.asks,
.pair,
.safe ul,
.contact ul {
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
}

.tiles {
  display: grid;
  gap: 0.75rem;
}

.tile {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  border-radius: 1.125rem;
  padding: 0.875rem;
  font-weight: 700;
}

.icon {
  flex: none;
  box-sizing: border-box;
  height: 2.75rem;
  aspect-ratio: 1;
  padding: 0.5rem;
  border-radius: 0.75rem;
  background: var(--surface);
  fill: currentColor;
}

.visitcard {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: var(--surface-soft);
  border-radius: 1.125rem;
  padding: 0.875rem;
  font-weight: 700;
}

/* Områdena: kortytan och markeringen ur tokens (areas), aldrig något om hur allvarligt något är. */
.journal {
  background: var(--journal-bg);
  color: var(--journal-ink);
}

.tests {
  background: var(--tests-bg);
  color: var(--tests-ink);
}

.medicines {
  background: var(--medicines-bg);
  color: var(--medicines-ink);
}

.contacts {
  background: var(--contacts-bg);
  color: var(--contacts-ink);
}

.everyday {
  background: var(--everyday-bg);
  color: var(--everyday-ink);
}

.privacy {
  background: var(--privacy-bg);
  color: var(--privacy-ink);
}

.icon.journal,
.icon.tests,
.icon.medicines,
.icon.contacts,
.icon.everyday,
.icon.privacy,
.icon.visiticon {
  background: var(--surface);
}

/* Besöksikonen har en egen klass, så att den inte lutar med besökskortet (.visit). */
.icon.visiticon {
  color: var(--everyday-ink);
}

/* Remsan "Det börjar med dig." */
.strip {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 1.5rem 0;
}

.strip h2 {
  font-size: 1.375rem;
  margin: 0;
}

.strip p {
  margin: 0;
  color: var(--text-muted);
}

.symbol {
  flex: none;
  height: auto;
}

/* Områdeskorten. */
.group-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0 1rem;
  margin-top: 1.5rem;
}

.area-cards {
  display: grid;
  gap: 1rem;
}

.area {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  border-radius: 1.125rem;
  padding: 1.5rem;
}

.area p {
  margin: 0;
  color: var(--text);
}

/* Bandet "Samla. Hitta. Dela." */
.band {
  background: var(--surface-soft);
  border-radius: 1.75rem;
  padding: 2.5rem 1.5rem;
  margin: 1.5rem 0;
}

.steps {
  display: grid;
  gap: 1.5rem;
}

.num {
  color: var(--sage);
  font-weight: 700;
}

.step .num {
  font-size: 1.75rem;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.75rem;
}

/* Besökskortet. */
.questions,
.near {
  display: grid;
  gap: 2rem;
  align-items: center;
}

.visit {
  transform: rotate(1.5deg);
}

.visit-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.tag {
  margin: 0;
  background: var(--tag-background);
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  padding: 0.125rem 0.625rem;
}

.asks li {
  border-bottom: 1px solid var(--border);
  padding: 0.75rem 0;
}

.sign {
  font-weight: 700;
  margin: 0;
}

/* Delningen: bågen med "Du" och "Din nära". */
.arch {
  background: var(--surface-soft);
  border-radius: 12rem 12rem 1.75rem 1.75rem;
  padding: 4rem 1.5rem 2rem;
  text-align: center;
}

/* Linjen mellan "Du" och "Din nära": lika bred som avståndet mellan cirklarna och mitt i det. */
.pair {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin: 1.5rem 0;
  background: linear-gradient(var(--text), var(--text)) center / 2.5rem 2px no-repeat;
}

.pair li {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 5.5rem;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 2px solid var(--text);
  line-height: 1.2;
}

.pair .you {
  background: var(--primary-background);
  color: var(--primary-text);
  border-color: var(--primary-background);
}

.pair .them {
  background: var(--surface);
  margin-left: 2.5rem;
}

/* Det som alltid gäller. */
.safe,
.care {
  background: var(--surface-soft);
  border-radius: 1.75rem;
  padding: 2rem 1.5rem;
  margin: 1rem 0;
}

.safe li,
.contact li {
  margin-bottom: 0.5rem;
}

footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 2rem;
  border-top: 1px solid var(--border);
  padding-top: 1.5rem;
  padding-bottom: 2.5rem;
  color: var(--text-muted);
}

footer p {
  margin: 0;
}

.motto {
  color: var(--text);
  font-weight: 700;
}

/* Organisationsnumret bryts inte vid bindestrecket. */
footer span {
  white-space: nowrap;
}

/* Bredare skärmar: hjälten, besökskortet och delningen i två spalter, korten i ett rutnät. */
@media (min-width: 52rem) {
  h1 {
    font-size: 4.25rem;
  }

  h2 {
    font-size: 2.5rem;
  }

  .hero,
  .questions,
  .near {
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
  }

  .split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
  }

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

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

  .band {
    padding: 3rem;
  }
}
