/*
 * Guarai Institucional 1.5.1
 * Alinhamento visual inspirado nos fundamentos do Padrao Digital de Governo.
 * Mantem a identidade de Guarai e usa apenas proporcoes, grid, densidade e ritmo.
 */
:root{
  --guarai-gov-container:1200px;
  --guarai-gov-page-margin:40px;
  --guarai-gov-total-margin:80px;
  --guarai-gov-column-gap:24px;
  --guarai-space-1:8px;
  --guarai-space-2:16px;
  --guarai-space-3:24px;
  --guarai-space-4:32px;
  --guarai-space-5:40px;
  --guarai-space-6:48px;
  --radius:12px;
  --radius-sm:8px;
  --shadow:0 4px 12px rgba(7,29,65,.06);
}

/* Fixed informational grid: 40px minimum safety area on desktop. */
.wrap-wide{
  width:min(calc(100% - var(--guarai-gov-total-margin)),var(--guarai-gov-container));
  margin-inline:auto;
}
.wrap-content{
  width:min(calc(100% - var(--guarai-gov-total-margin)),840px);
  margin-inline:auto;
}
.digital-government-wrap{
  width:min(calc(100% - var(--guarai-gov-total-margin)),var(--guarai-gov-container));
  max-width:var(--guarai-gov-container);
}
.transparency-portal{
  width:min(calc(100% - var(--guarai-gov-total-margin)),var(--guarai-gov-container));
}

/* Institutional typography: restrained hierarchy and comfortable reading. */
body{font-size:calc(16px * var(--guarai-font-scale));line-height:1.5}
.utility-bar{font-size:.75rem}
.utility-a11y-links{font-size:.72rem}
.header-search input,.header-search button{font-size:.9rem}
.primary-menu a,.primary-nav .menu a{font-size:.9rem;font-weight:700}
.primary-menu .sub-menu a,.primary-nav .sub-menu a{font-size:.875rem}
.section-heading{margin-bottom:var(--guarai-space-3)}
.section-heading h2{font-size:clamp(1.55rem,2vw,1.8rem);line-height:1.18;letter-spacing:-.01em}
.section-heading p{font-size:.94rem;line-height:1.5;max-width:720px}
.eyebrow,.section-heading>span{font-size:.68rem;letter-spacing:.055em;padding:4px 8px;border-radius:8px}
.section-link{font-size:.9rem}

/* Header and navigation: less vertical mass, same hit targets. */
.utility-bar__inner{min-height:32px}
.site-header__main{min-height:88px;gap:var(--guarai-space-3)}
.custom-logo{max-height:66px}
.header-search{min-height:44px;border-radius:8px}
.header-search button{border-radius:0 7px 7px 0}
.header-shortcuts{gap:2px}
.header-shortcuts>a{width:76px;min-height:56px;padding:5px;border-radius:8px}
.header-shortcuts span{font-size:1rem}
.header-shortcuts strong{font-size:.67rem;line-height:1.15}
.primary-menu a,.primary-nav .menu a{min-height:44px;padding:9px 13px}
.primary-menu .sub-menu,.primary-nav .sub-menu{border-radius:0 0 8px 8px;box-shadow:0 6px 16px rgba(7,29,65,.10)}

/* Hero: full-bleed background, content kept inside the government-style grid. */
.home-hero{padding:var(--guarai-space-5) 0}
.home-hero__grid{grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:var(--guarai-space-4)}
.home-kicker{padding:4px 9px;font-size:.68rem;border-radius:8px}
.home-hero h1{max-width:760px;margin:12px 0;font-size:clamp(2rem,3.6vw,2.8rem);line-height:1.08;letter-spacing:-.018em}
.home-hero__copy>p{max-width:680px;font-size:1rem;line-height:1.5}
.home-hero__actions{margin-top:var(--guarai-space-2);gap:8px}
.home-hero__panel{padding:var(--guarai-space-2);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.14)}
.home-hero__panel>strong{font-size:1.02rem}
.home-hero__panel>p{margin:6px 0 12px;font-size:.82rem}
.home-essential__eyebrow{font-size:.64rem;border-radius:8px}
.home-essential__grid{gap:8px}
.home-essential__grid a{min-height:52px;padding:8px;border-radius:8px;grid-template-columns:32px minmax(0,1fr)}
.home-essential__grid a>span{width:32px;height:32px;border-radius:8px}
.home-essential__grid a>strong{font-size:.78rem}

