/*
 * CQIP Static Framework — Block Styles
 * thecontentframework.com · hdfraser.com
 *
 * TCF design system applied to all seven CQIP block types.
 * Fonts loaded from Google Fonts in the <head> of each template.
 * Override any rule in your site stylesheet — these are defaults.
 */

/* ── Custom properties ──────────────────────────────────────── */
:root {
  --cqip-paper:   #f8f5f0;
  --cqip-cream:   #f0ebe3;
  --cqip-rule:    #ddd8d0;
  --cqip-ink:     #0f0e0c;
  --cqip-ink2:    #2d2b27;
  --cqip-ink3:    #6b6760;
  --cqip-brand:   #3d517b;
  --cqip-brandL:  #4d6494;
  --cqip-brandLL: #e8edf5;
  --cqip-ok:      #1a6b31;
  --cqip-okL:     #e6f4ea;
  --cqip-warn:    #b83d20;
  --cqip-warnL:   #fde8e6;
  --cqip-gold:    #b8960c;
  --cqip-star:    #b8960c;

  --cqip-serif: 'Playfair Display', Georgia, serif;
  --cqip-body:  'Source Serif 4', Georgia, serif;
  --cqip-mono:  'JetBrains Mono', monospace;

  --cqip-r4:  4px;
  --cqip-r6:  6px;
  --cqip-r8:  8px;

  --cqip-max-w: 780px;
  --cqip-pad:   32px;
}

/* ── Reset ──────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

body {
  background:        var(--cqip-paper);
  color:             var(--cqip-ink);
  font-family:       var(--cqip-body);
  font-size:         17px;
  line-height:       1.75;
  font-weight:       300;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a {
  color:            var(--cqip-brand);
  text-decoration:  underline;
  text-underline-offset: 3px;
}
a:hover { color: var(--cqip-brandL); }

/* ── Layout ─────────────────────────────────────────────────── */
.cqip-container {
  max-width: var(--cqip-max-w);
  margin:    0 auto;
  padding:   0 var(--cqip-pad);
}

.cqip-main { padding: 0; }

.cqip-block {
  padding:       48px 0;
  border-bottom: 1px solid var(--cqip-rule);
}
.cqip-block:last-child { border-bottom: none; }

/* ── Site header ────────────────────────────────────────────── */
.cqip-site-header {
  border-bottom: 1px solid var(--cqip-rule);
  background:    var(--cqip-paper);
  padding:       20px 0;
}
.cqip-site-header .cqip-container {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  flex-wrap:       wrap;
  gap:             12px;
}
.cqip-site-brand {
  font-family:   var(--cqip-serif);
  font-size:     16px;
  font-weight:   700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color:         var(--cqip-brand);
  text-decoration: none;
}
.cqip-site-logo { height: 40px; width: auto; }

.cqip-site-nav__list {
  display: flex;
  gap:     24px;
  list-style: none;
  margin:  0;
  padding: 0;
}
.cqip-site-nav__link {
  font-family:   var(--cqip-mono);
  font-size:     11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:         var(--cqip-ink3);
  text-decoration: none;
  transition:    color 0.15s;
}
.cqip-site-nav__link:hover { color: var(--cqip-brand); }

/* ── Breadcrumb ─────────────────────────────────────────────── */
.cqip-breadcrumb {
  padding:       12px 0;
  border-bottom: 1px solid var(--cqip-rule);
}
.cqip-breadcrumb__list {
  display:     flex;
  align-items: center;
  gap:         8px;
  list-style:  none;
  margin:      0;
  padding:     0;
  flex-wrap:   wrap;
  font-family: var(--cqip-mono);
  font-size:   11px;
  color:       var(--cqip-ink3);
  letter-spacing: 0.06em;
}
.cqip-breadcrumb__link {
  color:           var(--cqip-ink3);
  text-decoration: none;
  transition:      color 0.15s;
}
.cqip-breadcrumb__link:hover { color: var(--cqip-brand); }
.cqip-breadcrumb__item--current { color: var(--cqip-ink2); }

