/* ============================================================
   REDCORE INGENIERIA - DiseÃ±o claro y profesional (fondo blanco)
   ============================================================ */

:root{
  --rc-verde:#1e7e34;
  --rc-verde-osc:#145423;
  --rc-verde-claro:#2ea44f;
  --rc-acento:#f0a500;
  --rc-oscuro:#0e1a11;
  --rc-texto:#23322a;
  --rc-claro:#f6f9f6;
  --rc-borde:#e3ece5;
  --rc-sombra:0 12px 30px rgba(15,45,28,.08);
}

/* ---------- Base: blanco y limpio ---------- */
body{
  background:#ffffff;
  color:var(--rc-texto);
  font-family:'Open Sans','Segoe UI',Roboto,Arial,sans-serif;
  font-size:16px;
  line-height:1.7;
}
body, .e-con, .e-con-inner, .elementor-container, .elementor-widget,
.elementor-widget-container, img, video{
  max-width:100%;
}
img, video{height:auto;}
/* ---------- Imagenes: esquinas consistentes ---------- */
.elementor-widget-image img,
.e-image-base,
main img,
.page-content img,
.entry-content img{
  border-radius:14px !important;
}
/* logos y avatares pequeÃ±os sin radio */
#masthead img,
.site-logo img,
.custom-logo img,
img.emoji,
.emoji,
.wpav-avatar-emoji img{
  border-radius:0 !important;
}
/* Tipografia profesional: Montserrat en titulos */
h1, h2, h3, h4,
.e-heading-base,
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-heading h1,
.elementor-widget-heading h2,
.elementor-widget-heading h3{
  font-family:'Montserrat','Segoe UI',Arial,sans-serif;
  font-weight:800 !important;
  letter-spacing:-.4px;
  color:var(--rc-verde-osc) !important;
}
body h2.e-heading-base,
body h3.e-heading-base{
  position:relative;
  padding-bottom:16px;
}
body h2.e-heading-base::after,
body h3.e-heading-base::after{
  content:"";
  position:absolute;left:0;bottom:0;
  width:72px;height:5px;border-radius:5px;
  background:linear-gradient(90deg,var(--rc-verde),var(--rc-acento));
}
.elementor-element-0fc2c05 h2.e-heading-base::after{display:none;}
/* textos de parrafo */
.e-paragraph-base p,
.e-paragraph-base,
.elementor-widget-text-editor,
.elementor-text-editor{
  font-family:'Open Sans','Segoe UI',Arial,sans-serif;
  font-size:16px;
  line-height:1.75;
  color:var(--rc-texto) !important;
}

/* ---------- Aclarar secciones oscuras de Elementor ---------- */
.elementor-22 .elementor-element.elementor-element-ac317ea{
  background-color:#f7faf7 !important;
}
.elementor-22 .elementor-element.elementor-element-ac317ea .elementor-heading-title,
.elementor-22 .elementor-element.elementor-element-ac317ea .elementor-text-editor,
.elementor-22 .elementor-element.elementor-element-ac317ea p,
.elementor-22 .elementor-element.elementor-element-ac317ea .elementor-counter-number-wrapper{
  color:var(--rc-texto) !important;
}

