/* ACADESUL — Academia Maçônica de Letras Sul-Riograndense
   Paleta: azul institucional + dourado (tradição maçônica) */

:root{
  --blue-dark:#0a2342;
  --blue:#123a63;
  --blue-mid:#1c4d7c;
  --gold:#c9a227;
  --gold-light:#e6c968;
  --cream:#f8f4e9;
  --paper:#fffdf8;
  --ink:#22201a;
  --muted:#5c5646;
  --border:#e3d9bd;
  --radius:10px;
  --shadow:0 6px 20px rgba(10,35,66,.12);
  --maxw:1140px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  margin:0;
  font-family:"Georgia","Times New Roman",serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.6;
  overflow-x:hidden;
  max-width:100vw;
}
h1,h2,h3,h4{
  font-family:"Trajan Pro","Cinzel","Georgia",serif;
  color:var(--blue-dark);
  letter-spacing:.02em;
  margin:0 0 .5em;
}
a{color:var(--blue-mid);text-decoration:none;}
a:hover{color:var(--gold);}
img{max-width:100%;display:block;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}

/* Faixa superior institucional */
.top-strip{
  background:var(--blue-dark);
  color:var(--gold-light);
  font-size:.82rem;
  padding:6px 0;
  text-align:center;
  letter-spacing:.04em;
}

/* Cabeçalho */
header.site-header{
  background:linear-gradient(180deg,var(--blue-dark),var(--blue));
  color:var(--paper);
  padding:28px 0 0;
  box-shadow:var(--shadow);
}
.brand-row{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  padding-bottom:18px;
  border-bottom:1px solid rgba(230,201,104,.35);
}
.brand-emblem{
  width:100px;height:100px;flex:none;
  border-radius:50%;
  border:2px solid var(--gold);
  background:#ffffff;
  object-fit:cover;
  display:block;
}

.brand-text h1{
  font-family:"Roboto","Arial Black",sans-serif;
  font-weight:700;
  color:var(--paper);
  font-size:1.5rem;
  letter-spacing:.01em;
  margin:0;
}
.brand-text .subtitle{
  font-family:"Roboto","Arial Black",sans-serif;
  font-weight:700;
  color:var(--gold-light);
  font-size:1.7rem;
  letter-spacing:0.2em;
  margin-top:-10px;
}
.brand-meta{
  margin-left:auto;
  display:flex;
  gap:24px;
  flex-wrap:wrap;
  font-size:.85rem;
  color:var(--paper);
}
.brand-meta .item{
  border-left:2px solid var(--gold);
  padding-left:10px;
}
.brand-meta .label{
  display:block;
  color:var(--gold-light);
  text-transform:uppercase;
  font-size:.68rem;
  letter-spacing:.06em;
}
.text-muted{
  font-size:.8rem;
  color:var(--muted);
  font-family:"Segoe UI",sans-serif;
}
/* Navegação */
nav.main-nav{
  background:var(--blue-dark);
}
nav.main-nav ul{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  margin:0;
  padding:0;
  max-width:var(--maxw);
  margin:0 auto;
}
nav.main-nav a{
  display:block;
  padding:13px 16px;
  color:var(--paper);
  font-size:.85rem;
  letter-spacing:.02em;
  border-right:1px solid rgba(255,255,255,.08);
  white-space:nowrap;
}
nav.main-nav a:hover,
nav.main-nav a.active{
  background:var(--gold);
  color:var(--blue-dark);
  font-weight:bold;
}
.nav-toggle{
  display:none;
  background:none;
  border:1px solid var(--gold);
  color:var(--gold-light);
  padding:8px 12px;
  margin:10px auto;
  font-size:.9rem;
  border-radius:6px;
}

