/* ==========================================================================
   Portada publica de Icra-Pro.

   Reproduccion de la maqueta aprobada: design/landing-reference.html.
   El CSS de abajo es COPIA LITERAL del bloque <style> de esa maqueta; se
   extrajo con un script en vez de transcribirse, para no meter erratas.

   Vive en un fichero aparte porque la CSP de helmet no permite
   'unsafe-inline': ni <style>, ni style="...". Por eso mismo la unica regla
   anadida es .placard-dl, que sustituye al style="margin:0" que la maqueta
   llevaba en linea sobre el <dl> del cartel.

   La paleta sale del propio permiso ICRA: azul de cabecera, verde de aprobado,
   y el ambar reservado EXCLUSIVAMENTE a los dias sin registro (.cell.gap). No
   usar --caution para nada decorativo: en este producto ese color significa
   "aqui falta documentacion".
   ========================================================================== */

:root{
  --permit:#0B4F8A;
  --permit-deep:#083A66;
  --approved:#1B7F52;
  --caution:#B4610C;
  --ink:#0E1621;
  --slate:#5A6B7C;
  --line:#D8E0E8;
  --paper:#FFFFFF;
  --wash:#F1F5F9;
  --sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}
a{color:inherit}
.wrap{max-width:1120px;margin:0 auto;padding:0 32px}

/* ---------- top bar ---------- */
.topbar{border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:10}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:24px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.brand-mark{
  width:32px;height:32px;border-radius:7px;background:var(--permit);
  display:flex;align-items:center;justify-content:center;flex:none;
}
.brand-name{font-size:16px;font-weight:650;letter-spacing:-.02em;line-height:1.15}
.brand-by{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);line-height:1.15}
.topnav{display:flex;align-items:center;gap:28px;font-size:14px;color:var(--slate)}
.topnav a{text-decoration:none}
.topnav a:hover{color:var(--ink)}
.topnav .go{
  color:var(--permit);font-weight:600;border:1px solid var(--line);
  border-radius:7px;padding:8px 15px;
}
.topnav .go:hover{border-color:var(--permit);color:var(--permit)}

/* ---------- hero ---------- */
.hero{padding:68px 0 4px}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,400px);gap:56px;align-items:center}
.eyebrow{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--permit);margin:0 0 20px;display:flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--permit);flex:none}
h1{
  font-size:clamp(34px,4.4vw,52px);line-height:1.06;letter-spacing:-.035em;
  font-weight:680;margin:0 0 20px;
}
h1 .em{color:var(--permit)}
.lede{font-size:17.5px;line-height:1.62;color:var(--slate);margin:0 0 30px;max-width:52ch}
.ticks{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.ticks li{
  font-family:var(--mono);font-size:12px;letter-spacing:.02em;
  border:1px solid var(--line);border-radius:6px;padding:6px 11px;color:var(--slate);
}

/* ---------- signature: the placard ---------- */
.placard-stage{position:relative;padding:8px 0 0}
.placard{
  border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--paper);
  box-shadow:0 6px 20px rgba(11,79,138,.09);max-width:480px;
}
.placard-head{
  background:var(--permit);color:#fff;padding:13px 18px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.placard-head .cls{font-family:var(--mono);font-size:13px;letter-spacing:.08em;font-weight:600}
.stamp{
  font-family:var(--mono);font-size:11px;letter-spacing:.12em;font-weight:700;
  background:var(--approved);padding:4px 10px;border-radius:4px;
}
.placard-body{display:grid;grid-template-columns:1fr auto;gap:20px;padding:18px}
.field{margin-bottom:13px}
.field:last-child{margin-bottom:0}
.field dt{
  font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--slate);margin:0 0 3px;
}
.field dd{margin:0;font-size:14.5px;font-weight:520;line-height:1.35}
.field dd.mono{font-family:var(--mono);font-size:13px;font-weight:500}
.qr-cell{display:flex;flex-direction:column;align-items:center;gap:8px}
.qr{border:1px solid var(--line);border-radius:7px;padding:7px;background:#fff}
.qr-cap{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);text-align:center;line-height:1.35}
.placard-foot{
  border-top:1px solid var(--line);padding:10px 18px;background:var(--wash);
  font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--slate);
  display:flex;justify-content:space-between;gap:12px;
}

