/*
Theme Name: IMSA Pintors Elementor
Theme URI: https://www.imsapintors.com
Author: IMSA Pintors
Author URI: https://www.imsapintors.com
Description: Tema en blanco optimizado para Elementor. Incluye los colores, tipografías y estilos globales de IMSA Pintors listos para usar en el editor visual.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: imsa-elementor
Tags: elementor, blank, business, one-page, custom-colors
*/

/* ── Reset & Base ─────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Lato', sans-serif; color: #444; overflow-x: hidden; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; }

/* ── IMSA Brand Color Variables ───────────────────────── */
:root {
  --imsa-yellow:  #F5C400;
  --imsa-orange:  #E07B00;
  --imsa-red:     #C0170A;
  --imsa-dark:    #1C0D00;
  --imsa-dark2:   #2A1500;
  --imsa-white:   #ffffff;
  --imsa-gray:    #f5f5f5;
  --imsa-gray2:   #e0e0e0;
  --imsa-text:    #444444;
}

/* ── Typography ───────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Oswald', sans-serif;
  color: #1C0D00;
  line-height: 1.15;
}

/* ── Elementor Canvas Override ────────────────────────── */
.elementor-page { margin: 0 !important; }

/* Remove default WP margins Elementor can conflict with */
.site-content, .entry-content, article {
  margin: 0;
  padding: 0;
}

