/* =========================================================
   EMI Odontologia — estilos
   Paleta derivada da logo: vermelho #b10710, preto quente, off-white
   ========================================================= */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
ol,ul{list-style:none}
img,svg,video{display:block;max-width:100%}
button{all:unset;cursor:pointer;-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
input,textarea{background:none;border:none;outline:none;resize:none;font:inherit;color:inherit}

:root{
  --viewport:1440;
  --font-serif:'Instrument Serif',Georgia,serif;
  --font-sans:'Inter Tight',system-ui,-apple-system,sans-serif;
  --ease:ease-in-out;
  --ease-out-quint:cubic-bezier(.22,1,.36,1);
  --ease-menu:cubic-bezier(.6,.14,0,1);

  --c-red:#b10710;
  --c-red-deep:#7e050c;
  --c-ink:#12100f;
  --c-ink-grad:linear-gradient(180deg,#2a2724,#0a0908);
  --c-light-base:#f2efec;
  --c-light-40:rgba(242,239,236,.4);
  --c-light-15:rgba(242,239,236,.15);
  --c-beige:#e2dcd6;
  --c-dark-base:#3a3634;
  --c-dark-40:rgba(58,54,52,.4);
  --c-dark-10:rgba(58,54,52,.1);
}
@media (max-width:1023px){:root{--viewport:375}}

/* O layout inteiro é medido em rem sobre um desenho de 1440px. Para escalar
   proporcionalmente em qualquer largura, a raiz precisa carregar o tamanho
   fluido — rem lê o html, não o body. */
html{
  scroll-behavior:smooth;
  font-size:calc(16/var(--viewport)*100vw);
}
body{
  background:var(--c-ink);color:var(--c-dark-base);
  font-family:var(--font-serif);
  font-size:1rem;
  overscroll-behavior-y:none;
}
body.locked{overflow:hidden}
.page{width:100%;overflow-x:clip}

/* ---------- tipografia ---------- */
.h1{font-size:17.25rem;letter-spacing:-.69rem;line-height:84%}
.h2{font-size:9.5625rem;letter-spacing:-.2869rem;line-height:80%}
.h3{font-size:5.1875rem;letter-spacing:-.1037rem;line-height:93%}
.h4{font-size:3.4375rem;letter-spacing:-.1031rem;line-height:87%}
.h5,.h5_italic{font-size:2.1875rem;letter-spacing:-.0656rem;line-height:85%}
.h1,.h2,.h3,.h4,.h5{font-weight:400}
.h1 i,.h2 i,.h3 i,.h4 i,.h5 i,.h5_italic{font-style:italic}
@media (max-width:1023px){
  .h1{font-size:6.75rem;letter-spacing:-.27rem;line-height:80%}
  .h2{font-size:4.3125rem;letter-spacing:-.1725rem;line-height:84%}
  .h3{font-size:2.9375rem;letter-spacing:-.0881rem;line-height:92%}
  .h4{font-size:2.375rem;letter-spacing:-.0712rem;line-height:90%}
  .h5,.h5_italic{font-size:1.5rem;letter-spacing:-.03rem;line-height:93%}
}
.p1{font-family:var(--font-sans);font-size:1.25rem;font-weight:600;letter-spacing:-.025rem;line-height:109%}
.p2{font-family:var(--font-sans);font-size:.9375rem;font-weight:700;line-height:113%}
.p3{font-family:var(--font-sans);font-size:.9375rem;font-weight:400;letter-spacing:.0094rem;line-height:105%}
.c0{font-family:var(--font-sans);font-size:.9375rem;font-weight:700;line-height:113%}
.c1{font-family:var(--font-sans);font-size:.875rem;font-weight:700;letter-spacing:-.0175rem;line-height:113%}
.c2{font-family:var(--font-sans);font-size:.875rem;font-weight:500;letter-spacing:-.0088rem;line-height:113%}
.c3{font-family:var(--font-sans);font-size:.75rem;font-weight:500;line-height:119%}
@media (max-width:1023px){
  .p1{font-size:.9375rem;font-weight:500}
  .c1{font-size:1rem;letter-spacing:-.03rem}
  .c2{font-size:.75rem;letter-spacing:normal}
}
.content-part{display:grid;grid-template-columns:42.5rem 1fr}

/* ---------- marca ---------- */
.logo-mark-img{width:2.375rem;height:auto;flex:none;display:block}
.logo-word-img{width:6.25rem;height:auto;display:block;transition:filter .3s var(--ease)}
.header.light .logo-word-img,.menu .logo-word-img{filter:invert(1)}
.logo-big-img{width:100%;height:auto;display:block}
.wrap-logo{width:13rem}

/* =========================================================
   PRELOADER
   ========================================================= */
.preloader{position:fixed;inset:0;z-index:60;background:var(--c-ink);transition:opacity .8s var(--ease),visibility .8s}
.preloader.done{opacity:0;visibility:hidden;pointer-events:none}
.loader-wrap{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:12.5rem;height:12.5rem;display:grid;place-items:center}
.loader-mark-img{
  width:8rem;height:auto;transform:scale(.35);opacity:0;
  animation:loaderIn 1.4s var(--ease-out-quint) forwards;
}
@keyframes loaderIn{0%{transform:scale(.35);opacity:0}60%{opacity:1}100%{transform:scale(1);opacity:1}}
.preloader .texts{position:absolute;left:2rem;bottom:2rem;width:calc(100% - 4rem);display:grid;grid-template-columns:repeat(3,1fr);color:var(--c-light-base)}
.preloader .texts .c1{opacity:.35}
.preloader .texts .c1:nth-child(2){text-align:center}
.preloader .texts .c1:nth-child(3){text-align:right}
@media (max-width:1023px){
  .preloader .texts{display:flex;flex-direction:column;align-items:center;gap:.25rem;left:50%;transform:translateX(-50%);width:max-content}
  .loader-wrap{width:10rem;height:10rem}
}

/* =========================================================
   HEADER
   ========================================================= */
.header{
  position:fixed;top:0;left:0;width:100%;z-index:30;
  display:flex;align-items:center;justify-content:space-between;
  padding:.75rem 2rem;pointer-events:none;
  transition:transform .4s var(--ease),background-color .4s var(--ease);
  color:var(--c-dark-base);
}
.header.hide{transform:translateY(-105%)}
.header.light{color:var(--c-light-base)}
.header.light .logo-mark{background:var(--c-red)}
.header.bg{background:var(--c-light-base);color:var(--c-dark-base)}
/* hero dividido: esquerda clara, direita sobre a foto */
.header.split .right-part{color:var(--c-light-base)}
.header.split .header-btn-book{--btn-bg:var(--c-light-base);--btn-color:var(--c-ink)}
.left-part,.right-part{display:flex;align-items:center;pointer-events:all}
.left-part{gap:7.75rem}
.right-part{gap:1.75rem}
.logo-icon{display:flex;align-items:center;gap:.75rem}
.header-controls{display:flex;gap:2rem}
.header-btn{display:flex;align-items:center;gap:.5rem}
.icon-burger{width:.75rem;height:.75rem;display:grid;align-content:space-between;padding:.0625rem 0}
.icon-burger i{display:block;height:1.5px;background:currentColor;width:100%;transition:transform .5s var(--ease-menu)}
.header-btn:hover .icon-burger i:nth-child(1){transform:translateX(15%)}
.header-btn:hover .icon-burger i:nth-child(2){transform:translateX(-15%)}
.icon-chevron{width:.75rem;height:.75rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) scale(.55);transform-origin:60% 60%;transition:transform .3s var(--ease)}
.patient-text{display:flex;align-items:center;gap:.25rem}
.corner-arrow{width:.6rem;height:.6rem;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);transition:transform .3s var(--ease)}
.patient-text:hover .corner-arrow{transform:rotate(45deg) translate(2px,-2px)}
.phone-btn{position:relative}
.phone-btn::after{content:"Clínica";position:absolute;left:0;bottom:-.75rem;font-size:.625rem;opacity:.55;font-family:var(--font-sans)}

