/* ========================================================================== 
   ESPO 2.5.1.123.32 — Global luxury refinement
   Gradual, targeted visual polish that preserves the approved ESPO identity.
   Focus areas: CTA tone, button system, card energy, and footer atmosphere.
   ========================================================================== */

:root {
  --espo-premium-blue: #0b6da8;
  --espo-premium-blue-strong: #0f7fc5;
  --espo-premium-blue-deep: #0f2438;
  --espo-premium-gold: #c29a46;
  --espo-premium-gold-soft: #dcc37a;
  --espo-premium-ivory: #f6f1e7;
  --espo-premium-shadow: 0 18px 42px rgba(15, 36, 56, .08);
}

/* Buttons ---------------------------------------------------------------- */
.espo-btn {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease, color .22s ease;
}

.espo-btn:not(.espo-btn--text) {
  position: relative;
  overflow: hidden;
}

.espo-btn:not(.espo-btn--text)::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 -35%;
  width: 30%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent);
  transform: skewX(-18deg);
  opacity: 0;
  transition: transform .45s ease, opacity .3s ease;
}

.espo-btn:not(.espo-btn--text):hover::before,
.espo-btn:not(.espo-btn--text):focus-visible::before {
  opacity: 1;
  transform: translateX(420%) skewX(-18deg);
}