/* ── Site footer ────────────────────────────────────────────── */
.cqip-site-footer {
  border-top: 1px solid var(--cqip-rule);
  padding:    32px 0;
  margin-top: 0;
}
.cqip-site-footer .cqip-container {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  flex-wrap:       wrap;
  gap:             12px;
}
.cqip-site-footer__brand {
  font-family: var(--cqip-serif);
  font-size:   14px;
  color:       var(--cqip-ink3);
}
.cqip-site-footer__contact {
  display:     flex;
  gap:         20px;
  font-family: var(--cqip-mono);
  font-size:   12px;
}
.cqip-site-footer__contact a { color: var(--cqip-ink3); }
.cqip-powered {
  font-family: var(--cqip-mono);
  font-size:   11px;
  color:       var(--cqip-ink3);
  letter-spacing: 0.06em;
}
.cqip-powered a { color: var(--cqip-ink3); }

/* ── BLOCK: Answer First ────────────────────────────────────── */
.cqip-answer-first {
  padding-top:    64px;
  padding-bottom: 52px;
}
.cqip-answer-first__kicker {
  font-family:    var(--cqip-mono);
  font-size:      11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--cqip-brand);
  margin-bottom:  16px;
  display:        flex;
  align-items:    center;
  gap:            10px;
}
.cqip-answer-first__kicker::before {
  content:    '';
  display:    block;
  width:      28px;
  height:     1px;
  background: var(--cqip-brand);
  flex-shrink: 0;
}
.cqip-answer-first__heading {
  font-family:   var(--cqip-serif);
  font-size:     clamp(28px, 4.5vw, 46px);
  font-weight:   700;
  line-height:   1.12;
  letter-spacing: -0.015em;
  color:         var(--cqip-ink);
  margin-bottom: 22px;
  margin-top:    0;
}
.cqip-answer-first__answer {
  font-size:    19px;
  line-height:  1.7;
  color:        var(--cqip-ink2);
  font-weight:  300;
  max-width:    680px;
  margin-bottom: 16px;
}
.cqip-answer-first__answer p { margin: 0 0 12px; }
.cqip-answer-first__answer p:last-child { margin-bottom: 0; }
.cqip-answer-first__context {
  font-size:    15px;
  color:        var(--cqip-ink3);
  font-style:   italic;
  max-width:    620px;
  padding-top:  14px;
  border-top:   1px solid var(--cqip-rule);
  margin:       0;
}

/* ── BLOCK: Capabilities ────────────────────────────────────── */
.cqip-capabilities__heading {
  font-family:   var(--cqip-serif);
  font-size:     clamp(22px, 3vw, 30px);
  font-weight:   700;
  line-height:   1.2;
  color:         var(--cqip-ink);
  margin-bottom: 8px;
  margin-top:    0;
  letter-spacing: -0.01em;
}
.cqip-capabilities__intro {
  color:         var(--cqip-ink3);
  font-style:    italic;
  font-size:     15px;
  margin-bottom: 24px;
}
/* Grid layout */
.cqip-capabilities__grid {
  display: grid;
  gap:     1px;
  background: var(--cqip-rule);
  border:  1px solid var(--cqip-rule);
  border-radius: var(--cqip-r4);
  overflow: hidden;
}
.cqip-capabilities__grid--cols-1 { grid-template-columns: 1fr; }
.cqip-capabilities__grid--cols-2 { grid-template-columns: 1fr 1fr; }
.cqip-capabilities__grid--cols-3 { grid-template-columns: 1fr 1fr 1fr; }
.cqip-capabilities__grid--cols-4 { grid-template-columns: 1fr 1fr 1fr 1fr; }

.cqip-capability--grid-item,
.cqip-capability--cards-item {
  background: var(--cqip-cream);
  padding:    22px;
}
.cqip-capability__title {
  font-family:   var(--cqip-serif);
  font-size:     16px;
  font-weight:   700;
  color:         var(--cqip-ink);
  margin-bottom: 8px;
  margin-top:    0;
  line-height:   1.3;
}
.cqip-capability__description {
  font-size:  14px;
  color:      var(--cqip-ink2);
  line-height: 1.6;
  font-weight: 300;
  margin:     0;
}
/* List layout */
.cqip-capabilities__list {
  list-style:   none;
  padding:      0;
  margin:       0;
}
.cqip-capability--list-item {
  display:       flex;
  gap:           16px;
  align-items:   flex-start;
  padding:       16px 0;
  border-bottom: 1px solid var(--cqip-rule);
}
.cqip-capability--list-item:last-child { border-bottom: none; }
.cqip-capability__icon-img { border-radius: 50%; object-fit: cover; }