/* botão pílula */
.wrap-btn{
  display:flex;align-items:center;gap:1.5rem;justify-content:space-between;
  background:var(--btn-bg,var(--c-light-base));color:var(--btn-color,var(--c-dark-base));
  border-radius:4rem;padding:1rem 1.5rem;transition:all .3s var(--ease);
}
.wrap-btn.book-btn{width:11rem}
.wrap-btn .text{display:block;position:relative;overflow:hidden;width:max-content}
.wrap-btn .text span{display:inline-block;transition:transform .35s var(--ease);width:max-content}
.wrap-btn .text span:nth-child(2){position:absolute;left:0;top:105%}
.wrap-btn:hover .text span{transform:translateY(-105%)}
.icon-wrap{width:1rem;height:1rem;position:relative;flex:none}
.icon-wrap::before,.icon-wrap::after{
  content:"";position:absolute;width:.5rem;height:.5rem;border:1.5px solid currentColor;border-radius:2px;
}
.icon-wrap::before{top:0;right:0;border-left:none;border-bottom:none}
.icon-wrap::after{bottom:0;left:0;border-right:none;border-top:none}
.header.dark-btn .header-btn-book,.header.light .header-btn-book{--btn-bg:var(--c-red);--btn-color:#fff}
.header-btn-book{pointer-events:all}
.menu-btn-mob{display:none}
@media (max-width:1023px){
  .header{padding:.75rem 1rem}
  .left-part{gap:0}
  .header-controls,.patient-text,.phone-btn,.header-btn-book{display:none}
  .menu-btn-mob{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--c-red);color:#fff}
}

/* =========================================================
   MENU
   ========================================================= */
.menu{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden}
.menu.active{pointer-events:all}
.menu-bg{position:absolute;inset:0;background:var(--c-ink);transform:scaleY(0);transform-origin:50% 0;transition:transform .8s var(--ease-menu)}
.menu.active .menu-bg{transform:scaleY(1);transition-duration:1s}
.menu-content{
  position:absolute;inset:0;display:flex;justify-content:space-between;gap:4rem;
  padding:6rem 2rem 2rem;clip-path:polygon(0 0,100% 0,100% 0,0 0);
  transition:clip-path .8s var(--ease-menu);color:var(--c-light-base);
}
.menu.active .menu-content{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transition-duration:1s}
.anim-part{transform:translateY(-55dvh);transition:transform .8s var(--ease-menu)}
.menu.active .anim-part{transform:translateY(0);transition-duration:1s}
.menu .nav{display:flex;flex-direction:column;width:41rem;max-height:100%}
.warp-page-links{display:grid;gap:1rem 4rem;grid-template-columns:1fr 1fr;margin-top:auto}
.warp-page-links a{display:block;position:relative;overflow:hidden;width:max-content;font-family:var(--font-serif);font-size:3.4375rem;line-height:1.05}
.warp-page-links a span{display:block;transition:transform .8s var(--ease-out-quint)}
.warp-page-links a span:nth-child(2){position:absolute;left:0;top:0}
.warp-page-links a:hover span:nth-child(1){transform:translateY(-105%)}
.warp-page-links a span:nth-child(2){transform:translateY(105%)}
.warp-page-links a:hover span:nth-child(2){transform:translateY(0)}
.menu .contacts{margin-top:4.5rem;width:16rem}
.menu .contacts a{display:inline-block;margin-top:.25rem}
.mob-service-title{display:block;color:var(--c-light-40);margin-bottom:.75rem}
.menu-side{width:24rem;display:flex;flex-direction:column;gap:1rem;justify-content:flex-end}
.menu-photo{aspect-ratio:4/5;border-radius:1.5rem;overflow:hidden}
.menu-photo img{width:100%;height:100%;object-fit:cover}
.menu-addr{color:var(--c-light-40)}
.btn-close-menu{position:absolute;right:2rem;top:1.5rem;display:flex;align-items:center;gap:.5rem;color:var(--c-light-base);z-index:2;opacity:0;transition:opacity .4s .3s}
.menu.active .btn-close-menu{opacity:1}
.icon-cross{width:1rem;height:1rem;position:relative;transition:transform .4s var(--ease)}
.icon-cross::before,.icon-cross::after{content:"";position:absolute;left:0;top:50%;width:100%;height:1.5px;background:currentColor}
.icon-cross::before{transform:rotate(45deg)}
.icon-cross::after{transform:rotate(-45deg)}
.btn-close-menu:hover .icon-cross{transform:rotate(180deg)}
@media (max-width:1023px){
  .menu-content{flex-direction:column;padding:5rem 1rem 2rem;overflow:auto}
  .menu .nav{width:100%}
  .warp-page-links{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-top:2rem}
  .warp-page-links a{font-size:2.375rem}
  .menu-side{width:100%}
  .menu-photo{display:none}
  .menu .contacts{width:100%;text-align:center;margin-top:2.5rem}
}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;background:var(--c-light-base)}
.hero .sticky{position:sticky;top:0;height:100vh;width:100%;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}
.hero .left{position:relative;height:100%;background:var(--c-light-base)}
.based-in{position:absolute;left:2rem;bottom:2rem;color:var(--c-dark-base);z-index:1}
.based-in-title{margin-bottom:.75rem;opacity:.5}
.location-item{display:block}
.based-sub{opacity:.5;margin-top:.25rem}

