@font-face { font-family: "Poppins"; src: url("/assets/fonts/poppins-400.woff2") format("woff2"); font-weight: 400; font-display: swap }
@font-face { font-family: "Poppins"; src: url("/assets/fonts/poppins-500.woff2") format("woff2"); font-weight: 500; font-display: swap }
@font-face { font-family: "Poppins"; src: url("/assets/fonts/poppins-600.woff2") format("woff2"); font-weight: 600; font-display: swap }
@font-face { font-family: "Baloo 2"; src: url("/assets/fonts/baloo-2-600.woff2") format("woff2"); font-weight: 600; font-display: swap }
@font-face { font-family: "Baloo 2"; src: url("/assets/fonts/baloo-2-700.woff2") format("woff2"); font-weight: 700; font-display: swap }
@font-face { font-family: "Baloo 2"; src: url("/assets/fonts/baloo-2-800.woff2") format("woff2"); font-weight: 800; font-display: swap }
@font-face { font-family: "Allura"; src: url("/assets/fonts/allura-400.woff2") format("woff2"); font-weight: 400; font-display: swap }

/* Paleta do site antigo e da logo. "laranja" só em texto grande; "laranja-btn" atrás de texto branco (contraste AA). */
:root {
  --tinta: #3D2C1A; --mut: #7A6252; --creme: #FFFAF5; --creme2: #FFF5EC; --cinza: #F7F4F8; --branco: #fff; --linha: rgba(168, 140, 110, .18);
  --laranja: #E8700F; --laranja-btn: #BF5409; --laranja-claro: #FDE9D6;
  --salvia: #A8C6AE; --salvia2: #3D7A4A; --verde-fundo: #3F7D4C; --lilas: #B8A6D9; --lilas2: #6B57A3; --pessego: #F6B3A2; --manteiga: #F7D567;
  --wa: #15803D; --estrela: #F5A623; --raio: 22px; --sombra: 0 14px 40px rgba(61, 44, 26, .08);
}
* { box-sizing: border-box; margin: 0 }
html { scroll-behavior: smooth; scroll-padding-top: 84px; overflow-x: clip }
main { overflow-x: clip }
body { font-family: Poppins, system-ui, sans-serif; background: var(--branco); color: var(--tinta); font-size: 16px; line-height: 1.7;
  -webkit-font-smoothing: antialiased }
h1, h2, h3 { font-family: "Baloo 2", Poppins, sans-serif; font-weight: 800; line-height: 1.08; letter-spacing: -.01em }
h2 em, h1 em { font-style: normal; color: var(--laranja) }
a { color: var(--salvia2) }
img, svg, video { display: block; max-width: 100% }
[hidden] { display: none !important }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap }
.wrap { width: 100%; max-width: 1160px; margin: 0 auto; padding: 0 24px }
.skip { position: absolute; left: -999px; top: 8px; background: var(--salvia2); color: #fff; padding: 10px 16px; border-radius: 8px; z-index: 60 }
.skip:focus { left: 8px }
:focus-visible { outline: 3px solid var(--lilas2); outline-offset: 3px; border-radius: 8px }
.cursiva { display: block; font-family: Allura, cursive; font-weight: 400; color: var(--laranja); font-size: 1.32em; line-height: .95; letter-spacing: 0;
  margin-top: .08em; font-style: normal }
.sobre { font-size: 11.5px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--salvia2); margin-bottom: 12px }

/* header */
.topo { position: sticky; top: 0; z-index: 40; background: rgba(255, 250, 245, .94); border-bottom: 1px solid var(--linha);
  -webkit-backdrop-filter: saturate(1.4) blur(8px); backdrop-filter: saturate(1.4) blur(8px) }
.nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 76px }
.marca img { width: auto; height: 54px }
.menu { display: flex; align-items: center; gap: 30px }
.menu a { color: var(--tinta); text-decoration: none; font-weight: 500; font-size: 14.5px }
.menu a:hover { color: var(--laranja-btn) }
.menu-btn { display: none; width: 44px; height: 44px; border: 1px solid var(--linha); border-radius: 12px; background: #fff;
  flex-direction: column; justify-content: center; align-items: center; gap: 5px; cursor: pointer; flex: none }
.menu-btn span { width: 20px; height: 2px; background: var(--tinta); border-radius: 2px }

/* buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: var(--laranja-btn); color: #fff !important;
  padding: 14px 28px; border-radius: 999px; text-decoration: none; border: 0; cursor: pointer; font: 700 16px "Baloo 2", Poppins, sans-serif;
  letter-spacing: .01em; text-align: center; box-shadow: 0 8px 20px rgba(191, 84, 9, .25); transition: transform .15s, background .15s }
.btn:hover { background: #A84A07; transform: translateY(-1px) }
.btn svg { width: 20px; height: 20px; flex: none }
.btn-sm { padding: 9px 20px; font-size: 15px; box-shadow: none }
.btn-claro { background: #fff; color: var(--laranja-btn) !important; border: 1.5px solid #F2C9A6; box-shadow: none }
.btn-claro:hover { background: var(--creme2) }
.btn-wa { background: var(--wa); box-shadow: 0 8px 20px rgba(21, 128, 61, .22) } .btn-wa:hover { background: #116B33 }
.btn-verde { background: var(--salvia2); box-shadow: none } .btn-verde:hover { background: #2F6B3C }

/* hero: centered, over a washed-out photo, like the old site */
.hero { position: relative; overflow: hidden; padding: 56px 0 96px; text-align: center; background: var(--creme) }
.hero-fundo { position: absolute; inset: 0 }
.hero-fundo img, .hero-fundo video { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9) }
.hero:before { content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(255, 250, 245, .80) 0%, rgba(255, 250, 245, .86) 55%, rgba(255, 250, 245, .96) 100%) }
.hero-txt { position: relative; z-index: 3; display: flex; flex-direction: column; align-items: center }
.hero-logo { width: min(560px, 92%); height: auto; margin-bottom: 14px; filter: drop-shadow(0 12px 26px rgba(61, 44, 26, .10)) }
h1 { font-size: 64px; max-width: 760px }
.lead { font-size: 18px; color: #5E4A3B; margin-top: 18px; max-width: 600px }
.hero-ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 30px }
.nota { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; background: rgba(255, 255, 255, .92); border: 1px solid var(--linha);
  padding: 7px 16px; border-radius: 999px; color: var(--mut); font-size: 13.5px; text-decoration: none }
.nota b { color: var(--tinta) }
.estrelas { color: var(--estrela); letter-spacing: 1px }