.espo-btn--primary {
  --espo-btn-bg: linear-gradient(135deg, var(--espo-premium-blue-strong), var(--espo-premium-blue));
  --espo-btn-bg-hover: linear-gradient(135deg, #1490df, #0b6da8);
  --espo-btn-color: #fff;
  --espo-btn-color-hover: #fff;
  --espo-btn-border: rgba(11,109,168,.94);
  --espo-btn-border-hover: rgba(11,109,168,.98);
  --espo-btn-shadow: 0 8px 22px rgba(11,109,168,.18);
  --espo-btn-shadow-hover: 0 14px 30px rgba(11,109,168,.24);
}

.espo-btn--dark {
  --espo-btn-bg: linear-gradient(135deg, #16324b, #0f2438);
  --espo-btn-bg-hover: linear-gradient(135deg, #1a4f79, #0b6da8);
  --espo-btn-color: #fff;
  --espo-btn-color-hover: #fff;
  --espo-btn-border: rgba(15,36,56,.96);
  --espo-btn-border-hover: rgba(11,109,168,.96);
  --espo-btn-shadow: 0 8px 22px rgba(15,36,56,.18);
  --espo-btn-shadow-hover: 0 14px 30px rgba(11,109,168,.20);
}

.espo-btn--accent {
  --espo-btn-bg: linear-gradient(135deg, #d3b15c, var(--espo-premium-gold));
  --espo-btn-bg-hover: linear-gradient(135deg, #e0c97c, #c79d44);
  --espo-btn-color: #162230;
  --espo-btn-color-hover: #162230;
  --espo-btn-border: rgba(194,154,70,.94);
  --espo-btn-border-hover: rgba(194,154,70,.98);
  --espo-btn-shadow: 0 8px 22px rgba(194,154,70,.16);
  --espo-btn-shadow-hover: 0 14px 30px rgba(194,154,70,.22);
}

.espo-btn--secondary {
  --espo-btn-bg: #fff;
  --espo-btn-bg-hover: #f8fbfd;
  --espo-btn-color: var(--espo-ink);
  --espo-btn-color-hover: var(--espo-premium-blue);
  --espo-btn-border: rgba(17,28,39,.12);
  --espo-btn-border-hover: rgba(11,109,168,.26);
  --espo-btn-shadow: 0 6px 16px rgba(17,28,39,.04);
  --espo-btn-shadow-hover: 0 10px 22px rgba(11,109,168,.08);
}

.espo-btn--text {
  --espo-btn-color-hover: var(--espo-premium-blue);
}

.site-header .espo-btn,
.espo-final-cta__actions .espo-btn,
.espo-contact-page .espo-btn {
  border-radius: .88rem;
}

/* Shared CTA ------------------------------------------------------------- */
.home .espo-final-cta,
.espo-home-cta-canonical .espo-final-cta {
  border: 0;
  background:
    radial-gradient(circle at 12% 18%, rgba(11,109,168,.12), transparent 34%),
    radial-gradient(circle at 88% 14%, rgba(194,154,70,.09), transparent 24%),
    linear-gradient(135deg, #112131 0%, #17324c 52%, #102636 100%) !important;
}

.home .espo-final-cta__grid,
.espo-home-cta-canonical .espo-final-cta__grid {
  opacity: .16;
}

.home .espo-final-cta__panel,
.espo-home-cta-canonical .espo-final-cta__panel {
  border-color: rgba(255,255,255,.13) !important;
  background: linear-gradient(135deg, rgba(255,255,255,.085), rgba(255,255,255,.032)) !important;
  box-shadow: 0 32px 80px rgba(10, 21, 34, .25) !important;
}

.home .espo-final-cta__eyebrow,
.espo-home-cta-canonical .espo-final-cta__eyebrow {
  color: rgba(255,255,255,.66);
}

.home .espo-final-cta__eyebrow::before,
.espo-home-cta-canonical .espo-final-cta__eyebrow::before {
  background: linear-gradient(90deg, var(--espo-premium-gold), var(--espo-premium-gold-soft)) !important;
}

.home .espo-final-cta__copy > p,
.espo-home-cta-canonical .espo-final-cta__copy > p {
  color: rgba(255,255,255,.72) !important;
}

.home .espo-final-cta__actions .espo-btn,
.espo-home-cta-canonical .espo-final-cta__actions .espo-btn {
  min-height: 2.95rem;
  border-radius: 999px !important;
  padding-inline: 1.2rem;
}

.home .espo-final-cta__actions .espo-btn--primary,
.espo-home-cta-canonical .espo-final-cta__actions .espo-btn--primary {
  color: #102636 !important;
  border-color: var(--espo-premium-ivory) !important;
  background: linear-gradient(135deg, #fffdf8, var(--espo-premium-ivory)) !important;
  box-shadow: 0 14px 30px rgba(255,255,255,.10) !important;
}

.home .espo-final-cta__actions .espo-btn--primary:hover,
.home .espo-final-cta__actions .espo-btn--primary:focus-visible,
.espo-home-cta-canonical .espo-final-cta__actions .espo-btn--primary:hover,
.espo-home-cta-canonical .espo-final-cta__actions .espo-btn--primary:focus-visible {
  color: #fff !important;
  border-color: var(--espo-premium-blue-strong) !important;
  background: linear-gradient(135deg, var(--espo-premium-blue-strong), var(--espo-premium-blue)) !important;
  box-shadow: 0 16px 34px rgba(11,109,168,.28) !important;
}

.home .espo-final-cta__actions .espo-btn--accent,
.espo-home-cta-canonical .espo-final-cta__actions .espo-btn--accent {
  color: #fff7df !important;
  border-color: rgba(220,195,122,.48) !important;
  background: rgba(255,255,255,.04) !important;
}

.home .espo-final-cta__actions .espo-btn--accent:hover,
.home .espo-final-cta__actions .espo-btn--accent:focus-visible,
.espo-home-cta-canonical .espo-final-cta__actions .espo-btn--accent:hover,
.espo-home-cta-canonical .espo-final-cta__actions .espo-btn--accent:focus-visible {
  color: #122233 !important;
  border-color: var(--espo-premium-gold) !important;
  background: linear-gradient(135deg, #dcc37a, var(--espo-premium-gold)) !important;
  box-shadow: 0 16px 34px rgba(194,154,70,.18) !important;
}

.home .espo-final-cta__actions .espo-button-on-dark,
.espo-home-cta-canonical .espo-final-cta__actions .espo-button-on-dark {
  color: rgba(255,255,255,.86) !important;
  border-color: rgba(255,255,255,.24) !important;
  background: rgba(255,255,255,.045) !important;
}

.home .espo-final-cta__actions .espo-button-on-dark:hover,
.home .espo-final-cta__actions .espo-button-on-dark:focus-visible,
.espo-home-cta-canonical .espo-final-cta__actions .espo-button-on-dark:hover,
.espo-home-cta-canonical .espo-final-cta__actions .espo-button-on-dark:focus-visible {
  color: #fff !important;
  border-color: rgba(255,255,255,.34) !important;
  background: rgba(11,109,168,.22) !important;
}

.home .espo-final-cta__brand,
.espo-home-cta-canonical .espo-final-cta__brand {
  border-inline-start-color: rgba(255,255,255,.12) !important;
}

.home .espo-cta-wordmark__rail i,
.espo-home-cta-canonical .espo-cta-wordmark__rail i {
  opacity: .65;
}

/* Shared cards ----------------------------------------------------------- */
.espo-service-card,
.espo-project-card,
.espo-sector-card,
.espo-home-service-card,
.espo-home-insight-card,
.espo-home-client-card,
.espo-why-card,
.espo-cohesive-service-card,
.espo-cohesive-work__card,
.espo-about-approach__card,
.espo-sectors-method-card,
.espo-service-detail__card,
.espo-service-detail__cross-card,
.espo-service-detail__related-card,
.espo-project-related-card,
.espo-case-story__card,
.espo-case-related__card,
.espo-contact-info-card,
.espo-map-card {
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease, background .24s ease;
}

.espo-service-card:hover,
.espo-project-card:hover,
.espo-sector-card:hover,
.espo-home-service-card:hover,
.espo-home-insight-card:hover,
.espo-home-client-card:hover,
.espo-why-card:hover,
.espo-cohesive-service-card:hover,
.espo-cohesive-work__card:hover,
.espo-about-approach__card:hover,
.espo-sectors-method-card:hover,
.espo-service-detail__card:hover,
.espo-service-detail__cross-card:hover,
.espo-service-detail__related-card:hover,
.espo-project-related-card:hover,
.espo-case-story__card:hover,
.espo-case-related__card:hover,
.espo-contact-info-card:hover,
.espo-map-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--espo-premium-shadow);
}

.espo-project-card:hover,
.espo-service-card:hover,
.espo-sector-card:hover,
.espo-home-service-card:hover,
.espo-why-card:hover,
.espo-cohesive-service-card:hover,
.espo-cohesive-work__card:hover,
.espo-service-detail__card:hover,
.espo-project-related-card:hover,
.espo-case-related__card:hover {
  border-color: rgba(11,109,168,.16);
}

/* Section labels & subtle atmosphere ------------------------------------ */
.espo-section-label > span:first-child,
.espo-contact-page .espo-section-label > span:first-child {
  box-shadow: 0 0 0 1px rgba(194,154,70,.10), 0 6px 18px rgba(11,109,168,.05);
}

/* Footer ----------------------------------------------------------------- */
.espo-site-footer {
  background:
    linear-gradient(90deg, rgba(255,255,255,.014) 1px, transparent 1px),
    linear-gradient(rgba(255,255,255,.014) 1px, transparent 1px),
    radial-gradient(circle at 12% 0%, rgba(11,109,168,.11), transparent 30%),
    radial-gradient(circle at 88% 18%, rgba(194,154,70,.07), transparent 26%),
    linear-gradient(145deg, #0f1b28 0%, #122232 54%, #0d1824 100%) !important;
  background-size: 72px 72px, 72px 72px, auto, auto, auto !important;
}

.espo-footer-phonechip,
.espo-footer-social a {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}

.espo-footer-phonechip:hover,
.espo-footer-phonechip:focus-visible,
.espo-footer-social a:hover,
.espo-footer-social a:focus-visible {
  border-color: rgba(194,154,70,.24);
  background: rgba(255,255,255,.06);
}

.espo-footer-navgroup a:hover,
.espo-footer-language:hover,
.espo-footer-contactitem:hover {
  color: rgba(255,255,255,.92) !important;
}

/* Responsive safety ------------------------------------------------------ */
@media (max-width: 767px) {
  .home .espo-final-cta__actions .espo-btn,
  .espo-home-cta-canonical .espo-final-cta__actions .espo-btn {
    width: 100%;
    justify-content: center;
  }
}
