/* =========================================================
   TATÁ INFLÁVEIS E ENCANTOS — LANDING PAGE V2.1
   ========================================================= */

:root {
  --navy: #123b86;
  --navy-deep: #0c347d;
  --pink: #f35f8a;
  --pink-soft: #ff7ca0;
  --blue: #53adf4;
  --orange: #ffad25;
  --cream: #fff9f3;
  --white: #ffffff;
  --shadow: 0 18px 45px rgba(35, 83, 145, 0.16);
  --font-site: "Nunito", "Arial Rounded MT Bold", "Trebuchet MS", Arial, sans-serif;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  background: var(--cream);
}

body {
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  color: var(--navy);
  background: var(--cream);
  font-family: var(--font-site);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img,
picture {
  display: block;
  width: 100%;
}

button,
a {
  font: inherit;
}

.visual-section {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: var(--cream);
  isolation: isolate;
}

.visual-section > picture > img {
  width: 100%;
  height: auto;
  user-select: none;
  -webkit-user-drag: none;
}

.hotspot {
  position: absolute;
  z-index: 10;
  display: block;
  border-radius: 999px;
  outline: none;
}

.hotspot:focus-visible,
.ambientes-cta:focus-visible,
.social-button:focus-visible {
  outline: 4px solid rgba(18, 59, 134, 0.55);
  outline-offset: 5px;
}

.media-slot {
  position: absolute;
  z-index: 5;
  overflow: hidden;
  border-radius: 36px;
}

.media-slot video,
.media-slot iframe,
.media-slot img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
}

/* ---------- ANIMAÇÕES DE ENTRADA ---------- */

.js .reveal {
  opacity: 0;
  transform: translate3d(0, 42px, 0) scale(0.988);
  transition:
    opacity 760ms cubic-bezier(.2,.7,.2,1),
    transform 920ms cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}

.js .reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

.js .reveal-child {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 650ms ease, transform 760ms cubic-bezier(.2,.7,.2,1);
}

.js .is-visible .reveal-child {
  opacity: 1;
  transform: translateY(0);
}

.js .is-visible .reveal-child:nth-child(2) { transition-delay: 100ms; }
.js .is-visible .reveal-child:nth-child(3) { transition-delay: 190ms; }
.js .is-visible .reveal-child:nth-child(4) { transition-delay: 280ms; }

/* ---------- HERO ---------- */

.hero-whatsapp {
  left: 6.1%;
  top: 67.5%;
  width: 29.1%;
  height: 7.4%;
}

/* ---------- DEPOIMENTOS ---------- */

.depoimento-video {
  left: 34.25%;
  top: 13.4%;
  width: 31.8%;
  height: 71.1%;
  border-radius: 42px;
}

/* =========================================================
   AMBIENTES — CONSTRUÍDO EM CSS
   ========================================================= */

.ambientes-css {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 720px;
  padding: clamp(52px, 5.5vw, 88px) 4.7% clamp(72px, 7vw, 110px);
  background:
    radial-gradient(circle at 50% 15%, rgba(255,255,255,.96) 0 18%, transparent 48%),
    radial-gradient(circle at 27% 70%, rgba(255,246,247,.72), transparent 34%),
    linear-gradient(180deg, #fffaf5 0%, #fffdf9 62%, #f5fbff 100%);
}

.ambientes-inner {
  position: relative;
  z-index: 4;
  width: min(1400px, 100%);
  margin: 0 auto;
}

.ambientes-heading {
  text-align: center;
}

.ambientes-heading h2 {
  position: relative;
  display: block;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto;
  color: var(--navy-deep);
  font-size: clamp(2.2rem, 4.1vw, 4.1rem);
  font-weight: 900;
  line-height: 1.02;
  letter-spacing: -.035em;
}

.ambientes-heading h2 span,
.ambientes-heading h2 strong {
  display: block;
}

.ambientes-heading h2 strong {
  margin-top: .04em;
  color: var(--pink);
  font-weight: 900;
}

.ambientes-heading h2 i {
  position: absolute;
  right: -.78em;
  bottom: -.04em;
  color: var(--pink);
  font-size: 1em;
  font-style: normal;
  font-weight: 500;
  transform: rotate(-12deg);
}

.ambientes-heading p {
  margin: 22px auto 0;
  color: var(--navy-deep);
  font-size: clamp(1.05rem, 1.55vw, 1.45rem);
  font-weight: 600;
  line-height: 1.45;
}

.ambientes-heading p strong {
  color: var(--pink);
  font-weight: 900;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 1.5vw, 28px);
  margin-top: clamp(40px, 4vw, 62px);
}

.service-card {
  position: relative;
  overflow: hidden;
  min-width: 0;
  border: 8px solid rgba(255,255,255,.93);
  border-radius: 38px;
  background: rgba(255,255,255,.7);
  box-shadow: 0 16px 35px rgba(41, 85, 142, .14), inset 0 0 0 1px rgba(255,255,255,.55);
  transform: translateZ(0);
  transition: transform 260ms ease, box-shadow 260ms ease;
}

.service-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 46px rgba(41, 85, 142, .19), inset 0 0 0 1px rgba(255,255,255,.65);
}

.service-photo {
  min-height: clamp(300px, 32vw, 470px);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}



.service-info {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 18px;
  min-height: 135px;
  margin-top: -2px;
  padding: 18px 24px 20px;
  background: rgba(255,255,255,.88);
  border-top: 2px solid rgba(255,255,255,.75);
  border-radius: 34px 34px 26px 26px;
  box-shadow: 0 -12px 26px rgba(86, 99, 141, .08);
  backdrop-filter: blur(9px);
}

