@keyframes borderPulse{
  0%  { box-shadow:0 0 0 0px  rgba(61,79,168,0.45); }
  65% { box-shadow:0 0 0 9px  rgba(61,79,168,0);    }
  100%{ box-shadow:0 0 0 0px  rgba(61,79,168,0);    }
}

/* Buttons */
.btn-primary {
  padding: 12px 26px;
  border: 1px solid color-mix(in srgb, var(--accent) 38%, white);
  border-radius: 6px;
  background: color-mix(in srgb, var(--accent) 10%, white);
  color: var(--text);
  cursor: pointer;
  font-family: var(--sans);
  font-size: 0.88rem;
  font-weight: 650;
  letter-spacing: 0.01em;
  transition: background var(--tr), transform var(--tr), border-color var(--tr), box-shadow var(--tr);
  box-shadow:
    0 10px 28px color-mix(in srgb, var(--accent) 14%, transparent),
    inset 0 1px 0 rgba(255,255,255,.85);
}
.btn-primary:hover {
  background: color-mix(in srgb, var(--accent) 14%, white);
  border-color: color-mix(in srgb, var(--accent) 55%, white);
  transform: translateY(-1px);
  box-shadow:
    0 14px 34px color-mix(in srgb, var(--accent) 18%, transparent),
    inset 0 1px 0 rgba(255,255,255,.9);
}
.btn-primary .arrow {
  display: inline-block;
  transition: transform .18s ease;
}
.btn-primary:hover .arrow {
  transform: translateX(3px);
}
.btn-primary:focus {
  outline: none;
}
.btn-primary:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 55%, white);
  outline-offset: 3px;
}
.btn-ghost{
  padding:12px 26px;
  border:1px solid rgba(255,255,255,0.82);
  border-radius:6px;
  background:rgba(255,255,255,0.40);
  color:rgba(28,30,42,0.78);
  cursor:pointer;
  font-family:var(--sans);
  font-size:0.88rem;
  font-weight:300;
  transition:color var(--tr),border-color var(--tr),background var(--tr);
}
.btn-ghost:hover{
  color:#1c1e2a;
  border-color:rgba(255,255,255,1);
  background:rgba(255,255,255,0.65);
}
.btn-primary[aria-busy="true"]{opacity:0.7;pointer-events:none}

