:root {
  color-scheme: light;
  --floresta: #093c30;
  --escuro: #082c24;
  --creme: #f5efdf;
  --lima: #d1eb8d;
  --linha: #b6d4b65c;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--creme); color: var(--escuro); font: 1rem/1.55 system-ui, sans-serif; }
img { max-width: 100%; display: block; }
a { color: inherit; }
a:focus-visible { outline: 3px solid #b36a00; outline-offset: 5px; }
h1, h2, p, figure { margin: 0; }
h1, h2 { line-height: 1.02; letter-spacing: -.048em; }
h1 { font-size: clamp(3rem, 6vw, 6.6rem); }
h2 { font-size: clamp(2rem, 3.7vw, 4.2rem); }
em { font-style: normal; color: var(--lima); }
.wrap { width: min(1170px, calc(100% - 48px)); margin-inline: auto; }
.skip { position: absolute; left: 12px; top: -80px; padding: 10px; background: white; z-index: 3; }
.skip:focus { top: 12px; }
.nav { display: flex; align-items: center; justify-content: space-between; gap: 18px; position: relative; z-index: 1; margin-block: 18px -36px; padding: 6px 24px 6px 12px; background: #fffdf3; border-radius: 25px; box-shadow: 0 8px 25px #082c243c; }
.marca { display: flex; align-items: center; gap: 8px; line-height: 1.2; font-weight: 800; text-decoration: none; }
.marca img { border-radius: 50%; }
.marca small { display: block; font-weight: 500; margin-top: 4px; }
nav { display: flex; gap: 24px; }
nav a { font-weight: 650; text-decoration: none; }
nav a:hover { text-decoration: underline; }
.botao { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 19px; min-height: 46px; border-radius: 50px; background: linear-gradient(#e8f5af, var(--lima)); color: var(--escuro); text-decoration: none; font-weight: 750; box-shadow: 0 6px 14px #082c2445; }
.botao:hover { background: #ecf9bd; }
.hero { background: linear-gradient(130deg, #245d4c, var(--floresta) 58%, var(--escuro)); color: var(--creme); overflow: hidden; }
.hero-grid { min-height: 610px; display: grid; grid-template-columns: 1fr 1.12fr; align-items: center; position: relative; isolation: isolate; padding-block: 125px 115px; }
.intro { z-index: 1; }
.intro .botao { margin-top: 26px; }
.rotulo { font-weight: 800; text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; margin-bottom: 12px; }
.hero .rotulo { color: var(--lima); }
.arte { position: absolute; z-index: -1; inset: 0 -13% 0 35%; }
.arte img { width: 100%; height: 100%; object-fit: cover; object-position: 66% center; }
.arte::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,#144c3d,transparent 39%); }
.especial { position: relative; margin-top: -58px; padding: clamp(22px,4vw,48px); border: 1px solid #6ab2966b; border-radius: 26px; background: radial-gradient(ellipse at 5% 0%,#286451,transparent 55%), linear-gradient(145deg,#104d3e,#082d26); color: var(--creme); box-shadow: 0 22px 35px #082c243b; }
.especial h2 { font-size: clamp(1.8rem, 3.5vw, 3rem); }
.especial ul { list-style: none; padding: 0; margin: 25px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 0 20px; }
.especial li { padding: 15px 0; border-top: 1px solid var(--linha); font-weight: 700; }
.especial li::before { content: "+"; color: var(--lima); margin-right: 9px; }
.secao { padding-block: clamp(38px,7vw,90px); }
.dupla { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(22px,6vw,90px); }
.dupla figure { padding: 9px; border-radius: 26px; background: #9db894; box-shadow: 0 14px 29px #092e2530; }
.dupla img { width: 100%; aspect-ratio: 5/4; object-fit: cover; object-position: center 68%; border-radius: 18px; }
.dupla p:not(.rotulo), address { margin-top: 14px; }
.agenda { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; border-radius: 26px; background: linear-gradient(131deg,#327962,var(--floresta) 65%); padding: clamp(22px,5vw,48px); color: var(--creme); }
.agenda h2 { font-size: clamp(2rem,3.6vw,3.7rem); }
address { font-style: normal; }
.links { padding-left: 18px; }
.links li { padding-block: 3px; }
footer { background: #e6ead7; }
.rodape { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 15px; padding-block: 26px 95px; }
.whatsapp { position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: calc(16px + env(safe-area-inset-bottom)); display: grid; place-items: center; width: 56px; height: 56px; color: white; border: 2px solid white; border-radius: 50%; background: #107454; box-shadow: 0 6px 19px #082c2466; }
.whatsapp svg { width: 30px; height: 30px; }
.documento { max-width: 750px; }
.documento h1 { font-size: clamp(2.2rem,6vw,4rem); margin: 20px 0; }
.documento p { margin: 12px 0; }
@media (max-width: 740px) {
  .wrap { width: calc(100% - 32px); }
  .nav { flex-wrap: wrap; gap: 6px 12px; padding: 7px 12px 12px; }
  .nav img { width: 58px; height: 58px; }
  .nav .botao { display: none; }
  nav { width: 100%; justify-content: center; gap: clamp(9px,4vw,24px); font-size: .88rem; }
  nav a { padding-block: 8px; }
  .hero-grid { display: block; min-height: 0; padding: 84px 0 60px; }
  .arte { position: relative; inset: auto; margin-top: 16px; height: clamp(170px,51vw,350px); z-index: 0; }
  .arte::after { background: linear-gradient(#164d3d,transparent 26%); }
  .especial { margin-top: -35px; }
  .especial ul { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 10px; font-size: clamp(.83rem,3.4vw,1rem); }
  .especial li:last-child { grid-column: 1/-1; text-align: center; }
  .dupla { grid-template-columns: 1fr; }
}


/* ============================================
   URBANO SAUDE — CABECALHO RESPONSIVO V2
   ============================================ */

html {
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
}

.nav {
  z-index: 50;
  flex-wrap: nowrap;
  min-height: 100px;
  padding: 8px 24px;
  border-radius: 26px;
  background: #fffdf3;
  isolation: isolate;
}

.marca {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
  text-decoration: none;
}

.marca img {
  width: 112px;
  height: 86px;
  max-width: none;
  object-fit: contain;
  border-radius: 0;
}

.nav-desktop {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(14px, 2vw, 30px);
  width: auto;
  flex: 1 1 auto;
}

.nav-desktop a {
  font-size: .95rem;
  font-weight: 700;
  white-space: nowrap;
  transition: color .2s ease;
}

.nav-desktop a:hover {
  color: #237455;
}

.nav-agendar {
  flex: 0 0 auto;
  white-space: nowrap;
}

.menu-toggle,
.menu-mobile,
.menu-close {
  display: none;
}

@media (max-width: 850px) {
  .nav {
    width: calc(100% - 28px);
    min-height: 88px;
    margin-block: 14px -30px;
    padding: 7px 12px 7px 15px;
    border-radius: 23px;
    gap: 12px;
    justify-content: space-between;
  }

  .marca img,
  .nav .marca img {
    width: 104px;
    height: 76px;
    max-width: none;
    border-radius: 0;
    object-fit: contain;
  }

  .nav-desktop,
  .nav-agendar,
  .nav .nav-agendar {
    display: none;
  }

  .menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    padding: 0;
    flex: 0 0 54px;
    border: 1px solid #d4ddc7;
    border-radius: 17px;
    background: #eaf0db;
    color: #093c30;
    cursor: pointer;
  }

  .menu-toggle-lines {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 23px;
    height: 23px;
  }

  .menu-toggle-lines span {
    display: block;
    height: 2px;
    width: 100%;
    border-radius: 2px;
    background: currentColor;
    transition: transform .2s ease, opacity .2s ease;
  }

  .menu-toggle[aria-expanded="true"]
  .menu-toggle-lines span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"]
  .menu-toggle-lines span:nth-child(2) {
    opacity: 0;
  }

  .menu-toggle[aria-expanded="true"]
  .menu-toggle-lines span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .menu-mobile:not([hidden]) {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    width: 100%;
    padding: 23px;
    gap: 0;
    border: 1px solid #dce6d0;
    border-radius: 25px;
    background: #fffdf3;
    box-shadow: 0 22px 55px #082c2450;
    z-index: 100;
  }

  .menu-mobile-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 18px;
    color: #547063;
    font-size: .8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
  }

  .menu-close {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 12px;
    background: #edf2e5;
    color: #093c30;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
  }

  .menu-mobile > a:not(.botao) {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 19px 2px;
    border-bottom: 1px solid #e1e7d8;
    color: #093c30;
    text-decoration: none;
    font-size: clamp(1.35rem, 5vw, 1.75rem);
    font-weight: 750;
    letter-spacing: -.035em;
  }

  .menu-mobile > a:not(.botao) span:last-child {
    color: #568b65;
    font-size: 1.2rem;
  }

  .menu-mobile .menu-mobile-cta {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-top: 23px;
    padding: 17px 18px;
    border-radius: 15px;
    font-size: 1rem;
    text-align: center;
  }

  .hero-grid {
    padding-top: 112px;
  }
}

@media (max-width: 380px) {
  .nav {
    min-height: 78px;
  }

  .marca img,
  .nav .marca img {
    width: 92px;
    height: 66px;
  }

  .menu-toggle {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
  }

  .menu-mobile:not([hidden]) {
    padding: 18px;
  }
}

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

  .menu-toggle-lines span,
  .nav-desktop a {
    transition: none;
  }
}


/* URBANO SAUDE — REFINAMENTO VISUAL V3 */

/* Cabeçalho e identidade visual */

.nav {
  min-height: 118px;
  padding: 10px 28px 10px 20px;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 30px;
  background: #fffdf3;
  box-shadow: 0 12px 38px rgba(5,38,29,.18);
}

.marca {
  position: relative;
  flex: 0 0 auto;
  min-width: 142px;
  min-height: 98px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3px 13px;
  border-radius: 22px;
  background: radial-gradient(
    ellipse at center,
    #f2f8e7 0%,
    #f7faef 60%,
    #fffdf3 100%
  );
}

.marca img {
  width: 126px;
  height: 104px;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
  border-radius: 0;
  filter: drop-shadow(0 4px 5px rgba(10,65,35,.12));
}

/* Hero: fotografia integrada à composição */

.hero {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(
      ellipse at 78% 65%,
      rgba(57,120,87,.32),
      transparent 58%
    ),
    linear-gradient(
      135deg,
      #205b49 0%,
      #104635 48%,
      #072e26 100%
    );
}

.hero-grid {
  position: relative;
  min-height: 650px;
  isolation: isolate;
}

.intro {
  position: relative;
  z-index: 3;
}

.arte {
  position: absolute;
  z-index: 0;
  inset: 0 -13% 0 34%;
  overflow: hidden;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    rgba(0,0,0,.55) 18%,
    #000 42%,
    #000 100%
  );
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    rgba(0,0,0,.55) 18%,
    #000 42%,
    #000 100%
  );
}

.arte img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 62% center;
  opacity: .88;
  filter: saturate(.85) contrast(1.06);
}

.arte::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      to bottom,
      rgba(9,60,48,.22),
      transparent 28%,
      transparent 67%,
      #082f27 100%
    ),
    linear-gradient(
      to right,
      #104635 0%,
      transparent 46%
    );
}

/* Mobile */

@media (max-width: 850px) {

  .nav {
    width: calc(100% - 28px);
    min-height: 110px;
    padding: 8px 15px 8px 10px;
    border-radius: 27px;
    gap: 8px;
  }

  .marca {
    min-width: 125px;
    min-height: 90px;
    padding: 2px 8px;
    border-radius: 20px;
  }

  .marca img,
  .nav .marca img {
    width: 118px;
    height: 92px;
    max-width: 100%;
    object-fit: contain;
    border-radius: 0;
  }

  .menu-toggle {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
    border-radius: 17px;
  }

  .hero {
    overflow: hidden;
  }

  .hero-grid {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-height: 0;
    padding-top: 120px;
    padding-bottom: 80px;
  }

  .intro {
    position: relative;
    z-index: 3;
  }

  .arte {
    position: relative;
    z-index: 1;
    inset: auto;
    width: calc(100% + 32px);
    height: clamp(270px, 85vw, 460px);
    margin: 10px -16px -45px;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: transparent;
    -webkit-mask-image: linear-gradient(
      to bottom,
      transparent 0%,
      rgba(0,0,0,.35) 13%,
      #000 36%,
      #000 72%,
      transparent 100%
    );
    mask-image: linear-gradient(
      to bottom,
      transparent 0%,
      rgba(0,0,0,.35) 13%,
      #000 36%,
      #000 72%,
      transparent 100%
    );
  }

  .arte img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 53%;
    opacity: .9;
    filter: saturate(.82) contrast(1.05);
  }

  .arte::after {
    background:
      linear-gradient(
        to bottom,
        #104635 0%,
        rgba(16,70,53,.55) 17%,
        transparent 45%,
        rgba(8,47,39,.22) 75%,
        #082f27 100%
      ),
      linear-gradient(
        to right,
        rgba(9,60,48,.25),
        transparent 30%,
        transparent 70%,
        rgba(9,60,48,.25)
      );
  }

  .especial {
    position: relative;
    z-index: 2;
    margin-top: -50px;
  }
}

@media (max-width: 380px) {

  .nav {
    min-height: 96px;
    padding: 7px 12px 7px 8px;
  }

  .marca {
    min-width: 110px;
    min-height: 80px;
  }

  .marca img,
  .nav .marca img {
    width: 105px;
    height: 80px;
  }

  .hero-grid {
    padding-top: 108px;
  }
}


/* URBANO SAUDE — LAYOUT REFERENCIA V4 */

/* Cabeçalho mobile inspirado na referência */

@media (max-width: 850px) {

  body {
    overflow-x: clip;
  }

  .nav {
    position: relative;
    z-index: 50;
    width: 100%;
    height: 164px;
    min-height: 164px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: #f5efdf;
    box-shadow: none;
    isolation: auto;
  }

  .marca {
    position: absolute;
    z-index: 5;
    top: 18px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 292px;
    height: 292px;
    min-width: 0;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    box-shadow: none;
  }

  .marca img,
  .nav .marca img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: contain;
    object-position: center;
    border-radius: 0;
    filter: drop-shadow(0 12px 14px rgba(0,45,23,.23));
  }

  .menu-toggle {
    position: absolute;
    z-index: 10;
    top: 76px;
    right: 7%;
    display: flex;
    width: 84px;
    height: 84px;
    flex-basis: auto;
    padding: 0;
    border: 1px solid #d4dec9;
    border-radius: 28px;
    background: #eaf0df;
    box-shadow: none;
  }

  .menu-toggle-lines {
    width: 36px;
    height: 30px;
    gap: 8px;
  }

  .menu-toggle-lines span {
    height: 3px;
    border-radius: 4px;
  }

  .menu-toggle[aria-expanded="true"]
  .menu-toggle-lines span:nth-child(1) {
    transform: translateY(11px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"]
  .menu-toggle-lines span:nth-child(3) {
    transform: translateY(-11px) rotate(-45deg);
  }

  .menu-mobile:not([hidden]) {
    position: absolute;
    z-index: 100;
    top: 174px;
    left: 4%;
    right: 4%;
    width: 92%;
    padding: 24px;
    border-radius: 26px;
  }

  /* Hero */

  .hero {
    position: relative;
    z-index: 1;
    overflow: hidden;
    background:
      linear-gradient(
        150deg,
        #285c4b 0%,
        #174938 48%,
        #09362d 100%
      );
  }

  .hero-grid {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: calc(100% - 52px);
    min-height: 0;
    padding-top: 195px;
    padding-bottom: 0;
    isolation: isolate;
  }

  .intro {
    position: relative;
    z-index: 3;
  }

  .hero .rotulo {
    margin-bottom: 24px;
    color: #d1eb8d;
    font-size: clamp(.75rem, 2.5vw, 1rem);
    letter-spacing: .23em;
  }

  .hero h1 {
    max-width: 100%;
    font-size: clamp(3.2rem, 8.4vw, 5.5rem);
    line-height: 1.08;
    letter-spacing: -.055em;
  }

  .intro .botao {
    margin-top: 42px;
    padding: 18px 30px;
    min-height: 72px;
    font-size: clamp(1rem, 3.6vw, 1.5rem);
    border-radius: 60px;
  }

  /* Fotografia incorporada ao fundo */

  .arte {
    position: relative;
    z-index: 1;
    inset: auto;
    width: calc(100% + 52px);
    height: clamp(410px, 80vw, 680px);
    margin: 30px -26px 0;
    border: 0;
    border-radius: 0;
    overflow: hidden;
    background: transparent;

    -webkit-mask-image: linear-gradient(
      to bottom,
      transparent 0%,
      rgba(0,0,0,.2) 10%,
      #000 28%,
      #000 82%,
      transparent 100%
    );

    mask-image: linear-gradient(
      to bottom,
      transparent 0%,
      rgba(0,0,0,.2) 10%,
      #000 28%,
      #000 82%,
      transparent 100%
    );
  }

  .arte img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 50%;
    opacity: .92;
    filter: saturate(.8) contrast(1.05);
  }

  .arte::after {
    background:
      linear-gradient(
        to bottom,
        #174938 0%,
        rgba(23,73,56,.65) 12%,
        transparent 38%,
        transparent 75%,
        #09362d 100%
      ),
      linear-gradient(
        to right,
        rgba(15,60,45,.12),
        transparent 25%,
        transparent 75%,
        rgba(15,60,45,.12)
      );
  }

  .especial {
    position: relative;
    z-index: 2;
    margin-top: -25px;
  }
}

/* Ajustes para celulares menores */

@media (max-width: 480px) {

  .nav {
    height: 122px;
    min-height: 122px;
  }

  .marca {
    top: 12px;
    width: 205px;
    height: 205px;
  }

  .menu-toggle {
    top: 54px;
    right: 6%;
    width: 58px;
    height: 58px;
    border-radius: 19px;
  }

  .menu-toggle-lines {
    width: 26px;
    height: 24px;
    gap: 6px;
  }

  .menu-toggle-lines span {
    height: 2px;
  }

  .menu-toggle[aria-expanded="true"]
  .menu-toggle-lines span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"]
  .menu-toggle-lines span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }

  .menu-mobile:not([hidden]) {
    top: 132px;
  }

  .hero-grid {
    width: calc(100% - 32px);
    padding-top: 160px;
  }

  .hero .rotulo {
    margin-bottom: 18px;
  }

  .hero h1 {
    font-size: clamp(2.65rem, 8.3vw, 3.8rem);
  }

  .intro .botao {
    margin-top: 30px;
    min-height: 58px;
    padding: 14px 22px;
    font-size: clamp(.95rem, 3.7vw, 1.15rem);
  }

  .arte {
    width: calc(100% + 32px);
    height: clamp(330px, 93vw, 480px);
    margin: 22px -16px 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .marca,
  .arte {
    transition: none;
  }
}


/* URBANO SAUDE CARROSSEL V1 */

.galeria-clinica {
  width: 100%;
  min-width: 0;
  position: relative;
}

.galeria-viewport {
  display: flex;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  border-radius: 24px;
  background: #dfe8d9;
  box-shadow: 0 15px 32px rgba(9,46,37,.14);
}

.galeria-viewport::-webkit-scrollbar {
  display: none;
}

.galeria-slide {
  flex: 0 0 100%;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.galeria-slide img {
  display: block;
  width: 100%;
  height: clamp(280px,33vw,420px);
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
  border: 0;
  border-radius: 0;
}

.galeria-controles {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 22px;
  margin-top: 16px;
}

.galeria-seta {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid #c9d9c5;
  border-radius: 50%;
  background: #fff;
  color: #093c30;
  font: inherit;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}

.galeria-indicadores {
  display: flex;
  align-items: center;
  gap: 10px;
}

.galeria-ponto {
  width: 11px;
  height: 11px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #b3c7ac;
  cursor: pointer;
}

.galeria-ponto.ativo {
  width: 30px;
  border-radius: 12px;
  background: #146d4e;
}

.galeria-clinica button:focus-visible,
.galeria-viewport:focus-visible {
  outline: 3px solid #b36a00;
  outline-offset: 3px;
}

@media (max-width: 740px) {
  .galeria-viewport {
    border-radius: 22px;
  }

  .galeria-slide img {
    height: clamp(240px,68vw,350px);
  }

  .galeria-controles {
    margin-top: 14px;
  }
}

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


/* URBANO CONTATOS V1 */

.contato .urbano-contatos {
  display: grid;
  gap: 12px;
  margin-top: 28px;
  width: 100%;
}

.contato .urbano-contato-card {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
  padding: 12px 16px 12px 12px;
  border: 1px solid rgba(9,60,48,.10);
  border-radius: 20px;
  background: rgba(255,255,255,.66);
  color: #093c30;
  text-decoration: none;
  box-shadow: 0 5px 18px rgba(9,46,37,.045);
  transition:
    transform .2s ease,
    box-shadow .2s ease,
    border-color .2s ease;
}

.contato .urbano-contato-card:hover {
  transform: translateY(-2px);
  border-color: rgba(9,60,48,.22);
  box-shadow: 0 10px 25px rgba(9,46,37,.10);
}

.contato .urbano-contato-card:focus-visible {
  outline: 3px solid #b36a00;
  outline-offset: 3px;
}

.contato .urbano-contato-card > img {
  display: block;
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  max-width: none;
  aspect-ratio: 1;
  padding: 0;
  margin: 0;
  object-fit: contain;
  object-position: center;
  border: 0;
  border-radius: 50%;
  background: transparent;
}

.contato .urbano-contato-info {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  overflow-wrap: anywhere;
}

.contato .urbano-contato-info strong {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.25;
}

.contato .urbano-contato-info > span {
  font-size: clamp(13px,3.4vw,16px);
  line-height: 1.4;
}

.contato .urbano-contato-seta {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #e8f0df;
  color: #093c30;
  font-size: 18px;
  font-weight: 600;
}

/* Fotografia da seção A Clínica */

.contato.dupla > figure {
  display: block;
  width: 100%;
  margin: 0;
  padding: 5px;
  overflow: hidden;
  border: 1px solid rgba(9,60,48,.10);
  border-radius: 24px;
  background: #fffdf7;
  box-shadow: 0 12px 28px rgba(9,46,37,.10);
}

.contato.dupla > figure > img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center top;
  border-radius: 19px;
}

@media (max-width: 740px) {
  .contato.dupla {
    gap: 30px;
  }

  .contato .urbano-contatos {
    margin-top: 24px;
  }

  .contato .urbano-contato-card {
    gap: 13px;
    border-radius: 18px;
  }

  .contato .urbano-contato-card > img {
    flex-basis: 58px;
    width: 58px;
    height: 58px;
  }

  .contato.dupla > figure {
    border-radius: 20px;
  }

  .contato.dupla > figure > img {
    border-radius: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .contato .urbano-contato-card {
    transition: none;
  }
}


/* URBANO CONTATOS V2 MINIMALISTA */

.contato .urbano-contatos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
  margin-top: 34px;
  align-items: start;
}

.contato .urbano-contato-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  min-width: 0;
  padding: 8px 3px;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #093c30;
  text-decoration: none;
  text-align: center;
  transform: none;
  transition: opacity .2s ease;
}

.contato .urbano-contato-card:hover {
  transform: none;
  border: none;
  box-shadow: none;
  opacity: .78;
}

.contato .urbano-contato-card > img {
  display: block;
  flex: 0 0 auto;
  width: clamp(66px, 8vw, 88px);
  height: clamp(66px, 8vw, 88px);
  aspect-ratio: 1;
  object-fit: contain;
  border-radius: 50%;
  padding: 0;
  margin: 0 0 4px;
  background: transparent;
  box-shadow: none;
}

.contato .urbano-contato-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  width: 100%;
  min-width: 0;
  text-align: center;
  overflow-wrap: anywhere;
}

.contato .urbano-contato-info strong {
  font-size: clamp(13px, 1.4vw, 16px);
  font-weight: 700;
  line-height: 1.3;
}

.contato .urbano-contato-info > span {
  font-size: clamp(11px, 1.15vw, 14px);
  font-weight: 400;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.contato .urbano-contato-seta {
  display: none;
}

@media (max-width: 740px) {
  .contato .urbano-contatos {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 30px;
  }

  .contato .urbano-contato-card {
    gap: 9px;
    padding: 5px 2px;
  }

  .contato .urbano-contato-card > img {
    width: clamp(64px, 18vw, 82px);
    height: clamp(64px, 18vw, 82px);
  }

  .contato .urbano-contato-info strong {
    font-size: 13px;
  }

  .contato .urbano-contato-info > span {
    font-size: 11px;
    letter-spacing: -.2px;
  }
}

@media (max-width: 360px) {
  .contato .urbano-contatos {
    gap: 4px;
  }

  .contato .urbano-contato-card > img {
    width: 58px;
    height: 58px;
  }

  .contato .urbano-contato-info > span {
    font-size: 10px;
  }
}


/* URBANO LOCALIZACAO V1 */

.urbano-localizacao {
  background: #f5efdf;
  padding: 55px 0 65px;
  color: #103c30;
}

.urbano-localizacao-inner {
  max-width: 1080px;
  margin-inline: auto;
  text-align: center;
}

.urbano-localizacao-rotulo {
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  color: #567362;
}

.urbano-localizacao h2 {
  margin: 0 0 16px;
  font-size: clamp(34px, 6vw, 52px);
  line-height: 1.1;
  letter-spacing: -.04em;
}

.urbano-localizacao address {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 0 0 30px;
  font-style: normal;
  font-size: clamp(16px, 3vw, 20px);
}

.urbano-localizacao address strong {
  font-weight: 700;
}

.urbano-localizacao address span {
  color: #537062;
}

.urbano-mapa {
  position: relative;
  width: 100%;
  min-height: 340px;
  overflow: hidden;
  border-radius: 24px;
  background: #e2e9d9;
}

.urbano-mapa-placeholder {
  display: flex;
  min-height: 340px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 13px;
  padding: 28px 22px;
  background:
    linear-gradient(35deg,transparent 46%,#f8f8ed 47%,
      #f8f8ed 49%,transparent 50%),
    repeating-linear-gradient(
      0deg,
      transparent 0 55px,
      rgba(255,255,255,.72) 56px 63px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0 90px,
      rgba(255,255,255,.72) 91px 99px
    ),
    #d9e4d1;
  color: #103c30;
}

.urbano-mapa-marca {
  display: grid;
  place-items: center;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background: #155640;
  color: #e6efc7;
  font-size: 28px;
}

.urbano-mapa-placeholder > strong {
  font-size: clamp(17px, 3vw, 22px);
}

.urbano-mapa-placeholder > p {
  margin: 0;
  font-size: 15px;
  text-align: center;
}

.urbano-mapa-carregar {
  padding: 13px 25px;
  border: 0;
  border-radius: 999px;
  background: #103c30;
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.urbano-mapa-carregar:hover {
  background: #1c624a;
}

.urbano-mapa-carregar:focus-visible {
  outline: 3px solid #b36a00;
  outline-offset: 3px;
}

.urbano-mapa-placeholder small {
  max-width: 460px;
  font-size: 11px;
  line-height: 1.5;
  color: #496255;
  text-align: center;
}

.urbano-mapa iframe {
  display: block;
  width: 100%;
  height: 400px;
  border: 0;
}

.urbano-footer {
  background: #103c30;
  color: #f5efdf;
}

.urbano-footer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
  padding-block: 48px 65px;
  text-align: center;
}

.urbano-footer-identidade > strong {
  font-size: clamp(21px, 4vw, 28px);
  line-height: 1.3;
}

.urbano-footer-identidade p {
  margin: 7px 0 0;
  color: #d4e1d5;
  font-size: 15px;
}

.urbano-footer-institucional {
  width: 100%;
  max-width: 650px;
  padding: 22px 0;
  border-top: 1px solid rgba(255,255,255,.18);
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.urbano-footer-institucional h2 {
  margin: 0 0 15px;
  font-size: 16px;
  font-weight: 700;
}

.urbano-footer-institucional p {
  margin: 8px 0;
  color: #d4e1d5;
  font-size: 13px;
  line-height: 1.6;
}

.urbano-footer-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 15px 30px;
}

.urbano-footer-links a {
  color: #f5efdf;
  font-size: 14px;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.urbano-footer-copy {
  margin: 0;
  color: #c5d7ca;
  font-size: 12px;
}

@media (max-width: 740px) {
  .urbano-localizacao {
    padding: 40px 0 45px;
  }

  .urbano-mapa,
  .urbano-mapa-placeholder {
    min-height: 300px;
    border-radius: 20px;
  }

  .urbano-mapa iframe {
    height: 340px;
  }

  .urbano-footer-inner {
    gap: 23px;
    padding-block: 42px 58px;
  }
}



/* URBANO HERO MOBILE V5 */
/* Substituido pela versao V6 */

@media (max-width: 850px) {

  .hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(
      180deg,
      #245d4c 0%,
      #174b3c 55%,
      #092f27 100%
    );
  }

  .hero-grid {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    min-height: 0;
    padding-top: 125px;
    padding-bottom: 0;
    gap: 0;
  }

  .hero .intro {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 0;
  }

  .hero .rotulo {
    margin-bottom: 18px;
  }

  .hero h1 {
    max-width: 650px;
    margin-bottom: 28px;
  }

  .hero .botao {
    position: relative;
    z-index: 3;
  }

  .hero .arte {
    position: relative;
    z-index: 1;
    width: calc(100% + 48px);
    max-width: none;
    height: 440px;
    min-height: 0;
    margin: -12px -24px 0;
    overflow: hidden;
    opacity: 1;
    transform: none;
  }

  .hero .arte::before {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(
      180deg,
      #174b3c 0%,
      rgba(23,75,60,.8) 8%,
      rgba(23,75,60,.25) 28%,
      transparent 50%
    );
  }

  .hero .arte img {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center 48%;
    opacity: 1;
    transform: none;
    mask-image: none;
    -webkit-mask-image: none;
  }
}

@media (max-width: 480px) {

  .hero-grid {
    padding-top: 115px;
  }

  .hero .rotulo {
    margin-bottom: 16px;
  }

  .hero h1 {
    margin-bottom: 25px;
  }

  .hero .arte {
    height: 390px;
    margin-top: -8px;
  }
}

/* FIM URBANO HERO MOBILE V6 */


/* URBANO HERO SOBREPOSTO V7 */

@media (max-width: 850px) {

  .hero {
    position: relative;
    overflow: hidden;
    background: #103c30;
  }

  .hero-grid {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    min-height: 690px;
    padding-top: 190px;
    padding-bottom: 100px;
    isolation: isolate;
  }

  .hero .arte {
    position: absolute;
    z-index: -1;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    min-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    opacity: 1;
    transform: none;
    pointer-events: none;
  }

  .hero .arte img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center 62%;
    opacity: 1;
    transform: none;
    mask-image: none;
    -webkit-mask-image: none;
  }

  .hero .arte::before {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0;
    background: linear-gradient(
      180deg,
      rgba(9, 51, 40, .93) 0%,
      rgba(9, 51, 40, .77) 26%,
      rgba(9, 51, 40, .57) 49%,
      rgba(9, 51, 40, .12) 78%,
      rgba(9, 51, 40, .04) 100%
    );
    pointer-events: none;
  }

  .hero .intro {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 0;
  }

  .hero .rotulo {
    margin: 0 0 22px;
  }

  .hero h1 {
    margin: 0 0 32px;
    max-width: 650px;
  }

  .hero .botao {
    position: relative;
    z-index: 3;
  }
}

@media (max-width: 480px) {

  .hero-grid {
    min-height: 650px;
    padding-top: 185px;
    padding-bottom: 85px;
  }

  .hero .rotulo {
    margin-bottom: 20px;
  }

  .hero h1 {
    margin-bottom: 30px;
  }

  .hero .arte img {
    object-position: center 65%;
  }
}

/* FIM URBANO HERO SOBREPOSTO V7 */


/* URBANO FOTO MOBILE V8 */

@media (max-width: 850px) {

  .hero {
    background: #103c30;
  }

  .hero .arte {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: linear-gradient(
      180deg,
      #103c30 0%,
      #174c3d 55%,
      #103c30 100%
    );
  }

  .hero .arte img {
    position: absolute;
    top: auto;
    right: -3%;
    bottom: 0;
    left: auto;

    display: block;
    width: 160%;
    height: auto;
    max-width: none;
    max-height: none;

    object-fit: contain;
    object-position: right bottom;

    opacity: 1;
    transform: none;
    mask-image: none;
    -webkit-mask-image: none;
  }

  .hero .arte::before {
    background: linear-gradient(
      180deg,
      #103c30 0%,
      rgba(16,60,48,.96) 28%,
      rgba(16,60,48,.74) 47%,
      rgba(16,60,48,.20) 68%,
      rgba(16,60,48,0) 100%
    );
  }

  .hero .intro {
    position: relative;
    z-index: 2;
  }
}

@media (max-width: 480px) {

  .hero .arte img {
    width: 165%;
    right: -3%;
    bottom: 0;
  }
}

/* FIM URBANO FOTO MOBILE V8 */


/* URBANO CENTRALIZACAO MOBILE V9 */

@media (max-width: 850px) {

  /* Equipe médica */
  .equipe .intro,
  .equipe .texto,
  .equipe .conteudo,
  .equipe .section-header,
  .equipe .cabecalho,
  .equipe > .wrap {
    text-align: center;
  }

  /* Apresentação da clínica */
  .clinica .intro,
  .clinica .texto,
  .clinica .conteudo,
  .clinica .section-header,
  .clinica .cabecalho,
  .clinica > .wrap {
    text-align: center;
  }

  /* Mantém o bloco verde sem alteração */
}

/* FIM URBANO CENTRALIZACAO MOBILE V9 */


/* URBANO ESPECIALIDADES V10 */

.especial .urbano-especial-cabecalho {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}

.especial .urbano-especial-rotulo {
  margin: 0 0 18px;
  color: var(--lima);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-align: center;
}

.especial .urbano-especial-cabecalho h2 {
  max-width: 620px;
  margin: 0 auto;
  text-align: center;
  line-height: 1.15;
  text-wrap: balance;
}

.especial .urbano-especial-descricao {
  max-width: 580px;
  margin: 22px auto 0;
  color: rgba(245, 242, 224, .78);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
}

.especial ul.urbano-especial-grade {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 38px 0 0;
  padding: 0;
  list-style: none;
}

.especial ul.urbano-especial-grade > li {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 190px;
  margin: 0;
  padding: 28px 12px;
  border: 0;
  border-top: 1px solid rgba(220, 244, 220, .22);
  gap: 18px;
  text-align: center;
  font-weight: 700;
}

.especial ul.urbano-especial-grade > li:nth-child(odd) {
  border-right: 1px solid rgba(220, 244, 220, .22);
}

.especial ul.urbano-especial-grade > li:last-child {
  grid-column: 1 / -1;
  border-right: 0;
}

.especial ul.urbano-especial-grade > li::before {
  content: none;
  display: none;
}

.especial ul.urbano-especial-grade > li img {
  display: block;
  width: 64px;
  height: 64px;
  max-width: 100%;
  object-fit: contain;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  flex: none;
}

.especial ul.urbano-especial-grade > li span {
  display: block;
  max-width: 100%;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

@media (max-width: 850px) {

  .especial .urbano-especial-rotulo {
    font-size: .75rem;
    margin-bottom: 16px;
  }

  .especial .urbano-especial-cabecalho h2 {
    font-size: clamp(1.8rem, 6.5vw, 2.6rem);
  }

  .especial .urbano-especial-descricao {
    font-size: .92rem;
    line-height: 1.55;
    margin-top: 18px;
  }

  .especial ul.urbano-especial-grade {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin-top: 30px;
    font-size: .9rem;
  }

  .especial ul.urbano-especial-grade > li {
    min-height: 155px;
    padding: 24px 6px;
    gap: 14px;
    text-align: center;
  }

  .especial ul.urbano-especial-grade > li:last-child {
    grid-column: 1 / -1;
    text-align: center;
  }

  .especial ul.urbano-especial-grade > li img {
    width: 54px;
    height: 54px;
  }
}

/* FIM URBANO ESPECIALIDADES V10 */


/* URBANO HERO ESPACAMENTOS V11 */

@media (max-width: 850px) {

  /*
   * Aproxima o conteúdo da logomarca.
   * Preserva o posicionamento da imagem.
   */
  .hero .hero-grid {
    padding-top: 115px;
  }

  /*
   * Reduz a distância entre título e botão.
   */
  .hero .intro h1 {
    margin-bottom: 16px;
  }

  .hero .intro .rotulo {
    margin-bottom: 19px;
  }
}

@media (max-width: 480px) {

  .hero .hero-grid {
    padding-top: 105px;
  }

  .hero .intro h1 {
    margin-bottom: 14px;
  }

  .hero .intro .rotulo {
    margin-bottom: 17px;
  }
}

/* FIM URBANO HERO ESPACAMENTOS V11 */
