html { scroll-behavior: smooth; }
h1, h2, h3, h4, h5, h6 { margin: 0 0 0.5rem; font-weight: 500; line-height: 1.2; }
p { margin: 0 0 1rem; font-size: var(--font-body); }
img, svg { vertical-align: middle; }
button { cursor: pointer; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* VARIABLES */

:root {
  --font-primary: "Poppins";
  --font-content: "Inter";

  --primary-color: #2c2b7d;
  --theme-color: var(--primary-color);
  --alt-color: #e21f26;
  --muted: #979797;
  --text-color: #333333;

  /* Shared type scale across breakpoints */
  --font-hero: 52px;
  --font-heading: 45px;
  --font-card-heading: 24px;
  --font-form-heading: var(--font-card-heading);
  --font-body: 14px;
  --font-small: 12px;

  /* Common button */
  --button-background: var(--primary-color);
  --button-hover-background: var(--alt-color);
  --button-color: #ffffff;
  --button-radius: 7px;
  --button-height: 46px;

}

/* BASE */

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  line-height: 1.5;
  color: var(--text-color);
  background: #ffffff;
  font-family: var(--font-content), sans-serif;
  font-size: var(--font-body);
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-primary), sans-serif;
}

button,
input,
textarea,
select {
  font: inherit;
  font-family: var(--font-content), sans-serif;
}

button,
a,
input,
textarea,
select {
  -webkit-tap-highlight-color: transparent;
}

a {
  font-size: var(--font-body);
  color: inherit;
}

img {
  max-width: 100%;
}

:focus-visible {
  outline: 3px solid var(--alt-color);
  outline-offset: 4px;
}

::selection {
  color: var(--text-color);
  background: color-mix(in srgb, var(--alt-color) 25%, white);
}

.campaign-page {
  width: 100%;
}

.campaign-container {
  width: 90%;
  margin-inline: auto;
  max-width: 1320px;
  padding-right: 0;
  padding-left: 0;
}

.asset-icon {
  display: block;
  flex-shrink: 0;
  object-fit: contain;
}

/* COMMON BUTTON */

.sintex-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: var(--button-height);
  padding: 11px 24px;
  border: 1px solid transparent;
  border-radius: var(--button-radius);
  color: var(--button-color);
  background: var(--button-background);
  font-family: var(--font-content), sans-serif;
  font-size: var(--font-body);
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color 180ms ease,
    color 180ms ease,
    border-color 180ms ease;
}

.sintex-button:hover {
  color: #ffffff;
  background: var(--button-hover-background);
}

.sintex-button__arrow {
  display: block;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  object-fit: contain;
}

.sintex-button--light {
  --button-background: #ffffff;
  --button-color: var(--primary-color);
}

/* Use the actual blue and white assets for predictable contrast. */
.sintex-button__arrows {
  display: inline-grid;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
}

.sintex-button__arrows .sintex-button__arrow {
  grid-area: 1 / 1;
}

.sintex-button__arrow--hover {
  opacity: 0;
}

.sintex-button--light:is(:hover, :focus-visible) {
  color: #ffffff;
  background: var(--alt-color);
}

.sintex-button--light:is(:hover, :focus-visible) .sintex-button__arrow--default {
  opacity: 0;
}

.sintex-button--light:is(:hover, :focus-visible) .sintex-button__arrow--hover {
  opacity: 1;
}

/* HERO */

.campaign-hero {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: auto;
  aspect-ratio: 1600 / 697;
  overflow: visible;
  margin-bottom: var(--form-overflow, 0px);
  border-radius: 0 0 16px 16px;
  color: #ffffff;
}

.campaign-hero__banner {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: auto;
  z-index: -1;
  object-fit: contain;
  object-position: center;
}

.campaign-hero__logos {
  position: absolute;
  top: 13.5%;
  left: 5%;
  display: flex;
  align-items: center;
  gap: 24px;
}

.campaign-hero__logos img {
  display: block;
  height: 62px;
  object-fit: contain;
}

.campaign-hero__content {
  position: absolute;
  top: 37.3%;
  left: 5%;
  width: 405px;
}

.campaign-hero__eyebrow {
  margin: 0 0 16px;
  font-size: var(--font-body);
  font-weight: 700;
  line-height: 1.4;
  text-transform: uppercase;
}

.campaign-hero__content h1 {
  margin: 0;
  font-size: var(--font-hero);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -1px;
}

