/* WMO layout system: Fibonacci spacing (8, 13, 21, 34, 55) with fluid type.
   Loaded after the template so all public pages share the same rhythm. */
:root {
  --wmo-space-1: 8px;
  --wmo-space-2: 13px;
  --wmo-space-3: 21px;
  --wmo-space-4: 34px;
  --wmo-space-5: 55px;
  --wmo-content: 1120px;
  --base-bodyfont-Size: 16px;
  --base-bodyfont-color: #555;
}
body { font-size: 16px; line-height: 1.625; }
h1, h2, h3, h4, h5, h6 { overflow-wrap: anywhere; line-height: 1.25; }
h1 { font-size: clamp(34px, 3.8vw, 55px); }
h2, .section-title h2.title, .row.title .section-title h2.title {
  font-size: clamp(26px, 2.5vw, 34px); line-height: 1.25;
}
h3, .featured-title h3, .featured-title h3 a,
.prt-service-single-content-area div:not(.featured-title) > h3 {
  font-size: clamp(19px, 1.7vw, 21px); line-height: 1.35;
}
h4 { font-size: 21px; }
h5 { font-size: 19px; }
h6 { font-size: 17px; }
p { margin-bottom: var(--wmo-space-2); }
body .container, .prt-row .container, .prt-page-title-row .container,
footer .container, header .container-fluid {
  width: 100%; max-width: var(--wmo-content); margin-inline: auto;
  padding-inline: var(--wmo-space-3);
}
/* Restore symmetric gutters instead of the template's unequal negative margins. */
body .row:not(.g-0), .prt-row .container > .row,
.prt-page-title-row .container > .row, footer .container .row {
  margin-inline: -10.5px; max-width: none; padding-bottom: 0;
}
body .row:not(.g-0) > [class*='col-'] { padding-inline: 10.5px; min-width: 0; }
img { max-width: 100%; }
.site-main .prt-row { padding-block: var(--wmo-space-5) !important; }
.site-main .prt-row.padding_bottom_zero-section { padding-bottom: 0 !important; }
.site-main .prt-row.padding_top_zero-section { padding-top: 0 !important; }
.site-main .prt-row.padding_zero-section { padding-block: var(--wmo-space-3) !important; }
.section-title { margin-bottom: var(--wmo-space-3); }
/* A normal-flow header keeps both the title and mobile menu below the logo. */
header.prt-header-style-01 { position: relative; background: #090c22; }
.prt-header-style-01 .site-header-menu-inner.prt-stickable-header {
  position: relative; background: #090c22;
}
.site-navigation { display: flex; align-items: center; justify-content: space-between; gap: 34px; min-height: 89px; }
.site-branding { flex: 0 0 auto; padding: 13px 0; }
.site-branding .site-title, .prt-header-style-01 .site-branding h1 {
  position: static; margin: 0; padding: 0; display: block;
}
.site-branding #logo-img { width: 144px; max-width: 144px; height: auto; }
.menu-link { min-width: 0; }
#site-header-menu .site-navigation ul.menu { margin: 0; padding: 0; gap: 8px; }
#site-header-menu .site-navigation ul.menu > li { flex: 0 1 auto; border: 0; }
#site-header-menu .site-navigation ul.menu > li:nth-child(3) { margin-right: 0; }
#site-header-menu .site-navigation ul.menu > li:nth-child(4) { border: 0; }
#site-header-menu .site-navigation ul.menu > li > a { font-size: 15px; }
.prt-header-style-01 #site-header-menu .site-navigation ul.menu > li > a {
  height: auto; line-height: 1.4; padding: 21px 13px;
}
nav.main-menu li.mega-menu-item:hover > ul.mega-submenu { top: 100%; }
#site-header-menu .site-navigation ul.menu li ul.mega-submenu li a { padding: 13px; line-height: 1.4; }
.prt-page-title-row-inner, .prt-page-title-row-inner.style1 {
  padding-block: var(--wmo-space-4); text-align: center;
}
.page-title-heading :is(h1,h2) {
  font-size: clamp(34px, 3.8vw, 55px); line-height: 1.2;
  margin: 0 0 13px; animation: none; transform: none;
}
.breadcrumb-wrapper { margin: 0; line-height: 1.5; }
.breadcrumb-wrapper span { font-size: 14px; line-height: 1.5; }
/* Keep the home hero readable without pushing all useful content below the fold. */
.site-main .prt-row.banner-section { padding-block: 55px 34px !important; }
.banner-main-title h1 { font-size: clamp(34px, 3.8vw, 55px); line-height: 1.2; margin-bottom: 21px; }
.banner-main-desc { padding-block: 13px; }
.banner-desc-title h3 { font-size: clamp(21px, 2.5vw, 34px); line-height: 1.25; }
.banner-section .mt-60 { margin-top: 21px !important; }
.banner-section .tm-scrollintetx-wrapper { display: none; }
/* Team photos keep their original ratio and never become full-width phone posters. */
.wmo-team-page .portfolio-section .prt-boxes-spacing-10px {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center; align-items: start; gap: 21px;
  margin: 0; padding: 0;
}
.wmo-team-page .portfolio-section .prt-boxes-spacing-10px > .prt-box-col-wrapper {
  flex: 0 1 calc((100% - 105px) / 6);
  width: auto; max-width: 195px; padding: 0; margin: 0;
}
.wmo-team-page .portfolio-section .prt-featured-wrapper img {
  display: block; width: 100%; height: auto; border-radius: 13px;
}
.wmo-team-page .portfolio-section .prt-post-item,
.wmo-team-page .portfolio-section .prt-post-item-inner { margin: 0; }
.wmo-team-page .portfolio-section .prt-featured-wrapper { overflow: hidden; border-radius: 13px; }
.second-footer { padding-block: 34px; }
.footer { font-size: 15px; line-height: 1.625; }
.footer a { overflow-wrap: anywhere; }
.footer .social-icons.style1 li a { padding-block: 21px; line-height: 1.4; }
.footer .social-icons.style1 { margin: 0; padding: 0; }
.footer .widget-area .widget { margin-block: 0 21px; }
.footer #logo-img { width: 144px; height: auto; }
a:focus-visible, button:focus-visible, [role='button']:focus-visible {
  outline: 2px solid #bc83fe; outline-offset: 4px;
}
@media (max-width: 1199px) {
  .site-navigation { min-height: 76px; gap: 13px; }
  .site-branding #logo-img { width: 123px; }
  .btn-show-menu-mobile.menubar { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; top: 16px; right: 0; }
  nav.main-menu { max-height: calc(100dvh - 89px); overflow-y: auto; }
  #site-header-menu .site-navigation ul.menu { display: block; }
  #site-header-menu .site-navigation ul.menu > li { text-align: left; }
  .prt-header-style-01 #site-header-menu .site-navigation ul.menu > li > a { padding: 13px 21px; min-height: 44px; }
}
@media (max-width: 767px) {
  body .container, .prt-row .container, .prt-page-title-row .container,
  footer .container, header .container-fluid { padding-inline: 21px; }
  .site-main .prt-row { padding-block: 34px !important; }
  .prt-page-title-row-inner, .prt-page-title-row-inner.style1 { padding-block: 21px; }
  .page-title-heading :is(h1,h2) { font-size: 34px; }
  .banner-main-title h1 br { display: none; }
  .site-main .prt-row.banner-section { padding-block: 34px !important; }
  .banner-main-desc, .banner-desc-title { padding: 8px 0; }
  .wmo-team-page .portfolio-section .prt-boxes-spacing-10px {
    gap: 13px;
  }
  .footer .social-icons.style1 li a span { display: none; }
  .footer .widget-area .widget.widget_cta { padding: 0; }
  textarea, input, select { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  [data-aos] { opacity: 1 !important; transform: none !important; }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .wmo-team-page .portfolio-section .prt-boxes-spacing-10px > .prt-box-col-wrapper { flex-basis: calc((100% - 63px) / 4); }
}
@media (max-width: 767px) {
  .wmo-team-page .portfolio-section .prt-boxes-spacing-10px > .prt-box-col-wrapper { flex-basis: calc((100% - 13px) / 2); }
}

.wmo-team-page .portfolio-section .prt-featured-wrapper { padding: 0; }
.wmo-team-page .portfolio-section .prt-boxes-spacing-10px > .prt-box-col-wrapper { padding: 0 !important; }
/* Section titles should remain aligned while the page loads. */
.section-title .title { animation: none; transform: none; }
button.btn-show-menu-mobile { border: 0; padding: 0; margin: 0; background: transparent; color: inherit; }
@media (min-width: 1200px) {
  .btn-show-menu-mobile { display: none; }
  nav.main-menu li.mega-menu-item:focus-within > ul.mega-submenu {
    visibility: visible; opacity: 1; top: 100%; transform: rotateX(0);
  }
  #site-header-menu .site-navigation ul.menu li:focus-within > ul.mega-submenu > li {
    opacity: 1; visibility: visible; transform: translateY(0);
  }
}
/* IT detail pages use a 61.8/38.2 split, stacking before either column gets narrow. */
body .page > .row.mt-35 {
  max-width: var(--wmo-content); margin: 34px auto !important; padding-inline: 21px;
}
.page > .row.mt-35 > .d-flex.justify-content-between {
  display: grid !important; grid-template-columns: minmax(0, 1.618fr) minmax(0, 1fr);
  gap: 34px; padding-inline: 0;
}
.page > .row.mt-35 > .d-flex.justify-content-between > * { min-width: 0; width: 100%; }
.page > .row.mt-35 .about-section { padding: 0; }
.page > .row.mt-35 .about-section .container { padding-inline: 0; }
.section-title .title1 { animation: none; transform: none; }
@media (max-width: 991px) {
  .page > .row.mt-35 > .d-flex.justify-content-between { grid-template-columns: minmax(0, 1fr); gap: 21px; }
}