/* Vertical rhythm based on 8px increments. */
.home-section{padding:var(--guarai-space-4) 0}
.home-banners{padding-top:var(--guarai-space-4);padding-bottom:var(--guarai-space-4)}
.home-rights__grid{gap:var(--guarai-space-3)}
.home-rights h2{font-size:clamp(1.5rem,2vw,1.8rem)}
.page-main{padding:var(--guarai-space-3) 0 var(--guarai-space-5)}
.entry-header,.archive-header{margin:var(--guarai-space-2) 0 var(--guarai-space-3)}
.entry-header h1,.archive-header h1{font-size:clamp(1.8rem,2.8vw,2.35rem);line-height:1.15}
.entry-lead,.archive-header>p,.archive-description{font-size:1rem;line-height:1.55;max-width:780px}
.entry-content{font-size:1rem;line-height:1.65}
.entry-content h2{font-size:1.5rem;line-height:1.25;margin-top:var(--guarai-space-5)}
.entry-content h3{font-size:1.2rem;line-height:1.3;margin-top:var(--guarai-space-4)}

/* Cards: flatter surface, 24px grid gutter, smaller type. */
.home-card-grid,.service-tabs__grid,.content-card-grid,.digital-card-grid,.transparency-grid{gap:var(--guarai-gov-column-gap)}
.home-card{min-height:106px;grid-template-columns:40px minmax(0,1fr) 18px;gap:12px;padding:14px;border-radius:10px;box-shadow:none}
.home-card:hover,.home-card:focus-visible{transform:translateY(-1px);box-shadow:0 4px 12px rgba(7,29,65,.07)}
.home-card__icon{width:40px;height:40px;border-radius:8px;font-size:1rem}
.home-card__content strong{font-size:.9rem;line-height:1.28}
.home-card__content em{margin-top:4px;font-size:.79rem;line-height:1.4}
.service-tabs{margin-top:var(--guarai-space-2)}
.service-tabs__nav{margin-bottom:var(--guarai-space-2);padding:4px;border-radius:10px}
.service-tabs__tab{font-size:.86rem;border-radius:7px;padding:7px 12px}
.service-tab-card{min-height:102px;grid-template-columns:40px minmax(0,1fr) 18px;gap:11px;padding:14px;border-radius:10px;box-shadow:none}
.service-tab-card:hover,.service-tab-card:focus-visible{transform:translateY(-1px);box-shadow:0 4px 12px rgba(7,29,65,.07)}
.service-tab-card__icon{width:40px;height:40px;border-radius:8px}
.service-tab-card__body>strong{font-size:.9rem}
.service-tab-card__body>span{font-size:.79rem}

/* News keeps hierarchy, but follows the same restrained surface language. */
.news-layout{gap:var(--guarai-gov-column-gap)}
.news-card{border-radius:10px;box-shadow:none}
.news-card__body{padding:14px}
.news-card__body h3{font-size:.95rem;line-height:1.3}
.news-card--featured .news-card__body h3{font-size:1.18rem}
.news-card__body p{font-size:.86rem;line-height:1.48}
.home-banner-rail{gap:var(--guarai-gov-column-gap)}
.home-banner-card{border-radius:10px;box-shadow:none}