.campaign-hero__description {
  max-width: 390px;
  margin: 20px 0 0;
  font-size: var(--font-body);
  font-weight: 500;
  line-height: 1.6;
}

.campaign-hero__form {
  position: absolute;
  top: max(20px, calc((100% - var(--enquiry-height, 448px)) / 2));
  right: 5%;
  width: 390px;
  transform: none;
}

/* ENQUIRY FORM */

.enquiry-form {
  padding: 28px 36px 30px;
  border-radius: 20px;
  color: var(--text-color);
  background: #ffffff;
  scroll-margin-top: 24px;
}

.enquiry-form h3 {
  margin: 0 0 14px;
  font-size: var(--font-form-heading);
  font-weight: 500;
  line-height: 1.2;
}

.enquiry-form h3 span {
  color: var(--primary-color);
}

.enquiry-form__field {
  margin-bottom: 20px;
}

.enquiry-form__field label {
  display: block;
  margin: 0;
  font-size: var(--font-body);
  font-weight: 400;
  line-height: 1.5;
}

.enquiry-form__field input {
  display: block;
  width: 100%;
  min-width: 0;
  height: 27px;
  padding: 3px 0;
  border: 0;
  border-bottom: 1px solid #777777;
  border-radius: 0;
  outline-offset: 3px;
  color: var(--text-color);
  background: transparent;
  font-size: var(--font-small);
}

.enquiry-form__field input::placeholder {
  color: var(--muted);
  opacity: 1;
}

.enquiry-form__field input:focus {
  outline: none;
  border-bottom-color: var(--theme-color);
  box-shadow: 0 1px 0 var(--theme-color);
}

.enquiry-form__field input[aria-invalid="true"] {
  border-bottom-color: var(--alt-color);
  box-shadow: 0 1px 0 var(--alt-color);
}

.enquiry-form__error {
  margin: 6px 0 0;
  color: var(--alt-color);
  font-size: var(--font-small);
  line-height: 1.5;
}

.enquiry-form__submit {
  width: 100%;
}

.enquiry-form__status {
  margin: 12px 0 0;
  font-size: var(--font-small);
  line-height: 1.5;
}

.enquiry-form__status:empty {
  display: none;
}

/* SECTION HEADINGS */

.section-heading {
  margin-bottom: 36px;
  text-align: center;
}

.section-heading h2 {
  margin: 0;
  font-size: var(--font-heading);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.7px;
}

.section-heading h2 span {
  color: var(--primary-color);
}

.section-heading > p {
  margin: 8px 0 0;
  font-size: var(--font-body);
  line-height: 1.6;
}

/* SECTION BACKGROUND */

.campaign-details {
  background:
    radial-gradient(
      ellipse at 88% 43%,
      rgb(226 31 38 / 10%),
      transparent 44%
    );
}

/* PRODUCT GRID: equal-height cards in a two-by-two desktop matrix. */

.products-section {
  padding-top: 46px;
}

.products-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  align-items: stretch;
  gap: 32px;
}

.product-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
  padding: 30px 34px 26px;
  border: 1px solid #ffe0e0;
  border-radius: 20px;
  background: #ffffff;
  box-shadow: 0 0 18px rgb(226 31 38 / 18%);
}

.product-card__header {
  min-height: 104px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 24px;
}

.product-card__header > div {
  flex: 1;
  min-width: 0;
}

.product-card__header h3 {
  margin: 0 0 6px;
  font-size: var(--font-card-heading);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -0.5px;
}

.product-card__header p {
  margin: 0;
  font-size: var(--font-body);
  line-height: 1.55;
}

.round-icon {
  display: inline-flex;
  flex: 0 0 62px;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background: var(--alt-color);
}

.round-icon > .asset-icon {
  width: 34px;
  height: 34px;
}

.product-card__body {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 205px;
  align-items: start;
  gap: 16px;
}

.product-card__features {
  margin: 0;
  padding: 0;
  list-style: none;
  color: var(--primary-color);
}

.product-card__features li {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 5px;
  font-size: var(--font-small);
  line-height: 1.7;
}

.product-card__features li:last-child {
  margin-bottom: 0;
}

.product-card__features strong {
  font-weight: 600;
}

.product-card__features p {
  font-size: var(--font-small);
  margin: 0;
}