/* CTA and form helpers */
.cta-copy{font-size:0.92rem;font-weight:300;color:var(--text2);line-height:1.75;margin-top:16px;max-width:40ch}
.breadcrumb{
  margin-bottom:24px;
  color:var(--muted);
  cursor:pointer;
  font-family:var(--mono);
  font-size:0.72rem;
  letter-spacing:0.04em;
  transition:color var(--tr);
}
.breadcrumb:hover{color:var(--text2)}
.steps{margin-top:32px;display:flex;flex-direction:column;gap:14px}
.step{display:flex;gap:14px;align-items:flex-start}
.step-index{color:var(--accent);font-family:var(--mono);font-size:0.7rem;padding-top:3px;flex-shrink:0}
.step-text{font-size:0.88rem;font-weight:300;color:var(--text2)}
.form-title{
  font-family:var(--serif);font-size:1.35rem;
  margin-bottom:6px;letter-spacing:-0.01em;font-weight:700;
}
.form-sub{font-size:0.85rem;font-weight:300;color:var(--muted);margin-bottom:24px;line-height:1.6}
.form-group{margin-bottom:14px}
.form-label{
  display:block;font-family:var(--mono);
  font-size:0.68rem;color:#5a5d72;
  margin-bottom:6px;letter-spacing:0.06em;text-transform:uppercase;
}
.form-input{
  width:100%;
  background:rgba(255,255,255,0.80);
  border:1px solid rgba(180,175,210,0.28);
  border-radius:6px;
  padding:10px 13px;font-size:0.88rem;font-weight:300;
  color:#1c1e2a;font-family:var(--sans);
  transition:border-color var(--tr), box-shadow var(--tr);outline:none;
}
.form-input:focus{
  border-color:rgba(100,90,200,0.45);
  box-shadow:0 0 0 3px rgba(100,90,200,0.08);
}
.form-input::placeholder{color:var(--muted);}
textarea.form-input{resize:vertical;min-height:80px}
.form-actions{margin-top:8px;display:flex;flex-direction:column;gap:12px}
.form-message{font-size:0.82rem;line-height:1.5;min-height:1.2em;color:var(--muted)}
.form-message.is-error{color:#e05060}
.form-message.is-success{color:var(--accent)}
.form-success{display:none;text-align:center;padding:48px 20px}
.form-success .icon{font-size:1.8rem;margin-bottom:12px;color:var(--accent)}
.form-success h3{font-family:var(--serif);font-size:1.25rem;margin-bottom:8px}
.form-success p{color:var(--muted);font-size:0.88rem;font-weight:300;line-height:1.6}

/* Tables, cards, metrics, and reusable visual helpers */
.u-table-wrap{overflow-x:auto;margin-top:20px}
.u-table{width:100%;border-collapse:collapse;font-size:0.82rem}
.u-table-head{padding:10px 12px;text-align:left;font-family:var(--mono);font-size:0.65rem;color:var(--accent);letter-spacing:0.06em;font-weight:400}
.u-table-head--right{text-align:center}
.u-table-cell{padding:12px 12px;color:var(--text2)}
.u-table-cell--right{text-align:center}
.u-border-bottom{border-bottom:1px solid var(--line)}
.u-border-bottom-strong{border-bottom:2px solid var(--line)}
.u-table thead tr{border-bottom:3px solid var(--accent)}
.u-text-strong{color:var(--text);font-weight:500}
.u-inline-flex-6{display:flex;align-items:center;gap:6px}
.u-row-10{display:flex;align-items:center;gap:10px}
.u-row-12{display:flex;align-items:center;gap:12px}
.u-actions-row{display:flex;gap:12px;margin-top:48px;flex-wrap:wrap}
.u-eyebrow{font-size:0.75rem;color:var(--muted);letter-spacing:0.08em}
.u-note{font-size:0.9rem;color:var(--muted);margin-top:12px}
.u-copy-sm-muted{font-size:0.82rem;color:var(--muted);line-height:1.5}
.u-copy-muted{font-size:0.85rem;color:var(--muted);line-height:1.6}
.u-copy-body{font-size:0.88rem;color:var(--text2);line-height:1.65;margin:0}
.u-meta-label{font-family:var(--mono);font-size:0.65rem;color:var(--muted);letter-spacing:0.08em;margin-bottom:12px}
.u-mt-8{margin-top:8px}
.u-mt-12{margin-top:12px}
.u-mt-16{margin-top:16px}
.u-mt-20{margin-top:20px}
.u-mt-40{margin-top:40px}
.u-mt-48{margin-top:48px}
.u-mb-20{margin-bottom:20px}
.u-pt-12{padding-top:12px}
.u-pt-16{padding-top:16px}
.u-border-top{border-top:1px solid var(--line)}
.u-opacity-45{opacity:0.45}
.u-opacity-40{opacity:0.4}
.u-pointer-none{cursor:default;pointer-events:none}
.u-max-w-60ch{max-width:60ch}
.u-color-muted{color:var(--muted)}
.u-font-size-09{font-size:0.9rem}
.u-font-size-088{font-size:0.88rem}
.u-fw-500{font-weight:500}
.u-mb-8{margin-bottom:8px}
.u-m-0{margin:0}
.mb-16{margin-bottom:16px}
.mb-20{margin-bottom:20px}
.mt-14{margin-top:14px}
.mt-16{margin-top:16px}
.mt-20{margin-top:20px}
.u-max-62ch{max-width:62ch}
.u-card-soft{padding:20px 22px}
.u-accent{color:var(--accent)}
.u-muted{color:var(--muted)}
.u-warm-strong{color:#e0569a;font-weight:500}

/* Route link states */
.solution-card,
.portfolio-card-home,
.solution-row,
.portfolio-card,
.piece-card{
  display:block;
  color:inherit;
  text-decoration:none;
}

.solution-card:focus-visible,
.portfolio-card-home:focus-visible,
.solution-row:focus-visible,
.portfolio-card:focus-visible,
.piece-card:focus-visible,
.u-route-link:focus-visible,
.btn-primary:focus-visible,
.btn-ghost:focus-visible,
.nav-link:focus-visible,
.nav-cta:focus-visible,
.nav-logo:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}

.solution-card--centered{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
}

.chart-frame{position:relative;width:100%;height:320px;}
.chart-frame--lg{height:340px;}
.chart-legend{display:flex;gap:20px;margin-top:14px;font-size:0.8rem;color:var(--text2);flex-wrap:wrap;}
.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0;}
.legend-dot--orange{background:#c2410c;}
.legend-dot--accent{background:#3d4fa8;}
.legend-dot--muted{background:#888fa6;}
.legend-dot--warm{background:#c2410c;}
.legend-line{width:18px;height:2px;display:inline-block;border-radius:1px;vertical-align:middle;}
.legend-line--accent{background:rgba(61,79,168,0.35);}
.u-route-link{cursor:pointer;}
.u-route-link--accent{color:var(--accent);}
.u-display-arrow{font-family:var(--mono);font-size:1.4rem;color:var(--accent);margin-bottom:10px;}
.u-card-title-muted{font-family:var(--serif);font-size:1rem;color:var(--muted);font-weight:700;}

.u-serif-section-title{font-family:var(--serif);font-size:1.3rem;letter-spacing:-0.01em;margin-top:8px}
.u-serif-subtitle{font-family:var(--serif);font-size:1.1rem;line-height:1.3;margin-bottom:10px}
.u-panel-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;background:transparent;border:none;}
.u-panel-cell{padding:28px 24px}
.u-border-left{border-left:1px solid var(--line)}

.u-mb-12{margin-bottom:12px}
.u-pt-32{padding-top:32px}
.u-text-center{text-align:center}
.u-mb-16{margin-bottom:16px}
.u-mb-56{margin-bottom:56px}
.u-stack-12{display:flex;flex-direction:column;gap:12px}
.u-grid-2-10{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kpi-row--2{grid-template-columns:repeat(2,1fr)}
.u-formula-box{padding:20px 24px;margin-top:16px;font-family:var(--mono);font-size:0.82rem;color:var(--text2);line-height:1.8}
.u-note-xs{color:var(--muted);font-size:0.72rem}
.u-zone-card{padding:20px}
.u-zone-card--accent{background:rgba(45,58,107,0.06);border-color:rgba(45,58,107,0.18)}
.u-zone-card--warm{background:rgba(224,86,154,0.06);border-color:rgba(224,86,154,0.22)}
.u-zone-card--muted{background:rgba(120,118,111,0.08);border-color:rgba(120,118,111,0.2)}
.u-zone-card--accent .u-copy-sm-muted{color:var(--text2)}
.u-zone-value{font-family:var(--serif);font-size:1.5rem;color:var(--text2);letter-spacing:-0.02em;margin-bottom:6px}
.u-warm{color:#e0569a}
.u-table-row-warm{background:rgba(224,86,154,0.06)}
.u-table-row-accent{background:rgba(45,58,107,0.04)}
.u-table-row-muted{background:rgba(120,118,111,0.08)}

/* Cookie consent */
#cookie-bar{
  position:fixed;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  z-index:500;
  width:min(calc(100% - 32px), 720px);
  background:rgba(248,249,252,0.92);
  backdrop-filter:blur(20px) saturate(130%);
  -webkit-backdrop-filter:blur(20px) saturate(130%);
  border:1px solid rgba(255,255,255,0.90);
  border-radius:14px;
  box-shadow:0 2px 8px rgba(80,70,160,0.10);
  padding:20px 24px;
  display:flex;
  align-items:center;
  gap:24px;
  animation:slideUp 0.3s ease both;
}
#cookie-bar.hidden{display:none}
@keyframes slideUp{
  from{opacity:0;transform:translateX(-50%) translateY(12px)}
  to{opacity:1;transform:translateX(-50%) translateY(0)}
}
.cookie-text{
  flex:1;
  font-size:0.8rem;
  color:var(--text2);
  line-height:1.55;
}
.cookie-text strong{
  font-weight:500;
  color:var(--text);
  font-family:var(--mono);
  font-size:0.75rem;
  letter-spacing:0.04em;
}
.cookie-actions{
  display:flex;
  gap:8px;
  flex-shrink:0;
}
.cookie-btn-accept{
  padding:8px 18px;
  border:1px solid rgba(255,255,255,0.90);
  border-radius:6px;
  background:linear-gradient(180deg,#ffffff 0%,#eaedf6 100%);
  box-shadow:0 4px 16px rgba(80,80,160,0.09),inset 0 1px 0 rgba(255,255,255,1);
  color:#1c1e2a;
  cursor:pointer;
  font-family:var(--sans);
  font-size:0.8rem;
  font-weight:500;
  white-space:nowrap;
  transition:opacity 0.15s,transform 0.15s;
}
.cookie-btn-accept:hover{opacity:0.88;transform:translateY(-1px)}
.cookie-btn-decline{
  padding:8px 14px;
  border:none;
  background:none;
  color:var(--muted);
  cursor:pointer;
  font-family:var(--sans);
  font-size:0.78rem;
  font-weight:300;
  white-space:nowrap;
  transition:color 0.15s;
}
.cookie-btn-decline:hover{color:var(--text2)}
@media(max-width:600px){
  #cookie-bar{flex-direction:column;align-items:flex-start;gap:14px;bottom:16px}
  .cookie-actions{width:100%;justify-content:flex-end}
}

/* Diagnostic modal */
#diag-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: var(--z-diag-modal);
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
}
#diag-modal.is-open {
  display: flex;
}
#diag-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 18, 40, 0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  cursor: pointer;
}
#diag-modal-panel {
  position: relative;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  overflow-y: auto;
  background: linear-gradient(160deg, #f9f8ff 0%, #fbfaff 60%, #fdfbff 100%);
  border: 1px solid rgba(255, 255, 255, 0.82);
  border-radius: 14px;
  box-shadow: 0 24px 64px rgba(60, 50, 140, 0.18), 0 2px 8px rgba(60,50,140,0.08);
  padding: 40px 36px 36px;
  animation: modal-in 0.22s ease;
}
@keyframes modal-in {
  from { opacity: 0; transform: translateY(12px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0)    scale(1);    }
}
#diag-modal-close {
  position: absolute;
  top: 16px;
  right: 18px;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1.1rem;
  color: var(--muted);
  padding: 4px 8px;
  border-radius: 4px;
  transition: color var(--tr), background var(--tr);
  line-height: 1;
}
#diag-modal-close:hover {
  color: var(--text);
  background: var(--faint);
}
#diag-modal-success {
  display: none;
}
@media (max-width: 540px) {
  #diag-modal-panel {
    padding: 36px 20px 28px;
  }
}