/* ---------- Hero: llamativo sobre blanco ---------- */
.elementor-22 .elementor-element-0e63cb8{
  background:linear-gradient(180deg,#ffffff 0%,#eef7ef 100%) !important;
  border-bottom:1px solid var(--rc-borde);
}
.elementor-element-0fc2c05 h2{
  color:var(--rc-verde-osc) !important;
  font-size:clamp(1.9rem, 4.5vw, 3.3rem) !important;
  font-weight:900 !important;
  line-height:1.15;
  letter-spacing:.3px;
  text-shadow:none;
  text-transform:uppercase;
  position:relative;
}
.elementor-element-0fc2c05 h2 .e-3e27af4-05ca320,
.elementor-element-0fc2c05 h2 span,
.elementor-element-0fc2c05 .elementor-heading-title span{
  color:var(--rc-verde) !important;
}
.elementor-element-0fc2c05{
  position:relative;
}
.elementor-element-0fc2c05::before{
  content:"";
  position:absolute;left:0;bottom:6px;
  width:84px;height:6px;border-radius:6px;
  background:linear-gradient(90deg,var(--rc-verde),var(--rc-acento));
}
/* ---------- Secciones de contenido: tarjetas limpias ---------- */
.elementor-22 .elementor-element-1d8f7a1,
.elementor-22 .elementor-element-a22889f{
  background:#ffffff !important;
}
.elementor-22 .elementor-element-1d8f7a1 .e-con-inner,
.elementor-22 .elementor-element-a22889f .e-con-inner{
  max-width:1140px;
}
.elementor-22 .elementor-element-1d8f7a1 .e-heading-base,
.elementor-22 .elementor-element-a22889f .e-heading-base{
  font-size:clamp(1.6rem, 3vw, 2.3rem) !important;
}

/* ---------- Cabecera: blanca y limpia ---------- */
.ehf-header{
  background:#ffffff !important;
  border-bottom:3px solid var(--rc-verde);
  box-shadow:0 2px 14px rgba(20,70,40,.08);
}
/* logo del sitio en tipografia de marca */
.elementor-10 .elementor-element-4336131 .elementor-heading-title{
  font-family:'Montserrat','Segoe UI',Arial,sans-serif !important;
  font-weight:800 !important;
  font-size:1.35rem;
  letter-spacing:-.3px;
  color:var(--rc-verde-osc) !important;
}

/* ---------- Menu: profesional y elegante ---------- */
/* items del menu principal */
.elementor-10 .elementor-nav-menu--main .elementor-item{
  font-family:'Montserrat','Segoe UI',Arial,sans-serif !important;
  font-size:14.5px !important;
  font-weight:600 !important;
  letter-spacing:.2px;
  color:var(--rc-texto) !important;
  padding:8px 10px !important;
  white-space:nowrap;
}
.elementor-10 .elementor-nav-menu--main .elementor-item.elementor-item-active{
  color:var(--rc-verde) !important;
  font-weight:700 !important;
}
/* arreglo: la cabecera no debe desbordar en desktop */
.elementor-10,
#masthead{
  overflow-x:clip;
}
.elementor-10 .elementor-element-882a781{
  flex:1 1 auto !important;
  min-width:0 !important;
  width:auto !important;
}
.elementor-10 .elementor-nav-menu--main{
  flex-wrap:nowrap !important;
}
/* subrayado animado al pasar el cursor */
.elementor-10 .elementor-nav-menu--main .elementor-item{
  position:relative;
}
.elementor-10 .elementor-nav-menu--main .elementor-item::after{
  content:"";
  position:absolute;left:10px;right:10px;bottom:4px;
  height:3px;border-radius:3px;
  background:linear-gradient(90deg,var(--rc-verde),var(--rc-acento));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s ease;
}
.elementor-10 .elementor-nav-menu--main .elementor-item:hover::after,
.elementor-10 .elementor-nav-menu--main .elementor-item.elementor-item-active::after{
  transform:scaleX(1);
}
.elementor-10 .elementor-nav-menu--main .elementor-item:hover{
  color:var(--rc-verde) !important;
}
/* dropdown movil: claro y limpio */
.elementor-10 .elementor-nav-menu--dropdown{
  background:#ffffff !important;
  border:1px solid var(--rc-borde) !important;
  border-radius:12px !important;
  box-shadow:0 16px 34px rgba(15,45,28,.14);
  margin-top:8px;
}
.elementor-10 .elementor-nav-menu--dropdown .elementor-item{
  font-family:'Montserrat','Segoe UI',Arial,sans-serif !important;
  font-size:14px !important;
  font-weight:600;
  color:var(--rc-texto) !important;
  padding:12px 22px !important;
}
.elementor-10 .elementor-nav-menu--dropdown .elementor-item:hover{
  background:var(--rc-claro) !important;
  color:var(--rc-verde) !important;
}
.elementor-10 .elementor-nav-menu--dropdown .elementor-item.elementor-item-active{
  background:var(--rc-claro) !important;
  color:var(--rc-verde) !important;
  border-left:3px solid var(--rc-verde);
}
/* boton hamburguesa */
.elementor-10 .elementor-menu-toggle{
  background:var(--rc-verde) !important;
  border-radius:8px;
  padding:10px;
}
.elementor-10 .elementor-menu-toggle i,
.elementor-10 .elementor-menu-toggle .eicon-menu-bar,
.elementor-10 .elementor-menu-toggle .eicon-close,
.elementor-10 .elementor-menu-toggle .elementor-menu-toggle__icon--open,
.elementor-10 .elementor-menu-toggle .elementor-menu-toggle__icon--close{
  color:#ffffff !important;
}
.elementor-10 .elementor-menu-toggle svg path{
  fill:#ffffff !important;
}
/* botones del menu mas llamativos */
.elementor-button{
  font-family:'Montserrat','Segoe UI',Arial,sans-serif !important;
  letter-spacing:.3px;
}
a.elementor-button[href*="portafolio"]{
  font-size:16px !important;
  padding:13px 26px !important;
}

