@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600&display=swap");

.newsletter-section {
    --newsletter-accent: #ffbe00;
    --newsletter-emphasis: #702c01;
    --newsletter-muted: #6a6258;
    background: #f3f1e5;
    color: #2d2a2a;
    padding: 72px 0;
    border-top: 1px solid #ded8c8;
}
.newsletter-content {
    max-width: 880px;
    margin: 0 auto;
    text-align: center;
}
.newsletter-intro h2 {
    margin: 0 0 12px;
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-size: clamp(28px, 3.8vw, 42px);
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 1.1;
}
.newsletter-intro p { margin: 0; color: var(--newsletter-muted); font-size: 17px; }
.newsletter-benefits {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px 20px;
    max-width: 640px;
    margin: 18px auto 30px;
    padding: 0;
    list-style: none;
    color: var(--newsletter-muted);
    font-size: 14.5px;
    text-align: left;
}
.newsletter-benefits li { position: relative; padding-left: 24px; }
.newsletter-benefits li::before { content: "✓"; position: absolute; left: 0; color: var(--newsletter-emphasis); font-weight: 700; }
.newsletter-form, .newsletter-field { display: grid; min-width: 0; gap: 16px; }
.newsletter-form { text-align: left; }
.newsletter-fields { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; gap: 10px; align-items: end; }
.newsletter-field { gap: 6px; }
.newsletter-field > label { color: var(--newsletter-muted); font-size: 13px; }
.newsletter-form .newsletter-control {
    width: 100%;
    min-width: 0;
    min-height: 56px;
    padding: 1rem;
    border: 1px solid #ded8c8;
    border-radius: .75rem;
    background: #fff;
    color: #2d2a2a;
    font-size: 1rem;
    line-height: 1.5;
    transition: box-shadow .2s, border-color .2s;
}
.newsletter-control::placeholder { color: #767268; }
.newsletter-form .newsletter-control:focus { outline: none; border-color: var(--newsletter-emphasis); box-shadow: inset 0 0 0 2px var(--newsletter-emphasis); }
.newsletter-form .newsletter-control.is-invalid { border-color: #e12d39; background-image: none; }
.newsletter-form .newsletter-control.is-invalid:focus { box-shadow: inset 0 0 0 2px #e12d39; }
.newsletter-form .invalid-feedback { color: #b4232c; }
.newsletter-phone-control { position: relative; min-width: 0; }
.newsletter-phone-control .newsletter-control { padding-left: 4rem; }
.newsletter-prefix { position: absolute; left: 1rem; top: 18px; color: #6a6258; font-size: 15px; font-weight: 600; pointer-events: none; }
.newsletter-phone-note { display: flex; align-items: start; gap: 8px; margin: 0; color: var(--newsletter-muted); font-size: 13px; }
.newsletter-phone-note i { color: var(--newsletter-emphasis); flex-shrink: 0; }
.newsletter-consents { display: grid; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.newsletter-consents legend { float: none; width: auto; margin: 0 0 4px; font-size: 14px; line-height: 1.5; }
.newsletter-consents a { color: var(--newsletter-emphasis); text-underline-offset: 3px; }
.newsletter-consent { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 10px; font-size: 14px; line-height: 1.5; cursor: pointer; }
.newsletter-consent small { color: var(--newsletter-muted); font-size: 12.5px; }
.newsletter-consent:has(input:disabled) { color: #8f8b80; cursor: default; }
.newsletter-consent .form-check-input { float: none; width: 20px; height: 20px; margin: 2px 0 0; border-color: #8f8777; cursor: inherit; }
.newsletter-consent .form-check-input:checked { border-color: var(--newsletter-accent); background-color: var(--newsletter-accent); --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%232d2a2a' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); }
.newsletter-consent .form-check-input:focus-visible { outline: 2px solid var(--newsletter-emphasis); outline-offset: 2px; box-shadow: none; }
.newsletter-privacy { order: 10; margin: 0; color: var(--newsletter-muted); font-size: 12.5px; line-height: 1.6; }
.newsletter-privacy a { color: var(--newsletter-emphasis); text-underline-offset: 3px; }
.newsletter-form .newsletter-submit { position: relative; width: 100%; min-height: 58px; padding: 1rem; border: 0; border-radius: .75rem; background: var(--newsletter-accent); color: #2d2a2a; font-size: 1rem; font-weight: 600; white-space: nowrap; }
.newsletter-submit-loader { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.newsletter-submit-loader[hidden] { display: none; }
.newsletter-submit:hover { background: #fbbf24; color: #2d2a2a; }
.newsletter-submit:focus-visible { outline: 2px solid var(--newsletter-emphasis); outline-offset: 3px; box-shadow: none; }
.newsletter-submit:disabled { background: var(--newsletter-accent); color: #2d2a2a; opacity: .6; }
.newsletter-status { min-height: 1.4em; margin: 0; font-size: 14px; }
.newsletter-status[data-error] { color: #b4232c; }
.newsletter-status[data-success] { color: var(--newsletter-emphasis); font-weight: 600; }
.newsletter-form a:focus-visible { outline: 2px solid var(--newsletter-emphasis); outline-offset: 3px; border-radius: 2px; }
@media (max-width: 860px) {
    .newsletter-section { padding: 52px 0; }
    .newsletter-fields { grid-template-columns: minmax(0, 1fr); }
    .newsletter-benefits { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .newsletter-control { transition: none; } }
