/* Gazeta product system: final component layer shared by public routes. */
html{font-family:var(--ds-font-ui);font-optical-sizing:auto;text-rendering:optimizeLegibility}
body{font-family:var(--ds-font-ui);-webkit-font-smoothing:antialiased}
:where(.page-container,.home-container,.article-page,.search-page,.profile-page){width:min(var(--max),calc(100% - 40px));margin-inline:auto}
:where(.page-title,.section-heading h2,.author-profile-name-row h1,.static-page h1){font-family:var(--ds-font-ui);font-optical-sizing:auto;letter-spacing:-.035em}
:where(.article-title,.news-card h2,.news-card h3,.hero-title,.reel-copy h1){font-family:var(--ds-font-editorial);font-optical-sizing:auto}
:where(.eyebrow,.news-meta,.article-meta,.section-kicker){font-family:var(--ds-font-ui);font-size:var(--ds-text-caption);letter-spacing:.1em}

:where(.button,.section-more-button,.mobile-filter-trigger){min-height:var(--ds-control-height);border-radius:var(--ds-radius-pill);padding-inline:var(--ds-space-4);gap:var(--ds-space-2);font:800 var(--ds-text-label)/1.2 var(--ds-font-ui);transition:transform var(--ds-motion-press) var(--ds-ease-out),background-color var(--ds-motion-control) var(--ds-ease-out),border-color var(--ds-motion-control) var(--ds-ease-out),color var(--ds-motion-control) var(--ds-ease-out)}
:where(.header-control,.dialog-close,.rail-button,.share-rail button,.share-rail a){min-width:var(--ds-control-height);min-height:var(--ds-control-height);display:inline-grid;place-items:center;border-radius:50%;transition:transform var(--ds-motion-press) var(--ds-ease-out),background-color var(--ds-motion-control) var(--ds-ease-out),border-color var(--ds-motion-control) var(--ds-ease-out),color var(--ds-motion-control) var(--ds-ease-out)}
:where(.button,.section-more-button,.mobile-filter-trigger,.header-control,.dialog-close,.rail-button,.share-rail button,.share-rail a):active{transform:scale(.97)}

:where(.news-card,.directory-card,.columnist-card,.continue-card,.filter-panel,.empty-state){border-radius:var(--ds-radius-card)}
:where(.site-dialog){border-radius:var(--ds-radius-dialog)}
:where(.site-dialog .dialog-shell){padding:var(--ds-space-6)}
:where(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){min-height:var(--ds-control-height);border-radius:var(--ds-radius-control);font-family:var(--ds-font-ui)}
:where(input,select,textarea,button):disabled{cursor:not-allowed;opacity:.55}

.section-heading{align-items:center;gap:var(--ds-space-4);margin-block:var(--ds-space-7) var(--ds-space-5)}
.section-heading h2{font-size:clamp(1.65rem,3vw,2.25rem);line-height:1.08}
.section-heading :where(a,.section-more-button){flex:none}
.news-card :where(h2,h3){text-wrap:balance}
.news-card :where(p,.news-card-excerpt){text-wrap:pretty}

@media(hover:hover) and (pointer:fine){
  :where(.button,.section-more-button,.mobile-filter-trigger,.header-control,.dialog-close,.rail-button,.share-rail button,.share-rail a):hover{transform:translateY(-1px)}
  :where(.news-card,.directory-card,.columnist-card,.continue-card):hover{transform:translateY(-2px)}
}
@media(max-width:760px){
  :where(.page-container,.home-container,.article-page,.search-page,.profile-page){width:min(var(--max),calc(100% - 32px))}
  .section-heading{margin-block:var(--ds-space-6) var(--ds-space-4)}
  .section-heading h2{font-size:clamp(1.5rem,7vw,1.85rem)}
  :where(.site-dialog){border-radius:var(--ds-radius-dialog) var(--ds-radius-dialog) 0 0}
  :where(.site-dialog .dialog-shell){padding:var(--ds-space-5) var(--ds-space-4) max(var(--ds-space-5),env(safe-area-inset-bottom))}
  :where(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){font-size:16px}
}
@media(prefers-reduced-motion:reduce){
  :where(.button,.section-more-button,.mobile-filter-trigger,.header-control,.dialog-close,.rail-button,.share-rail button,.share-rail a,.news-card,.directory-card,.columnist-card,.continue-card){transform:none!important;transition-property:color,background-color,border-color,opacity!important;transition-duration:100ms!important}
}

