/* ========================================================================== 
   ESPO 2.5.1.123.35 — Premium Interaction System
   Harmonizes controls, selectors, filters, links, pagination and focus states.
   ========================================================================== */

:root {
  --espo-ui-blue: #0b6da8;
  --espo-ui-blue-bright: #168fd9;
  --espo-ui-blue-soft: rgba(11,109,168,.08);
  --espo-ui-navy: #12314a;
  --espo-ui-gold: #c29a46;
  --espo-ui-gold-soft: rgba(194,154,70,.10);
  --espo-ui-ivory: #fbf8f1;
  --espo-ui-ink: #122231;
  --espo-ui-muted: #687686;
  --espo-ui-line: rgba(18,34,49,.10);
  --espo-ui-focus: 0 0 0 4px rgba(11,109,168,.10);
  --espo-ui-shadow: 0 12px 28px rgba(15,36,56,.07);
  --espo-ui-shadow-hover: 0 18px 38px rgba(15,36,56,.10);
}

/* Consistent focus language ------------------------------------------------ */
body.espo-site :is(
  a,
  button,
  input,
  select,
  textarea,
  [tabindex]:not([tabindex="-1"])
):focus-visible {
  outline: none;
}

body.espo-site :is(
  .espo-search-toggle,
  .espo-mobile-toggle,
  .espo-language-dropdown__toggle,
  .espo-language-dropdown__item,
  .espo-sector-button,
  .espo-projects-clear,
  .espo-projects-active-filters a,
  .espo-projects-pagination a,
  .espo-service-link,
  .espo-service-card__link,
  .espo-project-card__link,
  .espo-footer-language,
  .espo-footer-phonechip,
  .espo-case-pagination a
):focus-visible {
  box-shadow: var(--espo-ui-focus), var(--espo-ui-shadow);
}

/* Header navigation ------------------------------------------------------- */
.site-header.espo-floating-header .espo-primary-nav > a,
.site-header.espo-floating-header .espo-services-menu > a {
  position: relative;
  overflow: hidden;
}

.site-header.espo-floating-header .espo-primary-nav > a::before,
.site-header.espo-floating-header .espo-services-menu > a::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(11,109,168,.05), rgba(194,154,70,.035));
  opacity: 0;
  transition: opacity .22s ease;
}

.site-header.espo-floating-header .espo-primary-nav > a:hover::before,
.site-header.espo-floating-header .espo-primary-nav > a:focus-visible::before,
.site-header.espo-floating-header .espo-services-menu > a:hover::before,
.site-header.espo-floating-header .espo-services-menu > a:focus-visible::before {
  opacity: 1;
}

.site-header.espo-floating-header .espo-services-dropdown a {
  border: 1px solid transparent;
  border-radius: .85rem !important;
  transition: transform .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease !important;
}

.site-header.espo-floating-header .espo-services-dropdown a:hover,
.site-header.espo-floating-header .espo-services-dropdown a:focus-visible {
  transform: translateX(3px);
  border-color: rgba(11,109,168,.10);
  background: linear-gradient(90deg, rgba(11,109,168,.075), rgba(194,154,70,.04)) !important;
  box-shadow: 0 8px 18px rgba(15,36,56,.045);
}

html[dir="rtl"] .site-header.espo-floating-header .espo-services-dropdown a:hover,
html[dir="rtl"] .site-header.espo-floating-header .espo-services-dropdown a:focus-visible {
  transform: translateX(-3px);
}

