/*
 * FLAAG 10.0 — Responsive Hardening Layer
 * Camada canônica carregada por último. Evita que regras históricas do tema
 * voltem a quebrar tablet, celular, desktop ou telas intermediárias.
 */
:root{--flaag-safe-x:clamp(14px,3vw,36px);--flaag-tablet-max:1180px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}
body{overflow-x:clip;min-width:280px}
.site-main{overflow:clip!important}
img,svg,video,canvas{max-inline-size:100%}
.container,.slide-copy,.section-head>*,.people-grid>*,.program-card-copy,.modal-copy,.promo-tools{min-width:0}
.section-head h2,.section-head p,.person-info h3,.program-card-copy strong,.modal-copy h2{overflow-wrap:anywhere}

/* O slide jamais pode entrar na frente do texto. */
.hero-slider,.slide{isolation:isolate}
.slide-media{z-index:0!important;overflow:hidden!important}
.slide-media img,.slide-media .slide-image{inline-size:100%!important;block-size:100%!important;object-fit:cover!important;object-position:center!important}
.slide-content{z-index:2!important}
.slider-nav,.hero-ribbon{z-index:4!important}

/* Tablets e notebooks compactos: composição própria, sem herdar o desktop grande. */
@media (min-width:721px) and (max-width:1180px){
  .container{width:min(var(--max),calc(100% - 48px))!important}
  .site-header .header-inner{height:84px!important}
  .hero-slider,.slide-content{min-height:clamp(680px,82svh,820px)!important}
  .slide-content{padding-top:112px!important;padding-bottom:96px!important;align-items:center!important}
  .slide-copy{width:min(68vw,690px)!important;max-width:690px!important;padding:26px 28px 28px!important;border-radius:22px;background:linear-gradient(110deg,rgba(4,25,55,.78),rgba(4,25,55,.46) 72%,rgba(4,25,55,.08))!important;box-shadow:0 18px 50px rgba(0,0,0,.10)}
  .slide-copy h1{font-size:clamp(3rem,6.5vw,5.3rem)!important;line-height:.97!important;letter-spacing:-.045em!important;margin:17px 0 18px!important}
  .slide-copy p{font-size:clamp(1rem,1.8vw,1.18rem)!important;line-height:1.55!important;max-width:58ch!important}
  .slide-actions{margin-top:24px!important;gap:10px!important}
  .slide-actions .btn{min-height:46px!important;padding-inline:19px!important}
  .slide-media:after{z-index:1!important;background:linear-gradient(90deg,rgba(2,20,48,.93) 0%,rgba(4,31,70,.70) 48%,rgba(3,24,54,.16) 78%,rgba(3,24,54,.24) 100%)!important}
  .slider-nav{bottom:28px!important}
  .people-grid,.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .news-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .person-card,.news-card,.gallery-item,.program-card{min-width:0!important;max-width:100%!important}
  .program-card-main{grid-template-columns:90px minmax(0,1fr) 42px!important;gap:14px!important}
  .program-card-image{grid-row:1/3!important;width:90px!important;height:90px!important}
  .program-card-time{grid-column:2!important}
  .program-card-copy{grid-column:2!important}
  .program-card-toggle{grid-column:3!important;grid-row:1/3!important}
  .program-card-details{padding:0 18px 20px!important}
  .program-card-main:not(:has(.program-card-image)){grid-template-columns:100px minmax(0,1fr) 42px!important}
  .program-card-main:not(:has(.program-card-image)) .program-card-time{grid-column:1!important}
  .program-card-main:not(:has(.program-card-image)) .program-card-copy{grid-column:2!important}
  .program-card-main:not(:has(.program-card-image)) .program-card-toggle{grid-column:3!important}
  .profile-modal,.promo-modal,.work-viewer{-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important}
  .profile-modal.open,.promo-modal.open,.work-viewer.open{padding:16px!important;align-items:center!important;justify-content:center!important}
  .profile-modal .modal-panel{width:min(1040px,calc(100vw - 32px))!important;height:auto!important;max-height:calc(100dvh - 32px)!important;border-radius:24px!important;overflow:auto!important}
  .profile-modal .modal-content{display:grid!important;grid-template-columns:minmax(260px,38%) minmax(0,1fr)!important;min-height:0!important}
  .profile-modal .modal-image{padding:0!important;min-height:100%!important;background:#f4f7fb!important}
  .profile-modal .modal-image img{width:100%!important;height:100%!important;min-height:520px!important;max-height:none!important;object-fit:cover!important;object-position:center top!important}
  .profile-modal .modal-copy{padding:42px 36px 44px!important;overflow:visible!important}
  .profile-modal .modal-copy h2{font-size:clamp(2.3rem,4.8vw,4rem)!important}
  .promo-modal .promo-panel{width:min(1080px,calc(100vw - 32px))!important;height:auto!important;max-height:calc(100dvh - 32px)!important;margin:0!important;border-radius:24px!important;overflow:auto!important;padding:28px!important;gap:26px!important}
}

/* Tablet retrato: uma coluna no editor/card para eliminar qualquer esmagamento. */
@media (min-width:721px) and (max-width:900px){
  .slide-copy{width:min(82vw,650px)!important}
  .slide-copy h1{font-size:clamp(2.8rem,7.2vw,4.7rem)!important}
  .promo-modal .promo-panel{display:block!important;width:min(720px,calc(100vw - 32px))!important;padding:60px 24px 30px!important}
  .promo-preview{width:min(100%,470px)!important;max-width:470px!important;margin:0 auto 24px!important}
  .promo-preview.is-story{width:min(100%,390px)!important;max-width:390px!important}
  .promo-tools{width:100%!important}
}

/* Tablet paisagem: duas colunas, ambas com largura protegida. */
@media (min-width:901px) and (max-width:1180px){
  .promo-modal .promo-panel{display:grid!important;grid-template-columns:minmax(340px,470px) minmax(300px,1fr)!important}
  .promo-preview{width:100%!important;max-width:470px!important}
  .promo-preview.is-story{max-width:390px!important}
}

/* Celulares: uma única composição, sem regras concorrentes de versões antigas. */
@media (max-width:720px){
  .container{width:min(100% - 28px,var(--max))!important}
  .hero-slider,.slide-content{min-height:max(680px,100svh)!important}
  .slide-content{padding:108px 0 116px!important;align-items:flex-end!important}
  .slide-copy{width:100%!important;max-width:100%!important;padding:0!important;background:transparent!important;box-shadow:none!important}
  .slide-copy h1{font-size:clamp(2.55rem,13vw,4.2rem)!important;line-height:.96!important;overflow-wrap:anywhere!important}
  .slide-copy p{font-size:1.02rem!important;line-height:1.5!important;max-width:34rem!important}
  .slide-media:after{background:linear-gradient(180deg,rgba(3,24,54,.28) 0%,rgba(3,24,54,.34) 35%,rgba(2,20,48,.94) 76%,rgba(2,20,48,.98) 100%)!important}
  .slide-actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important;gap:10px!important}
  .slide-actions .btn{width:100%!important}
  .people-grid,.archive-grid,.news-grid,.gallery-grid{grid-template-columns:1fr!important}
  .person-card,.news-card{width:100%!important;max-width:460px!important;margin-inline:auto!important}
  .program-card-main{grid-template-columns:72px minmax(0,1fr) 38px!important;gap:10px!important;padding:13px!important}
  .program-card-image{grid-row:1/3!important;width:72px!important;height:78px!important}
  .program-card-time{grid-column:2!important}
  .program-card-copy{grid-column:2!important}
  .program-card-toggle{grid-column:3!important;grid-row:1/3!important;width:38px!important;height:38px!important}
  .program-card-details{padding:0 13px 16px!important}
}

