/* Catholic Phonics canonical PUBLIC footer. HTML is generated from
   scripts/public-site-footer.template.html and verified by the Pages gate.
   Scoped rules override legacy root/public-info footer styles without
   modifying protected Admin navigation or app UI. */
footer.cp-site-footer[data-public-site-footer]{
  box-sizing:border-box;
  position:relative;
  isolation:isolate;
  width:min(1500px,calc(100% - 32px));
  max-width:1500px;
  margin:clamp(1.5rem,4vw,3.5rem) auto 0;
  padding:clamp(1.4rem,3.5vw,3rem);
  border:1px solid #132f53;
  border-top:3px solid #c8a13a;
  border-radius:16px 16px 0 0;
  color:#f8f5ed;
  background:#061d3f;
  background-image:radial-gradient(circle at 7% 0%,rgba(200,161,58,.15),transparent 36%),
    linear-gradient(135deg,#031226,#061d3f);
  box-shadow:0 -8px 30px rgba(6,29,63,.11);
  font:400 .91rem/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-align:left;
  overflow-wrap:break-word;
}
footer.cp-site-footer *,footer.cp-site-footer *::before,footer.cp-site-footer *::after{box-sizing:border-box}
footer.cp-site-footer .cp-footer-layout{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.7fr);
  gap:clamp(1.4rem,4vw,4rem);
  width:100%;
  max-width:100%;
  min-width:0;
  margin:0 auto;
}
footer.cp-site-footer .cp-footer-about{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.6rem;
  min-width:0;
  margin:0;
  padding:0;
  text-align:left;
}
footer.cp-site-footer h2{
  margin:0;
  color:#ead9a2;
  font:700 .95rem/1.4 Georgia,"Times New Roman",serif;
  text-transform:none;
  letter-spacing:.025em;
}
footer.cp-site-footer #cp-footer-brand{
  color:#fff;
  font:750 clamp(1.3rem,1.65vw,1.65rem)/1.2 Georgia,"Times New Roman",serif;
  letter-spacing:0;
}
footer.cp-site-footer .cp-footer-tagline{
  margin:0;
  color:#ead9a2;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
footer.cp-site-footer .cp-footer-about p,
footer.cp-site-footer .cp-footer-about address,
footer.cp-site-footer .cp-footer-bottom p{
  margin:0;
  color:#e4e8ef;
  font-style:normal;
  font-size:.87rem;
  line-height:1.6;
}
footer.cp-site-footer .cp-footer-about address{color:#fff}
footer.cp-site-footer .cp-footer-email{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  width:fit-content;
  max-width:100%;
  padding:3px 0;
  color:#ead9a2;
  font-weight:800;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:.18em;
  overflow-wrap:anywhere;
}
footer.cp-site-footer .cp-footer-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:.6rem;
  margin:.5rem 0 0;
  width:100%;
  min-width:0;
}
footer.cp-site-footer .cp-footer-actions a{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  width:auto;
  max-width:100%;
  min-height:44px;
  padding:.6rem .85rem;
  border:1px solid #c8a13a;
  border-radius:8px;
  color:#fff;
  background:rgba(255,255,255,.065);
  font-size:.83rem;
  font-weight:750;
  text-align:center;
  text-decoration:none;
  line-height:1.4;
}
footer.cp-site-footer .cp-footer-actions a:first-child{
  color:#031226;
  background:#ead9a2;
}
footer.cp-site-footer .cp-footer-actions a:hover{
  color:#031226;
  background:#f7e8b7;
}
footer.cp-site-footer nav.cp-footer-navigation{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;
  justify-content:stretch;
  width:100%;
  max-width:none;
  min-width:0;
  margin:0;
  padding:0;
  gap:clamp(.9rem,2.3vw,2rem);
  border:0;
  background:none;
  box-shadow:none;
  text-align:left;
}
footer.cp-site-footer .cp-footer-group{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:0;
  min-width:0;
  margin:0;
  padding:0;
}
footer.cp-site-footer .cp-footer-group h2{
  margin:0 0 .7rem;
  color:#ead9a2;
  font:800 .75rem/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;
  letter-spacing:.09em;
  text-transform:uppercase;
}
footer.cp-site-footer nav.cp-footer-navigation a{
  display:flex;
  justify-content:flex-start;
  align-items:center;
  min-height:44px;
  width:100%;
  min-width:0;
  padding:.5rem .2rem;
  border:0;
  border-radius:5px;
  color:#fff;
  background:none;
  font:650 .88rem/1.35 system-ui,-apple-system,"Segoe UI",sans-serif;
  text-decoration:none;
  text-align:left;
  white-space:normal;
  overflow-wrap:break-word;
}
footer.cp-site-footer nav.cp-footer-navigation a:hover{
  color:#ead9a2;
  text-decoration:underline;
  text-underline-offset:.2em;
}
footer.cp-site-footer a:focus-visible{
  outline:3px solid #ead9a2;
  outline-offset:3px;
}
footer.cp-site-footer .cp-footer-bottom{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem 1.5rem;
  width:100%;
  min-width:0;
  margin:clamp(1.5rem,4vw,3rem) 0 0;
  padding:1rem 0 0;
  border-top:1px solid rgba(234,217,162,.35);
  text-align:left;
}
footer.cp-site-footer .cp-footer-bottom p{
  color:#e4e8ef;
  font-size:.75rem;
  max-width:none;
}
@media(max-width:1050px){
  footer.cp-site-footer .cp-footer-layout{grid-template-columns:minmax(0,1fr)}
  footer.cp-site-footer nav.cp-footer-navigation{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}
}
@media(max-width:640px){
  footer.cp-site-footer{
    width:calc(100% - 14px);
    margin:1.5rem auto 0;
    padding:1.15rem max(.9rem,env(safe-area-inset-right)) calc(1.5rem + env(safe-area-inset-bottom)) max(.9rem,env(safe-area-inset-left));
    border-radius:14px 14px 0 0;
  }
  footer.cp-site-footer .cp-footer-layout{gap:1.65rem}
  footer.cp-site-footer nav.cp-footer-navigation{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1.25rem .8rem;
  }
  footer.cp-site-footer .cp-footer-group:last-child{grid-column:1 / -1}
  footer.cp-site-footer .cp-footer-group:last-child{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:.75rem;
    align-content:start;
  }
  footer.cp-site-footer .cp-footer-group:last-child h2{grid-column:1 / -1}
  footer.cp-site-footer .cp-footer-actions a{flex:1 1 100%;width:100%}
  footer.cp-site-footer .cp-footer-bottom{flex-direction:column;align-items:flex-start;gap:.5rem}
}
@media(max-width:350px){
  footer.cp-site-footer nav.cp-footer-navigation{
    grid-template-columns:minmax(0,1fr);
    gap:.75rem;
  }
  footer.cp-site-footer .cp-footer-group:last-child{grid-column:auto}
}
