/*
 * Layered on top of the Sitejet export (custom.*.css).
 * Palette comes from the Bitrix logo; custom.*.css already has the old blue
 * and green swapped for the logo blue and navy, this file does the rest.
 */
:root {
  --bx-navy: #0a1f55;
  --bx-blue: #2563d0;
  --bx-yellow: #f7a823;
  --bx-yellow-dark: #e0920c;
  --bx-text: #2c3e50;
  --bx-bg: #f5f5f5;
}

/* Headings: blue section titles, navy sub-headings */
h3, .h3 { color: var(--bx-navy) !important; letter-spacing: 1px; }
.ed-element.preset-accordion-v3-border > .inner > .accordion-trigger a,
.ed-element.preset-accordion-v3-border > .inner > .accordion-trigger a.active,
.ed-element.preset-accordion-v3-border > .inner > .accordion-trigger a:hover { color: var(--bx-blue); letter-spacing: 1px; }

/* Buttons: logo yellow with navy text */
.button,
.ed-form-button > button:not(.button) {
  background: var(--bx-yellow) !important;
  color: var(--bx-navy) !important;
  border-color: transparent !important;
  font-weight: 700 !important;
  letter-spacing: .5px;
}
.button:hover,
.ed-form-button > button:not(.button):hover { background: var(--bx-yellow-dark) !important; color: var(--bx-navy) !important; text-decoration: none; }
.wv-link-content.button { background: var(--bx-navy) !important; color: #fff !important; }

/* Header: white so the logo sits on its own background */
.ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu { background: #fff; box-shadow: 0 1px 0 rgba(10, 31, 85, .08); }
.ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu.sticky { background: #fff; box-shadow: 0 2px 10px rgba(10, 31, 85, .12); }
.ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu > .inner { padding-top: .5rem; padding-bottom: .5rem; }
.site-logo { display: block; line-height: 0; }
.site-logo img { height: 64px; width: auto; display: block; }
@media screen and (max-width: 60.9375rem) { .site-logo img { height: 48px; } }
@media screen and (min-width: 61rem) {
  .ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .ed-menu > ul > li > a,
  .ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu.sticky .ed-menu > ul > li > a { color: var(--bx-navy) !important; }
  .ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .ed-menu > ul > li > a:after { background: transparent !important; }
  .ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .ed-menu > ul > li:hover > a,
  .ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .ed-menu > ul > li > a.active,
  .ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu.sticky .ed-menu > ul > li:hover > a,
  .ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu.sticky .ed-menu > ul > li > a.active {
    color: var(--bx-blue) !important;
    background: transparent;
    box-shadow: inset 0 -3px 0 var(--bx-yellow);
  }
}
/* phone: navy icon and burger on white, navy full-screen menu */
.ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .mobile-cont svg { fill: var(--bx-navy) !important; }
.ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .menu-trigger .menu-trigger-box .menu-trigger-inner,
.ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .menu-trigger .menu-trigger-box .menu-trigger-inner:before,
.ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .menu-trigger .menu-trigger-box .menu-trigger-inner:after { background-color: var(--bx-navy) !important; }
.open .ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .menu-trigger .menu-trigger-box .menu-trigger-inner,
.open .ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .menu-trigger .menu-trigger-box .menu-trigger-inner:before,
.open .ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .menu-trigger .menu-trigger-box .menu-trigger-inner:after { background-color: #fff !important; }
@media screen and (max-width: 60.9375rem) {
  .ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .ed-menu { background: var(--bx-navy); }
  .ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .ed-menu a { color: #fff; }
  .ed-element.preset-menu-v2-home-logo-nav-h1-image-text-menu .ed-menu > ul > li > a.active { color: var(--bx-yellow); }
}

/* Header phone number, desktop only (phones keep the icon) */
.header-phone { display: none; }
@media screen and (min-width: 61rem) {
  .header-phone {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-left: 1.5rem;
    color: var(--bx-navy);
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    font-size: 16px;
    white-space: nowrap;
    text-decoration: none;
  }
  .header-phone:hover { color: var(--bx-blue); text-decoration: none; }
  .header-phone svg { width: 16px; height: 16px; fill: currentColor; }
}

/* Hero: navy panel instead of grey */
#ed-771622391 > .inner { background: rgba(10, 31, 85, .82) !important; }
#ed-771622391 { background: transparent !important; }
#ed-hero-cta { margin-top: 1.5rem; }
#ed-hero-cta .button { padding: .8rem 2rem; }

/* Trust strip under the hero */
.trust-strip { background: var(--bx-navy); color: #fff; }
.trust-strip ul {
  list-style: none;
  margin: 0 auto;
  padding: 1.75rem 1rem;
  max-width: 61rem;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
.trust-strip li { display: flex; align-items: center; gap: .85rem; }
.trust-strip .line-icon { width: 34px; height: 34px; flex: 0 0 34px; color: var(--bx-yellow); }
.trust-strip strong { display: block; font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 1rem; line-height: 1.3; }
.trust-strip span { display: block; font-size: .9rem; opacity: .85; line-height: 1.3; }
@media screen and (max-width: 60.9375rem) { .trust-strip ul { grid-template-columns: repeat(2, 1fr); } }
@media screen and (max-width: 25rem) { .trust-strip ul { gap: 1.1rem; } .trust-strip .line-icon { width: 28px; height: 28px; flex-basis: 28px; } }

/* Section spacing: the export left 160px between sections */
body > .wv-spacer > .inner { padding-top: 3.5rem; padding-bottom: 3.5rem; }
@media screen and (max-width: 35.9375rem) {
  body > .wv-spacer > .inner { padding-top: 2.5rem; padding-bottom: 2.5rem; }
}
/* the Team heading had no spacer under it, unlike every other section */
#ed-771621620 { margin-bottom: 30px; }

/* Service icons: line icons drawn for each service */
.boxes-icon .line-icon { width: 40px; height: 40px; color: #fff; fill: none !important; stroke: currentColor; display: block; margin: 0 auto; }

/* About image: keep a usable height on phones instead of a thin strip */
@media screen and (max-width: 60.9375rem) {
  #ed-771620816 { min-height: 220px; }
  #ed-771620816 .background-image-holder { background-size: cover; background-position: center; }
}

/* Team cards: same photo size so names line up, text always wraps */
.preset-image-boxes-v3-default .image-boxes-box .team-photo {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.preset-image-boxes-v3-default .image-boxes-box .ed-element { overflow-wrap: anywhere; }
.preset-image-boxes-v3-default .image-boxes-box .ed-spacer { display: none; }
.preset-image-boxes-v3-default .image-boxes-box .ed-headline { padding-top: 1rem; }
.preset-image-boxes-v3-default .image-boxes-box .team-role { margin-top: .25rem; margin-bottom: .5rem; color: var(--bx-blue); }

/* Testimonials: white card with a blue edge */
.ed-element.preset-slider-content-v3-wide-dots .ed-content-slider .slick-track > * {
  background: #fff !important;
  box-shadow: 0 2px 14px rgba(10, 31, 85, .08);
  border-left: 4px solid var(--bx-blue) !important;
}
.testimonial blockquote { margin: 0; padding: 0; border: 0 !important; color: var(--bx-text); }
.testimonial blockquote p { font-size: 1.15rem; line-height: 1.6; color: var(--bx-text); font-style: italic; }
.testimonial blockquote footer { margin-top: 1rem; font-size: .95rem; color: var(--bx-text); }
.testimonial blockquote cite { font-style: normal; font-weight: 700; color: var(--bx-navy); }
.testimonial .stars { color: var(--bx-yellow); letter-spacing: 2px; }
.preset-slider-content-v3-wide-dots .slick-arrow { background-color: var(--bx-navy) !important; }
.reviews-link { display: block; width: 100%; text-align: center; margin: 2.5rem 0 0; }
.reviews-link a { color: var(--bx-blue); font-weight: 700; text-decoration: underline; }

/* Links inside FAQ answers look like links, numbers stay on one line */
.accordion-content a { color: var(--bx-blue); text-decoration: underline; white-space: nowrap; }

/* Contact: form and direct details side by side */
#ed-771621374 > .inner { display: grid !important; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
#ed-771621374 > .inner > .ed-form-container { width: 100% !important; max-width: none !important; margin: 0 !important; }
.contact-aside { background: var(--bx-navy); color: #fff; padding: 1.75rem; }
.contact-aside h3 { color: #fff !important; font-size: 1.2rem; margin-bottom: 1rem; }
.contact-aside ul { list-style: none; margin: 0; padding: 0; }
.contact-aside li { padding: .6rem 0; border-top: 1px solid rgba(255, 255, 255, .15); line-height: 1.45; }
.contact-aside li:first-child { border-top: 0; padding-top: 0; }
.contact-aside li span { display: block; font-size: .8rem; text-transform: uppercase; letter-spacing: 1px; color: var(--bx-yellow); }
.contact-aside a { color: #fff; text-decoration: none; }
.contact-aside a:hover { text-decoration: underline; }
@media screen and (max-width: 47.9375rem) { #ed-771621374 > .inner { grid-template-columns: 1fr; } }
.form-turnstile { width: 100%; margin: .5rem 0; min-height: 65px; }

/* Footer */
.footer-bragi-box a { text-decoration: none; }
.footer-bragi-box a:hover { text-decoration: underline; }
.footer-extra-text { flex-grow: 1; }
.footer-extra-icon svg { padding: 0; }
.footer-copy { width: 100%; margin-top: 1.25rem; font-size: .85rem; opacity: .8; }

/* Privacy and legal pages: back bar in navy, emails never split mid-address */
.legal a { white-space: nowrap; }
.ed-element.preset-back-button-v2-default { background: var(--bx-navy); }
.ed-element.preset-back-button-v2-default .button { background: transparent !important; color: #fff !important; font-weight: 400 !important; }

/* Floating WhatsApp button */
.whatsapp-float {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 50;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #25D366;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
  transition: transform .2s ease;
}
.whatsapp-float:hover { transform: scale(1.06); }
.whatsapp-float svg { width: 30px; height: 30px; fill: #fff; }
