/* Native footer: scoped independently of Divi modules and the working header. */
.cardon-footer {
  --cardon-footer-columns: minmax(0, 1.8fr) repeat(3, minmax(0, 1fr));
  --cardon-footer-gap: 36px;
  background: var(--cardon-warm-bg, #f3f0e6);
  color: var(--cardon-blue, #112d50);
  border-top: 3px solid var(--cardon-gold, #9d802e);
  font: 16px/1.6 "Avenir Next LT Pro Regular", "Avenir Next LT Pro", "Avenir Next", Avenir, sans-serif;
  text-align: left;
}
.cardon-footer, .cardon-footer *, .cardon-footer *::before, .cardon-footer *::after { box-sizing: border-box; }
.cardon-footer [hidden] { display: none !important; }
.cardon-footer__inner { width: min(100% - 48px, 1170px); margin-inline: auto; padding-top: 56px; }
.cardon-footer__grid { display: grid; align-items: start; grid-template-columns: var(--cardon-footer-columns); gap: var(--cardon-footer-gap); width: 100%; min-width: 0; margin-inline: 0; padding-inline: 0; }
.cardon-footer__brand { grid-row: 1 / span 2; }
.cardon-footer__office { grid-column: 2 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; min-width: 0; padding: 24px; background: var(--cardon-green-18, rgba(125, 138, 80, 0.18)); border-radius: var(--cardon-radius-md, 12px); }
.cardon-footer__office h2 { font-size: 22px; }
.cardon-footer p { padding: 0; margin: 0 0 16px; }
.cardon-footer a { color: inherit; text-decoration: none; }
.cardon-footer button { appearance: none; font: inherit; color: inherit; cursor: pointer; }
.cardon-footer :is(a, button):focus-visible { outline: 3px solid var(--cardon-blue, #112d50); outline-offset: 4px; border-radius: 3px; }
.cardon-footer :is(a, button):is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: 4px; }
.cardon-footer ul { list-style: none; padding: 0; margin: 0; }
.cardon-footer h2 { padding: 0; margin: 0 0 16px; color: inherit; font: 24px/1.25 "Palatino Nova Pro Medium", Palatino, "Palatino Linotype", Georgia, serif; }
.cardon-footer__logo { display: inline-flex; min-height: 44px; align-items: center; font: 30px/1.2 "Palatino Nova Pro Medium", Palatino, Georgia, serif; margin-bottom: 12px; }
.cardon-footer .cardon-footer__logo-image { display: block; width: 200px; max-width: 100%; height: auto; }
.cardon-footer .cardon-footer__name { font-weight: 600; margin-bottom: 12px; }
.cardon-footer__intro { max-width: 38ch; }
.cardon-footer address { font-style: normal; }
.cardon-footer__address-actions { display: flex; align-items: flex-start; flex-direction: column; margin: 0; }
.cardon-footer__address-actions :is(a, button) { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 0; text-decoration: none; text-underline-offset: 4px; background: none; border: 0; text-align: left; }
.cardon-footer .cardon-footer__external-link { gap: 0; flex-wrap: nowrap; }
.cardon-footer__external-icon { margin-inline-start: 0.3em; flex: none; white-space: nowrap; }
.cardon-footer__phone { display: inline-flex; align-items: center; min-height: 44px; font-size: 18px; font-weight: 600; }
.cardon-footer__email { display: block; overflow-wrap: anywhere; }
.cardon-footer .cardon-footer__hours { margin: 12px 0 0; font-size: 14px; }
.cardon-footer__social { display: flex; align-items: center; justify-content: flex-start; gap: 4px; }
.cardon-footer__social a { width: 44px; height: 44px; display: grid; place-items: center start; color: var(--cardon-blue, #112d50); background: transparent; }
.cardon-footer__social svg { display: block; width: 22px; height: 22px; fill: currentColor; }
.cardon-footer__social a:is(:hover, :focus, :focus-visible) { color: var(--cardon-orange, #dd5308); background: transparent; }
.cardon-footer__nav a { display: flex; align-items: center; min-height: 44px; padding: 8px 0; line-height: 1.4; }
.cardon-footer__legal { border-top: 1px solid var(--cardon-border, #cad1d8); margin-top: 28px; padding: 20px 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; font-size: 13px; }
.cardon-footer__legal p { margin: 0; }
.cardon-footer__legal ul { display: flex; flex-wrap: wrap; gap: 0 20px; }
.cardon-footer__legal a { display: inline-flex; align-items: center; min-height: 44px; }
.cardon-footer .cardon-footer__dialog { padding: 0; width: min(640px, calc(100% - 32px)); max-width: none; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); margin: auto; color: var(--cardon-blue, #112d50); background: var(--cardon-warm-bg, #f3f0e6); border: 1px solid var(--cardon-border, #cad1d8); border-radius: 12px; overflow: auto; overscroll-behavior: contain; box-shadow: 0 24px 80px #0005; }
.cardon-footer__dialog:not([open]) { display: none; }
.cardon-footer__dialog::backdrop { background: #112d50b3; }
.cardon-footer__dialog-header { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 32px 16px; background: var(--cardon-warm-bg, #f3f0e6); }
.cardon-footer__dialog-header h2 { flex: 1; min-width: 0; margin: 0; overflow-wrap: anywhere; }
.cardon-footer__dialog-close { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 5px; background: transparent; }
.cardon-footer__dialog-close:is(:hover, :focus-visible) { background: var(--cardon-green-18, rgba(125, 138, 80, 0.18)); }
.cardon-footer__dialog-close svg { display: block; }
.cardon-footer__dialog-content { padding: 0 32px 32px; }
.cardon-footer__dialog h2 { font-size: 30px; }
.cardon-footer__dialog-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.cardon-footer__dialog-actions :is(a, button) { min-height: 44px; padding: 10px 16px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--cardon-blue, #112d50); border-radius: 5px; background: transparent; }
.cardon-footer__dialog-actions a:first-child { background: var(--cardon-blue, #112d50); color: var(--cardon-white, #fff); }
.cardon-footer__dialog .cardon-footer__directions-steps { display: grid; gap: 24px; }
.cardon-footer__dialog .cardon-footer__directions-steps h3 { margin: 0 0 12px; padding: 0; color: inherit; font: 22px/1.3 "Palatino Nova Pro Medium", Palatino, Georgia, serif; }
.cardon-footer__dialog .cardon-footer__figure { margin: 0; }
.cardon-footer__dialog .cardon-footer__figure img { display: block; width: 100%; max-width: 512px; height: auto; margin-inline: auto; border-radius: 6px; }
.cardon-footer__dialog .cardon-footer__figure figcaption { margin-top: 8px; font-size: 14px; }
@media (max-width: 1100px) {
  .cardon-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
  .cardon-footer__office { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; }
  .cardon-footer__brand { grid-column: 1 / -1; grid-row: auto; }
  .cardon-footer__intro { max-width: 65ch; }
}
@media (max-width: 767px) {
  .cardon-footer__inner { width: calc(100% - 40px); padding-top: 32px; }
  .cardon-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .cardon-footer__office { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 24px 20px; }
  .cardon-footer__nav h2, .cardon-footer__office h2 { margin-bottom: 6px; }
  .cardon-footer__legal { margin-top: 24px; flex-direction: column; align-items: flex-start; }
  .cardon-footer__dialog-header { padding: 20px 20px 16px; }
  .cardon-footer__dialog-content { padding: 0 20px 24px; }
  .cardon-footer__dialog-actions { flex-direction: column; }
}
@media (max-width: 480px) {
  .cardon-footer__dialog-header { align-items: flex-start; }
  /* Center the first 1.25em heading line against the 44px control, even when wrapped. */
  .cardon-footer__dialog-header h2 { padding-top: calc((44px - 1.25em) / 2); }
}
@media (prefers-reduced-motion: reduce) {
  .cardon-footer *, .cardon-footer *::before, .cardon-footer *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
