/* Portada Impulso urbano. El texto y la agenda siguen siendo elementos HTML. */
.public-site{
  background:radial-gradient(circle at 87% 11%,#edf0ff 0,transparent 29%),
    radial-gradient(circle at 1% 75%,#eafbfa 0,transparent 26%),#f9fbff;
}
.public-hero{
  width:min(1500px,calc(100% - 54px));
  min-height:650px;
  grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);
  gap:24px;
  margin-top:14px;
}
.public-hero-copy{position:relative;z-index:2;padding:35px 0}
.public-hero h1{
  font-size:clamp(54px,5.6vw,84px);
  line-height:1.02;
  letter-spacing:-.067em;
  max-width:none;
  margin:18px 0 25px;
}
.public-hero h1 .hero-highlight{
  white-space:nowrap;
  font-size:.84em;
  letter-spacing:-.06em;
  line-height:1.18;
  padding-bottom:.08em;
}
.public-hero-copy>p:not(.public-eyebrow){max-width:650px}
.public-visual{
  height:650px;
  width:100%;
  min-width:0;
  overflow:visible;
  align-items:initial;
  justify-content:initial;
}
.public-visual::before,.public-visual::after{display:none}
.public-portrait{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center;
  border-radius:28px;
  filter:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,black 10%);
  mask-image:linear-gradient(90deg,transparent,black 10%);
}
.public-visual .public-preview{
  position:absolute;
  right:4%;
  bottom:24px;
  margin:0;
  width:min(345px,57%);
  transform:rotate(-2deg);
  z-index:2;
}
html[data-theme="dark"] .public-site{
  background:radial-gradient(circle at 82% 10%,#1e3067,transparent 30%),#0a1532;
}
@media(max-width:1100px){
  .public-hero{grid-template-columns:minmax(0,1fr) minmax(0,.93fr);gap:12px}
  .public-hero h1{font-size:clamp(50px,5.5vw,67px)}
  .public-visual{height:570px}
  .public-portrait{height:100%;max-width:none}
  .public-visual .public-preview{width:min(300px,64%);margin:0}
}
@media(max-width:850px){
  .public-hero{grid-template-columns:1fr;max-width:690px;gap:12px}
  .public-hero-copy{padding:15px 0}
  .public-hero h1{font-size:clamp(48px,8vw,70px)}
  .public-visual{height:540px}
  .public-portrait{right:auto}
  .public-visual .public-preview{width:min(320px,60%)}
}
@media(max-width:560px){
  .public-hero{width:calc(100% - 32px);margin-top:10px}
  .public-hero-copy{padding:8px 0}
  .public-hero h1{font-size:clamp(43px,10.5vw,58px);letter-spacing:-.06em}
  .public-hero h1 .hero-highlight{white-space:normal;font-size:.9em}
  .public-visual{height:auto;display:block;overflow:visible}
  .public-portrait{position:relative;display:block;width:100%;height:340px;border-radius:22px;object-position:52% center;-webkit-mask-image:none;mask-image:none}
  .public-visual .public-preview{position:relative;width:calc(100% - 24px);right:auto;bottom:auto;padding:16px;margin:-20px auto 0;transform:none}
}