.service-icon {
  display: grid;
  width: 76px;
  aspect-ratio: 1;
  place-items: center;
  border: 3px solid rgba(255,255,255,.88);
  border-radius: 50%;
  box-shadow: 0 7px 18px rgba(62, 91, 144, .14), inset 0 0 0 1px rgba(255,255,255,.55);
}

.service-icon svg {
  width: 48px;
  height: 48px;
  fill: none;
  stroke: #fff;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.service-icon-pink { background: linear-gradient(145deg, #ff82a6, #f0527e); }
.service-icon-blue { background: linear-gradient(145deg, #82caff, #4d9fe9); }
.service-icon-peach { background: linear-gradient(145deg, #ffc65f, #ffa51f); }

.service-info h3 {
  margin: 0 0 5px;
  font-size: clamp(1.1rem, 1.45vw, 1.45rem);
  font-weight: 900;
  line-height: 1.1;
}

.service-card-pink h3 { color: var(--pink); }
.service-card-blue h3 { color: var(--blue); }
.service-card-peach h3 { color: #ff9b00; }

.service-info p {
  margin: 0;
  color: var(--navy-deep);
  font-size: clamp(.88rem, 1vw, 1.05rem);
  font-weight: 600;
  line-height: 1.38;
}

.mobile-carousel {
  display: none;
}

.ambientes-cta {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 16px;
  width: min(520px, 100%);
  margin: clamp(34px, 4vw, 54px) auto 0;
  padding: 13px 30px 13px 16px;
  color: var(--navy-deep);
  text-decoration: none;
  background: rgba(255,255,255,.95);
  border: 3px solid var(--pink-soft);
  border-radius: 999px;
  box-shadow: 0 14px 28px rgba(47, 90, 149, .13);
  transition: transform 220ms ease, box-shadow 220ms ease;
}

.ambientes-cta:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow: 0 18px 35px rgba(47, 90, 149, .18);
}

.cta-icon {
  display: grid;
  width: 64px;
  aspect-ratio: 1;
  place-items: center;
  color: #fff;
  background: linear-gradient(145deg, #ff7ca0, #ef4e7b);
  border: 3px solid rgba(255,255,255,.92);
  border-radius: 50%;
  box-shadow: 0 7px 16px rgba(243, 95, 138, .26);
}

.cta-icon svg {
  width: 38px;
  height: 38px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ambientes-cta span:last-child {
  display: flex;
  min-width: 0;
  flex-direction: column;
  line-height: 1.2;
}

.ambientes-cta strong {
  color: var(--pink);
  font-size: clamp(1.05rem, 1.5vw, 1.35rem);
  font-weight: 900;
}

.ambientes-cta small {
  margin-top: 3px;
  color: var(--navy-deep);
  font-size: clamp(.88rem, 1.15vw, 1.05rem);
  font-weight: 700;
}

/* Nuvens e brilhos da seção */
.decor-cloud,
.footer-cloud {
  position: absolute;
  width: 185px;
  height: 78px;
  border-radius: 999px;
  background: rgba(212, 236, 255, .94);
  filter: blur(.15px) drop-shadow(0 10px 16px rgba(78, 137, 194, .11));
  animation: cloudFloat 7s ease-in-out infinite alternate;
}

.decor-cloud::before,
.decor-cloud::after,
.footer-cloud::before,
.footer-cloud::after {
  content: "";
  position: absolute;
  bottom: 10px;
  border-radius: 50%;
  background: inherit;
}

.decor-cloud::before,
.footer-cloud::before {
  left: 22px;
  width: 82px;
  height: 82px;
}

.decor-cloud::after,
.footer-cloud::after {
  right: 20px;
  width: 108px;
  height: 108px;
}

.cloud-top-left { top: 4%; left: -42px; transform: rotate(3deg); }
.cloud-top-right { top: 10%; right: -48px; transform: scale(.82) rotate(-3deg); animation-delay: -2s; }
.cloud-bottom-left { bottom: -32px; left: -20px; transform: scale(1.32); animation-delay: -3.4s; }
.cloud-bottom-right { bottom: -24px; right: -28px; transform: scale(1.45); animation-delay: -1.2s; }

.spark,
.footer-spark {
  position: absolute;
  z-index: 2;
  color: var(--orange);
  font-size: clamp(1.8rem, 3vw, 3.5rem);
  line-height: 1;
  text-shadow: 0 6px 14px rgba(255, 173, 37, .17);
  animation: twinkle 2.7s ease-in-out infinite;
}

.spark-1 { top: 9%; left: 19%; }
.spark-2 { top: 13%; right: 15%; animation-delay: -.7s; }
.spark-3 { bottom: 8%; left: 22%; animation-delay: -1.4s; }
.spark-4 { bottom: 10%; right: 19%; animation-delay: -2s; }

.heart {
  position: absolute;
  z-index: 2;
  color: var(--pink);
  font-size: clamp(2rem, 3.2vw, 3.5rem);
  font-weight: 700;
  transform: rotate(-14deg);
  animation: heartFloat 4.5s ease-in-out infinite alternate;
}

.heart-1 { top: 23%; right: 4%; }
.heart-2 { bottom: 7%; left: 12%; animation-delay: -1.5s; }

@keyframes cloudFloat {
  from { margin-top: -4px; }
  to { margin-top: 7px; }
}

@keyframes twinkle {
  0%, 100% { opacity: .55; transform: scale(.82) rotate(0deg); }
  50% { opacity: 1; transform: scale(1.08) rotate(8deg); }
}

@keyframes heartFloat {
  from { translate: 0 -4px; rotate: -14deg; }
  to { translate: 0 8px; rotate: -7deg; }
}

/* ---------- IDEALIZADORAS ---------- */

.idealizadoras-video {
  left: 5.5%;
  top: 12.2%;
  width: 43.2%;
  height: 56.5%;
  border-radius: 48px;
}

.idealizadoras-whatsapp {
  left: 54.5%;
  top: 77.1%;
  width: 31.8%;
  height: 10.6%;
}

/* ---------- RODAPÉ ---------- */

.site-footer {
  position: relative;
  overflow: hidden;
  min-height: 300px;
  padding: 62px 24px 34px;
  font-family: var(--font-site);
  background:
    radial-gradient(circle at 50% -20%, rgba(255,255,255,.98), transparent 54%),
    linear-gradient(180deg, #f5fbff 0%, #dcefff 100%);
  border-top: 1px solid rgba(18, 59, 134, .08);
}

.footer-content {
  position: relative;
  z-index: 3;
  width: min(640px, 100%);
  margin: 0 auto;
  text-align: center;
}

.footer-brand {
  margin: 0;
  color: var(--pink);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.035em;
}

.footer-brand span {
  display: block;
  margin-top: 8px;
  color: var(--navy-deep);
  font-size: .42em;
  font-weight: 800;
  letter-spacing: -.01em;
}

.footer-phrase {
  margin: 18px 0 23px;
  color: var(--navy-deep);
  font-size: clamp(1rem, 2vw, 1.2rem);
  font-weight: 700;
}

.social-links {
  display: flex;
  justify-content: center;
}

.social-button {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  color: var(--pink);
  background: rgba(255,255,255,.95);
  border: 2px solid rgba(243,95,138,.24);
  border-radius: 50%;
  box-shadow: 0 10px 25px rgba(35,83,145,.12);
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.social-button:hover {
  transform: translateY(-4px) scale(1.03);
  background: #fff;
  box-shadow: 0 15px 30px rgba(35,83,145,.18);
}

.social-button svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.footer-copy {
  margin: 25px 0 0;
  color: rgba(18,59,134,.68);
  font-size: .82rem;
  font-weight: 600;
}

.footer-cloud {
  bottom: -26px;
  background: rgba(255,255,255,.92);
}

.footer-cloud-left { left: -65px; }
.footer-cloud-right { right: -65px; transform: scaleX(-1); animation-delay: -2.2s; }
.footer-spark-one { top: 24%; left: 15%; }
.footer-spark-two { top: 18%; right: 16%; animation-delay: -1.2s; }

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 768px) {
  .hero-whatsapp {
    left: 16.7%;
    top: 76.1%;
    width: 65.4%;
    height: 5.9%;
  }

  .depoimento-video {
    left: 14.4%;
    top: 29%;
    width: 69.2%;
    height: 30.5%;
    border-radius: 28px;
  }

  .ambientes-css {
    min-height: 0;
    padding: 72px 7.5% 96px;
  }

  .ambientes-heading h2 {
    font-size: clamp(2.1rem, 9.2vw, 3.15rem);
    line-height: 1.08;
  }

  .ambientes-heading h2 i {
    right: -2px;
    bottom: -3px;
    font-size: .9em;
  }

  .ambientes-heading p {
    margin-top: 25px;
    font-size: clamp(1rem, 4.7vw, 1.3rem);
    line-height: 1.5;
  }

  .desktop-break {
    display: none;
  }

  .services-grid {
    display: none;
  }

  .mobile-carousel {
    display: block;
    width: min(100%, 560px);
    margin: 62px auto 0;
  }

  .carousel-viewport {
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 1 / 1;
    border: 8px solid rgba(255,255,255,.96);
    border-radius: 36px;
    background: #f8f1fa;
    box-shadow: 0 22px 45px rgba(35,83,145,.18);
  }

  .carousel-viewport::before {
    content: "";
    position: absolute;
    z-index: 5;
    inset: 10px;
    border: 1.6px dashed rgba(243,95,138,.45);
    border-radius: 25px;
    pointer-events: none;
  }

  .carousel-viewport::after {
    content: "";
    position: absolute;
    z-index: 5;
    right: -5%;
    bottom: -12%;
    width: 42%;
    aspect-ratio: 1;
    background:
      radial-gradient(circle at 28% 64%, #fff 0 31%, transparent 32%),
      radial-gradient(circle at 58% 45%, #fff 0 38%, transparent 39%),
      radial-gradient(circle at 82% 67%, #fff 0 28%, transparent 29%);
    filter: drop-shadow(0 5px 7px rgba(110,174,226,.12));
    pointer-events: none;
  }

  .carousel-track {
    display: flex;
    width: 100%;
    height: 100%;
    transition: transform 650ms cubic-bezier(.22,.75,.2,1);
    will-change: transform;
  }

  .carousel-track.no-transition {
    transition: none;
  }

  .carousel-slide {
    position: relative;
    min-width: 100%;
    height: 100%;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
  }

  .carousel-caption {
    position: absolute;
    z-index: 6;
    left: 7%;
    right: 7%;
    bottom: 7%;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 13px;
    padding: 14px 16px;
    background: rgba(255,255,255,.91);
    border: 2px solid rgba(255,255,255,.96);
    border-radius: 23px;
    box-shadow: 0 12px 25px rgba(41,85,142,.14);
    backdrop-filter: blur(8px);
  }

  .mini-icon {
    display: grid;
    width: 49px;
    aspect-ratio: 1;
    place-items: center;
    color: #fff;
    border: 2px solid rgba(255,255,255,.9);
    border-radius: 50%;
    font-size: 1.45rem;
    font-weight: 900;
  }

  .mini-icon-pink { background: linear-gradient(145deg, #ff82a6, #f0527e); }
  .mini-icon-blue { background: linear-gradient(145deg, #82caff, #4d9fe9); }
  .mini-icon-peach { background: linear-gradient(145deg, #ffc65f, #ffa51f); }

  .carousel-caption h3 {
    margin: 0;
    color: var(--pink);
    font-size: clamp(1rem, 4.7vw, 1.35rem);
    font-weight: 900;
    line-height: 1.05;
  }

  .carousel-slide:nth-child(2) .carousel-caption h3 { color: var(--blue); }
  .carousel-slide:nth-child(3) .carousel-caption h3 { color: #ff9b00; }

  .carousel-caption p {
    margin: 4px 0 0;
    color: var(--navy-deep);
    font-size: clamp(.72rem, 3.4vw, .95rem);
    font-weight: 650;
    line-height: 1.25;
  }

  .carousel-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 18px;
  }

  .carousel-dots span {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: rgba(18,59,134,.2);
    transition: width 240ms ease, background 240ms ease;
  }

  .carousel-dots span.is-active {
    width: 25px;
    background: var(--pink);
  }

  .ambientes-cta {
    width: min(100%, 520px);
    margin-top: 42px;
    padding: 12px 20px 12px 12px;
    gap: 12px;
  }

  .cta-icon {
    width: 56px;
  }

  .ambientes-cta strong {
    font-size: clamp(.95rem, 4.3vw, 1.2rem);
  }

  .ambientes-cta small {
    font-size: clamp(.78rem, 3.55vw, .95rem);
  }

  .decor-cloud {
    width: 130px;
    height: 58px;
  }

  .decor-cloud::before {
    width: 58px;
    height: 58px;
  }

  .decor-cloud::after {
    width: 76px;
    height: 76px;
  }

  .cloud-top-left { top: 2%; left: -48px; }
  .cloud-top-right { top: 8%; right: -58px; }
  .cloud-bottom-left { bottom: -18px; left: -38px; }
  .cloud-bottom-right { bottom: -18px; right: -42px; }

  .spark-1 { top: 5%; left: 23%; }
  .spark-2 { top: 14%; right: 8%; }
  .spark-3 { bottom: 4%; left: 19%; }
  .spark-4 { bottom: 5%; right: 14%; }
  .heart-1 { top: 20%; right: 2%; }
  .heart-2 { bottom: 4%; left: 5%; }

  .idealizadoras-video {
    left: 12.4%;
    top: 33.9%;
    width: 75.5%;
    height: 41.1%;
    border-radius: 32px;
  }

  .idealizadoras-whatsapp {
    left: 21.4%;
    top: 90.1%;
    width: 57.1%;
    height: 5.3%;
  }

  .site-footer {
    min-height: 275px;
    padding: 54px 24px 32px;
  }

  .footer-cloud {
    width: 145px;
    height: 62px;
  }

  .footer-cloud::before {
    width: 65px;
    height: 65px;
  }

  .footer-cloud::after {
    width: 84px;
    height: 84px;
  }

  .footer-brand {
    font-size: clamp(2rem, 9vw, 2.75rem);
  }
}

@media (max-width: 390px) {
  .ambientes-css {
    padding-inline: 6%;
  }

  .carousel-caption {
    left: 5%;
    right: 5%;
    bottom: 5%;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }

  .js .reveal,
  .js .reveal-child {
    opacity: 1;
    transform: none;
  }
}


/* =========================================================
   V2.2 — DEPOIMENTOS EM CSS, GALERIA REAL E RODAPÉ COMPACTO
   ========================================================= */
.depoimentos-section { display:none; }
.depoimentos-css {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(58px,6vw,92px) 5% clamp(66px,7vw,104px);
  background: linear-gradient(145deg,#dff1ff 0%,#cfe9ff 52%,#eaf7ff 100%);
}
.depoimentos-inner { position:relative; z-index:3; width:min(1320px,100%); margin:auto; display:grid; grid-template-columns:.85fr 1.2fr .95fr; align-items:center; gap:clamp(28px,4vw,62px); }
.depoimentos-heading h2 { margin:0; color:var(--navy-deep); font-size:clamp(2.5rem,4.4vw,5rem); line-height:1.02; letter-spacing:-.045em; font-weight:900; }
.depoimentos-heading h2 strong { color:var(--pink); }
.depoimentos-heading h2 i { color:var(--pink); font-style:normal; font-size:.8em; }
.depoimentos-heading p { margin:28px 0 0; color:var(--navy-deep); font-size:clamp(1.05rem,1.65vw,1.45rem); line-height:1.5; font-weight:650; }
.depoimento-player { position:relative; overflow:hidden; aspect-ratio:16/11; border:14px solid rgba(255,255,255,.94); border-radius:42px; background:linear-gradient(145deg,#edf1f8,#dde5f1); box-shadow:0 24px 48px rgba(31,75,137,.17); }
.depoimento-player video { width:100%; height:100%; object-fit:cover; }
.play-placeholder { position:absolute; left:50%; top:50%; width:92px; aspect-ratio:1; transform:translate(-50%,-50%); border-radius:50%; background:#fff; box-shadow:0 15px 32px rgba(27,70,132,.17); }
.play-placeholder::after { content:""; position:absolute; left:39%; top:31%; border-left:28px solid var(--pink); border-top:18px solid transparent; border-bottom:18px solid transparent; filter:drop-shadow(0 4px 3px rgba(243,95,138,.2)); }
.depoimento-card { position:relative; margin:0; padding:clamp(30px,3.2vw,46px); border-radius:38px; background:rgba(255,255,255,.94); box-shadow:0 20px 42px rgba(31,75,137,.14); }
.depoimento-card p { margin:0; color:var(--navy-deep); font-size:clamp(1.05rem,1.55vw,1.42rem); line-height:1.55; font-weight:650; }
.quote-mark { display:block; height:38px; color:var(--pink); font-size:5rem; font-weight:900; line-height:.75; }
.stars { margin:24px 0 12px; color:#ffb526; font-size:1.65rem; letter-spacing:.08em; }
.depoimento-card footer { color:var(--navy-deep); font-size:1.02rem; font-weight:800; }
.card-heart { position:absolute; right:28px; bottom:20px; color:var(--pink); font-size:3rem; transform:rotate(-9deg); }
.depo-spark,.depo-heart { position:absolute; z-index:2; color:#fff; text-shadow:0 4px 10px rgba(72,149,214,.15); }
.depo-spark-1{left:7%;top:15%;font-size:2rem}.depo-spark-2{right:8%;top:11%;font-size:3rem}.depo-spark-3{right:11%;bottom:10%;font-size:2.2rem}.depo-heart{right:20%;top:17%;color:var(--pink);font-size:5rem;transform:rotate(-12deg)}
.depo-cloud { position:absolute; width:210px; height:78px; border-radius:999px; background:rgba(255,255,255,.75); filter:blur(.2px); }
.depo-cloud::before,.depo-cloud::after{content:"";position:absolute;bottom:0;border-radius:50%;background:inherit}.depo-cloud::before{left:25px;width:92px;height:92px}.depo-cloud::after{right:20px;width:118px;height:118px}.depo-cloud-left{left:-80px;bottom:20px}.depo-cloud-right{right:-75px;top:36%}

.services-grid,.mobile-carousel { display:none !important; }
.gallery-carousel { width:min(1320px,100%); margin:clamp(42px,5vw,68px) auto 0; }
.gallery-viewport { position:relative; overflow:hidden; border-radius:38px; }
.gallery-track { display:flex; gap:18px; transition:transform 620ms cubic-bezier(.22,.75,.2,1); will-change:transform; touch-action:pan-y; }
.gallery-track.no-transition { transition:none; }
.gallery-slide { flex:0 0 calc((100% - 36px)/3); margin:0; aspect-ratio:4/3; overflow:hidden; border:8px solid rgba(255,255,255,.96); border-radius:32px; background:#edf4fa; box-shadow:0 20px 42px rgba(35,83,145,.16); }
.gallery-slide img { width:100%; height:100%; object-fit:cover; }
.gallery-arrow { position:absolute; z-index:8; top:50%; display:grid; place-items:center; width:52px; height:52px; transform:translateY(-50%); border:0; border-radius:50%; color:var(--navy-deep); background:rgba(255,255,255,.94); box-shadow:0 10px 24px rgba(28,76,139,.2); cursor:pointer; font-size:2.5rem; line-height:1; }
.gallery-prev{left:16px}.gallery-next{right:16px}
.gallery-dots { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:22px; }
.gallery-dots button { width:9px; height:9px; padding:0; border:0; border-radius:99px; background:rgba(18,59,134,.2); transition:width .25s,background .25s; cursor:pointer; }
.gallery-dots button.is-active { width:28px; background:var(--pink); }

.site-footer { min-height:0; padding:22px 5%; background:linear-gradient(180deg,#e9f6ff,#d9efff); }
.site-footer::before,.site-footer::after,.footer-cloud,.footer-spark{display:none!important}
.footer-content { width:min(1180px,100%); margin:auto; display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:24px; text-align:left; }
.footer-identity { display:flex; align-items:center; gap:14px; min-width:0; }
.footer-logo { width:118px; height:62px; object-fit:cover; object-position:center; border-radius:18px; }
.footer-phrase { margin:0; color:var(--navy-deep); font-size:1rem; font-weight:800; white-space:nowrap; }
.footer-copy { margin:0; font-size:.78rem; }
.social-links{display:contents}.social-button{width:46px;height:46px}.social-button svg{width:22px;height:22px}

@media (max-width: 768px) {
  .depoimentos-css { padding:58px 7.5% 70px; }
  .depoimentos-inner { display:block; text-align:center; }
  .depoimentos-heading h2 { font-size:clamp(2.2rem,10vw,3.4rem); }
  .depoimentos-heading p { margin-top:20px; font-size:clamp(1rem,4.8vw,1.25rem); }
  .depoimento-player { margin:34px auto 0; width:100%; aspect-ratio:1/1; border-width:10px; border-radius:34px; }
  .play-placeholder { width:78px; }
  .play-placeholder::after { border-left-width:24px; border-top-width:15px; border-bottom-width:15px; }
  .depoimento-card { margin-top:24px; padding:30px 26px 34px; border-radius:32px; text-align:left; }
  .depoimento-card p { font-size:clamp(1rem,4.5vw,1.22rem); }
  .stars { font-size:1.35rem; }
  .depo-heart { right:5%; top:10%; font-size:3.4rem; }
  .depo-cloud-right { display:none; }

  .ambientes-css { padding-bottom:78px; }
  .gallery-carousel { margin-top:42px; }
  .gallery-viewport { overflow:hidden; border-radius:30px; }
  .gallery-track { gap:0; }
  .gallery-slide { flex:0 0 100%; aspect-ratio:4/5; border-width:7px; border-radius:30px; box-shadow:none; }
  .gallery-slide img { object-position:center; }
  .gallery-arrow { width:44px; height:44px; font-size:2.1rem; }
  .gallery-prev{left:10px}.gallery-next{right:10px}
  .gallery-dots { margin-top:16px; gap:6px; }

  .site-footer { padding:14px 16px 12px; }
  .footer-content { grid-template-columns:1fr auto; gap:10px 14px; }
  .footer-identity { gap:8px; }
  .footer-logo { width:82px; height:44px; border-radius:12px; }
  .footer-phrase { font-size:.76rem; white-space:normal; line-height:1.15; }
  .social-button { width:38px; height:38px; }
  .social-button svg { width:19px; height:19px; }
  .footer-copy { grid-column:1/-1; margin-top:0; text-align:left; font-size:.63rem; }
}
/* Correção de continuidade: uma foto por quadro em todas as telas. */
.gallery-track { gap: 0; }
.gallery-slide { flex-basis: 100%; aspect-ratio: 16 / 8.5; }
@media (max-width:768px){ .gallery-slide{aspect-ratio:4/5;} }

/* V4 — mídia real */
.depoimento-player video{display:block;width:100%;height:100%;object-fit:cover;background:#000;}
.idealizadoras-photo{overflow:hidden;background:#fff;border:10px solid rgba(255,255,255,.94);box-shadow:0 24px 48px rgba(31,75,137,.18);}
.idealizadoras-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;}
@media(max-width:768px){.idealizadoras-photo{border-width:7px;border-radius:30px}.idealizadoras-photo img{object-position:center;}}

/* =========================================================
   VERSÃO FINAL — AJUSTES RESPONSIVOS PARA DEPLOY
   ========================================================= */
@keyframes tataFloat {
  0%,100% { transform:translate3d(0,0,0) rotate(var(--rotate,0deg)); }
  50% { transform:translate3d(0,-10px,0) rotate(var(--rotate,0deg)); }
}
@keyframes tataPulse {
  0%,100% { transform:scale(1) rotate(var(--rotate,0deg)); opacity:.8; }
  50% { transform:scale(1.08) rotate(var(--rotate,0deg)); opacity:1; }
}
.depo-spark,.depo-heart,.spark,.heart { animation:tataFloat 4.8s ease-in-out infinite; }
.depo-spark-2,.spark-2,.heart-2 { animation-delay:-1.4s; }
.depo-spark-3,.spark-3 { animation-delay:-2.6s; }
.card-heart,.ambientes-heading h2 i,.depoimentos-heading h2 i { animation:tataPulse 3.2s ease-in-out infinite; transform-origin:center; }

/* Depoimentos: título centralizado e mídia sem corte do rosto */
.depoimentos-inner {
  grid-template-columns:minmax(0,1.08fr) minmax(300px,.82fr);
  grid-template-areas:
    "heading heading"
    "video card";
  gap:clamp(30px,4vw,58px) clamp(34px,5vw,72px);
  max-width:1120px;
}
.depoimentos-heading { grid-area:heading; text-align:center; max-width:780px; margin:0 auto; }
.depoimentos-heading h2 { font-size:clamp(2.7rem,4.8vw,5.2rem); }
.depoimentos-heading p br { display:none; }
.depoimento-player {
  grid-area:video;
  width:min(100%,520px);
  aspect-ratio:1/1;
  justify-self:end;
  border-radius:44px;
}
.depoimento-player video {
  object-fit:cover;
  object-position:center 36%;
}
.depoimento-card { grid-area:card; align-self:center; }

/* Desktop: fotos em cards compactos, três por vez */
.gallery-viewport { padding:10px 6px 28px; border-radius:34px; }
.gallery-track { gap:20px; }
.gallery-slide {
  flex:0 0 calc((100% - 40px)/3);
  aspect-ratio:1/1;
  border-width:7px;
  border-radius:28px;
  box-shadow:0 16px 34px rgba(35,83,145,.14);
}
.gallery-slide img { transition:transform .65s ease; }
.gallery-slide:hover img { transform:scale(1.035); }

@media (max-width:768px) {
  .depoimentos-inner { display:block; }
  .depoimentos-heading { text-align:center; }
  .depoimento-player {
    width:100%;
    max-width:430px;
    aspect-ratio:1/1;
    border-radius:34px;
  }
  .depoimento-player video { object-position:center 34%; }

  .gallery-viewport { padding:0; }
  .gallery-track { gap:0; }
  .gallery-slide {
    flex:0 0 100%;
    aspect-ratio:4/5;
    border-width:7px;
    border-radius:30px;
    box-shadow:none;
  }
}

@media (prefers-reduced-motion:reduce) {
  .depo-spark,.depo-heart,.spark,.heart,.card-heart,
  .ambientes-heading h2 i,.depoimentos-heading h2 i { animation:none!important; }
}

/* =========================================================
   VERSÃO FINAL 2 — REFINOS DE DEPOIMENTO E CONTATO
   ========================================================= */
.depoimentos-heading {
  position: relative;
  transform: translateY(-18px);
}
.depoimentos-heading p {
  margin-top: 18px;
}
.depo-heart {
  right: 12%;
  top: 9%;
}

.contato-localizacao {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(64px, 6vw, 96px) 5% clamp(66px, 7vw, 108px);
  background:
    radial-gradient(circle at 50% 22%, rgba(255,255,255,.88), transparent 36%),
    linear-gradient(180deg, #bfe7ff 0%, #e7f6ff 47%, #cfeeff 100%);
}
.contact-inner { position:relative; z-index:3; width:min(1180px,100%); margin:0 auto; }
.contact-heading { text-align:center; }
.contact-heading h2 { margin:0; font-size:clamp(2.8rem,5vw,5.4rem); line-height:.95; letter-spacing:-.045em; font-weight:900; }
.contact-heading h2 span,.contact-heading h2 strong { display:block; }
.contact-heading h2 span { color:var(--navy-deep); }
.contact-heading h2 strong { margin-top:.08em; color:var(--pink); }
.contact-grid { display:grid; grid-template-columns:.95fr 1.15fr; gap:clamp(22px,2.6vw,34px); margin-top:clamp(46px,5vw,68px); }
.contact-card { position:relative; min-width:0; padding:clamp(28px,3vw,42px); border:4px solid rgba(255,255,255,.82); border-radius:38px; background:rgba(255,255,255,.88); box-shadow:0 22px 46px rgba(34,82,145,.16), inset 0 0 0 1px rgba(255,255,255,.78); backdrop-filter:blur(12px); }
.contact-actions { display:flex; flex-direction:column; justify-content:center; }
.contact-whatsapp { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; padding:15px 20px; color:#fff; text-decoration:none; border:3px solid rgba(255,255,255,.92); border-radius:999px; background:linear-gradient(180deg,#28c641,#079a21); box-shadow:0 13px 23px rgba(9,157,36,.26), inset 0 2px 0 rgba(255,255,255,.28); font-size:clamp(1.05rem,1.55vw,1.35rem); font-weight:900; transition:transform .22s ease,box-shadow .22s ease; }
.contact-whatsapp:hover { transform:translateY(-3px); box-shadow:0 18px 30px rgba(9,157,36,.31), inset 0 2px 0 rgba(255,255,255,.28); }
.contact-whatsapp-icon { display:grid; width:44px; aspect-ratio:1; place-items:center; }
.contact-whatsapp-icon svg { width:38px; height:38px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.contact-whatsapp b { font-size:2.2rem; line-height:1; }
.contact-detail { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:20px; margin-top:34px; color:var(--navy-deep); text-decoration:none; }
.detail-icon { display:grid; width:72px; aspect-ratio:1; place-items:center; border-radius:50%; background:linear-gradient(145deg,#f8fcff,#d9efff); box-shadow:0 10px 22px rgba(39,91,151,.14); }
.detail-icon svg { width:42px; height:42px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.location-icon { color:#258ce7; }
.instagram-icon { color:#fff; background:radial-gradient(circle at 70% 70%,#ffd65c 0 16%,#ff6b6b 31%,#d936ad 55%,#6b45d9 78%); }
.contact-detail h3 { margin:0 0 5px; color:var(--navy-deep); font-size:clamp(1.2rem,1.7vw,1.55rem); font-weight:900; }
.contact-detail p { margin:0; color:var(--navy-deep); font-size:clamp(.95rem,1.25vw,1.12rem); line-height:1.4; font-weight:650; }
.contact-divider { height:1px; margin:30px 0 0 92px; background:rgba(18,59,134,.16); }
.contact-instagram { margin-top:30px; }
.location-title { display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:start; }
.location-pin-main { display:grid; width:58px; aspect-ratio:1; place-items:center; color:var(--pink); }
.location-pin-main svg { width:54px; height:54px; fill:currentColor; stroke:#fff; stroke-width:1.2; }
.location-title h3 { margin:0 0 5px; color:var(--navy-deep); font-size:clamp(1.45rem,2vw,1.9rem); font-weight:900; }
.location-title p { margin:0; color:var(--navy-deep); font-size:clamp(1rem,1.35vw,1.2rem); line-height:1.35; font-weight:650; }
.location-title strong { color:var(--pink); font-weight:900; }
.css-map { position:relative; overflow:hidden; min-height:315px; margin:22px -18px -12px; border-radius:28px; background:linear-gradient(145deg,#e5f3dc,#d8edce 55%,#cce8c5); box-shadow:inset 0 0 0 2px rgba(255,255,255,.62); }
.map-sea { position:absolute; top:-8%; right:-12%; width:35%; height:120%; border-left:5px solid rgba(255,255,255,.65); border-radius:50% 0 0 50%; background:repeating-radial-gradient(ellipse at 0 50%,#8ed6ff 0 9px,#75c9f8 10px 18px); transform:rotate(3deg); }
.map-road { position:absolute; height:6px; border-radius:999px; background:rgba(255,255,255,.75); box-shadow:0 16px 0 rgba(255,255,255,.45),0 -16px 0 rgba(255,255,255,.5); transform-origin:left center; }
.road-1 { left:3%; top:40%; width:72%; transform:rotate(13deg); }
.road-2 { left:14%; top:72%; width:65%; transform:rotate(-19deg); }
.road-3 { left:30%; top:12%; width:47%; transform:rotate(69deg); }
.map-zone { position:absolute; inset:18% 22% 13% 13%; border:3px dashed var(--pink); border-radius:48% 44% 42% 50%; transform:rotate(-6deg); }
.map-city { position:absolute; z-index:4; display:flex; align-items:center; gap:7px; }
.map-city i { position:relative; display:block; width:38px; height:48px; border-radius:50% 50% 50% 0; background:currentColor; transform:rotate(-45deg); box-shadow:0 7px 13px rgba(24,74,137,.2); }
.map-city i::after { content:""; position:absolute; width:14px; height:14px; border-radius:50%; background:#fff; left:12px; top:11px; }
.map-city b { padding:6px 13px; color:#fff; border:3px solid rgba(255,255,255,.88); border-radius:999px; background:currentColor; box-shadow:0 6px 13px rgba(24,74,137,.17); font-size:1rem; }
.map-olinda { left:51%; top:26%; color:var(--pink); }
.map-recife { left:45%; top:57%; color:#258ce7; }
.map-palm { position:absolute; left:13%; top:16%; font-size:2rem; }
.map-church { position:absolute; left:26%; top:50%; font-size:2rem; }
.delivery-note { position:absolute; z-index:6; right:6%; bottom:5%; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:13px; padding:12px 18px; border:3px solid rgba(255,255,255,.93); border-radius:22px; background:rgba(255,255,255,.93); box-shadow:0 12px 25px rgba(29,78,140,.15); }
.delivery-note>span { font-size:2.1rem; }
.delivery-note strong { color:var(--pink); font-size:1.03rem; font-weight:900; }
.delivery-note p { margin:2px 0 0; color:var(--navy-deep); font-size:.82rem; line-height:1.2; font-weight:700; }
.contact-tagline { display:flex; align-items:center; justify-content:center; gap:18px; width:min(820px,92%); margin:28px auto 0; padding:14px 26px; border:3px solid rgba(255,255,255,.9); border-radius:999px; background:rgba(255,255,255,.91); box-shadow:0 14px 28px rgba(33,82,144,.13); text-align:center; }
.contact-tagline span { color:var(--pink); font-size:2rem; }
.contact-tagline p { margin:0; color:var(--navy-deep); font-size:clamp(1rem,1.65vw,1.35rem); font-weight:800; font-style:italic; }
.contact-tagline strong { color:var(--pink); }
.contact-tagline b { color:var(--orange); font-size:1.8rem; }
.contact-spark,.contact-heart { position:absolute; z-index:1; animation:tataFloat 4.8s ease-in-out infinite; }
.contact-spark { color:#fff7c5; font-size:2.3rem; text-shadow:0 5px 13px rgba(64,143,205,.18); }
.contact-spark-1{left:7%;top:9%}.contact-spark-2{right:9%;top:13%;animation-delay:-1.5s}.contact-spark-3{right:16%;bottom:8%;animation-delay:-2.5s}.contact-heart{left:28%;top:13%;color:var(--pink);font-size:3.8rem;transform:rotate(-12deg)}
.contact-cloud { position:absolute; z-index:1; width:170px; height:65px; border-radius:999px; background:rgba(255,255,255,.72); filter:drop-shadow(0 8px 15px rgba(50,125,190,.1)); }
.contact-cloud::before,.contact-cloud::after { content:""; position:absolute; bottom:5px; border-radius:50%; background:inherit; }
.contact-cloud::before { left:20px; width:68px; height:68px; }
.contact-cloud::after { right:18px; width:91px; height:91px; }
.contact-cloud-1{left:-55px;top:27%}.contact-cloud-2{right:-65px;bottom:18%;transform:scale(1.2)}

@media (max-width:768px) {
  .depoimentos-css { padding-top:50px; }
  .depoimentos-heading { transform:translateY(-10px); }
  .depoimentos-heading p { margin-top:15px; }
  .depo-heart { right:1%; top:5%; font-size:3rem; }
  .contato-localizacao { padding:58px 6% 72px; }
  .contact-heading h2 { font-size:clamp(2.45rem,12vw,3.8rem); }
  .contact-grid { grid-template-columns:1fr; margin-top:38px; }
  .contact-card { padding:24px 20px; border-radius:30px; }
  .contact-whatsapp { gap:10px; padding:12px 14px; font-size:clamp(.92rem,4.4vw,1.08rem); }
  .contact-whatsapp-icon { width:36px; }
  .contact-whatsapp-icon svg { width:32px; height:32px; }
  .contact-detail { gap:14px; margin-top:27px; }
  .detail-icon { width:58px; }
  .detail-icon svg { width:34px; height:34px; }
  .contact-divider { margin:24px 0 0 72px; }
  .contact-instagram { margin-top:24px; }
  .location-title { gap:12px; }
  .location-pin-main { width:48px; }
  .location-pin-main svg { width:46px; height:46px; }
  .css-map { min-height:285px; margin:20px -10px -8px; }
  .map-olinda { left:46%; top:25%; }
  .map-recife { left:39%; top:57%; }
  .map-city i { width:31px; height:39px; }
  .map-city i::after { width:11px; height:11px; left:10px; top:9px; }
  .map-city b { padding:5px 9px; font-size:.82rem; }
  .delivery-note { right:4%; bottom:4%; padding:9px 11px; gap:8px; }
  .delivery-note>span { font-size:1.6rem; }
  .delivery-note strong { font-size:.82rem; }
  .delivery-note p { font-size:.67rem; }
  .contact-tagline { width:100%; gap:8px; padding:12px 14px; border-radius:24px; }
  .contact-tagline span { font-size:1.45rem; }
  .contact-tagline p { font-size:clamp(.82rem,3.8vw,1rem); }
  .contact-tagline b { font-size:1.25rem; }
  .contact-heart { left:12%; top:8%; font-size:2.7rem; }
  .contact-cloud-1 { top:17%; }
}

/* Ajustes finais para deploy — localização por imagem responsiva */
.location-image-card {
  padding: 0;
  overflow: hidden;
  display: flex;
  align-items: stretch;
  background: transparent;
  border-color: rgba(255,255,255,.9);
}
.location-picture {
  display: block;
  width: 100%;
  min-height: 100%;
}
.location-picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 33px;
}
.contact-tagline {
  width: auto;
  max-width: 900px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.contact-tagline p {
  font-size: clamp(1.2rem, 2vw, 1.7rem);
  text-shadow: 0 2px 0 rgba(255,255,255,.75), 0 8px 20px rgba(34,82,145,.14);
}

@media (max-width:768px) {
  .location-image-card {
    border-radius: 30px;
  }
  .location-picture img {
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
    border-radius: 26px;
  }
  .contact-tagline {
    margin-top: 24px;
    padding: 0 5px;
  }
  .contact-tagline p {
    font-size: clamp(1rem, 4.6vw, 1.25rem);
    line-height: 1.35;
  }
}


/* Ajustes finais — contato e localização */
.contact-whatsapp-icon { width:38px; }
.contact-whatsapp-icon svg { width:31px; height:31px; }
.contact-detail .detail-copy { min-width:0; width:100%; }
.contact-detail .detail-copy-centered { display:flex; align-items:center; justify-content:center; text-align:center; }
.contact-detail .detail-copy-centered p { margin:0; max-width:31ch; font-weight:700; line-height:1.42; }
.contact-instagram { transition:transform .2s ease, opacity .2s ease; }
.contact-instagram:hover { transform:translateY(-2px); }
.contact-instagram:focus-visible { outline:3px solid rgba(238,67,126,.35); outline-offset:7px; border-radius:18px; }

@media (max-width:768px) {
  .contact-whatsapp-icon { width:31px; }
  .contact-whatsapp-icon svg { width:26px; height:26px; }
  .contact-detail { grid-template-columns:58px minmax(0,1fr); gap:10px; }
  .contact-detail .detail-copy-centered p { max-width:27ch; font-size:clamp(.92rem,4vw,1.04rem); }
  .contact-divider { margin-left:68px; }
}
