/* ================== Layout base do tema (estrutura) ================== */
* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }

:root{
  --gap: 16px;
  --page-max: 1200px; /* largura máxima da área central */
}

/* Escopo do painel admin para não afetar a área pública */
body.admin-layout{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: #fff; /* apenas estrutural; cores vão no style.css */
}

/* Blocos de topo (ordem exigida) */
body.admin-layout #site-header { margin: 0 0 var(--gap); }
body.admin-layout #nav-public  { margin: 0 0 var(--gap); }
body.admin-layout #nav-admin   { margin: 0 0 var(--gap); }

/* Containers com largura máxima centralizada */
.container, .admin-container,
body.admin-layout #nav-public,
body.admin-layout #nav-admin,
body.admin-layout #site-header,
body.admin-layout #site-footer{
  width: min(var(--page-max), 100%);
  padding: 0 var(--gap);
  margin: 0 auto;
}

/* ================== Grid principal (admin) ================== */
body.admin-layout #admin-shell.admin-grid{
  display: grid;
  grid-template-columns: 4fr 1fr;
  gap: var(--gap);
  width: min(var(--page-max), 100%);
  padding: 0 var(--gap);
  margin: 0 auto var(--gap);
  align-items: start;
}
@media (max-width: 1100px){
  body.admin-layout #admin-shell.admin-grid{ grid-template-columns: 3fr 1fr; }
}
@media (max-width: 900px){
  body.admin-layout #admin-shell.admin-grid{ grid-template-columns: 1fr; }
}

/* ===================================================================== */
/* ====================== HEADER (posicionamento) ======================= */
/* Grid 9x5 em linha única:
   esquerda: brand (logo + título + subtítulo)
   meio:     textos opcionais (1 e 2)
   direita:  social (topo) e seletor de idioma (base)
*/
.site-header{
  display: grid;
  grid-template-columns: repeat(9, minmax(0, 1fr));
  grid-template-rows: repeat(5, auto);
  gap: 8px;
  align-items: center;
}

/* BLOCO ESQUERDA: brand com grid interno */
.header__brand{
  grid-column: 1 / 4;   /* colunas A..C */
  grid-row:    2 / 5;   /* linhas 2..4 */
  display: grid;
  grid-template-columns: 120px 1fr;   /* logo | textos */
  grid-template-rows: auto auto;      /* título | subtítulo */
  column-gap: 16px;
  align-items: center;
}
.header__logo{      grid-column: 1 / 2; grid-row: 1 / 3; align-self: center; }
.header__title{     grid-column: 2 / 3; grid-row: 1 / 2; align-self: end; }
.header__subtitle{  grid-column: 2 / 3; grid-row: 2 / 3; align-self: start; }

/* MEIO: um wrapper posicionado no grid para os dois textos */
.header__texts{
  grid-column: 4 / 7;   /* D..F */
  grid-row:    2 / 5;   /* linhas 2..4 */
  display: grid;
  grid-template-rows: auto auto;
  row-gap: 12px;
  align-content: center; /* centraliza verticalmente o par de textos */
}
.header__text1{ grid-row: 1; }
.header__text2{ grid-row: 2; }

/* DIREITA: social no topo e idioma embaixo */
.header__social{ grid-column: 7 / 10; grid-row: 2 / 3; text-align: right; }
.header__lang{   grid-column: 7 / 10; grid-row: 4 / 5; text-align: right; }

/* Logo responsivo */
.header__logo-img{
  max-width: 100%;
  height: auto;
  display: block;
}

/* Responsivo: empilha tudo */
@media (max-width: 768px){
  .site-header{
    grid-template-columns: 1fr;
    grid-template-rows: none;
    gap: 10px;
  }
  .header__brand,
  .header__texts,
  .header__social,
  .header__lang{
    grid-column: 1 / -1;
    grid-row: auto;
    text-align: left;
  }
  .header__brand{
    grid-template-columns: 84px 1fr;
  }
}