/* sections */
.sec { --fundo: #fff; padding: 96px 0; position: relative; background: var(--fundo) }
.curva { --fundo: var(--cinza) }
.sec-cab { margin-bottom: 44px }
.centro { text-align: center; display: flex; flex-direction: column; align-items: center }
h2 { font-size: 46px; max-width: 720px }
.sub { color: var(--mut); font-size: 16.5px; margin-top: 14px; max-width: 620px }

/* experiences + quote calculator */
.orc { padding-top: 64px }
.orc-grid { display: grid; gap: 28px }
.planos { border: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; min-width: 0; align-items: start }
.plano { position: relative; display: flex; flex-direction: column; background: #fff; border: 2px solid #F0E8E0; border-radius: var(--raio);
  padding: 26px 26px 24px; cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .15s; overflow: hidden }
.plano:hover { border-color: #F2C9A6; transform: translateY(-4px) }
.plano input { position: absolute; opacity: 0; pointer-events: none }
.plano:has(input:checked) { border-color: var(--laranja-btn); box-shadow: 0 18px 44px rgba(191, 84, 9, .16) }
.plano:has(input:focus-visible) { outline: 3px solid var(--lilas2); outline-offset: 3px }
.plano:has(.plano-selo) { padding-top: 58px }
.plano-topo { display: flex; align-items: center; min-height: 20px }
.plano-dur { font-size: 11.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--salvia2) }
.plano-selo { position: absolute; left: 0; right: 0; top: 0; background: var(--laranja-btn); color: #fff; text-align: center; font: 700 13px "Baloo 2", sans-serif;
  letter-spacing: .14em; text-transform: uppercase; padding: 8px }
.plano h3 { font-size: 30px; margin-top: 6px }
.plano-desc { color: var(--mut); font-size: 14px; margin-top: 2px }
.plano ul { list-style: none; padding: 16px 0 0; margin: 16px 0 18px; display: grid; gap: 8px; font-size: 14px; border-top: 1px solid #F0E8E0 }
.plano li { padding-left: 24px; position: relative }
.plano li:before { content: ""; position: absolute; left: 2px; top: .35em; width: 14px; height: 14px; border-radius: 50%; background: #E7F1E9 }
.plano li:after { content: ""; position: absolute; left: 6.5px; top: calc(.35em + 3px); width: 3.5px; height: 6.5px; border: solid var(--salvia2);
  border-width: 0 1.8px 1.8px 0; transform: rotate(45deg) }
.plano-rodape { margin-top: auto }
.plano-apartir { font-size: 12.5px; color: var(--mut) }
.plano-preco { font: 800 38px/1.05 "Baloo 2", sans-serif; color: var(--laranja) }
.plano-base { font-size: 13px; color: var(--mut) }
.plano-escolher { display: block; margin-top: 16px; text-align: center; padding: 11px; border-radius: 999px; font: 700 15.5px "Baloo 2", sans-serif;
  border: 1.5px solid #F2C9A6; color: var(--laranja-btn) }
.plano-escolher:after { content: "Quero este" }
.plano:has(input:checked) .plano-escolher { background: var(--laranja-btn); border-color: var(--laranja-btn); color: #fff }
.plano:has(input:checked) .plano-escolher:after { content: "Escolhido!" }
.carregando { color: var(--mut) }

.calc { background: #fff; border-radius: var(--raio); padding: 30px; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr);
  gap: 18px 36px; min-width: 0; box-shadow: var(--sombra) }
.calc-tit { grid-column: 1 / -1; font-size: 28px }
.campos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-content: start }
.campos > * { min-width: 0 }
.campos label { display: grid; gap: 6px; font-size: 13.5px; font-weight: 600; color: var(--tinta); align-content: start }
.campos small { font-size: 12px; font-weight: 400; color: var(--mut); margin-top: -2px }
.campos .campo-data, .status-data, .extras, .campos .degust { grid-column: 1 / -1 }
.campos input { width: 100%; min-width: 0; max-width: 100%; display: block; font: 500 16px Poppins, sans-serif; color: var(--tinta);
  background: var(--creme); border: 1.5px solid #EFE3D6; border-radius: 14px; padding: 12px 14px; min-height: 50px }
.campos input:focus { border-color: #F2C9A6 }
.campos .check { display: flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 500; cursor: pointer }
.campos .check input { width: 20px; height: 20px; min-height: 0; padding: 0; accent-color: var(--laranja-btn); flex: none }
.extras { border: 1.5px dashed #EFD9C4; border-radius: 14px; padding: 12px 16px 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px }
.extras legend { font-size: 13.5px; font-weight: 600; padding: 0 6px }
.extras legend small { color: var(--mut); font-weight: 400 }
.campos input[type="number"] { -moz-appearance: textfield; appearance: textfield }
.campos input[type="number"]::-webkit-inner-spin-button, .campos input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0 }
.data { position: relative; display: block; min-width: 0 }
.campos input[type="date"] { -webkit-appearance: none; appearance: none; text-align: left }
.campos input[type="date"]::-webkit-date-and-time-value { text-align: left; margin: 0 }
.campos input[type="date"]:invalid:not(:focus) { color: transparent }
.data:has(input:invalid:not(:focus))::after { content: "Selecionar data"; position: absolute; left: 15px; top: 50%; transform: translateY(-50%);
  color: var(--mut); font-size: 15px; pointer-events: none }
@supports (-webkit-touch-callout: none) {
  .campos input[type="date"] { padding-right: 40px;
    background: var(--creme) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3.5' y='5' width='17' height='15' rx='3' fill='none' stroke='%237A6252' stroke-width='1.6'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4' stroke='%237A6252' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") right 12px center / 20px no-repeat }
}
.status-data { font-size: 14px; font-weight: 600; margin-top: -4px }
.status-data:empty { display: none }
.status-data.livre { color: var(--salvia2) }
.status-data.ocupada { color: #B4441D }
.resumo { display: grid; gap: 14px; align-content: start; background: var(--creme2); border-radius: 18px; padding: 22px; min-width: 0 }
.total-rotulo { font-size: 12.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--mut) }
.total-valor { font: 800 44px/1.1 "Baloo 2", sans-serif; color: var(--laranja) }
.total-conta { display: grid; gap: 4px; font-size: 13.5px; color: var(--mut); margin-top: 6px }
.aviso { color: #B4441D; font-size: 14px; font-weight: 600 }
.aviso:empty { display: none }
.resumo .btn { width: 100%; padding: 15px 18px }
.resumo-obs { font-size: 12.5px; color: var(--mut); text-align: center }

/* special offers: green band, like the old site */
.cond-sec { --fundo: #4E8A5B; background: linear-gradient(180deg, #4E8A5B 0%, var(--verde-fundo) 55%, #356D41 100%); color: #fff }
.cond-sec h2 { color: #fff } .cond-sec h2 em { color: var(--manteiga) } .cond-sec .sub { color: #EAF4EC }
.selo-claro { font-size: 11.5px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; border: 1px solid rgba(255, 255, 255, .45);
  border-radius: 999px; padding: 6px 16px; margin-bottom: 16px }
.cond-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px }
.cond { background: #fff; color: var(--tinta); border-radius: var(--raio); padding: 32px; display: flex; flex-direction: column; gap: 12px;
  box-shadow: 0 20px 50px rgba(20, 50, 28, .25) }
.cond-tag { align-self: flex-start; font-size: 11.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px }
.cond-tag.verde { background: #E7F1E9; color: var(--salvia2) } .cond-tag.laranja { background: var(--laranja-claro); color: #A84A07 }
.cond h3 { font-size: 27px }
.cond p { color: var(--mut); font-size: 15px }
.cond-obs { font-size: 13px !important; text-align: center }
.cond-preco { color: var(--tinta) !important }
.cond-preco b { font: 800 36px "Baloo 2", sans-serif; color: var(--laranja); margin-right: 6px }
.cond-preco span { display: block; font-size: 14px; color: var(--mut) }
.cond .btn { margin-top: auto }

/* the venue */
.espaco-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center }
.incluso { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 24px; margin-top: 32px }
.incluso li { display: flex; gap: 14px; align-items: flex-start; font-size: 13.5px; line-height: 1.5; color: var(--mut) }
.incluso li > div { padding-top: 3px; min-width: 0 }
.incluso b { display: block; color: var(--tinta); font-size: 15.5px; font-weight: 600; margin-bottom: 2px }
.ic { flex: none; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center }
.ic svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round }
.ic.verde { background: #E7F1E9; color: var(--salvia2) } .ic.laranja { background: var(--laranja-claro); color: #B4500A }
.ic.lilas { background: #EEE9F8; color: var(--lilas2) } .ic.amarelo { background: #FDF3D0; color: #8A6A00 }
.espaco-fotos { display: grid; grid-template-columns: 1.15fr 1fr; grid-template-rows: 1fr 1fr; gap: 14px; aspect-ratio: 1 / 1.05 }
.espaco-fotos img { width: 100%; height: 100%; object-fit: cover; border-radius: 18px; box-shadow: var(--sombra) }
.espaco-fotos > :first-child { grid-row: 1 / 3 }
.espaco-fotos .foto-btn { width: 100%; height: 100%; border-radius: 18px; box-shadow: var(--sombra) }
.espaco-fotos.poucas { grid-template-rows: 1fr } .espaco-fotos.poucas > :first-child { grid-row: auto }

/* menu */
.menu-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px }
.menu-col { background: #fff; border-radius: var(--raio); padding: 28px 30px; box-shadow: var(--sombra) }
.menu-col h3 { font-size: 22px; margin: 24px 0 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px }
.menu-col h3:first-child { margin-top: 0 }
.lista { list-style: none; padding: 0; display: grid; gap: 4px; font-size: 14.5px }
.lista li { position: relative; padding-left: 22px }
.lista li:before { content: "♥"; position: absolute; left: 0; top: 0; font-size: 12px; line-height: 2.05; color: var(--pessego) }
.lista li:nth-child(4n+2):before { color: var(--salvia) } .lista li:nth-child(4n+3):before { color: var(--lilas) }
.lista li:nth-child(4n):before { color: #EDC23E }
.menu-txt { font-size: 14.5px; color: var(--mut) }
.selo-gold { font: 600 10.5px Poppins, sans-serif; letter-spacing: .12em; text-transform: uppercase; background: var(--manteiga); color: var(--tinta);
  padding: 3px 10px; border-radius: 999px }
.fotos-menu { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 24px }
.fotos-menu figure { position: relative; border-radius: 18px; overflow: hidden; aspect-ratio: 4 / 5; background: var(--linha) }
.fotos-menu img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover }
.fotos-menu .foto-btn { position: absolute; inset: 0; border-radius: 18px }
.fotos-menu .foto-leg, .fotos-menu figcaption { position: absolute; left: 10px; bottom: 10px; background: rgba(255, 250, 245, .95); padding: 4px 13px; border-radius: 999px;
  font-size: 13px; font-weight: 600 }
.extras-box { margin-top: 24px; background: #fff; border: 1.5px dashed #EFD9C4; border-radius: 18px; padding: 18px 24px; font-size: 14.5px; color: var(--mut) }
.extras-box b { color: var(--tinta) }

/* Luciana */
.luciana-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 72px; align-items: center }
.luciana-foto { position: relative }
.luciana-foto img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 26px; box-shadow: 0 24px 60px rgba(61, 44, 26, .14) }
.selo-anos { position: absolute; right: -18px; bottom: 34px; background: var(--laranja-btn); color: #fff; border-radius: 18px; padding: 12px 18px;
  text-align: center; font-size: 12px; line-height: 1.3; box-shadow: 0 12px 26px rgba(191, 84, 9, .3) }
.selo-anos b { display: block; font: 800 26px/1.1 "Baloo 2", sans-serif }
.cursiva-tit { font-family: Allura, cursive; font-weight: 400; color: var(--laranja); font-size: 68px; line-height: 1; margin-bottom: 8px }
.luciana-grid p:not(.sobre):not(.selo-anos) { color: var(--mut); margin-top: 14px; max-width: 560px }
.luciana-grid .btn { margin-top: 26px }

/* gallery */
.galeria { columns: 3 260px; column-gap: 16px }
.galeria .foto-btn { width: 100%; break-inside: avoid; margin-bottom: 16px; border-radius: 18px; background: #fff; box-shadow: var(--sombra); text-align: left }
.galeria .foto-btn img, .galeria .foto-btn video { width: 100%; height: auto; display: block }
.galeria .foto-leg { display: block; padding: 10px 16px; font-size: 13.5px; color: var(--mut) }

/* testimonials: colored cards */
.depo-grid { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 56px; align-items: start }
.depo-cab { position: sticky; top: 110px }
.nota-box { display: inline-flex; align-items: center; gap: 14px; margin-top: 28px; background: var(--cinza); border-radius: 18px; padding: 16px 22px;
  text-decoration: none; color: var(--mut); font-size: 13px }
.nota-box > b { font: 800 40px/1 "Baloo 2", sans-serif; color: var(--tinta) }
.nota-box .estrelas { display: block; font-size: 15px }
.depos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px }
.depos figure { border-radius: var(--raio); padding: 26px 26px 22px; display: flex; flex-direction: column; color: var(--tinta) }
.depos figure:before { content: "★★★★★"; letter-spacing: 2px; font-size: 14px; margin-bottom: 10px; color: var(--tinta); opacity: .75 }
.depos blockquote { font-size: 14.5px; font-style: italic }
.depos figcaption { margin-top: auto; padding-top: 14px; font-weight: 600; font-size: 14px }
.c-pessego { background: var(--pessego) } .c-salvia { background: var(--salvia) } .c-lilas { background: var(--lilas) } .c-manteiga { background: var(--manteiga) }
.depos figure:nth-child(2) { transform: translateY(28px) } .depos figure:nth-child(4) { transform: translateY(28px) }

/* how to book */
.passos { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; counter-reset: p; position: relative }
.passos:before { content: ""; position: absolute; left: 12.5%; right: 12.5%; top: 26px; height: 2px;
  background: linear-gradient(90deg, var(--laranja), var(--lilas), var(--salvia), var(--manteiga)) }
.passos li { counter-increment: p; text-align: center; font-size: 14px; color: var(--mut); position: relative }
.passos li:before { content: counter(p); display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 16px; border-radius: 50%;
  font: 800 20px "Baloo 2", sans-serif; color: #fff; background: var(--laranja-btn); border: 5px solid var(--cinza); box-sizing: content-box }
.passos li:nth-child(2):before { background: var(--lilas2) } .passos li:nth-child(3):before { background: var(--salvia2) }
.passos li:nth-child(4):before { background: #B98A00 }
.passos b { display: block; color: var(--tinta); font-size: 16px; font-weight: 600; margin-bottom: 4px }
.pagamento { margin: 40px auto 0; max-width: 760px; text-align: center; background: #fff; border-radius: 18px; padding: 16px 24px; font-size: 14.5px;
  color: var(--mut); box-shadow: var(--sombra) }
.pagamento b { color: var(--tinta) }

/* FAQ */

/* final call: pastel gradient, like the old site */
.final { --fundo: #F8EEF4; background: linear-gradient(180deg, #F8EEF4 0%, #EFEAF8 50%, #E8F2EA 100%); text-align: center }
.final-txt { display: flex; flex-direction: column; align-items: center }
.final-txt > img { width: 260px; height: auto; margin-bottom: 18px }
.final h2 .cursiva { display: block }
.final-ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 28px }
.endereco { margin-top: 10px; font-size: 14px; color: var(--mut) }
.horarios { list-style: none; padding: 6px 24px; margin-top: 36px; background: rgba(255, 255, 255, .8); border-radius: 18px; width: 100%; max-width: 420px; text-align: left }
.horarios li { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--linha); font-size: 14.5px }
.horarios li:last-child { border-bottom: 0 }
.horarios span { color: var(--mut) }

.rodape { --fundo: var(--creme2); position: relative; background: var(--fundo); padding: 36px 0; font-size: 13.5px; color: var(--mut) }
.rodape-grid { display: flex; align-items: center; gap: 22px; flex-wrap: wrap }
.rodape img { width: 170px; height: auto }
.rodape a { color: var(--mut) }
.wa-barra { display: none }


/* ── section transitions: animated waves in the color of the section below ── */
.sec:before, .rodape:before { content: ""; position: absolute; left: 0; right: 0; top: -44px; height: 46px; z-index: 1; pointer-events: none; background: var(--fundo);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 46' preserveAspectRatio='none'%3E%3Cpath d='M0 22Q150 2 300 22T600 22T900 22T1200 22V46H0Z'/%3E%3C/svg%3E") 0 100% / 1200px 46px repeat-x;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 46' preserveAspectRatio='none'%3E%3Cpath d='M0 22Q150 2 300 22T600 22T900 22T1200 22V46H0Z'/%3E%3C/svg%3E") 0 100% / 1200px 46px repeat-x;
  animation: onda 30s linear infinite }
.sec:nth-of-type(even):before, .rodape:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 46' preserveAspectRatio='none'%3E%3Cpath d='M0 26Q100 10 200 26T400 26T600 26T800 26T1000 26T1200 26V46H0Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 46' preserveAspectRatio='none'%3E%3Cpath d='M0 26Q100 10 200 26T400 26T600 26T800 26T1000 26T1200 26V46H0Z'/%3E%3C/svg%3E");
  animation-direction: reverse; animation-duration: 24s }
.hero:before { z-index: 1 }
@keyframes onda { to { -webkit-mask-position: 1200px 100%; mask-position: 1200px 100% } }

/* ── reveal on scroll (only when JS is running, so nothing hides without it) ── */
.js .reveal { opacity: 0; transform: translateY(34px); transition: opacity .8s ease, transform .9s cubic-bezier(.2, .7, .2, 1) }
.js .reveal.visto { opacity: 1; transform: none }
.js .reveal.d2 { transition-delay: .15s }

/* ── hero: floating balloons and the logo bobbing ── */
.baloes { position: absolute; inset: 0; z-index: 2; pointer-events: none }
.balao { position: absolute; width: 58px; height: 116px; animation: flutua 7s ease-in-out infinite; filter: drop-shadow(0 8px 14px rgba(61, 44, 26, .12)) }
.balao .corpo { fill: currentColor } .balao .no { fill: currentColor } .balao .brilho { fill: #fff; opacity: .45 }
.balao .fio { fill: none; stroke: #C9B39D; stroke-width: 1.4 }
.balao.salvia { color: var(--salvia) } .balao.pessego { color: var(--pessego) } .balao.lilas { color: var(--lilas) } .balao.manteiga { color: var(--manteiga) }
.b1 { left: 7%; top: 16% } .b2 { left: 13%; top: 50%; width: 44px; height: 88px; animation-duration: 8.5s; animation-delay: -2s }
.b3 { right: 8%; top: 12%; animation-duration: 9s; animation-delay: -4s } .b4 { right: 14%; top: 46%; width: 46px; height: 92px; animation-duration: 7.5s; animation-delay: -1s }
.b5 { right: 4%; top: 64%; width: 36px; height: 72px; animation-duration: 10s; animation-delay: -6s }
@keyframes flutua { 0%, 100% { transform: translateY(0) rotate(-4deg) } 50% { transform: translateY(-22px) rotate(4deg) } }
.hero-logo { animation: balanca-logo 6s ease-in-out infinite }
@keyframes balanca-logo { 0%, 100% { transform: translateY(0) rotate(-1.5deg) } 50% { transform: translateY(-6px) rotate(1.5deg) } }
@keyframes pop { from { opacity: 0; transform: scale(.6) translateY(10px) } to { opacity: 1; transform: none } }

/* ── special offers: party flags + falling confetti ── */
.cond-sec .wrap, .final .wrap { position: relative; z-index: 2 }
.bandeirinhas { position: absolute; left: 0; right: 0; top: 18px; height: 52px; z-index: 2; display: flex; justify-content: center; gap: 4px; overflow: hidden; pointer-events: none }
.bandeirinhas:before { content: ""; position: absolute; left: 0; right: 0; top: 4px; height: 2px; background: rgba(255, 255, 255, .55) }
.bandeirinhas i { flex: none; width: 30px; height: 38px; margin-top: 5px; background: var(--cor); clip-path: polygon(0 0, 100% 0, 50% 100%); transform-origin: 50% 0;
  animation: bandeira 2.6s ease-in-out infinite alternate }
.bandeirinhas i:nth-child(odd) { animation-delay: -1.3s } .bandeirinhas i:nth-child(3n) { animation-duration: 3.2s }
@keyframes bandeira { from { transform: rotate(-7deg) } to { transform: rotate(7deg) } }
.cond-sec .sec-cab { padding-top: 40px }
.confetes { position: absolute; inset: 0; z-index: 1; overflow: hidden; pointer-events: none }
.confetes i { position: absolute; top: -24px; width: 9px; height: 14px; border-radius: 2px; opacity: .92; animation: cai 9s linear infinite }
.confetes i.redondo { width: 9px; height: 9px; border-radius: 50% } .confetes i.fita { width: 5px; height: 17px }
.confetes.leve i { opacity: .55 }
@keyframes cai { from { transform: translate(0, 0) rotate(0) } to { transform: translate(var(--vai), 1500px) rotate(var(--giro)) } }
.estouro { position: fixed; width: 0; height: 0; z-index: 70; pointer-events: none }
.estouro i { position: absolute; left: -4px; top: -6px; width: 9px; height: 13px; border-radius: 2px; animation: estoura 1.25s cubic-bezier(.12, .7, .3, 1) forwards }
.estouro i.fita { width: 5px; height: 15px }
@keyframes estoura { 0% { transform: translate(0, 0) rotate(0) scale(.5); opacity: 1 } 75% { opacity: 1 }
  100% { transform: translate(var(--dx), calc(var(--dy) + 140px)) rotate(var(--giro)) scale(1); opacity: 0 } }

/* ── how to book: the line draws itself and the numbers pop ── */
.js .passos:not(.visto):before { transform: scaleX(0) }
.passos:before { transform-origin: 0 50%; transition: transform 1.6s .3s cubic-bezier(.3, .7, .2, 1) }
.js .passos.visto li:before { animation: pop .6s cubic-bezier(.2, .9, .3, 1.35) both }
.js .passos.visto li:nth-child(2):before { animation-delay: .35s } .js .passos.visto li:nth-child(3):before { animation-delay: .7s }
.js .passos.visto li:nth-child(4):before { animation-delay: 1.05s }

/* ── comparison table ── */

/* ── menu tagged by experience ── */
.planos-tag { display: flex; gap: 4px; order: -1; width: 100%; margin-bottom: -4px }
.tag-p, .tag-g { font: 600 10.5px Poppins, sans-serif; letter-spacing: .08em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; white-space: nowrap }
.tag-p { background: var(--laranja-claro); color: #A84A07 } .tag-g { background: var(--manteiga); color: var(--tinta) }
.so-gold { margin-top: 22px; display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 2fr); gap: 24px; align-items: center; position: relative; overflow: hidden;
  background: linear-gradient(120deg, #FFF6D6 0%, #FDE8A9 100%); border: 1.5px solid #F2D27A; border-radius: var(--raio); padding: 26px 30px }
.so-gold:after { content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 30%; transform: skewX(-20deg); pointer-events: none;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .55), rgba(255, 255, 255, 0)); animation: brilho 5s ease-in-out infinite }
@keyframes brilho { 0%, 55% { left: -40% } 100% { left: 130% } }
.so-gold-cab h3 { font-size: 30px; margin-top: 8px }
.so-gold-cab p { font-size: 14px; color: var(--mut) }
.so-gold ul { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; position: relative; z-index: 1 }
.so-gold li { background: rgba(255, 255, 255, .8); border-radius: 16px; padding: 14px 16px; font-size: 13.5px; color: var(--mut); line-height: 1.45 }
.so-gold li b { display: block; color: var(--tinta); font: 700 19px/1.2 "Baloo 2", sans-serif; margin-bottom: 2px }
.nota-essencial { margin-top: 16px; text-align: center; font-size: 14px; color: var(--mut) }
.nota-essencial b { color: var(--tinta) }


/* ── clickable photos and albums ── */
.foto-btn { display: block; position: relative; padding: 0; border: 0; background: none; cursor: zoom-in; overflow: hidden; font: inherit; color: inherit }
.foto-btn > img, .foto-btn > video { transition: transform .5s cubic-bezier(.2, .7, .2, 1) }
.espaco-fotos .foto-btn > img, .espaco-fotos .foto-btn > video, .fotos-menu .foto-btn > img, .fotos-menu .foto-btn > video {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover }
.foto-btn:hover > img, .foto-btn:hover > video { transform: scale(1.05) }
.foto-btn:after { content: ""; position: absolute; right: 10px; top: 10px; width: 34px; height: 34px; border-radius: 50%; opacity: 0; transform: scale(.7);
  transition: opacity .2s, transform .2s; background: rgba(255, 250, 245, .95) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23BF5409' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6'/%3E%3Cpath d='M15 15l5 5M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") center / 18px no-repeat;
  box-shadow: 0 4px 12px rgba(61, 44, 26, .18) }
.foto-btn:hover:after, .foto-btn:focus-visible:after { opacity: 1; transform: none }
.foto-btn.e-video:before { content: ""; position: absolute; left: 50%; top: 50%; z-index: 1; width: 56px; height: 56px; margin: -28px 0 0 -28px; border-radius: 50%;
  background: rgba(191, 84, 9, .92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 7l9 5-9 5z' fill='white'/%3E%3C/svg%3E") 55% 50% / 26px no-repeat }
.galeria .foto-btn.e-video:before { top: 40% }
.ver-album { display: flex; align-items: center; gap: 10px; margin: 22px auto 0; padding: 12px 22px; border-radius: 999px; border: 1.5px solid #F2C9A6; background: #fff;
  color: var(--laranja-btn); font: 700 15.5px "Baloo 2", Poppins, sans-serif; cursor: pointer; transition: background .15s, transform .15s }
.ver-album:before { content: ""; width: 20px; height: 20px; flex: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23BF5409' stroke-width='1.8' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='14' height='13' rx='2'/%3E%3Cpath d='M7 2.5h12.5a1.5 1.5 0 0 1 1.5 1.5v11.5'/%3E%3Cpath d='M3 15l4-4 3 3 2-2 5 5'/%3E%3C/svg%3E") center / contain no-repeat }
.ver-album:hover { background: var(--creme2); transform: translateY(-1px) }
.espaco-col .ver-album { margin-left: 0 }

/* the viewer */
.album-aberto, .album-aberto body { overflow: hidden }
.album-aberto .wa-barra { display: none !important }
.album { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 14px 16px 18px; border: 0;
  background: #241A12; color: #fff; display: none; flex-direction: column; gap: 10px }
.album[open] { display: flex; animation: album-entra .25s ease }
.album::backdrop { background: transparent }
@keyframes album-entra { from { opacity: 0 } to { opacity: 1 } }
.album-topo { display: flex; align-items: center; gap: 14px; max-width: 1200px; width: 100%; margin: 0 auto }
.album-titulo { font: 800 22px "Baloo 2", sans-serif }
.album-conta { font-size: 13.5px; color: rgba(255, 255, 255, .7); margin-right: auto }
.album-fechar { width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .12); color: #fff; font: 400 30px/1 Poppins, sans-serif; cursor: pointer }
.album-fechar:hover { background: rgba(255, 255, 255, .22) }
.album-palco { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; gap: 12px; position: relative; touch-action: pan-y }
.album-foto { flex: 1; min-width: 0; height: 100%; display: flex; align-items: center; justify-content: center }
.album-foto img, .album-foto video { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 14px; box-shadow: 0 20px 60px rgba(0, 0, 0, .4) }
.album-foto.entra img, .album-foto.entra video { animation: foto-entra .35s cubic-bezier(.2, .7, .2, 1) }
@keyframes foto-entra { from { opacity: 0; transform: scale(.96) } to { opacity: 1; transform: none } }
.album-seta { flex: none; width: 52px; height: 52px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .14); color: #fff; font: 400 36px/1 Poppins, sans-serif;
  cursor: pointer; display: grid; place-items: center; padding-bottom: 4px; transition: background .15s }
.album-seta:hover { background: var(--laranja-btn) }
.album-legenda { text-align: center; font-size: 14.5px; color: rgba(255, 255, 255, .85); min-height: 1.4em }
.album-miniaturas { display: flex; gap: 8px; overflow-x: auto; padding: 4px 2px 2px; max-width: 1200px; width: 100%; margin: 0 auto; justify-content: safe center; scrollbar-width: thin }
.album-miniaturas button { flex: none; width: 64px; height: 64px; padding: 0; border: 2px solid transparent; border-radius: 12px; overflow: hidden; background: #000;
  cursor: pointer; opacity: .55; transition: opacity .15s, border-color .15s; position: relative }
.album-miniaturas button.ativa { opacity: 1; border-color: var(--manteiga) }
.album-miniaturas button:hover { opacity: .9 }
.album-miniaturas img, .album-miniaturas video { width: 100%; height: 100%; object-fit: cover; display: block }
@media (max-width: 640px) {
  .album { padding: 10px 10px 14px }
  .album-seta { position: absolute; top: 50%; margin-top: -22px; width: 44px; height: 44px; font-size: 30px; z-index: 2; background: rgba(36, 26, 18, .55) }
  .album-seta.ant { left: 4px } .album-seta.prox { right: 4px }
  .album-miniaturas button { width: 52px; height: 52px }
  .foto-btn:after { opacity: 1; transform: none; width: 30px; height: 30px; right: 8px; top: 8px; background-size: 16px }
}

@media (max-width: 1060px) {
  .calc { grid-template-columns: minmax(0, 1fr) }
  .menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) }
  .menu-col:last-child { grid-column: 1 / -1 }
  .depo-grid { grid-template-columns: minmax(0, 1fr); gap: 32px }
  .depo-cab { position: static }
}
@media (max-width: 960px) {
  .espaco-grid, .luciana-grid { grid-template-columns: minmax(0, 1fr); gap: 40px }
  .planos { grid-template-columns: minmax(0, 1fr) }
  .plano ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px }
  .fotos-menu { grid-template-columns: repeat(2, minmax(0, 1fr)) }
  .luciana-foto { max-width: 420px }
  .selo-anos { right: 12px }
  .passos { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px }
  .passos:before { display: none }
  .menu-btn { display: flex }
  .menu { position: absolute; top: 76px; left: 0; right: 0; background: var(--creme); flex-direction: column; align-items: stretch; gap: 0;
    padding: 6px 24px 20px; border-bottom: 1px solid var(--linha); display: none }
  .menu.aberto { display: flex }
  .menu a { padding: 14px 0; border-bottom: 1px solid var(--linha); font-size: 15.5px }
  .menu .btn { margin-top: 14px; border-bottom: 0; padding: 14px 20px }
}
@media (max-width: 640px) {
  body { padding-bottom: 76px; font-size: 15.5px }
  .wrap { padding: 0 16px }
  .nav { height: 68px } .marca img { height: 46px }
  html { scroll-padding-top: 76px }
  .menu { top: 68px; padding: 6px 16px 20px }
  .hero { padding: 32px 0 72px }
  .hero-logo { width: 100% }
  h1 { font-size: 40px } h2 { font-size: 32px }
  .lead { font-size: 16px }
  .hero-ctas .btn, .final-ctas .btn { flex: 1 1 100% }
  .sec { padding: 64px 0 }
  .sec-cab { margin-bottom: 32px }
  .plano { padding: 22px 20px } .plano:has(.plano-selo) { padding-top: 54px }
  .plano ul { grid-template-columns: minmax(0, 1fr) }
  .calc { padding: 22px 16px }
  .campos { grid-template-columns: repeat(2, minmax(0, 1fr)) }
  .campos .campo-idade { grid-column: 1 / -1 }
  .extras { grid-template-columns: minmax(0, 1fr) }
  .resumo { padding: 18px 16px }
  .cond-grid, .menu-grid, .depos { grid-template-columns: minmax(0, 1fr) }
  .cond, .menu-col { padding: 24px 20px }
  .depos figure:nth-child(2), .depos figure:nth-child(4) { transform: none }
  .incluso { grid-template-columns: minmax(0, 1fr) }
  .espaco-fotos { aspect-ratio: 1 / 1.1 }
  .cursiva-tit { font-size: 56px }
  .galeria { columns: 2 140px; column-gap: 10px }
  .galeria figure { margin-bottom: 10px }
  .passos { grid-template-columns: minmax(0, 1fr); row-gap: 28px }
  .wa-barra { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 50; display: flex; align-items: center; justify-content: center;
    background: var(--laranja-btn); color: #fff; text-decoration: none; font: 700 16px "Baloo 2", sans-serif; border-radius: 999px; padding: 14px 18px;
    box-shadow: 0 10px 24px rgba(61, 44, 26, .25); transition: transform .25s ease, opacity .25s ease }
  .sem-barra .wa-barra { transform: translateY(140%); opacity: 0; pointer-events: none }
}
@media (max-width: 960px) {
  .b2, .b4 { display: none }
  .b1 { left: 3%; top: 8% } .b3 { right: 3%; top: 6% } .b5 { right: 2%; top: 58% }
  .so-gold { grid-template-columns: minmax(0, 1fr) }
}
@media (max-width: 640px) {
  .balao { width: 38px; height: 76px } .b5 { display: none }
  .sec:before, .rodape:before { top: -30px; height: 32px; -webkit-mask-size: 800px 32px; mask-size: 800px 32px }
  .so-gold { padding: 22px 18px } .so-gold ul { grid-template-columns: minmax(0, 1fr) }
  .menu-col h3 { flex-wrap: wrap }
  .bandeirinhas i { width: 22px; height: 28px }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto }
  *, *:before, *:after { animation: none !important; transition: none !important }
  .js .reveal { opacity: 1; transform: none }
  .js .passos:not(.visto):before { transform: none }
}