/* ============ PORTAL DE ADMINISTRACION ============ */
/* secciones en claro */
.elementor-element-9d3218d,
.elementor-element-00354c6,
.elementor-element-c9a510c,
.elementor-element-7d42047{
  background:#ffffff !important;
}
.elementor-element-9d3218d{
  background:linear-gradient(180deg,#ffffff 0%,#eef7ef 100%) !important;
  border-bottom:1px solid var(--rc-borde);
}
.elementor-element-9d3218d .e-heading-base{
  color:var(--rc-verde-osc) !important;
  font-size:clamp(1.8rem, 4vw, 2.8rem) !important;
}
.elementor-element-9d3218d p,
.elementor-element-9d3218d .e-paragraph-base{
  color:var(--rc-texto) !important;
  font-size:17px;
}
/* botones de acceso: verde de marca, grandes y elegantes */
.elementor-element-c9a510c .e-button-base{
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--rc-verde),var(--rc-verde-claro)) !important;
  color:#ffffff !important;
  font-family:'Montserrat','Segoe UI',Arial,sans-serif !important;
  font-size:20px !important;
  font-weight:700;
  letter-spacing:.4px;
  border-radius:12px;
  box-shadow:0 8px 20px rgba(30,126,52,.28);
  transition:all .25s ease;
}
.elementor-element-c9a510c .e-button-base::after{
  content:"â†’";
  margin-left:12px;
  font-weight:700;
}
.elementor-element-c9a510c .e-button-base:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 30px rgba(30,126,52,.42);
}
.elementor-element-7d42047 .e-heading-base,
.elementor-element-7d42047 p,
.elementor-element-7d42047 .e-paragraph-base{
  color:var(--rc-texto) !important;
}

/* ---------- Portal administracion: 6 botones cuadrados tipo app ---------- */
.rc-app-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  width:100%;
  max-width:1140px;
  margin:0 auto 16px;
  padding:6px 0;
}
.rc-app-tile{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  aspect-ratio:1;
  background:#ffffff;
  border:1px solid var(--rc-borde);
  border-radius:20px;
  box-shadow:0 10px 26px rgba(15,45,28,.08);
  text-decoration:none;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  padding:16px;
}
.rc-app-tile:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 40px rgba(30,126,52,.18);
  border-color:var(--rc-verde);
}
.rc-app-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:76px;
  height:76px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--rc-claro),#e0efe3);
  color:var(--rc-verde);
  font-size:36px;
}
.rc-app-label{
  font-family:'Montserrat','Segoe UI',Arial,sans-serif;
  font-weight:700;
  font-size:15px;
  color:var(--rc-texto);
  text-align:center;
  line-height:1.3;
}
@media (max-width:1024px){
  .rc-app-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:767px){
  .rc-app-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  .rc-app-icon{width:60px;height:60px;font-size:28px;}
  .rc-app-label{font-size:13px;}
}

