/**
 * Landing Page Builder Styles
 *
 * Modular CSS for the Landing Page Builder components.
 * Based on Figma design specifications.
 *
 * @package a2n-base
 */

/* ==========================================================================
   CSS Custom Properties
   ========================================================================== */

.landing-builder {
  --lpb-primary: #0f6f5c;
  --lpb-secondary: #f3d2ce;
  --lpb-surface: #f8f5ed;
  --lpb-text: #3d3c41;
  --lpb-text-dark: #000000;
  --lpb-tagline-bg: #edfdf9;
  --lpb-tagline-text: #0c5a4a;
  --lpb-white: #ffffff;

  --lpb-container-max: 1112px;
  --lpb-container-padding: 164px;
  --lpb-container-padding-mobile: 16px;
}

/* ==========================================================================
   Base Container
   ========================================================================== */

.landing-builder {
  width: 100%;
}

.lpb-container {
  max-width: var(--lpb-container-max);
  margin-inline: auto;
  padding-inline: var(--lpb-container-padding-mobile);
}

@media screen and (min-width: 992px) {
  .lpb-container {
    padding-inline: 0;
  }
}

/* ==========================================================================
   Typography
   ========================================================================== */

.lpb-title-xl {
  font-family: 'Gilroy', sans-serif;
  font-weight: 600;
  font-size: 44px;
  line-height: 52px;
  color: var(--lpb-text);
  margin: 0;
}

.lpb-title-lg {
  font-family: 'Gilroy', sans-serif;
  font-weight: 600;
  font-size: 28px;
  line-height: 36px;
  color: var(--lpb-text);
  margin: 0;
}

.lpb-body-lg {
  font-family: 'Gilroy', sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 26px;
  color: var(--lpb-text);
  margin: 0;
}

.lpb-body {
  font-family: 'Gilroy', sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 26px;
  color: var(--lpb-text-dark);
  margin: 0;
}

.lpb-body-sm {
  font-family: 'Gilroy', sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 20px;
  color: var(--lpb-text-dark);
  margin: 0;
}

@media screen and (min-width: 992px) {
  .lpb-title-xl {
    font-size: 72px;
    line-height: 80px;
  }

  .lpb-title-lg {
    font-size: 56px;
    line-height: 64px;
  }

  .lpb-body-lg {
    font-size: 24px;
    line-height: 32px;
  }

  .lpb-body {
    font-size: 20px;
    line-height: 32px;
  }

  .lpb-body-sm {
    font-size: 16px;
    line-height: 24px;
  }
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.lpb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  padding: 20px 32px;
  border-radius: 9999px;
  font-family: 'Gilroy', sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 16px;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
  cursor: pointer;
  border: none;
}

.lpb-btn--primary {
  background-color: var(--lpb-primary);
  color: var(--lpb-white);
}

.landing-builder .lpb-btn--primary:visited {
  color: var(--lpb-white);
}

.lpb-btn--primary:hover,
.lpb-btn--primary:focus-visible {
  background-color: #0a5647;
  color: var(--lpb-text-dark);
}

.lpb-btn--secondary {
  background-color: var(--lpb-secondary);
  color: var(--lpb-text-dark);
  height: 56px;
  padding: 14px 24px;
}

.lpb-btn--secondary:hover {
  background-color: #e8bfba;
  color: var(--lpb-text-dark);
}

/* ==========================================================================
   Tagline Pill
   ========================================================================== */

.lpb-tagline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  background-color: var(--lpb-tagline-bg);
  border-radius: 9999px;
  font-family: 'Gilroy', sans-serif;
  font-weight: 600;
  font-size: 14px;
  line-height: 16px;
  color: var(--lpb-tagline-text);
  width: fit-content;
}

/* ==========================================================================
   Hero Section
   ========================================================================== */

.lpb-hero {
  padding-block: 24px;
}