.hero .right{
  position:absolute;inset:0;z-index:1;overflow:hidden;
  transform:translate3d(50%,0,0);will-change:transform;
}
.hero .media{position:absolute;inset:0}
.hero .media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,rgba(18,16,15,.62),rgba(18,16,15,.34) 55%,rgba(18,16,15,.5));
}
.media-img{width:100%;height:100%;object-fit:cover}
.hero .right-title{
  position:absolute;right:2rem;top:50%;width:max-content;padding:1.5rem 0;
  transform:translate(50vw,-50%);opacity:0;
  background:linear-gradient(90deg,var(--c-light-base) var(--start-gradient,0),rgba(242,239,236,0) var(--stop-gradient,50%));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
}
.bottom-tips{
  position:absolute;top:calc(50% + 8rem);transform:translateY(-50%);
  width:calc(100vw - 4rem);right:2rem;display:flex;justify-content:space-between;color:var(--c-light-base);
}
.bottom-tips p{opacity:0}

.wrap-titles{
  position:absolute;left:0;top:0;width:100%;z-index:2;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  transform:translateY(calc(50vh - 50% - 4rem));
}
.wrap-titles.static{color:#fff;clip-path:inset(0 0 -1.5rem 50%)}
.wrap-titles.black{color:var(--c-ink);clip-path:inset(0 50% 0 0)}
.wrap-titles .with-gap{display:flex;gap:3.875rem;margin-top:.625rem;transform:translateX(1.75rem)}
.anim-line1,.anim-line2{opacity:0}

.video-description{position:absolute;right:2rem;bottom:2rem;width:14rem;text-align:right;color:var(--c-light-base);z-index:2}
.hero .description{position:absolute;left:calc(50vw + 2rem);bottom:2rem;width:17rem;color:var(--c-light-base);z-index:2;opacity:0}
.hero .sticky-plash,.hero+.sticky-plash{}
.sticky-plash{height:180vh}
.mob-content{display:none}
@media (max-width:1023px){
  .hero .sticky{display:block;height:auto;padding:8rem 1rem 2rem;position:relative}
  .hero .left,.hero .right,.wrap-titles,.video-description,.hero .description{display:none}
  .mob-content{display:block;text-align:center;color:var(--c-dark-base)}
  .mob-content .text{margin:3rem auto 0;width:16rem}
  .hero .sticky-plash,.sticky-plash{height:0}
}

/* =========================================================
   PROPÓSITO
   ========================================================= */
.our-goal{
  position:relative;background:var(--c-light-base);
  display:flex;align-items:flex-start;justify-content:space-between;
  padding:9rem 2rem 8rem;width:100%;
}
.our-goal .left{padding-top:14rem}
.our-goal .right{width:43rem}
.about-team{display:flex;align-items:flex-start;justify-content:space-between;height:7.375rem}
.about-team .description{width:15.875rem}
.wrap-avatars{display:flex}
.avatar,.avatar-empty{
  width:5.875rem;height:5.875rem;border-radius:50%;overflow:hidden;
  border:3px solid var(--c-light-base);background:var(--c-beige);
  display:grid;place-items:center;position:relative;margin-left:-1.25rem;
}
.wrap-avatars>:first-child{margin-left:0}
.avatar img{width:100%;height:100%;object-fit:cover;object-position:top}
.avatar-empty{background:var(--c-red);color:#fff}
.our-goal .right-title{color:rgba(58,54,52,.18);margin:6rem 0 3.5rem;text-wrap:balance;font-size:4.25rem;line-height:97%;letter-spacing:-.085rem}
.btn-about{display:block;width:max-content;--btn-bg:var(--c-ink);--btn-color:var(--c-light-base)}
@media (max-width:1023px){
  .our-goal{position:relative;display:block;padding:7rem 1rem;overflow:hidden}
  .our-goal .left{display:none}
  .our-goal .right{width:100%;display:flex;flex-direction:column}
  .about-team{flex-direction:column-reverse;height:auto;margin-bottom:3rem;order:2}
  .about-team .description{width:100%}
  .wrap-avatars{margin-bottom:1.5rem}
  .our-goal .right-title{color:var(--c-dark-base);margin:0 0 4.5rem;order:1}
  .btn-about{order:3}
}

/* =========================================================
   ESPECIALIDADES
   ========================================================= */
.services{position:relative}
.services .sticky{position:sticky;top:0;height:100vh;width:100%;display:flex;background:var(--c-ink);isolation:isolate}
.services .left{position:relative;width:50%;height:100%;overflow:hidden;opacity:0}
.services .left::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:59%;z-index:1;background:linear-gradient(180deg,rgba(18,16,15,0),var(--c-ink))}
.services .left .slide-wrap{position:absolute;inset:0;overflow:hidden;clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%);transition:clip-path .9s var(--ease-menu)}
.services .left .slide-wrap.active{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.services .left img{width:100%;height:100%;object-fit:cover}
.services .right{position:relative;width:50%;height:100%}
.solutions{position:absolute;right:2rem;top:6.5rem;width:24.25rem;color:var(--c-light-base)}
.slider-place{position:absolute;right:2rem;top:17.5rem;width:24.25rem;height:15.25rem;display:flex;align-items:flex-start;justify-content:space-between}
.wrap-slides{position:relative;width:10.25rem;height:100%;overflow:hidden;border-radius:.25rem}
.wrap-slides .slide{position:absolute;inset:0;opacity:0;transition:opacity .6s var(--ease)}
.wrap-slides .slide.active{opacity:1}
.wrap-slides img{width:100%;height:100%;object-fit:cover}
.wrap-procedures{position:relative;width:11.875rem;height:100%}
.procedures-slide{position:absolute;inset:0;border-top:1px solid var(--c-light-15);opacity:0;visibility:hidden;transition:opacity .5s var(--ease)}
.procedures-slide.active{opacity:1;visibility:visible}
.procedure{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 0;border-bottom:1px solid var(--c-light-15)}
.procedure-name{color:var(--c-light-base);width:9.375rem}
.arrow{width:1rem;height:1rem;position:relative;flex:none}
.arrow::before{content:"";position:absolute;inset:0;border-top:1.5px solid var(--c-light-base);border-right:1.5px solid var(--c-light-base);width:.55rem;height:.55rem;margin:auto;transform:rotate(45deg);transition:transform .3s var(--ease)}
.procedure:hover .arrow::before{transform:rotate(45deg) translate(2px,-2px)}
.description-slide{position:absolute;right:2rem;top:11.5rem;width:24.25rem;color:var(--c-light-base);opacity:0;visibility:hidden;transition:opacity .5s var(--ease)}
.description-slide.active{opacity:1;visibility:visible}
.title-slides-wrap{position:absolute;left:50%;bottom:2rem;transform:translateX(-50%);width:35rem;z-index:1}
.title-slide{position:absolute;left:0;bottom:0;width:100%;text-align:center;color:var(--c-light-base);opacity:0;visibility:hidden;transition:opacity .5s var(--ease)}
.title-slide.active{opacity:1;visibility:visible}
.slides-nav{position:absolute;left:2rem;bottom:2rem;display:grid;gap:.125rem;z-index:1}
.block-name{color:var(--c-light-base);margin-bottom:2rem}
.slide-btn{color:var(--c-light-40);transition:color .3s var(--ease);text-align:left;display:block}
.slide-btn.active{color:var(--c-light-base)}
.learn-more{position:absolute;right:2rem;bottom:2rem;z-index:1}
.slides-plash .slide-part{height:75vh}
.wrap-mobile-content{display:none}
@media (max-width:1023px){
  .services .sticky,.slides-plash{display:none}
  .wrap-mobile-content{display:flex;flex-direction:column;align-items:center;background:var(--c-ink);padding:3.5rem 1rem}
  .wrap-mobile-content .h1{color:var(--c-light-base);font-size:5rem;margin-bottom:3rem;text-align:center}
  .mob-services{display:grid;gap:4.5rem;width:100%}
  .service-card{display:flex;flex-direction:column;align-items:center}
  .service-image-wrap{position:relative;width:100%;aspect-ratio:.86;overflow:hidden;border-radius:1rem}
  .service-image-wrap img{width:100%;height:100%;object-fit:cover}
  .service-image-wrap::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:10.5rem;background:linear-gradient(180deg,rgba(18,16,15,0),var(--c-ink));z-index:1}
  .mob-service-name{position:absolute;left:50%;bottom:.5rem;transform:translateX(-50%);color:var(--c-light-base);z-index:2;text-align:center;width:max-content}
  .service-desc{color:var(--c-light-40);margin-top:2rem;text-align:center;width:20rem}
}

