/* ===========================================================================
   Section 07 (node 1:2035) — "Content and Lesson Plans, Built for You"
   Category chip carousel + two photo-thumbnail carousels.
   Design height 770.4px, 1710px full-bleed, 1056px centered content column.
   =========================================================================== */

.s07 {
  height: 770.4px;
  background: #ffffff;
  box-sizing: border-box;
  padding: 80px 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

/* --- Heading / paragraph / CTA block (node 1:2036) --- */
.s07 .container { width: 1056px; }

.s07-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  box-sizing: border-box;
  padding: 0 24px;
}

.s07-title {
  margin: 0;
  font-weight: 600;
  font-size: 38px;
  line-height: 46px;
  letter-spacing: -0.8px;
  color: #222222;
  white-space: nowrap;
  word-break: break-word;
}

.s07-sub {
  margin: 0;
  padding-top: 8px;
  font-weight: 400;
  font-size: 18px;
  line-height: 28px;
  color: #000000;
  width: 600px;
  word-break: break-word;
}

.s07-cta {
  padding-top: 40px;
}

.s07-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #000000;
  border: 1px solid #000000;
  border-radius: 12px;
  padding: 10.2px 17px;
  box-sizing: border-box;
}

.s07-btn span {
  font-weight: 500;
  font-size: 16px;
  line-height: 24px;
  color: #ffffff;
  white-space: nowrap;
}

/* --- Carousel viewport (clips overflow to the 1056px content column) --- */
.s07-viewport {
  width: 1056px;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
}
.s07-chips-viewport { height: 40px; }
.s07-photos-viewport { height: 150px; }

/* --- Wrapper margins between blocks --- */
.s07-chips-wrap      { padding-top: 40px; }
.s07-photos-wrap--r1 { padding-top: 40px; }
.s07-photos-wrap--r2 { padding-top: 12px; }

/* --- Chip carousel track (node 1:2051) --- */
.s07-chips-track {
  position: absolute;
  top: 0;
  left: -40.17px;
  height: 40px;
  display: flex;
  align-items: center;
  gap: 12px;
  width: 3895px;
}
.s07-chip {
  display: block;
  height: 40px;
  flex: 0 0 auto;
}
/* Text category pills (threat categories) — match the muted chip aesthetic */
.s07-chip-text {
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 18px;
  border-radius: 20px;
  background: #f5f5f5;
  color: #222222;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.2px;
  white-space: nowrap;
  flex: 0 0 auto;
}

/* --- Photo carousel tracks --- */
.s07-photos-track {
  position: absolute;
  top: 0;
  height: 150px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.s07-photos-track--r1 { left: -2394.37px; width: 4975px; }
.s07-photos-track--r2 { left: -2431.26px; width: 4965px; }

.s07-photo {
  height: 150px;
  border-radius: 12px;
  overflow: hidden;
  opacity: 0.75;
  flex: 0 0 auto;
}
.s07-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
  pointer-events: none;
}

/* ---------------------------------------------------------------------------
   Auto-scroll marquees. Tracks get their children duplicated by script.js,
   so translating by exactly 50% loops seamlessly. Widths become content-sized
   and the static design offsets are replaced by continuous motion.
   --------------------------------------------------------------------------- */
.s07-marquee {
  left: 0;
  width: max-content;
  will-change: transform;
}
.s07-chips-track.s07-marquee      { animation: s07-scroll-left 60s linear infinite; }
.s07-photos-track--r1.s07-marquee { animation: s07-scroll-left 80s linear infinite; }
.s07-photos-track--r2.s07-marquee { animation: s07-scroll-right 80s linear infinite; }

@keyframes s07-scroll-left {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@keyframes s07-scroll-right {
  from { transform: translateX(-50%); }
  to   { transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
  .s07-marquee { animation: none !important; }
}

/* ===========================================================================
   Responsive — fluid below the 1710px design width. Desktop rules above are
   untouched. Only the viewports/heading become fluid; the marquee tracks,
   .s07-marquee rules and @keyframes are intentionally NOT modified so the
   auto-scroll motion is preserved.
   =========================================================================== */
@media (max-width: 1024px) {
  .s07 { height: auto; padding: 64px 0; }

  .s07-head { padding-left: 0; padding-right: 0; }
  .s07-sub { width: 100%; max-width: 600px; }

  /* Carousel viewports span the fluid container; still clip overflow. */
  .s07-viewport { width: 100%; }
}

@media (max-width: 600px) {
  .s07 { height: auto; padding: 64px 0; }

  .s07-head { padding-left: 0; padding-right: 0; }
  .s07-sub { width: 100%; max-width: 600px; }

  .s07-viewport { width: 100%; }

  .s07-title {
    font-size: 26px;
    line-height: 32px;
    white-space: normal;
  }
}
