/**handles:s3m-testimonials**/
/* =========================================================================
   S3M Security — Testimonials SINGLE template  (v2 — DOM-matched)
   Scoped to body.single-testimonials (stable WP body class).
   This Elementor build (4.x, e_optimized_markup ON) strips:
     - custom CSS classes from sections/columns  -> we target inner sections
       by the widget they contain, via :has()
     - the .elementor-widget-container wrapper    -> we style widget classes
       directly and their surviving inner elements (.elementor-heading-title)
   Handle: s3m-testimonials  (keep in Hummingbird Combine Exclusions)
   ========================================================================= */

body.single-testimonials {
  --s3mt-navy:     #0F1B2D;
  --s3mt-orange:   #FF6B1F;
  --s3mt-orange-d: #E55A14;
  --s3mt-mute:     #5B6675;
  --s3mt-line:     #E6E9EF;
  --s3mt-tint:     #F4F6FA;
  --s3mt-page:     #EAEDF3;
  --s3mt-font:     'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background: #EAEDF3;
}

/* ---------- Page canvas ---------- */
body.single-testimonials .elementor-location-single {
  background: var(--s3mt-page);
  padding: clamp(24px, 5vw, 64px) 0;
  font-family: var(--s3mt-font);
  -webkit-font-smoothing: antialiased;
}

/* ---------- Card shell : outer top section + card column ---------- */
body.single-testimonials .elementor-top-section:has(.s3mt-brand) > .elementor-container {
  max-width: 860px;
  padding: 0;
}
body.single-testimonials .elementor-top-column:has(.s3mt-brand) > .elementor-widget-wrap {
  background: #fff;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 40px 100px -24px rgba(9,15,26,0.30);
  padding: 0;
}

/* Flush inner sections, kill default inner padding/margins/gaps */
body.single-testimonials .elementor-inner-section { margin: 0 !important; }
body.single-testimonials .elementor-inner-section > .elementor-container { max-width: 100%; padding: 0; }
body.single-testimonials .elementor-inner-section .elementor-widget-wrap.elementor-element-populated { padding: 0; }
body.single-testimonials .elementor-inner-section .elementor-widget { margin: 0; }

/* =========================================================================
   HEADER (navy) — two inner sections, one continuous navy band
   ========================================================================= */
body.single-testimonials .elementor-inner-section:has(.s3mt-brand) {
  background: var(--s3mt-navy);
  padding: 26px clamp(24px,4vw,40px) 0;
}
body.single-testimonials .elementor-inner-section:has(.s3mt-co-name) {
  position: relative;
  background: var(--s3mt-navy);
  padding: 6px clamp(24px,4vw,40px) 24px;
}
body.single-testimonials .elementor-inner-section:has(.s3mt-co-name)::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
  background: linear-gradient(90deg, var(--s3mt-orange), var(--s3mt-orange-d));
}

