/* ═══════════════════════════════════════════════════════════════════════════
   Ópera de Morelia — Newsletter component (Brevo-ready)
   Premium minimal form: email + name + segmento opcional
   Estados: idle / loading / success / error
   ═══════════════════════════════════════════════════════════════════════════ */

.opm-newsletter{
  background:var(--opm-d-warm, #13110d);
  padding:96px 0;
  position:relative;
  overflow:hidden;
}

.opm-newsletter::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse 800px 400px at 20% 30%, rgba(189,176,157,0.06) 0%, transparent 60%),
    radial-gradient(ellipse 600px 400px at 80% 70%, rgba(189,176,157,0.04) 0%, transparent 60%);
  pointer-events:none;
}

.opm-newsletter-inner{
  max-width:920px;
  margin:0 auto;
  padding:0 24px;
  text-align:center;
  position:relative;
  z-index:1;
}

.opm-newsletter-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:14px;
  font-family:'Inter',sans-serif;
  font-size:11.5px;
  font-weight:500;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:rgba(189,176,157,0.9);
  margin-bottom:32px;
}
.opm-newsletter-eyebrow::before,
.opm-newsletter-eyebrow::after{
  content:"";
  width:36px;
  height:1px;
  background:rgba(189,176,157,0.65);
}

.opm-newsletter-h2{
  font-family:'Bodoni Moda',Georgia,serif;
  font-weight:500;
  font-size:clamp(2.2rem,5vw,3.6rem);
  line-height:1.08;
  letter-spacing:-0.015em;
  color:#F2EDE2;
  margin:0 0 18px;
}
.opm-newsletter-h2 em{
  font-style:italic;
  color:#BDB09D;
}

.opm-newsletter-lede{
  font-family:'Inter',sans-serif;
  font-size:1.05rem;
  line-height:1.65;
  color:rgba(255,255,255,0.72);
  max-width:560px;
  margin:0 auto 44px;
}

.opm-newsletter-form{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  max-width:560px;
  margin:0 auto;
  align-items:stretch;
}

.opm-newsletter-field{
  flex:1 1 220px;
  position:relative;
}

.opm-newsletter-input{
  width:100%;
  padding:18px 22px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:980px;
  color:#F2EDE2;
  font-family:'Inter',sans-serif;
  font-size:15px;
  font-weight:400;
  letter-spacing:-0.005em;
  transition:border-color .2s, background .2s;
}
.opm-newsletter-input::placeholder{
  color:rgba(255,255,255,0.42);
}
.opm-newsletter-input:hover{
  background:rgba(255,255,255,0.06);
}
.opm-newsletter-input:focus{
  outline:none;
  border-color:rgba(189,176,157,0.85);
  background:rgba(255,255,255,0.07);
}

.opm-newsletter-submit{
  flex:0 0 auto;
  padding:18px 32px;
  background:#BDB09D;
  color:#11100E;
  font-family:'Inter',sans-serif;
  font-size:14px;
  font-weight:600;
  letter-spacing:-0.005em;
  border:none;
  border-radius:980px;
  cursor:pointer;
  transition:background .2s, transform .2s;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.opm-newsletter-submit:hover{
  background:#A89882;
  transform:translateY(-1px);
}
.opm-newsletter-submit:active{
  transform:translateY(0);
}
.opm-newsletter-submit::after{
  content:"→";
  font-size:16px;
  transition:transform .2s;
}
.opm-newsletter-submit:hover::after{
  transform:translateX(3px);
}
.opm-newsletter-submit[disabled]{
  opacity:0.6;
  cursor:wait;
  transform:none !important;
}
.opm-newsletter-submit[disabled]::after{
  content:"…";
}

.opm-newsletter-fine{
  margin-top:22px;
  font-family:'Inter',sans-serif;
  font-size:12px;
  font-weight:400;
  letter-spacing:0.02em;
  color:rgba(255,255,255,0.45);
}
.opm-newsletter-fine a{
  color:rgba(189,176,157,0.85);
  text-decoration:none;
  border-bottom:1px solid rgba(189,176,157,0.3);
}
.opm-newsletter-fine a:hover{
  color:#F2EDE2;
  border-bottom-color:#F2EDE2;
}

/* Estados feedback */
.opm-newsletter-feedback{
  margin-top:24px;
  font-family:'Inter',sans-serif;
  font-size:14px;
  font-weight:500;
  letter-spacing:-0.005em;
  opacity:0;
  transform:translateY(4px);
  transition:opacity .25s, transform .25s;
  pointer-events:none;
}
.opm-newsletter-feedback.is-visible{
  opacity:1;
  transform:translateY(0);
}
.opm-newsletter-feedback.is-success{
  color:#9FD79F;
}
.opm-newsletter-feedback.is-error{
  color:#E89A8A;
}

/* Hide form on success */
.opm-newsletter-form.is-submitted{
  opacity:0.3;
  pointer-events:none;
}

@media (max-width:600px){
  .opm-newsletter{ padding:64px 0; }
  .opm-newsletter-form{ flex-direction:column; }
  .opm-newsletter-submit{ justify-content:center; }
}