/* ── BLOCK: Solutions ───────────────────────────────────────── */
.cqip-solutions__heading {
  font-family:   var(--cqip-serif);
  font-size:     clamp(22px, 3vw, 30px);
  font-weight:   700;
  color:         var(--cqip-ink);
  margin-bottom: 24px;
  margin-top:    0;
  letter-spacing: -0.01em;
}
.cqip-solution {
  border-bottom: 1px solid var(--cqip-rule);
}
.cqip-solution:last-child { border-bottom: none; }

/* Accordion trigger */
.cqip-solution__problem {
  padding:   18px 0;
  cursor:    pointer;
  position:  relative;
}
.cqip-solution__problem.js-cqip-accordion-trigger {
  display:         flex;
  align-items:     flex-start;
  justify-content: space-between;
  gap:             16px;
  user-select:     none;
}
.cqip-solution__problem-label {
  font-family:    var(--cqip-mono);
  font-size:      10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          var(--cqip-warn);
  display:        block;
  margin-bottom:  4px;
}
.cqip-solution__problem-heading {
  font-family:   var(--cqip-serif);
  font-size:     17px;
  font-weight:   700;
  color:         var(--cqip-ink);
  line-height:   1.3;
  margin:        0;
  flex:          1;
}
.cqip-accordion__icon {
  font-family:  var(--cqip-mono);
  font-size:    18px;
  color:        var(--cqip-brand);
  font-weight:  300;
  transition:   transform 0.2s;
  flex-shrink:  0;
  line-height:  1.4;
}
.cqip-solution.is-open .cqip-accordion__icon { transform: rotate(45deg); }

/* Accordion panel */
.cqip-solution__panel { overflow: hidden; }
.js-cqip-accordion-panel { display: none; }
.cqip-solution.is-open .js-cqip-accordion-panel { display: block; }

.cqip-solution__cols {
  display:     grid;
  gap:         16px;
  padding:     0 0 20px;
}
.cqip-solutions--benefit .cqip-solution__cols { grid-template-columns: 1fr 1fr; }

/* List/cards layout — always open */
.cqip-solutions--list .cqip-solution__cols,
.cqip-solutions--cards .cqip-solution__cols {
  grid-template-columns: 1fr 1fr;
  padding: 20px 0;
}
.cqip-solutions--benefit .cqip-solution__cols { grid-template-columns: 1fr 1fr 1fr; }

.cqip-solution__col-label {
  font-family:    var(--cqip-mono);
  font-size:      10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  display:        block;
  margin-bottom:  6px;
}
.cqip-solution__solution .cqip-solution__col-label { color: var(--cqip-ok); }
.cqip-solution__benefit  .cqip-solution__col-label { color: var(--cqip-brand); }
.cqip-solution__solution p,
.cqip-solution__benefit  p {
  font-size:  15px;
  color:      var(--cqip-ink2);
  line-height: 1.65;
  font-weight: 300;
  margin:     0;
}

/* ── BLOCK: Technical ───────────────────────────────────────── */
.cqip-technical__heading {
  font-family:   var(--cqip-serif);
  font-size:     clamp(22px, 3vw, 30px);
  font-weight:   700;
  color:         var(--cqip-ink);
  margin-bottom: 22px;
  margin-top:    0;
  letter-spacing: -0.01em;
}
/* Table layout */
.cqip-technical__table-wrap { overflow-x: auto; }
.cqip-technical__table {
  width:           100%;
  border-collapse: collapse;
  font-size:       15px;
}
.cqip-technical__table th {
  font-family:    var(--cqip-mono);
  font-size:      10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--cqip-ink3);
  text-align:     left;
  padding:        10px 14px;
  border-bottom:  2px solid var(--cqip-rule);
  background:     var(--cqip-cream);
  font-weight:    400;
}
.cqip-technical__table td {
  padding:       11px 14px;
  border-bottom: 1px solid var(--cqip-rule);
  color:         var(--cqip-ink2);
  font-weight:   300;
  vertical-align: top;
}
.cqip-technical__table tr:last-child td { border-bottom: none; }
.cqip-spec-name     { font-weight: 600 !important; color: var(--cqip-ink) !important; }
.cqip-spec-unit,
.cqip-spec-standard { font-family: var(--cqip-mono); font-size: 12px; color: var(--cqip-ink3) !important; }