/* ─────────────────────────────────────────────
   Route Description Modal
   ───────────────────────────────────────────── */
#route-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: var(--z-route-modal);
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
}
#route-modal.is-open {
  display: flex;
}
#route-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 18, 40, 0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  cursor: pointer;
}
#route-modal-panel {
  position: relative;
  width: 100%;
  max-width: 460px;
  max-height: 90vh;
  overflow: hidden;
  background: linear-gradient(160deg, #f9f8ff 0%, #fbfaff 60%, #fdfbff 100%);
  border: 1px solid rgba(255, 255, 255, 0.82);
  border-radius: 14px;
  box-shadow: 0 24px 64px rgba(60, 50, 140, 0.18), 0 2px 8px rgba(60,50,140,0.08);
  padding: 0;
  animation: modal-in 0.22s ease;
  display: flex;
  flex-direction: column;
  transition: max-width 0.36s cubic-bezier(0.4, 0, 0.2, 1);
}
#route-modal-panel.has-detail {
  max-width: min(780px, calc(100vw - 32px));
}
#route-modal-close {
  position: absolute;
  top: 16px;
  right: 18px;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1.1rem;
  color: var(--muted);
  padding: 4px 8px;
  border-radius: 4px;
  transition: color var(--tr), background var(--tr);
  line-height: 1;
  z-index: 2;
}
#route-modal-close:hover {
  color: var(--text);
  background: var(--faint);
}
/* Layout: body (flex row) + footer */
#route-modal-body {
  display: flex;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