/* Search + mobile controls: remove remaining black control language. */
.site-header.espo-floating-header .espo-search-toggle,
.espo-search-toggle {
  width: 40px !important;
  height: 40px !important;
  border: 1px solid rgba(11,109,168,.13) !important;
  border-radius: 13px !important;
  color: var(--espo-ui-blue) !important;
  background: linear-gradient(145deg, #fff, #f3f8fb) !important;
  box-shadow: 0 8px 20px rgba(15,36,56,.07), inset 0 1px 0 rgba(255,255,255,.95) !important;
  transform: none !important;
  transition: transform .22s ease, color .22s ease, background .22s ease, border-color .22s ease, box-shadow .22s ease !important;
}

.site-header.espo-floating-header .espo-search-toggle:hover,
.site-header.espo-floating-header .espo-search-toggle:focus-visible,
.espo-search-toggle:hover,
.espo-search-toggle:focus-visible,
.site-header.espo-floating-header .espo-search-toggle[aria-expanded="true"],
.espo-search-toggle[aria-expanded="true"] {
  color: #fff !important;
  border-color: rgba(11,109,168,.88) !important;
  background: linear-gradient(135deg, var(--espo-ui-blue-bright), var(--espo-ui-blue)) !important;
  box-shadow: 0 13px 28px rgba(11,109,168,.22) !important;
  transform: translateY(-1px) !important;
}

.site-header.espo-floating-header .espo-mobile-toggle {
  width: 42px;
  height: 42px;
  padding: 0 !important;
  border: 1px solid rgba(11,109,168,.12);
  border-radius: 13px;
  color: var(--espo-ui-navy) !important;
  background: linear-gradient(145deg,#fff,#f7fafb);
  box-shadow: 0 8px 20px rgba(15,36,56,.06);
  transition: transform .22s ease, color .22s ease, background .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.site-header.espo-floating-header .espo-mobile-toggle:hover,
.site-header.espo-floating-header .espo-mobile-toggle:focus-visible,
.site-header.espo-floating-header .espo-mobile-toggle.is-open {
  color: #fff !important;
  border-color: rgba(11,109,168,.88);
  background: linear-gradient(135deg,var(--espo-ui-blue-bright),var(--espo-ui-blue));
  box-shadow: 0 13px 28px rgba(11,109,168,.20);
  transform: translateY(-1px);
}

/* Language selector ------------------------------------------------------- */
.site-header.espo-floating-header .espo-language-dropdown__toggle {
  transition: transform .22s ease, border-color .22s ease, background .22s ease, box-shadow .22s ease !important;
}

.site-header.espo-floating-header .espo-language-dropdown__menu {
  padding: .5rem !important;
  border: 1px solid rgba(18,34,49,.09) !important;
  border-radius: 1rem !important;
  background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(251,248,241,.98)) !important;
  box-shadow: 0 20px 44px rgba(15,36,56,.13) !important;
}

.site-header.espo-floating-header .espo-language-dropdown__item {
  min-height: 2.8rem;
  margin: .12rem 0;
  padding: .62rem .75rem !important;
  border: 1px solid transparent !important;
  border-radius: .78rem !important;
  transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease !important;
}

.site-header.espo-floating-header .espo-language-dropdown__item:hover,
.site-header.espo-floating-header .espo-language-dropdown__item:focus-visible {
  border-color: rgba(var(--espo-language-rgb,11,109,168),.14) !important;
  background: rgba(var(--espo-language-rgb,11,109,168),.065) !important;
  box-shadow: 0 7px 16px rgba(15,36,56,.04) !important;
  transform: translateX(2px) !important;
}

.site-header.espo-floating-header .espo-language-dropdown__item.is-current {
  border-color: rgba(var(--espo-language-rgb,11,109,168),.15) !important;
  background: linear-gradient(90deg, rgba(var(--espo-language-rgb,11,109,168),.09), rgba(255,255,255,.72)) !important;
}

html[dir="rtl"] .site-header.espo-floating-header .espo-language-dropdown__item:hover,
html[dir="rtl"] .site-header.espo-floating-header .espo-language-dropdown__item:focus-visible {
  transform: translateX(-2px) !important;
}

/* Service/action links ---------------------------------------------------- */
body.espo-site :is(.espo-service-link, .espo-service-card__action, .espo-project-card__link) {
  position: relative;
  color: var(--espo-ui-blue);
  font-weight: 700;
  transition: color .22s ease, transform .22s ease;
}

body.espo-site :is(.espo-service-link, .espo-service-card__action, .espo-project-card__link)::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: -.28rem;
  height: 1px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--espo-ui-blue), var(--espo-ui-gold));
  transform: scaleX(.3);
  transform-origin: left center;
  opacity: .45;
  transition: transform .24s ease, opacity .24s ease;
}

body.espo-site :is(.espo-service-link, .espo-service-card__action, .espo-project-card__link):hover,
body.espo-site :is(.espo-service-link, .espo-service-card__action, .espo-project-card__link):focus-visible {
  color: var(--espo-ui-navy);
  transform: translateY(-1px);
}

body.espo-site :is(.espo-service-link, .espo-service-card__action, .espo-project-card__link):hover::after,
body.espo-site :is(.espo-service-link, .espo-service-card__action, .espo-project-card__link):focus-visible::after {
  transform: scaleX(1);
  opacity: .9;
}

html[dir="rtl"] body.espo-site :is(.espo-service-link, .espo-service-card__action, .espo-project-card__link)::after {
  transform-origin: right center;
}

