/* Inline Knup updates subscribe */

.knup-subscribe{
  width:100%;
}

.knup-subscribe-lede{
  margin:0 0 14px;
  color:inherit;
  opacity:.9;
  font-size:.95rem;
  line-height:1.5;
}

.knup-subscribe-message{
  margin:12px 0 0;
  padding:12px 14px;
  border-radius:10px;
  font-size:.95rem;
  line-height:1.45;
}

.knup-subscribe-message.is-success{
  background:rgba(34,120,70,.12);
  border:1px solid rgba(34,120,70,.35);
  color:#1d5c38;
}

.knup-subscribe-message.is-error{
  background:rgba(230,9,16,.08);
  border:1px solid rgba(230,9,16,.28);
  color:#8f1f1f;
}

.knup-subscribe-form{
  display:grid;
  gap:14px;
  margin-top:4px;
}

.knup-subscribe-fields{
  display:grid;
  gap:10px;
}

.knup-subscribe-field{
  display:grid;
  gap:6px;
}

.knup-subscribe-label{
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  opacity:.8;
}

.knup-subscribe-field input{
  width:100%;
  border:1px solid #d2d2d2;
  border-radius:10px;
  padding:12px 14px;
  font:inherit;
  background:#fff;
  color:#111;
}

.knup-subscribe-field input:focus{
  outline:none;
  border-color:rgba(230,9,16,.55);
  box-shadow:0 0 0 3px rgba(230,9,16,.1);
}

.knup-subscribe-topics{
  margin:0;
  padding:0;
  border:0;
}

.knup-subscribe-topics legend{
  padding:0;
  margin:0 0 8px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  opacity:.8;
}

.knup-subscribe-topic-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.knup-subscribe-topic{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border:1px solid #e0e0e0;
  border-radius:999px;
  background:#fafafa;
  color:#222;
  font-size:.88rem;
  font-weight:600;
  cursor:pointer;
}

.knup-subscribe-topic input{
  width:auto;
  margin:0;
}

.knup-subscribe-topic:has(input:checked){
  border-color:rgba(230,9,16,.55);
  background:rgba(230,9,16,.06);
}

.knup-subscribe-submit{
  justify-self:start;
  min-height:48px;
  padding:0 22px;
}

/* Footer variant */
.knup-subscribe--footer{
  color:#fff;
}

.knup-subscribe--footer .knup-subscribe-label,
.knup-subscribe--footer .knup-subscribe-topics legend{
  color:rgba(255,255,255,.78);
}

.knup-subscribe--footer .knup-subscribe-field input{
  background:rgba(255,255,255,.96);
  border-color:rgba(255,255,255,.2);
}

.knup-subscribe--footer .knup-subscribe-topic{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.18);
  color:#fff;
}

.knup-subscribe--footer .knup-subscribe-topic:has(input:checked){
  background:rgba(230,9,16,.28);
  border-color:rgba(255,180,180,.7);
}

.knup-subscribe--footer .knup-subscribe-message.is-success{
  background:rgba(120,220,160,.12);
  border-color:rgba(120,220,160,.35);
  color:#d7ffe6;
}

.knup-subscribe--footer .knup-subscribe-message.is-error{
  background:rgba(255,120,120,.12);
  border-color:rgba(255,150,150,.4);
  color:#ffd0d0;
}

.footer-cta .knup-subscribe--footer{
  max-width:520px;
  justify-self:end;
  width:100%;
}

.footer-cta .knup-subscribe--footer h2{
  margin-bottom:14px;
}

@media (min-width:720px){
  .knup-subscribe--footer .knup-subscribe-fields{
    grid-template-columns:1fr 1.3fr;
  }
}

/* Sidebar variant */
.sidebar-card.subscribe .knup-subscribe--sidebar{
  color:inherit;
}

.sidebar-card.subscribe .knup-subscribe-topic{
  width:100%;
  border-radius:10px;
}

.sidebar-card.subscribe .knup-subscribe-submit{
  width:100%;
  justify-self:stretch;
}

/* Standalone page */
.knup-subscribe--page{
  max-width:560px;
  margin:0 auto;
  padding:28px 24px 48px;
  color:#111;
}

.knup-subscribe--page .knup-subscribe-eyebrow{
  display:inline-block;
  color:var(--accent);
  font-family:Montserrat,Arial,sans-serif;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.knup-subscribe--page h1{
  font-family:Montserrat,Arial,sans-serif;
  font-size:clamp(1.8rem,4vw,2.4rem);
  margin:10px 0 8px;
  letter-spacing:-.03em;
}

.knup-subscribe-page{
  min-height:70vh;
  background:#f6f6f6;
}

.knup-subscribe-page-shell{
  max-width:640px;
  margin:0 auto;
  padding:28px 20px 64px;
}

.knup-subscribe-page-card{
  background:#fff;
  border:1px solid #e7e7e7;
  border-radius:20px;
  padding:28px 24px;
  box-shadow:0 16px 40px rgba(0,0,0,.06);
}

.knup-subscribe-back{
  display:inline-flex;
  margin-bottom:18px;
  color:#666;
  text-decoration:none;
  font-weight:700;
}

.knup-subscribe-back:hover{
  color:var(--accent);
}

@media (max-width:719px){
  .footer-cta{
    grid-template-columns:1fr;
  }

  .footer-cta .knup-subscribe--footer{
    justify-self:stretch;
    max-width:none;
  }

  .knup-subscribe-submit{
    width:100%;
    justify-self:stretch;
  }
}