#route-modal-main {
  flex: none;
  width: 460px;
  max-width: 460px;
  padding: 40px 36px 24px;
  overflow-y: auto;
  min-height: 0;
}
/* Right panel — slides in by expanding width */
#route-modal-sol-detail {
  flex: none;
  width: 0;
  overflow: hidden;
  border-left: 1px solid transparent;
  transition:
    width 0.36s cubic-bezier(0.4, 0, 0.2, 1),
    border-color 0.24s ease;
}
#route-modal-panel.has-detail #route-modal-sol-detail {
  width: 320px;
  border-left-color: var(--line2, rgba(80,70,160,0.09));
}
#route-modal-sol-detail-inner {
  width: 320px;
  height: 100%;
  padding: 44px 26px 24px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
/* Footer — CTA always visible */
#route-modal-footer {
  flex-shrink: 0;
  padding: 14px 36px 32px;
  border-top: 1px solid var(--line, rgba(80,70,160,0.05));
  background: inherit;
}
/* Modal typography */
.route-modal-eyebrow {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
}
.route-modal-problem {
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--text);
  line-height: 1.3;
  margin-bottom: 12px;
}
.route-modal-desc {
  font-size: 0.88rem;
  font-weight: 300;
  color: var(--text2);
  line-height: 1.65;
  margin-bottom: 20px;
}
.route-modal-solutions {
  background: var(--faint);
  border: 1px solid var(--line3);
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 0;
}
.route-modal-solutions-label {
  display: block;
  font-size: 0.70rem;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
}
.route-modal-cta { width: 100%; }
.diag-success-back { margin-top: 16px; width: 100%; }
/* Sol list cards */
.route-modal-solutions-list { display: flex; flex-direction: column; gap: 10px; }
.route-modal-sol {
  background: var(--faint, rgba(248,249,255,0.8));
  border: 1px solid var(--line2);
  border-radius: 8px;
  padding: 12px 14px;
  cursor: pointer;
  user-select: none;
  transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}
