:root{
  --azul:#144560;
  --azul-osc:#0e3349;
  --dorado:#D1AE10;
  --dorado-osc:#b8990c;
  --gris:#9c9c9c;
  --texto:#1a1a1a;
  --campo:#fafafa;
  --radio:4px;
  --ancho:1140px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:Montserrat,sans-serif;color:var(--texto);background:#fff;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,.lema,.sub,.tarjeta p,.franja h3,.srv-cabeza p{text-wrap:balance}
.contenedor{width:100%;max-width:var(--ancho);margin:0 auto;padding:0 20px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Botones: un solo redondeo para todos */
.btn{display:inline-block;font-family:inherit;font-weight:600;text-transform:uppercase;border-radius:var(--radio);border:2px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s;text-align:center;line-height:1}
.btn:hover{transform:translateY(-2px)}
.btn-dorado{background:var(--dorado);color:#fff}
.btn-dorado:hover{background:var(--dorado-osc)}
.btn-azul{background:var(--azul);color:#fff}
.btn-azul:hover{background:var(--azul-osc)}
.btn-borde{background:transparent;color:#fff;border-color:#fff}
.btn-borde:hover{background:#fff;color:var(--azul)}
.btn-blanco{background:#fff;color:var(--azul);text-transform:none}
.btn-blanco:hover{background:var(--dorado);color:#fff}
.btn-grande{font-size:18px;font-weight:500;padding:20px 40px}
.btn-medio{font-size:16px;padding:15px 30px}

.titulo{font-size:54px;font-weight:900;line-height:1;color:var(--azul)}
.titulo-m{font-size:44px}
.titulo-s{font-size:38px}
.raya{display:block;width:105px;height:6.5px;background:var(--dorado);margin:30px 0}
.raya.centro{margin-left:auto;margin-right:auto}
.antetitulo{font-size:18px;font-weight:400;text-transform:uppercase;margin-bottom:14px}
.antetitulo.dorado{color:var(--dorado-osc);font-weight:600;font-size:15px;letter-spacing:1px}

/* ---------- Cabecera ---------- */
.cabecera{position:sticky;top:0;z-index:50}
.admin-bar .cabecera{top:32px}
.barra{background:#fff;height:44px;transition:height .3s,opacity .3s;overflow:hidden}
.barra .contenedor{display:flex;justify-content:space-between;align-items:center;height:44px}
.barra-item{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--azul)}
.barra-tel{font-weight:600}
.barra-der{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--azul)}
.circulo{width:22px;height:22px;border-radius:50%;background:var(--azul);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.circulo svg{width:12px;height:12px;fill:#fff}
a.circulo{transition:background .2s}
a.circulo:hover{background:var(--dorado)}
.redes-top{display:flex;gap:4px}

.principal{background:var(--azul);transition:box-shadow .3s}
.principal .contenedor{display:flex;justify-content:space-between;align-items:center;height:140px;transition:height .3s}
.logo img{width:120px;height:auto;transition:width .3s}
.menu{display:flex;list-style:none;align-items:center}
.menu > li{position:relative;border-left:1px solid rgba(255,255,255,.18)}
.menu > li:last-child{border-right:1px solid rgba(255,255,255,.18)}
.menu > li > a{display:flex;align-items:center;gap:5px;padding:5px 15px;font-size:14px;font-weight:600;letter-spacing:2.1px;text-transform:uppercase;color:#fff;transition:color .2s}
.menu > li > a:hover,.menu > li > a.activo{color:var(--dorado)}
.menu > li > a svg{width:10px;height:10px;fill:currentColor}
.submenu{position:absolute;top:100%;left:0;list-style:none;width:240px;padding-top:18px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s}
.menu > li:hover .submenu,.menu > li:focus-within .submenu{opacity:1;visibility:visible;transform:none}
.submenu a{display:block;background:var(--dorado);color:#fff;padding:14px 15px;font-size:13px;font-weight:600;line-height:1.3;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.25);transition:background .2s}
.submenu a:hover,.submenu a.activo{background:var(--azul-osc)}
.hamburguesa{display:none;background:none;border:0;cursor:pointer;padding:8px}
.hamburguesa span{display:block;width:26px;height:3px;background:#fff;margin:5px 0;border-radius:2px;transition:.3s}

/* Cabecera compacta al bajar */
.cabecera.compacta .barra{height:0;opacity:0}
.cabecera.compacta .principal{box-shadow:0 6px 20px rgba(0,0,0,.18)}
.cabecera.compacta .principal .contenedor{height:84px}
.cabecera.compacta .logo img{width:76px}

/* ---------- Portada ---------- */
.portada{min-height:700px;display:flex;align-items:center;overflow:hidden}
.portada .contenedor{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}
.portada p{font-size:18px;line-height:1.55;max-width:550px;margin-bottom:28px}
.fotos{display:flex;gap:20px;justify-content:flex-end;align-items:flex-start}
.fotos img{width:163px;height:435px;object-fit:cover}
.fotos img:nth-child(1){margin-top:60px}
.fotos img:nth-child(2){margin-top:30px}

/* ---------- Banner ---------- */
.banner{position:relative;background-color:var(--azul);background-position:center;background-size:cover;background-attachment:fixed;color:#fff;text-align:center;padding:0 20px 90px}
.banner::before{content:"";position:absolute;inset:0;background:var(--azul);opacity:.89}
.banner > *{position:relative}
.banner .foco{width:143px;height:143px;margin:-18px auto 25px}
.banner h2{font-size:55px;font-weight:900;line-height:1;max-width:720px;margin:0 auto}
.banner .sub{font-size:23px;text-transform:uppercase;margin:10px 0 28px}
.banner p.texto{font-size:18px;line-height:1.5;max-width:660px;margin:0 auto 30px}
.banner .botones{display:flex;gap:46px;justify-content:center;flex-wrap:wrap}
.banner .btn{font-size:15px;font-weight:500;padding:10px 15px;min-width:161px}
.banner .btn-borde{font-size:13px;padding:10px 60px;border-width:1px}

/* ---------- Servicios (inicio) ---------- */
.servicios{padding:50px 0 80px}
.servicios .cabeza{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;margin-bottom:45px;padding:0 10px}
.servicios .cabeza .lema{font-size:22px;line-height:1;text-transform:uppercase;color:var(--gris);text-align:right}
.servicios .cabeza .raya{margin:15px 0 0 auto;width:103px}
.tarjetas{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:0 30px}
.tarjeta{background:#fff;border-radius:6px;box-shadow:0 8px 30px rgba(0,0,0,.09);padding:36px 36px 40px;text-align:center;display:flex;flex-direction:column;align-items:center;transition:transform .25s,box-shadow .25s}
.tarjeta:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(20,69,96,.18)}
.tarjeta h3{font-size:18px;font-weight:700;line-height:1.1;min-height:40px;display:flex;align-items:center;justify-content:center;max-width:240px}
.icono{width:50px;height:50px;border-radius:50%;background:var(--dorado);display:flex;align-items:center;justify-content:center;margin:24px 0 22px}
.icono svg{width:26px;height:26px;fill:#fff}
.tarjeta p{font-size:15px;line-height:1.15;max-width:200px;flex:1}
.tarjeta .btn{font-size:15px;padding:12px 24px;margin-top:24px}

/* ---------- Clientes ---------- */
.clientes{padding:60px 0 90px}
.clientes .contenedor{display:grid;grid-template-columns:1fr 1fr;align-items:center}
.logos{background:var(--azul);display:grid;grid-template-columns:1fr 1fr;padding:21px 10px;min-height:443px}
.logos div{display:flex;align-items:center;justify-content:center;padding:35px}
.logos img{width:205px;height:auto}
.clientes .info{padding:0 54px}
.clientes p{font-size:15px;line-height:22px;max-width:462px;margin-bottom:24px}

/* ---------- Franja cita ---------- */
.franja{background:var(--azul);color:#fff}
.franja .contenedor{display:flex;justify-content:space-between;align-items:center;gap:30px;min-height:187px;padding-top:30px;padding-bottom:30px}
.franja h3{font-size:19px;font-weight:400;line-height:1.1;max-width:560px;padding-left:10px}
.franja .btn{font-size:16px;font-weight:700;padding:10px 20px;flex-shrink:0}

/* ---------- Contacto ---------- */
.contacto{padding:80px 0 90px}
.contacto .intro{font-size:15px;margin-bottom:24px}
.formulario{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.campo{display:flex;flex-direction:column;gap:8px;font-size:16px}
.campo.ancho{grid-column:1/-1}
.campo label{font-weight:500}
.campo label b{color:var(--dorado);font-weight:700}
.campo input,.campo select,.campo textarea{font-family:inherit;font-size:15px;background:var(--campo);border:1px solid #e3e3e3;border-radius:var(--radio);height:50px;padding:0 14px;color:var(--texto);width:100%;transition:border-color .2s,box-shadow .2s}
.campo textarea{height:176px;padding:14px;resize:vertical}
.campo select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23144560'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:10px;padding-right:34px}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:0;border-color:var(--azul);box-shadow:0 0 0 3px rgba(20,69,96,.12);background-color:#fff}
.trampa{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.enviar{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center;gap:20px}
.enviar small{font-size:13px;color:#666}
.enviar .btn{font-size:18px;font-weight:800;padding:15px 25px}

/* ---------- Nosotros y servicios ---------- */
.dos-col{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.nosotros{padding:80px 0}
.nosotros p,.srv-portada p{font-size:16px;line-height:1.6;margin-bottom:16px}
.nosotros-2{background:#f6f8fa}
.titulo.mt{margin-top:40px}
.foto-marco{position:relative}
.foto-marco::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:3px solid var(--dorado);border-radius:6px;z-index:0}
.invertido .foto-marco::before{inset:18px 18px -18px -18px}
.foto-marco img{position:relative;z-index:1;width:100%;border-radius:6px;object-fit:cover;aspect-ratio:7/5}
.foto-alta img{aspect-ratio:7/9;max-height:620px}

.srv-portada{padding:80px 0 90px}
.srv-portada .btn{margin-top:12px}
.srv-bloque{padding:80px 0}
.srv-cabeza{text-align:center;max-width:720px;margin:0 auto 45px}
.srv-cabeza .raya{margin-top:22px;margin-bottom:18px;width:88px}
.srv-cabeza p{font-size:17px;color:#555}
.mini-tarjetas{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.mini-tarjetas.de4{grid-template-columns:repeat(4,1fr)}
.mini{background:#fff;border-radius:6px;box-shadow:0 8px 30px rgba(0,0,0,.08);padding:30px 26px;text-align:center;transition:transform .25s,box-shadow .25s}
.mini:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(20,69,96,.15)}
.mini-icono{width:46px;height:46px;border-radius:50%;background:var(--azul);display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px;flex-shrink:0}
.mini-icono svg{width:22px;height:22px;fill:#fff}
.mini h3{font-size:16px;font-weight:700;line-height:1.25;margin-bottom:10px;color:var(--texto)}
.mini p{font-size:14px;line-height:1.5;color:#444}
.srv-b2{align-items:start}
.lista-tarjetas{display:flex;flex-direction:column;gap:20px}
.mini-fila{display:flex;gap:18px;text-align:left;align-items:flex-start}
.mini-fila .mini-icono{margin:0}

.pagina-normal{padding:80px 0}
.texto-libre{font-size:16px;line-height:1.7;max-width:820px}
.texto-libre p,.texto-libre ul,.texto-libre ol{margin-bottom:16px}
.texto-libre ul,.texto-libre ol{padding-left:22px}
.texto-libre a{color:var(--azul);text-decoration:underline}
.entrada{margin-bottom:50px}

/* ---------- Pie ---------- */
.pie{background:var(--azul);color:#fff}
.pie .columnas{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:20px 20px 30px}
.pie h2{font-size:20px;font-weight:800;line-height:35px;margin:12px 0 14px}
.pie p{font-size:16px;line-height:19px}
.pie .centro{text-align:center}
.pie .centro img{width:190px;margin:0 auto}
.redes-pie{display:flex;gap:14px;margin-top:22px}
.redes-pie a{width:40px;height:40px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .2s}
.redes-pie a:hover{background:var(--dorado)}
.redes-pie svg{width:17px;height:17px;fill:var(--azul)}
.pie .btn{font-size:15px;padding:12px 24px;margin-top:22px}
.legal{border-top:1px solid rgba(255,255,255,.15);font-size:13px;color:rgba(255,255,255,.75)}
.legal .contenedor{display:flex;justify-content:space-between;gap:10px;padding-top:18px;padding-bottom:18px;flex-wrap:wrap}

/* ---------- Flotantes ---------- */
.whatsapp{position:fixed;right:20px;bottom:20px;width:60px;height:60px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.25);z-index:60;transition:transform .2s}
.whatsapp:hover{transform:scale(1.08)}
.whatsapp svg{width:30px;height:30px;fill:#fff}
.subir{position:fixed;right:88px;bottom:30px;width:40px;height:40px;border-radius:var(--radio);background:var(--dorado);border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.3s;z-index:60}
.subir.ver{opacity:1;visibility:visible}
.subir svg{width:16px;height:16px;fill:#fff}

/* Aparición suave (solo si el navegador corre el JS) */
.js .aparece{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.js .aparece.visto{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .aparece{opacity:1;transform:none;transition:none}
}

/* ---------- Tablet ---------- */
@media (max-width:1024px){
  .principal .contenedor{height:124px}
  .logo img{width:106px}
  .titulo{font-size:44px}
  .titulo-m{font-size:38px}
  .titulo-s{font-size:32px}
  .banner h2{font-size:44px}
  .tarjetas{padding:0}
  .fotos{gap:12px}
  .fotos img{width:31%;height:auto;aspect-ratio:163/435}
  .clientes .info{padding:0 30px}
  .mini-tarjetas.de4{grid-template-columns:repeat(2,1fr)}
  .dos-col{gap:40px}
}
/* ---------- Móvil ---------- */
@media (max-width:860px){
  html{scroll-padding-top:90px}
  .barra{display:none}
  .principal .contenedor,.cabecera.compacta .principal .contenedor{height:76px}
  .logo img,.cabecera.compacta .logo img{width:66px}
  .hamburguesa{display:block}
  .menu{position:absolute;top:100%;left:0;right:0;background:var(--azul);flex-direction:column;align-items:stretch;max-height:0;overflow:hidden;transition:max-height .35s;box-shadow:0 10px 20px rgba(0,0,0,.2)}
  .menu.abierto{max-height:80vh;overflow-y:auto}
  .menu > li,.menu > li:last-child{border:0;border-top:1px solid rgba(255,255,255,.12)}
  .menu > li > a{padding:16px 20px}
  .submenu{position:static;opacity:1;visibility:visible;transform:none;width:auto;padding:0;display:none}
  .menu > li.abierto .submenu{display:block}
  .submenu a{padding-left:34px}
  .hamburguesa.abierto span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .hamburguesa.abierto span:nth-child(2){opacity:0}
  .hamburguesa.abierto span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

  .portada{min-height:0;padding:50px 0 60px}
  .portada .contenedor{grid-template-columns:1fr;gap:40px}
  .titulo{font-size:38px}
  .titulo-m{font-size:32px}
  .titulo-s{font-size:28px}
  .raya{margin:22px 0}
  .portada p{font-size:16px}
  .btn-grande{font-size:16px;padding:17px 32px}
  .fotos{justify-content:center;gap:12px}
  .fotos img{width:31%;height:auto;aspect-ratio:163/435}

  .banner{background-attachment:scroll;padding-bottom:60px}
  .banner h2{font-size:34px}
  .banner .sub{font-size:17px}
  .banner p.texto{font-size:16px}
  .banner .botones{gap:14px}

  .servicios .cabeza{grid-template-columns:1fr;padding:0}
  .servicios .cabeza .lema{text-align:left;font-size:17px;line-height:1.2}
  .servicios .cabeza .raya{margin:15px 0 0}
  .tarjetas{grid-template-columns:1fr 1fr;gap:16px}
  .tarjeta{padding:28px 18px 30px}

  .clientes .contenedor{grid-template-columns:1fr;gap:40px}
  .logos{min-height:0}
  .logos div{padding:22px}
  .clientes .info{padding:0}

  .franja .contenedor{flex-direction:column;align-items:flex-start;min-height:0;padding-top:40px;padding-bottom:40px}
  .franja h3{padding:0}

  .formulario{grid-template-columns:1fr}
  .enviar{flex-direction:column-reverse;align-items:stretch;text-align:center}

  .dos-col{grid-template-columns:1fr;gap:44px}
  .invertido .foto-marco{order:2}
  .nosotros,.srv-portada,.srv-bloque,.pagina-normal{padding:56px 0}
  .mini-tarjetas,.mini-tarjetas.de4{grid-template-columns:1fr 1fr;gap:14px}
  .mini{padding:24px 16px}
  .foto-marco::before,.invertido .foto-marco::before{inset:12px -10px -12px 10px}

  .pie .columnas{grid-template-columns:1fr;text-align:center;gap:10px;padding:30px 0}
  .redes-pie{justify-content:center}
  .pie .centro img{width:150px}
  .legal .contenedor{justify-content:center;text-align:center}
  .subir{right:20px;bottom:92px}
}
@media (max-width:782px){
  .admin-bar .cabecera{top:46px}
}
@media (max-width:600px){
  .admin-bar .cabecera{top:0}
}
@media (max-width:520px){
  .tarjetas,.mini-tarjetas,.mini-tarjetas.de4{grid-template-columns:1fr}
  .mini-tarjetas .mini{display:grid;grid-template-columns:46px 1fr;column-gap:16px;text-align:left;padding:20px 18px}
  .mini-tarjetas .mini-icono{grid-row:span 2;margin:0}
  .mini-tarjetas .mini h3{margin-bottom:6px}
  .titulo{font-size:34px}
  .banner h2{font-size:30px}
}
