@charset "UTF-8";
/*!
 * Case-study carousel — the rules Swiper and Bootstrap do not supply.
 *
 * template-parts/case-study-carousel.php is shared markup (About, the homepage,
 * and the quiz thank-you page all render it), so its CSS lives here instead of
 * being copy-pasted per consumer — same pattern as logo-marquee.scss and
 * cta-two-path.scss. Enqueued by rs_enqueue_case_study_carousel() in
 * functions.php, which every consuming template calls.
 *
 * Unscoped on purpose: `.caseStudySwiper` only ever appears inside this one
 * partial, so there is no other page content for a page-level id/class to
 * protect against.
 *
 * What deliberately stays OUT of this file: arrow/pagination-bullet colour.
 * Both default to white — main.scss's own unscoped `.caseStudySwiper` rule sets
 * the bullet fill, and the partial's inline SVGs hardcode `fill="#FFFFFE"` — which
 * reads fine on About's dark/yellow band. Home repaints both to charcoal in its
 * own page.scss because its band is light. That is a real per-page difference
 * driven by each page's surrounding background, not duplication, so it is not
 * pulled in here.
 */
.caseStudySwiper {
  /* Pins the card's own type scale to the root rem, independent of whatever
     ambient body font-size the host page happens to set. About and Home's
     body is already 16px (root rem) so this is a no-op there. It matters on
     the quiz thank-you page: that page's IDs are not in
     rs_new_design_page_ids() (see template-quiz-thank-you.php's own "CSS
     REALITY" note), so Elementor's global Kit typography — 20px on <body> —
     is still live there. Without this, the same 5-line clamp on
     .case-excerpt renders 1.25x taller purely from inherited font-size, which
     is exactly the height mismatch this file exists to prevent. `rem`, not a
     literal `16px`: the root <html> element is 16px on every page that has
     been checked (including quiz-thank-you), so it is the stable anchor —
     `body`'s own font-size is what drifts.

     line-height needs the same treatment and for the same reason: Elementor's
     Kit CSS sets it in a unit anchored to root rem rather than as a plain
     unitless factor, so it does not shrink back down just because font-size
     above was pinned. 1.5 is Bootstrap's own unmodified $line-height-base —
     what About/Home's line-height already resolves to at their 16px body
     font, so this is a no-op for them too. */
  font-size: 1rem;
  line-height: 1.5;
  /* Cards are all the same height, as in production (uniformly 725px at 1440).
     Swiper sets an explicit height per slide only when told to; with
     `height:auto` the slides shrink to their own content and the row goes
     ragged, because one excerpt is much longer than the others.
     `align-items:stretch` on the wrapper makes every slide take the tallest
     card's height, and the card then fills its slide so the "Read the Case
     Study" button stays pinned to the bottom. */
  /* The nav arrows are <button>s here (they were <div>s in the mockup) so that
     they are focusable and announced. Strip the UA button chrome Swiper does
     not expect. */
  /* These are bare <button>s, and the parent theme (hello-elementor's
     reset.css) styles every bare button: a magenta #c36 border and text, plus
     a solid #c36 fill on :hover and :focus. That is Hello Elementor's
     placeholder, not a brand colour. Neutralise all of it here — including
     `color`, which is otherwise inherited and would surface the moment any
     child glyph used currentColor. */
  /* Swiper's own vendor CSS stretches the arrow: it declares
     `.swiper-button-next svg { width: 100%; height: 100% }` against a button
     sized from --swiper-navigation-size (44px). Our arrow is a 61x15 line glyph,
     so it came out 179x44 — roughly 3x its intrinsic size, and the "why are they
     so huge?" in Raman's 2026-08-12 review. Figma draws it at 60px wide
     (34905:31504), i.e. the SVG's own dimensions.

     Both the custom property and the explicit width are needed: the property is
     what Swiper's own `margin-top: calc(0px - var(--swiper-navigation-size)/2)`
     uses to centre the button on top:50%, so setting it keeps the arrow on the
     same centre line it sits on today, while the width overrides the too-narrow
     9px that the same property would otherwise compute.

     The button is 31px tall, not 15: the glyph is a 15px line, and a 15px-tall
     control is under the 24px minimum target size (WCAG 2.2 2.5.8). 8px of
     padding above and below buys a 61x31 hit area without moving the glyph —
     box-sizing is border-box, so the content box stays exactly 15px, and the
     navigation-size above is the padded height so Swiper's own centring maths
     still lands the visible arrow on the same line. */
  --swiper-navigation-size: 31px;
  /* Card text is clamped, exactly as production does it (-webkit-line-clamp 5 on
     the excerpt, 4 on the testimonial). Without this one long excerpt sets the
     height of every card in the row — the cards stay equal, but all six get
     taller than the design allows. Elementor applied this per-widget, so it
     leaves with the plugin. */
}
.caseStudySwiper .swiper-wrapper {
  align-items: stretch;
}
.caseStudySwiper .swiper-slide {
  height: auto;
  display: flex;
}
.caseStudySwiper .swiper-slide > .bg-white {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.caseStudySwiper .swiper-slide > .bg-white > div:last-child {
  margin-top: auto;
}
.caseStudySwiper .case-logo {
  max-height: 50px;
  width: auto;
}
.caseStudySwiper .swiper-button-next,
.caseStudySwiper .swiper-button-prev {
  width: 61px;
  height: 31px;
  /* This replaces the `padding: 0` that used to strip the UA button chrome —
     it still states the padding explicitly, it just states a hit area. */
  padding: 8px 0;
  background: none;
  border: 0;
  appearance: none;
  color: inherit;
}
.caseStudySwiper .swiper-button-next svg,
.caseStudySwiper .swiper-button-prev svg {
  width: 61px;
  height: 15px;
}
.caseStudySwiper .swiper-button-next:hover, .caseStudySwiper .swiper-button-next:focus,
.caseStudySwiper .swiper-button-prev:hover,
.caseStudySwiper .swiper-button-prev:focus {
  background: none;
  color: inherit;
}
.caseStudySwiper .swiper-button-next::after,
.caseStudySwiper .swiper-button-prev::after {
  content: none;
}
.caseStudySwiper .case-excerpt,
.caseStudySwiper .case-quote {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.caseStudySwiper .case-excerpt {
  -webkit-line-clamp: 5;
}
.caseStudySwiper .case-quote {
  -webkit-line-clamp: 4;
}