.newsletter-page { background:linear-gradient(165deg,#f7f4ef 0%,#e9eee7 55%,#f7f4ef 100%); }
.newsletter-intro { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr); align-items:center; gap:clamp(32px,5vw,76px); padding-block:clamp(52px,7vw,100px); }
.newsletter-intro h1 { max-width:11ch; font-size:clamp(2.7rem,5vw,4.7rem); }
.newsletter-intro .lead { max-width:48ch; }
.newsletter-intro .editorial-photo { margin:0; }
.newsletter-intro .editorial-photo img { border-radius:90px 90px 90px 24px; box-shadow:var(--soft-shadow); }
.newsletter-invitation { padding:0 0 clamp(64px,8vw,112px); }
.newsletter-panel { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(30px,5vw,72px); align-items:start; padding:clamp(30px,5vw,70px); border:1px solid var(--line); border-radius:52px 52px 52px 18px; background:var(--paper); box-shadow:var(--soft-shadow); }
.newsletter-panel h2 { max-width:13ch; }
.newsletter-panel .newsletter-detail { padding-left:18px; border-left:2px solid var(--terra); }
.newsletter-form { padding:0; border:0; background:none; }
.newsletter-form label:not(.consent) { max-width:100%; }
.newsletter-form input[type=email] { border-radius:14px; }
.newsletter-form .consent { margin-block:22px; font-size:.9rem; }
.newsletter-form .consent input { flex:none; width:20px; height:20px; margin-top:2px; accent-color:var(--terra-deep); }
.newsletter-form .button { cursor:pointer; }
.newsletter-form .button:disabled { opacity:.68; cursor:wait; }
.newsletter-feedback { max-width:48ch; margin:16px 0 0; padding:15px 18px; border-radius:14px; background:#e5efe5; color:var(--forest-deep); font-weight:650; }
.newsletter-feedback[data-state=error] { background:#f8e7e0; color:#713923; }
.newsletter-feedback[hidden] { display:none; }
.newsletter-after { max-width:78ch; margin:28px auto 0; color:#49615e; text-align:center; font-size:.85rem; }
@media (max-width:850px) { .newsletter-intro,.newsletter-panel { grid-template-columns:minmax(0,1fr); } .newsletter-intro .editorial-photo { max-width:660px; } .newsletter-panel h2 { max-width:none; } }
@media (max-width:520px) { .newsletter-intro { padding-block:48px 38px; } .newsletter-intro h1 { font-size:2.7rem; } .newsletter-panel { padding:28px 22px; border-radius:32px 32px 32px 12px; } .newsletter-form .button { width:100%; } }
