/* Approved photographs: no cropping, generated backgrounds or text overlays. */
.site-photo{display:block;width:100%;min-width:0}
.site-photo img,.about-teaser .site-photo img{position:static;display:block;width:100%;height:auto;max-height:none;margin:0;object-fit:contain;border-radius:0}
.premium-portrait.photo-hero{max-width:440px;margin-top:20px;padding:14px 14px 18px}
.photo-hero .hero-portrait-image{aspect-ratio:auto;overflow:visible;border-radius:0}
.photo-hero .hero-portrait-image img{height:auto;object-fit:contain}
.photo-hero .hero-portrait-caption{padding:16px 6px 2px}
.about-image.photo-about{width:100%;max-width:340px;max-height:none;height:auto;background:transparent;border-radius:0;overflow:visible;padding:12px;margin:0 auto}
.course-coach .site-photo{align-self:center}
.course-coach .site-photo img{max-height:none;height:auto}
.institution-overview{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:70px;align-items:center;margin-bottom:44px}
.institution-overview h2{margin-bottom:22px}
.institution-overview p{max-width:620px;color:var(--muted)}
.institution-photo{margin:0;padding:12px;width:260px}
.contact-layout{grid-template-areas:"intro form" "photo form";grid-template-rows:auto 1fr;align-items:start;column-gap:55px;row-gap:30px}
.contact-intro{grid-area:intro}
.contact-form-card{grid-area:form}
.contact-photo{grid-area:photo;width:260px;max-width:100%;padding:12px;margin:0}
@media(max-width:850px){
  .institution-overview{gap:35px;grid-template-columns:minmax(0,1fr) 240px}
  .institution-photo{width:240px}
  .contact-layout{grid-template-columns:1fr;grid-template-areas:"intro" "form" "photo";gap:30px}
  .contact-photo{justify-self:center}
}
@media(max-width:600px){
  .premium-portrait.photo-hero{max-width:360px;margin:24px auto 30px}
  .about-image.photo-about{max-width:300px}
  .institution-overview{grid-template-columns:1fr;gap:30px}
  .institution-photo{justify-self:center}
  .contact-photo{width:240px}
}
@media print{
  .site-photo{break-inside:avoid}
  .photo-hero,.photo-about,.institution-photo,.contact-photo{max-width:60mm!important;margin:0 auto!important}
  .institution-overview,.contact-layout{display:block}
}

/* Del patio al píxel: documentary photos, full frames and readable captions. */
.classroom-project{scroll-margin-top:110px}
.classroom-project>.wrap{max-width:1040px}
.project-intro{max-width:760px;margin-bottom:38px}
.project-intro h2{margin-bottom:18px}
.project-intro p{color:var(--muted);margin-top:18px}
.project-intro .project-deck{font-family:var(--font-heading);font-size:22px;font-weight:600;line-height:1.4;color:var(--ink)}
.project-gallery{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);grid-template-areas:"lead explain" "detail explain";gap:28px;align-items:start}
.project-figure{margin:0;background:#fffdf8;border:1px solid var(--line);min-width:0}
.project-figure--lead{grid-area:lead}
.project-figure--explain{grid-area:explain}
.project-figure--detail{grid-area:detail}
.project-image-link{display:block}
.project-image-link:focus-visible{outline:3px solid var(--accent-text);outline-offset:5px}
.project-figure figcaption{padding:20px 22px}
.project-figure figcaption strong{font-family:var(--font-heading);font-size:17px;font-weight:600;line-height:1.4}
.project-figure figcaption p{font-size:17px;line-height:1.5;color:var(--muted);margin:10px 0 14px}
.project-figure figcaption a{font-family:var(--font-heading);font-size:15px;font-weight:600;color:var(--accent-text);text-underline-offset:4px;display:inline-block;padding:6px 0}
.project-followup{margin-top:36px;border-top:1px solid var(--line);padding-top:26px}
.project-followup>p{color:var(--muted)}
.project-home-preview{margin:0;padding:12px;background:transparent}
.project-home-preview>a{display:block;text-decoration:none;color:var(--ink)}
.project-home-preview .project-home-label{display:block;padding:16px 8px 10px;font-family:var(--font-heading);font-size:17px;font-weight:600;line-height:1.5}
.premium-case .project-home-preview figcaption{padding:0 8px 10px}
.premium-case .project-home-preview .text-link{margin-top:0;font-size:15px}
@media(max-width:700px){
  .classroom-project{scroll-margin-top:96px}
  .project-gallery{grid-template-columns:1fr;grid-template-areas:"lead" "explain" "detail";gap:28px}
  .project-figure--explain{max-width:360px;width:100%;justify-self:center}
  .project-intro .project-deck{font-size:20px}
  .project-figure figcaption{padding:18px}
}
@media print{
  .project-gallery{display:block}
  .project-figure{break-inside:avoid;max-width:100mm;margin:12pt auto}
  .project-figure--explain{max-width:55mm}
  .project-figure figcaption a{display:none}
}