/* Home sector selector behaves like a premium tab list ------------------- */
body:is(.home, .espo-home-context) .espo-sectors-list li {
  box-shadow: 0 8px 20px rgba(15,36,56,.035);
}

body:is(.home, .espo-home-context) .espo-sector-button {
  border-radius: inherit;
  transition: padding .24s ease, background .24s ease, transform .24s ease;
}

body:is(.home, .espo-home-context) .espo-sector-button::after {
  content: "";
  position: absolute;
  inset-block: 18%;
  inset-inline-end: .55rem;
  width: 3px;
  border-radius: 999px;
  background: var(--sector-color);
  opacity: 0;
  transform: scaleY(.35);
  transition: opacity .22s ease, transform .22s ease;
}

body:is(.home, .espo-home-context) .espo-sector-button:hover::after,
body:is(.home, .espo-home-context) .espo-sector-button:focus-visible::after,
body:is(.home, .espo-home-context) .espo-sector-button.is-active::after {
  opacity: .75;
  transform: scaleY(1);
}

body:is(.home, .espo-home-context) .espo-sector-button:hover,
body:is(.home, .espo-home-context) .espo-sector-button:focus-visible,
body:is(.home, .espo-home-context) .espo-sector-button.is-active {
  background: linear-gradient(90deg, rgba(255,255,255,.88), rgba(248,251,253,.96));
}

/* Project filters --------------------------------------------------------- */
.espo-projects-page .espo-projects-filter-panel {
  border-color: rgba(18,34,49,.09);
  box-shadow: 0 18px 44px rgba(15,36,56,.055);
}

