/* One contact and footer composition; other page sections retain their own styles. */
footer.site-footer.contact-footer{display:block;box-sizing:border-box;width:100%;max-width:1256px;margin:36px auto 0;padding:32px 0 24px;border-top:1px solid #e5dfe4;color:#29242b;font-family:Arial,Helvetica,sans-serif;font-size:14px;font-weight:500;line-height:1.5}
footer.site-footer.contact-footer *{box-sizing:border-box}
footer.site-footer.contact-footer .cf-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr) minmax(0,1fr);gap:clamp(24px,4vw,58px);align-items:start}
footer.site-footer.contact-footer .cf-brand,footer.site-footer.contact-footer .cf-contact,footer.site-footer.contact-footer .cf-office{min-width:0}
footer.site-footer.contact-footer .cf-contact,footer.site-footer.contact-footer .cf-office{margin:0;padding:0;border:0;background:transparent}
footer.site-footer.contact-footer .sf-brand{margin:0;color:#232128;font-family:inherit;font-size:23px;font-weight:700;line-height:31.2px;letter-spacing:.02em}
footer.site-footer.contact-footer .sf-partner{position:static;display:block;width:220px;max-width:100%;height:auto;margin:14px 0 0;object-fit:contain;object-position:left top}
footer.site-footer.contact-footer .cf-heading{margin:0 0 12px;color:#232128;font-family:inherit;font-size:16px;font-weight:700;line-height:1.3;letter-spacing:0;text-transform:none}
footer.site-footer.contact-footer .cf-messengers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-width:390px}
footer.site-footer.contact-footer .cf-messengers a{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:44px;padding:6px 5px;border:1px solid #ded6dc;border-radius:9px;background:#fff;color:#29242b;font-size:12px;font-weight:600;line-height:1.2;text-align:center;text-decoration:none}
footer.site-footer.contact-footer .cf-messengers a span{display:inline-flex;align-items:center;justify-content:center;order:-1;color:#9c007b}
footer.site-footer.contact-footer .cf-messengers svg{display:block;width:14px;height:14px;flex:0 0 14px}
footer.site-footer.contact-footer .cf-contact-lines{display:grid;grid-template-columns:1fr;gap:0;margin-top:8px}
footer.site-footer.contact-footer .cf-contact-lines a{display:flex;align-items:center;width:fit-content;max-width:100%;min-height:44px;color:#29242b;font-size:15px;font-weight:600;line-height:1.35;overflow-wrap:anywhere;text-decoration:none}
footer.site-footer.contact-footer .cf-office address{display:block;max-width:none;margin:0 0 4px;color:#29242b;font-size:14px;font-style:normal;font-weight:500;line-height:1.5}
footer.site-footer.contact-footer .service-hours{display:block;position:relative;z-index:2;width:100%;max-width:100%;margin:0;padding:0;border:0}
footer.site-footer.contact-footer .service-hours>summary{display:inline-flex;align-items:center;justify-content:flex-start;gap:9px;width:auto;height:auto;min-height:44px;margin:0;padding:0;border:0;border-radius:5px;background:transparent;list-style:none;cursor:pointer}
footer.site-footer.contact-footer .service-hours>summary::-webkit-details-marker{display:none}
footer.site-footer.contact-footer .service-hours>summary:hover,footer.site-footer.contact-footer .service-hours[open]>summary{border:0;background:transparent}
footer.site-footer.contact-footer .hours-summary-text{display:flex;flex-direction:row;align-items:center;gap:9px}
footer.site-footer.contact-footer .hours-summary-title{color:#29242b;font-size:14px;font-weight:600}
footer.site-footer.contact-footer .hours-status{display:flex;align-items:center;gap:6px;color:#706b74;font-size:12px;font-weight:500}
footer.site-footer.contact-footer .hours-chevron{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border-radius:7px;background:#f3edf2;color:#8b006d}
footer.site-footer.contact-footer .hours-popover{position:static;width:100%;max-width:360px;margin:3px 0 12px}
footer.site-footer.contact-footer .cf-maps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%;margin-top:8px}
footer.site-footer.contact-footer .cf-maps a{display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;padding:5px 3px;border:1px solid #d4d0d3;border-radius:9px;background:#e8e6e8;color:#232128;font-size:12px;font-weight:600;line-height:1.2;text-align:center;text-decoration:none;overflow-wrap:normal}
@media(hover:hover){footer.site-footer.contact-footer :is(.cf-messengers a,.cf-maps a):hover{border-color:#a75291;background:#f6eff4}footer.site-footer.contact-footer .cf-contact-lines a:hover,footer.site-footer.contact-footer .cf-bottom a:hover{color:#8b006d;text-decoration:underline;text-underline-offset:3px}}
footer.site-footer.contact-footer a:focus-visible,footer.site-footer.contact-footer summary:focus-visible{outline:2px solid #9c007b;outline-offset:3px;border-radius:4px}
footer.site-footer.contact-footer .cf-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;margin-top:24px;padding-top:16px;border-top:1px solid #e7dfe5;color:#625c64;font-size:13px;line-height:1.5}
footer.site-footer.contact-footer .cf-bottom .sf-copyright{margin:0;color:inherit;font:inherit;overflow-wrap:break-word}
footer.site-footer.contact-footer .cf-bottom .sf-copyright-inn{display:inline-block;color:inherit;font:inherit;white-space:nowrap}
footer.site-footer.contact-footer .cf-legal{display:flex;flex-wrap:wrap;gap:4px 18px}
footer.site-footer.contact-footer .cf-legal a{display:inline-flex;align-items:center;min-height:44px;color:inherit;font:inherit;text-decoration:none}
footer.site-footer.contact-footer .cf-disclaimer{margin:12px 0 0;color:#706b74;font-size:12px;font-weight:400;line-height:1.45}
@media(max-width:900px){footer.site-footer.contact-footer .cf-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}footer.site-footer.contact-footer .cf-brand{grid-column:1/-1}}
@media(max-width:600px){footer.site-footer.contact-footer{padding:26px 0 70px}footer.site-footer.contact-footer .cf-grid{grid-template-columns:minmax(0,1fr);gap:22px}footer.site-footer.contact-footer .cf-brand{grid-column:auto}footer.site-footer.contact-footer .sf-partner{margin-top:10px}footer.site-footer.contact-footer .cf-heading{margin-bottom:8px}footer.site-footer.contact-footer .cf-messengers{max-width:none}footer.site-footer.contact-footer .cf-messengers a{flex-direction:column;gap:2px;min-height:52px;padding:5px 2px;font-size:12px}footer.site-footer.contact-footer .cf-bottom{align-items:flex-start;gap:8px;margin-top:20px;padding-top:14px}footer.site-footer.contact-footer .cf-legal{gap:0 16px}}

/* Contact information and corresponding actions share two aligned rows. */
footer.site-footer.contact-footer .cf-grid{grid-template-columns:minmax(0,.9fr) repeat(2,minmax(0,1.15fr));grid-template-areas:". heading office" "brand contact office" "partner messenger maps";column-gap:clamp(24px,4vw,58px);row-gap:0}
footer.site-footer.contact-footer .cf-brand{display:contents}
footer.site-footer.contact-footer .sf-brand{grid-area:brand;align-self:baseline}
footer.site-footer.contact-footer .sf-partner{grid-area:partner;align-self:center;margin:12px 0 0}
footer.site-footer.contact-footer :is(.cf-contact,.cf-office){display:contents}
footer.site-footer.contact-footer .cf-contact-lines{display:contents}
footer.site-footer.contact-footer .cf-contact-title{grid-area:heading;text-align:center;margin:0 0 8px;color:#232128;font-family:inherit;font-size:14px;font-weight:700;line-height:1.2;letter-spacing:0}
footer.site-footer.contact-footer .cf-contact-values{grid-area:contact;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-self:baseline;min-width:0}
footer.site-footer.contact-footer .cf-contact-values a{justify-content:center;width:100%;min-width:0;font-size:clamp(12px,.95vw,14px);letter-spacing:-.015em;white-space:nowrap;text-align:center}
footer.site-footer.contact-footer .cf-office-info{grid-area:office;align-self:end;min-width:0}
footer.site-footer.contact-footer .cf-messengers{grid-area:messenger;width:100%;max-width:none;margin:12px 0 0}
footer.site-footer.contact-footer .cf-maps{grid-area:maps;margin:12px 0 0}
footer.site-footer.contact-footer :is(.cf-messengers,.cf-maps){gap:7px;align-items:stretch}
footer.site-footer.contact-footer :is(.cf-messengers,.cf-maps) a{min-height:44px}
footer.site-footer.contact-footer .cf-messengers a{border-color:#d9b9d0;background:#faf2f8;color:#6e0057}
footer.site-footer.contact-footer .cf-maps a{border-color:#e0dddf;background:#f3f2f3;color:#403b40}
@media(max-width:1100px){footer.site-footer.contact-footer .cf-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"brand" "contact" "messenger" "office" "maps";gap:14px}footer.site-footer.contact-footer .cf-brand{display:block;grid-area:brand}footer.site-footer.contact-footer .sf-partner{margin:14px 0 0}footer.site-footer.contact-footer .cf-contact-lines{display:block;grid-area:contact}footer.site-footer.contact-footer .cf-contact-values{grid-template-columns:minmax(0,1fr);gap:0}footer.site-footer.contact-footer .cf-contact-values a{justify-content:flex-start;font-size:15px;letter-spacing:normal;text-align:left}footer.site-footer.contact-footer .cf-office-info{align-self:stretch}footer.site-footer.contact-footer :is(.cf-messengers,.cf-maps){margin:0}}
@media(max-width:600px){footer.site-footer.contact-footer .sf-partner{margin-top:10px}footer.site-footer.contact-footer :is(.cf-messengers,.cf-maps) a{min-height:52px}footer.site-footer.contact-footer .cf-maps a{padding:5px 2px}}

/* Keep the office content independent of the contact rows when hours expand. */
@media(min-width:1101px){
  footer.site-footer.contact-footer .sf-brand{position:relative;top:4px}
  footer.site-footer.contact-footer .cf-grid{grid-template-rows:max-content max-content minmax(0,1fr)}
  footer.site-footer.contact-footer .cf-office{display:flex;grid-column:3;grid-row:1 / 4;flex-direction:column;justify-content:flex-end;align-self:stretch;min-width:0}
  footer.site-footer.contact-footer .cf-office-info{grid-area:auto;align-self:stretch}
  footer.site-footer.contact-footer .sf-partner{align-self:start;margin-top:16.8px}
  footer.site-footer.contact-footer .cf-maps{grid-area:auto;margin:12px 0 0}
}
/* Matching neutral action controls inside the shared footer. */
footer.site-footer.contact-footer :is(.cf-messengers a,.cf-maps a){border-color:#d4d0d3;background:#e8e6e8;color:#232128;font-weight:600}
footer.site-footer.contact-footer .cf-messengers a span{color:#232128}
footer.site-footer.contact-footer .cf-office address{font-weight:600}
@media(hover:hover){footer.site-footer.contact-footer :is(.cf-messengers a,.cf-maps a):hover{border-color:#b8b4b7;background:#d9d5d8;color:#232128}}

/* Office actions follow the same reading order as the visible layout. */
footer.site-footer.contact-footer .service-hours>summary{display:flex;width:fit-content;margin-inline:auto}
footer.site-footer.contact-footer .cf-office>address{grid-area:address;margin:4px 0 0;text-align:center}
@media(min-width:1101px){
  footer.site-footer.contact-footer .cf-office-info{height:calc(1.2em + 8px)}
  footer.site-footer.contact-footer .service-hours{height:1.2em}
  footer.site-footer.contact-footer .service-hours>summary{min-height:44px;transform:translateY(calc((1.2em - 44px)/2))}
  footer.site-footer.contact-footer .cf-office>address{display:flex;align-items:center;justify-content:center;min-height:44px;margin:0}
  footer.site-footer.contact-footer .hours-popover{position:absolute;left:50%;right:auto;top:calc(100% + 4px);transform:translateX(-50%);width:min(100%,360px);margin:0}
}
@media(max-width:1100px){footer.site-footer.contact-footer .cf-grid{grid-template-areas:"brand" "contact" "messenger" "office" "address" "maps"}footer.site-footer.contact-footer .cf-grid:not(:has(.service-hours)){grid-template-areas:"brand" "contact" "messenger" "address" "maps"}footer.site-footer.contact-footer .cf-office>address{margin:0}}

/* The address links to directions without changing the footer layout. */
footer.site-footer.contact-footer .cf-office>address a{color:inherit;font:inherit;text-decoration:none;text-underline-offset:3px}
@media(hover:hover){footer.site-footer.contact-footer .cf-office>address a:hover{color:#8b006d;text-decoration:underline}}
footer.site-footer.contact-footer .cf-office>address a:focus-visible{color:#8b006d;text-decoration:underline}

/* Quiet action grids share the thin-rule visual language of the site. */
footer.site-footer.contact-footer :is(.cf-messengers,.cf-maps){position:relative;gap:0;border-top:1px solid #dcd6dc}
footer.site-footer.contact-footer :is(.cf-messengers,.cf-maps)::before{content:"";position:absolute;top:-1px;left:0;width:24px;height:2px;background:#9c007b;pointer-events:none}
footer.site-footer.contact-footer :is(.cf-messengers,.cf-maps) a{border:0;border-radius:0;background:transparent;color:#29242b;font-weight:600}
footer.site-footer.contact-footer :is(.cf-messengers,.cf-maps) a+a{border-left:1px solid #e4dfe4}
footer.site-footer.contact-footer .cf-messengers a span{color:#8b006d}
@media(hover:hover){footer.site-footer.contact-footer :is(.cf-messengers,.cf-maps) a:hover{background:#f7f1f6;color:#8b006d}}
footer.site-footer.contact-footer :is(.cf-messengers,.cf-maps) a:focus-visible{outline:2px solid #9c007b;outline-offset:-3px;border-radius:0}

/* Footer labels and pictograms use the same black ink on every page. */
footer.site-footer.contact-footer,
footer.site-footer.contact-footer :where(*) {
  color: #000 !important;
}
footer.site-footer.contact-footer .service-hours .hours-dot {
  background-color: #8b838d !important;
}
footer.site-footer.contact-footer .service-hours[data-state="open"] .hours-dot {
  background-color: #328064 !important;
}
footer.site-footer.contact-footer .service-hours[data-state="lunch"] .hours-dot {
  background-color: #c48a28 !important;
}
@media (hover: hover) {
  footer.site-footer.contact-footer :is(a, summary):hover {
    color: #000 !important;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}
footer.site-footer.contact-footer :is(a, summary):focus-visible {
  color: #000 !important;
  outline-color: #000;
}

/* Align headings to the visible text below without moving contact values. */
footer.site-footer.contact-footer .cf-contact-title{text-align:left;padding-inline-start:var(--cf-contact-title-inset,0px)}
footer.site-footer.contact-footer .service-hours>summary{margin-inline:0;margin-inline-start:var(--cf-office-heading-inset,0px)}

/* Add breathing room between the action groups while retaining their widths. */
@media(min-width:1101px){
  footer.site-footer.contact-footer .cf-grid{
    grid-template-columns:minmax(0,calc(28.125% - clamp(13.5px,2.25vw,32.625px) - 16px)) clamp(24px,4vw,58px) minmax(0,calc(35.9375% - clamp(17.25px,2.875vw,41.6875px))) calc(clamp(24px,4vw,58px) + 16px) minmax(0,calc(35.9375% - clamp(17.25px,2.875vw,41.6875px)));
    grid-template-areas:". . heading . office" "brand . contact . office" "partner . messenger . maps";
    column-gap:0;
  }
  footer.site-footer.contact-footer .cf-office{grid-column:5}
}
