
/* ==========================================
   CZUN CREATIVES — TESTIMONIALS
   Uses the site's existing design variables
   ========================================== */

.cz-t-page {
  background: var(--color-main);
  color: var(--color-text);
  font-family: var(--font-body);
  overflow: hidden;
}

.cz-t-wrap {
  width: min(1180px, calc(100% - 64px));
  margin-inline: auto;
}

/* ==========================================
   HERO
   ========================================== */

.cz-t-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 430px;
  height: min(56vw, 620px);
  isolation: isolate;
  overflow: hidden;
  background-color: var(--color-contrast);
  background-image: url('/img/testimonials/hero-wedding.png');
  background-size: cover;
  background-position: center 44%;
  background-repeat: no-repeat;
}

/* Background video */
.cz-t-hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 44%;
  z-index: 0;
  pointer-events: none;
}

/* Preserve the original dark cinematic gradient over the footage. */
.cz-t-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-image:
    linear-gradient(
      90deg,
      rgba(var(--color-main-rgb), .94) 0%,
      rgba(var(--color-main-rgb), .76) 32%,
      rgba(var(--color-main-rgb), .24) 74%,
      rgba(var(--color-main-rgb), .10) 100%
    ),
    linear-gradient(
      0deg,
      rgba(var(--color-main-rgb), .42),
      transparent 45%
    );
}

.cz-t-hero-content {
  position: relative;
  z-index: 2;
  padding-block: 60px 72px;
}

/* Small numbered heading */

.cz-t-page .cz-t-eyebrow {
  margin: 0 0 20px;
  color: var(--color-warm);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .20em;
  line-height: 1.5;
  text-transform: uppercase;
}

/* Large cinematic headline */

.cz-t-page .cz-t-title {
  max-width: 820px;
  margin: 0 0 20px;
  color: var(--color-text);
  font-family: 'Anton', Impact, sans-serif;
  font-size: clamp(52px, 7vw, 100px);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.015em;
  text-transform: uppercase;
}

/* Introductory paragraph */

.cz-t-page .cz-t-intro {
  max-width: 470px;
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: .17em;
  text-transform: uppercase;
}

/* ==========================================
   TESTIMONIAL LAYOUT
   ========================================== */

.cz-t-stories {
  padding: 18px 0 24px;
  background: var(--color-main);
}

.cz-t-story {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 18px;
  align-items: stretch;
}

.cz-t-story:last-child {
  margin-bottom: 0;
}

/* Reverse alternating rows */

.cz-t-story--reversed .cz-t-image {
  order: -1;
}

/* ==========================================
   TESTIMONIAL CARDS
   ========================================== */

.cz-t-quote {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  min-height: 280px;
  margin: 0;
  padding: clamp(26px, 3.5vw, 46px);

  border: 1px solid var(--color-border);
  border-radius: 0;

  background: linear-gradient(
    135deg,
    var(--color-contrast) 0%,
    color-mix(
      in srgb,
      var(--color-contrast) 86%,
      var(--color-text)
    ) 100%
  );
}

/* Blue quotation symbol */

.cz-t-quote-mark {
  display: block;
  height: 48px;
  color: var(--color-accent);
  font-family: Georgia, serif;
  font-size: 76px;
  font-weight: 700;
  line-height: 1;
}

/* Review body */

.cz-t-page .cz-t-quote-text {
  max-width: 510px;
  margin: 0;
  color: var(--color-text-muted);
  font-family: var(--font-body);
  font-size: clamp(14px, 1.4vw, 17px);
  font-weight: 400;
  line-height: 1.57;
  letter-spacing: .005em;
}

/* Review attribution */

.cz-t-credit {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-top: 20px;
}

.cz-t-credit-line {
  display: block;
  width: 42px;
  height: 1px;
  margin-bottom: 14px;
  background: var(--color-border);
}

