/* ==========================================================================
   Strategic Workforce Partners — Site Polish Layer
   Single canonical source for global visual refinement: typography,
   section rhythm, card treatment, buttons, links, header elevation.
   Do not duplicate this via Elementor Custom CSS or inline <style> blocks.
   Edit THIS file only. Version: 1.0 — 2026-07-15
   ========================================================================== */

/* ---- Type ---- */
:root {
  --swp-navy: #0F2A47;
  --swp-navy-deep: #0A1D33;
  --swp-gold: #C9A227;
  --swp-gold-light: #E4C766;
  --swp-light: #F6F7F9;
  --swp-white: #FFFFFF;
  --swp-text: #2B2F33;
  --swp-muted: #5B6470;
  --swp-section-y: 96px;
  --swp-section-y-tablet: 64px;
  --swp-section-y-mobile: 56px;
}

body, .elementor-widget-text-editor, .elementor-widget-icon-box .elementor-icon-box-description {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--swp-text);
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  font-family: 'Plus Jakarta Sans', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

.elementor-widget-heading h1.elementor-heading-title {
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.08;
}

/* ---- Section rhythm ---- */
.swp-sec {
  padding-top: var(--swp-section-y);
  padding-bottom: var(--swp-section-y);
}
@media (max-width: 1024px) {
  .swp-sec { padding-top: var(--swp-section-y-tablet); padding-bottom: var(--swp-section-y-tablet); }
}
@media (max-width: 600px) {
  .swp-sec { padding-top: var(--swp-section-y-mobile); padding-bottom: var(--swp-section-y-mobile); }
}

.swp-sec-topbar { padding-top: 0; padding-bottom: 0; }
.swp-sec-hero { padding-top: 72px; padding-bottom: 88px; }
.swp-sec-trust { padding-top: 32px; padding-bottom: 32px; }
.swp-sec-footer { padding-top: 0; padding-bottom: 0; }
.swp-sec-dark-cta { padding-top: 80px; padding-bottom: 80px; }

/* Alternating tint bands for visual rhythm, à la large corporate sites */
.swp-sec-alt {
  background: linear-gradient(180deg, var(--swp-light) 0%, #F1F3F6 100%);
  position: relative;
}
.swp-sec-alt::before,
.swp-sec-alt::after {
  content: '';
  position: absolute;
  left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(15,42,71,.08), transparent);
}
.swp-sec-alt::before { top: 0; }
.swp-sec-alt::after { bottom: 0; }

.swp-sec-hero {
  background: radial-gradient(120% 140% at 100% 0%, rgba(201,162,39,.07) 0%, transparent 55%),
              linear-gradient(180deg, #FFFFFF 0%, #FBFBFC 100%);
}

.swp-sec-dark-cta {
  background: linear-gradient(135deg, var(--swp-navy-deep) 0%, var(--swp-navy) 100%);
  position: relative;
  overflow: hidden;
}
.swp-sec-dark-cta::before {
  content: '';
  position: absolute;
  top: -40%; right: -10%;
  width: 480px; height: 480px;
  background: radial-gradient(circle, rgba(201,162,39,.16) 0%, transparent 70%);
  pointer-events: none;
}
.swp-sec-dark-cta .elementor-heading-title { color: var(--swp-white); }

/* ---- Eyebrow labels (already gold, tighten rhythm) ---- */
.swp-sec .elementor-widget-text-editor:first-child p:first-child,
.swp-sec p[style*="letter-spacing:2px"] {
  margin-bottom: 6px !important;
}

/* ---- Card polish: icon-box widgets used across services/why-choose/process/industries ---- */
.elementor-widget-icon-box {
  background: var(--swp-white);
  border-radius: 16px;
  padding: 32px 26px !important;
  box-shadow: 0 1px 2px rgba(15,42,71,.04), 0 12px 24px -12px rgba(15,42,71,.10);
  border: 1px solid rgba(15,42,71,.06);
  transition: transform .35s cubic-bezier(.16,.84,.44,1), box-shadow .35s cubic-bezier(.16,.84,.44,1), border-color .35s ease;
  position: relative;
  overflow: hidden;
}
.elementor-widget-icon-box::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--swp-gold), var(--swp-gold-light));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s cubic-bezier(.16,.84,.44,1);
}
.elementor-widget-icon-box:hover {
  transform: translateY(-8px);
  box-shadow: 0 4px 8px rgba(15,42,71,.06), 0 24px 40px -16px rgba(15,42,71,.18);
  border-color: rgba(201,162,39,.25);
}
.elementor-widget-icon-box:hover::before {
  transform: scaleX(1);
}
.elementor-widget-icon-box .elementor-icon-box-icon {
  margin-bottom: 6px;
}
.elementor-widget-icon-box .elementor-icon-box-icon i,
.elementor-widget-icon-box .elementor-icon-box-icon svg {
  background: linear-gradient(135deg, var(--swp-navy) 0%, var(--swp-navy-deep) 100%);
  color: var(--swp-gold) !important;
  width: 56px; height: 56px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform .35s cubic-bezier(.16,.84,.44,1);
}
.elementor-widget-icon-box:hover .elementor-icon-box-icon i,
.elementor-widget-icon-box:hover .elementor-icon-box-icon svg {
  transform: scale(1.08) rotate(-4deg);
}
.elementor-widget-icon-box .elementor-icon-box-title {
  font-weight: 700;
  margin-bottom: 6px;
}
.elementor-widget-icon-box .elementor-icon-box-description {
  font-size: 15px;
  line-height: 1.6;
}

/* "Learn More →" links under service cards */
.swp-sec-services .elementor-widget-text-editor a,
.swp-sec-services a[href*="Learn"] {
  font-weight: 600;
}

/* ---- Buttons ---- */
.elementor-button {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.elementor-button::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%);
  transform: translateX(-120%);
  transition: transform .6s ease;
  z-index: -1;
}
.elementor-button:hover::after {
  transform: translateX(120%);
}

/* ---- Links (general text links inside body copy) ---- */
.elementor-widget-text-editor a:not(.elementor-button) {
  position: relative;
  text-decoration: none;
  background-image: linear-gradient(var(--swp-gold), var(--swp-gold));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 2px;
  transition: background-size .3s ease;
}
.elementor-widget-text-editor a:not(.elementor-button):hover {
  background-size: 100% 2px;
}

/* ---- Footer link list tidy (no underline flourish, keep it calm) ---- */
.swp-sec-footer .elementor-widget-text-editor a:not(.elementor-button) {
  background-image: none;
}
.swp-sec-footer .elementor-widget-text-editor a:hover {
  color: var(--swp-gold) !important;
}

/* ---- Header elevation on scroll (class toggled by swp-header.js) ---- */
.swp-header {
  transition: box-shadow .3s ease, padding .3s ease;
}
.swp-header.swp-scrolled {
  box-shadow: 0 4px 20px rgba(15,42,71,.10);
}

/* ---- Focus states for accessibility polish ---- */
a:focus-visible,
button:focus-visible,
.elementor-button:focus-visible {
  outline: 2px solid var(--swp-gold);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ---- Industries grid text tone ---- */
.swp-sec-alt .elementor-widget-icon-box .elementor-icon-box-description {
  color: var(--swp-muted);
}

@media (prefers-reduced-motion: reduce) {
  .elementor-widget-icon-box,
  .elementor-widget-icon-box::before,
  .elementor-widget-icon-box .elementor-icon-box-icon i,
  .elementor-button::after,
  .elementor-widget-text-editor a:not(.elementor-button),
  .swp-header {
    transition: none !important;
  }
}