/* =========================================================
   BANNER
   ========================================================= */
.banner{position:relative;width:100%;height:75.125rem;overflow:hidden}
.banner .content{position:relative;width:100%;height:100%;isolation:isolate}
.banner-bg{position:absolute;inset:0;transform:translateY(-15vh);height:130%}
.banner-bg img{width:100%;height:100%;object-fit:cover}
.banner-bg::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:29.5rem;background:linear-gradient(180deg,rgba(18,16,15,0),var(--c-ink));z-index:1}
.banner .bottom-grid{position:absolute;left:2rem;bottom:2rem;width:calc(100% - 4rem);display:grid;grid-template-columns:repeat(3,1fr);color:var(--c-light-base);z-index:2}
.banner .bottom-grid p:first-child{grid-area:1/1/2/4;opacity:.5}
.banner .bottom-grid p{text-align:center}
.banner .bottom-grid p:nth-child(2){text-align:left}
.banner .bottom-grid p:nth-child(4){text-align:right}
@media (max-width:1023px){.banner{height:31.25rem}.banner .bottom-grid{display:none}}

/* =========================================================
   ESTRUTURA
   ========================================================= */
.technology{position:relative;background:var(--c-light-base);color:var(--c-dark-base);padding:13.5rem 2rem 0;width:100%}
.sticky-title{position:absolute;left:50%;top:0;transform:translate(-50%,calc(-100% - 6rem));text-align:center;width:100%;color:var(--c-light-base)}
.sticky-title p{padding-bottom:1.5rem}
.sticky-title .dark{position:absolute;left:0;top:0;width:100%;color:var(--c-dark-base);clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%)}
.technology .title{width:100%;max-width:64rem}
.technology .title-line{display:block;width:100%}
.technology .sticky{position:sticky;top:0;height:100vh;width:100%}
.technology .counter{position:absolute;left:0;top:50%;transform:translateY(-50%);display:flex;align-items:flex-end}
.technology .counter .c2{margin-bottom:.5rem;margin-left:.25rem}
.images-slider{position:absolute;right:44.875rem;top:50%;transform:translateY(-50%);width:24.75rem;height:29.5rem;overflow:hidden;border-radius:.5rem}
.images-slider img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:all .5s var(--ease)}
.images-slider img.active{opacity:1;transform:scale(1)}
.small-title{position:absolute;right:2rem;top:35%;transform:translateY(calc(-100% - 1rem));color:var(--c-dark-40)}
.slide-list{position:absolute;right:2rem;top:35%;width:36.5rem;height:65%;overflow:hidden;border-top:1px solid var(--c-dark-10)}
.list-scroller{display:flex;flex-direction:column;transition:transform .6s var(--ease-out-quint)}
.list-item{position:relative;width:100%;padding:3rem 0;border-bottom:1px solid var(--c-dark-10)}
.list-item .opacity{opacity:.28;transition:opacity .3s var(--ease)}
.list-item.active .opacity{opacity:1}
.list-item-link{position:absolute;right:0;top:3rem;text-decoration:underline;text-underline-offset:.2rem}
.technology .sticky-plash .technology-plash{height:35vh}
.mobile-title,.technology .mob-content{display:none}
@media (max-width:1023px){
  .technology{padding:4rem 1rem 5rem}
  .technology .title,.technology .sticky,.technology .sticky-plash,.sticky-title{display:none}
  .mobile-title{display:block;text-align:center;line-height:98%}
  .technology .mob-content{display:grid;gap:2.5rem;margin-top:3rem}
  .mob-tech img{width:100%;aspect-ratio:1.2;object-fit:cover;border-radius:.75rem}
  .mob-tech p{margin-top:1rem;text-align:center}
}

