/* CPM Footer — site map layout. Solid background #111617 (Jamie, Oct 14 2026). */
.cpm-ft{
  --ft-bg:#111617; --ft-line:rgba(255,255,255,.1); --ft-text:rgba(255,255,255,.7); --ft-dim:rgba(255,255,255,.55); --ft-head:#fff;
  --ft-red:#D71120; --ft-ease:cubic-bezier(.22,.8,.24,1);
  background:var(--ft-bg); color:var(--ft-text); font-family:Poppins,system-ui,sans-serif; -webkit-font-smoothing:antialiased;
  padding:88px 0 112px; /* bottom room for the floating menu dock */
}
.elementor-widget-cpm-footer .cpm-footer.cpm-ft{background:var(--ft-bg)}
.cpm-ft *,.cpm-ft *::before,.cpm-ft *::after{box-sizing:border-box}
.cpm-ft,.cpm-ft *{text-align:left !important}
.cpm-ft a{color:inherit;text-decoration:none}
.cpm-ft p,.cpm-ft ul{margin:0;padding:0}
.cpm-ft ul{list-style:none}
.cpm-ft svg{width:17px;height:17px;flex:none}
.cpm-ft :focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:6px}
.cpm-ft .cpm-ft-shell{width:calc(100% - 96px);max-width:1440px;margin:0 auto;display:grid}
.cpm-ft-kicker{display:block;margin-bottom:14px;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ft-red)}

