
html,body,button,input,select,textarea,nav,footer,header,section,article,h1,h2,h3,h4,h5,h6,a,p,li,small,strong,em,label{
  font-family:'BankGothic','Bank Gothic Medium BT',system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial,sans-serif;
}
@font-face{font-family:'BankGothic';src:url('assets/BankGothicMediumBT.woff2') format('woff2'),url('assets/BankGothicMediumBT.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}:root{--brand:#005EB8;--brand-2:#005EB8;--accent:#C8102E;--text:#112233;--muted:#667085;--bg:#ffffff;--bg-soft:#f6f9fb}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial;color:var(--text);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.wrap{width:min(1120px,92vw);margin-inline:auto}.topbar{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid #e5e7eb}.topbar .wrap{display:flex;align-items:center;gap:16px;padding:12px 0}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand img{height:44px;width:auto;object-fit:contain;display:block}.brand-text{font-weight:600;letter-spacing:.02em;color:var(--text)}.nav{margin-left:auto;display:flex;gap:18px}.nav a{color:var(--text);text-decoration:none;font-weight:500}.nav a:hover{color:var(--brand)}.cta{margin-left:12px;padding:10px 14px;border-radius:10px;background:var(--brand);color:#fff;text-decoration:none;font-weight:600}.cta:hover{filter:brightness(1.1)}.hero{position:relative;padding:56px 0;background:linear-gradient(180deg,var(--bg) 0%,var(--bg-soft) 100%);background-image:var(--hero);background-size:cover;background-position:center}.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(255,255,255,0.88) 0%,rgba(255,255,255,0.6) 40%,rgba(255,255,255,0.25) 100%)}.hero .wrap{position:relative}.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:28px}.hero h1{font-size:clamp(28px,4vw,40px);margin:0 0 10px;color:var(--brand)}.hero p{color:var(--muted);margin:0 0 18px}.hero-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:18px;box-shadow:0 2px 8px rgba(16,24,40,.06)}.hero-card h2{font-size:18px;margin:10px 0 6px;color:var(--text)}.phones{list-style:none;padding:0;margin:0}.phones li a{color:var(--text);text-decoration:none}.hero-cta{display:flex;gap:10px}.btn{display:inline-block;padding:12px 16px;border-radius:10px;text-decoration:none;background:var(--accent);color:#fff;font-weight:700}.btn.ghost{background:transparent;border:1px solid var(--accent);color:var(--accent)}.btn:hover{filter:brightness(1.05)}.section{padding:48px 0}.section.soft{background:var(--bg-soft)}.section h2{font-size:28px;margin:0 0 16px;color:var(--brand)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px;box-shadow:0 1px 4px rgba(16,24,40,.04)}.card.with-img img{width:100%;height:160px;object-fit:cover;border-radius:10px;margin-bottom:10px}.card h3{margin:0 0 6px;color:#0f172a}.card p{margin:0;color:var(--muted)}.logos{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:0 0 10px 0}.logo-badge{display:inline-block;padding:10px 14px;border-radius:12px;border:1px dashed #cbd5e1;background:#fff;font-weight:700}.hint{color:var(--muted);font-size:14px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-list{list-style:none;padding:0;margin:0}.map-placeholder{background:#fff;border:1px solid #e5e7eb;border-radius:12px;min-height:200px;display:flex;align-items:center;justify-content:center;color:var(--muted)}.footer{padding:24px 0;border-top:1px solid #e5e7eb;color:#475569;background:#fff}.footer a{color:var(--brand);text-decoration:none}@media (max-width:860px){.hero-grid,.contact-grid{grid-template-columns:1fr}.nav{display:none}}.slider{position:relative;overflow:hidden;border-radius:14px;border:1px solid #e5e7eb}.slider .track{display:flex;transition:transform .6s ease;will-change:transform}.slider .slide{min-width:100%}.slider img{width:100%;height:clamp(220px,40vw,440px);object-fit:cover;display:block}.slider .nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.45);border:none;color:#fff;font-size:32px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer}.slider .nav:hover{background:rgba(0,0,0,.6)}.slider .prev{left:10px}.slider .next{right:10px}.slider .dots{position:absolute;left:0;right:0;bottom:10px;display:flex;gap:8px;justify-content:center}.slider .dot{width:8px;height:8px;border-radius:50%;background:#cbd5e1}.slider .dot.active{background:var(--brand)}.reveal{opacity:1;transform:none;}.reveal.in{opacity:1;transform:none}.card,.gallery img,.slider img{transition:transform .35s ease,box-shadow .35s ease;will-change:transform}.card:hover,.gallery img:hover,.slider img:hover{transform:scale(1.02);box-shadow:0 8px 24px rgba(16,24,40,.12)}.feature-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:center}.feature-copy p{color:var(--muted)}.feature-list{margin:14px 0 18px;padding-left:18px;color:#334155}.feature-visual img{width:100%;max-height:360px;object-fit:cover;border-radius:12px;border:1px solid #e5e7eb;box-shadow:0 2px 8px rgba(16,24,40,.06)}@media (max-width:860px){.feature-grid{grid-template-columns:1fr}}.conductores .banner-image{width:100%}.conductores .banner-image img{width:100%;height:clamp(240px,48vw,520px);object-fit:cover;border-radius:14px;border:1px solid #e5e7eb;box-shadow:0 2px 10px rgba(16,24,40,.08)}.conductores-copy{margin-top:18px;text-align:left}.conductores-copy p{color:var(--muted);max-width:80ch}.conductores .hero-cta{margin-top:10px}@media (max-width:860px){.conductores .banner-image img{height:clamp(200px,46vw,360px);border-radius:10px}.conductores-copy{text-align:left}}.wa-float{position:fixed;right:16px;bottom:16px;width:56px;height:56px;border-radius:50%;background:#25D366;display:grid;place-items:center;box-shadow:0 10px 20px rgba(0,0,0,.18);z-index:50;text-decoration:none}.wa-float:hover{filter:brightness(1.05);box-shadow:0 12px 28px rgba(0,0,0,.22)}.wa-float svg{width:28px;height:28px;fill:#fff}@media (max-width:480px){.wa-float{right:12px;bottom:12px;width:52px;height:52px}.wa-float svg{width:26px;height:26px}}.form{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px;box-shadow:0 2px 8px rgba(16,24,40,.06)}.form h3{margin-top:0;color:var(--brand)}.form label{display:block;margin:10px 0}.form input,.form select,.form textarea{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;font:inherit;background:#fff}.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(0,94,184,.12)}.form button.btn{width:100%;margin-top:8px}.form-hint{color:var(--muted);font-size:13px;margin:8px 2px 0}

/* --- Visual consistency & typography tuning --- */
:root{
  --lh: 1.45;
}
body{ line-height: var(--lh); }
h1{ font-size: clamp(30px, 4.2vw, 44px); line-height: 1.15; letter-spacing: .2px }
h2{ font-size: clamp(22px, 2.6vw, 30px); line-height: 1.2; letter-spacing: .2px }
h3{ font-size: clamp(18px, 2.0vw, 22px); line-height: 1.25; letter-spacing: .15px }
p,li,label,button,a,small{ letter-spacing: .1px }

/* Images: use aspect-ratio to avoid distortion and keep sharpness */
.card.with-img img{ width:100%; aspect-ratio: 16/9; height:auto; object-fit:cover; border-radius:10px; margin-bottom:10px; }
.team .person img{ width:100%; aspect-ratio: 16/9; height:auto; object-fit:cover; border-radius:12px; border:1px solid #e5e7eb }
.gallery img{ width:100%; aspect-ratio: 4/3; height:auto; object-fit:cover; border-radius:12px; border:1px solid #e5e7eb; box-shadow: 0 1px 4px rgba(16,24,40,.04) }
.conductores .banner-image img{ width:100%; aspect-ratio: 16/9; height:auto; object-fit:cover; }

/* Reduce hover scale to prevent blurring on some GPUs */
.card:hover, .gallery img:hover, .slider img:hover{ transform: scale(1.01) }


/* Google Maps embed full-width below contact */
.map-embed{ width:100%; margin:22px 0; }
.map-embed iframe{
  width:100%;
  aspect-ratio: 16/9;
  border:1px solid #e5e7eb;
  border-radius: 14px;
  box-shadow: 0 2px 8px rgba(16,24,40,.06);
}
@media (max-width: 860px){
  .map-embed iframe{ border-radius: 10px; }
}


/* --- Safe Reveal v2 --- */
.reveal{ opacity:1; transform:none; transition:opacity .6s ease, transform .6s ease; }
.reveal.anim{ opacity:0; transform: translateY(14px); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal.anim, .reveal.in{ transition:none; opacity:1; transform:none; }
}


/* Ensure services cards display properly */
.cards{ display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap:16px; }

/* Map panoramic ratio */
.map-embed iframe{ aspect-ratio: 21/9; }
@media (max-width: 860px){
  .map-embed iframe{ aspect-ratio: 16/10; }
}


/* --- Spacing Harmony --- */
:root{
  --section-pad-desktop: 56px;
  --section-pad-mobile: 40px;
  --heading-gap: 16px;
}

/* Base spacing for all sections */
.section{ padding: var(--section-pad-desktop) 0; }
@media (max-width: 860px){
  .section{ padding: var(--section-pad-mobile) 0; }
}

/* Normalize heading spacing */
.section h2{ margin: 0 0 var(--heading-gap); }
.section h3{ margin: 0 0 10px; }

/* Even flow between these blocks */
#servicios.section,
#conductores.section,
#mutuas.section,
#equipo.section,
#contacto.section{
  padding-top: var(--section-pad-desktop);
  padding-bottom: var(--section-pad-desktop);
}
@media (max-width: 860px){
  #servicios.section,
  #conductores.section,
  #mutuas.section,
  #equipo.section,
  #contacto.section{
    padding-top: var(--section-pad-mobile);
    padding-bottom: var(--section-pad-mobile);
  }
}

/* Slightly reduce bottom space after hero to tighten flow */
.hero{ padding-bottom: calc(var(--section-pad-desktop) * 0.8); }
@media (max-width: 860px){
  .hero{ padding-bottom: calc(var(--section-pad-mobile) * 0.8); }
}

/* Consistent gap for gallery/slider/map blocks inside sections/wraps */
.gallery, .slider, .map-embed{ margin-top: 12px; }


/* Servicios: ensure grid and visibility */
#servicios .cards{ display:grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap:16px; }
#servicios .card{ display:block; background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:16px; box-shadow: 0 1px 4px rgba(16,24,40,.04); }
#servicios .card h3{ margin:6px 0; }
#servicios .card p{ margin:0 0 8px; color:var(--muted); }
#servicios .card.with-img img{ width:100%; aspect-ratio:16/9; height:auto; object-fit:cover; border-radius:10px; margin-bottom:10px; }


/* Final consistency: map panorama and section spacing already set; keep here as safety */
.map-embed iframe{ aspect-ratio: 21/9; }
@media (max-width: 860px){ .map-embed iframe{ aspect-ratio: 16/10; } }
