.pfs-newsletter-page, #pfs-newsletter-modal {
  color: #292b2e;
  font: 1rem/1.6 Arial, Helvetica, sans-serif;
}
.pfs-newsletter-page { max-width: 34rem; margin: clamp(2rem, 7vh, 5rem) auto; padding: 0 1.5rem; }
.pfs-brand { color: #646464; font: 1rem/1.5 Georgia, serif; text-decoration: none; }
.pfs-newsletter-page h1 { margin: 1rem 0 .75rem; font: 400 clamp(1.9rem, 5vw, 2.5rem)/1.2 Georgia, serif; letter-spacing: -.02em; text-wrap: balance; }
.pfs-intro { color: #555; margin: 0 0 2rem; }
.pfs-newsletter-page h2 { font-size: 1.1rem; line-height: 1.4; margin: 0 0 .5rem; }
.pfs-help { color: #606060; font-size: .875rem; margin: -.5rem 0 .25rem; }
.pfs-signup-note { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid #dedbd7; }
.pfs-signup-note p { color: #555; margin: 0 0 1rem; }
.pfs-page-footer { border-top: 1px solid #dedbd7; margin-top: 2rem; padding-top: 1rem; font-size: .875rem; }
.pfs-page-footer a { color: #646464; text-underline-offset: .2em; }
.pfs-newsletter-page article { margin-block: 2.5rem; }
#pfs-newsletter-modal { position: fixed; inset: 0; margin: auto; box-sizing: border-box; width: min(36rem, calc(100% - 2rem)); max-width: calc(100% - 2rem); max-height: calc(100dvh - 2rem); overflow: auto; overscroll-behavior: contain; padding: 0; border: 0; border-top: 5px solid #b7362a; border-radius: 4px; }
#pfs-newsletter-modal * { box-sizing: border-box; }
html:has(#pfs-newsletter-modal[open]), body:has(#pfs-newsletter-modal[open]) { overflow: hidden; }
#pfs-newsletter-modal::backdrop { background: rgb(20 23 27 / 65%); }
.pfs-newsletter-card { min-width: 0; padding: clamp(1rem, 4vw, 2rem); }
#pfs-newsletter-modal p { margin: .75rem 0; line-height: 1.5; }
#pfs-newsletter-modal .pfs-newsletter-card > p:last-child { font-size: .875rem; margin-bottom: 0; }
#pfs-newsletter-modal h2 { max-width: 17ch; margin: 1rem auto; font: 400 clamp(1.7rem, 5vw, 2.2rem)/1.15 Georgia, serif; text-wrap: balance; text-align: center; }
#pfs-newsletter-modal .pfs-close { display: block; margin: 0 0 0 auto; padding: .25rem .5rem; background: transparent; color: #555; border: 0; }
[data-pfs-signup], #pfs-preferences, #pfs-request-manage { display: grid; gap: 1rem; margin-block: 1.5rem; }
#pfs-newsletter-modal [data-pfs-signup] { min-width: 0; gap: .75rem; margin-block: 1rem; }
[data-pfs-signup] label, #pfs-manage label, #pfs-request label { display: block; }
[data-pfs-signup] input[type=email], #pfs-request input[type=email] { box-sizing: border-box; width: 100%; min-height: 48px; padding: .65rem .8rem; border: 1px solid #777; border-radius: 3px; color: #222; background: #fff; font: inherit; }
[data-pfs-signup] fieldset, #pfs-preferences fieldset { display: grid; min-inline-size: 0; gap: .5rem; margin: 0; padding: .7rem 1rem 1rem; border: 1px solid #aaa; }
[data-pfs-signup] fieldset label, #pfs-preferences fieldset label { display: flex; align-items: center; gap: .65rem; min-height: 44px; cursor: pointer; }
[data-pfs-signup] input[type=radio], #pfs-preferences input[type=radio] { width: 1.15rem; height: 1.15rem; accent-color: #a52d23; }
.pfs-newsletter-open, #pfs-newsletter-modal button, .pfs-newsletter-page button { display: inline-block; box-sizing: border-box; min-height: 44px; padding: .65rem 1rem; border: 1px solid #a52d23; border-radius: 3px; background: #a52d23; color: #fff; font: inherit; text-decoration: none; cursor: pointer; }
.pfs-newsletter-page button:disabled, #pfs-newsletter-modal button:disabled { opacity: .65; cursor: wait; }
.pfs-newsletter-page button { justify-self: start; }
.pfs-newsletter-page .pfs-signup-note .pfs-newsletter-open, #pfs-unsubscribe { color: #8f281f; background: #fff; border-color: #c8b9b5; }
.pfs-newsletter-page button:hover, #pfs-newsletter-modal button:hover, .pfs-newsletter-open:hover { filter: brightness(.93); }
.pfs-newsletter-page .pfs-status:empty, #pfs-newsletter-modal .pfs-status:empty { display: none; }
.pfs-newsletter-page .pfs-error { border-left: 3px solid #a52d23; padding: .75rem 1rem; background: #fff6f4; font-size: .925rem; }
.pfs-status { min-height: 1.5em; margin: 0; overflow-wrap: anywhere; }
.pfs-error { color: #9d2119; }
.pfs-newsletter-open:focus-visible, #pfs-newsletter-modal :focus-visible, .pfs-newsletter-page :focus-visible { outline: 3px solid #1c5b96; outline-offset: 3px; }
.pfs-newsletter-page [hidden], #pfs-newsletter-modal [hidden] { display: none !important; }
@media (max-width: 480px) { .pfs-newsletter-page { margin-block: 1.5rem; } }
