/* Carrosséis, lightbox e ajustes da home (estilos inline do index.html do design). */
.fade-carousel .slide{opacity:0;transition:opacity 1s ease}
.fade-carousel .slide.is-active{opacity:1}
.hero-visual .fade-carousel{position:absolute;inset:0}
.family-photo.fade-carousel{position:relative;aspect-ratio:16/8;overflow:hidden}
.family-photo.fade-carousel>img.slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.family-photo.fade-carousel>img.slide:first-child{object-position:50% 40%}
.family-photo.fade-carousel:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(0deg,rgba(0,0,0,.5),transparent 40%)}
.family-photo.fade-carousel figcaption{position:absolute;left:24px;bottom:20px;z-index:2;color:#fff;margin:0}
.family-photo.fade-carousel .carousel-dots{z-index:3}
.teacher-photo{display:block;width:100%;padding:0;border:0;background:#e5e2db;border-radius:3px;overflow:hidden;cursor:zoom-in;position:relative}
.teacher-photo img{display:block;width:100%;height:auto;aspect-ratio:1.1;object-fit:cover;object-position:50% 18%;filter:grayscale(1);transition:filter .45s ease,transform .6s ease}
.teacher-photo:hover img,.teacher-photo:focus-visible img{filter:none;transform:scale(1.03)}
.teacher-photo:after,.family-photo-zoom:after{content:'↗';position:absolute;right:12px;bottom:12px;width:34px;height:34px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;font-size:14px;opacity:0;transition:opacity .3s}
.teacher-photo:hover:after,.teacher-photo:focus-visible:after,.family-photo-zoom:hover:after,.family-photo-zoom:focus-visible:after{opacity:1}
.family-photo-zoom{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;position:relative}
.family-photo-zoom img{transition:transform .6s ease}
.family-photo-zoom:hover img{transform:scale(1.015)}
.family-photo-zoom:focus-visible{outline-offset:-3px}
.family-photo-zoom:after{right:20px;bottom:20px;width:40px;height:40px;font-size:16px}
@media(hover:none){.family-photo-zoom:after{opacity:1}}
@media(max-width:700px){.teacher-grid article{grid-template-columns:125px 1fr}.teacher-photo img{aspect-ratio:auto;height:155px}}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(20,20,18,.88);display:none;align-items:center;justify-content:center;padding:4vh 4vw;cursor:zoom-out}
.lightbox.open{display:flex}
.lightbox img{max-width:100%;max-height:92vh;border-radius:3px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.lightbox button{position:fixed;z-index:1;top:20px;right:24px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:var(--ink);font-size:20px;cursor:pointer}
.lightbox img.can-zoom{cursor:zoom-in}
.lightbox.open.zoomed{display:block;overflow:auto;padding:0;overscroll-behavior:contain}
.lightbox.zoomed img{max-width:none;max-height:none;border-radius:0;cursor:grab}
.lightbox.dragging img{cursor:grabbing}
.lightbox-hint{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);margin:0;padding:8px 16px;border-radius:999px;background:rgba(20,20,18,.75);color:#fff;font-size:12px;white-space:nowrap;pointer-events:none}
.lightbox-hint[hidden]{display:none}
.wide-photo.fade-carousel{aspect-ratio:16/8.5}
.wide-photo.fade-carousel>img.slide{position:absolute;inset:0;width:100%;height:100%;max-height:none;min-height:0;object-fit:cover;object-position:center}
.wide-photo.fade-carousel figcaption{z-index:2}
.wide-photo.fade-carousel .carousel-dots{z-index:3}
@media(max-width:700px){.wide-photo.fade-carousel{aspect-ratio:4/3}}
.teacher-grid img{object-position:50% 18%}
@media(max-width:700px){.family-photo.fade-carousel{aspect-ratio:4/3}}
.community-visual.fade-carousel>img.slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.carousel-dots{position:absolute;z-index:3;right:30px;bottom:16px;display:flex;gap:8px}
.hero-visual .carousel-dots{bottom:16px;left:30px;right:auto}
.carousel-dots-top{top:20px;right:20px;bottom:auto}
.carousel-dots button{width:22px;height:22px;padding:0;border:0;background:transparent;cursor:pointer;display:grid;place-items:center}
.carousel-dots button:before{content:'';width:18px;height:2px;background:rgba(255,255,255,.5);transition:background .3s,width .3s}
.carousel-dots button[aria-selected="true"]:before{background:#fff;width:28px}
.hero-visual:after{z-index:1;pointer-events:none}
#graduados .program-image img{object-position:50% 40%}
#competicao .program-image img{object-position:50% 30%}
#nogi .program-image img{object-position:50% 40%}
@media (prefers-reduced-motion:reduce){.fade-carousel .slide{transition:none}}
.contact-map{margin-top:64px}
.contact-map iframe{display:block;width:100%;height:440px;border:1px solid #caccc1;border-radius:3px;filter:grayscale(.35)}
@media(max-width:700px){.contact-map{margin-top:43px}.contact-map iframe{height:320px}}
.footer-bottom .credit-link{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
.footer-bottom .credit-link:hover{color:var(--red);text-decoration-color:var(--red)}
