:root {
  --campaign-header: 72px;
}

body.campaign-page {
  background: #f6faf8;
  color: #102337;
}

.campaign-header {
  position: sticky;
  z-index: 80;
  top: 0;
  height: var(--campaign-header);
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 22px;
  padding: 0 max(22px, calc((100vw - 1180px) / 2));
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid #d7e2e9;
}

.campaign-brand {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 11px;
  color: #102337;
  font-family: "Poppins", Arial, sans-serif;
  font-size: .92rem;
  font-weight: 800;
}

.campaign-brand img {
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
  object-fit: contain;
  background: #fff;
  border-radius: 50%;
}

.campaign-header .button {
  min-height: 42px;
}

.campaign-hero {
  position: relative;
  min-height: min(760px, calc(82svh - var(--campaign-header)));
  display: flex;
  align-items: center;
  isolation: isolate;
  color: #fff;
  background-color: #123f3b;
  background-image: url("/images/campaign/kitchen-real.jpg");
  background-position: 66% 48%;
  background-size: cover;
}

.campaign-hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  background: rgba(5, 28, 38, .68);
}

.campaign-hero-inner {
  width: min(100% - 44px, 1180px);
  margin: 0 auto;
  padding: 70px 0 76px;
}

.campaign-hero-copy {
  max-width: 720px;
}

.campaign-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 18px;
  padding: 7px 10px;
  color: #fff;
  background: #0b5d3b;
  border: 1px solid rgba(255, 255, 255, .28);
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.campaign-kicker svg {
  width: 17px;
  height: 17px;
  color: #b9f0d5;
}

.campaign-hero h1 {
  max-width: 720px;
  margin: 0;
  color: #fff;
  font-family: "Poppins", Arial, sans-serif;
  font-size: clamp(3rem, 6.2vw, 6rem);
  line-height: 1.01;
  letter-spacing: 0;
}

.campaign-hero-lead {
  max-width: 650px;
  margin: 24px 0 0;
  color: rgba(255, 255, 255, .86);
  font-size: clamp(1rem, 1.7vw, 1.25rem);
  line-height: 1.55;
}

.campaign-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  margin-top: 30px;
}

.campaign-actions .button-ghost {
  color: #fff;
  border-color: rgba(255, 255, 255, .55);
  background: rgba(5, 28, 38, .34);
}

.campaign-assurances {
  display: flex;
  flex-wrap: wrap;
  gap: 13px 25px;
  margin-top: 28px;
  color: rgba(255, 255, 255, .88);
  font-size: .78rem;
  font-weight: 700;
}

.campaign-assurances span {
  display: flex;
  align-items: center;
  gap: 7px;
}

.campaign-assurances svg {
  width: 18px;
  height: 18px;
  color: #b9f0d5;
}

.campaign-trust {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: #fff;
  border-bottom: 1px solid #d7e2e9;
}

.campaign-trust div {
  min-height: 86px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 20px;
  border-right: 1px solid #d7e2e9;
  color: #0b4f8a;
  font-size: .78rem;
  font-weight: 800;
  text-align: center;
}

.campaign-trust div:last-child {
  border-right: 0;
}

.campaign-trust svg {
  width: 21px;
  height: 21px;
  color: #13844f;
}

.campaign-quote {
  display: grid;
  grid-template-columns: .86fr 1.14fr;
  gap: 72px;
  padding: 96px max(22px, calc((100vw - 1180px) / 2));
  color: #fff;
  background: #0b3656;
}

.campaign-quote-copy {
  align-self: start;
  position: sticky;
  top: calc(var(--campaign-header) + 32px);
}

.campaign-quote-copy h2,
.campaign-work h2,
.campaign-process h2,
.campaign-areas h2 {
  margin: 0;
  font-family: "Poppins", Arial, sans-serif;
  font-size: clamp(2.25rem, 4.3vw, 4.35rem);
  line-height: 1.08;
  letter-spacing: 0;
}

.campaign-quote-copy > p:not(.eyebrow) {
  max-width: 500px;
  color: rgba(255, 255, 255, .74);
}