/* ---------- Paginas internas: secciones oscuras a claro ---------- */
/* Banner compartido del header: oculto (contenido duplicado en el footer) */
.elementor-element-bf74d48{
  display:none !important;
}
/* botones de WooCommerce/formularios al verde de marca */
button.button-primary,
button.button,
.woocommerce button.button,
.woocommerce a.button,
a.button.woocommerce-button,
.button.wc-forward,
.woocommerce-checkout button{
  background:linear-gradient(135deg,var(--rc-verde),var(--rc-verde-claro)) !important;
  color:#ffffff !important;
  border:0 !important;
  border-radius:8px !important;
  font-weight:700;
  font-family:'Montserrat','Segoe UI',Arial,sans-serif;
}
button.button-primary:hover,
button.button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover{
  background:var(--rc-verde-osc) !important;
  color:#ffffff !important;
}
/* tablas y campos de WooCommerce en claro */
.woocommerce table.shop_table{
  background:#ffffff;
  border:1px solid var(--rc-borde);
  border-radius:12px;
  overflow:hidden;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td{
  border-color:var(--rc-borde);
}
.woocommerce form .form-row input,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  border:1px solid var(--rc-borde) !important;
  border-radius:8px;
  padding:10px 12px;
  font-family:'Open Sans',sans-serif;
}
.woocommerce form .form-row input:focus{
  border-color:var(--rc-verde) !important;
  outline:none;
}
/* contenido no-elementor: titulos en Montserrat */
main h1, main h2, main h3,
.page-content h1, .page-content h2, .page-content h3{
  font-family:'Montserrat','Segoe UI',Arial,sans-serif !important;
  font-weight:800 !important;
  color:var(--rc-verde-osc) !important;
}
.page-content input[type="text"],
.page-content input[type="email"],
.page-content input[type="tel"],
.page-content input[type="number"],
.page-content textarea,
.page-content select{
  border:1px solid var(--rc-borde);
  border-radius:8px;
  padding:10px 12px;
  font-family:'Open Sans',sans-serif;
}
.page-content input:focus{
  border-color:var(--rc-verde);
  outline:none;
}

/* Servicios: tarjetas de servicio */
.elementor-element-11ded9a,
.elementor-element-379ea70,
.elementor-element-8eb32a4,
.elementor-element-224d158{
  background:#ffffff !important;
  border:1px solid var(--rc-borde);
  border-radius:16px;
  box-shadow:0 8px 24px rgba(15,45,28,.06);
  margin:0 14px 26px;
  padding:30px 26px;
}
.elementor-element-11ded9a .e-heading-base,
.elementor-element-379ea70 .e-heading-base,
.elementor-element-8eb32a4 .e-heading-base,
.elementor-element-224d158 .e-heading-base{
  font-size:clamp(1.5rem, 2.5vw, 2rem) !important;
}
/* Portafolio */
.elementor-element-b3fc74f{
  background:#ffffff !important;
  padding:36px 20px !important;
  border-bottom:1px solid var(--rc-borde);
}
.elementor-element-b3fc74f .e-heading-base{
  font-size:clamp(1.8rem, 4vw, 2.8rem) !important;
}
.elementor-element-b3fc74f .s_pdf_download_link{
  display:inline-block;
  margin-top:10px;
  padding:10px 22px;
  background:var(--rc-verde);
  color:#ffffff !important;
  border-radius:8px;
  font-weight:700;
  text-decoration:none;
}
.elementor-element-b3fc74f .s_pdf_download_link:hover{
  background:var(--rc-verde-osc);
  color:#ffffff !important;
}
/* Contactenos */
.elementor-element-116d46a{
  background:#ffffff !important;
}
.elementor-element-8c4917e{
  background:#f7faf7 !important;
  border:1px solid var(--rc-borde);
  border-radius:16px;
  margin:0 14px 26px;
  padding:30px 26px;
}
.elementor-element-8c4917e .e-heading-base{
  font-size:clamp(1.4rem, 2.5vw, 1.9rem) !important;
  line-height:1.4;
}
/* Portal */
.elementor-element-e221a55{
  background:#ffffff !important;
  padding:36px 20px !important;
  border-bottom:1px solid var(--rc-borde);
}
.elementor-element-e221a55 .e-heading-base{
  font-size:clamp(1.8rem, 4vw, 2.6rem) !important;
}
.elementor-element-e221a55 .elementor-field-label{
  color:var(--rc-texto) !important;
  font-weight:600;
}
.elementor-element-e221a55 input.elementor-field{
  border:1px solid var(--rc-borde);
  border-radius:8px;
  padding:12px 14px;
}
.elementor-element-e221a55 input.elementor-field:focus{
  border-color:var(--rc-verde);
  outline:none;
}
.ehf-header .main-navigation a,
.ehf-header .menu-item a,
.ehf-header nav a{
  color:var(--rc-texto) !important;
  font-weight:600 !important;
}
.ehf-header .main-navigation a:hover,
.ehf-header .menu-item a:hover,
.ehf-header nav a:hover{
  color:var(--rc-verde) !important;
}
.ehf-header .current-menu-item a,
.ehf-header .current-menu-ancestor a{
  color:var(--rc-verde) !important;
}