/* =========================================================
   EQUIPE
   ========================================================= */
.experts{position:relative;background:var(--c-ink);width:100%;min-height:95rem;padding-top:42rem;padding-bottom:5rem;display:flex;flex-direction:column;overflow:hidden}
.experts .title{position:absolute;left:50%;top:6.5rem;transform:translateX(-50%);width:max-content;color:var(--c-light-base);mix-blend-mode:color-dodge;text-align:center}
.experts-bg-wrap{position:absolute;left:0;top:0;width:100%;height:67.75rem;overflow:hidden;z-index:0}
.experts-circle{
  position:absolute;left:50%;top:50%;width:52rem;height:52rem;border-radius:50%;
  background:radial-gradient(circle,rgba(177,7,16,.55),rgba(177,7,16,0) 65%);
  transform:translate(-50%,-55%);animation:spinSlow 40s linear infinite;
}
@keyframes spinSlow{0%{transform:translate(-55%,-58%) rotate(0)}50%{transform:translate(-45%,-52%) rotate(180deg)}100%{transform:translate(-55%,-58%) rotate(360deg)}}
.experts-img{position:absolute;left:50%;top:7.5rem;transform:translateX(-50%);width:104.75rem;height:60rem;object-fit:cover;opacity:.28;z-index:1}
.experts-overlay{position:absolute;left:0;top:20rem;width:100%;height:48rem;z-index:2;background:linear-gradient(180deg,rgba(18,16,15,0),rgba(18,16,15,.85) 55%,var(--c-ink))}
.about-teammates{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;padding:0 2rem;max-width:82rem;margin:0 auto}
.teammate{color:var(--c-light-base);display:grid;gap:1.25rem;align-content:start}
.teammate-photo{
  width:100%;aspect-ratio:4/5;overflow:hidden;border-radius:.75rem;
  background:var(--c-dark-40);margin-bottom:.25rem;
}
.teammate-photo img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(.35) contrast(1.05) brightness(.97);
  transition:filter .5s var(--ease),transform .8s var(--ease-out-quint);
}
.teammate:hover .teammate-photo img{filter:grayscale(0) contrast(1.05);transform:scale(1.04)}
.teammate:nth-child(n){width:100%;max-width:19rem}
.job-title{color:var(--c-light-40);margin-top:.25rem}
.teammate-desc{color:var(--c-light-40)}
.meet-teammates-wrap{position:relative;z-index:2;display:grid;grid-template-columns:42.5rem 1fr;padding:0 2rem;margin-top:6rem;margin-bottom:2rem;color:var(--c-light-base)}
.small-description{color:var(--c-light-40);width:14.75rem}
.small-description b{color:var(--c-light-base)}
.main-description{width:34rem}
.print-texts{display:inline-block;position:relative}
.fake-text{display:inline-block;opacity:0;pointer-events:none;visibility:hidden}
.inner-text{position:absolute;left:0;top:0;height:100%;display:flex;align-items:center;width:max-content}
.inner-text::before{content:"";position:absolute;left:calc(100% + .375rem);top:.25rem;width:.125rem;height:100%;background:var(--c-red);animation:caret 1s step-start infinite}
@keyframes caret{0%,100%{opacity:1}50%{opacity:0}}
.btn-meet-team{display:block;width:max-content;margin-top:4rem}
@media (max-width:1023px){
  .experts{height:auto;padding:7rem 1rem 4rem}
  .experts .title{position:relative;left:auto;top:auto;transform:none;width:100%;mix-blend-mode:normal;margin-bottom:3rem}
  .experts-bg-wrap{height:38rem}
  .experts-img{width:150%;height:38rem;top:6rem}
  .about-teammates{grid-template-columns:1fr;gap:2.5rem;padding:0}
  .teammate,.teammate:nth-child(1),.teammate:nth-child(2){width:100%;gap:.75rem}
  .meet-teammates-wrap{display:block;padding:0;margin:4rem 0 0}
  .small-description{display:none}
  .main-description{width:100%;text-align:center}
  .btn-meet-team{margin:3rem auto 0}
}