.campaign-direct {
  display: grid;
  gap: 1px;
  margin-top: 34px;
  background: rgba(255, 255, 255, .16);
  border: 1px solid rgba(255, 255, 255, .16);
}

.campaign-direct a {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 12px;
  align-items: center;
  padding: 15px;
  color: #fff;
  background: #0b5d3b;
}

.campaign-direct svg {
  width: 21px;
  height: 21px;
  color: #b9f0d5;
}

.campaign-direct small,
.campaign-direct strong {
  display: block;
}

.campaign-direct small {
  color: rgba(255, 255, 255, .65);
  font-size: .67rem;
}

.campaign-direct strong {
  font-size: .82rem;
}

.campaign-quote .quote-form {
  align-self: start;
}

.campaign-form-note {
  margin: -12px 0 18px;
  color: #4c5f70;
  font-size: .72rem;
}

.campaign-work {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 72px;
  align-items: center;
  padding: 100px max(22px, calc((100vw - 1180px) / 2));
  background: #fff;
}

.campaign-work-copy p:not(.eyebrow) {
  max-width: 520px;
  color: #4c5f70;
}

.campaign-work-media {
  min-height: 560px;
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 10px;
}

.campaign-work-media figure {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: #d7e2e9;
}

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

.campaign-work-media figure:first-child img {
  object-position: center;
}

.campaign-work-media figure:last-child img {
  object-position: 50% 30%;
}

.campaign-process {
  padding: 92px max(22px, calc((100vw - 1180px) / 2));
  background: #eaf4f8;
}

.campaign-process > p,
.campaign-process > h2 {
  max-width: 760px;
}

.campaign-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 46px;
  border-top: 1px solid #b9ceda;
  border-bottom: 1px solid #b9ceda;
}

.campaign-step {
  min-height: 220px;
  padding: 32px 30px 34px 0;
  border-right: 1px solid #b9ceda;
}

.campaign-step + .campaign-step {
  padding-left: 30px;
}

.campaign-step:last-child {
  border-right: 0;
}

.campaign-step b {
  color: #0d73c8;
  font-size: .78rem;
}

.campaign-step h3 {
  margin: 32px 0 8px;
  font-family: "Poppins", Arial, sans-serif;
  font-size: 1.18rem;
}

.campaign-step p {
  margin: 0;
  color: #4c5f70;
  font-size: .84rem;
}

.campaign-areas {
  padding: 92px max(22px, calc((100vw - 1180px) / 2));
  background: #fff;
}

.campaign-areas p {
  max-width: 720px;
  color: #4c5f70;
}

.campaign-area-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 28px;
}

.campaign-area-list span {
  padding: 9px 12px;
  color: #0b4f8a;
  background: #f4faff;
  border: 1px solid #b9ceda;
  font-size: .76rem;
  font-weight: 800;
}

.campaign-footer {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
  padding: 38px max(22px, calc((100vw - 1180px) / 2));
  color: #fff;
  background: #081722;
}

.campaign-footer strong,
.campaign-footer small {
  display: block;
}

.campaign-footer small {
  color: rgba(255, 255, 255, .56);
}

.campaign-footer nav {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  font-size: .75rem;
  font-weight: 700;
}

.consent-banner {
  position: fixed;
  z-index: 200;
  right: 18px;
  bottom: 18px;
  width: min(520px, calc(100% - 36px));
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: end;
  padding: 18px;
  color: #102337;
  background: #fff;
  border: 1px solid #a9bac5;
  border-radius: 8px;
  box-shadow: 0 18px 48px rgba(8, 43, 67, .22);
}

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

.consent-banner p {
  margin: 0;
}

.consent-banner strong,
.consent-banner span {
  display: block;
}

.consent-banner strong {
  margin-bottom: 5px;
  font-family: "Poppins", Arial, sans-serif;
  font-size: .85rem;
}

.consent-banner span,
.consent-banner a {
  font-size: .7rem;
}