/* ---------- TÃ­tulos de secciÃ³n con acento ---------- */
.e-con > .e-con-inner > .elementor-widget-heading h2,
.e-con > .elementor-widget-heading h2{
  position:relative;
  padding-bottom:14px;
}
.e-con > .e-con-inner > .elementor-widget-heading h2::after,
.e-con > .elementor-widget-heading h2::after{
  content:"";
  position:absolute;left:0;bottom:0;
  width:66px;height:5px;border-radius:5px;
  background:linear-gradient(90deg,var(--rc-verde),var(--rc-acento));
}

/* ---------- Tarjetas (icon-box) ---------- */
.elementor-widget-icon-box{
  background:var(--rc-claro);
  border:1px solid var(--rc-borde);
  border-top:4px solid var(--rc-verde);
  border-radius:16px;
  padding:24px 22px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.elementor-widget-icon-box:hover{
  transform:translateY(-5px);
  box-shadow:var(--rc-sombra);
}
.elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon{
  color:var(--rc-verde) !important;
}

/* ---------- Botones: vivos ---------- */
.elementor-button,
a.elementor-button,
a.elementor-button .elementor-button-text,
a.elementor-button .elementor-button-content-wrapper,
.elementor-button .elementor-button-icon{
  color:#ffffff !important;
}
a.elementor-button,
button.elementor-button{
  border-radius:8px !important;
  font-weight:700 !important;
  background:linear-gradient(135deg,var(--rc-verde),var(--rc-verde-claro)) !important;
  border:0 !important;
  box-shadow:0 6px 16px rgba(30,126,52,.25) !important;
  transition:all .25s ease !important;
}
a.elementor-button:hover,
button.elementor-button:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(30,126,52,.38) !important;
}

/* ---------- Pie de pÃ¡gina: claro con copyright oscuro ---------- */
#colophon{
  background:#ffffff;
  color:var(--rc-texto);
  font-size:15px;
  line-height:1.7;
}
/* ocultar "Nuestras Alianzas" duplicadas del footer (ya estan en el inicio) */
#colophon .elementor-element-5d42e6f,
#colophon .elementor-element-e3aa405{
  display:none !important;
}
/* cuerpo del footer: blanco y aireado */
#colophon .elementor-element-07d3d79{
  background:#ffffff !important;
  padding-top:44px !important;
  padding-bottom:28px !important;
}
/* todas las columnas internas en blanco (Elementor les puso fondo oscuro) */
#colophon .elementor-element-07d3d79 .e-con,
#colophon .elementor-element-07d3d79 .e-con-inner{
  background:#ffffff !important;
}
/* marca y descripcion */
#colophon .elementor-element-07d3d79 .elementor-widget-icon-box{
  background:transparent;
  border:0;
  border-left:4px solid var(--rc-verde);
  border-radius:0;
  padding:4px 0 4px 18px;
}
#colophon .elementor-element-07d3d79 .elementor-icon-box-title,
#colophon .elementor-element-07d3d79 .elementor-widget-heading .elementor-heading-title{
  color:var(--rc-verde-osc) !important;
  font-weight:800;
  font-size:1.35rem;
}
#colophon .elementor-element-07d3d79 .elementor-icon-box-description,
#colophon .elementor-element-07d3d79 .elementor-text-editor{
  color:var(--rc-texto) !important;
}
/* contadores como estadisticas limpias */
#colophon .elementor-counter .elementor-counter-number-wrapper,
#colophon .elementor-counter .elementor-counter-number-prefix,
#colophon .elementor-counter .elementor-counter-number-suffix{
  color:var(--rc-verde) !important;
  font-size:2.3rem;
  font-weight:800;
}
#colophon .elementor-counter .elementor-counter-title{
  color:var(--rc-texto) !important;
  font-weight:600;
  letter-spacing:.2px;
}
/* cita (shortcode) restaurada y legible sobre blanco */
#colophon .elementor-widget-shortcode{
  display:block !important;
  background:#ffffff !important;
}
#colophon .elementor-widget-shortcode .elementor-shortcode{
  color:var(--rc-texto) !important;
  font-style:italic;
  font-size:1rem;
}
#colophon .elementor-element-a932746 .elementor-widget-heading .elementor-heading-title{
  color:var(--rc-verde-osc) !important;
}
/* franja de copyright: verde oscuro, texto blanco */
#colophon .elementor-element-46d019d{
  background:var(--rc-verde-osc) !important;
  border-top:3px solid var(--rc-acento);
}
#colophon .elementor-element-46d019d .elementor-widget-copyright,
#colophon .elementor-element-46d019d .hfe-copyright-wrapper,
#colophon .elementor-element-46d019d .hfe-copyright-wrapper a{
  color:#ffffff !important;
}
#colophon .elementor-element-46d019d .hfe-copyright-wrapper a{
  color:var(--rc-acento) !important;
  font-weight:600;
  text-decoration:none;
}
#colophon .elementor-element-46d019d .hfe-copyright-wrapper a:hover{
  color:#ffd97a !important;
}
/* enlaces del footer */
#colophon a{
  color:var(--rc-verde) !important;
  text-decoration:none;
}
#colophon a:hover{color:var(--rc-verde-osc) !important;}