/* Directories and institutional pages. */
.content-card{border-radius:10px;box-shadow:none}
.content-card>a{min-height:126px;grid-template-columns:40px minmax(0,1fr) 18px;gap:12px;padding:14px}
.content-card__icon{width:40px;height:40px;border-radius:8px}
.content-card h2{font-size:.94rem}
.content-card p{font-size:.82rem;line-height:1.45}
.content-card small{font-size:.75rem}
.content-card:hover{box-shadow:0 4px 12px rgba(7,29,65,.07)}
.filter-chips{gap:8px;margin-bottom:var(--guarai-space-3)}
.filter-chips a{font-size:.84rem}
.fact-card,.document-row,.search-result,.archive-card,.sitemap-card{border-radius:10px;box-shadow:none}
.prefeitura-section{padding:var(--guarai-space-4) 0}
.prefeitura-management-grid,.prefeitura-units-grid{gap:var(--guarai-gov-column-gap)}
.prefeitura-panel{padding:var(--guarai-space-2);border-radius:10px;box-shadow:none}
.prefeitura-panel h3{font-size:1rem}
.prefeitura-callout{padding:var(--guarai-space-2);border-radius:10px}

/* Governo Digital. */
.digital-government-intro{margin-bottom:var(--guarai-space-3)}
.digital-services,.digital-performance,.digital-status,.digital-principles{margin:var(--guarai-space-4) 0}
.digital-section-head{margin-bottom:var(--guarai-space-2);gap:var(--guarai-space-2)}
.digital-section-head h2{font-size:clamp(1.35rem,2vw,1.65rem)}
.digital-section-head p{font-size:.92rem}
.digital-card{grid-template-columns:40px minmax(0,1fr) 18px;gap:10px;padding:14px;border-radius:10px;box-shadow:none}
.digital-card__icon{width:40px;height:40px;border-radius:8px}
.digital-card strong{font-size:.9rem}
.digital-card small{font-size:.79rem}
.digital-performance{padding:var(--guarai-space-2);border-radius:12px;background:#fff}
.digital-kpis{gap:var(--guarai-space-2)}
.digital-kpis>div{min-height:92px;padding:14px;border-radius:10px}
.digital-kpis strong{font-size:1.4rem}
.digital-kpis span{font-size:.8rem}
.digital-principles-grid{gap:var(--guarai-space-2)}
.digital-principles-grid>div{padding:14px;border-radius:10px}

/* Transparency portal: same government grid and denser directory. */
.transparency-portal{margin-top:var(--guarai-space-4);margin-bottom:var(--guarai-space-5);border-radius:12px;box-shadow:0 8px 24px rgba(15,23,42,.08);font-size:calc(15px * var(--transparency-font-scale))}
.transparency-hero{grid-template-columns:minmax(0,1fr) 300px;gap:var(--guarai-space-3);padding:var(--guarai-space-4)}
.transparency-hero h1{font-size:clamp(2rem,3.5vw,2.8rem);line-height:1.08;margin:8px 0}
.transparency-hero__content>p:not(.transparency-kicker){font-size:1rem;line-height:1.5}
.transparency-hero__summary{padding:var(--guarai-space-2);border-radius:10px;box-shadow:0 6px 16px rgba(0,0,0,.12)}
.transparency-tools{padding:12px var(--guarai-space-3)}
.transparency-search{min-height:44px;border-radius:8px}
.transparency-access button{border-radius:7px}
.transparency-portal .breadcrumbs{padding:10px var(--guarai-space-3)}
.transparency-block{padding:var(--guarai-space-3)}
.transparency-card{min-height:100px;padding:13px;gap:10px;border-radius:9px;box-shadow:none}
.transparency-card:hover,.transparency-card:focus-visible{transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,23,42,.07)}
.transparency-card__icon{flex-basis:38px;width:38px;height:38px;border-radius:8px}
.transparency-card strong{font-size:.9rem;line-height:1.28}
.transparency-card em{font-size:.78rem}
.transparency-card small{font-size:.68rem}
.transparency-result-count{padding:0 var(--guarai-space-3) 8px}
.transparency-groups{padding:0 var(--guarai-space-3) var(--guarai-space-3)}
.transparency-group{padding:var(--guarai-space-2);margin-bottom:var(--guarai-space-2);border-radius:10px;box-shadow:none}
.transparency-group__head{margin-bottom:var(--guarai-space-2)}
.transparency-group__icon{flex-basis:44px;width:44px;height:44px;border-radius:9px}
.transparency-group__head h2{font-size:1.2rem}
.transparency-group__head p{font-size:.88rem}
.transparency-chips{gap:8px}
.transparency-chips a{padding:8px 10px;border-radius:8px;font-size:.82rem}

