/* Approved Paper composition, sharing the site's light and dark role tokens. */
body footer.site-footer{display:block;width:100%;max-width:none;margin:0;padding:40px 0 0;background:var(--surface);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.56;letter-spacing:normal;border:0}
body footer.site-footer a{color:inherit;text-decoration:none}
@media (hover: hover) and (pointer: fine){body footer.site-footer a:hover{text-decoration:underline;text-underline-offset:4px}}
body footer.site-footer :is(a,summary):focus-visible{outline:2px solid var(--accent);outline-offset:4px}
body footer.site-footer .footer-main{display:grid;grid-template-columns:290px minmax(300px,400px) minmax(320px,400px);gap:48px;align-items:start;max-width:1360px;padding:0 40px;margin:auto}
body footer.site-footer .footer-identity{display:flex;flex-direction:column;align-items:flex-start;gap:28px;min-width:0}
body footer.site-footer .brand{width:250px;max-width:100%}
body footer.site-footer .footer-socials{display:flex;justify-content:center;gap:12px;width:250px;max-width:100%}
body footer.site-footer .footer-socials a{display:flex;align-items:center;justify-content:center;width:40px;min-height:44px}
body footer.site-footer .footer-socials svg{width:28px;height:28px}
body footer.site-footer .footer-contact{width:250px;max-width:100%;text-align:center;color:var(--muted);overflow-wrap:anywhere}
body footer.site-footer .footer-navigation{display:grid;grid-template-columns:140px minmax(0,1fr);gap:32px;width:auto;font-size:16px;align-items:start}
body footer.site-footer details{min-width:0}
body footer.site-footer summary{font-size:13px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);list-style:none;cursor:pointer;line-height:25px}
body footer.site-footer summary::-webkit-details-marker{display:none}
body footer.site-footer ul{display:flex;flex-direction:column;gap:14px;list-style:none;padding:0;margin:14px 0 0}
body footer.site-footer li{margin:0;padding:0}
body footer.site-footer .footer-mobile-contact{display:none}
body footer.site-footer .footer-signup{display:flex;flex-direction:column;gap:20px;padding:28px;border-radius:28px;background:var(--wash);border:0;min-width:0}
body footer.site-footer .footer-signup h2{font-family:var(--editorial-serif);font-weight:400;font-size:36px;line-height:42px;letter-spacing:normal;margin:0;color:var(--ink)}
body footer.site-footer .footer-signup h2 span{font-style:normal;color:inherit}
body footer.site-footer .footer-signup p{font-size:16px;line-height:26px;color:var(--muted);margin:0}
body footer.site-footer .footer-form{width:100%;min-width:0}
body footer.site-footer .footer-form iframe{display:block;width:100%;max-width:100%;border:0}
body footer.site-footer .footer-credit{text-align:center;margin:32px 24px 14px;font-size:16px;line-height:24px;color:var(--ink)}
body footer.site-footer .footer-art{position:relative;width:100%;overflow:hidden}
body footer.site-footer .footer-art::after{content:'';position:absolute;inset:0 0 auto;height:40px;background:linear-gradient(to bottom in srgb,var(--surface),transparent);pointer-events:none}
body footer.site-footer .footer-art picture,body footer.site-footer .footer-art img{display:block;width:100%;height:auto}
body footer.site-footer .footer-legal{padding:34px 24px 24px;text-align:center;color:var(--muted);font-size:13px;line-height:21px}
body footer.site-footer .footer-legal nav{display:flex;width:auto;justify-content:center;gap:0;flex-wrap:wrap;margin:0 0 21px;font-size:13px}
body footer.site-footer .footer-legal nav a+a::before{content:'|';display:inline-block;margin:0 8px;color:var(--muted)}
body footer.site-footer .footer-legal p{margin:0;font-size:13px;line-height:21px;color:var(--muted)}
@media(min-width:761px) and (max-width:1180px){body footer.site-footer .footer-main{grid-template-columns:250px minmax(0,1fr);gap:32px}body footer.site-footer .footer-signup{grid-column:2}body footer.site-footer .footer-navigation{grid-column:2;grid-row:1}body footer.site-footer .footer-identity{grid-row:1/3}}
@media(max-width:760px){body footer.site-footer{padding-block-start:32px}body footer.site-footer .footer-main{display:flex;flex-direction:column;gap:28px;padding:0 24px;max-width:540px}body footer.site-footer .footer-identity{align-items:center;width:100%;gap:24px}body footer.site-footer .footer-signup{order:1;width:100%;padding:24px;border-radius:24px}body footer.site-footer .footer-signup h2{font-size:34px;line-height:40px}body footer.site-footer .footer-signup h2 span{display:block}body footer.site-footer .footer-navigation{order:2;display:flex;flex-direction:column;gap:0;width:100%}body footer.site-footer details{width:100%;border-block-start:1px solid var(--line)}body footer.site-footer details:last-of-type{border-block-end:1px solid var(--line)}body footer.site-footer summary{display:flex;justify-content:space-between;align-items:center;padding:18px 0;min-height:60px;font-size:16px;line-height:24px;color:var(--ink);text-transform:none;letter-spacing:normal}body footer.site-footer summary::after{content:'+'}body footer.site-footer details[open] summary::after{content:'−'}body footer.site-footer ul{margin:0 0 18px;gap:0}body footer.site-footer li a{display:block;padding:10px 0;min-height:44px}body footer.site-footer .footer-mobile-contact{display:block;padding:18px 0;min-height:60px}body footer.site-footer .footer-credit{margin-block-start:32px}body footer.site-footer .footer-art img{aspect-ratio:3/2;object-fit:cover}body footer.site-footer .footer-legal nav a{padding:8px 0;min-height:44px}}
/* The confirmation card keeps its original treatment above the full-width footer. */
body:has(>.welcome){display:block;padding:0}
body:has(>.welcome)>.welcome{margin:24px auto}
@media(max-width:820px){body:has(>.welcome)>.welcome{width:calc(100% - 32px)}}
/* Keep the header's layout space while the footer offers the same signup. */
@media (prefers-reduced-motion: no-preference){body > header{transition:transform .24s ease,opacity .24s ease}}
body > header.footer-retreated{transform:translateY(-100%);opacity:0;pointer-events:none}
body > header:focus-within{transform:none;opacity:1;pointer-events:auto;transition:none}
@media(prefers-reduced-motion:reduce){body > header{transition:none}}