.espo-projects-page .espo-projects-search-field > div,
.espo-projects-page .espo-projects-filter-grid select,
.espo-projects-page .espo-projects-featured-filter {
  border-color: rgba(18,34,49,.10);
  background-color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.espo-projects-page .espo-projects-search-field > div:hover,
.espo-projects-page .espo-projects-filter-grid select:hover,
.espo-projects-page .espo-projects-featured-filter:hover {
  border-color: rgba(11,109,168,.20);
  box-shadow: 0 8px 18px rgba(15,36,56,.045);
}

.espo-projects-page .espo-projects-search-field > div:focus-within,
.espo-projects-page .espo-projects-filter-grid select:focus,
.espo-projects-page .espo-projects-featured-filter:focus-within {
  border-color: rgba(11,109,168,.48);
  box-shadow: var(--espo-ui-focus), 0 10px 22px rgba(15,36,56,.055);
}

.espo-projects-page .espo-projects-featured-filter input:checked + .espo-projects-featured-filter__box {
  color: #fff;
  border-color: var(--espo-ui-blue);
  background: linear-gradient(135deg,var(--espo-ui-blue-bright),var(--espo-ui-blue));
  box-shadow: 0 5px 14px rgba(11,109,168,.18);
}

.espo-projects-page .espo-projects-clear {
  border: 1px solid transparent;
  border-radius: .75rem;
  transition: transform .2s ease, color .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.espo-projects-page .espo-projects-clear:hover,
.espo-projects-page .espo-projects-clear:focus-visible {
  color: var(--espo-ui-blue);
  border-color: rgba(11,109,168,.10);
  background: var(--espo-ui-blue-soft);
  box-shadow: 0 7px 16px rgba(15,36,56,.04);
  transform: translateY(-1px);
}

.espo-projects-page .espo-projects-active-filters a {
  border-color: rgba(11,109,168,.13);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(11,109,168,.055), rgba(255,255,255,.9));
  transition: transform .2s ease, color .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.espo-projects-page .espo-projects-active-filters a:hover,
.espo-projects-page .espo-projects-active-filters a:focus-visible {
  color: var(--espo-ui-blue);
  border-color: rgba(11,109,168,.25);
  background: linear-gradient(180deg, rgba(11,109,168,.10), rgba(255,255,255,.96));
  box-shadow: 0 8px 18px rgba(11,109,168,.07);
  transform: translateY(-1px);
}

.espo-projects-page .espo-projects-active-filters a svg {
  transition: transform .2s ease;
}

.espo-projects-page .espo-projects-active-filters a:hover svg,
.espo-projects-page .espo-projects-active-filters a:focus-visible svg {
  transform: rotate(90deg);
}

/* Pagination -------------------------------------------------------------- */
.espo-projects-page .espo-projects-pagination a {
  min-width: 2.45rem;
  min-height: 2.45rem;
  border-color: rgba(18,34,49,.09);
  border-radius: .8rem;
  background: linear-gradient(180deg,#fff,#fafcfd);
  box-shadow: 0 5px 13px rgba(15,36,56,.035);
  transition: transform .2s ease, color .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.espo-projects-page .espo-projects-pagination a:hover,
.espo-projects-page .espo-projects-pagination a:focus-visible {
  color: var(--espo-ui-blue);
  border-color: rgba(11,109,168,.22);
  background: #fff;
  box-shadow: 0 10px 22px rgba(11,109,168,.08);
  transform: translateY(-2px);
}

.espo-projects-page .espo-projects-pagination a.is-current {
  color: #fff;
  border-color: var(--espo-ui-blue);
  background: linear-gradient(135deg,var(--espo-ui-blue-bright),var(--espo-ui-blue));
  box-shadow: 0 10px 24px rgba(11,109,168,.20);
}

.espo-projects-page .espo-projects-pagination__nav {
  padding-inline: .78rem;
}

/* Project case prev/next -------------------------------------------------- */
.single-espo_project .espo-case-pagination a {
  border-radius: 1rem;
  transition: transform .22s ease, border-color .22s ease, background .22s ease, box-shadow .22s ease;
}

.single-espo_project .espo-case-pagination a:hover,
.single-espo_project .espo-case-pagination a:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(11,109,168,.16);
  background: linear-gradient(180deg,#fff,rgba(11,109,168,.035));
  box-shadow: var(--espo-ui-shadow-hover);
}

/* Breadcrumb links -------------------------------------------------------- */
body.espo-site :is(.espo-case-breadcrumb, .espo-service-detail__breadcrumb) a {
  position: relative;
  color: var(--espo-ui-muted);
  transition: color .2s ease;
}

body.espo-site :is(.espo-case-breadcrumb, .espo-service-detail__breadcrumb) a:hover,
body.espo-site :is(.espo-case-breadcrumb, .espo-service-detail__breadcrumb) a:focus-visible {
  color: var(--espo-ui-blue);
}

/* Footer interactions ----------------------------------------------------- */
.espo-footer-language {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: .28rem .5rem;
  border: 1px solid transparent;
  border-radius: .6rem;
  transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease;
}

.espo-footer-language:hover,
.espo-footer-language:focus-visible,
.espo-footer-language.is-current {
  color: #fff !important;
  border-color: rgba(194,154,70,.16);
  background: rgba(255,255,255,.055);
  transform: translateY(-1px);
}

.espo-footer-language.is-current {
  border-color: rgba(194,154,70,.24);
  background: linear-gradient(90deg,rgba(194,154,70,.10),rgba(11,109,168,.08));
}

.espo-footer-navgroup a,
.espo-footer-contactitem {
  transition: color .2s ease, transform .2s ease;
}

.espo-footer-navgroup a:hover,
.espo-footer-navgroup a:focus-visible,
.espo-footer-contactitem:hover,
.espo-footer-contactitem:focus-visible {
  transform: translateX(2px);
}

html[dir="rtl"] .espo-footer-navgroup a:hover,
html[dir="rtl"] .espo-footer-navgroup a:focus-visible,
html[dir="rtl"] .espo-footer-contactitem:hover,
html[dir="rtl"] .espo-footer-contactitem:focus-visible {
  transform: translateX(-2px);
}

/* Interactive chips on Contact/Sectors ----------------------------------- */
.espo-contact-hero__chips span,
.espo-sectors-hero__chips span {
  transition: transform .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.espo-contact-hero__chips span:hover,
.espo-sectors-hero__chips span:hover {
  transform: translateY(-1px);
  border-color: rgba(11,109,168,.14);
  background: rgba(255,255,255,.86);
  box-shadow: 0 8px 18px rgba(15,36,56,.045);
}

/* Reduced motion ---------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  body.espo-site :is(
    .espo-search-toggle,
    .espo-mobile-toggle,
    .espo-language-dropdown__item,
    .espo-sector-button,
    .espo-projects-clear,
    .espo-projects-active-filters a,
    .espo-projects-pagination a,
    .espo-service-link,
    .espo-service-card__action,
    .espo-project-card__link,
    .espo-footer-language,
    .espo-footer-navgroup a,
    .espo-footer-contactitem,
    .espo-case-pagination a
  ) {
    transition: none !important;
    transform: none !important;
  }
}