/* Telas muito estreitas / webviews. */
@media (max-width:390px){
  .container{width:min(100% - 22px,var(--max))!important}
  .slide-copy h1{font-size:clamp(2.35rem,13.5vw,3.7rem)!important}
  .section{padding-block:64px!important}
}

/* Desempenho de pintura: seções fora da primeira dobra não precisam ser renderizadas antes de aparecer. */
@supports (content-visibility:auto){
  .home .site-main>section.section{content-visibility:auto;contain-intrinsic-size:1px 760px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* =========================================================
 * FLAAG 10.2 — Promo Modal Hardening
 * Um único fluxo de layout. O canvas real define a altura da prévia,
 * eliminando sobreposição em tablets e diferenças entre breakpoints.
 * ========================================================= */
.promo-modal .promo-panel{
  box-sizing:border-box!important;
  min-width:0!important;
}
.promo-modal .promo-preview{
  position:relative!important;
  display:block!important;
  float:none!important;
  clear:both!important;
  flex:none!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:auto!important;
  contain:none!important;
  overflow:hidden!important;
  margin-inline:auto!important;
}
.promo-modal .promo-render-canvas,
.promo-modal .promo-preview.is-story .promo-render-canvas{
  position:relative!important;
  inset:auto!important;
  display:block!important;
  float:none!important;
  width:100%!important;
  height:auto!important;
  max-width:100%!important;
  aspect-ratio:auto!important;
  margin:0!important;
}
.promo-modal .promo-tools{
  position:relative!important;
  z-index:1!important;
  min-width:0!important;
  width:100%!important;
  margin:0!important;
}

/* Tablet retrato e tablets Android/iPad em janelas intermediárias. */
@media (min-width:721px) and (max-width:1024px){
  .promo-modal.open{
    padding:12px!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .promo-modal .promo-panel{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:24px!important;
    width:min(760px,calc(100vw - 24px))!important;
    height:auto!important;
    max-height:calc(100dvh - 24px)!important;
    padding:64px 24px 30px!important;
    border-radius:24px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
  }
  .promo-modal .promo-preview{
    order:1!important;
    max-width:470px!important;
  }
  .promo-modal .promo-preview.is-story{max-width:390px!important}
  .promo-modal .promo-tools{
    order:2!important;
    max-width:100%!important;
    padding:0!important;
  }
  .promo-photo-controls-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}

/* Tablet paisagem / notebook compacto: duas colunas estáveis. */
@media (min-width:1025px) and (max-width:1180px){
  .promo-modal .promo-panel{
    display:grid!important;
    grid-template-columns:minmax(340px,470px) minmax(0,1fr)!important;
    align-items:start!important;
    gap:26px!important;
  }
  .promo-modal .promo-preview{max-width:470px!important;margin:0 auto!important}
  .promo-modal .promo-preview.is-story{max-width:390px!important}
}

/* Celular: mesma prévia/canvas, somente redimensionada. */
@media (max-width:720px){
  .promo-modal.open{padding:0!important;align-items:stretch!important}
  .promo-modal .promo-panel{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:20px!important;
    width:100%!important;
    height:100dvh!important;
    max-height:100dvh!important;
    padding:60px 12px max(24px,env(safe-area-inset-bottom))!important;
    border-radius:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
  }
  .promo-modal .promo-preview{order:1!important;max-width:390px!important}
  .promo-modal .promo-preview.is-story{max-width:340px!important}
  .promo-modal .promo-tools{order:2!important;padding:0!important}
  .promo-photo-controls-grid{grid-template-columns:1fr!important}
}