/* Placeholder visual (fotos ainda não inseridas) */
.placeholder-box{
  background:repeating-linear-gradient(135deg,#e9e1c6,#e9e1c6 10px,#ddd2ab 10px,#ddd2ab 20px);
  border:1px dashed var(--gold);
  color:var(--muted);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-family:"Segoe UI",sans-serif;
  font-size:.8rem;
  padding:10px;
  border-radius:var(--radius);
}

/* Hero / carrossel */
.hero{
  position:relative;
  background:var(--blue-dark);
}
.carousel{
  position:relative;
  width:100%;
  max-width:var(--maxw);
  margin:0 auto;
  overflow:hidden;
  height:360px;
}
.carousel-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: var(--blue-dark);
  display: block;
}
.carousel-track{
  display:flex;
  height:100%;
  transition:transform .6s ease;
}
.carousel-slide{
  flex:0 0 100%;
  height:100%;
  position:relative;
}
.carousel-slide .placeholder-box{
  width:100%;height:100%;border-radius:0;
  font-size:1rem;
}
.carousel-caption{
  position:absolute;
  bottom:0;left:0;right:0;
  background:linear-gradient(0deg,rgba(10,35,66,.88),transparent);
  color:var(--paper);
  padding:30px 24px 16px;
  font-size:.95rem;
}
.carousel-dots{
  position:absolute;
  bottom:10px;right:20px;
  display:flex;
  gap:8px;
}
.carousel-dots button{
  width:10px;height:10px;
  border-radius:50%;
  border:1px solid var(--gold-light);
  background:transparent;
  cursor:pointer;
}
.carousel-dots button.active{background:var(--gold);}
.carousel-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  background:rgba(10,35,66,.55);
  color:var(--gold-light);
  border:1px solid var(--gold);
  width:38px;height:38px;
  border-radius:50%;
  cursor:pointer;
  font-size:1.1rem;
  z-index:2;
}
.carousel-arrow.prev{left:14px;}
.carousel-arrow.next{right:14px;}

/* Seções gerais */
.section{padding:56px 0;}
.section.alt{background:var(--paper);}
.section-title{
  text-align:center;
  margin-bottom:8px;
}
.section-kicker{
  text-align:center;
  color:var(--gold);
  text-transform:uppercase;
  font-size:.78rem;
  letter-spacing:.12em;
  font-family:"Segoe UI",sans-serif;
  margin-bottom:6px;
}
.section-lede{
  text-align:center;
  max-width:760px;
  margin:0 auto 36px;
  color:var(--muted);
}
.divider{
  width:70px;height:2px;
  background:var(--gold);
  margin:14px auto 0;
}

