/* ============================================================
   CanadaFlorida — Newsletter components
   Used by topbar link, inline CTA, footer column, and dedicated pages
   ============================================================ */

/* --- Topbar mini-link "Infolettre" / "Newsletter" --- */
.topbar-links{display:flex;align-items:center;gap:18px}
.topbar a.newsletter-link{display:inline-flex;align-items:center;gap:6px;margin-left:0}
.topbar a.newsletter-link::before{
  content:"\2709";
  font-size:13px;
  display:inline-block;
  transform:translateY(-1px);
}

/* --- Inline CTA card (in middle of articles) --- */
.cta-newsletter{
  max-width:1440px;
  margin:48px auto;
  padding:36px 40px;
  background:var(--cf-bg-2,#F2F1EB);
  border:1px solid var(--cf-rule,#E4E2D9);
  border-left:4px solid var(--cf-coral,#C45A3D);
  border-radius:9px;
  box-sizing:border-box;
}
.cta-newsletter .nl-eyebrow{
  font-family:var(--cf-font-mono,ui-monospace,monospace);
  font-size:11.5px;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--cf-coral,#C45A3D);
  margin:0 0 12px;
  font-weight:600;
}
.cta-newsletter .nl-title{
  font-family:var(--cf-font-display,'Fraunces',Georgia,serif);
  font-size:28px;
  line-height:1.15;
  letter-spacing:-.02em;
  color:var(--cf-ink,#15191C);
  margin:0 0 12px;
  font-weight:500;
}
.cta-newsletter .nl-subtitle{
  font-family:var(--cf-font-sans,'Geist',system-ui,sans-serif);
  font-size:15px;
  line-height:1.55;
  color:var(--cf-ink-2,#3A4148);
  margin:0 0 24px;
  max-width:560px;
}

/* --- Form (shared between inline CTA, footer, page) --- */
.nl-form{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch;max-width:560px}
.nl-form .nl-input{
  flex:1 1 180px;
  padding:12px 16px;
  font-family:var(--cf-font-sans,'Geist',system-ui,sans-serif);
  font-size:15px;
  border:1px solid var(--cf-rule,#E4E2D9);
  border-radius:8px;
  background:var(--cf-surface,#FFFFFF);
  color:var(--cf-ink,#15191C);
  outline:none;
  transition:border-color 150ms cubic-bezier(.4,0,.2,1);
  box-sizing:border-box;
}
.nl-form .nl-input:focus{border-color:var(--cf-coral,#C45A3D)}
.nl-form .nl-input::placeholder{color:var(--cf-muted,#6B7177)}
.nl-form .nl-button{
  flex:0 0 auto;
  padding:12px 22px;
  font-family:var(--cf-font-sans,'Geist',system-ui,sans-serif);
  font-size:14px;
  font-weight:600;
  background:var(--cf-ink,#15191C);
  color:var(--cf-bg,#FAFAF7);
  border:0;
  border-radius:8px;
  cursor:pointer;
  transition:background 150ms cubic-bezier(.4,0,.2,1);
}
.nl-form .nl-button:hover{background:var(--cf-coral,#C45A3D)}

.cta-newsletter .nl-fineprint,
.nl-fineprint{
  font-family:var(--cf-font-sans,'Geist',system-ui,sans-serif);
  font-size:12px;
  color:var(--cf-muted,#6B7177);
  line-height:1.5;
  margin:16px 0 0;
  max-width:560px;
}
.nl-fineprint a{color:var(--cf-muted,#6B7177);text-decoration:underline}

/* Status messages (success/error after AJAX submit) */
.nl-status{
  margin-top:14px;
  padding:10px 14px;
  border-radius:6px;
  font-family:var(--cf-font-sans,sans-serif);
  font-size:14px;
  display:none;
}
.nl-status.is-success{display:block;background:var(--cf-sage-soft,#DCE7DF);color:var(--cf-sage,#3F6B52);border:1px solid var(--cf-sage,#3F6B52)}
.nl-status.is-error{display:block;background:var(--cf-coral-soft,#F4DDD0);color:var(--cf-coral,#C45A3D);border:1px solid var(--cf-coral,#C45A3D)}

@media (max-width:768px){
  .cta-newsletter{padding:28px 22px;margin:32px 0}
  .cta-newsletter .nl-title{font-size:22px}
  .nl-form .nl-button{width:100%;padding:14px 22px}
}

/* --- Footer column "Infolettre" --- */
footer.site .foot-newsletter{
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  padding:22px;
}
footer.site .foot-newsletter h5{margin:0 0 10px}
footer.site .foot-newsletter p{
  font-size:13px;color:#A8ADB3;line-height:1.5;margin:0 0 14px;
}
footer.site .foot-newsletter .nl-form .nl-input{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.18);
  color:#fff;
  font-size:14px;
  padding:10px 14px;
}
footer.site .foot-newsletter .nl-form .nl-input::placeholder{color:#A8ADB3}
footer.site .foot-newsletter .nl-form .nl-input:focus{border-color:var(--cf-coral-soft,#F4DDD0)}
footer.site .foot-newsletter .nl-form .nl-button{
  background:var(--cf-coral,#C45A3D);
  color:#fff;
  padding:10px 18px;
  font-size:13px;
}
footer.site .foot-newsletter .nl-form .nl-button:hover{background:#E2B077}
footer.site .foot-newsletter .nl-fineprint{
  font-size:11px;color:#7d828a;margin:12px 0 0;
}

/* --- Dedicated page /fr/infolettre/ and /en/newsletter/ --- */
.nl-page-hero{
  max-width:780px;
  margin:0 auto;
  padding:60px 56px 40px;
}
.nl-page-hero .nl-eyebrow{
  font-family:var(--cf-font-mono,monospace);
  font-size:11.5px;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--cf-coral,#C45A3D);
  margin:0 0 16px;
  font-weight:600;
}
.nl-page-hero h1{
  font-family:var(--cf-font-display,'Fraunces',Georgia,serif);
  font-size:48px;
  line-height:1.05;
  letter-spacing:-.025em;
  color:var(--cf-ink,#15191C);
  margin:0 0 20px;
  font-weight:500;
}
.nl-page-hero h1 em{color:var(--cf-coral,#C45A3D);font-style:italic}
.nl-page-hero .lede{
  font-family:var(--cf-font-sans,'Geist',sans-serif);
  font-size:19px;
  line-height:1.55;
  color:var(--cf-ink-2,#3A4148);
  margin:0 0 32px;
}
.nl-page-form-block{
  background:var(--cf-bg-2,#F2F1EB);
  border:1px solid var(--cf-rule,#E4E2D9);
  border-radius:9px;
  padding:36px 40px;
  margin-top:8px;
}
.nl-page-form-block .nl-form{max-width:none}
.nl-page-promise{
  max-width:780px;
  margin:48px auto;
  padding:0 56px;
}
.nl-page-promise h2{
  font-family:var(--cf-font-display,'Fraunces',Georgia,serif);
  font-size:28px;
  line-height:1.15;
  color:var(--cf-ink,#15191C);
  margin:0 0 16px;
  font-weight:500;
}
.nl-page-promise ul{
  font-family:var(--cf-font-sans,'Geist',sans-serif);
  font-size:16px;
  line-height:1.65;
  color:var(--cf-ink-2,#3A4148);
  padding-left:22px;
}
.nl-page-promise ul li{margin-bottom:10px}
@media (max-width:768px){
  .nl-page-hero{padding:36px 22px 30px}
  .nl-page-hero h1{font-size:36px}
  .nl-page-form-block{padding:24px 22px}
  .nl-page-promise{padding:0 22px;margin:32px auto}
  .nl-page-promise h2{font-size:22px}
}