/* ---------- sign in ---------- */
.signin{
  border:1px solid var(--line);border-radius:12px;padding:26px;background:var(--paper);
  box-shadow:0 1px 2px rgba(14,22,33,.05);
}
.signin h2{font-size:19px;font-weight:640;letter-spacing:-.02em;margin:0 0 4px}
.signin .sub{font-size:13.5px;color:var(--slate);margin:0 0 22px}
.alert{
  border-left:3px solid var(--caution);background:#FDF6EE;color:#7A4108;
  font-size:13.5px;padding:10px 13px;border-radius:0 6px 6px 0;margin:0 0 18px;
}
.f{margin-bottom:15px}
.f label{display:block;font-size:12.5px;font-weight:600;letter-spacing:.01em;margin:0 0 6px}
.f input{
  width:100%;font:inherit;font-size:14.5px;padding:10px 12px;
  border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);
}
.f input::placeholder{color:#9AA9B7}
.f input:focus{outline:2px solid var(--permit);outline-offset:1px;border-color:var(--permit)}
.btn{
  width:100%;font:inherit;font-size:15px;font-weight:600;cursor:pointer;
  background:var(--permit);color:#fff;border:1px solid var(--permit);
  border-radius:8px;padding:11px 0;margin-top:4px;
}
.btn:hover{background:var(--permit-deep);border-color:var(--permit-deep)}
.btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.signin .note{
  border-top:1px solid var(--line);margin-top:20px;padding-top:14px;
  font-size:12.5px;color:var(--slate);line-height:1.6;
}

/* ---------- placard band ---------- */
.band{margin-top:64px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--wash);padding:52px 0}
.band-grid{display:grid;grid-template-columns:minmax(0,480px) minmax(0,1fr);gap:52px;align-items:center}
.band-copy .eyebrow{margin-bottom:12px}
.band-h{font-size:26px;letter-spacing:-.028em;font-weight:660;margin:0 0 12px;max-width:20ch}
.band-p{font-size:15.5px;line-height:1.65;color:var(--slate);margin:0;max-width:46ch}
@media (max-width:860px){
  .band{margin-top:44px;padding:36px 0}
  .band-grid{grid-template-columns:minmax(0,1fr);gap:28px}
}

/* ---------- features ---------- */
.features{padding:64px 0 0}
.sec-head{margin:0 0 28px}
.sec-head .eyebrow{margin-bottom:10px}
.sec-head h3{font-size:26px;letter-spacing:-.028em;font-weight:660;margin:0;max-width:24ch}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.card{border:1px solid var(--line);border-radius:11px;padding:22px;background:var(--paper)}
.card h4{font-size:16px;font-weight:640;letter-spacing:-.015em;margin:0 0 8px}
.card p{font-size:14px;line-height:1.6;color:var(--slate);margin:0}
.card .lab{
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--permit);margin:0 0 12px;
}
/* the compliance strip — the product's own visual language */
.strip{display:flex;gap:4px;margin:0 0 14px}
.cell{width:16px;height:22px;border-radius:3px;border:1px solid var(--line)}
.cell.done{background:var(--approved);border-color:var(--approved)}
.cell.part{background:linear-gradient(180deg,var(--approved) 50%,#fff 50%);border-color:var(--approved)}
.cell.gap{background:repeating-linear-gradient(45deg,#FBEBD8,#FBEBD8 3px,#fff 3px,#fff 6px);border-color:var(--caution)}

/* ---------- foot ---------- */
footer{margin-top:80px;border-top:1px solid var(--line);padding:22px 0 40px}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.03em;color:var(--slate)}

/* ---------- motion ---------- */
.rise{animation:rise .5s cubic-bezier(.2,.7,.3,1) both}
.rise:nth-child(2){animation-delay:.05s}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.rise{animation:none}}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .wrap{padding:0 20px}
  .hero{padding:40px 0 0}
  .hero .wrap{grid-template-columns:minmax(0,1fr);gap:36px}
  .topnav a:not(.go){display:none}
  .cards{grid-template-columns:minmax(0,1fr)}
  .features{padding:52px 0 0}
  .placard{max-width:none}
}
@media (max-width:520px){
  .placard-body{grid-template-columns:1fr}
  .qr-cell{flex-direction:row;align-items:center;gap:14px;border-top:1px solid var(--line);padding-top:16px}
}

/* Sustituye al style="margin:0" que la maqueta llevaba en linea sobre el <dl>
   del cartel. Mismo efecto, pero sin violar la CSP. */
.placard-dl{margin:0}