/* Home: largura útil uniforme e navegação editorial visualmente mais leve. */
.home-page{width:min(1400px,calc(100% - 32px))}
.home-page .home-taxonomy-panel{background:#e8f4f9!important;color:#0a2b43!important;border:1px solid #cfe5ef!important;box-shadow:0 14px 34px rgba(7,58,86,.08)!important}
.home-page .home-taxonomy-panel .section-heading h2{color:#082c46!important}
.home-page .home-taxonomy-panel :where(.editoria-pill,.city-pill){border-color:#c5dfe9!important;background:rgba(255,255,255,.76)!important;color:#12344b!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)!important}
.home-page .home-taxonomy-panel :where(.editoria-pill,.city-pill) .material-symbols-rounded{color:#1689b9!important;background:#dff1f7!important}
.home-page .home-taxonomy-panel .taxonomy-subeditorias .editoria-pill{background:rgba(242,249,252,.94)!important}
.home-page .home-taxonomy-panel .taxonomy-rail-shell::before{background:linear-gradient(90deg,#e8f4f9 0,transparent 100%)!important}
.home-page .home-taxonomy-panel .taxonomy-rail-shell::after{background:linear-gradient(270deg,#e8f4f9 0,transparent 100%)!important}
.home-page .home-taxonomy-panel :where(.taxonomy-more-button,.section-more-light){color:#0b668f!important;border-color:#b9d8e6!important;background:rgba(255,255,255,.64)!important}
@media(hover:hover) and (pointer:fine){.home-page .home-taxonomy-panel :where(.editoria-pill,.city-pill):hover{border-color:#8fc6da!important;background:#fff!important}}
.a11y-dark .home-page .home-taxonomy-panel{background:#0b3048!important;color:#f2f8fb!important;border-color:#31556c!important}
.a11y-dark .home-page .home-taxonomy-panel .section-heading h2{color:#f2f8fb!important}
.a11y-dark .home-page .home-taxonomy-panel .taxonomy-rail-shell::before{background:linear-gradient(90deg,#0b3048 0,transparent 100%)!important}
.a11y-dark .home-page .home-taxonomy-panel .taxonomy-rail-shell::after{background:linear-gradient(270deg,#0b3048 0,transparent 100%)!important}
@media(max-width:760px){.home-page{width:min(1400px,calc(100% - 20px))}}

/* Motion hierarchy: fast feedback, restrained page entry and ordered discovery. */
@media(prefers-reduced-motion:no-preference){
  .motion-ready [data-reveal]{transform:translateY(10px)}
  .motion-ready [data-reveal].is-revealed{
    transition:opacity 200ms var(--ds-ease-out) var(--reveal-delay,0ms),transform 260ms var(--ds-ease-sheet) var(--reveal-delay,0ms)
  }
  .motion-ready [data-reveal="heading"].is-revealed{transition-duration:180ms,220ms}
  .motion-ready [data-cascade-item]{transform:translateY(10px) scale(.985)}
  .motion-ready [data-cascade-item].is-cascade-visible{
    transition:opacity 190ms var(--ds-ease-out) var(--cascade-delay,0ms),transform 260ms var(--ds-ease-sheet) var(--cascade-delay,0ms),background-color var(--ds-motion-control) var(--ds-ease-out),border-color var(--ds-motion-control) var(--ds-ease-out)
  }
  .site-dialog.is-open,.site-dialog.is-open::backdrop{transition-duration:240ms}
  .site-dialog.is-open .dialog-shell{transition-duration:260ms}
}
@media(prefers-reduced-motion:no-preference) and (max-width:760px){
  .site-dialog.is-open{transition-duration:280ms}
  .site-dialog.is-closing{transition-duration:180ms}
  .home-page .hero-main{animation:product-hero-settle 280ms var(--ds-ease-sheet) both}
  .home-page .hero-content>*{animation:product-copy-enter 240ms var(--ds-ease-out) both}
  .home-page .hero-content>:nth-child(2){animation-delay:35ms}
  .home-page .hero-content>:nth-child(3){animation-delay:70ms}
  .home-page .hero-content>:nth-child(4){animation-delay:105ms}
}
@keyframes product-hero-settle{from{transform:scale(1.012)}}
@keyframes product-copy-enter{from{opacity:.72;transform:translateY(8px)}}

/* Image feedback stays composited; priority media never waits on a fade. */
.media-pending::after{
  inset:0 -55%;
  background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.52) 50%,transparent 65%);
  background-size:auto;
  transform:translateX(-36%);
  will-change:transform;
  animation:product-shimmer 1.15s linear infinite
}
img.media-decoded{transition:opacity 180ms var(--ds-ease-out),transform 240ms var(--ds-ease-sheet)}
:where(.hero-main,.ad-top) img.media-decoded{transition:none}
@keyframes product-shimmer{to{transform:translateX(36%)}}
@media(prefers-reduced-motion:reduce){.media-pending::after{animation:none;will-change:auto}}