/* Footer: information dense but readable. */
.footer-grid{grid-template-columns:1.45fr repeat(4,minmax(0,1fr));gap:var(--guarai-space-3);padding-top:var(--guarai-space-4);padding-bottom:var(--guarai-space-3)}
.site-footer h2{font-size:.88rem;margin-bottom:8px}
.footer-brand h2{font-size:1.05rem}
.footer-brand>p,.footer-nav a,.footer-default-links a{font-size:.82rem;line-height:1.45}
.footer-nav li,.footer-default-links li{margin:5px 0}
.footer-contact{font-size:.82rem}
.footer-meta{font-size:.75rem}
.footer-social-section{padding:var(--guarai-space-2) 0;gap:var(--guarai-space-2)}
.footer-social-section h2{font-size:.92rem}
.footer-social-kicker{font-size:.7rem}
.footer-social-list a{padding:7px 10px;font-size:.82rem}
.footer-extra{padding:var(--guarai-space-2) 0}
.footer-legal__inner{min-height:50px;font-size:.74rem}
.footer-legal nav{gap:10px}

/* Large displays: official government grid expands while keeping 40px safety margin. */
@media(min-width:1600px){
  :root{--guarai-gov-container:1520px}
}

@media(max-width:1180px){
  .site-header__main{min-height:84px}
  .home-hero__grid{grid-template-columns:minmax(0,1.3fr) minmax(270px,.7fr);gap:var(--guarai-space-3)}
  .home-card-grid,.service-tabs__grid,.content-card-grid,.digital-card-grid,.transparency-grid{gap:var(--guarai-space-2)}
}

@media(max-width:900px){
  .site-header__main{min-height:78px}
  .home-hero{padding:var(--guarai-space-4) 0}
  .home-hero__grid{grid-template-columns:1fr}
  .home-hero__panel{max-width:580px}
  .home-section{padding:var(--guarai-space-4) 0}
  .footer-grid{gap:var(--guarai-space-3)}
  .transparency-hero{grid-template-columns:1fr;padding:var(--guarai-space-3)}
}

/* Smartphone portrait: the federal grid uses a very small external safety margin. */
@media(max-width:559px){
  :root{--guarai-gov-page-margin:8px;--guarai-gov-total-margin:16px;--guarai-gov-column-gap:16px}
  .wrap-content{width:min(calc(100% - 16px),840px)}
  .custom-logo{max-height:58px}
  .home-hero{padding:var(--guarai-space-3) 0}
  .home-hero h1{font-size:1.95rem}
  .home-hero__copy>p{font-size:.95rem}
  .home-hero__panel{padding:14px}
  .home-section{padding:var(--guarai-space-3) 0}
  .section-heading{margin-bottom:var(--guarai-space-2)}
  .section-heading h2{font-size:1.5rem}
  .home-card,.service-tab-card,.content-card>a{padding:13px}
  .transparency-portal{margin-top:8px;margin-bottom:var(--guarai-space-4);border-radius:8px}
  .transparency-hero,.transparency-block,.transparency-groups{padding:var(--guarai-space-2)}
  .transparency-tools,.transparency-portal .breadcrumbs{padding:12px var(--guarai-space-2)}
  .footer-grid{padding-top:var(--guarai-space-3);padding-bottom:var(--guarai-space-3)}
}

@media(prefers-reduced-motion:reduce){
  .home-card,.service-tab-card,.content-card,.digital-card,.transparency-card{transition:none}
}