/* brand block (HTML widget — spans are direct children) */
body.single-testimonials .s3mt-brand { display: flex; flex-direction: column; gap: 2px; }
body.single-testimonials .s3mt-wordmark { display: block; font-size: 19px; font-weight: 900; letter-spacing: -0.01em; line-height: 1.05; color: #fff; }
body.single-testimonials .s3mt-wordmark em { font-style: normal; color: var(--s3mt-orange); }
body.single-testimonials .s3mt-brand-sub { display: block; margin-top: 4px; line-height: 1.3; font-size: 11px; font-weight: 500; letter-spacing: 0.05em; color: rgba(255,255,255,0.55); }

/* label column (kicker + sector), right aligned */
body.single-testimonials .s3mt-kicker-w, body.single-testimonials .s3mt-sector-w { text-align: right; }
body.single-testimonials .s3mt-kicker { display: block; line-height: 1.3; font-size: 12px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: #fff; }
body.single-testimonials .s3mt-sector { display: block; margin-top: 6px; line-height: 1.3; font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--s3mt-orange); }

/* company row */
body.single-testimonials .s3mt-co-name .elementor-heading-title {
  margin: 22px 0 0; color: #fff;
  font-size: clamp(1.5rem, 3.2vw, 2.05rem); font-weight: 900; letter-spacing: -0.02em; line-height: 1.1;
}
body.single-testimonials .s3mt-meta-w { margin-top: 6px; }
body.single-testimonials .s3mt-meta { display: block; line-height: 1.4; font-size: 13px; font-weight: 500; color: rgba(255,255,255,0.62); }

/* =========================================================================
   BODY (white)
   ========================================================================= */
body.single-testimonials .elementor-inner-section:has(.s3mt-quote) {
  background: #fff;
  padding: clamp(26px,4vw,40px);
}

/* pull quote (text-editor → raw text, no inner wrappers) */
body.single-testimonials .s3mt-quote {
  position: relative; display: block; padding-left: clamp(36px, 5vw, 52px);
  font-size: clamp(1.2rem, 2.5vw, 1.6rem); font-weight: 700; font-style: italic;
  line-height: 1.32; letter-spacing: -0.015em; color: var(--s3mt-navy);
}
body.single-testimonials .s3mt-quote::before {
  content: "\201C"; position: absolute; left: 0; top: -0.22em;
  font-size: clamp(3rem, 7vw, 4.4rem); line-height: 1; font-style: normal;
  font-weight: 900; color: var(--s3mt-orange);
}

/* prose (text-editor → raw text with newlines; pre-line keeps paragraph breaks) */
body.single-testimonials .s3mt-prose {
  display: block; margin-top: 26px;
  white-space: pre-line;
  font-size: 15.5px; line-height: 1.7; color: #3A4452;
}

/* attribution (shortcode) */
body.single-testimonials .s3mt-attr-w { margin-top: 26px; }
body.single-testimonials .s3mt-attr { padding: 4px 0 4px 16px; border-left: 3px solid var(--s3mt-orange); }
body.single-testimonials .s3mt-attr .s3mt-role { line-height: 1.3; font-size: 15px; font-weight: 800; color: var(--s3mt-navy); }
body.single-testimonials .s3mt-attr .s3mt-org { line-height: 1.3; font-size: 13.5px; color: var(--s3mt-mute); margin-top: 3px; }

/* section labels (heading) */
body.single-testimonials .s3mt-sectionlabel .elementor-heading-title {
  position: relative; display: inline-block; padding-bottom: 8px; margin: 34px 0 16px;
  line-height: 1.2; font-size: 12px; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; color: var(--s3mt-navy);
}
body.single-testimonials .s3mt-sectionlabel .elementor-heading-title::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 3px; border-radius: 2px; background: var(--s3mt-orange);
}

/* products grid (shortcode) */
body.single-testimonials .s3mt-products { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
body.single-testimonials .s3mt-products.s3mt-one { grid-template-columns: 1fr; }
/* product card link (whole card clickable) */
body.single-testimonials a.s3mt-prod { text-decoration: none; color: inherit; display: block; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
body.single-testimonials a.s3mt-prod:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -16px rgba(9,15,26,0.55); }
body.single-testimonials a.s3mt-prod:focus-visible { outline: 3px solid rgba(255,107,31,0.6); outline-offset: 2px; }

body.single-testimonials .s3mt-prod {
  position: relative; background: var(--s3mt-navy); color: #fff; border-radius: 14px;
  padding: 20px 20px 22px; overflow: hidden;
}
body.single-testimonials .s3mt-prod::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: linear-gradient(90deg, var(--s3mt-orange), transparent 80%); }
body.single-testimonials .s3mt-prod h4 { margin: 0; line-height: 1.2; font-size: 17px; font-weight: 900; letter-spacing: -0.01em; color: #fff; }
body.single-testimonials .s3mt-prod .s3mt-prod-tag { display: block; margin-top: 5px; line-height: 1.3; font-size: 10.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--s3mt-orange); }
body.single-testimonials .s3mt-prod p { margin: 12px 0 0; font-size: 13px; line-height: 1.55; color: rgba(255,255,255,0.74); }

