/* Combined map and page overrides. Load after style.css;
 remove old map.css and inline copy. */
 html {
     scroll-behavior: smooth;
}
/* Map foundation */
 *, *::before, *::after {
     box-sizing: border-box;
}
 html, body {
     margin: 0;
     padding: 0;
}
 body {
     color: #332b2d;
     background: #fffdfb;
     font-family: "Source Sans 3", "Segoe UI", sans-serif;
}
 .global-map-section, .global-map-inner {
     width: 100%;
}
 .global-map-inner {
     margin: 0 auto;
}
 .map-heading {
     display: grid;
     grid-template-columns: minmax(300px, .8fr) 1.2fr;
     gap: 40px;
     margin-bottom: 28px;
     align-items: end;
}
 .map-heading h1 {
     margin: 0;
     color: #a6003b;
     font-family: "Source Serif 4", Georgia, serif;
     font-size: clamp(2rem, 3vw, 3.1rem);
     font-weight: 700;
     line-height: 1.2;
}
 .map-heading p {
     margin: 0 0 5px;
     color: #817772;
     font-size: .94rem;
     line-height: 1.6;
}
 .world-map-shell {
     position: relative;
     width: 100%;
     min-height: 520px;
     overflow: hidden;
}
 #worldMap {
     display: block;
     width: 100%;
     height: auto;
     min-height: 520px;
}
 .map-sphere {
     fill: #fff8f0;
     stroke: #e5d8cc;
     stroke-width: 1;
}
 .map-grid {
     fill: none;
     stroke: #ece1d7;
     stroke-width: .6;
     pointer-events: none;
}
 .map-country {
     cursor: pointer;
     stroke: #fffdfa;
     stroke-width: .7;
     transition: opacity .15s ease, filter .15s ease;
}
 .map-country:hover {
     opacity: .78;
     filter: brightness(1.08);
}
 .map-status {
     position: absolute;
     top: 50%;
     left: 50%;
     z-index: 5;
     color: #a6003b;
     font-size: .95rem;
     font-weight: 700;
     line-height: 1.6;
     text-align: center;
     transform: translate(-50%, -50%);
}
 .map-status small {
     display: block;
     margin-top: 5px;
     color: #756a65;
     font-size: .75rem;
     font-weight: 400;
}
 .map-tooltip {
     position: absolute;
     z-index: 20;
     display: none;
     width: 320px;
     max-width: calc(100vw - 24px);
     padding: 20px;
     color: #555b63;
     background: #fff;
     border: 2px solid #9b0034;
     border-radius: 12px;
     box-shadow: 0 12px 30px rgba(32, 27, 29, .18);
     pointer-events: none;
}
 .map-tooltip.is-visible {
     display: block;
}
 .tooltip-country {
     display: block;
     margin-bottom: 14px;
     color: #9b0034;
     font-family: "Source Serif 4", Georgia, serif;
     font-size: 1.25rem;
     font-weight: 700;
}
 .tooltip-row {
     display: flex;
     gap: 20px;
     padding: 4px 0;
     align-items: baseline;
     justify-content: space-between;
     color: #777b82;
     font-size: .85rem;
}
 .tooltip-row strong {
     color: #1e2228;
     font-weight: 700;
     text-align: right;
}
 .tooltip-line {
     display: block;
     height: 1px;
     margin: 11px 0;
     background: #eddfdc;
}
 .tooltip-label {
     display: block;
     margin-bottom: 5px;
     color: #e86e0b;
     font-size: .65rem;
     font-weight: 700;
     letter-spacing: .12em;
     text-transform: uppercase;
}
 .tooltip-industry {
     display: block;
     color: #565c63;
     font-size: .82rem;
     font-weight: 400;
     line-height: 1.45;
}
 .map-legend {
     display: flex;
     gap: 18px;
     margin-top: 22px;
     flex-wrap: wrap;
     align-items: center;
}
 .legend-item {
     display: flex;
     gap: 7px;
     align-items: center;
     color: #756c67;
     font-size: .76rem;
}
 .legend-color {
     display: inline-block;
     width: 10px;
     height: 10px;
     flex: 0 0 10px;
     border-radius: 50%;
}
 .business-tags {
     display: flex;
     gap: 12px;
     margin-top: 35px;
     flex-wrap: wrap;
}
 .business-tags span {
     display: inline-flex;
     min-height: 48px;
     padding: 10px 25px;
     align-items: center;
     justify-content: center;
     color: #574e4a;
     background: #fff;
     border: 1px solid #dfd1c8;
     border-radius: 50px;
     font-size: .88rem;
     font-weight: 600;
}
 @media (max-width: 991.98px) {
     .global-map-section {
         padding-top: 45px;
         padding-bottom: 45px;
    }
     .map-heading {
         grid-template-columns: 1fr;
         gap: 12px;
    }
     .world-map-shell {
         min-height: 420px;
         border-radius: 110px;
    }
     #worldMap {
         min-height: 420px;
    }
}
 @media (max-width: 575.98px) {
     .global-map-section {
         padding-top: 35px;
         padding-bottom: 35px;
    }
     .map-heading h1 {
         font-size: 1.8rem;
    }
     .map-heading p {
         font-size: .85rem;
    }
     .world-map-shell {
         min-height: 0;
         height: auto;
         border-radius: 45px;
    }
     #worldMap {
         min-height: 0;
         height: auto;
    }
     .map-tooltip {
         width: 100%;
         max-width: 100%;
         padding: 16px;
    }
     #reach .world-map-shell,
     #reach #worldMap { min-height: 0 !important; height: auto !important; }
     #reach .global-map-inner > #mapTooltip { margin-top: 4px !important; }
     #reach .map-explore-input { gap: 10px; font-size: 12px; }
     #reach .map-explore-input select { flex-basis: 155px; padding: 8px 10px; font-size: 12px; }
     #reach .map-explore-input button { padding: 8px 7px; font-size: 12px; }
     .map-legend {
         gap: 12px;
    }
     .legend-item {
         width: calc(50% - 6px);
         font-size: .67rem;
    }
     .business-tags {
         gap: 8px;
         margin-top: 25px;
    }
     .business-tags span {
         min-height: 42px;
         padding: 8px 15px;
         font-size: .78rem;
    }
}
/* Page controls and navigation */
 .gma-tagline {
     margin: 0 0 1rem;
     padding: 0;
     list-style: none;
     white-space: nowrap;
     font-size: clamp(13px, 3.5vw, 22px);
     font-weight: 600;
}
 .gma-tagline li {
     display: inline-block;
     margin-right: clamp(6px, 1.5vw, 18px);
}
 .gma-tagline li:last-child {
     margin-right: 0;
}
 .map-explore-controls {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 12px;
     margin: 0 0 12px;
     text-align: center;
}
 .map-explore-controls p {
     margin: 0;
}
 .map-explore-controls .map-explore-input {
     display: flex;
     align-items: center;
     justify-content: center;
     flex-wrap: nowrap;
     gap: 8px;
     width: 100%;
     margin-top: 15px;
 }
 .map-explore-input label {
     flex: 0 0 auto;
     white-space: nowrap;
 }
 .map-explore-controls select {
     flex: 0 1 220px;
     min-width: 0;
     width: 100%;
     padding: 8px 17px;
     border: 1px solid #aaa;
     border-radius: 8px;
     background: #fff;
}
 .map-explore-controls button {
     flex: 0 0 auto;
     white-space: nowrap;
     padding: 8px 14px;
     border: 1px solid #97002e;
     border-radius: 8px;
     background: #fff;
     color: #97002e;
     cursor: pointer;
}
 .map-explore-controls button:disabled {
     opacity: .45;
     cursor: default;
 }
 #reach .reach-heading { margin-bottom: 16px !important; }
 #reach .global-map-section { padding-top: 0 !important; }
 #home, #about, #reach, #approach, #projects, #contact {
     scroll-margin-top: 95px;
}
 .main-navbar-right-menu a, .main-navbar-right-mobile a {
     position: relative;
     transition: color 0.25s ease;
}
 .main-navbar-right-menu a::after, .main-navbar-right-mobile a::after {
     content: "";
     position: absolute;
     right: 0;
     bottom: -7px;
     left: 0;
     height: 2px;
     background: #f47b00;
     transform: scaleX(0);
     transform-origin: center;
     transition: transform 0.25s ease;
}
 .main-navbar-right-menu a.active, .main-navbar-right-mobile a.active {
     color: #97002e !important;
}
 .main-navbar-right-menu a.active::after, .main-navbar-right-mobile a.active::after {
     transform: scaleX(1);
}
 .language-translator {
     display: flex;
     align-items: center;
     gap: 7px;
     width: 188px;
     min-width: 188px;
     min-height: 42px;
     padding: 0 9px;
     margin-left: 8px;
     margin-right: 0;
     background: #fff;
     border: 1px solid #d8d8d8;
     border-radius: 8px;
}
 .language-translator .translator-globe {
     flex: 0 0 auto;
     color: #687385;
     font-size: 21px;
     line-height: 1;
}
 .language-translator .translate-widget {
     flex: 1 1 auto;
     min-width: 0;
     position: relative;
}
 .language-translator .default-language-label {
     position: absolute;
     top: 50%;
     left: 4px;
     z-index: 2;
     color: #333;
     font-size: 14px;
     font-weight: 600;
     line-height: 1;
     transform: translateY(-50%);
     pointer-events: none;
}
 .language-translator .translate-widget.has-language-selection .default-language-label {
     display: none;
}
 .language-translator .translate-widget::after {
     content: "";
     position: absolute;
     top: 50%;
     right: 9px;
     width: 7px;
     height: 7px;
     border-right: 2px solid #333;
     border-bottom: 2px solid #333;
     transform: translateY(-65%) rotate(45deg);
     pointer-events: none;
}
 .language-translator .goog-te-gadget {
     width: 100%;
     font-size: 0;
     line-height: 1;
     color: transparent !important;
}
 .language-translator .goog-logo-link, .language-translator .goog-te-gadget img, .language-translator .goog-te-gadget span {
     display: none !important;
}
 .language-translator .goog-te-combo {
     width: 100%;
     min-height: 42px;
     margin: 0 !important;
     padding: 8px 26px 8px 4px;
     color: #333;
     font: 600 14px/1.2 inherit;
     background: transparent;
     border: 0;
     border-radius: 0;
     cursor: pointer;
     appearance: none;
     -webkit-appearance: none;
     -moz-appearance: none;
     outline: none;
}
 .language-translator .translate-widget:not(.has-language-selection) .goog-te-combo {
     color: transparent !important;
}
 .language-translator .goog-te-combo option {
     color: #333 !important;
     background: #fff;
}
 body {
     top: 0 !important;
}
 .goog-te-banner-frame.skiptranslate, iframe.goog-te-banner-frame, body > .skiptranslate, body > .VIpgJd-ZVi9od-ORHb-OEVmcd {
     display: none !important;
     visibility: hidden !important;
     height: 0 !important;
}
 #goog-gt-tt, .goog-te-balloon-frame {
     display: none !important;
}
 .mobile-translate-mount {
     display: none;
}
 .simple-footer-contact {
     padding: 0;
     color: #fff;
     background: transparent;
     border: 0;
     box-shadow: none;
}
 .simple-footer-contact h3 {
     margin-bottom: 18px;
     color: #fff;
     font-size: 20px;
     font-weight: 700;
}
 .simple-contact-row {
     display: flex;
     align-items: flex-start;
     gap: 12px;
     margin-bottom: 16px;
     color: #e9edf0;
     line-height: 1.65;
}
 .simple-contact-row i {
     flex: 0 0 20px;
     margin-top: 5px;
     color: #f26172;
     text-align: center;
}
 .simple-contact-row a {
     color: #fff;
     text-decoration: none;
}
 .simple-contact-row a:hover {
     color: #f26172;
}
 .menu-togall-icon {
     display: none;
}
 @media (max-width: 991.98px) {
     #siteNavbar .main-navbar-right-menu {
         display: none !important;
    }
     #siteNavbar .menu-togall-icon {
         display: inline-flex !important;
         align-items: center;
         justify-content: center;
         width: 46px;
         height: 46px;
         padding: 7px;
         border: 0;
         color: #97002e;
         background: transparent;
         position: relative;
         z-index: 2;
    }
     #siteNavbar .menu-togall-icon svg {
         width: 30px;
         height: 30px;
    }
     #offcanvasWithBothOptions {
         width: min(320px, 85vw);
         z-index: 1050;
    }
     #offcanvasWithBothOptions .main-navbar-right-mobile ul {
         list-style: none;
         padding: 0;
         margin: 0;
    }
     #offcanvasWithBothOptions .main-navbar-right-mobile li {
         margin: 0 0 14px;
    }
}
 @media (max-width: 991.98px) {
     #home, #about, #reach, #approach, #projects, #contact {
         scroll-margin-top: 75px;
    }
     .main-navbar-right-mobile a {
         display: inline-block;
    }
     .desktop-translate-mount {
         display: none;
    }
     .mobile-translate-mount {
         display: block;
         padding: 22px 0 4px;
         margin-top: 12px;
         border-top: 1px solid #e5e7eb;
    }
     .language-translator {
         width: 100%;
         max-width: 280px;
         margin: 0;
    }
     .language-translator .translator-globe {
         font-size: 18px;
    }
     .language-translator .goog-te-combo {
         min-height: 40px;
         padding: 7px 25px 7px 8px;
         font-size: 12px;
    }
}
 