/* ---------- MÃ³vil ---------- */
@media (max-width:767px){
  .e-con{overflow-x:clip;}
  .ehf-header{max-width:100vw;}
  .ehf-header .e-con-inner, .ehf-header .e-con{flex-wrap:wrap !important;}
  .ehf-header .e-con{padding-left:12px !important;padding-right:12px !important;}
  .elementor-widget-heading h2,
  .elementor-22 h2.e-heading-base{font-size:1.65rem !important;line-height:1.3;}
  .elementor-widget-heading h1,
  .elementor-element-0fc2c05 h2{font-size:1.75rem !important;line-height:1.25;}
  .e-paragraph-base p, .e-paragraph-base{font-size:15px !important;}
  .elementor-button{padding:12px 20px !important;}
  .elementor-widget-icon-box{padding:18px 16px;}
  .ehf-header .site-logo img,.ehf-header .custom-logo img{max-height:46px;}
  #colophon .elementor-element-07d3d79{padding:28px 14px 20px !important;}
  #colophon .elementor-counter{text-align:center;}
  #colophon .elementor-counter .elementor-counter-number-wrapper{font-size:1.8rem !important;}
  #colophon .elementor-element-07d3d79 .elementor-widget-icon-box{border-left:0;border-top:4px solid var(--rc-verde);padding:14px 12px;}
  #colophon .elementor-element-46d019d{padding:12px 10px;}
}