/* ── IMSA Global Utility Classes ──────────────────────── */
.section-title em {
    color: var(--imsa-orange);
    font-style: normal;
}
/* Buttons */
.imsa-btn {
  display: inline-block;
  padding: 14px 32px;
  font-family: 'Oswald', sans-serif;
  font-size: 14px;
  letter-spacing: 2px;
  text-transform: uppercase;
  border-radius: 2px;
  transition: all .25s;
  cursor: pointer;
}
.imsa-btn-primary { background: #E07B00; color: #fff; }
.imsa-btn-primary:hover { background: #C0170A; color: #fff; }
.imsa-btn-outline { border: 2px solid #E07B00; color: #E07B00; }
.imsa-btn-outline:hover { background: #E07B00; color: #fff; }
.imsa-btn-white { border: 2px solid #fff; color: #fff; }
.imsa-btn-white:hover { background: #fff; color: #1C0D00; }

/* Section labels */
.imsa-tag {
  font-family: 'Oswald', sans-serif;
  font-size: 12px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #E07B00;
  display: block;
  margin-bottom: 10px;
}

/* Cards */
.imsa-card {
  background: #fff;
  border-radius: 3px !important;
  box-shadow: 0 4px 20px rgba(0,0,0,.07);
  overflow: hidden !important;
  transition: transform .3s, box-shadow .3s !important;
}
.imsa-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 36px rgba(192,23,10,.15);
}
.imsa-card-body { padding: 24px; }

/* Stats */
.imsa-stat-num {
  font-family: 'Oswald', sans-serif;
  font-size: 42px;
  color: #F5C400;
  font-weight: 700;
  line-height: 1;
}
.imsa-stat-label {
  font-size: 13px;
  color: rgba(255,255,255,.6);
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* Divider accent */
.imsa-divider {
  width: 60px;
  height: 3px;
  background: linear-gradient(90deg, #F5C400, #E07B00, #C0170A);
  margin: 16px 0 24px;
}

/* Dark background text helpers */
.imsa-on-dark h1, .imsa-on-dark h2,
.imsa-on-dark h3, .imsa-on-dark h4 { color: #fff; }
.imsa-on-dark p { color: rgba(255,255,255,.75); }

/* Service card image area */
.imsa-service-img {
  height: 220px;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  position: relative;
}
.imsa-service-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 40%, rgba(28,13,0,.4));
}

/* Portfolio overlay */
.imsa-port-overlay {
  position: absolute !important;
  inset: 0;
  background: rgba(28,13,0,.72);
  opacity: 0;
  transition: opacity .3s !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px;
  text-align: center !important;
}
.imsa-port-overlay:hover { opacity: 1; }

/* Testimonial card */
.imsa-testi {
  background: #fff;
  padding: 32px 28px;
  border-radius: 3px;
  box-shadow: 0 4px 20px rgba(0,0,0,.06);
  position: relative;
}
.imsa-testi::before {
  content: '"';
  font-family: Georgia, serif;
  font-size: 80px;
  color: #F5C400;
  line-height: 1;
  position: absolute;
  top: 12px;
  left: 24px;
  opacity: .3;
}
.imsa-testi-stars { color: #F5C400; font-size: 18px; margin-bottom: 16px; }

/* Process steps */
.imsa-step-num {
  width: 72px; height: 72px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid #E07B00;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Oswald', sans-serif;
  font-size: 26px;
  color: #E07B00;
  margin: 0 auto 20px;
  transition: background .2s, color .2s;
}
.imsa-step-num:hover { background: #E07B00; color: #fff; }

/* Contact form inputs */
.imsa-input {
  width: 100%;
  padding: 14px 18px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 2px;
  color: #fff;
  font-family: 'Lato', sans-serif;
  font-size: 15px;
  transition: border-color .2s;
  outline: none;
}
.imsa-input:focus { border-color: #E07B00; }

/* Navigation */
.imsa-nav a {
  font-family: 'Oswald', sans-serif;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 1px;
  color: #1C0D00;
  padding: 4px 0;
  border-bottom: 2px solid transparent;
  transition: color .2s, border-color .2s;
  text-transform: uppercase;
}
.imsa-nav a:hover { color: #E07B00; border-color: #E07B00; }

/* Topbar */
.imsa-topbar {
  background: #1C0D00;
  color: #aaa;
  font-size: 13px;
  padding: 8px 0;
}
.imsa-topbar a { color: #aaa; transition: color .2s; }
.imsa-topbar a:hover { color: #F5C400; }

/* CTA Banner */
.imsa-cta-phone {
  font-family: 'Oswald', sans-serif;
  font-size: 36px;
  color: #F5C400;
}

/* Footer */
.imsa-footer { background: #110700; }
.imsa-footer-links a {
  color: rgba(255,255,255,.55);
  display: block;
  margin-bottom: 10px;
  transition: color .2s;
}
.imsa-footer-links a:hover { color: #F5C400; }

/* Scroll to top */
.imsa-scroll-top {
  position: fixed;
  bottom: 28px; right: 28px;
  width: 44px; height: 44px;
  background: #E07B00;
  color: #fff;
  border: none; border-radius: 50%;
  font-size: 20px;
  cursor: pointer;
  display: none;
  align-items: center; justify-content: center;
  box-shadow: 0 4px 16px rgba(224,123,0,.4);
  z-index: 999;
  transition: background .2s;
}
.imsa-scroll-top:hover { background: #C0170A; }
.imsa-scroll-top.show { display: flex; }

/* Brand logos strip */
.imsa-brand-logo {
  font-family: 'Oswald', sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: #e0e0e0;
  letter-spacing: 3px;
  transition: color .2s;
}
.imsa-brand-logo:hover { color: #E07B00; }

/* Feature item with left border */
.imsa-feat {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px;
  border-left: 3px solid #E07B00;
  background: #f5f5f5;
  border-radius: 0 3px 3px 0;
  transition: border-color .2s;
}
.imsa-feat:hover { border-color: #C0170A; }
.imsa-feat-icon {
  width: 44px; height: 44px;
  background: #E07B00;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  font-size: 20px;
  flex-shrink: 0;
}

/* Badge (years of experience) */
.imsa-badge {
  background: #E07B00;
  color: #fff;
  padding: 18px 28px;
  border-radius: 3px;
  box-shadow: 0 8px 24px rgba(224,123,0,.35);
  display: inline-block;
}
.imsa-badge strong {
  font-family: 'Oswald', sans-serif;
  font-size: 40px;
  display: block;
  line-height: 1;
}

/* Animate on scroll helper */
.imsa-fade-in {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .5s ease, transform .5s ease;
}
.imsa-fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}