/* =========================================================
   DEPOIMENTOS
   ========================================================= */
.testimonials{position:relative;background:var(--c-ink);color:var(--c-light-base);padding:10.5rem 2rem 6rem;width:100%}
.testimonials .wrap-content{position:relative;width:100%;height:25rem}
.testimonials .left>.c2{color:var(--c-light-40)}
.slide-names{margin-top:2.5rem;color:var(--c-light-40)}
.btn-slide-name{display:flex;align-items:center;padding:.125rem 0;position:relative;width:max-content}
.btn-slide-name .text{transition:all .3s var(--ease)}
.btn-slide-name.active .text{color:var(--c-light-base);transform:translateX(1.125rem)}
.wrap-loader{
  position:absolute;left:0;top:50%;transform:translateY(-50%);width:.625rem;height:.625rem;border-radius:50%;
  border:2px solid var(--c-light-15);clip-path:polygon(0 0,0 0,0 100%,0 100%);transition:clip-path .3s var(--ease);
}
.btn-slide-name.active .wrap-loader{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);border-color:var(--c-red)}
.testimonials .right{position:relative;border-left:1px solid var(--c-light-15);padding-left:1rem}
.slide-text{position:absolute;left:1rem;top:0;width:32rem;opacity:0;visibility:hidden;transition:opacity .5s var(--ease)}
.slide-text.active{opacity:1;visibility:visible}
.author-names{position:absolute;left:1rem;bottom:0;color:var(--c-light-40);opacity:0;visibility:hidden;transition:opacity .5s var(--ease)}
.author-names.active{opacity:1;visibility:visible}
.mob-top-part{display:none}
@media (max-width:1023px){
  .testimonials{padding:3.5rem 1rem 5rem}
  .testimonials .wrap-content{display:flex;flex-direction:column-reverse;height:auto}
  .testimonials .left{display:none}
  .testimonials .right{border-left:none;padding-left:0;height:16rem}
  .slide-text{left:0;width:100%;text-align:center}
  .author-names{left:50%;transform:translateX(-50%)}
  .mob-top-part{display:block;border-top:1px solid var(--c-light-15);padding-top:.75rem;margin-bottom:2.5rem}
  .mob-top-part .c2{color:var(--c-light-40)}
}

/* =========================================================
   PRÉ-RODAPÉ
   ========================================================= */
.pre-footer{position:relative;width:100%;height:46rem;background:var(--c-ink);overflow:hidden;isolation:isolate}
.pre-footer-img{position:absolute;left:50%;top:0;transform:translateX(-50%);width:100%;height:100%;object-fit:cover;opacity:.38;z-index:-1}
.pre-footer::before{content:"";position:absolute;left:0;top:0;width:100%;height:14rem;background:linear-gradient(180deg,var(--c-ink),rgba(18,16,15,0));z-index:0}
.pre-footer::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:20rem;background:linear-gradient(180deg,rgba(18,16,15,0),var(--c-ink));z-index:0}
.wrap-title{
  position:absolute;left:2rem;top:50%;transform:translateY(-50%);
  width:calc(100% - 4rem);color:var(--c-light-base);z-index:1;text-align:center;
}
.wrap-title .h2{line-height:92%}
.wrap-title .title-line{display:block;width:100%}
.wrap-title .title-line:first-child{padding-left:0}

.wrap-title span,.wrap-title i{display:inline-block}
.small-tip{display:block;margin-top:2.25rem;color:var(--c-light-40);letter-spacing:.06em;text-transform:uppercase}
@media (max-width:1023px){
  .pre-footer{height:32rem}
  .pre-footer-img{width:100%;height:100%;top:0;left:0;transform:none}
  .wrap-title{top:50%;transform:translateY(-50%);left:1rem;width:calc(100% - 2rem)}
  .small-tip{margin-top:1.5rem;font-size:.625rem}
}

/* =========================================================
   RODAPÉ
   ========================================================= */
