/* Colégio Perini — RC2 Director Final Polish
   Escopo intencional: Estrutura + Contato + segurança de overflow.
   Não altera Home, Ciclos ou COC. */
html,body{max-width:100%;overflow-x:clip}
img,picture,iframe,video{max-width:100%}

/* Autoridade: substitui chips decorativos por informação legível */
.authority-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.7rem;max-width:660px}
.authority-row>div{padding:.95rem 1rem;border-top:2px solid var(--orange);background:rgba(255,255,255,.55);border-radius:0 0 14px 14px}
.authority-row strong,.authority-row span{display:block}
.authority-row strong{color:var(--blue-950);font-size:.93rem;line-height:1.15}
.authority-row span{margin-top:.28rem;color:var(--muted);font-size:.72rem;line-height:1.35}

/* ESTRUTURA — hero deixa de ser fachada documental e passa a mostrar experiência + espaços */
.structure-page .structure-hero-final{padding-bottom:86px}
.structure-page .structure-hero-layout{grid-template-columns:minmax(0,.9fr) minmax(520px,1.1fr);gap:clamp(3rem,6vw,6rem);align-items:center}
.structure-page .structure-hero-final .page-hero-copy{max-width:650px}
.structure-page .structure-hero-final .page-hero-copy h1{max-width:12ch;font-size:clamp(3.25rem,4.8vw,5.15rem)}
.structure-page .structure-hero-final .page-hero-copy>p{max-width:55ch}
.structure-hero-mosaic{display:grid;grid-template-columns:1.28fr .72fr;grid-template-rows:1fr 1fr;gap:.85rem;min-width:0}
.structure-hero-mosaic figure{position:relative;margin:0;overflow:hidden;border-radius:22px;background:var(--surface-blue);min-width:0;min-height:0}
.structure-hero-mosaic .hero-human{grid-row:1/-1;min-height:500px}
.structure-hero-mosaic figure:not(.hero-human){min-height:242px}
.structure-hero-mosaic picture{display:block;width:100%;height:100%}
.structure-hero-mosaic img{display:block;width:100%;height:100%;object-fit:cover}
.structure-hero-mosaic .hero-human img{object-position:center 45%}
.structure-hero-mosaic figure:nth-child(2) img{object-position:center 62%}
.structure-hero-mosaic figure:nth-child(3) img{object-position:center 48%}
.structure-hero-mosaic figcaption,.structure-editorial-mosaic figcaption,.routine-photo-pair figcaption{position:absolute;left:.75rem;right:.75rem;bottom:.75rem;padding:.58rem .72rem;border-radius:11px;background:rgba(5,45,91,.82);color:#fff;font-size:.72rem;font-weight:820;line-height:1.25;backdrop-filter:blur(8px)}

/* seção de valor: estrutura como argumento, não catálogo */
.structure-purpose-section{padding:clamp(5.5rem,8vw,8rem) 0}
.structure-purpose-layout{display:grid;grid-template-columns:minmax(0,.88fr) minmax(520px,1.12fr);gap:clamp(3rem,7vw,6.5rem);align-items:start}
.structure-purpose-copy{max-width:560px}
.structure-purpose-copy h2{font-size:clamp(2.8rem,4vw,4.35rem);line-height:.99;letter-spacing:-.045em;max-width:13ch;text-wrap:balance}
.structure-purpose-copy>p{color:var(--muted);max-width:52ch;text-wrap:pretty}
.purpose-points{margin-top:2.1rem;border-top:1px solid var(--line)}
.purpose-points article{display:grid;grid-template-columns:42px 1fr;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--line)}
.purpose-points article>span{color:var(--orange);font-size:.72rem;font-weight:900;letter-spacing:.08em}
.purpose-points h3{margin:0 0 .35rem;font-size:1.08rem;line-height:1.15;letter-spacing:-.02em}
.purpose-points p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.55}
.structure-editorial-mosaic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:330px 225px;gap:.9rem;min-width:0}
.structure-editorial-mosaic figure{position:relative;margin:0;overflow:hidden;border-radius:22px;min-width:0}
.structure-editorial-mosaic .mosaic-main{grid-column:1/-1}
.structure-editorial-mosaic picture{display:block;width:100%;height:100%}
.structure-editorial-mosaic img{display:block;width:100%;height:100%;object-fit:cover}
.structure-editorial-mosaic .mosaic-main img{object-position:center 50%}
.structure-editorial-mosaic figure:nth-child(2) img{object-position:center 60%}
.structure-editorial-mosaic figure:nth-child(3) img{object-position:center 50%}

/* rotina: imagens documentais viram apoio, não protagonista */
.structure-routine-section{padding:clamp(4.8rem,7vw,7rem) 0}
.structure-routine-layout{display:grid;grid-template-columns:minmax(0,.72fr) minmax(560px,1.28fr);gap:clamp(3rem,7vw,6rem);align-items:center}
.structure-routine-copy{max-width:500px}
.structure-routine-copy h2{font-size:clamp(2.4rem,3.6vw,3.8rem);line-height:1;max-width:14ch;text-wrap:balance}
.structure-routine-copy p{color:var(--muted);max-width:48ch}
.routine-photo-pair{display:grid;grid-template-columns:1.15fr .85fr;gap:.9rem}
.routine-photo-pair figure{position:relative;margin:0;overflow:hidden;border-radius:20px;aspect-ratio:4/3}
.routine-photo-pair picture{display:block;width:100%;height:100%}
.routine-photo-pair img{display:block;width:100%;height:100%;object-fit:cover}

