:root {
    --nl-ink: #382a31;
    --nl-muted: #5a4a50;
    --nl-brand: #a85075;
    --nl-paper: #fffcf8;
    --nl-line: rgba(168,80,117,.22);
}
body { background: #f0e8dc; color: var(--nl-ink); }
button, input { font: inherit; }
button:focus-visible, input:focus-visible, a:focus-visible { outline: 3px solid var(--nl-brand); outline-offset: 3px; }
.newsletter-landing { max-width: 1040px; margin: 0 auto; padding: 36px 24px 64px; }
.newsletter-hero { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(260px,.8fr); align-items: center; gap: clamp(24px,6vw,70px); padding: 54px 0 78px; }
.newsletter-eyebrow { margin: 0 0 15px; color: var(--nl-brand); font-size: .67rem; font-weight: 700; text-transform: uppercase; letter-spacing: .17em; }
.newsletter-hero h1, .newsletter-panel h2, .newsletter-benefits h2 { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; }
.newsletter-hero h1 { margin: 0 0 23px; font-size: clamp(3.2rem,7.3vw,6.3rem); line-height: 1.05; letter-spacing: -.045em; }
.newsletter-hero-copy > p:not(.newsletter-eyebrow) { max-width: 510px; margin: 0 0 30px; color: var(--nl-muted); font-size: 1.05rem; line-height: 1.75; }
.newsletter-letter { max-width: 350px; min-height: 285px; padding: 36px 32px; border: 1px solid #ead5df; border-radius: 3px; background: var(--nl-paper); box-shadow: 0 20px 42px rgba(56,42,49,.12); transform: rotate(3deg); }
.newsletter-letter span, .newsletter-letter small { color: var(--nl-brand); font: italic 1.1rem 'Playfair Display', Georgia, serif; }
.newsletter-letter p { margin: 24px 0 33px; font: italic 1.65rem/1.5 'Playfair Display', Georgia, serif; }
.newsletter-letter small { font-size: .85rem; }
.newsletter-panel { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: clamp(24px,5vw,60px); padding: clamp(24px,5vw,56px); border: 1px solid var(--nl-line); border-radius: 24px; background: var(--nl-paper); box-shadow: 0 14px 34px rgba(56,42,49,.07); }
.newsletter-panel h2 { margin: 0 0 16px; font-size: clamp(2.15rem,4vw,3.5rem); line-height: 1.12; letter-spacing: -.03em; }
.newsletter-panel > div > p:last-child { max-width: 330px; color: var(--nl-muted); font-size: .88rem; line-height: 1.7; }
.newsletter-panel form { display: grid; gap: 18px; }
.newsletter-field { display: grid; gap: 7px; }
.newsletter-field label, .newsletter-choices legend { font-size: .8rem; font-weight: 700; }
.newsletter-field label span { color: #7a6b70; font-weight: 400; }
.newsletter-field input { width: 100%; min-height: 48px; padding: 11px 14px; border: 1px solid var(--nl-line); border-radius: 11px; background: #fff; color: var(--nl-ink); font-size: .9rem; }
.newsletter-field input:focus { border-color: var(--nl-brand); }
.newsletter-choices { display: grid; gap: 10px; border: 0; }
.newsletter-choices legend { margin-bottom: 10px; }
.newsletter-check { display: flex; align-items: flex-start; gap: 10px; color: var(--nl-ink); font-size: .85rem; line-height: 1.55; }
.newsletter-check input { width: 18px; height: 18px; margin-top: 2px; flex: 0 0 18px; accent-color: var(--nl-brand); }
.newsletter-consent { padding: 16px; border: 1px solid var(--nl-line); border-radius: 12px; background: #fbf0f4; }
.newsletter-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.newsletter-submit { min-height: 48px; justify-self: start; }
.newsletter-submit:disabled { opacity: .55; cursor: wait; }
.newsletter-help { margin: -7px 0 0; color: var(--nl-muted); font-size: .74rem; line-height: 1.6; }
.newsletter-help a, .newsletter-archive-cta a, .newsletter-shell a:not(.page-action) { color: var(--nl-brand); }
.newsletter-form-status { min-height: 1.4em; margin: 0; color: var(--nl-brand); font-size: .85rem; font-weight: 600; }
.newsletter-form-status.is-error { color: #9a3c44; }
.newsletter-benefits { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; padding: 74px 0 34px; }
.newsletter-benefits > div { border-top: 1px solid var(--nl-line); padding-top: 18px; }
.newsletter-benefits span { color: var(--nl-brand); font-size: .69rem; font-weight: 700; letter-spacing: .12em; }
.newsletter-benefits h2 { margin: 12px 0 8px; font-size: 1.4rem; }
.newsletter-benefits p { color: var(--nl-muted); font-size: .84rem; line-height: 1.6; }
.newsletter-archive-cta { color: var(--nl-muted); font-size: .9rem; }
.newsletter-shell { min-height: 65vh; }
.newsletter-shell .page-card { background: var(--nl-paper); }
.newsletter-shell .page-card p { line-height: 1.75; }
.newsletter-shell .page-card form { display: grid; gap: 16px; margin-top: 20px; }
.newsletter-success { padding: 12px 16px; border-radius: 10px; background: #e8f1e7; color: #285c39; }
.newsletter-archive-link { display: block; text-decoration: none; color: inherit; }
.newsletter-archive-link h2 { margin: 7px 0; font: 500 1.5rem 'Playfair Display', Georgia, serif; }
.newsletter-archive-link small { color: var(--nl-brand); }
.newsletter-archive-image { display: block; width: 100%; height: auto; border-radius: 12px; margin: 16px 0; }
.newsletter-archive blockquote { margin: 22px 0; padding: 16px 20px; border-left: 3px solid var(--nl-brand); background: #fbf0f4; font: italic 1.3rem/1.6 'Playfair Display', Georgia, serif; }
.app-footer { margin-top: 48px; padding: 72px 28px 48px; border-top: 1px solid var(--nl-line); background: #ebe2d4; text-align: center; }
.footer-message { margin-bottom: 28px; color: var(--nl-muted); font: italic .85rem/1.5 'Playfair Display', Georgia, serif; }
.app-footer-links { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 8px 28px; margin-bottom: 16px; }
.app-footer-links a { color: #7a6b70; font-size: .68rem; font-weight: 600; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.app-footer-links a:hover { color: var(--nl-brand); }
.footer-copy { color: #7a6b70; font-size: .66rem; letter-spacing: .04em; }
@media (max-width: 700px) {
    .newsletter-landing { padding: 18px 16px 50px; }
    .newsletter-hero { grid-template-columns: 1fr; padding: 32px 0 46px; gap: 26px; }
    .newsletter-hero h1 { font-size: clamp(2.8rem,12vw,4.3rem); }
    .newsletter-letter { display: none; }
    .newsletter-panel { grid-template-columns: 1fr; }
    .newsletter-benefits { grid-template-columns: 1fr; padding-top: 50px; }
    .newsletter-submit { width: 100%; }
}