.footer{
  position:relative;width:100%;color:var(--c-light-base);
  display:flex;flex-direction:column;padding:9rem 2rem 1.5rem;margin-top:-4rem;
  overflow:hidden;isolation:isolate;
}
.footer-bg{
  position:absolute;inset:0;background:var(--c-ink-grad);z-index:-1;pointer-events:none;
}
.footer::before{
  content:"";position:absolute;left:50%;top:-1px;transform:translateX(-50%);
  width:120%;height:10rem;border-radius:50% 50% 0 0;background:#2a2724;z-index:-1;pointer-events:none;
}
.footer .content-part.top .left{display:flex;flex-direction:column;gap:3rem;align-items:flex-start}
.wrap-logo{width:11.875rem}
.socials{display:flex;gap:.75rem}
.circle-link{
  display:grid;place-items:center;width:5rem;height:5rem;border-radius:50%;
  background:var(--c-dark-40);transition:all .3s var(--ease);
}
.circle-link:hover{background:var(--c-light-base)}
.ic-instagram,.ic-whatsapp{width:1.5rem;height:1.5rem;background:var(--c-light-base);transition:background .3s var(--ease)}
.circle-link:hover .ic-instagram,.circle-link:hover .ic-whatsapp{background:var(--c-ink)}
.ic-instagram{-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.16c3.2 0 3.58.01 4.85.07 1.17.05 1.8.25 2.23.41.56.22.96.48 1.38.9.42.42.68.82.9 1.38.16.42.36 1.06.41 2.23.06 1.27.07 1.65.07 4.85s-.01 3.58-.07 4.85c-.05 1.17-.25 1.8-.41 2.23-.22.56-.48.96-.9 1.38-.42.42-.82.68-1.38.9-.42.16-1.06.36-2.23.41-1.27.06-1.65.07-4.85.07s-3.58-.01-4.85-.07c-1.17-.05-1.8-.25-2.23-.41a3.8 3.8 0 0 1-1.38-.9 3.8 3.8 0 0 1-.9-1.38c-.16-.42-.36-1.06-.41-2.23C2.17 15.58 2.16 15.2 2.16 12s.01-3.58.07-4.85c.05-1.17.25-1.8.41-2.23.22-.56.48-.96.9-1.38.42-.42.82-.68 1.38-.9.42-.16 1.06-.36 2.23-.41C8.42 2.17 8.8 2.16 12 2.16Zm0 3.68a6.16 6.16 0 1 0 0 12.32 6.16 6.16 0 0 0 0-12.32Zm0 2.16a4 4 0 1 1 0 8 4 4 0 0 1 0-8Zm6.4-3.84a1.44 1.44 0 1 0 0 2.88 1.44 1.44 0 0 0 0-2.88Z'/%3E%3C/svg%3E")}
.ic-whatsapp{-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.47 14.38c-.3-.15-1.75-.86-2.02-.96-.27-.1-.47-.15-.67.15-.2.3-.77.96-.94 1.16-.17.2-.35.22-.64.08-.3-.15-1.25-.46-2.38-1.47-.88-.78-1.47-1.75-1.64-2.05-.17-.3-.02-.46.13-.6.13-.14.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.02-.52-.08-.15-.67-1.6-.92-2.2-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37-.27.3-1.04 1.01-1.04 2.47s1.06 2.87 1.21 3.07c.15.2 2.1 3.2 5.08 4.49.71.3 1.26.49 1.69.63.71.22 1.36.19 1.87.12.57-.09 1.75-.72 2-1.41.25-.7.25-1.29.17-1.41-.07-.13-.27-.2-.57-.35ZM12.05 21.8h-.01a9.8 9.8 0 0 1-4.99-1.37l-.36-.21-3.71.97.99-3.62-.23-.37a9.78 9.78 0 0 1-1.5-5.22c0-5.4 4.4-9.8 9.81-9.8a9.75 9.75 0 0 1 9.8 9.81c0 5.4-4.4 9.8-9.8 9.8ZM12.05 0A11.97 11.97 0 0 0 .08 11.97c0 2.1.55 4.16 1.6 5.98L0 24l6.2-1.63a11.95 11.95 0 0 0 5.85 1.49h.01c6.6 0 11.97-5.37 11.98-11.97A11.97 11.97 0 0 0 12.05 0Z'/%3E%3C/svg%3E")}
.form-title{margin-bottom:3.5rem;width:27rem}
.footer .form{display:grid;gap:.5rem;grid-template-columns:1fr 1fr 5rem}
.wrap-input,.wrap-textarea{position:relative;display:block;border:1px solid var(--c-light-15);border-radius:1312.5rem;padding:2rem;width:100%;transition:border .3s var(--ease)}
.wrap-input:focus-within,.wrap-textarea:focus-within{border-color:var(--c-light-40)}
.wrap-textarea{grid-area:2/1/3/3}
.input,.textarea{position:absolute;left:0;top:0;width:100%;height:100%;padding:0 2rem;color:var(--c-light-base)}
.textarea{padding-top:1.75rem}
.placeholder{position:absolute;left:2rem;top:50%;transform:translateY(-50%);color:var(--c-light-40);pointer-events:none;transform-origin:top left;transition:all .3s var(--ease)}
.input:focus+.placeholder,.input.has-value+.placeholder,.textarea:focus+.placeholder,.textarea.has-value+.placeholder{transform:scale(.7) translateY(-210%)}
.btn-submit{grid-area:2/3/3/4;min-width:5rem;min-height:5rem}
.btn-submit .wrap-btn{width:5rem;height:5rem;border-radius:50%;background:var(--c-red);color:#fff;justify-content:center;padding:0}
.btn-submit .wrap-btn .text{font-size:.8125rem}
.form-note{color:var(--c-light-40);margin-top:1rem}
.mt72{margin-top:4.5rem}
.footer .content-part.mt72 .left{display:flex;flex-direction:row;gap:6rem;align-items:flex-start}
.footer .name{color:var(--c-light-40);display:block;margin-bottom:2rem}
.footer .nav ul{display:flex;flex-direction:column;gap:.5rem}
.wrap-link{position:relative;display:block;overflow:hidden;width:max-content}
.wrap-link span{display:block;transition:transform .8s var(--ease-out-quint)}
.wrap-link span:nth-child(2){position:absolute;left:0;top:100%}
a:hover .wrap-link span:nth-child(1){transform:translateY(-110%)}
a:hover .wrap-link span:nth-child(2){transform:translateY(-100%)}
.wrap-link.underline{padding-bottom:.125rem;border-bottom:1px solid currentColor}
.list-locations{display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr)}
.location{display:flex;flex-direction:column;justify-content:space-between;gap:1rem;border-left:1px solid var(--c-light-15);padding-left:1rem;min-height:10.75rem}
.name-location{margin-bottom:1rem}
.work-hour{display:flex;align-items:baseline}
.days{color:var(--c-light-40);width:4.5rem;display:inline-block}
.footer .content-part.bottom{margin-top:auto;padding-top:4.5rem}
.footer .content-part.bottom .right{display:flex;align-items:center;justify-content:space-between}
.footer .content-part.bottom .links{display:flex;align-items:center}
.copyright{color:var(--c-light-40)}
@media (max-width:1023px){
  .footer{padding:4.5rem 1rem 1.5rem}
  .footer-bg{width:36rem;height:100%;border-radius:35rem}
  .content-part{grid-template-columns:1fr;gap:3rem}
  .footer .content-part.top .left{align-items:center}
  .wrap-logo{width:7rem;margin:0 auto}
  .logo-big{width:6rem;height:6rem}
  .logo-big::after{font-size:2rem}
  .circle-link{width:4rem;height:4rem}
  .form-title{width:100%;text-align:center;margin-bottom:2.5rem}
  .footer .form{grid-template-columns:1fr;gap:1rem}
  .wrap-textarea{grid-area:auto}
  .btn-submit{grid-area:auto;margin:.5rem auto 0}
  .form-note{text-align:center}
  .mt72{margin-top:3rem}
  .footer .content-part.mt72 .left{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
  .list-locations{grid-template-columns:1fr}
  .location{border-left:none;border-top:1px solid var(--c-light-15);padding:1rem 0 0;min-height:0}
  .footer .content-part.bottom{gap:2rem;justify-items:center;text-align:center}
  .footer .content-part.bottom .right{flex-direction:column;gap:1.5rem}
}

/* ---------- reveal genérico ---------- */
[data-anim]{opacity:0;transform:translateY(1.5rem);transition:opacity .8s var(--ease-out-quint),transform .8s var(--ease-out-quint)}
[data-anim].in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}

/* =========================================================
   DROPDOWN DE ESPECIALIDADES (header)
   ========================================================= */
.services-menu{
  position:fixed;inset:0;z-index:15;pointer-events:none;
  opacity:0;visibility:hidden;transition-delay:.45s;
}
.services-menu.active{opacity:1;visibility:visible;transition-delay:0s;pointer-events:all}
.sm-overlay{
  position:absolute;inset:0;background:rgba(18,16,15,.5);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  opacity:0;transition:opacity .45s var(--ease-menu);
}
.services-menu.active .sm-overlay{opacity:1}
.sm-panel{
  position:absolute;top:0;left:18.1875rem;width:58.75rem;height:17.5rem;
  background:var(--c-light-base);border-radius:0 0 1.875rem 1.875rem;
  clip-path:polygon(0 0,100% 0,100% 0,0 0);
  transition:clip-path .45s var(--ease-menu);
}
.services-menu.active .sm-panel{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.sm-close{
  position:absolute;left:1.5rem;top:1.75rem;display:flex;align-items:center;gap:.375rem;
  color:var(--c-dark-base);
}
.sm-close .icon-cross{width:.75rem;height:.75rem}
.sm-close:hover .icon-cross{transform:rotate(180deg)}
.sm-list{display:flex;margin-left:11rem;margin-top:1rem;width:calc(100% - 11rem)}
.sm-item{
  position:relative;display:flex;flex-direction:column;gap:1rem;
  width:11.5rem;padding:1rem;border-radius:1.5rem;overflow:hidden;
  color:var(--c-dark-base);transition:all .3s var(--ease);
}
.sm-item:hover{background:var(--c-ink);color:var(--c-light-base)}
.sm-img{display:block;width:100%;aspect-ratio:1/1;overflow:hidden;border-radius:0;transition:border-radius .3s var(--ease)}
.sm-item:hover .sm-img{border-radius:.5rem}
.sm-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.sm-item:hover .sm-img img{transform:scale(1.05)}
.sm-arrow{
  position:absolute;right:1rem;bottom:1rem;width:.75rem;height:.75rem;
  border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;
  transform:rotate(45deg);opacity:0;transition:all .3s var(--ease);
}
.sm-item:hover .sm-arrow{opacity:1;transform:rotate(45deg) translate(2px,-2px)}
@media (max-width:1023px){.services-menu{display:none}}

/* ---------- revelação de texto por linhas ---------- */
/* Só esconde se o JS assumiu o controle (html.js). Sem isso, uma falha
   de script deixaria a seção inteira em branco. */
.js [data-anim-lines]{opacity:0}
.js [data-anim-lines].ready{opacity:1}
.anim-line{display:block;overflow:hidden}
.anim-line > span{
  display:block;transform:translateY(105%);
  transition:transform .9s var(--ease-out-quint);
}
[data-anim-lines].in .anim-line > span{transform:translateY(0)}

/* ---------- heros fixos que somem sob o conteúdo ---------- */
.esp-hero .hero-veil,.lst-hero .hero-veil{
  position:absolute;inset:0;background:var(--c-ink);opacity:0;pointer-events:none;z-index:3;
}

/* =========================================================
   EMPILHAMENTO SOBRE OS HERÓIS FIXOS
   Os heróis são sticky e ficam pinados no topo. Toda seção que vem
   depois precisa passar por cima deles — sem isto ela renderiza ATRÁS
   da foto do herói e o conteúdo some (foi o que aconteceu com os
   cards da equipe).
   ========================================================= */
.esp-hero,.lst-hero,.sb-hero{z-index:1}
.esp-hero ~ section,.lst-hero ~ section,.sb-hero ~ section,
.esp-hero ~ footer,.lst-hero ~ footer,.sb-hero ~ footer{position:relative;z-index:2}
