/* AdminCMS V3.6 — unified premium footer.
   Scoped selectors intentionally override imported per-page theme footers.
   The complete footer is rendered from app/partials/site_footer.php. */
body .cms-site-footer {
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  margin: 0;
  padding: 0 !important;
  border: 0;
  background: #101722;
  color: #e9edf3;
  font-family: inherit;
  font-size: 14px;
  line-height: 1.65;
  text-align: left;
  box-shadow: none;
}
body .cms-site-footer::before,
body .cms-site-footer::after { display: none !important; content: none !important; }
body .cms-site-footer,
body .cms-site-footer *,
body .cms-site-footer *::before,
body .cms-site-footer *::after { box-sizing: border-box; }
body .cms-site-footer .cms-footer-wrap {
  position: relative;
  z-index: 1;
  width: min(1280px, calc(100% - 2 * clamp(14px, 2.2vw, 28px))) !important;
  max-width: 1280px !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
body .cms-site-footer a {
  color: inherit;
  text-decoration: none;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease;
}
body .cms-site-footer a:hover { color: #fff; }
body .cms-site-footer a:focus-visible {
  outline: 3px solid #ff858b;
  outline-offset: 4px;
  border-radius: 5px;
}
body .cms-site-footer p,
body .cms-site-footer li { margin: 0; font-weight: 450; color: #aeb9c7; }
body .cms-site-footer h2,
body .cms-site-footer h3 { color: #fff; letter-spacing: -.025em; }

/* Top contact strip: one concise primary conversion prompt. */
body .cms-footer-callout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 26px;
  margin: 0;
  padding: 31px 0;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
body .cms-footer-eyebrow {
  display: inline-block;
  margin-bottom: 6px;
  color: #ff7d87;
  font-size: 12px;
  font-weight: 760;
  letter-spacing: .035em;
}
body .cms-footer-callout h2 {
  margin: 0 0 5px;
  font-size: clamp(20px, 2.2vw, 30px);
  line-height: 1.33;
  font-weight: 820;
  overflow-wrap: anywhere;
}
body .cms-footer-callout p { color: #bac4d0; font-size: 14px; line-height: 1.65; }
body .cms-footer-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
body .cms-footer-action {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  width: auto;
  min-height: 48px;
  max-width: 100%;
  border-radius: 13px;
  border: 1px solid transparent;
  padding: 10px 16px;
  font-size: 14px;
  line-height: 1.3;
  font-weight: 760;
  white-space: normal;
  overflow-wrap: anywhere;
  box-shadow: none;
}
body .cms-footer-action-line { color: #fff; background: #148c4a; border-color: #148c4a; }
body .cms-footer-action-line:hover { color: #fff; background: #0c7340; }
body .cms-footer-action-call { color: #fff; background: #e50914; border-color: #e50914; }
body .cms-footer-action-call:hover { color: #fff; background: #c90b17; }
body .cms-footer-action-icon {
  display: inline-block;
  padding: 3px 5px;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 5px;
  font-size: 9px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.045em;
}
body .cms-footer-phone-symbol { font-size: 20px; line-height: 1; }
body .cms-footer-arrow { font-size: 17px; line-height: 1; }

/* Aligned brand + compact service / navigation / contact columns. */
body .cms-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.15fr);
  gap: clamp(18px, 2.6vw, 42px);
  align-items: start;
  min-width: 0;
  padding: 32px 0 30px;
}
body .cms-footer-grid > * { min-width: 0; }
body .cms-footer-brand {
  display: inline-flex;
  align-items: center;
  gap: 13px;
  max-width: 100%;
  margin-bottom: 15px;
}
body .cms-footer-logo {
  display: grid;
  place-items: center;
  width: 61px;
  height: 61px;
  flex: 0 0 61px;
  padding: 5px;
  overflow: hidden;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(255,255,255,.18);
}
body .cms-footer-logo img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  display: block;
  margin: 0;
}
body .cms-footer-brand-copy { display: block; min-width: 0; }
body .cms-footer-brand-copy strong {
  display: block;
  font-size: clamp(20px, 2.1vw, 26px);
  font-weight: 830;
  line-height: 1.2;
  letter-spacing: -.045em;
  overflow-wrap: anywhere;
  color: #fff;
}
body .cms-footer-brand-copy small {
  display: block;
  margin-top: 3px;
  color: #c5ced9;
  font-size: 12px;
  font-weight: 560;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
body .cms-footer-company > p {
  max-width: 375px;
  margin: 0;
  font-size: 14px;
  line-height: 1.75;
  color: #acb7c5;
}
body .cms-footer-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 14px;
  max-width: 390px;
}
body .cms-footer-facts span {
  display: inline-flex;
  align-items: center;
  padding: 5px 9px;
  border: 1px solid #333b46;
  border-radius: 8px;
  color: #d3dae4;
  font-size: 11px;
  font-weight: 570;
  line-height: 1.35;
}
body .cms-footer-column h3 {
  position: relative;
  margin: 6px 0 16px;
  padding: 0 0 12px;
  font-size: 16px;
  line-height: 1.25;
  font-weight: 770;
}
body .cms-footer-column h3::after {
  content: '';
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 30px;
  height: 2px;
  border-radius: 1px;
  background: #ed2635;
}
body .cms-footer-column ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body .cms-footer-column li {
  display: block;
  min-width: 0;
  margin: 0;
  padding: 0;
  color: #b3becb;
  line-height: 1.5;
  list-style: none;
}
body .cms-footer-column li::before { content: none !important; display: none !important; }
body .cms-footer-column li a {
  display: inline-block;
  color: #b3becb;
  font-weight: 490;
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
body .cms-footer-column li a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
body .cms-footer-contact p { margin: 0 0 12px; line-height: 1.68; }
body .cms-footer-contact-link {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 9px;
  color: #f7f9fc !important;
  font-size: 14px;
  font-weight: 720;
  min-width: 0;
  overflow-wrap: anywhere;
}
body .cms-footer-contact-link span {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  border-radius: 8px;
  background: #29323e;
  color: #ff777e;
  font-size: 15px;
}
body .cms-footer-contact-link:hover { color: #ff9da3 !important; }

/* The credit is deliberately the last item in source order and on mobile. */
body .cms-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 20px;
  margin: 0;
  padding: 17px 0 20px;
  min-width: 0;
  border-top: 1px solid rgba(255,255,255,.12);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #8d9bac;
  font-size: 12px;
  line-height: 1.55;
}
body .cms-footer-bottom p { color: #98a6b6; font-size: 12px; }
body .cms-footer-bottom-right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}
body .cms-footer-bottom-right > a { color: #b3becc; }
body .cms-footer-bottom-right > a:hover { color: #fff; text-decoration: underline; }
body .cms-footer-separator { display: inline-block; height: 14px; width: 1px; background: #586474; }
body .cms-footer-credit { color: #98a6b6; white-space: normal; }
body .cms-footer-credit a {
  margin-left: 3px;
  color: #fff;
  font-weight: 770;
  text-decoration: underline;
  text-decoration-color: #e73040;
  text-underline-offset: 4px;
}
body .cms-footer-credit a:hover { color: #ff8d95; }
body .cms-footer-credit a > span { color: #ff8d95; font-size: 12px; }

@media (max-width: 1100px) {
  body .cms-footer-callout { gap: 16px; }
  body .cms-footer-grid { grid-template-columns: minmax(0,1.35fr) repeat(2,minmax(0,1fr)); gap: 24px 30px; }
  body .cms-footer-contact { grid-column: 1 / -1; display: grid; grid-template-columns: 1.2fr 1fr 1fr; align-items: center; gap: 10px 18px; border-top: 1px solid rgba(255,255,255,.1); padding-top: 14px; }
  body .cms-footer-contact h3 { margin: 0; }
  body .cms-footer-contact p { grid-column: 1; margin: 0; }
  body .cms-footer-contact-link { margin: 0; grid-row: 1 / 3; }
  body .cms-footer-contact-link:nth-of-type(1) { grid-column: 2; }
  body .cms-footer-contact-link:nth-of-type(2) { grid-column: 3; }
}
@media (max-width: 800px) {
  body .cms-footer-callout { grid-template-columns: minmax(0,1fr); gap: 18px; padding: 26px 0; }
  body .cms-footer-actions { justify-content: flex-start; }
  body .cms-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 30px; padding: 26px 0; }
  body .cms-footer-company { grid-column: 1 / -1; }
  body .cms-footer-contact { grid-column: 1 / -1; display: block; }
  body .cms-footer-contact h3 { margin-bottom: 12px; }
  body .cms-footer-contact p { margin-bottom: 12px; }
  body .cms-footer-contact-link { display: inline-flex; margin: 0 20px 8px 0; }
}
@media (max-width: 540px) {
  body .cms-footer-callout { padding: 24px 0; }
  body .cms-footer-callout h2 { font-size: clamp(20px,5.4vw,25px); }
  body .cms-footer-actions { display: grid; grid-template-columns: minmax(0,1fr) !important; width: 100%; gap: 9px; }
  body .cms-footer-action { width: 100%; min-height: 46px; padding: 10px 14px; }
  body .cms-footer-grid { grid-template-columns: minmax(0,1fr); gap: 25px; padding: 26px 0; }
  body .cms-footer-company,
  body .cms-footer-contact { grid-column: auto; }
  body .cms-footer-column h3 { margin-bottom: 14px; }
  body .cms-footer-column ul { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 13px; }
  body .cms-footer-contact { border-top: 1px solid rgba(255,255,255,.11); padding-top: 21px; }
  body .cms-footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; padding: 16px 0 21px; }
  body .cms-footer-bottom-right { width: 100%; justify-content: flex-start; gap: 12px; }
}
@media (max-width: 340px) {
  body .cms-footer-column ul { grid-template-columns: minmax(0,1fr); }
  body .cms-footer-brand-copy strong { font-size: 20px; }
  body .cms-footer-logo { width: 52px; height: 52px; flex-basis: 52px; }
  body .cms-footer-callout h2 { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  body .cms-site-footer a { transition: none; }
}
