/* Sitewide approved footer; independent of page and article typography. */
.cff-newsletter,.cff-footer{--navy:#07334b;--ink:#173c53;--coral:#ff603e;--cream:#fdf8f1;--blue:#e6f6fd;width:100%;max-width:none;margin:0;color:#07334b;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:1.5}
.cff-newsletter *,.cff-footer *{box-sizing:border-box;min-width:0}
.cff-newsletter a,.cff-footer a{color:inherit;text-decoration:none}
.cff-newsletter p,.cff-footer p{margin:0}
.cff-newsletter :is(a,button,input):focus-visible,.cff-footer :is(a,summary):focus-visible{outline:3px solid #cd4428;outline-offset:5px}
.cff-newsletter{display:grid;grid-template-columns:38% 32% 30%;align-items:center;background:#e6f6fd;min-height:340px;overflow:hidden}
.cff-letter-photo{align-self:stretch;position:relative;min-height:340px}
.cff-letter-photo img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:58% center}
.cff-letter-photo:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#e6f6fd00 72%,#e6f6fd 100%)}
.cff-letter-copy{padding:36px 24px 36px 20px}
.cff-letter-copy .cff-eyebrow{font-size:12px;letter-spacing:.26em;margin:0 0 19px;font-weight:400;line-height:1.5}
.cff-letter-copy h2{font-family:Georgia,CatoSerif,'Times New Roman',serif;font-size:clamp(32px,3.3vw,54px);line-height:1.04;letter-spacing:-.035em;margin:0 0 24px;font-weight:700;color:#07334b}
.cff-letter-copy>p:last-child{font-size:clamp(14px,1.25vw,19px);line-height:1.5}
.cff-letter-form{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:32px 8% 32px 0;margin:0;width:100%}
.cff-letter-form input[type=email]{display:block;width:100%;height:56px;padding:15px 18px;border:1px solid #c7d4db;border-radius:7px;background:#fff;box-shadow:none;color:#07334b;font:400 16px/1.4 Inter,Arial,sans-serif}
.cff-letter-form input::placeholder{color:#6a747b;opacity:1}
.cff-letter-form button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:56px;width:100%;padding:13px 16px;border:1px solid #cd4428;border-radius:8px;background:#cd4428;color:#fff;font:600 16px/1.4 Inter,Arial,sans-serif;cursor:pointer}
.cff-letter-form button:is(:hover,:focus-visible){background:#a93520;border-color:#a93520;color:#fff}
.cff-letter-form button span{font-size:23px;line-height:1}
.cff-letter-form small{display:block;font-size:13px;line-height:1.5;margin-top:2px;color:#07334b}
.cff-letter-form .cff-signup-status{grid-column:1/-1;font-size:14px;font-weight:600;padding:10px 0}
.cff-footer{background:#fdf8f1}
.cff-wrap{width:94%;max-width:1600px;margin-inline:auto}
.cff-grid{display:grid;grid-template-columns:1.7fr .85fr .9fr 1.15fr 1.4fr;gap:32px;padding-block:52px 34px}
.cff-brand{display:inline-flex;flex-direction:column;width:max-content;max-width:100%}
.cff-brand strong{font-family:Georgia,CatoSerif,'Times New Roman',serif;font-size:clamp(56px,4vw,64px);line-height:1;letter-spacing:-.05em;font-weight:700}
.cff-brand strong>span{color:#ff603e}
.cff-brand small{display:block;font-size:clamp(6px,.69vw,11px);letter-spacing:.19em;margin-top:12px;line-height:1.5;white-space:nowrap}
.cff-brand-column>p{font-size:clamp(17px,1.2vw,18px);line-height:1.45;margin-top:25px}
.cff-story-link{display:inline-flex;align-items:center;gap:12px;border-bottom:1px solid #cd4428;padding:4px 0;margin-top:22px;font-size:16px}
.cff-story-link span,.cff-sign-in>span{color:#cd4428}
.cff-footer .cff-grid h2{font-family:Inter,Arial,sans-serif;font-size:clamp(17px,1.25vw,18px);letter-spacing:-.025em;font-weight:700;line-height:1.3;margin:5px 0 23px;color:#07334b}
.cff-nav{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.cff-nav>a,.cff-submit>summary{font-size:clamp(15px,1.1vw,16px);line-height:1.5;padding:6px 0;min-height:35px;overflow-wrap:anywhere}
.cff-nav a:is(:hover,:focus-visible),.cff-footer .cff-story-link:is(:hover,:focus-visible),.cff-submit>summary:is(:hover,:focus-visible),.cff-sign-in a:is(:hover,:focus-visible),.cff-bottom a:is(:hover,:focus-visible),.cff-trust a:is(:hover,:focus-visible){color:#cd4428;text-decoration:underline;text-underline-offset:4px}
.cff-submit{position:relative;width:100%}
.cff-submit>summary{cursor:pointer;list-style:none}
.cff-submit>summary::-webkit-details-marker{display:none}
.cff-submit>summary::after{content:'+';font-size:13px;padding-left:8px;color:#cd4428}
.cff-submit[open]>summary::after{content:'−'}
.cff-submit>div{display:grid;gap:8px;padding:10px 12px;margin:4px 0 8px;background:#e6f6fd;border-radius:8px;font-size:13px}
.cff-account{border-left:1px solid #d7dfe2;padding-left:28px}
.cff-account>p{font-size:clamp(14px,1.1vw,16px);line-height:1.5}
.cff-account-button{display:flex;align-items:center;justify-content:center;border:1.5px solid #07334b;border-radius:11px;min-height:54px;padding:12px;margin:24px 0 16px;font-weight:700;font-size:14px;line-height:1.45;text-align:center}
.cff-footer .cff-account-button:is(:hover,:focus-visible){background:#cd4428;border-color:#cd4428;color:#fff;text-decoration:none}
.cff-account .cff-sign-in{font-size:clamp(12px,1.05vw,16px);line-height:1.6}
.cff-sign-in a{text-decoration:underline;text-underline-offset:4px}
.cff-trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #98adb9;border-bottom:1px solid #98adb9;padding-block:22px}
.cff-trust a{display:flex;align-items:center;justify-content:center;gap:20px;min-height:48px;padding:0 18px;font-size:clamp(14px,1.1vw,16px);line-height:1.4}
.cff-trust a+a{border-left:1px solid #c7d1d6}
.cff-trust svg{width:42px;height:42px;flex-shrink:0}
.cff-trust strong{font-weight:600}
.cff-bottom{display:flex;align-items:center;gap:24px;padding-block:24px 26px;font-size:12px;line-height:1.6}
.cff-bottom>p{margin-right:auto}
.cff-bottom nav{display:flex;align-items:center;flex-wrap:wrap;gap:0}
.cff-bottom nav a{padding:8px 18px}
.cff-bottom nav a+a{border-left:1px solid #c7d1d6}
.cff-top{display:flex;align-items:center;justify-content:center;width:44px;min-height:44px;border-left:1px solid #c7d1d6;padding-left:14px;flex-shrink:0}
.cff-top svg{width:28px;height:28px}
@media(min-width:761px) and (max-width:1100px){
 .cff-newsletter{grid-template-columns:35% 35% 30%;min-height:300px}
 .cff-letter-photo{min-height:300px}
 .cff-letter-copy{padding:28px 20px 28px 4px}
 .cff-letter-copy h2{font-size:32px}
 .cff-letter-copy .cff-eyebrow{font-size:10px;letter-spacing:.16em}
 .cff-letter-form{padding-right:7%}
 .cff-letter-form button{font-size:14px}
 .cff-letter-form small{font-size:11px}
 .cff-grid{grid-template-columns:1.4fr 1fr 1fr;gap:32px;padding-top:40px}
 .cff-brand-column{grid-row:span 2}
 .cff-brand strong{font-size:44px}
 .cff-brand small{font-size:7px}
 .cff-account{border-left:0;padding-left:0}
 .cff-footer .cff-grid h2{font-size:18px;margin-top:0;margin-bottom:16px}
 .cff-nav>a,.cff-submit>summary{font-size:15px}
 .cff-bottom{flex-wrap:wrap;gap:8px 18px}
 .cff-bottom>p{flex-basis:100%}
 .cff-bottom nav{margin-right:auto}
 .cff-bottom nav a:first-child{padding-left:0}
}
@media(max-width:760px){
 .cff-newsletter{grid-template-columns:1fr;min-height:0}
 .cff-letter-photo{min-height:0;height:230px}
 .cff-letter-photo img{object-position:center 53%}
 .cff-letter-photo:after{background:linear-gradient(180deg,#e6f6fd00 70%,#e6f6fd 100%)}
 .cff-letter-copy{padding:28px 6% 0}
 .cff-letter-copy .cff-eyebrow{font-size:10px;letter-spacing:.23em;margin-bottom:16px}
 .cff-letter-copy h2{font-size:clamp(34px,8vw,46px);margin-bottom:18px}
 .cff-letter-copy>p:last-child{font-size:16px;line-height:1.5}
 .cff-desktop{display:none}
 .cff-letter-form{padding:22px 6% 32px;gap:10px}
 .cff-letter-form input[type=email]{height:54px;font-size:16px}
 .cff-letter-form button{font-size:15px;min-height:54px}
 .cff-letter-form small{font-size:12px}
 .cff-wrap{width:88%}
 .cff-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px;padding-block:36px 30px}
 .cff-brand-column{grid-column:1/-1}
 .cff-brand strong{font-size:48px}
 .cff-brand small{font-size:9px;letter-spacing:.17em;margin-top:10px}
 .cff-brand-column>p{font-size:17px;line-height:1.5;margin-top:20px}
 .cff-story-link{font-size:16px;margin-top:18px;min-height:44px}
 .cff-footer .cff-grid h2{font-size:17px;line-height:1.4;margin:0 0 12px}
 .cff-nav>a,.cff-submit>summary{font-size:14px;min-height:44px;padding:10px 0;line-height:1.5}
 .cff-account{grid-column:1/-1;border-left:0;border-top:1px solid #c7d1d6;padding:24px 0 0}
 .cff-account>p{font-size:16px}
 .cff-account-button{margin:18px 0 14px;font-size:15px;max-width:320px}
 .cff-account .cff-sign-in{font-size:14px}
 .cff-trust{grid-template-columns:1fr;padding:12px 0;gap:0}
 .cff-trust a{justify-content:flex-start;gap:18px;min-height:64px;padding:10px 0;font-size:14px}
 .cff-trust a+a{border-left:0;border-top:1px solid #dce3e7}
 .cff-trust svg{width:32px;height:32px}
 .cff-bottom{flex-wrap:wrap;gap:10px;padding-block:20px 24px;font-size:11px}
 .cff-bottom>p{flex-basis:100%}
 .cff-bottom nav{flex:1;gap:0 16px}
 .cff-bottom nav a{padding:10px 0;min-height:44px}
 .cff-bottom nav a+a{border-left:0}
 .cff-top{align-self:flex-end}
}
@media(max-width:350px){.cff-brand strong{font-size:44px}.cff-brand small{font-size:8px}.cff-grid{gap:24px 16px}.cff-footer .cff-grid h2{font-size:16px}.cff-nav>a,.cff-submit>summary{font-size:13px}}

/* Homepage typography rhythm; interior-page footer sizing is preserved. */
.chm-home-active .cff-letter-copy h2{font-size:clamp(32px,3.1vw,44px)}
@media(max-width:760px){.chm-home-active .cff-letter-copy h2{font-size:34px}}