.consent-banner a {
  display: inline-block;
  margin-top: 5px;
  color: #0b4f8a;
  text-decoration: underline;
}

.consent-banner > div {
  display: flex;
  gap: 7px;
}

.consent-banner button {
  min-height: 38px;
  padding: 8px 12px;
  cursor: pointer;
  border-radius: 4px;
  font: inherit;
  font-size: .72rem;
  font-weight: 800;
}

.consent-decline {
  color: #102337;
  background: #fff;
  border: 1px solid #a9bac5;
}

.consent-accept {
  color: #fff;
  background: #0b5d3b;
  border: 1px solid #0b5d3b;
}

.campaign-mobile-actions {
  display: none;
}

@media (max-width: 860px) {
  .campaign-header {
    grid-template-columns: 1fr auto;
  }

  .campaign-header > .button {
    display: none;
  }

  .campaign-hero {
    min-height: min(720px, calc(84svh - var(--campaign-header)));
    background-position: 58% 48%;
  }

  .campaign-hero::before {
    background: rgba(5, 28, 38, .72);
  }

  .campaign-quote,
  .campaign-work {
    grid-template-columns: 1fr;
    gap: 46px;
  }

  .campaign-quote-copy {
    position: static;
  }

  .campaign-work-media {
    min-height: 500px;
  }

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

  .campaign-step,
  .campaign-step + .campaign-step {
    min-height: 0;
    padding: 27px 0;
    border-right: 0;
    border-bottom: 1px solid #b9ceda;
  }

  .campaign-step:last-child {
    border-bottom: 0;
  }

  .campaign-step h3 {
    margin-top: 18px;
  }
}

@media (max-width: 560px) {
  :root {
    --campaign-header: 64px;
  }

  .campaign-header {
    padding-inline: 15px;
  }

  .campaign-brand {
    font-size: .73rem;
  }

  .campaign-brand img {
    width: 40px;
    height: 40px;
  }

  .campaign-header .language-control {
    margin: 0;
  }

  .campaign-hero {
    min-height: calc(82svh - var(--campaign-header));
    background-position: 55% center;
  }

  .campaign-hero-inner {
    width: min(100% - 34px, 520px);
    padding: 48px 0 54px;
  }

  .campaign-hero h1 {
    font-size: clamp(2.55rem, 12vw, 3.55rem);
    overflow-wrap: anywhere;
  }

  .campaign-hero-lead {
    font-size: .94rem;
  }

  .campaign-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .campaign-actions .button {
    width: 100%;
    min-height: 46px;
    padding-inline: 8px;
    font-size: .72rem;
  }

  .campaign-assurances {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
    font-size: .67rem;
  }

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

  .campaign-trust div {
    min-height: 64px;
    border-right: 0;
    border-bottom: 1px solid #d7e2e9;
  }

  .campaign-trust div:last-child {
    border-bottom: 0;
  }

  .campaign-quote,
  .campaign-work,
  .campaign-process,
  .campaign-areas {
    padding: 70px 18px;
  }

  .campaign-quote {
    gap: 36px;
  }

  .campaign-quote-copy h2,
  .campaign-work h2,
  .campaign-process h2,
  .campaign-areas h2 {
    font-size: 2.4rem;
  }

  .campaign-work-media {
    min-height: 460px;
    grid-template-columns: 1fr;
    grid-template-rows: 1.15fr .85fr;
  }

  .campaign-footer {
    grid-template-columns: 1fr;
    padding: 36px 18px 86px;
  }

  .consent-banner {
    right: 10px;
    bottom: 76px;
    width: calc(100% - 20px);
    grid-template-columns: 1fr;
  }

  .consent-banner > div {
    justify-content: flex-end;
  }

  .campaign-mobile-actions {
    position: fixed;
    z-index: 90;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 8px;
    background: #fff;
    border-top: 1px solid #d7e2e9;
  }

  .campaign-mobile-actions a {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #fff;
    background: #0b5d3b;
    font-size: .78rem;
    font-weight: 800;
  }

  .campaign-mobile-actions a + a {
    background: #0b4f8a;
  }
}