/* fachada vira prova contextual, não outdoor */
.structure-location-proof{padding:0 0 clamp(5rem,8vw,7.5rem)}
.location-proof-card{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr);gap:clamp(2rem,5vw,4.5rem);align-items:center;padding:1.1rem;border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:var(--shadow-sm)}
.location-proof-card picture{display:block;overflow:hidden;border-radius:20px;aspect-ratio:3/2}
.location-proof-card img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.location-proof-card>div{padding:1rem 2rem 1rem 0}
.location-proof-card h2{font-size:clamp(2.1rem,3vw,3.3rem);line-height:1;max-width:15ch;text-wrap:balance}
.location-proof-card p{max-width:48ch;color:var(--muted)}
.structure-page .page-cta-actions .btn{min-width:180px}

/* CONTATO — ação + orientação útil, sem fachada gigante */
.contact-page .visit-layout{grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);gap:clamp(2.5rem,6vw,5rem)}
.contact-page .visit-intro{max-width:460px}
.contact-page .visit-intro h1{max-width:11.5ch;font-size:clamp(3rem,4.6vw,4.8rem)}
.contact-authority{grid-template-columns:1fr;margin-top:1.5rem}
.contact-authority>div{display:grid;grid-template-columns:145px 1fr;align-items:baseline;gap:.8rem;padding:.72rem 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
.contact-authority>div:first-child{border-top:2px solid var(--orange)}
.contact-authority strong{font-size:.86rem}
.contact-authority span{margin:0;font-size:.76rem}
.arrival-card{display:grid;grid-template-columns:180px 1fr;gap:1rem;align-items:center;margin:1.4rem 0 1.6rem;padding:.75rem;border:1px solid var(--line);border-radius:20px;background:#fff}
.arrival-card picture{display:block;overflow:hidden;border-radius:14px;aspect-ratio:3/2}
.arrival-card img{display:block;width:100%;height:100%;object-fit:cover}
.arrival-card div{display:grid;gap:.25rem;padding-right:.6rem}
.arrival-card small{color:var(--blue-800);font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.arrival-card strong{color:var(--blue-950);font-size:.98rem;line-height:1.2}
.arrival-card span{color:var(--muted);font-size:.78rem;line-height:1.35}
.contact-page .internal-map{margin-top:1rem}

/* segurança de fluxo: remove risco de blocos invadirem o anterior */
.structure-page section,.contact-page section{position:relative;isolation:isolate}
.structure-page .container,.contact-page .container{min-width:0}
.structure-page [class*="grid"],.contact-page [class*="grid"]{min-width:0}

@media(max-width:1080px){
  .structure-page .structure-hero-layout,.structure-purpose-layout,.structure-routine-layout,.contact-page .visit-layout{grid-template-columns:1fr}
  .structure-page .structure-hero-final .page-hero-copy,.structure-purpose-copy,.structure-routine-copy,.contact-page .visit-intro{max-width:760px}
  .structure-hero-mosaic{max-width:880px}
  .structure-purpose-layout,.structure-routine-layout{gap:2.5rem}
  .location-proof-card{grid-template-columns:minmax(280px,.8fr) 1.2fr}
  .contact-authority{grid-template-columns:repeat(3,1fr);max-width:760px}
  .contact-authority>div{display:block;padding:.85rem;border-top:2px solid var(--orange);border-bottom:0;background:rgba(255,255,255,.55);border-radius:0 0 12px 12px}
}

@media(max-width:720px){
  .authority-row{grid-template-columns:1fr;gap:0;margin-top:1.35rem}
  .authority-row>div{display:grid;grid-template-columns:135px 1fr;gap:.7rem;align-items:baseline;padding:.7rem 0;border-top:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
  .authority-row>div:first-child{border-top:2px solid var(--orange)}
  .authority-row span{margin:0}
  .structure-page .structure-hero-final{padding:104px 0 52px}
  .structure-page .structure-hero-final .page-hero-copy h1{font-size:clamp(2.55rem,11vw,3.35rem);max-width:10.5ch}
  .structure-hero-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:280px 150px;gap:.65rem}
  .structure-hero-mosaic .hero-human{grid-column:1/-1;grid-row:auto;min-height:0}
  .structure-hero-mosaic figure:not(.hero-human){min-height:0}
  .structure-purpose-section{padding:4.5rem 0}
  .structure-purpose-copy h2{font-size:clamp(2.35rem,9.8vw,3rem);max-width:11.5ch}
  .structure-editorial-mosaic{grid-template-rows:250px 170px;gap:.65rem}
  .structure-routine-layout{gap:2rem}
  .structure-routine-copy h2{font-size:clamp(2.25rem,9.2vw,2.85rem)}
  .routine-photo-pair{grid-template-columns:1fr 1fr;gap:.65rem}
  .routine-photo-pair figure{aspect-ratio:3/4}
  .location-proof-card{grid-template-columns:1fr;padding:.75rem;border-radius:22px}
  .location-proof-card>div{padding:.6rem .6rem .85rem}
  .location-proof-card h2{font-size:clamp(2.1rem,9vw,2.7rem)}
  .contact-page .visit-intro h1{font-size:clamp(2.55rem,11vw,3.3rem);max-width:10.5ch}
  .contact-authority{grid-template-columns:1fr}
  .arrival-card{grid-template-columns:110px 1fr;margin:1rem 0 1.3rem;padding:.6rem}
  .arrival-card strong{font-size:.9rem}
}

@media(max-width:390px){
  .structure-hero-mosaic{grid-template-rows:245px 136px}
  .structure-editorial-mosaic{grid-template-rows:225px 150px}
  .routine-photo-pair{grid-template-columns:1fr}
  .routine-photo-pair figure{aspect-ratio:16/10}
  .arrival-card{grid-template-columns:94px 1fr}
}
