/* Ajustes de marca Zero Absoluto sobre la plantilla */

/* Logo: los SVG traen margen interno, se fija la altura */
header #logo img { height: 72px; width: auto; }
header.smaller #logo img { height: 60px; }
@media (max-width: 767px) { header #logo img { height: 52px; } }
.footer-logo { height: 90px; width: auto; margin-left: -20px; }

/* Íconos en círculos y tarjetas (reemplazan las imágenes de la plantilla) */
.feature-icon { line-height: 80px; z-index: 2; }
.feature-icon i { color: #fff; font-size: 38px; vertical-align: middle; }
.card-icon { z-index: 2; }
.card-icon i { font-size: 40px; line-height: 54px; }
.bg-color-3.card-icon i { color: var(--primary-color); }
.bg-color.card-icon i, .bg-color-2.card-icon i { color: #fff; }

/* Fotos del cliente: recorte uniforme */
.card-photo, .equip-photo { width: 100%; height: 280px; object-fit: cover; }
.photo-tall { width: 100%; height: 440px; object-fit: cover; }
.service-photo { width: 100%; height: 460px; object-fit: cover; }
.faq-photo { width: 100%; height: 480px; object-fit: cover; }
.contact-photo { height: 260px; object-fit: cover; }
.gallery-frame img { width: 100%; height: 340px; object-fit: cover; }
@media (max-width: 767px) {
  .photo-tall, .service-photo, .faq-photo { height: 300px; }
}

/* Slider: fotos reales necesitan más contraste para el texto */
.swiper-inner .sw-overlay { background: linear-gradient(180deg, rgba(0, 47, 95, .55), rgba(0, 20, 40, .75)) !important; opacity: 1 !important; }
.btn-main.btn-outline-white { background: transparent; border: 2px solid #fff; color: #fff; }
.btn-main.btn-outline-white:hover { background: #fff; color: var(--primary-color); }

/* Insignia de seguridad */
.safety-badge {
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 20px;
  padding: 30px 20px;
  backdrop-filter: blur(4px);
}
.safety-badge i { font-size: 72px; color: var(--secondary-color); }

/* Correo grande en bloques de llamada a la acción */
.cta-mail a, .footer-mail a { color: #fff; word-break: break-word; }
.cta-mail { font-size: 28px; }
.footer-mail { font-size: 18px; }

/* ---------- Responsive: que el texto quepa en cada cuadro ---------- */

/* La plantilla fuerza una sola línea en algunos párrafos de tarjetas */
.padding40 p, .padding40 h4, .p-4 p, .p-4 h4, .pl-100 p, .pl-80 p, .de-step-s1 h4,
.accordion-section-title, .slider-teaser, .subtitle { white-space: normal; }
h1, h2, h3, h4, p, li, a { overflow-wrap: break-word; }
.de-step-s1 h4 { hyphens: auto; }

/* Medianiles anchos (gx-5) desbordan en pantallas chicas */
@media (max-width: 991px) {
  .row.gx-5 { --bs-gutter-x: 1.5rem; }
  .padding60 { padding: 40px; }
  .feature-icon { line-height: 64px; }
}

/* Tarjetas: misma altura y botón al fondo */
.padding40.flex-grow-1 { display: flex; flex-direction: column; }
.padding40.flex-grow-1 .btn-main { align-self: flex-start; margin-top: auto; }

/* Tabletas y escritorio chico: 4 tarjetas de equipo más angostas */
@media (min-width: 992px) and (max-width: 1199px) {
  .equip-photo { height: 200px; }
  .p-4 h4, .padding40 h4 { font-size: 20px; }
  .padding40 { padding: 30px; }
}

/* Barra superior en tableta */
@media (max-width: 1199px) {
  #topbar .topbar-widget a { font-size: 13px; }
}

/* Teléfono */
@media (max-width: 767px) {
  .slider-title { font-size: clamp(30px, 9vw, 40px) !important; line-height: 1.15 !important; }
  .slider-teaser { font-size: 17px !important; line-height: 1.4 !important; }
  .sw-text-wrapper .btn-main { display: inline-block; margin-left: 0 !important; margin-right: 6px; }
  h1 { font-size: 36px; }
  h2 { font-size: 28px; line-height: 1.25; }
  .cta-mail { font-size: clamp(17px, 5.2vw, 26px); }
  .cta-mail i { display: block; margin-bottom: 6px; }
  .safety-badge { padding: 20px; }
  .safety-badge i { font-size: 54px; }
  .padding40 { padding: 28px; }
  .card-photo, .equip-photo { height: 230px; }
  .gallery-frame img { height: 280px; }
  .de-step-s1 { min-height: 0; }
  .subfooter .de-flex { flex-direction: column; gap: 8px; text-align: center; }
  .footer-logo { margin-left: -14px; }
}

/* Crédito del desarrollador */
.credito-flujia a { color: #fff; }
.credito-flujia .fl-a { color: #fff; letter-spacing: .5px; }
.credito-flujia .fl-b { color: #1fd1c8; }