/* practice grid (shortcode) */
body.single-testimonials .s3mt-practice { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
body.single-testimonials .s3mt-pract {
  background: var(--s3mt-tint); border: 1px solid var(--s3mt-line); border-radius: 14px;
  padding: 16px 18px; font-size: 13.5px; line-height: 1.5; color: #34404F; font-weight: 500;
  display: flex; gap: 11px;
}
body.single-testimonials .s3mt-pract::before { content: ""; flex: 0 0 auto; margin-top: 6px; width: 7px; height: 7px; border-radius: 2px; background: var(--s3mt-orange); transform: rotate(45deg); }

/* =========================================================================
   FOOTER
   ========================================================================= */
body.single-testimonials .elementor-inner-section:has(.s3mt-mfoot-inner) { background: #fff; padding: 0; }
body.single-testimonials .s3mt-mfoot-inner {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px;
  padding: 18px clamp(26px,4vw,40px); border-top: 1px solid var(--s3mt-line);
  font-size: 12.5px; color: var(--s3mt-mute);
}
body.single-testimonials .s3mt-mfoot-inner b { color: var(--s3mt-navy); font-weight: 800; }

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 560px) {
  body.single-testimonials .s3mt-kicker-w,
  body.single-testimonials .s3mt-sector-w { text-align: left; }
  body.single-testimonials .elementor-inner-section:has(.s3mt-brand) { padding-top: 22px; }
}

/* =========================================================================
   Sector label -> link to its industry
   ========================================================================= */
body.single-testimonials .s3mt-sector a { color: inherit; text-decoration: none; transition: opacity .2s ease; }
body.single-testimonials .s3mt-sector a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* =========================================================================
   Related block ([s3m_testimonial_related]) — sits BELOW the card, on the
   grey page canvas, centred to the 860px card width.
   ========================================================================= */
body.single-testimonials .s3mt-rel {
  max-width: 860px;
  margin: clamp(20px, 3vw, 36px) auto 0;
  padding: 0 clamp(16px, 5vw, 24px) clamp(30px, 5vw, 56px);
  line-height: 1.5;            /* base — kills inherited line-height:0 */
  font-family: var(--s3mt-font);
  color: var(--s3mt-navy);
}
body.single-testimonials .s3mt-rel * { box-sizing: border-box; }

body.single-testimonials .s3mt-rel-head {
  position: relative; display: flex; align-items: baseline; justify-content: space-between;
  gap: 16px; padding-bottom: 12px; margin-bottom: 18px; border-bottom: 1px solid var(--s3mt-line);
}
body.single-testimonials .s3mt-rel-head::after {
  content: ""; position: absolute; left: 0; bottom: -1px; width: 44px; height: 3px; border-radius: 2px;
  background: linear-gradient(90deg, var(--s3mt-orange), var(--s3mt-orange-d));
}
body.single-testimonials .s3mt-rel-title {
  margin: 0; line-height: 1.2;
  font-size: clamp(1.05rem, 1.8vw, 1.3rem); font-weight: 800; letter-spacing: -0.015em; color: var(--s3mt-navy);
}
body.single-testimonials .s3mt-rel-all {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; line-height: 1;
  font-size: 11.5px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--s3mt-orange-d); text-decoration: none; white-space: nowrap;
}
body.single-testimonials .s3mt-rel-all em { font-style: normal; transition: transform .2s ease; }
body.single-testimonials .s3mt-rel-all:hover em { transform: translateX(4px); }

body.single-testimonials .s3mt-rel-grid {
  display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
body.single-testimonials .s3mt-rel-card {
  position: relative; display: flex; flex-direction: column; overflow: hidden;
  padding: 20px 20px 18px; border-radius: 14px;
  background: #fff; border: 1px solid var(--s3mt-line); color: var(--s3mt-navy); text-decoration: none;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
body.single-testimonials .s3mt-rel-card::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; transform: scaleY(0); transform-origin: top;
  background: linear-gradient(180deg, var(--s3mt-orange), var(--s3mt-orange-d)); transition: transform .22s ease;
}
body.single-testimonials .s3mt-rel-card:hover,
body.single-testimonials .s3mt-rel-card:focus-visible {
  transform: translateY(-3px); border-color: rgba(255,107,31,0.55);
  box-shadow: 0 18px 36px -20px rgba(9,15,26,0.45); outline: none;
}
body.single-testimonials .s3mt-rel-card:hover::before,
body.single-testimonials .s3mt-rel-card:focus-visible::before { transform: scaleY(1); }

body.single-testimonials .s3mt-rel-co { margin: 0; line-height: 1.2; font-size: 1.02rem; font-weight: 900; letter-spacing: -0.01em; color: var(--s3mt-navy); }
body.single-testimonials .s3mt-rel-meta { margin-top: 3px; line-height: 1.35; font-size: 12px; font-weight: 500; color: var(--s3mt-mute); }
body.single-testimonials .s3mt-rel-quote { margin: 12px 0 0; line-height: 1.5; font-size: 13px; font-style: italic; color: #3A4452; flex: 1; }
body.single-testimonials .s3mt-rel-more {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 16px; line-height: 1;
  font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--s3mt-orange-d);
}
body.single-testimonials .s3mt-rel-more em { font-style: normal; transition: transform .2s ease; }
body.single-testimonials .s3mt-rel-card:hover .s3mt-rel-more em { transform: translateX(4px); }

/* no siblings: solo CTA row */
body.single-testimonials .s3mt-rel-head--solo { border-bottom: 1px solid var(--s3mt-line); }

@media (max-width: 600px) {
  body.single-testimonials .s3mt-rel-grid { grid-template-columns: 1fr; }
  body.single-testimonials .s3mt-rel-head { flex-wrap: wrap; gap: 6px 12px; }
}