/* Band 1 — closing statement + newsletter */
.cpm-ft-top{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:40px 80px;align-items:end;padding-bottom:56px;border-bottom:1px solid var(--ft-line)}
.cpm-ft .cpm-ft-h{margin:0 !important;font-family:Poppins,system-ui,sans-serif !important;font-size:clamp(34px,3.9vw,60px) !important;font-weight:800 !important;line-height:1 !important;white-space:nowrap;letter-spacing:-.045em !important;color:var(--ft-head) !important;text-transform:none !important}
.cpm-ft-cta-act{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:30px}
.cpm-ft-cta-act small{font-size:13px;color:var(--ft-dim)}
.cpm-ft-btn{display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 24px;border-radius:999px;background:var(--ft-red);color:#fff !important;font-size:15px;font-weight:600;transition:background .2s,gap .25s var(--ft-ease),box-shadow .25s}
.cpm-ft-btn:hover{background:#e8202f;gap:14px;box-shadow:0 12px 34px -12px rgba(215,17,32,.8)}
.cpm-ft-news{padding-left:40px;border-left:1px solid var(--ft-line);min-width:0}
.cpm-ft .cpm-ft-news-title{font-size:19px;font-weight:700;line-height:1.3;letter-spacing:-.01em;color:var(--ft-head)}
.cpm-ft .cpm-ft-news-body{margin-top:8px;font-size:14px;line-height:1.6}
.cpm-ft-news-form{margin-top:20px;min-width:0}
.cpm-ft-news-form .elementor,.cpm-ft-news-form .elementor-element,.cpm-ft-news-form .e-con,.cpm-ft-news-form .e-con-inner,.cpm-ft-news-form .elementor-section,.cpm-ft-news-form .elementor-container,.cpm-ft-news-form .elementor-widget-wrap{margin:0 !important;padding:0 !important;min-height:0 !important;background:none !important;gap:0 !important}
.cpm-ft-news-form .elementor-form-fields-wrapper{display:flex;flex-wrap:nowrap;gap:8px;margin:0 !important}
.cpm-ft-news-form .elementor-field-group{margin:0 !important;padding:0 !important;flex:1 1 auto;width:auto !important}
.cpm-ft-news-form .elementor-field-type-submit{flex:0 0 auto}
.cpm-ft-news-form input.elementor-field{height:48px !important;min-height:0 !important;padding:0 18px !important;border-radius:999px !important;border:0 !important;background:rgba(255,255,255,.07) !important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14) !important;color:#fff !important;font:400 14px/1 Poppins,system-ui,sans-serif !important}
.cpm-ft-news-form input.elementor-field::placeholder{color:var(--ft-dim) !important}
.cpm-ft-news-form input.elementor-field:focus{box-shadow:inset 0 0 0 1px #fff !important}
.cpm-ft-news-form .elementor-button{height:48px !important;min-height:0 !important;padding:0 20px !important;border-radius:999px !important;background:#fff !important;color:#111617 !important;font:600 13px/1 Poppins,system-ui,sans-serif !important;text-transform:none !important;letter-spacing:.01em !important;white-space:nowrap}
.cpm-ft-news-form .elementor-button:hover{background:#e9ecec !important}
.cpm-ft-news-form .elementor-message{color:var(--ft-text);font-size:13px;margin-top:8px}

/* Band 2 — brand + menu sections */
.cpm-ft-main{display:grid;grid-template-columns:minmax(170px,.9fr) minmax(0,6.6fr);gap:32px 48px;padding:48px 0 40px}
.cpm-ft-logo{display:block;width:max-content;margin-bottom:18px}
.cpm-ft-logo img{display:block;width:120px;height:auto}
.cpm-ft .cpm-ft-statement{max-width:240px;font-size:14px;font-weight:500;line-height:1.55;color:var(--ft-text)}
.cpm-ft-nav{display:grid;grid-template-columns:repeat(var(--cpm-ft-cols,6),minmax(0,1fr));gap:28px 24px}
.cpm-ft-group summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;padding-top:12px;border-top:2px solid var(--ft-red);width:100%;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ft-head);cursor:pointer}
.cpm-ft-group summary::-webkit-details-marker{display:none}
.cpm-ft-group summary svg{width:16px;height:16px;color:var(--ft-dim);transition:transform .35s var(--ft-ease)}
.cpm-ft-group[open] summary svg{transform:rotate(180deg)}
.cpm-ft-group ul{display:grid;gap:1px}
.cpm-ft-group a{display:block;padding:5px 0;font-size:14px;line-height:1.4;color:var(--ft-text);transition:color .2s,transform .25s var(--ft-ease)}
.cpm-ft-group a:hover{color:#fff;transform:translateX(3px)}

/* Band 3 — contact + legal */
.cpm-ft-bar{padding:20px 0;border-top:1px solid var(--ft-line)}
.cpm-ft-contact{display:flex;flex-wrap:wrap;gap:8px 30px}
.cpm-ft-contact a,.cpm-ft-contact .cpm-ft-loc{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--ft-text);transition:color .2s}
.cpm-ft-contact a:hover{color:#fff}
.cpm-ft-contact svg{color:var(--ft-red)}
.cpm-ft-legal{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding-top:16px;border-top:1px solid var(--ft-line);font-size:12px;line-height:1.6;color:var(--ft-dim)}
.cpm-ft-legal p{flex:1 1 420px;font-size:12px}
.cpm-ft-legal nav{display:flex;flex-wrap:wrap;gap:6px 18px}
.cpm-ft-legal nav a:hover{color:#fff}

@media (min-width:768px){
  .cpm-ft-group summary{pointer-events:none}
  .cpm-ft-group summary svg{display:none}
}
@media (max-width:1180px){
  .cpm-ft .cpm-ft-shell{width:calc(100% - 56px)}
  .cpm-ft-top{grid-template-columns:1fr}
  .cpm-ft-news{padding-left:0;border-left:0}
  .cpm-ft-main{grid-template-columns:1fr}
  .cpm-ft-nav{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:767px){
  .cpm-ft{padding:56px 0 112px}
  .cpm-ft .cpm-ft-shell{width:calc(100% - 40px)}
  .cpm-ft-top{padding-bottom:40px;gap:36px}
  .cpm-ft-news-form .elementor-form-fields-wrapper{flex-wrap:wrap}
  .cpm-ft-news-form .elementor-field-group,.cpm-ft-news-form .elementor-field-type-submit{flex:1 1 100%}
  .cpm-ft-news-form .elementor-button{width:100%;justify-content:center}
  .cpm-ft-main{padding:36px 0 24px}
  .cpm-ft-nav{grid-template-columns:1fr;gap:0}
  .cpm-ft-group{border-bottom:1px solid var(--ft-line)}
  .cpm-ft-group summary{margin:0;padding:17px 0;border-top:0;font-size:12px}
  .cpm-ft-group ul{padding:0 0 14px}
  .cpm-ft-group a{font-size:15px;padding:8px 0}
  .cpm-ft-contact{flex-direction:column;gap:12px}
}
@media (prefers-reduced-motion:reduce){.cpm-ft *{transition:none !important}}

@media (max-width:1180px){.cpm-ft .cpm-ft-h{white-space:normal}}
/* Value ticker in the contact row (matches the header pill) */
.cpm-ft-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 32px}
.cpm-ft-ticker{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 18px 0 16px;border-radius:999px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);color:var(--ft-text) !important;white-space:nowrap;transition:background .2s}
.cpm-ft-ticker:hover{background:rgba(255,255,255,.12)}
.cpm-ft-ticker i{width:7px;height:7px;border-radius:50%;background:var(--ft-red);flex:none;animation:cpmFtPulse 2.6s ease-out infinite}
@keyframes cpmFtPulse{0%{box-shadow:0 0 0 0 rgba(215,17,32,.6)}70%,100%{box-shadow:0 0 0 7px rgba(215,17,32,0)}}
.cpm-ft-ticker b{font-size:15px;font-weight:700;letter-spacing:-.01em;color:#fff;font-variant-numeric:tabular-nums}
.cpm-ft-ticker b *{font:inherit !important;color:inherit !important}
.cpm-ft-ticker > span{font-size:13px}
@media (max-width:767px){.cpm-ft-ticker{align-self:flex-start}}
@media (prefers-reduced-motion:reduce){.cpm-ft-ticker i{animation:none}}
