:root{
  --marino:#0E1E33;
  --marino-claro:#2A3A52;
  --dorado:#C8A24A;
  --dorado-medio:#A8843A;
  --dorado-texto:#8A6A28;
  --marfil:#F7F4EE;
  --linea:#DDD5C6;
  --linea-suave:#E4DED2;
  --texto:#3B4A5E;
  --texto-claro:#D8D4CB;
  --gris:#5B6778;
  --borde-campo:#8C96A3;
  --display:'Jost',system-ui,-apple-system,'Segoe UI',sans-serif;
  --texto-fuente:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:clamp(50px,6vw,68px)}
body{margin:0;background:#FFFFFF;color:var(--marino);font-family:var(--texto-fuente);font-size:17px;line-height:1.65;overflow-x:hidden}
img{max-width:100%}
a{color:var(--marino)}
a:hover{color:var(--dorado-texto)}
:focus-visible{outline:2px solid var(--dorado-medio);outline-offset:3px}
section[id],div[id]{scroll-margin-top:clamp(50px,6vw,68px)}
.contenedor{max-width:1440px;margin:0 auto;padding:0 clamp(30px,7vw,120px)}
.rotulo{display:block;font-family:var(--display);font-size:13px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--dorado-texto);margin:0 0 20px}
h1,h2,h3{font-family:var(--display);font-weight:300;color:var(--marino);margin:0;overflow-wrap:break-word}
h1{font-size:clamp(31px,5.4vw,70px);line-height:1.1}
h2{font-size:clamp(29px,3.8vw,52px);line-height:1.12}
h3{font-size:clamp(21px,1.9vw,26px);font-weight:400;line-height:1.25}
p{margin:0 0 20px}
.boton{display:inline-flex;align-items:center;justify-content:center;height:54px;padding:0 32px;border:0;background:var(--marino);color:var(--marfil);font-family:var(--display);font-size:14px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;cursor:pointer}
.boton:hover{background:#17304f;color:var(--marfil)}
.enlace-sub{font-family:var(--display);font-size:14px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-decoration:underline;text-decoration-color:var(--dorado-medio);text-underline-offset:8px}

/* Encabezado */
.cabecera{position:sticky;top:0;z-index:20;background:#FFFFFF;border-top:3px solid var(--dorado-medio);border-bottom:1px solid var(--linea-suave);box-shadow:0 1px 0 rgba(14,30,51,.04)}
.cabecera .contenedor{display:flex;align-items:center;justify-content:space-between;min-height:154px;gap:24px}
.cabecera img{width:clamp(200px,26vw,380px);height:auto;display:block}
.menu{display:flex;align-items:center;gap:clamp(14px,1.9vw,30px)}
.menu a{font-family:var(--display);font-size:13px;letter-spacing:.14em;white-space:nowrap;text-transform:uppercase;text-decoration:none;padding-bottom:4px;border-bottom:1px solid transparent}
.menu a:not(.boton):hover{border-bottom-color:var(--dorado-medio)}
.menu .boton{height:46px;padding:0 24px;font-size:13px}
.abrir-menu{display:none;width:48px;height:48px;align-items:center;justify-content:center;padding:0;border:1px solid var(--marino);background:#FFFFFF;color:var(--marino);cursor:pointer}

/* Portada */
.portada{padding:clamp(56px,8vw,112px) 0 clamp(64px,8vw,136px);display:flex;gap:clamp(32px,7vw,104px);align-items:flex-end;flex-wrap:wrap}
.portada .texto{flex:1 1 520px;display:flex;flex-direction:column;gap:clamp(20px,2.6vw,36px)}
.portada .filete{display:flex;align-items:center;gap:16px}
.portada .filete span:first-child{width:48px;height:1px;background:var(--dorado-medio)}
.portada .entrada{font-size:clamp(17px,1.5vw,20px);max-width:600px;color:var(--texto);margin:0}
.portada .acciones{display:flex;align-items:center;gap:36px;flex-wrap:wrap}
.clientes{flex:0 1 400px;padding:44px 40px;background:var(--marfil);border-top:2px solid var(--dorado-medio)}
.clientes h2{font-family:var(--display);font-size:14px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--dorado-texto);margin:0 0 24px}
.clientes ul{margin:0;padding:0;list-style:none}
.clientes li{padding:16px 0;border-top:1px solid var(--linea);font-size:17px;line-height:1.45}
.clientes li:last-child{border-bottom:1px solid var(--linea)}

/* Fotografía de portada */
.foto-portada{padding:0 clamp(30px,7vw,120px) clamp(24px,4vw,64px)}
.foto-portada img{display:block;width:100%;max-width:1120px;height:auto;margin:0 auto}

/* Áreas y equipo */
.bloque{padding:clamp(64px,8vw,120px) 0}
.bloque.marfil{background:var(--marfil)}
.encabezado-bloque{display:flex;justify-content:space-between;align-items:flex-end;gap:clamp(32px,6vw,96px);flex-wrap:wrap;margin-bottom:clamp(40px,5vw,72px)}
.encabezado-bloque p{max-width:520px;font-size:18px;color:var(--texto);margin:0}
.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));column-gap:56px;row-gap:64px}
.rejilla.dos{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.tarjeta{padding-top:28px;border-top:1px solid var(--dorado-medio)}
.tarjeta .numero{display:block;font-family:var(--display);font-size:14px;letter-spacing:.12em;color:var(--dorado-texto);margin-bottom:16px}
.tarjeta h3{margin-bottom:16px}
.tarjeta p{font-size:16px;color:var(--texto);margin:0}
.lema{font-family:var(--display);font-weight:300;font-size:clamp(22px,2.3vw,30px);line-height:1.4;color:var(--marino);max-width:760px;margin:0}

/* Franja de la firma */
.firma{background:var(--marino);padding:clamp(72px,9vw,136px) 0}
.firma .contenedor{display:flex;gap:clamp(32px,7vw,104px);align-items:flex-start;flex-wrap:wrap}
.firma .cita{flex:0 1 520px}
.firma .cita span{display:block;width:64px;height:1px;background:var(--dorado);margin-bottom:32px}
.firma h2{color:var(--marfil);font-size:clamp(32px,4.2vw,58px);line-height:1.12}
.firma .desarrollo{flex:1 1 420px;max-width:580px;padding-top:8px}
.firma p{font-size:clamp(16px,1.5vw,19px);line-height:1.75;color:var(--texto-claro)}
.firma a{color:var(--dorado);text-decoration-color:var(--dorado)}
.firma a:hover{color:var(--marfil)}

/* Tira de fotografías */
.tira{overflow:hidden;width:100%;margin-top:clamp(28px,3vw,48px)}
.pista{display:flex;gap:20px;width:max-content;animation:correr 80s linear infinite;will-change:transform;transform:translateZ(0);backface-visibility:hidden}
.pista img{height:clamp(260px,32vw,440px);width:auto;display:block;flex-shrink:0}
@keyframes correr{from{transform:translate3d(0,0,0)}to{transform:translate3d(calc(-50% - 10px),0,0)}}
.tira:hover .pista{animation-play-state:paused}

/* Contacto */
.contacto{background:var(--marfil);padding:clamp(64px,8vw,120px) 0}
.contacto .contenedor{display:flex;gap:clamp(32px,6vw,96px);align-items:flex-start;flex-wrap:wrap}
.contacto .datos{flex:0 1 400px}
.contacto .datos p{font-size:18px;color:var(--texto)}
.contacto dl{margin:44px 0 0;display:flex;flex-direction:column;gap:22px}
.contacto dt{font-family:var(--display);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gris)}
.contacto dd{margin:4px 0 0;font-size:18px;color:var(--marino)}
.contacto dl>div:first-child{padding-top:18px;border-top:1px solid var(--linea)}
form{flex:1 1 480px;padding:clamp(28px,4vw,52px);background:#FFFFFF;border-top:2px solid var(--dorado-medio);display:flex;flex-direction:column;gap:28px}
fieldset{margin:0;padding:0;border:0;display:flex;flex-direction:column;gap:12px}
legend{padding:0;margin-bottom:12px;font-size:14px;font-weight:500}
.opciones{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.opcion{display:flex;align-items:center;gap:12px;height:52px;padding:0 16px;border:1px solid var(--borde-campo);font-size:16px;cursor:pointer}
.opcion input{width:18px;height:18px;margin:0;accent-color:var(--marino)}
.opcion:has(input:checked){border-color:var(--marino)}
.campo{display:flex;flex-direction:column;gap:8px}
.campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}
label{font-size:14px;font-weight:500}
input[type=text],input[type=email],input[type=tel],select,textarea{height:50px;padding:0 14px;border:1px solid var(--borde-campo);border-radius:0;font-family:inherit;font-size:16px;color:var(--marino);background:#FFFFFF}
textarea{height:150px;padding:12px 14px;line-height:1.5;resize:vertical}
.autorizacion{display:flex;gap:12px;align-items:flex-start}
.autorizacion input{width:20px;height:20px;margin:2px 0 0;flex-shrink:0;accent-color:var(--marino)}
.autorizacion label{font-size:14px;font-weight:400;line-height:1.55;color:var(--texto)}
form .boton{align-self:flex-start}
.oculto{position:absolute;left:-9999px}

/* Pie */
.pie{background:var(--marino);padding:clamp(48px,6vw,72px) 0}
.pie .fila{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.pie img{width:245px;height:auto;display:block}
.pie nav{display:flex;gap:36px;flex-wrap:wrap}
.pie a{font-size:14px;color:var(--texto-claro);text-decoration:none}
.pie a:hover{color:var(--dorado)}
.pie .derechos{margin:44px 0 0;padding-top:28px;border-top:1px solid var(--marino-claro);font-size:14px;color:#A9B1BD}

/* Páginas legales */
.legal{padding:clamp(48px,6vw,96px) clamp(30px,7vw,120px) clamp(64px,8vw,120px);max-width:880px}
.legal h1{margin-bottom:40px}
.legal h2{font-size:clamp(20px,2vw,24px);font-weight:500;margin:40px 0 16px}
.legal p,.legal li{text-align:justify;color:var(--texto);font-size:17px}
.legal ul{padding-left:20px}
.legal li{margin-bottom:10px}
.volver{display:inline-block;margin-top:48px}

@media (max-width:760px){
  .legal p,.legal li{text-align:left}
  .legal{padding-left:30px;padding-right:30px}
}
@media (max-width:1040px){
  .cabecera img{width:min(58vw,260px);flex-shrink:0}
  .cabecera .menu>.boton{display:none}
  .menu.abierto>.boton{display:inline-flex}
  .menu a:not(.boton){display:none}
  .abrir-menu{display:flex}
  .menu.abierto{position:absolute;top:100%;left:0;right:0;background:#FFFFFF;border-bottom:1px solid var(--linea-suave);flex-direction:column;align-items:stretch;gap:0;padding:8px 24px 24px}
  .menu.abierto a:not(.boton){display:flex;align-items:center;min-height:52px;border-top:1px solid var(--linea-suave)}
  .menu.abierto .boton{margin-top:16px}
  .cabecera .contenedor{position:relative;min-height:84px}
  .pista{animation-duration:45s;gap:12px}
  @keyframes correr{from{transform:translate3d(0,0,0)}to{transform:translate3d(calc(-50% - 6px),0,0)}}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .pista{animation:none}
}
