html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.ns2{--mar:#0E3B43;--mar-osc:#082A30;--oro:#B58A3C;--oro-cl:#D9B873;--piedra:#F3F1EC;--tinta:#1B2A2E;--gris:#5B6B6F;--linea:#D8DAD4;
  font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--tinta);line-height:1.6;background:#fff;
  box-sizing:border-box}
.ns2 *,.ns2 *::before,.ns2 *::after{box-sizing:border-box}
.ns2 h1,.ns2 h2,.ns2 h3{font-family:"Iowan Old Style","Palatino Linotype",Georgia,serif;font-weight:600;line-height:1.15;margin:0;color:inherit}
.ns2 p{margin:0}
.ns2 a{color:inherit}
.ns2 .ns2-in{max-width:1080px;margin:0 auto;padding:0 24px}

/* Cabecera */
.ns2 .ns2-top{background:var(--mar-osc);color:#fff;padding:14px 0;font-size:14px}
.ns2 .ns2-top .ns2-in{display:flex;flex-wrap:wrap;gap:8px 28px;justify-content:space-between;align-items:center}
.ns2 .ns2-top a{text-decoration:none;opacity:.9}
.ns2 .ns2-top a:hover{opacity:1;text-decoration:underline}

/* Hero */
.ns2 .ns2-hero{background:var(--mar);color:#fff;padding:72px 0 80px;position:relative;overflow:hidden}
.ns2 .ns2-hero .ns2-in{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:center}
.ns2 .ns2-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.01em;max-width:14em}
.ns2 .ns2-hero .ns2-sub{margin-top:20px;font-size:1.1rem;max-width:34em;color:#CFE0E2}
.ns2 .ns2-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.ns2 .ns2-btn{display:inline-block;padding:14px 26px;border-radius:4px;font-weight:600;text-decoration:none;font-size:1rem;border:2px solid var(--oro);transition:background .2s,color .2s}
.ns2 .ns2-btn.p{background:var(--oro);color:#fff}
.ns2 .ns2-btn.p:hover{background:var(--oro-cl);border-color:var(--oro-cl);color:var(--mar-osc)}
.ns2 .ns2-btn.s{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.ns2 .ns2-btn.s:hover{border-color:#fff}
.ns2 .ns2-btn:focus-visible,.ns2 a:focus-visible{outline:3px solid var(--oro-cl);outline-offset:3px}
.ns2 .ns2-sello{width:100%;max-width:300px;justify-self:center;animation:ns2-giro 1.6s cubic-bezier(.2,.7,.2,1) both}
@keyframes ns2-giro{from{opacity:0;transform:rotate(-14deg) scale(.9)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.ns2 .ns2-sello{animation:none}}

/* Logo (imagen propia) */
.ns2 .ns2-logo{display:block;width:100%;max-width:300px;height:auto;justify-self:center}

/* Aviso */
.ns2 .ns2-aviso{background:var(--piedra);border-bottom:1px solid var(--linea);padding:18px 0;font-size:.98rem}
.ns2 .ns2-aviso .ns2-in{display:flex;gap:14px;align-items:flex-start}
.ns2 .ns2-aviso svg{flex:none;margin-top:3px}

/* Secciones */
.ns2 section.ns2-sec{padding:72px 0}
.ns2 .ns2-sec h2{font-size:clamp(1.7rem,3.2vw,2.3rem);color:var(--mar)}
.ns2 .ns2-lead{margin-top:12px;color:var(--gris);max-width:40em}

/* Servicios */
.ns2 .ns2-serv{display:grid;grid-template-columns:repeat(3,1fr);margin-top:40px;border-top:1px solid var(--linea);border-left:1px solid var(--linea)}
.ns2 .ns2-serv div{padding:26px 24px;border-right:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.ns2 .ns2-serv h3{font-size:1.2rem;color:var(--mar)}
.ns2 .ns2-serv p{margin-top:8px;font-size:.97rem;color:var(--gris)}

/* Requisitos */
.ns2 .ns2-req{background:var(--piedra)}
.ns2 .ns2-req .ns2-in{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.ns2 .ns2-req ul{margin:0;padding:0;list-style:none}
.ns2 .ns2-req li{padding:14px 0 14px 30px;border-bottom:1px solid var(--linea);position:relative}
.ns2 .ns2-req li::before{content:"";position:absolute;left:4px;top:22px;width:10px;height:10px;border:2px solid var(--oro);transform:rotate(45deg)}

/* Contacto */
.ns2 .ns2-cont{background:var(--mar-osc);color:#fff}
.ns2 .ns2-cont h2{color:#fff}
.ns2 .ns2-cont .ns2-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:36px}
.ns2 .ns2-cont h3{font-size:1.05rem;color:var(--oro-cl);margin-bottom:8px}
.ns2 .ns2-cont p,.ns2 .ns2-cont a{color:#DCE8EA;font-size:1rem}
.ns2 .ns2-pie{background:#051B1F;color:#9FB3B6;font-size:.85rem;padding:20px 0;text-align:center}

@media (max-width:820px){
  .ns2 .ns2-hero .ns2-in,.ns2 .ns2-req .ns2-in{grid-template-columns:1fr}
  .ns2 .ns2-sello,.ns2 .ns2-logo{max-width:200px;order:-1;justify-self:start}
  .ns2 .ns2-serv,.ns2 .ns2-cont .ns2-grid{grid-template-columns:1fr}
  .ns2 .ns2-hero{padding:48px 0 56px}
  .ns2 section.ns2-sec{padding:52px 0}
}