.feature-check {
  display: block;
  flex: 0 0 15px;
  width: 15px;
  height: 15px;
  margin-top: 3px;
}

.feature-check img {
  display: block;
  width: 15px;
  height: 15px;
  object-fit: contain;
}

.product-card__image {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  align-self: end;
  min-width: 0;
  padding-bottom: 8px;
}

.product-card__image img {
  display: block;
  width: 100%;
  height: 270px;
  object-fit: contain;
  object-position: center bottom;
}

.product-card__best {
  display: flex;
  align-items: center;
  text-align: left;
  min-height: 56px;
  margin: 24px 0 0;
  padding: 10px 12px;
  border-radius: 7px;
  color: #ffffff;
  background: var(--primary-color);
  font-size: var(--font-small);
  line-height: 1.5;
}

.product-card__best strong {
  font-weight: 600;
}

/* BENEFITS */

.benefits-section {
  padding-top: 58px;
}

.benefits-section .section-heading {
  margin-bottom: 28px;
}

.benefits-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  padding: 38px 0;
  border-top: 1px solid #d4d4d4;
  border-bottom: 1px solid #dedee5;
}

.benefit {
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 0;
}

.benefit h3 {
  margin: 0 0 5px;
  font-size: var(--font-body);
  font-weight: 600;
  line-height: 1.45;
}

.benefit p {
  margin: 0;
  font-size: var(--font-body);
  line-height: 1.45;
}

/* CAPACITY GUIDE */

.capacity-section {
  padding-top: 60px;
}

.capacity-panel {
  display: grid;
  grid-template-columns: 330px minmax(0, 1fr);
  align-items: center;
  gap: 34px;
  padding: 64px 62px;
  border-radius: 18px;
  color: #ffffff;
  background: var(--primary-color);
}

.capacity-panel__intro {
  min-width: 0;
}

.capacity-panel__intro h2 {
  margin: 0;
  font-size: var(--font-heading);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -0.7px;
}

.capacity-panel__intro > p {
  max-width: 270px;
  margin: 24px 0 30px;
  font-size: var(--font-body);
  line-height: 1.5;
}

.capacity-panel__intro .sintex-button {
  min-width: 260px;
}

.capacity-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 22px;
  min-width: 0;
}

.capacity-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  padding: 30px 16px 32px;
  border: 1px solid #ffffff;
  border-radius: 15px;
  text-align: center;
}

.capacity-card--featured {
  border: 2px solid var(--alt-color);
  color: var(--text-color);
  background: #ffffff;
}

.capacity-card__ribbon {
  position: absolute;
  top: -16px;
  left: 50%;
  min-width: 126px;
  padding: 6px 12px;
  transform: translateX(-50%);
  border-radius: 24px;
  color: #ffffff;
  background: var(--alt-color);
  font-size: var(--font-small);
  font-weight: 600;
  line-height: 1.25;
  text-transform: uppercase;
}

.capacity-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  margin-bottom: 22px;
  border-radius: 15px;
  background: #ffffff;
}

.capacity-card__icon > .asset-icon {
  width: 28px;
  height: 28px;
}

.capacity-card--featured .capacity-card__icon {
  background: #fff1f2;
}

.capacity-card h3 {
  margin: 0 0 8px;
  font-size: var(--font-small);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.capacity-card__people {
  margin: 0 0 14px;
  font-size: var(--font-body);
  font-weight: 600;
  line-height: 1.4;
}

.capacity-card__litres {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  margin: 0 0 24px;
  padding: 8px 14px;
  border-radius: 12px;
  color: var(--alt-color);
  background: #ffffff;
  font-size: var(--font-body);
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}

.capacity-card--featured .capacity-card__litres {
  color: #ffffff;
  background: var(--alt-color);
}

.capacity-card__description {
  max-width: 200px;
  margin: 0;
  font-size: var(--font-small);
  line-height: 1.7;
}
/* FOOTER */

.campaign-footer {
  padding: 48px 0 70px;
}

.campaign-footer__brand {
  display: flex;
  justify-content: center;
  padding-bottom: 24px;
}

.campaign-footer__brand img {
  display: block;
  width: 145px;
  height: 90px;
  object-fit: contain;
}

.campaign-footer__contact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 24px;
  padding: 18px 4px;
  border-top: 1px solid #c9c9c9;
  border-bottom: 1px solid #c9c9c9;
}