.route-modal-sol:hover {
  border-color: var(--line3);
  background: rgba(255,255,255,0.94);
}
.route-modal-sol.is-active {
  border-color: var(--line3);
  background: var(--wash);
  box-shadow: 0 0 0 1.5px var(--line2);
}
.route-modal-sol-header { display: flex; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.route-modal-sol-num { font-family: var(--mono); font-size: 0.70rem; color: var(--accent); font-weight: 500; flex-shrink: 0; }
.route-modal-sol-name { font-size: 0.88rem; font-weight: 500; color: var(--text); line-height: 1.3; }
.route-modal-sol-note { font-size: 0.75rem; font-weight: 400; color: var(--muted); }
.route-modal-sol-why { font-size: 0.82rem; font-weight: 300; color: var(--text2); line-height: 1.6; margin: 0; padding-left: 22px; }
/* Detail panel content */
.route-modal-detail-back {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--mono);
  font-size: 0.70rem;
  color: var(--muted);
  letter-spacing: 0.04em;
  padding: 0;
  margin-bottom: 18px;
  transition: color 0.15s;
  flex-shrink: 0;
}
.route-modal-detail-back:hover { color: var(--accent); }
.route-modal-detail-num {
  font-family: var(--mono);
  font-size: 0.68rem;
  color: var(--accent);
  font-weight: 500;
  letter-spacing: 0.08em;
}
.route-modal-detail-title {
  font-family: var(--serif);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text);
  line-height: 1.25;
  letter-spacing: -0.01em;
  margin: 4px 0 0;
}
.route-modal-detail-why {
  font-size: 0.84rem;
  font-weight: 300;
  color: var(--text2);
  line-height: 1.65;
  margin: 0;
}
.route-modal-detail-divider {
  height: 1px;
  background: var(--line2, rgba(80,70,160,0.09));
  flex-shrink: 0;
}
.route-modal-detail-microcopy {
  font-size: 0.82rem;
  font-weight: 300;
  color: var(--muted);
  line-height: 1.6;
  margin: 0;
}
.route-modal-detail-link {
  display: inline-block;
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  color: var(--accent);
  text-decoration: none;
  margin-top: 4px;
  transition: opacity 0.15s;
}
.route-modal-detail-link:hover { opacity: 0.65; }
/* Mobile — detail slides in replacing main content */
@media (max-width: 640px) {
  #route-modal-main {
    width: 100%;
    max-width: 100%;
    padding: 36px 20px 20px;
    flex: none;
    transition: opacity 0.22s ease, transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
  }
  #route-modal-body { position: relative; overflow: hidden; }
  #route-modal-sol-detail {
    position: absolute !important;
    top: 0; left: 0;
    width: 100% !important;
    height: 100%;
    border-left: none !important;
    overflow-y: auto;
    background: linear-gradient(160deg, #f9f8ff 0%, #fbfaff 60%, #fdfbff 100%);
    transform: translateX(30px);
    opacity: 0;
    transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.26s ease !important;
  }
  #route-modal-panel.has-detail #route-modal-sol-detail {
    width: 100% !important;
    transform: translateX(0);
    opacity: 1;
  }
  #route-modal-panel.has-detail #route-modal-main {
    opacity: 0;
    transform: translateX(-12px);
    pointer-events: none;
  }
  #route-modal-panel.has-detail { max-width: calc(100vw - 32px); }
  #route-modal-sol-detail-inner { width: 100%; padding: 36px 20px 20px; }
  #route-modal-footer { padding: 14px 20px 28px; }
}

