/* Footer redesign. All rules are scoped to the footer; no other page styles change. */
.footer.footer-modern{
  --footer-bg:#000000;
  --footer-text:#f5f5ec;
  --footer-muted:#adb7ae;
  --footer-line:#ffffff24;
  --footer-accent:#edc24d;
  position:relative;
  isolation:isolate;
  margin:0;
  padding:0 0 env(safe-area-inset-bottom,0px);
  border:0;
  background:var(--footer-bg);
  color:var(--footer-text);
}
.footer.footer-modern::before,
.footer.footer-modern::after{content:none}
.footer.footer-modern a{text-decoration:none}
.footer.footer-modern a:focus-visible,
.footer.footer-modern button:focus-visible{outline:2px solid var(--footer-accent);outline-offset:6px}
.footer.footer-modern .footer-modern-intro{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:48px;
  padding:64px 0 58px;
  border-bottom:1px solid var(--footer-line);
}
.footer.footer-modern .footer-modern-statement{min-width:0}
.footer.footer-modern .footer-modern-eyebrow{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 25px;
  color:#c1c9c0;
  font-size:.6875rem;
  font-weight:500;
  line-height:1.7;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.footer.footer-modern .footer-modern-eyebrow>span{
  width:6px;
  height:6px;
  flex:0 0 6px;
  border-radius:50%;
  background:var(--footer-accent);
}
.footer.footer-modern .footer-modern-title{
  margin:0;
  color:var(--footer-text);
  font-size:clamp(2.6rem,5.8vw,5.5rem);
  font-weight:500;
  line-height:1.045;
  letter-spacing:-.055em;
}
.footer.footer-modern .footer-modern-title>span{color:var(--footer-accent)}
.footer.footer-modern .footer-modern-cta{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:19px;
  flex-shrink:0;
  margin:20px 38px 0 0;
  color:var(--footer-text);
  border-radius:4px;
}
.footer.footer-modern .footer-modern-cta-icon{
  display:grid;
  place-items:center;
  width:124px;
  height:124px;
  border:1px solid var(--footer-accent);
  border-radius:50%;
  background:var(--footer-accent);
  color:var(--footer-bg);
  transition:background .22s ease,transform .22s ease;
}
.footer.footer-modern .footer-modern-cta-icon>svg{
  display:block;
  width:47px;
  height:47px;
  transition:transform .22s ease;
}
.footer.footer-modern .footer-modern-cta-label{font-size:.9375rem;font-weight:500;line-height:1.5;letter-spacing:-.015em}
.footer.footer-modern .footer-modern-cta:hover{color:var(--footer-text)}
.footer.footer-modern .footer-modern-cta:hover .footer-modern-cta-icon{background:#f5d373;transform:scale(1.04)}
.footer.footer-modern .footer-modern-cta:hover svg{transform:translate(3px,-3px)}
.footer.footer-modern .footer-modern-grid{
  display:grid;
  grid-template-columns:1.1fr 1.05fr 1fr 1.18fr;
  gap:42px;
  align-items:start;
  padding:43px 0 39px;
}
.footer.footer-modern .footer-modern-grid>*{min-width:0}
.footer.footer-modern .footer-brand{
  display:block;
  position:relative;
  grid-column:auto;
  grid-row:auto;
  width:175px;
  max-width:100%;
  margin:-14px 0 16px;
  align-self:auto;
  justify-self:auto;
}
.footer.footer-modern .footer-brand>img,
.footer.footer-modern .footer-brand>.brand-motion{filter:none}
.footer.footer-modern .footer-modern-address{
  margin:0;
  color:var(--footer-muted);
  font-size:.875rem;
  font-weight:400;
  font-style:normal;
  line-height:1.9;
}
.footer.footer-modern .footer-modern-address strong{font-size:inherit;color:#d9e0d7;font-weight:500}
.footer.footer-modern .footer-modern-heading{
  margin:0 0 23px;
  color:#c4ccc1;
  font-size:.625rem;
  font-weight:600;
  line-height:1.6;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.footer.footer-modern .footer-modern-heading a{color:inherit}
.footer.footer-modern .footer-modern-phone{
  display:block;
  width:fit-content;
  max-width:100%;
  margin:0 0 7px;
  padding:0;
  color:var(--footer-text);
  font-size:clamp(1.0625rem,1.55vw,1.4rem);
  font-weight:500;
  line-height:1.6;
  letter-spacing:-.035em;
  white-space:nowrap;
}
.footer.footer-modern .footer-modern-email{
  display:inline-block;
  max-width:100%;
  color:#d7dfd5;
  font-size:.875rem;
  line-height:1.85;
  overflow-wrap:anywhere;
}
.footer.footer-modern .footer-modern-hours{display:flex;align-items:flex-start;gap:10px;margin:26px 0 0}
.footer.footer-modern .footer-modern-hours>svg{flex:0 0 17px;width:17px;height:17px;margin-top:2px;color:#b0bba8}
.footer.footer-modern .footer-modern-hours p{margin:0;color:#d8dfd5;font-size:.75rem;line-height:1.8}
.footer.footer-modern .footer-modern-hours p>span{display:block;margin:0 0 2px;color:var(--footer-muted);font-size:.6875rem}
.footer.footer-modern .footer-modern-services>a{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:13px;
  min-height:41px;
  padding:8px 0;
  border-bottom:1px solid #ffffff12;
  color:#e1e5da;
  font-size:.875rem;
  line-height:1.6;
}
.footer.footer-modern .footer-modern-services>a>span{min-width:0;hyphens:auto}
.footer.footer-modern .footer-modern-services>a:first-of-type{padding-top:0}
.footer.footer-modern .footer-modern-services>a:last-child{border-bottom:0}
.footer.footer-modern .footer-modern-services>a>svg{
  flex:0 0 15px;
  width:15px;
  height:15px;
  color:#939f90;
  transition:transform .2s,color .2s;
}
.footer.footer-modern .footer-modern-services>a:hover>svg{color:var(--footer-accent);transform:translate(2px,-2px)}
.footer.footer-modern .footer-modern-counties{display:grid;gap:9px;list-style:none;margin:0;padding:0}
.footer.footer-modern .footer-modern-counties li{
  display:flex;
  align-items:center;
  gap:9px;
  margin:0;
  color:#e1e5da;
  font-size:.875rem;
  line-height:1.4;
}
.footer.footer-modern .footer-modern-counties li::before{content:"";flex:0 0 3px;width:3px;height:3px;background:var(--footer-accent);border-radius:50%}
.footer.footer-modern .footer-modern-area-note{margin:16px 0 10px;color:var(--footer-muted);font-size:.75rem;line-height:1.8}
.footer.footer-modern .footer-modern-area-link{display:inline-flex;align-items:center;gap:9px;min-height:32px;color:#d7d6b2;font-size:.75rem;line-height:1.6}
.footer.footer-modern .footer-modern-area-link>svg{width:13px;height:13px;flex:0 0 13px}
.footer.footer-modern .footer-bottom{
  display:flex;
  flex-direction:row;
  justify-content:space-between;
  align-items:center;
  gap:18px 26px;
  padding:17px 0 21px;
  border-top:1px solid var(--footer-line);
  color:#a3afa1;
  font-size:.6875rem;
  line-height:1.6;
}
.footer.footer-modern .footer-bottom>div{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px 22px}
.footer.footer-modern .footer-bottom a,
.footer.footer-modern .footer-bottom button{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  margin:0;
  padding:0;
  border:0;
  background:none;
  color:#b8c3b4;
  font:inherit;
  line-height:inherit;
  text-decoration:none;
  cursor:pointer;
}
.footer.footer-modern .footer-bottom .to-top{order:1;gap:9px}
.footer.footer-modern .footer-bottom .to-top>span{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border:1px solid #ffffff30;
  border-radius:50%;
  color:#e3e9dc;
  font-size:1rem;
  transition:background .2s,color .2s;
}
.footer.footer-modern .footer-bottom .to-top:hover>span{background:var(--footer-accent);color:var(--footer-bg);border-color:var(--footer-accent)}
.footer.footer-modern a:hover,
.footer.footer-modern .footer-bottom a:hover,
.footer.footer-modern .footer-bottom button:hover{color:var(--footer-accent)}
@media(max-width:1100px){
  .footer.footer-modern .footer-modern-grid{gap:28px;grid-template-columns:1fr 1fr 1fr 1.1fr}
  .footer.footer-modern .footer-modern-phone{font-size:1.125rem}
  .footer.footer-modern .footer-modern-cta{margin-right:16px}
  .footer.footer-modern .footer-bottom{flex-wrap:wrap}
}
@media(max-width:900px){
  .footer.footer-modern .footer-modern-intro{gap:24px;padding:52px 0 45px}
  .footer.footer-modern .footer-modern-title{font-size:clamp(2.7rem,6.4vw,3.8rem)}
  .footer.footer-modern .footer-modern-cta{margin-right:6px}
  .footer.footer-modern .footer-modern-cta-icon{width:94px;height:94px}
  .footer.footer-modern .footer-modern-cta-icon>svg{width:37px;height:37px}
  .footer.footer-modern .footer-modern-cta-label{font-size:.8125rem}
  .footer.footer-modern .footer-modern-grid{grid-template-columns:1fr 1fr;gap:35px 60px;padding:37px 0}
  .footer.footer-modern .footer-modern-brand-block{grid-column:1;grid-row:1}
  .footer.footer-modern .footer-modern-contact{grid-column:2;grid-row:1;padding-top:6px}
  .footer.footer-modern .footer-modern-services{grid-column:1;grid-row:2}
  .footer.footer-modern .footer-modern-area{grid-column:2;grid-row:2}
  .footer.footer-modern .footer-modern-brand-block .footer-brand{margin-bottom:10px}
  .footer.footer-modern .footer-modern-phone{font-size:1.4rem}
  .footer.footer-modern .footer-modern-heading{margin-bottom:18px}
  .footer.footer-modern .footer-modern-services>a{font-size:.875rem;min-height:45px}
  .footer.footer-modern .footer-modern-counties li{font-size:.875rem}
  .footer.footer-modern .footer-bottom{flex-direction:column;align-items:flex-start;gap:9px;padding:20px 0}
  .footer.footer-modern .footer-bottom>div{width:100%;justify-content:flex-start;gap:8px 22px}
  .footer.footer-modern .footer-bottom .to-top{margin-left:auto}
}
@media(max-width:600px){
  .footer.footer-modern .footer-modern-intro{display:block;padding:40px 0 31px}
  .footer.footer-modern .footer-modern-eyebrow{gap:8px;margin-bottom:23px;font-size:.59375rem;letter-spacing:.085em}
  .footer.footer-modern .footer-modern-title{font-size:clamp(2.1rem,9.4vw,3.5rem);line-height:1.1;letter-spacing:-.05em}
  .footer.footer-modern .footer-modern-cta{
    flex-direction:row-reverse;
    justify-content:space-between;
    gap:20px;
    width:100%;
    margin:28px 0 0;
    padding:10px 11px 10px 20px;
    border:1px solid var(--footer-accent);
    border-radius:8px;
    background:var(--footer-accent);
    color:var(--footer-bg);
  }
  .footer.footer-modern .footer-modern-cta-label{font-size:.9375rem;font-weight:600}
  .footer.footer-modern .footer-modern-cta-icon{width:36px;height:36px;flex:0 0 36px;border:1px solid #10171340;background:none}
  .footer.footer-modern .footer-modern-cta-icon>svg{width:19px;height:19px}
  .footer.footer-modern .footer-modern-cta:hover{color:var(--footer-bg);background:#f5d373}
  .footer.footer-modern .footer-modern-grid{grid-template-columns:1fr 1fr;gap:28px 22px;padding:30px 0}
  .footer.footer-modern .footer-modern-grid>*{grid-column:auto;grid-row:auto}
  .footer.footer-modern .footer-modern-brand-block{display:flex;align-items:center;gap:17px;grid-column:1/-1}
  .footer.footer-modern .footer-modern-brand-block .footer-brand{width:115px;flex:0 0 115px;margin:0}
  .footer.footer-modern .footer-modern-address{font-size:.75rem;line-height:1.85}
  .footer.footer-modern .footer-modern-address strong{font-size:.75rem}
  .footer.footer-modern .footer-modern-contact{grid-column:1/-1;padding:24px 0 0;border-top:1px solid var(--footer-line)}
  .footer.footer-modern .footer-modern-contact .footer-modern-heading{margin-bottom:10px}
  .footer.footer-modern .footer-modern-phone{font-size:1.5rem;margin-bottom:1px}
  .footer.footer-modern .footer-modern-email{min-height:32px;font-size:.875rem;line-height:2}
  .footer.footer-modern .footer-modern-hours{margin-top:12px;gap:8px}
  .footer.footer-modern .footer-modern-hours p{font-size:.75rem}
  .footer.footer-modern .footer-modern-hours p>span{display:inline;margin-right:7px;font-size:.6875rem}
  .footer.footer-modern .footer-modern-services,
  .footer.footer-modern .footer-modern-area{padding-top:22px;border-top:1px solid var(--footer-line)}
  .footer.footer-modern .footer-modern-heading{margin-bottom:15px;font-size:.59375rem;letter-spacing:.1em}
  .footer.footer-modern .footer-modern-services>a{font-size:.8125rem;min-height:43px;gap:5px;line-height:1.65}
  .footer.footer-modern .footer-modern-services>a>svg{flex-basis:12px;width:12px;height:12px}
  .footer.footer-modern .footer-modern-counties{gap:10px}
  .footer.footer-modern .footer-modern-counties li{font-size:.8125rem;gap:6px;line-height:1.5}
  .footer.footer-modern .footer-modern-area-note{font-size:.75rem;line-height:1.8;margin-top:14px}
  .footer.footer-modern .footer-modern-area-link{align-items:flex-start;gap:5px;font-size:.75rem;line-height:1.6}
  .footer.footer-modern .footer-modern-area-link>svg{width:12px;height:12px;flex-basis:12px;margin-top:3px}
  .footer.footer-modern .footer-bottom{font-size:.6875rem;gap:11px;padding:20px 0 22px}
  .footer.footer-modern .footer-bottom>div{gap:3px 17px}
  .footer.footer-modern .footer-bottom a,
  .footer.footer-modern .footer-bottom button{min-height:40px}
  .footer.footer-modern .footer-bottom .to-top{gap:7px;margin-left:auto}
  .footer.footer-modern .footer-bottom .to-top>span{width:27px;height:27px}
}
@media(max-width:360px){
  .footer.footer-modern .footer-modern-eyebrow{font-size:.5625rem;letter-spacing:.04em}
  .footer.footer-modern .footer-modern-brand-block{gap:11px}
  .footer.footer-modern .footer-modern-brand-block .footer-brand{width:90px;flex-basis:90px}
  .footer.footer-modern .footer-modern-grid{gap:26px 15px}
  .footer.footer-modern .footer-modern-services>a,
  .footer.footer-modern .footer-modern-counties li{font-size:.75rem}
  .footer.footer-modern .footer-bottom>div{gap:0 14px}
}
@media(prefers-reduced-motion:reduce){
  .footer.footer-modern .footer-modern-cta-icon,
  .footer.footer-modern .footer-modern-cta-icon>svg,
  .footer.footer-modern .footer-modern-services>a>svg,
  .footer.footer-modern .footer-bottom .to-top>span{transition:none}
}