.campaign-footer__email,
.campaign-footer__phone {
  display: inline-flex;
  align-items: center;
  gap: 26px;
  width: fit-content;
  color: var(--primary-color);
  font-size: var(--font-body);
  text-decoration: none;
}

.campaign-footer__email {
  justify-self: start;
}

.campaign-footer__phone {
  justify-self: end;
}

.campaign-footer__email:hover,
.campaign-footer__phone:hover {
  color: var(--alt-color);
}

.campaign-footer__contact .asset-icon {
  width: 28px;
  height: 28px;
}

.campaign-footer__socials {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.campaign-footer__socials .campaign-footer__social-link {
  display: inline-flex;
  flex: 0 0 25px;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 25px;
  height: 25px;
  line-height: 1;
  text-decoration: none;
}

.campaign-footer__social-link img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .campaign-footer__contact {
    gap: 18px;
  }

  .campaign-footer__email,
  .campaign-footer__phone {
    gap: 12px;
    font-size: 14px;
  }

  .campaign-footer__socials {
    gap: 8px;
  }
}

/* DESKTOP: 1200pxâ€“1399px */

@media (min-width: 1200px) and (max-width: 1399.98px) {
  .campaign-hero__form {
    width: 350px;
  }

  .enquiry-form {
    padding-right: 28px;
    padding-left: 28px;
  }

  .product-card {
    padding-right: 26px;
    padding-left: 26px;
  }

  .product-card__body {
    grid-template-columns: minmax(0, 1fr) 175px;
    gap: 12px;
  }

  .benefits-list {
    gap: 18px;
  }

  .benefit {
    gap: 12px;
  }

  .capacity-panel {
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 24px;
    padding: 58px 36px;
  }

  .capacity-options {
    gap: 16px;
  }

  .capacity-card {
    padding-right: 10px;
    padding-left: 10px;
  }

  .capacity-card__litres {
    padding-right: 10px;
    padding-left: 10px;
    white-space: normal;
  }
}

/* DESKTOP / LANDSCAPE TABLET: 992pxâ€“1199px Font sizes remain fixed. */

@media (min-width: 992px) and (max-width: 1199.98px) {
  .campaign-container {
    width: 92%;
  }

  .campaign-hero__logos {
    top: 10%;
    left: 4%;
    gap: 18px;
  }

  .campaign-hero__content {
    top: 29%;
    left: 4%;
    width: 405px;
  }

  .campaign-hero__description {
    max-width: 300px;
  }

  .campaign-hero__form {
    right: 4%;
    width: 310px;
  }

  .enquiry-form {
    padding: 18px 24px;
  }

  .enquiry-form__field {
    margin-bottom: 12px;
  }

  .products-grid { gap: 24px; }
  .product-card { padding: 25px 22px 22px; }
  .product-card__header { gap: 10px; margin-bottom: 22px; }
  .product-card__badge { flex-basis: 52px; width: 52px; height: 52px; }
  .product-card__badge > .asset-icon { width: 30px; height: 30px; }
  .product-card__body { grid-template-columns: minmax(0, 1fr) 145px; gap: 10px; }
  .product-card__features li { gap: 10px; }
  .product-card__image img { height: 245px; }
  .benefits-list { gap: 16px; padding: 30px 0; }
  .benefit { align-items: flex-start; gap: 10px; }
  .benefit .round-icon { flex-basis: 48px; width: 48px; height: 48px; }
  .benefit .round-icon > .asset-icon { width: 27px; height: 27px; }
  .capacity-panel { grid-template-columns: 275px minmax(0, 1fr); gap: 22px; padding: 50px 26px; }
  .capacity-panel__intro .sintex-button { width: 100%; min-width: 0; }
  .capacity-options { gap: 12px; }
  .capacity-card { padding: 30px 8px 24px; }
  .capacity-card__litres { padding-right: 8px; padding-left: 8px; white-space: normal; }
  .campaign-footer__contact a { gap: 18px; }
}

/* ACCESSIBILITY */

@media (prefers-reduced-motion: reduce) {
  .sintex-button {
    transition: none;
  }
}

/* Inline errors are reserved in the HTML and populated on submission. */
.enquiry-form__error:empty { display: none; }
.enquiry-form__field input { transition: border-color 150ms ease, box-shadow 150ms ease; }

.sintex-button { text-decoration: none; }
.sintex-button:disabled { cursor: wait; }
