/* H02 / Hero A | G2 V5; no official bitmap or unlicensed photography in public repository. */
.ha {
  --deep: #11271f;
  position: relative; isolation: isolate; overflow: clip;
  margin: 20px 20px 28px; min-height: 856px; padding: 35px 55px 20px;
  border-radius: 16px; color: #fff;
  background: linear-gradient(136deg, #10261e, #254335 64%, #405b47);
}
.ha a:focus-visible,.ha summary:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.ha-header { position: relative; z-index: 5; display: flex; justify-content: space-between; align-items: center; min-height: 58px; gap: 20px; }
.ha-logo { display: inline-flex; gap: 16px; align-items: center; color: #fff; text-decoration: none; }
.ha-symbol { font-family: Georgia, serif; font-size: 48px; line-height: 1; padding-right: 15px; border-right: 1px solid #b6c7bb; font-weight: 400; letter-spacing: -.13em; }
.ha-wordmark { font-size: 12px; font-weight: 600; letter-spacing: .43em; white-space: nowrap; }
.ha-wordmark small { display: block; margin-top: 4px; font-size: 7px; font-weight: 400; letter-spacing: .26em; }
.ha-nav { display: flex; gap: clamp(20px, 4.5vw, 65px); align-items: center; }
.ha-nav > a:not(.ha-cta) { color: #fff; text-decoration: none; font-size: 15px; font-weight: 600; }
.ha-nav > a:hover { text-decoration: underline; }
.ha-mobile-menu { display: none; }
.ha-cta { position: relative; z-index: 3; display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-width: 260px; min-height: 54px; padding: 7px 9px 7px 23px; border-radius: 100px; background: #fff; color: #1e3b2d; font-size: 16px; line-height: 1.3; font-weight: 750; text-decoration: none; }
.ha-cta--top { min-width: 222px; min-height: 48px; }
.ha-arrow { background: #1e3b2d; color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; width: 38px; height: 38px; border-radius: 50%; font-size: 34px; font-weight: 300; line-height: 1; }
.ha-main { position: relative; z-index: 1; }
.ha-eyebrow { margin: 58px 0 0; font-size: 13px; font-weight: 800; letter-spacing: .15em; }
.ha-title { position: relative; z-index: 2; margin: 28px 0 0 -12px; font-size: clamp(80px, 11.65vw, 168px); line-height: .93; letter-spacing: -.055em; white-space: nowrap; font-weight: 800; }
.ha-divider { position: relative; z-index: 2; margin-top: 28px; width: 100%; height: 1px; background: rgba(220,237,222,.27); }
.ha-subtitle--tablet,.ha-subtitle--phone { display: none; }
.ha-subtitle { position: relative; z-index: 2; margin: 35px 0 0; font-size: clamp(27px,3.1vw,44px); line-height: 1.26; font-weight: 750; letter-spacing: -.03em; }
.ha-media { position: absolute; z-index: 0; right: -14px; top: -52px; width: min(704px, 56%); height: 602px; border-radius: 12px; background: linear-gradient(135deg, #244233, #0e241b 95%); overflow: hidden; }
.ha-media::before { content: ""; position: absolute; inset: 20px; border: 1px solid rgba(218,235,216,.09); border-top-color: transparent; border-bottom-color: transparent; }
.ha-lines { position: absolute; inset: 0; width: 100%; height: 100%; }
.ha-media-label { display: none; }
.ha-description { position: relative; z-index: 2; margin: 82px 0 0; max-width: 460px; font-size: 19px; line-height: 1.55; }
.ha-cta--main { margin-top: 43px; }
.ha-location { position: absolute; z-index: 3; right: 0; top: 480px; width: 291px; padding: 25px 23px; min-height: 146px; color: #1e3b2d; background: #f8f6f2; border-radius: 14px; }
.ha-location small { display: block; font-size: 10px; letter-spacing: .13em; font-weight: 800; }
.ha-location strong { display: block; font-size: 34px; margin-top: 8px; font-weight: 800; letter-spacing: -.04em; }
.ha-location span { display: block; font-size: 15px; }
.ha-provisional { margin: 32px 0 0; color: #cbdacf; font-size: 9px; font-weight: 600; letter-spacing: .11em; }
@media (max-width: 1100px) {
  .ha { padding-inline: 34px; }
  .ha-nav { gap: 20px; }
  .ha-title { font-size: 12vw; margin-left: 0; }
}
@media (max-width: 820px) {
  .ha { min-height: 850px; padding: 12px 16px 16px; margin: 12px; }
  .ha-nav { display: none; }
  .ha-mobile-menu { display: block; position: relative; }
  .ha-mobile-menu summary { cursor: pointer; display: grid; place-items: center; width: 44px; height: 44px; list-style: none; border-radius: 10px; background: rgba(255,255,255,.17); font-size: 23px; }
  .ha-mobile-menu summary::-webkit-details-marker { display: none; }
  .ha-mobile-menu nav { position: absolute; z-index: 9; right: 0; top: 54px; min-width: 205px; padding: 12px; border-radius: 9px; background: #f8f6f2; color: #1e3b2d; box-shadow: 0 14px 30px #0005; }
  .ha-mobile-menu nav a { display: block; color: #1e3b2d; text-decoration: none; font-weight: 600; padding: 10px 14px; }
  .ha-eyebrow { margin-top: 65px; font-size: 11px; }
  .ha-eyebrow span { display: none; }
  .ha-subtitle--desktop { display: none; }
  .ha-subtitle--tablet { display: block; }
  .ha-title { margin-top: 16px; font-size: clamp(53px,10.5vw,86px); }
  .ha-divider { margin-top: 59px; }
  .ha-subtitle { font-size: clamp(31px,5.5vw,45px); margin-top: 43px; }
  .ha-media { top: 360px; left: -6px; right: -6px; width: auto; height: 190px; }
  .ha-description { display: none; }
  .ha-location { display: none; }
  .ha-cta--main { display: flex; width: 100%; margin-top: 275px; }
  .ha-media-label { display: block; position: absolute; left: 0; right: 0; bottom: 28px; z-index: 2; padding: 12px 15px; background: #0c271fe9; font-size: 10px; font-weight: 700; letter-spacing: .09em; }
}
@media (max-width: 480px) {
  .ha { border-radius: 15px; min-height: 833px; padding: 11px 16px 15px; }
  .ha-symbol { font-size: 39px; padding-right: 11px; }
  .ha-subtitle--tablet { display: none; }
  .ha-subtitle--phone { display: block; }
  .ha-logo { gap: 12px; }
  .ha-wordmark { font-size: 10px; letter-spacing: .29em; }
  .ha-wordmark small { font-size: 6px; }
  .ha-eyebrow { margin-top: 78px; font-size: 10px; }
  .ha-eyebrow span { display: none; }
  .ha-eyebrow::after { content: " · SC"; }
  .ha-title { margin-top: 37px; font-size: clamp(43px, 13.6vw, 53px); letter-spacing: -.06em; }
  .ha-divider { margin-top: 19px; }
  .ha-subtitle { max-width: 310px; margin-top: 22px; font-size: clamp(27px,8vw,31px); line-height: 1.2; }
  .ha-subtitle br { display: none; }
  .ha-media { top: 150px; height: 397px; left: 0; right: 0; }
  .ha-media-label { top: 162px; bottom: auto; }
  .ha-description { display: block; position: relative; z-index: 2; max-width: none; padding: 15px 12px; border-radius: 10px; background: #0c291fbd; margin-top: 167px; font-size: 15px; line-height: 1.48; }
  .ha-cta--main { margin-top: 72px; }
  .ha-provisional { margin-top: 20px; font-size: 8px; }
}
@media (min-width: 481px) and (max-width: 820px) { .ha-provisional { display: none; } }
@media (max-width: 374px) {
  .ha-eyebrow::after { content: none; }
  .ha-subtitle--phone { display: none; }
  .ha-subtitle--tablet { display: block; }
  .ha-subtitle { font-size: 25px; line-height: 1.45; }
  .ha-media { top: 257px; height: 205px; }
  .ha-media-label { top: auto; bottom: 27px; }
  .ha-description,.ha-provisional { display: none; }
  .ha-cta--main { margin-top: 284px; }
  .ha { min-height: 760px; }
}

@media (prefers-reduced-motion: reduce) {
  .ha *, .ha *::before, .ha *::after { animation: none !important; transition: none !important; }
}


/* G2 V5: contornos finos paramétricos por formato, sem repetir a mesma
   ilustração desktop como imagem escalada no celular. */
.ha-lines { pointer-events: none; }
.ha-lines--tablet,.ha-lines--phone,.ha-lines--small { display: none; }
.ha-crop {
  position: absolute; z-index: 2; width: 16px; height: 16px;
  border-color: rgba(224,238,226,.46); border-style: solid; border-width: 0;
  pointer-events: none;
}
.ha-crop--tl { left: 20px; top: 20px; border-left-width: 1px; border-top-width: 1px; }
.ha-crop--tr { right: 20px; top: 20px; border-right-width: 1px; border-top-width: 1px; }
.ha-crop--bl { left: 20px; bottom: 20px; border-left-width: 1px; border-bottom-width: 1px; }
.ha-crop--br { right: 20px; bottom: 20px; border-right-width: 1px; border-bottom-width: 1px; }
@media (max-width: 820px) {
  .ha-lines--desktop { display: none; }
  .ha-lines--tablet { display: block; }
}
@media (max-width: 480px) {
  .ha-lines--tablet { display: none; }
  .ha-lines--phone { display: block; }
}
@media (max-width: 374px) {
  .ha-lines--phone { display: none; }
  .ha-lines--small { display: block; }
}

/* A prancha G2 V5 tem textos editoriais provisórios próprios por breakpoint. */
.ha-description--phone { display: none; }
@media (max-width: 480px) {
  .ha-description--desktop { display: none; }
  .ha-description--phone { display: inline; }
}


/* PR-05 | Refino fotográfico reversível. Recorte, hierarquia e CTA
   seguem as pranchas G2 V5; fotografia licenciada é provisória. */
.ha-media { isolation: isolate; background: #183426; }
.ha-photo {
  position: absolute; inset: 0; z-index: 0;
  display: block; width: 100%; height: 100%; object-fit: cover;
  object-position: 53% 50%;
  filter: saturate(.78) contrast(1.1) brightness(.86);
}
.ha-photo-shade {
  position: absolute; z-index: 1; inset: 0;
  background:
    linear-gradient(90deg, rgba(16,37,28,.54), rgba(16,37,28,.10) 68%),
    linear-gradient(0deg, rgba(12,33,24,.64), transparent 48%),
    linear-gradient(180deg, rgba(18,42,31,.22), transparent 45%);
  pointer-events: none;
}
.ha-media::before { z-index: 2; pointer-events: none; }
.ha-lines { z-index: 3; mix-blend-mode: screen; opacity: .78; }
.ha-crop { z-index: 4; }
.ha-media-label {
  z-index: 5; padding: 10px 13px; border-radius: 4px;
  letter-spacing: .09em;
}
.ha-photo-credit {
  position: absolute; right: 18px; bottom: 18px; z-index: 5;
  color: rgba(255,255,255,.92);
  font-size: 10px; font-weight: 500; text-decoration: none;
  background: rgba(9,28,20,.55); border-radius: 4px;
  padding: 4px 7px; backdrop-filter: blur(6px);
}
.ha-photo-credit:hover { text-decoration: underline; }
.ha-photo-credit:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.ha-title { text-wrap: nowrap; }
.ha-description { text-wrap: pretty; }
.ha-cta {
  transition: background-color .18s ease, color .18s ease,
              transform .18s ease, box-shadow .18s ease;
}
.ha-cta:hover {
  background: #f8f6f2; color: #102e22;
  box-shadow: 0 8px 28px rgba(10,27,20,.14);
}
.ha-cta:active { transform: translateY(1px); }
.ha-arrow { transition: transform .18s ease; }
.ha-cta:hover .ha-arrow { transform: translate(1px,-1px); }
@media (min-width: 821px) {
  .ha-media { box-shadow: 0 22px 60px rgba(4,21,12,.12); }
  .ha-photo { object-position: center 43%; }
  .ha-location { box-shadow: 0 14px 35px rgba(4,21,12,.13); }
  .ha-photo-credit { bottom: 88px; }
}
@media (min-width: 481px) and (max-width: 820px) {
  .ha-photo { object-position: 50% 57%; }
  .ha-photo-shade { background: linear-gradient(0deg,rgba(9,30,21,.54),rgba(19,47,30,.34)); }
  .ha-photo-credit { font-size: 9px; bottom: 4px; right: 9px; }
  .ha-media-label { bottom: 28px; }
}
@media (max-width: 480px) {
  .ha-photo { object-position: 48% 57%; filter: saturate(.72) brightness(.70); }
  .ha-photo-shade {
    background:
      linear-gradient(180deg,rgba(13,37,26,.72),rgba(13,37,26,.42) 48%,rgba(13,37,26,.83)),
      linear-gradient(90deg,rgba(10,34,23,.20),transparent);
  }
  .ha-media-label {
    top: auto; bottom: 58px; left: 10px; right: auto;
    background: rgba(10,37,25,.64); font-size: 9px;
    padding: 6px 8px;
  }
  .ha-photo-credit { bottom: 10px; right: 10px; font-size: 9px; }
  .ha-description {
    background: rgba(9,37,25,.84);
    box-shadow: 0 6px 22px rgba(1,15,8,.1);
  }
  .ha-provisional { color: #d1e3d5; letter-spacing: .07em; }
}
@media (max-width: 374px) {
  .ha-photo { object-position: 44% 54%; }
  .ha-media-label { bottom: 43px; }
  .ha-photo-credit { bottom: 7px; }
}
@media (prefers-reduced-motion: reduce) {
  .ha-cta,.ha-arrow { transition: none !important; }
}
