/* Small site-wide adjustments on top of the recovered Elementor styles. */

/* Footer logo: 40% of its original size (the CMS logo is a square image),
   left-aligned with the footer text below it. */
footer.elementor-location-footer .elementor-element-5390f47,
footer.elementor-location-footer .elementor-element-5390f47 .elementor-widget-container {
  text-align: left !important;
}
footer.elementor-location-footer .elementor-element-5390f47 img {
  display: block;
  width: 40% !important;
  height: auto !important;
  margin: 0 !important;
}

/* Back-to-top button (markup and script: src/layouts/BaseLayout.astro). */
.vacc-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 9999;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #164271;
  color: #fff;
  box-shadow: 0 6px 18px rgba(13, 42, 76, .28);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s, background-color .15s ease;
}
.vacc-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
/* Over dark sections (footer, blue bands, dark banners) the button turns red
   so it never disappears into the background. */
.vacc-to-top.on-dark { background: #e3141c; box-shadow: 0 6px 18px rgba(0, 0, 0, .35); }
.vacc-to-top:hover, .vacc-to-top:focus-visible { background: #e3141c; }
.vacc-to-top.on-dark:hover, .vacc-to-top.on-dark:focus-visible { background: #c10f16; }
.vacc-to-top:focus-visible { outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 6px #164271; }
.vacc-to-top svg { width: 20px; height: 20px; }
@media (max-width: 768px) { .vacc-to-top { right: 16px; bottom: 16px; width: 44px; height: 44px; } }
@media (prefers-reduced-motion: reduce) { .vacc-to-top { transition: none; } }

/* Capabilities page: modern bullets for the sub-items under each heading
   (the first item of each list is the heading and keeps its own style). */
.elementor-727 :is(.elementor-element-b507cae, .elementor-element-a3e8d68, .elementor-element-44355b2,
  .elementor-element-e0f0699, .elementor-element-f10a21d, .elementor-element-8e21613)
  .elementor-icon-list-item:not(:first-child) {
  display: flex;
  align-items: flex-start;
  padding-inline-start: 4px;
}
.elementor-727 :is(.elementor-element-b507cae, .elementor-element-a3e8d68, .elementor-element-44355b2,
  .elementor-element-e0f0699, .elementor-element-f10a21d, .elementor-element-8e21613)
  .elementor-icon-list-item:not(:first-child) > .elementor-icon-list-icon { display: none; }
.elementor-727 :is(.elementor-element-b507cae, .elementor-element-a3e8d68, .elementor-element-44355b2,
  .elementor-element-e0f0699, .elementor-element-f10a21d, .elementor-element-8e21613)
  .elementor-icon-list-item:not(:first-child) > .elementor-icon-list-text {
  position: relative;
  padding-inline-start: 30px;
}
.elementor-727 :is(.elementor-element-b507cae, .elementor-element-a3e8d68, .elementor-element-44355b2,
  .elementor-element-e0f0699, .elementor-element-f10a21d, .elementor-element-8e21613)
  .elementor-icon-list-item:not(:first-child) > .elementor-icon-list-text:not(:empty)::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(0.75em - 9px);
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #e3141c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat;
  box-shadow: 0 0 0 3px rgba(227, 20, 28, .18);
}

/* Capabilities page: no zigzag dividers between the groups. */
.elementor-727 .elementor-widget-divider--separator-type-pattern { display: none !important; }

/* "Other Projects" carousel on project pages, styled like the homepage
   Featured Projects cards (details added in src/lib/entries.ts). */
.fl-module-post-carousel .fl-post-carousel-post {
  background: #fff !important;
  /* White cards on a white page: a border (the carousel clips shadows). */
  border: 1px solid #dfe3e8 !important;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column;
}
.fl-module-post-carousel .fl-post-carousel-image img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.fl-module-post-carousel .fl-post-carousel-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
  padding: 18px 20px 24px !important;
  font-family: "Roboto", sans-serif;
}
.fl-module-post-carousel .vacc-card-badge {
  display: inline-block;
  margin-bottom: 12px;
  padding: 2px 8px;
  border-radius: 20px;
  background: #61ce70;
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  line-height: 12px;
  padding-block: 4px;
}
.fl-module-post-carousel .fl-post-carousel-title { margin: 0 0 14px !important; font-family: "Roboto", sans-serif !important; font-size: 20px !important; font-weight: 600 !important; line-height: 1.2 !important; }
.fl-module-post-carousel .fl-post-carousel-title a { color: #7a7a7a !important; }
.fl-module-post-carousel .fl-post-carousel-title a:hover { color: #164271 !important; }
.fl-module-post-carousel .vacc-card-meta { align-self: stretch; margin: 0 0 18px; padding: 0; list-style: none; }
.fl-module-post-carousel .vacc-card-meta li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 0 7px;
  margin: 0 0 7px;
  border-bottom: 1px solid #ddd;
  color: #7a7a7a;
  font-size: 16px;
  line-height: 24px;
}
.fl-module-post-carousel .vacc-card-meta li:last-child { margin-bottom: 0; }
.fl-module-post-carousel .vacc-card-meta svg { flex: none; width: 14px; height: 14px; fill: rgba(122, 122, 122, .31); }
.fl-module-post-carousel .fl-post-carousel-content { margin-top: auto; }
.fl-module-post-carousel .fl-post-carousel-more {
  display: inline-block;
  padding: 12px 24px;
  border: 1px solid #164271;
  border-radius: 20px;
  color: #164271 !important;
  font-size: 15px;
  font-weight: 500;
  line-height: 15px;
  text-decoration: none !important;
  transition: background-color .2s, color .2s;
}
.fl-module-post-carousel .fl-post-carousel-more:hover { background: #164271; color: #fff !important; }
.fl-module-post-carousel .fl-post-carousel-navigation svg path,
.fl-module-post-carousel .fl-post-carousel-navigation a { color: #164271 !important; fill: #164271 !important; }

/* Video page banners (Services, Business Sectors, Projects, Our Commitment):
   brand blue under and over the video, same height as the other banners. */
.vacc-video-banner { position: relative; overflow: hidden; background-color: #164271; }
.vacc-video-banner > .elementor-container { min-height: 300px; }
.vacc-video-banner > .elementor-background-overlay { background-color: #164271cc !important; opacity: 1 !important; }
.vacc-video-banner > .elementor-background-video-container { position: absolute; inset: 0; overflow: hidden; z-index: 0; }
.vacc-video-banner > .elementor-background-video-container video { width: 100% !important; height: 100% !important; object-fit: cover; }
.vacc-video-banner > .elementor-container { position: relative; z-index: 1; }
@media (prefers-reduced-motion: reduce) { .vacc-video-banner > .elementor-background-video-container { display: none; } }
/* Services: the empty text section above the banner would leave a white strip. */
.elementor-element-3bd83002:not(:has(.elementor-widget-container *)) { display: none; }

/* Our Commitment: the four commitment pillars as cards on a light band. */
.elementor-321 .elementor-element-6647f2d {
  background: #f4f6f9;
  padding: 88px 0 !important;
  margin: 0 !important;
  counter-reset: pillar;
}
.elementor-321 .elementor-element-6647f2d > .elementor-container { gap: 24px; }
.elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap {
  counter-increment: pillar;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  height: 100%;
  padding: 44px 28px 40px !important;
  background: #fff;
  border: 1px solid #e3e8ef;
  border-radius: 10px;
  text-align: center;
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
/* Red top edge, revealed on hover. */
.elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: #e3141c;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s ease;
}
/* Small index number in the corner. */
.elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap::after {
  content: counter(pillar, decimal-leading-zero);
  position: absolute;
  top: 18px;
  right: 22px;
  color: #e3141c;
  font: 600 13px/1 "Roboto", sans-serif;
  letter-spacing: .08em;
}
.elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap:hover {
  transform: translateY(-6px);
  border-color: transparent;
  box-shadow: 0 18px 40px rgba(13, 42, 76, .12);
}
.elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap:hover::before { transform: scaleX(1); }
.elementor-321 .elementor-element-6647f2d .elementor-widget-icon { width: auto !important; margin: 0 0 26px !important; }
.elementor-321 .elementor-element-6647f2d .elementor-icon {
  display: grid !important;
  place-items: center;
  width: 72px;
  height: 72px;
  padding: 0 !important;
  border-radius: 16px !important;
  background: linear-gradient(135deg, #1d5592, #123660) !important;
  color: #fff !important;
  font-size: 28px !important;
  box-shadow: 0 10px 22px rgba(22, 66, 113, .25);
}
.elementor-321 .elementor-element-6647f2d .elementor-icon i,
.elementor-321 .elementor-element-6647f2d .elementor-icon svg { color: #fff !important; fill: #fff !important; width: 1em; height: 1em; }
.elementor-321 .elementor-element-6647f2d .elementor-widget-heading { width: 100%; margin: 0 !important; }
.elementor-321 .elementor-element-6647f2d .elementor-heading-title {
  color: #164271 !important;
  font: 600 20px/1.3 "Roboto", sans-serif !important;
}
/* Short red accent under each title. */
.elementor-321 .elementor-element-6647f2d .elementor-heading-title::after {
  content: "";
  display: block;
  width: 36px;
  height: 3px;
  margin: 16px auto 0;
  border-radius: 2px;
  background: #e3141c;
}
@media (max-width: 1024px) {
  .elementor-321 .elementor-element-6647f2d > .elementor-container { flex-wrap: wrap; }
  .elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column { width: calc(50% - 12px) !important; }
}
@media (max-width: 767px) {
  .elementor-321 .elementor-element-6647f2d { padding: 56px 16px !important; }
  .elementor-321 .elementor-element-6647f2d > .elementor-container { gap: 16px; }
  .elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column { width: 100% !important; }
  .elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 36px 24px 32px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap { transition: none; }
}
.elementor-321 .elementor-element-6647f2d .elementor-widget-icon > .elementor-widget-container { margin: 0 !important; padding: 0 !important; background: none !important; }

/* Work Culture: space before the footer now that the photo row is gone. */
.elementor-element-7b58fca { padding-bottom: 80px !important; }

/* Community & Environment: wide stakeholder photo after the partnerships text. */
.vacc-feature-photo { padding: 0 0 96px; margin-top: -48px; }
.vacc-feature-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1800 / 766;
  object-fit: cover;
  border-radius: 20px;
  box-shadow: 0 24px 48px rgba(13, 42, 76, .14);
}
@media (max-width: 767px) {
  .vacc-feature-photo { padding: 0 16px 56px; margin-top: -24px; }
  .vacc-feature-photo img { border-radius: 14px; }
}

/* Project card grids (homepage Featured / Regional Projects, sector pages):
   every card the same height, photos the same shape, button at the bottom. */
.elementor-widget-loop-grid .elementor-loop-container > .e-loop-item {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.elementor-widget-loop-grid .e-loop-item > .elementor-section:first-child img {
  display: block;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.elementor-widget-loop-grid .e-loop-item > .elementor-section:last-child { flex: 1; display: flex; flex-direction: column; }
/* The recovered loop template limits the details container to its contents.
   Let titles, metadata and the action use the full width of each white card. */
.elementor-widget-loop-grid .elementor-5084 .elementor-element-620258f > .elementor-container {
  width: 100%;
  max-width: none !important;
}
.elementor-widget-loop-grid .e-loop-item > .elementor-section:last-child > .elementor-container,
.elementor-widget-loop-grid .e-loop-item > .elementor-section:last-child > .elementor-container > .elementor-column { flex: 1; align-items: stretch !important; }
.elementor-widget-loop-grid .e-loop-item > .elementor-section:last-child .elementor-widget-wrap {
  flex-direction: column;
  flex-wrap: nowrap !important;
  align-content: flex-start !important;
  justify-content: flex-start !important;
  height: 100%;
}
.elementor-widget-loop-grid .e-loop-item > .elementor-section:last-child .elementor-widget-wrap > .elementor-widget-button:last-child { margin-top: auto !important; }

/* Footer credit: small "Fineries Digital" link. */
footer.elementor-location-footer .elementor-element-7e27937e .elementor-heading-title { font-size: 11px !important; letter-spacing: .02em; }
footer.elementor-location-footer .elementor-element-7e27937e a { color: rgba(255, 255, 255, .32) !important; text-decoration: none !important; transition: color .2s; }
footer.elementor-location-footer .elementor-element-7e27937e a:hover, footer.elementor-location-footer .elementor-element-7e27937e a:focus-visible { color: #fff !important; text-decoration: none !important; }