.cz-t-person {
  display: block;
  margin-bottom: 4px;
  color: var(--color-warm);
  font-family: var(--font-body);
  font-size: 13px;
  font-style: normal;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.cz-t-category {
  display: block;
  color: var(--color-text-muted);
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .25em;
  text-transform: uppercase;
}

/* ==========================================
   PHOTOGRAPH PANELS
   ========================================== */

.cz-t-image {
  position: relative;
  min-width: 0;
  min-height: 280px;
  margin: 0;
  overflow: hidden;
  background: var(--color-contrast);
}

.cz-t-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  object-position: center;
  filter: saturate(.9) contrast(1.06);
  transition:
    transform .65s ease,
    filter .65s ease;
}

.cz-t-image::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    0deg,
    rgba(var(--color-main-rgb), .18),
    transparent 65%
  );
}

/* Subtle cinematic interaction */

.cz-t-image:hover img {
  transform: scale(1.035);
  filter: saturate(1) contrast(1.04);
}

/* ==========================================
   TABLET
   ========================================== */

@media (max-width: 900px) {
  .cz-t-page .cz-t-title {
    font-size: clamp(54px, 8vw, 78px);
  }

  .cz-t-quote {
    padding: 28px;
  }

  .cz-t-page .cz-t-quote-text {
    font-size: 14px;
  }

  .cz-t-quote-mark {
    font-size: 64px;
    height: 42px;
  }
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 700px) {
  .cz-t-wrap {
    width: calc(100% - 36px);
  }

  .cz-t-hero {
    min-height: 430px;
    height: 68vh;
    max-height: 620px;
    background-position: 61% center;
  }

  .cz-t-hero-video {
    object-position: 61% center;
  }

  .cz-t-hero-content {
    padding-block: 60px;
  }

  .cz-t-page .cz-t-eyebrow {
    font-size: 11px;
    margin-bottom: 18px;
  }

  .cz-t-page .cz-t-title {
    max-width: 100%;
    font-size: clamp(43px, 10vw, 66px);
    letter-spacing: -.05em;
    line-height: 1.02;
  }

  .cz-t-page .cz-t-intro {
    max-width: 330px;
    font-size: 11px;
    line-height: 1.7;
    letter-spacing: .12em;
  }

  .cz-t-stories {
    padding: 12px 0 20px;
  }

  .cz-t-story {
    grid-template-columns: 1fr;
    gap: 0;
    margin-bottom: 18px;
  }

  /* Always present quote before photo on mobile */

  .cz-t-story--reversed .cz-t-image {
    order: 0;
  }

  .cz-t-quote {
    min-height: 0;
    padding: 30px 26px;
  }

  .cz-t-page .cz-t-quote-text {
    font-size: 15px;
    line-height: 1.6;
  }

  .cz-t-quote-mark {
    font-size: 65px;
    height: 44px;
  }

  .cz-t-credit {
    margin-top: 22px;
  }

  .cz-t-image {
    min-height: 0;
    aspect-ratio: 16 / 10;
  }

  .cz-t-image img {
    min-height: 0;
    height: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cz-t-image img {
    transition: none;
  }

  .cz-t-image:hover img {
    transform: none;
  }
}

/* ==========================================
   TESTIMONIALS — 7:5 BOX RATIO
   ========================================== */

@media (min-width: 701px) {

  /* Both the text and image boxes */
  .cz-t-quote,
  .cz-t-image {
    aspect-ratio: 7 / 5;
    min-height: 0;
  }

  /* Make the photo fill its rectangular box */
  .cz-t-image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
  }

}

/* MOBILE */

@media (max-width: 700px) {

  .cz-t-image {
    aspect-ratio: 7 / 5;
  }

  /* Let longer testimonials use the height they need */
  .cz-t-quote {
    aspect-ratio: auto;
  }

}

/* ==========================================
   TESTIMONIALS — HERO TYPOGRAPHY
   ========================================== */

/* Orange chapter label */

.cz-t-page .cz-t-eyebrow {
  font-family: var(--font-signature);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.18em;
}

/* Description beneath Anton headline */

.cz-t-page .cz-t-intro {
  max-width: 470px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 20px;
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-transform: none;
  color: rgba(255, 255, 255, 0.9);
}

/* Mobile */

@media (max-width: 700px) {
  .cz-t-page .cz-t-eyebrow {
    font-size: 12px;
  }

  .cz-t-page .cz-t-intro {
    font-size: 18px;
    line-height: 1.5;
  }
}