/* Grid layout */
.cqip-technical__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap:     1px;
  background: var(--cqip-rule);
  border:  1px solid var(--cqip-rule);
  border-radius: var(--cqip-r4);
  overflow: hidden;
}
.cqip-spec-cell {
  background: var(--cqip-cream);
  padding:    16px;
}
.cqip-spec-cell__name {
  font-family:   var(--cqip-mono);
  font-size:     10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:         var(--cqip-ink3);
  display:       block;
  margin-bottom: 6px;
}
.cqip-spec-cell__value {
  font-family:   var(--cqip-serif);
  font-size:     18px;
  font-weight:   700;
  color:         var(--cqip-ink);
  display:       block;
}
.cqip-spec-cell__unit {
  font-family: var(--cqip-mono);
  font-size:   11px;
  color:       var(--cqip-ink3);
  margin-left: 4px;
}
.cqip-spec-cell__standard {
  font-family: var(--cqip-mono);
  font-size:   11px;
  color:       var(--cqip-ink3);
  margin-top:  4px;
  display:     block;
}

/* Standards sub-section */
.cqip-technical__standards { margin-top: 28px; }
.cqip-technical__standards-heading {
  font-family:    var(--cqip-mono);
  font-size:      10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          var(--cqip-ink3);
  margin-bottom:  12px;
}
.cqip-standard-row {
  padding:       10px 0;
  border-bottom: 1px solid var(--cqip-rule);
  font-size:     14px;
}
.cqip-standard-row:last-child { border-bottom: none; }
.cqip-standard-row__name {
  font-family: var(--cqip-mono);
  font-weight: 500;
  color:       var(--cqip-ink);
}
.cqip-standard-row__desc { color: var(--cqip-ink3); margin-left: 8px; }