.lpb-hero__inner {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.lpb-hero__image-wrapper {
  order: -1;
  padding-bottom: 16px;
}

.lpb-hero__image {
  width: 100%;
  height: 240px;
  object-fit: cover;
  border-radius: 16px;
}

.lpb-hero__content {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.lpb-hero__text {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

@media screen and (min-width: 992px) {
  .lpb-hero {
    padding-top: 56px;
    padding-bottom: 88px;
  }

  .lpb-hero__inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 64px;
    max-width: var(--lpb-container-max);
    margin-inline: auto;
  }

  .lpb-hero__image-wrapper {
    order: 0;
    flex: 1;
    padding-bottom: 0;
  }

  .lpb-hero__image {
    width: 100%;
    height: 488px;
    object-fit: cover;
  }

  .lpb-hero__content {
    width: 536px;
    flex-shrink: 0;
    gap: 16px;
  }

  .lpb-hero__text {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
}

/* ==========================================================================
   Callout CTA Section
   ========================================================================== */

.lpb-callout {
  padding-block: 32px;
}

.lpb-callout--cream {
  background-color: var(--lpb-surface);
}

.lpb-callout__inner {
  display: flex;
  flex-direction: column;
  gap: 36px;
  align-items: flex-start;
  text-align: left;
}

.lpb-callout--cream .lpb-callout__inner {
  padding: 32px 16px;
}

.lpb-callout__content {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

/* Callout description uses 20px/32px on both mobile and desktop per Figma */
.lpb-callout__description {
  font-family: 'Gilroy', sans-serif;
  font-weight: 400;
  font-size: 20px;
  line-height: 32px;
  color: var(--lpb-text-dark);
  margin: 0;
}

@media screen and (min-width: 992px) {
  .lpb-callout {
    padding-block: 0;
  }

  .lpb-callout--cream {
    background-color: transparent;
  }

  .lpb-callout__inner {
    max-width: var(--lpb-container-max);
    margin-inline: auto;
    gap: 36px;
    align-items: center;
    text-align: center;
  }

  .lpb-callout--cream .lpb-callout__inner {
    background-color: var(--lpb-surface);
    padding: 64px 124px;
    border-radius: 16px;
  }

  .lpb-callout__content {
    max-width: 728px;
    gap: 32px;
  }
}

/* ==========================================================================
   Text + Image Row Section
   ========================================================================== */

.lpb-tir {
  padding-block: 24px;
}

.lpb-tir__inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.lpb-tir__image-wrapper {
  width: 100%;
}

.lpb-tir__image {
  width: 100%;
  height: 240px;
  object-fit: cover;
  border-radius: 16px;
}

.lpb-tir__content {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

@media screen and (min-width: 992px) {
  .lpb-tir {
    padding-block: 40px;
  }

  .lpb-tir__inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 56px;
    max-width: var(--lpb-container-max);
    margin-inline: auto;
  }

  .lpb-tir--image-right .lpb-tir__inner {
    flex-direction: row-reverse;
  }

  .lpb-tir__image-wrapper {
    width: 488px;
    height: 488px;
    flex-shrink: 0;
  }

  .lpb-tir__image {
    width: 100%;
    height: 100%;
  }

  .lpb-tir__content {
    flex: 1;
    gap: 32px;
  }
}

/* ==========================================================================
   Feature Grid Section
   ========================================================================== */

.lpb-grid {
  padding-block: 24px;
}

.lpb-grid__inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.lpb-grid__items {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.lpb-grid__item {
  width: calc(50% - 4px);
  background-color: var(--lpb-surface);
  border-radius: 16px;
  padding: 8px 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.lpb-grid__number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background-color: var(--lpb-tagline-bg);
  border-radius: 9999px;
  font-family: 'Gilroy', sans-serif;
  font-weight: 600;
  font-size: 14px;
  line-height: 20.8px;
  color: var(--lpb-tagline-text);
}

@media screen and (min-width: 992px) {
  .lpb-grid {
    padding-block: 60px;
  }

  .lpb-grid__inner {
    max-width: var(--lpb-container-max);
    margin-inline: auto;
    gap: 48px;
  }

  .lpb-grid__items {
    gap: 32px;
  }

  .lpb-grid__item {
    width: calc(33.333% - 21.333px);
    padding: 16px 24px 24px;
  }

  .lpb-grid__number {
    width: 40px;
    height: 40px;
    font-size: 18px;
    line-height: 26px;
  }
}

/* ==========================================================================
   Trustpilot Widget Section
   ========================================================================== */

.lpb-trustpilot {
  padding-block: 32px;
}

.lpb-trustpilot__inner {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.lpb-trustpilot__widget {
  width: 100%;
}

.lpb-trustpilot__widget iframe {
  display: block;
  border: 0;
}

/* Alignment modifiers */
.lpb-trustpilot--center .lpb-trustpilot__widget {
  margin-inline: auto;
}

.lpb-trustpilot--left .lpb-trustpilot__widget {
  margin-inline-end: auto;
}

.lpb-trustpilot--right .lpb-trustpilot__widget {
  margin-inline-start: auto;
}

@media screen and (min-width: 992px) {
  .lpb-trustpilot__inner {
    max-width: var(--lpb-container-max);
    margin-inline: auto;
  }
}

/* ==========================================================================
   Utility: No Content Message
   ========================================================================== */

.lpb-no-content {
  padding: 80px 16px;
  text-align: center;
}

.lpb-no-content p {
  font-family: 'Gilroy', sans-serif;
  font-size: 18px;
  line-height: 26px;
  color: var(--lpb-text);
  max-width: 600px;
  margin-inline: auto;
}

/* ==========================================================================
   Section Spacing
   ========================================================================== */

.landing-builder > section + section {
  margin-top: 40px;
}

@media screen and (min-width: 992px) {
  .landing-builder > section + section {
    margin-top: 80px;
  }

  .landing-builder > .lpb-hero + section {
    margin-top: 48px;
  }
}