/* Grades e cartões */
.grid{display:grid;gap:24px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
.card{
  background:var(--paper);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:22px;
  box-shadow:var(--shadow);
}
.card > img{
  width:100%;
  height:160px;
  object-fit:cover;
  border-radius:var(--radius);
  margin-bottom:14px;
}
.card h3{font-size:1.05rem;}
.card .meta{
  font-size:.8rem;
  color:var(--muted);
  font-family:"Segoe UI",sans-serif;
}

.btn{
  display:inline-block;
  background:var(--gold);
  color:var(--blue-dark);
  font-weight:bold;
  padding:11px 22px;
  border-radius:6px;
  border:none;
  cursor:pointer;
  font-family:"Segoe UI",sans-serif;
  font-size:.9rem;
}
.btn:hover{background:var(--gold-light);color:var(--blue-dark);}
.btn.outline{
  background:transparent;
  border:1px solid var(--gold);
  color:var(--gold);
}

/* Placeholder de texto/dado a preencher */
.tofill{
  background:#fff7e0;
  border:1px dashed #c9a227;
  color:#8a6d00;
  padding:2px 6px;
  border-radius:4px;
  font-size:.85em;
  font-family:"Segoe UI",sans-serif;
}

/* Tabelas (cadeiras) */
table.data-table{
  width:100%;
  border-collapse:collapse;
  background:var(--paper);
  box-shadow:var(--shadow);
}
table.data-table.centered td{
  text-align:center;
}
table.data-table th,table.data-table td{
  border:1px solid var(--border);
  padding:12px 14px;
  text-align:left;
  font-size:.92rem;
}
table.data-table th{
  background:var(--blue-dark);
  color:var(--gold-light);
  font-family:"Segoe UI",sans-serif;
  text-transform:uppercase;
  font-size:.75rem;
  letter-spacing:.05em;
  text-align:center;
}
table.data-table tr:nth-child(even) td{background:#faf6ea;}


/* Formulários */
form.form-box{
  background:var(--paper);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:28px;
  box-shadow:var(--shadow);
  max-width:640px;
  margin:0 auto;
}
form.form-box label{
  display:block;
  font-family:"Segoe UI",sans-serif;
  font-size:.85rem;
  color:var(--blue-dark);
  margin:14px 0 6px;
  font-weight:bold;
}
form.form-box input,
form.form-box select,
form.form-box textarea{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:6px;
  font-family:"Segoe UI",sans-serif;
  font-size:.9rem;
  background:#fff;
}
form.form-box textarea{min-height:110px;resize:vertical;}
.form-note{
  font-family:"Segoe UI",sans-serif;
  font-size:.78rem;
  color:var(--muted);
  margin-top:16px;
}

/* Livro do mês */
.book-feature{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:32px;
  background:linear-gradient(135deg,var(--blue-dark),var(--blue));
  color:var(--paper);
  border-radius:var(--radius);
  padding:30px;
  box-shadow:var(--shadow);
}
.book-feature .covers{display:flex;gap:12px;}
.book-feature .placeholder-box{height:170px;color:#f0e8cc;border-color:var(--gold-light);}
.book-feature h3{color:var(--gold-light);}
.book-feature .tag{
  display:inline-block;
  background:var(--gold);
  color:var(--blue-dark);
  font-family:"Segoe UI",sans-serif;
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  padding:4px 10px;
  border-radius:20px;
  margin-bottom:10px;
}

/* Rodapé */
footer.site-footer{
  background:var(--blue-dark);
  color:var(--gold-light);
  margin-top:40px;
}
footer.site-footer .container{
  padding:40px 24px 20px;
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:28px;
}
footer.site-footer h4{color:var(--paper);font-size:.95rem;}
footer.site-footer p,footer.site-footer li{
  font-family:"Segoe UI",sans-serif;
  font-size:.85rem;
  color:#d9cfa9;
}
footer.site-footer ul{list-style:none;padding:0;margin:0;}
footer.site-footer li{margin-bottom:6px;}
footer.site-footer a{color:#d9cfa9;}
footer.site-footer a:hover{color:var(--gold);}
.footer-bottom{
  text-align:center;
  padding:14px;
  border-top:1px solid rgba(230,201,104,.2);
  font-family:"Segoe UI",sans-serif;
  font-size:.75rem;
  color:#a99a63;
}

/* Breadcrumb / page hero simples */
.page-hero{
  background:linear-gradient(180deg,var(--blue-dark),var(--blue));
  color:var(--paper);
  padding:40px 0;
  text-align:center;
}
.page-hero h1{color:var(--paper);}
.page-hero p{color:var(--gold-light);font-family:"Segoe UI",sans-serif;font-size:.9rem;}

/* Responsivo */
@media(max-width:900px){
  .grid-3,.grid-4,.grid-2{grid-template-columns:1fr 1fr;}
  footer.site-footer .container{grid-template-columns:1fr;}
  .book-feature{grid-template-columns:1fr;}
}
.occupant-photo{
  width:76px;
  height:96px;
  max-width:none;
  object-fit:cover;
  border-radius:4px;
  border:1px solid var(--gold);
  display:block;
}
.table-scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  margin-bottom:8px;
  max-width:100%;
  background:linear-gradient(to right,var(--paper) 30%,rgba(255,255,255,0)),
    linear-gradient(to right,rgba(255,255,255,0),var(--paper) 70%) 100% 0,
    linear-gradient(to right,rgba(10,35,66,.18),rgba(255,255,255,0) 12px),
    linear-gradient(to left,rgba(10,35,66,.18),rgba(255,255,255,0) 12px) 100% 0;
  background-repeat:no-repeat;
  background-size:40px 100%,40px 100%,12px 100%,12px 100%;
  background-attachment:local,local,scroll,scroll;
}
.table-scroll table.data-table{
  min-width:650px;
}

@media(max-width:640px){
  .grid-3,.grid-4,.grid-2{grid-template-columns:1fr;}
  .brand-meta{margin-left:0;}
  nav.main-nav ul{display:none;flex-direction:column;}
  nav.main-nav ul.open{display:flex;}
  .nav-toggle{display:block;}
  .carousel{height:180px;}
  .carousel-slide img{
   width:100%;
   height:100%;
   max-width:100%;
   object-fit:fill;
   background:var(--blue-dark);
   display:block;
}
  .card > img{
    height:120px;
    object-fit:fill;
    background:var(--paper);
    border-radius:var(--radius);
  }

  .table-scroll table.data-table th,
  .table-scroll table.data-table td{
    padding:9px 10px;
    font-size:.82rem;
  }
  .table-scroll table.data-table th{
    text-align:center;
  }
  .table-scroll table.data-table th:nth-child(2),
  .table-scroll table.data-table td:nth-child(2){
    width:120px;
    overflow-wrap:break-word;
  }
  .table-scroll table.data-table th:nth-child(3),
  .table-scroll table.data-table td:nth-child(3){
    padding-left:2px;
    padding-right:2px;
    padding-top:2px;
    padding-bottom:2px;
    min-width:62px;
    text-align:center;
  }
  .occupant-photo{
    width:42px;
    height:50px;
    margin:0 auto;
  }
}