/* ── Featured CTA (compartido: /soluciones/, piezas de casos) ── */
.featured-cta {
  padding: 20px 0 104px;
}
.featured-cta__card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 390px);
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
  background: #ffffff;
  border: 1px solid rgba(255,255,255,0.90);
  border-radius: calc(var(--r) * 2 + 4px);
  padding: clamp(38px, 4.6vw, 54px) clamp(30px, 6vw, 72px);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: 0 1px 4px var(--shadow-soft);
  overflow: hidden;
  position: relative;
}
.featured-cta__card::before {
  content: none;
}
.featured-cta__body {
  grid-column: 1 / -1;
  grid-row: 1;
  max-width: 80ch;
  position: relative;
  z-index: 2;
}
.featured-cta__title {
  font-family: var(--serif);
  font-size: clamp(1.35rem, 1.9vw, 1.75rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.022em;
  color: var(--text);
  margin-bottom: 16px;
  text-shadow: 0 2px 18px rgba(116,146,230,.13);
}
.featured-cta__desc {
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 300;
  color: rgba(55,59,78,.78);
  line-height: 1.65;
  margin-bottom: 30px;
  max-width: 78ch;
}
.featured-cta .btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  min-height: 58px;
  padding: 0 34px;
  font-weight: 500;
}
.featured-cta__visual {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  width: clamp(330px, 53vw, 450px);
  flex-shrink: 0;
  animation: heroFloat 9s ease-in-out infinite;
  animation-delay: 1.4s;
  opacity: .40;
  filter:
    blur(.1px)
    drop-shadow(0 24px 50px rgba(80,98,176,.16))
    drop-shadow(0 6px 18px rgba(160,180,255,.14));
  position: absolute;
  right: clamp(5px, 3vw, 70px);
  bottom: clamp(-55px, -3vw, -30px);
  z-index: 1;
  padding-top: 12px;
}
.featured-cta__visual img { width: 122%; height: auto; display: block; }

@media (max-width: 860px) {
  .featured-cta__card {
    grid-template-columns: 1fr;
    padding: 42px 28px;
  }
  .featured-cta__title { max-width: 15ch; }
  .featured-cta__visual { display: none; }
}

/* ── Table status rows ── */
.u-status-green  { background: var(--green-tablebg);  }
.u-status-yellow { background: var(--yellow-tablebg); }
.u-status-red    { background: var(--red-tablebg);    }
.u-status-purple { background: var(--purple-tablebg); }

.u-status-green  .u-meta-label { color: var(--green-tabletext);  }
.u-status-yellow .u-meta-label { color: var(--yellow-tabletext); }
.u-status-red    .u-meta-label { color: var(--red-tabletext);    }
.u-status-purple .u-meta-label { color: var(--purple-tabletext); }
