/* Report download CTA and modal. */

.opi-report-cta{
  margin:3.5rem 0;
  border:1px solid var(--opi-line);
  border-radius:12px;
  background:linear-gradient(150deg,var(--opi-card) 0%,var(--opi-brass-soft) 100%);
  padding:2.25rem 2.5rem;
  box-shadow:var(--opi-shadow);
}
.opi-report-cta__eyebrow{
  font-family:var(--opi-mono); font-size:.6875rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--opi-brass); margin:0 0 .6rem;
}
.opi-report-cta h2{ margin:0 0 .6rem; font-size:1.5rem; }
.opi-report-cta p{ color:var(--opi-soft); font-size:.9375rem; margin:0 0 .9rem; }
.opi-report-cta__meta{ font-size:.8125rem !important; color:var(--opi-muted) !important; }
@media(max-width:640px){ .opi-report-cta{ padding:1.75rem 1.5rem; } }

.opi-modal[hidden]{ display:none; }
.opi-modal{
  position:fixed; inset:0; z-index:9999;
  display:flex; align-items:center; justify-content:center; padding:1.25rem;
}
.opi-modal__backdrop{
  position:absolute; inset:0; background:rgba(20,17,13,.62);
  backdrop-filter:blur(3px); animation:opiFade .18s ease;
}
.opi-modal__panel{
  position:relative; z-index:1; width:100%; max-width:440px;
  background:var(--opi-card); border:1px solid var(--opi-line);
  border-radius:14px; padding:2rem 2rem 1.75rem;
  box-shadow:0 24px 60px -20px rgba(20,17,13,.5);
  max-height:calc(100vh - 2.5rem); overflow-y:auto;
  animation:opiRise .22s cubic-bezier(.2,.8,.3,1);
}
@keyframes opiFade{ from{opacity:0} to{opacity:1} }
@keyframes opiRise{ from{opacity:0; transform:translateY(14px) scale(.985)} to{opacity:1; transform:none} }
@media (prefers-reduced-motion:reduce){
  .opi-modal__panel,.opi-modal__backdrop{ animation:none; }
}

.opi-modal__close{
  position:absolute; top:.75rem; right:.9rem;
  background:none; border:none; font-size:1.6rem; line-height:1;
  color:var(--opi-muted); cursor:pointer; padding:.25rem .4rem; border-radius:6px;
}
.opi-modal__close:hover{ color:var(--opi-ink); background:var(--opi-warm); }

.opi-modal__eyebrow{
  font-family:var(--opi-mono); font-size:.6875rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--opi-brass); margin:0 0 .5rem;
}
.opi-modal__panel h2{ margin:0 0 .5rem; font-size:1.375rem; }
.opi-modal__intro{ font-size:.875rem; color:var(--opi-muted); margin:0 0 1.25rem; }
.opi-modal__form p{ margin:0 0 .9rem; }
.opi-modal__form label{ display:block; font-size:.8125rem; font-weight:600; color:var(--opi-soft); margin-bottom:.3rem; }
.opi-modal__form label span{ color:var(--opi-brass); }
.opi-modal__form input[type=text],
.opi-modal__form input[type=email],
.opi-modal__form input[type=tel]{
  width:100%; padding:.7rem .85rem; border:1px solid var(--opi-line);
  border-radius:7px; background:var(--opi-paper); color:var(--opi-ink);
  font-family:inherit; font-size:.9375rem;
}
.opi-modal__form input:focus{ outline:2px solid var(--opi-brass); outline-offset:-1px; }
.opi-modal__form .opi-btn{ width:100%; }
.opi-modal__small{ font-size:.6875rem !important; color:var(--opi-muted); margin:.9rem 0 0 !important; line-height:1.45; }