/* The hero title must be visible and aligned on the first rendered frame. */
.banner-main-title .title { animation: none; transform: none; }

/* Compact home hero, following the navigation and hero sizing review. */
.site-main .prt-row.banner-section { padding-block: 34px !important; }
.banner-main-title h1 { font-size: clamp(28px, 3vw, 42px); line-height: 1.2; margin-bottom: 0; }
.banner-section .mt-60 { margin-top: 13px !important; }
.banner-main-desc { padding-block: 0; }
.banner-main-desc p { margin-bottom: 8px; }
.banner-desc-title h3 { font-size: 26px; line-height: 1.3; }
@media (max-width: 767px) {
  .site-main .prt-row.banner-section { padding-block: 21px !important; }
  .banner-main-title h1 { font-size: 28px; }
  .banner-main-desc, .banner-desc-title { padding-block: 0; }
  .banner-desc-title h3 { font-size: 19px; line-height: 1.35; }
}
/* Compact team directory; flags and names share one aligned row. */
.prt-tmbox-view-main { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px 21px; text-align: left; }
article.prt-tmbox-view-style1.prt-tmbox { display: block; margin: 0; }
.prt-tmbox-view-style1 .prt-box-title { display: flex; align-items: center; gap: 13px; }
.prt-tmbox-view-style1 .prt-box-title h3,
.prt-tmbox-view-style1 .prt-box-title h3 a { font-size: 21px; line-height: 1.35; margin: 0; font-weight: 500; }
.prt-tmbox-view-style1 .prt-box-title .prt-team-position { flex: 0 0 34px; width: 34px; height: auto; }
/* Counter digits must never shrink or wrap independently of their labels. */
.prt-fid.inside.style1 .prt-fid-contents { align-items: center; gap: 13px; }
.prt-fid.inside.style1 h4, .prt-fid.inside.style1 h4 span,
.prt-fid.inside.style2 h4, .prt-fid.inside.style2 h4 span {
  font-size: 34px; line-height: 1.2; margin: 0; text-align: left;
  white-space: nowrap; overflow-wrap: normal; word-break: normal;
  font-variant-numeric: tabular-nums;
}
.prt-fid.inside.style1 h4 { flex: 0 0 auto; }
.prt-fid.inside.style1 .prt-fid-contents .prt-fid-title { font-size: 18px; line-height: 1.35; margin: 0; }
.prt-fid.inside.style2 .prt-fid-inner { display: flex; align-items: baseline; gap: 4px; margin-bottom: 8px; }
.prt-fid.inside.style2 .prt-fid-contents .prt-fid-inner span:last-child { margin-left: 0; }
.prt-fid.style2 p.prt-fid-title { font-size: 18px; line-height: 1.35; margin-bottom: 8px; }
.prt-fid.inside.style2 .fid-desc p { font-size: 15px; line-height: 1.5; }
.site-main .prt-row.fid-section { padding: 21px 0 !important; }
.fid-section > .container-fluid { max-width: 1120px; margin-inline: auto; padding-inline: 21px !important; }
.fid-section .row { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.fid-section .row > [class*='col-'] { width: 100%; min-width: 0; }
.fid-section .prt-fid.inside.style2 { padding: 21px !important; border-color: rgba(255,255,255,.2); }
/* Show the current quote's natural height instead of the longest slide's height. */
.site-main .prt-row.wmo-testimonial-section { padding: 0 !important; }
.wmo-testimonial-section > .container-fluid { max-width: 1120px; margin-inline: auto; padding-inline: 21px; }
.wmo-testimonial-section .spacing-2 { padding: 21px; margin: 0; }
.wmo-testimonial-section .spacing-3 { margin: 0; height: 100%; }
.wmo-testimonial-section .section-title:has(.title-header:empty) { display: none; }
.wmo-testimonial-section .slick_slider { margin: 0 !important; }
.wmo-testimonial-section .prt-testimonial-box-view-style1.slick-slide { margin-left: 0; }
.wmo-testimonial-section .testimonial-quote-icon { width: 34px; height: 34px; line-height: 34px; }
.wmo-testimonial-section .testimonial-quote-icon i { font-size: 18px; line-height: 34px; }
.wmo-testimonial-section .testimonials blockquote.testimonial-text { padding: 13px 0; font-size: 16px; line-height: 1.625; font-weight: 400; }
.wmo-testimonial-section .testimonial-caption h3 { font-size: 16px; line-height: 1.4; margin: 0; padding: 0; }
.wmo-testimonial-section .slick-dots { position: static; display: flex; justify-content: center; gap: 0; list-style: none; margin: 8px 0 0; padding: 0; }
.wmo-testimonial-section .slick-dots li { margin: 0; padding: 0; width: 44px; height: 44px; }
.wmo-testimonial-section .slick-dots button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; font-size: 0; }
.wmo-testimonial-section .slick-dots button::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #777; }
.wmo-testimonial-section .slick-dots .slick-active button::before { background: #bc83fe; }
@media (min-width: 1200px) {
  .wmo-testimonial-section .col-xl-6:first-child { width: 38.2%; }
  .wmo-testimonial-section .col-xl-6:last-child { width: 61.8%; }
}
@media (max-width: 1199px) {
  .wmo-testimonial-section .col-xl-6:first-child { display: none; }
  .fid-section .row { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 575px) {
  .prt-tmbox-view-main { grid-template-columns: minmax(0,1fr); }
  .prt-tmbox-view-style1 .prt-box-title h3,
  .prt-tmbox-view-style1 .prt-box-title h3 a { font-size: 18px; }
  .fid-section .prt-fid.inside.style2 { padding: 13px !important; }
}
@media (max-width: 359px) {
  .fid-section .row { grid-template-columns: minmax(0,1fr); }
}
.wmo-testimonial-section .section-title { display: none; }
.wmo-testimonial-section .slick-slide { padding-inline: 0; }
@media (max-width: 575px) {
  .wmo-testimonial-section .testimonials blockquote.testimonial-text { font-size: 15px; line-height: 1.5; padding-block: 8px; }
}
/* Maintain contrast for the smaller statistics text over its photograph. */
.fid-section.bg-img3.prt-bg.prt-bgimage-yes > .prt-bg-layer { opacity: .65; }