/* ── BLOCK: Compliance ──────────────────────────────────────── */
.cqip-compliance__heading {
  font-family:   var(--cqip-serif);
  font-size:     clamp(22px, 3vw, 30px);
  font-weight:   700;
  color:         var(--cqip-ink);
  margin-bottom: 8px;
  margin-top:    0;
  letter-spacing: -0.01em;
}
.cqip-compliance__intro {
  color:         var(--cqip-ink3);
  font-style:    italic;
  font-size:     15px;
  margin-bottom: 24px;
}
/* Grid layout */
.cqip-compliance--grid .cqip-compliance__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap:     16px;
}
/* Credential card */
.cqip-credential {
  background:    var(--cqip-cream);
  border:        1px solid var(--cqip-rule);
  border-radius: var(--cqip-r6);
  padding:       20px;
}
.cqip-credential--active  { border-color: #86efac; border-width: 2px; }
.cqip-credential--expired { border-color: var(--cqip-warnL); border-width: 2px; }

.cqip-credential__header {
  display:     flex;
  align-items: flex-start;
  gap:         12px;
  margin-bottom: 10px;
}
.cqip-credential__logo-wrap { flex-shrink: 0; }
.cqip-credential__logo      { height: 40px; width: auto; }
.cqip-credential__meta      { flex: 1; }
.cqip-credential__name {
  font-family:   var(--cqip-serif);
  font-size:     16px;
  font-weight:   700;
  color:         var(--cqip-ink);
  margin:        0 0 4px;
  line-height:   1.3;
}
.cqip-credential__issuer {
  font-size:  13px;
  color:      var(--cqip-ink3);
  font-weight: 300;
}
.cqip-credential__cert-no {
  font-family: var(--cqip-mono);
  font-size:   11px;
  color:       var(--cqip-ink3);
  margin-bottom: 6px;
  letter-spacing: 0.06em;
}
.cqip-credential__validity {
  font-size:   13px;
  color:       var(--cqip-ink3);
  margin-bottom: 8px;
}
.cqip-credential__expired-note {
  color:       var(--cqip-warn);
  font-weight: 600;
}
.cqip-credential__scope {
  font-size:   13px;
  color:       var(--cqip-ink2);
  line-height: 1.55;
  font-weight: 300;
  margin:      0 0 10px;
}
/* Status badges */
.cqip-status-badge {
  font-family:    var(--cqip-mono);
  font-size:      9px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding:        2px 8px;
  border-radius:  10px;
  white-space:    nowrap;
  display:        inline-block;
}
.cqip-status-badge--active  { background: #dcfce7; color: #166534; border: 1px solid #86efac; }
.cqip-status-badge--expired { background: var(--cqip-warnL); color: var(--cqip-warn); border: 1px solid #e8a09a; }
/* Verify link */
.cqip-verify-link {
  font-family:    var(--cqip-mono);
  font-size:      11px;
  color:          var(--cqip-brand);
  letter-spacing: 0.06em;
  text-decoration: none;
  background:     var(--cqip-brandLL);
  padding:        4px 10px;
  border-radius:  var(--cqip-r4);
  border:         1px solid var(--cqip-brandL);
  display:        inline-block;
  transition:     opacity 0.15s;
}
.cqip-verify-link:hover { opacity: 0.8; color: var(--cqip-brand); }
.cqip-ext-icon { margin-left: 2px; }
/* Badges layout */
.cqip-compliance--badges .cqip-compliance__list {
  display:   flex;
  flex-wrap: wrap;
  gap:       10px;
}
.cqip-credential--badge {
  display:     flex;
  align-items: center;
  gap:         8px;
  background:  var(--cqip-cream);
  border:      1px solid var(--cqip-rule);
  border-radius: 20px;
  padding:     6px 14px;
  font-size:   13px;
  font-weight: 600;
  color:       var(--cqip-ink);
}
/* List layout */
.cqip-compliance--list .cqip-credential { border-radius: 0; border-bottom: 1px solid var(--cqip-rule); }

/* ── BLOCK: FAQ ─────────────────────────────────────────────── */
.cqip-faq__heading {
  font-family:   var(--cqip-serif);
  font-size:     clamp(22px, 3vw, 30px);
  font-weight:   700;
  color:         var(--cqip-ink);
  margin-bottom: 24px;
  margin-top:    0;
  letter-spacing: -0.01em;
}
.cqip-faq-item { border-bottom: 1px solid var(--cqip-rule); }
.cqip-faq-item:last-child { border-bottom: none; }

.cqip-faq-item__question {
  font-family:   var(--cqip-serif);
  font-size:     18px;
  font-weight:   600;
  color:         var(--cqip-ink);
  margin:        0;
  line-height:   1.4;
}
/* Accordion question */
.cqip-faq-item__question.js-cqip-faq-trigger {
  padding:         18px 0;
  cursor:          pointer;
  display:         flex;
  align-items:     flex-start;
  justify-content: space-between;
  gap:             16px;
  user-select:     none;
  list-style:      none;
}
.cqip-faq-item__icon {
  font-family:  var(--cqip-mono);
  font-size:    18px;
  color:        var(--cqip-brand);
  font-weight:  300;
  flex-shrink:  0;
  transition:   transform 0.2s;
  line-height:  1.4;
}
.cqip-faq-item.is-open .cqip-faq-item__icon { transform: rotate(45deg); }

.cqip-faq-item__answer { padding: 0 0 20px; }
.js-cqip-faq-panel { display: none; }
.cqip-faq-item.is-open .js-cqip-faq-panel { display: block; }

/* List layout — always open */
.cqip-faq--list .cqip-faq-item__question { padding: 18px 0 8px; cursor: default; }
.cqip-faq--list .cqip-faq-item__icon { display: none; }
.cqip-faq--list .cqip-faq-item__answer { display: block; }

.cqip-faq-item__answer p {
  font-size:  16px;
  color:      var(--cqip-ink2);
  line-height: 1.7;
  font-weight: 300;
  margin:     0 0 12px;
}
.cqip-faq-item__answer p:last-child { margin-bottom: 0; }

/* Compact layout */
.cqip-faq--compact .cqip-faq-item__question { font-size: 15px; }
.cqip-faq--compact .cqip-faq-item__answer p { font-size: 14px; }

/* ── BLOCK: Entity Review ────────────────────────────────────── */
.cqip-entity-review__heading {
  font-family:   var(--cqip-serif);
  font-size:     clamp(22px, 3vw, 30px);
  font-weight:   700;
  color:         var(--cqip-ink);
  margin-bottom: 8px;
  margin-top:    0;
  letter-spacing: -0.01em;
}
/* Aggregate bar */
.cqip-entity-review__aggregate {
  display:       flex;
  align-items:   center;
  gap:           14px;
  padding:       14px 18px;
  background:    var(--cqip-cream);
  border:        1px solid var(--cqip-rule);
  border-radius: var(--cqip-r4);
  margin-bottom: 24px;
  flex-wrap:     wrap;
}
.cqip-aggregate__score {
  font-family:  var(--cqip-serif);
  font-size:    24px;
  font-weight:  700;
  color:        var(--cqip-ink);
  line-height:  1;
}
.cqip-aggregate__detail {
  font-family:    var(--cqip-mono);
  font-size:      12px;
  color:          var(--cqip-ink3);
  letter-spacing: 0.06em;
}
/* Review items grid */
.cqip-entity-review--cards .cqip-entity-review__items {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap:     16px;
}
.cqip-review-item {
  background:    var(--cqip-cream);
  border:        1px solid var(--cqip-rule);
  border-radius: var(--cqip-r6);
  padding:       20px;
  position:      relative;
}
.cqip-review-item--verified { border-color: #86efac; border-width: 2px; }
/* Review header */
.cqip-review-item__header {
  display:       flex;
  align-items:   flex-start;
  gap:           12px;
  margin-bottom: 12px;
}
.cqip-review-item__photo,
.cqip-review-avatar {
  width:         44px;
  height:        44px;
  border-radius: 50%;
  flex-shrink:   0;
  overflow:      hidden;
}
.cqip-review-item__photo-img {
  width:       100%;
  height:      100%;
  object-fit:  cover;
  border-radius: 50%;
}
.cqip-review-avatar {
  background:   var(--cqip-brandLL);
  color:        var(--cqip-brand);
  font-family:  var(--cqip-serif);
  font-size:    16px;
  font-weight:  700;
  display:      flex;
  align-items:  center;
  justify-content: center;
}
.cqip-review-item__author { flex: 1; }
.cqip-review-item__name {
  font-family:   var(--cqip-serif);
  font-size:     15px;
  font-weight:   700;
  color:         var(--cqip-ink);
  line-height:   1.2;
  margin-bottom: 2px;
}
.cqip-review-item__title { font-size: 12px; color: var(--cqip-ink3); font-weight: 300; }
.cqip-review-item__org   { font-size: 12px; color: var(--cqip-brand); font-weight: 400; margin-top: 2px; }
/* Verified badge */
.cqip-review-item__verified {
  position: absolute;
  top: 14px;
  right: 14px;
}
.cqip-verified-badge {
  background:     #dcfce7;
  color:          #166534;
  font-family:    var(--cqip-mono);
  font-size:      9px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding:        2px 8px;
  border-radius:  10px;
  border:         1px solid #86efac;
  white-space:    nowrap;
}
/* Stars */
.cqip-review-item__rating { margin-bottom: 10px; }
.cqip-stars {
  display:      inline-flex;
  gap:          3px;
  font-size:    16px;
  line-height:  1;
}
.cqip-star--filled { color: var(--cqip-star); }
.cqip-star--empty  { color: var(--cqip-rule); }
/* Review text */
.cqip-review-item__text p {
  font-size:   14px;
  color:       var(--cqip-ink2);
  line-height: 1.65;
  font-weight: 300;
  margin:      0 0 10px;
}
.cqip-review-item__text p:last-child { margin-bottom: 0; }
/* Review date */
.cqip-review-item__date {
  font-family:    var(--cqip-mono);
  font-size:      11px;
  color:          var(--cqip-ink3);
  letter-spacing: 0.06em;
  margin-top:     8px;
}
/* List layout */
.cqip-entity-review--list .cqip-entity-review__items {
  display:        flex;
  flex-direction: column;
  gap:            0;
}
.cqip-entity-review--list .cqip-review-item {
  border-radius: 0;
  border-bottom: 1px solid var(--cqip-rule);
  background:    transparent;
  padding:       20px 0;
}
.cqip-entity-review--list .cqip-review-item:last-child { border-bottom: none; }
/* Testimonial layout — large centred */
.cqip-entity-review--testimonial .cqip-review-item {
  text-align:    center;
  padding:       36px;
  max-width:     640px;
  margin:        0 auto;
}
.cqip-entity-review--testimonial .cqip-review-item__header {
  flex-direction: column;
  align-items:    center;
  gap:            12px;
}
.cqip-entity-review--testimonial .cqip-review-item__text p { font-size: 18px; font-style: italic; }
/* Compact layout */
.cqip-entity-review--compact .cqip-review-item { padding: 14px; }
.cqip-entity-review--compact .cqip-review-item__text p { font-size: 13px; }

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 700px) {
  :root { --cqip-pad: 20px; }

  .cqip-capabilities__grid--cols-3,
  .cqip-capabilities__grid--cols-4 { grid-template-columns: 1fr 1fr; }

  .cqip-solutions--list .cqip-solution__cols,
  .cqip-solutions--cards .cqip-solution__cols,
  .cqip-solutions--benefit .cqip-solution__cols { grid-template-columns: 1fr; }

  .cqip-compliance--grid .cqip-compliance__list { grid-template-columns: 1fr; }

  .cqip-entity-review--cards .cqip-entity-review__items { grid-template-columns: 1fr; }

  .cqip-site-nav { display: none; }
  .cqip-site-nav.is-open {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--cqip-paper);
    border-top: 1px solid var(--cqip-rule);
    border-bottom: 1px solid var(--cqip-rule);
    z-index: 200;
    padding: 12px 0;
  }
  .cqip-site-nav.is-open .cqip-site-nav__list {
    flex-direction: column;
    gap: 0;
    padding: 0 var(--cqip-pad);
  }
  .cqip-site-nav.is-open .cqip-site-nav__link {
    display: block;
    padding: 12px 0;
    font-size: 12px;
    border-bottom: 1px solid var(--cqip-rule);
  }
  .cqip-site-nav.is-open .cqip-site-nav__item:last-child .cqip-site-nav__link {
    border-bottom: none;
  }
  .cqip-site-header { position: relative; }
  .cqip-site-header .cqip-container { flex-wrap: nowrap; }
  .cqip-menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 1px solid var(--cqip-rule);
    border-radius: 4px;
    cursor: pointer;
    padding: 7px 9px;
    color: var(--cqip-ink3);
    font-size: 18px;
    line-height: 1;
    margin-left: auto;
    flex-shrink: 0;
  }
  .cqip-menu-toggle:hover { color: var(--cqip-brand); border-color: var(--cqip-brand); }
  .cqip-menu-toggle[aria-expanded="true"] { color: var(--cqip-brand); }
}

@media (min-width: 701px) { .cqip-menu-toggle { display: none; } }

@media (max-width: 480px) {
  .cqip-capabilities__grid--cols-2,
  .cqip-capabilities__grid--cols-3,
  .cqip-capabilities__grid--cols-4 { grid-template-columns: 1fr; }

  .cqip-answer-first__heading { font-size: 26px; }
}

/* ── Footer licence ─────────────────────────────────────────── */
.cqip-site-footer__licence {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--cqip-rule);
  font-size: 12px;
  color: var(--cqip-ink3);
  line-height: 1.5;
}
.cqip-site-footer__licence a {
  color: var(--cqip-ink3);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.cqip-site-footer__licence a:hover { color: var(--cqip-brand); }

/* ── Contact block ──────────────────────────────────────────── */
.cqip-contact__heading {
  font-family: var(--cqip-serif);
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 24px;
  color: var(--cqip-ink);
}
.cqip-contact__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 0;
  padding: 0;
}
.cqip-contact__item {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 12px;
  padding: 16px 0;
  border-bottom: 1px solid var(--cqip-rule);
  align-items: baseline;
}
.cqip-contact__item:last-child { border-bottom: none; }
.cqip-contact__label {
  font-family: var(--cqip-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cqip-ink3);
  padding-top: 2px;
}
.cqip-contact__value {
  font-size: 17px;
  color: var(--cqip-ink);
  line-height: 1.6;
  margin: 0;
}
.cqip-contact__value a {
  color: var(--cqip-brand);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.cqip-contact__value a:hover { color: var(--cqip-brandL); }
@media (max-width: 480px) {
  .cqip-contact__item { grid-template-columns: 1fr; gap: 4px; }
}
