/* Shared layout corrections. Loaded last to keep all visitor pages consistent. */
:root {
  --site-ink: #24313b;
  --site-navy: #0f172a;
  --site-green: #087f5b;
  --site-gold: #d97706;
  --site-line: rgba(8, 127, 91, .16);
}

html, body { min-width: 320px; }
body.mu-theme { padding-top: 116px; background: #f7fbf9; }

/* Defensive rendering contract for semantic content stored by the CMS. */
.article-text, .project-content, .service-text-content, .content-wrapper,
.service-content .content, .local-service-content {
  min-width: 0; max-width: 100%; overflow-wrap: anywhere;
}
.article-text img, .project-content img, .service-text-content img, .content-wrapper img,
.article-text picture, .project-content picture, .service-text-content picture,
.article-text video, .project-content video, .service-text-content video,
.article-text iframe, .project-content iframe, .service-text-content iframe {
  max-width: 100% !important; height: auto;
}
.article-text iframe, .project-content iframe, .service-text-content iframe {
  width: 100%; aspect-ratio: 16 / 9;
}
.article-text table, .project-content table, .service-text-content table {
  display: block; width: 100% !important; max-width: 100%; overflow-x: auto;
}
.article-text pre, .project-content pre, .service-text-content pre {
  max-width: 100%; overflow-x: auto; white-space: pre;
}
.article-text [style*="width"], .project-content [style*="width"], .service-text-content [style*="width"],
.article-text [width], .project-content [width], .service-text-content [width] {
  max-width: 100% !important;
}
.mu-navbar-wrap { isolation: isolate; }
.mu-navbar .container { width: 100%; }
.mu-navbar-inner { min-height: 72px; }
.mu-brand-name { color: #fff; }
.mu-nav-link { min-height: 42px; }
.mu-dropdown { z-index: 1050; }
.mu-offcanvas { z-index: 1060; }
.mu-offcanvas-foot {
  padding: 1rem 1.1rem;
  border-top: 1px solid rgba(217, 119, 6, .22);
}
.mu-offcanvas-contact { display: grid; gap: .55rem; margin-bottom: 1rem; }
.mu-offcanvas-contact a { color: #cbd5e1; text-decoration: none; }
.mu-offcanvas-contact i { width: 1.25rem; color: #f59e0b; }
.mu-m-sub { padding: .25rem .55rem .55rem; }
.mu-m-sub-link {
  display: block; padding: .55rem .7rem; color: #cbd5e1;
  text-decoration: none; border-radius: 8px; font-size: .88rem;
}
.mu-m-sub-link:hover { color: #fff; background: rgba(217, 119, 6, .12); }

.footer { position: relative; isolation: isolate; }
.footer-pattern { pointer-events: none; z-index: -1; }
.footer .newsletter-section { position: relative; }
.footer .newsletter-form .input-group { flex-wrap: nowrap; }
.footer .newsletter-form input { min-width: 0; }
.footer .footer-link { transition: color .2s ease, transform .2s ease; }
.footer .footer-bottom { color: #cbd5e1; }
.footer a, .footer .footer-link, .footer .text-light { color: #dbe7e3 !important; }
.footer a:hover, .footer .footer-link:hover { color: #f59e0b !important; }
.footer .footer-title, .footer .footer-title i, .footer h3, .footer h4, .footer h6 { color: #fff !important; }
.footer .footer-main { position: relative; z-index: 1; }
.footer [data-aos] { opacity: 1 !important; transform: none !important; }
.variant-location-tools { display: flex; align-items: center; gap: .75rem; margin-top: 1rem; padding-top: .9rem; border-top: 1px solid rgba(8, 127, 91, .12); }
.variant-location-tools .btn { display: inline-flex; align-items: center; gap: .4rem; }
.service-hero .service-hero-title,
.service-hero .service-title-name { color: #fff !important; text-shadow: 0 2px 12px rgba(0, 0, 0, .45); }
.service-hero h1,
.service-hero h1 * { color: #fff !important; background: transparent !important; text-shadow: 0 2px 12px rgba(0, 0, 0, .45); }
.service-hero .service-title-location {
  display: inline-block; margin-inline-start: .45rem; padding: .12em .45em;
  color: #17202a !important; background: #f59e0b; border-radius: 6px;
  white-space: nowrap; text-shadow: none;
}
.service-hero h1 .service-title-location { color: #17202a !important; background: #f59e0b !important; text-shadow: none; }
.service-hero .text-white-75 { color: #f8fafc !important; }
.service-hero .breadcrumb-custom a,
.service-hero .breadcrumb-custom .breadcrumb-item { color: #fff !important; }
.service-hero .service-hero-cta { color: #24313b !important; }
.service-location-picker { max-width: 720px; margin-top: 1rem; padding: .9rem 1rem; background: rgba(7, 34, 53, .72); border: 1px solid rgba(255, 255, 255, .22); border-radius: 10px; }
.service-location-picker label { display: block; margin-bottom: .45rem; color: #fff; font-weight: 700; }
.service-location-picker-row { display: flex; gap: .55rem; align-items: center; }
.service-location-picker select { flex: 1; min-width: 0; padding: .65rem .75rem; border: 1px solid #dbe7e3; border-radius: 7px; color: #24313b; background: #fff; }
.service-location-picker small { display: block; margin-top: .45rem; color: #dbe7e3; }

@media (max-width: 991.98px) {
  body.mu-theme { padding-top: 72px; }
  .mu-navbar-inner { min-height: 68px; }
  .mu-brand-tag { display: none; }
  .mu-offcanvas { width: min(320px, 86vw) !important; }
}

@media (max-width: 575.98px) {
  .variant-location-tools { align-items: flex-start; flex-direction: column; }
  .service-location-picker-row { display: grid; }
  .service-location-picker-row .btn { width: 100%; }
  .service-hero .service-title-location { display: block; width: fit-content; margin: .35rem 0 0; white-space: normal; }
  .mu-brand-name { max-width: 190px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .footer .newsletter-form .input-group { display: grid; gap: .5rem; }
  .footer .newsletter-form .input-group > * { width: 100%; border-radius: 8px !important; }
  .footer .footer-main { padding-top: 2.5rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  .footer .footer-link { transition: none; }
}

/* White-label brand token compatibility layer. */
body.mu-theme { color: var(--brand-text); background-color: var(--brand-surface); }
.mu-topbar, .mu-navbar, .mu-offcanvas { background-color: var(--brand-dark) !important; }
.mu-brand-badge, .mu-cta-btn { background: var(--brand-primary) !important; color: var(--brand-on-primary) !important; }
.mu-brand-tag, .mu-topbar-chip i, .mu-nav-link::after, .mu-dropdown-head h6,
.mu-drop-item i, .mu-m-nav-link i, .mu-offcanvas-contact i { color: var(--brand-accent) !important; }
.btn-primary { background-color: var(--brand-primary) !important; border-color: var(--brand-primary) !important; color: var(--brand-on-primary) !important; }
.btn-warning { background-color: var(--brand-warning) !important; border-color: var(--brand-warning) !important; color: var(--brand-on-accent) !important; }
.card, .service-variant-card { background-color: var(--brand-surface); color: var(--brand-text); }
.footer { background: linear-gradient(145deg, var(--brand-dark), var(--brand-primary)) !important; color: var(--brand-light) !important; }
.footer .footer-title, .footer .footer-title i, .footer h3, .footer h4, .footer h6 { color: var(--brand-light) !important; }
.footer a:hover, .footer .footer-link:hover, .footer .brand-tagline { color: var(--brand-accent) !important; }
.service-hero .service-title-location,
.service-hero h1 .service-title-location { background: var(--brand-accent) !important; color: var(--brand-on-accent) !important; }
:focus-visible { outline-color: var(--brand-accent); }
/* Social networks keep their official platform colors. */
.whatsapp-btn, .social-share-button--whatsapp { --social-brand-color: #128c4a; }
