@font-face {
  font-family: "Candu";
  src: url("fonts/Candu.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Olive Display";
  src: url("fonte/OliveDisplay-ExtraLight.otf") format("opentype");
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Olive Display";
  src: url("fonte/OliveDisplay-Light.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

/* =========================
   GRUNDINDSTILLINGER
========================= */

* {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
}

body {
  min-height: 100vh;
  margin: 0;

  display: flex;
  flex-direction: column;

  background: #cfe0f8;
  color: #050505;
  font-family: "Candu", Arial, sans-serif;
  font-weight: 400;
}

/* =========================
   HOVEDINDHOLD
========================= */

main {
  width: 100%;
  flex: 1;

  /* Sikkerhedsnet: formen må aldrig give vandret scroll */
  overflow-x: clip;
}

.hero {
  width: min(1600px, calc(100% - 160px));
  margin: 92px auto 40px;

  display: grid;
  grid-template-columns: minmax(0, 1fr) 525px;
  grid-template-rows: 1fr auto;
  grid-template-areas:
    "content image"
    "button  image";
  column-gap: 115px;
  row-gap: 0;
}

.hero-content {
  grid-area: content;

  width: 100%;
  padding-top: 4px;

  display: flex;
  flex-direction: column;
}

/* =========================
   INTROTEKST
========================= */

.hero-label {
  margin: 0 0 15px;

  color: #272631;

  font-family: "Olive Display", sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 4px;
}

.hero h1 {
  margin: 0;

  font-family: "Candu", sans-serif;
  font-size: clamp(68px, 6.6vw, 94px);
  font-weight: 900;
  line-height: 0.94;
  letter-spacing: 2px;
}

.hero h1 span {
  display: block;
}

.last-name {
  margin-top: 24px;
  color: #eb36ef;
}

.hero-description {
  width: 100%;
  max-width: 470px;
  margin: 34px 0 0;

  color: #272631;
  font-family: "Olive Display", sans-serif;
  font-size: 22px;
  font-weight: 200;
  line-height: 1.45;
}

/* Linjeskiftene i beskrivelsen gælder kun på mobil */

.mobile-break {
  display: none;
}

/* =========================
   CTA
========================= */

.project-button {
  width: 100%;
  max-width: 410px;
  min-height: 54px;
  margin: 32px 0 0;
  padding: 12px 28px;
  grid-area: button;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 2px solid #eb36ef;
  border-radius: 999px;

  background: #eb36ef;
  color: #fff;

  font-family: Arial, Helvetica, sans-serif;
  font-size: 18px;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  text-decoration: none;

  transition:
    color 250ms ease,
    background-color 250ms ease;
}

.project-button:hover {
  background: #fff;
  color: #eb36ef;
}

/* =========================
   PORTRÆT
========================= */

.hero-image-wrapper {
  position: relative;

  width: 350px;
  aspect-ratio: 2 / 3;
  grid-area: image;
  overflow: visible;
  border-radius: 28px;
}

.hero-image-wrapper::before {
  content: "";
  position: absolute;
  top: -60px;
  left: -110px;
  z-index: 0;

  width: 560px;
  height: 560px;

  background: url("webpbilleder/forsideommig/purpleart.webp") no-repeat center / contain;

  pointer-events: none;
}

.hero-image {
  position: relative;
  z-index: 1;

  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;
  object-position: center;

  border-radius: 28px;
  overflow: hidden;
}

/* ========================================
   TABLET
======================================== */

@media (max-width: 1150px) {
  .hero {
    width: min(calc(100% - 60px), 600px);
    margin: 60px auto 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
  }

  .hero-content {
    order: 1;
    padding-top: 0;

    align-items: flex-start;
    text-align: left;
    max-width: 420px;
    margin: 0 auto;
  }

  .hero-label {
    font-size: 12px;
    letter-spacing: 3.5px;
  }

  .hero h1 {
    font-size: clamp(48px, 8vw, 64px);
    line-height: 1;
  }

  .last-name {
    margin-top: 10px;
  }

  .hero-description {
    max-width: 100%;
    margin: 24px 0 0;
    font-size: 19px;
    line-height: 1.5;
  }

  .hero-image-wrapper {
    order: 2;

    width: min(320px, 55vw);
    aspect-ratio: 2 / 3;
    margin: 44px auto 36px;
  }

  .hero-image-wrapper::before {
    top: -48px;
    left: -110px;

    width: min(540px, 95vw);
    height: min(540px, 95vw);
  }

  .project-button {
    order: 3;
    align-self: center;

    width: min(280px, 90%);
    max-width: none;
    min-height: 52px;

    padding: 14px 28px;
    margin: 12px auto 40px;

    font-size: 17px;
  }

  .site-footer {
    padding: 26px 30px;
  }
}

/* ========================================
   MOBIL
======================================== */

@media (max-width: 650px) {
  .hero {
    width: min(calc(100% - 40px), 500px);
    margin: 40px auto 0;

    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .mobile-break {
    display: inline;
  }

  .hero-content {
    order: 1;
    padding-top: 0;

    align-items: flex-start;
    text-align: left;
    width: 100%;
    max-width: 320px;
    margin: 0 auto;
  }

  .hero-label {
    font-size: 11px;
    letter-spacing: 3px;
  }

  .hero h1 {
    font-size: clamp(34px, 11vw, 46px);
    line-height: 1.05;
  }

  .last-name {
    margin-top: 4px;
  }

  .hero-description {
    max-width: 100%;
    margin: 18px 0 0;
    font-size: 17px;
    line-height: 1.5;
  }

  /* Billede med lilla blob-baggrund */

  .hero-image-wrapper {
    order: 2;

    width: min(260px, 65vw);
    aspect-ratio: 2 / 3;
    margin: 36px auto 32px;
  }

  .hero-image-wrapper::before {
    top: -40px;
    left: -95px;

    width: min(460px, 115vw);
    height: min(460px, 115vw);
  }

  /* Knappen kommer efter billedet på mobil */

  .project-button {
    order: 3;
    align-self: center;

    width: fit-content;
    max-width: none;
    min-height: 44px;

    padding: 10px 26px;
    margin: 8px auto 40px;

    font-size: 15px;
  }

  /* Footer */

  .site-footer {
    padding: 24px 20px;
    border-top: 1px solid rgb(23 21 31 / 20%);
  }

  .footer-content {
    gap: 12px;
  }

  .email-link {
    font-size: 15px;
  }
}

/* ========================================
   LILLE MOBIL
======================================== */

@media (max-width: 400px) {
  .hero-image-wrapper::before {
    top: -30px;
    left: 50%;
    transform: translateX(-55%);

    width: 100vw;
    height: 100vw;
  }
}
/* ========================================
   STORE SKÆRME – SAML TEKST OG BILLEDE
======================================== */

@media (min-width: 1151px) {
  .hero {
    width: min(1300px, calc(100% - 160px));
  }
}