/* ============ SECCIONES NUEVAS (servicios, testimonios, CTA, galeria) ============ */
.rc-seccion{
  padding:56px 20px;
  background:#ffffff;
}
.rc-seccion .rc-wrap{
  max-width:1140px;
  margin:0 auto;
}
.rc-sec-titulo{
  font-family:'Montserrat','Segoe UI',Arial,sans-serif;
  font-weight:800 !important;
  font-size:clamp(1.7rem, 3vw, 2.4rem) !important;
  color:var(--rc-verde-osc) !important;
  margin:0 0 10px;
  text-align:center;
}
.rc-sec-titulo::after{
  content:"";
  display:block;
  width:72px;height:5px;border-radius:5px;
  margin:14px auto 0;
  background:linear-gradient(90deg,var(--rc-verde),var(--rc-acento));
}
.rc-sec-sub{
  text-align:center;
  max-width:640px;
  margin:0 auto 40px;
  color:var(--rc-texto);
  font-size:16px;
}
.rc-services{background:#f7faf7;}
/* tarjetas de servicio */
.rc-grid-servicios{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}
.rc-card-servicio{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  background:#ffffff;
  border:1px solid var(--rc-borde);
  border-top:4px solid var(--rc-verde);
  border-radius:16px;
  padding:28px 24px;
  text-decoration:none;
  box-shadow:0 8px 24px rgba(15,45,28,.06);
  transition:transform .25s ease, box-shadow .25s ease;
}
.rc-card-servicio:hover{
  transform:translateY(-6px);
  box-shadow:0 16px 34px rgba(30,126,52,.16);
}
.rc-card-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:64px;height:64px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--rc-claro),#e0efe3);
  color:var(--rc-verde);
  font-size:28px;
  margin-bottom:18px;
}
.rc-card-servicio h3{
  font-family:'Montserrat',sans-serif;
  font-size:1.15rem !important;
  font-weight:800;
  color:var(--rc-verde-osc) !important;
  margin:0 0 8px;
}
.rc-card-servicio p{
  color:var(--rc-texto);
  font-size:14px;
  line-height:1.6;
  margin:0;
}
/* testimonios */
.rc-testimonios{background:#ffffff;}
.rc-grid-testi{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.rc-card-testi{
  background:#f7faf7;
  border:1px solid var(--rc-borde);
  border-radius:16px;
  padding:26px 24px;
  display:flex;
  flex-direction:column;
}
.rc-estrellas{
  color:var(--rc-acento);
  font-size:18px;
  letter-spacing:2px;
  margin-bottom:12px;
}
.rc-testi-texto{
  color:var(--rc-texto);
  font-style:italic;
  font-size:15px;
  line-height:1.7;
  margin:0 0 16px;
  flex:1;
}
.rc-testi-nombre{
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  color:var(--rc-verde-osc);
  font-size:15px;
}
.rc-testi-rol{
  color:var(--rc-verde);
  font-size:13px;
  font-weight:600;
}
/* franja CTA */
.rc-cta-band{
  background:linear-gradient(135deg,var(--rc-verde-osc),var(--rc-verde)) !important;
  color:#ffffff !important;
  text-align:center;
}
.rc-cta-band .rc-wrap{padding:40px 20px;}
.rc-cta-band h2{
  font-family:'Montserrat',sans-serif;
  font-size:clamp(1.6rem,3vw,2.4rem) !important;
  font-weight:800 !important;
  color:#ffffff !important;
  margin:0 0 10px;
}
.rc-cta-band p{
  color:#eaf5ec !important;
  font-size:17px;
  margin:0 0 26px;
}
.rc-cta-botones{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.rc-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 30px;
  border-radius:10px;
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:16px;
  text-decoration:none;
  transition:transform .2s ease, box-shadow .2s ease;
}
.rc-btn-wa{
  background:#ffffff !important;
  color:var(--rc-verde-osc) !important;
  box-shadow:0 8px 20px rgba(0,0,0,.18);
}
.rc-btn-wa i{color:#25d366;font-size:20px;}
.rc-btn-wa:hover{transform:translateY(-3px);}
.rc-btn-linea{
  background:transparent;
  color:#ffffff !important;
  border:2px solid rgba(255,255,255,.7);
}
.rc-btn-linea:hover{background:rgba(255,255,255,.14);transform:translateY(-3px);}
/* galeria portafolio */
.rc-proyectos{background:#f7faf7;}
.rc-grid-galeria{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.rc-gal-item{
  margin:0;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--rc-borde);
  background:#ffffff;
  box-shadow:0 8px 24px rgba(15,45,28,.06);
  transition:transform .25s ease, box-shadow .25s ease;
}
.rc-gal-item:hover{transform:translateY(-5px);box-shadow:0 14px 30px rgba(30,126,52,.15);}
.rc-gal-item img{
  width:100%;height:220px;object-fit:cover;display:block;
  border-radius:0 !important;
}
.rc-gal-item figcaption{
  padding:14px 16px;
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  color:var(--rc-verde-osc);
  font-size:14px;
}
/* certificaciones en el footer */
.rc-certif{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  background:#f4f8f5;
  padding:14px 16px;
  border-top:1px solid var(--rc-borde);
}
.rc-certif-item{
  background:#ffffff;
  border:1px solid var(--rc-borde);
  color:var(--rc-verde-osc);
  font-family:'Montserrat',sans-serif;
  font-weight:600;
  font-size:12.5px;
  padding:7px 14px;
  border-radius:20px;
}
/* aviso de cookies */
.rc-cookie-bar{
  position:fixed;
  left:12px;right:12px;bottom:12px;
  z-index:999999;
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  background:#0e1a11;
  color:#eaf5ec;
  padding:14px 18px;
  border-radius:14px;
  box-shadow:0 16px 40px rgba(0,0,0,.35);
  font-size:13.5px;
  line-height:1.5;
  max-width:760px;
  margin:0 auto;
}
.rc-cookie-bar p{margin:0;flex:1;min-width:220px;}
.rc-cookie-bar a{color:#f0a500;font-weight:600;}
.rc-cookie-btn{
  background:var(--rc-verde);
  color:#ffffff;
  border:0;
  border-radius:8px;
  padding:10px 22px;
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}
.rc-cookie-btn:hover{background:var(--rc-verde-osc);}
/* responsive */
@media (max-width:1024px){
  .rc-grid-servicios{grid-template-columns:repeat(2,1fr);}
  .rc-grid-testi{grid-template-columns:repeat(2,1fr);}
  .rc-grid-galeria{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  .rc-grid-servicios,.rc-grid-testi,.rc-grid-galeria{grid-template-columns:1fr;}
  .rc-seccion{padding:40px 16px;}
}