/* ==========================================================================
   Villa Oliva · Espaço de Eventos & Buffet — estilos do site (Kraenel CMS)
   Cores e fontes: altere as variáveis abaixo.
   ========================================================================== */
:root {
  --olive-950: #1c2015;
  --olive-900: #23271a;
  --olive-800: #2b301d;
  --olive-700: #3f4628;
  --olive: #5d6534;
  --olive-300: #a6aa80;
  --champ: #e9dcc0;
  --champ-200: #f2e9d7;
  --ivory: #faf7f0;
  --paper: #fffdf8;
  --gold: #b08a3e;
  --gold-light: #d9bf86;
  --gold-grad: linear-gradient(120deg, #c9a45c 0%, #ecd8a4 45%, #b58d42 100%);
  --ink: #2a2b22;
  --muted: #6b6a5b;
  --line: rgba(43, 48, 29, .14);
  --danger: #a3452f;
  --ff-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --ff-script: "Pinyon Script", "Brush Script MT", cursive;
  --ff-body: "Jost", system-ui, -apple-system, "Segoe UI", sans-serif;
  --r: 18px;
  --r-sm: 10px;
  --shadow: 0 24px 60px -28px rgba(35, 39, 26, .35);
  --ease: cubic-bezier(.2, .7, .2, 1);
  --hdr: 82px;
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: hidden; scroll-behavior: smooth; scroll-padding-top: 80px; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }
body { margin: 0; font: 400 17px/1.65 var(--ff-body); color: var(--ink); background: var(--ivory); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 4px; }
.skip { position: absolute; left: -999px; top: 8px; z-index: 100; background: var(--olive-900); color: #fff; padding: 10px 16px; border-radius: 8px; }
.skip:focus { left: 8px; }
.wrap { width: min(1240px, 100% - 48px); margin-inline: auto; }
.narrow { width: min(860px, 100% - 48px); }
.center { text-align: center; }
.muted { color: var(--muted); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ico { flex: none; vertical-align: middle; }

.display { font-family: var(--ff-display); font-weight: 500; line-height: 1.06; letter-spacing: -.01em; margin: 0 0 .4em; font-size: clamp(2.2rem, 4.6vw, 3.9rem); color: var(--olive-900); }
.display em { font-style: italic; color: var(--olive); }
.script { font-family: var(--ff-script); font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1; color: var(--gold); margin: 0 0 .35em; }
.lead { font-size: 1.12rem; color: var(--muted); max-width: 60ch; }
.center .lead { margin-inline: auto; }
.section { padding: clamp(72px, 10vw, 128px) 0; position: relative; }
.sec-head { margin-bottom: clamp(32px, 5vw, 56px); }
.h-sm { font-family: var(--ff-display); font-size: 1.6rem; font-weight: 500; margin: 1.6em 0 .5em; color: var(--olive-900); }

/* ---------- botões ---------- */
.btn { --bg: var(--olive); display: inline-flex; align-items: center; justify-content: center; gap: .55em; padding: .95em 1.6em; border-radius: 999px; border: 1px solid transparent; background: var(--bg); color: #fff; text-decoration: none; font-weight: 500; font-size: .98rem; letter-spacing: .02em; cursor: pointer; transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .3s, color .3s; position: relative; overflow: hidden; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -14px rgba(35, 39, 26, .55); }
.btn-gold { background: var(--gold-grad); background-size: 200% 100%; color: var(--olive-950); }
.btn-gold:hover { background-position: 100% 0; }
.btn-olive { background: var(--olive-800); }
.btn-olive:hover { background: var(--olive); }
.btn-line { background: rgba(255, 255, 255, .06); border-color: rgba(233, 220, 192, .55); color: var(--champ-200); backdrop-filter: blur(6px); }
.btn-line:hover { background: rgba(255, 255, 255, .14); }
.btn-ghost { background: transparent; border-color: var(--olive-300); color: var(--olive-800); }
.btn-ghost:hover { background: var(--olive-800); color: #fff; border-color: var(--olive-800); }
.btn-wa { background: #1f8f55; }
.btn-sm { padding: .7em 1.25em; font-size: .92rem; }
.btn-block { width: 100%; }
.btn[disabled] { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.cta-row { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.cta-row.center { justify-content: center; }
.link-gold { color: var(--gold); font-weight: 500; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.link-gold:hover { color: var(--olive); }

/* ---------- header ---------- */
.site-header { position: fixed; inset: 0 0 auto; z-index: 50; transition: background .4s, box-shadow .4s, transform .4s; color: var(--champ-200); }
.site-header.is-solid { background: rgba(35, 39, 26, .92); backdrop-filter: blur(12px); box-shadow: 0 10px 30px -20px rgba(0, 0, 0, .6); }
.hdr { display: flex; align-items: center; justify-content: space-between; height: var(--hdr); gap: 20px; }
.logo { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; }
.logo img { max-height: 48px; width: auto; }
.logo-mark { width: 42px; height: 42px; color: var(--gold-light); }
.logo-txt { display: flex; flex-direction: column; line-height: 1; }
.logo-txt b { font: 500 1.65rem/1 var(--ff-display); letter-spacing: .02em; }
.logo-txt small { font-size: .66rem; letter-spacing: .32em; text-transform: uppercase; color: var(--gold-light); margin-top: 4px; }
.nav { display: flex; align-items: center; gap: 26px; }
.nav a:not(.btn) { text-decoration: none; font-size: .94rem; letter-spacing: .03em; position: relative; padding: 6px 0; }
.nav a:not(.btn)::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--gold-light); transform: scaleX(0); transition: transform .35s var(--ease); }
.nav a:not(.btn):hover::after { transform: scaleX(1); }
.burger { display: none; width: 44px; height: 44px; border: 1px solid rgba(233, 220, 192, .4); background: transparent; border-radius: 50%; cursor: pointer; padding: 0; flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
.burger span { width: 18px; height: 1.5px; background: currentColor; transition: transform .3s, opacity .3s; }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
.page-inner .site-header { background: rgba(35, 39, 26, .96); }
.page-top { height: var(--hdr); background: var(--olive-900); }

/* ---------- bokeh (luzes animadas) ---------- */
.bokeh { position: absolute; inset: 0; overflow: hidden; contain: paint; pointer-events: none; z-index: 1; }
.bokeh i { position: absolute; bottom: -12%; width: var(--s, 90px); height: var(--s, 90px); border-radius: 50%; background: radial-gradient(circle, rgba(255, 238, 200, .5) 0, rgba(217, 191, 134, .16) 45%, transparent 68%); filter: blur(3px); opacity: 0; animation: float var(--t, 18s) linear infinite; animation-delay: var(--dl, 0s); mix-blend-mode: screen; }
.bokeh i:nth-child(1) { left: 6%; --s: 76px; --t: 19s; --dl: -2s; }
.bokeh i:nth-child(2) { left: 18%; --s: 46px; --t: 14s; --dl: -9s; }
.bokeh i:nth-child(3) { left: 29%; --s: 80px; --t: 22s; --dl: -5s; }
.bokeh i:nth-child(4) { left: 41%; --s: 30px; --t: 12s; --dl: -1s; }
.bokeh i:nth-child(5) { left: 52%; --s: 84px; --t: 25s; --dl: -14s; }
.bokeh i:nth-child(6) { left: 63%; --s: 54px; --t: 16s; --dl: -7s; }
.bokeh i:nth-child(7) { left: 72%; --s: 96px; --t: 21s; --dl: -11s; }
.bokeh i:nth-child(8) { left: 83%; --s: 38px; --t: 13s; --dl: -4s; }
.bokeh i:nth-child(9) { left: 91%; --s: 70px; --t: 18s; --dl: -12s; }
.bokeh i:nth-child(10) { left: 12%; --s: 24px; --t: 11s; --dl: -6s; }
.bokeh i:nth-child(11) { left: 58%; --s: 22px; --t: 10s; --dl: -3s; }
.bokeh i:nth-child(12) { left: 77%; --s: 92px; --t: 28s; --dl: -18s; }
.bokeh-soft i { background: radial-gradient(circle at 40% 40%, rgba(217, 191, 134, .35), rgba(217, 191, 134, .08) 55%, transparent 70%); }
@keyframes float {
  0% { transform: translate3d(0, 0, 0) scale(.8); opacity: 0; }
  12% { opacity: .55; }
  50% { transform: translate3d(24px, -55vh, 0) scale(1); }
  88% { opacity: .4; }
  100% { transform: translate3d(-18px, -110vh, 0) scale(1.1); opacity: 0; }
}

/* ---------- hero ---------- */
.hero { position: relative; min-height: 100vh; min-height: clamp(640px, 100svh, 980px); display: flex; flex-direction: column; justify-content: center; color: var(--champ-200); overflow: hidden; contain: paint; background: var(--olive-950); }
.hero-media { position: absolute; inset: -6% 0 0; z-index: 0; will-change: transform; }
.hero-img { width: 100%; height: 100%; object-fit: cover; animation: kenburns 24s ease-in-out infinite alternate; transform-origin: 50% 40%; }
@keyframes kenburns { from { transform: scale(1.04); } to { transform: scale(1.14) translate(-1.5%, 1%); } }
.hero-veil { position: absolute; inset: 0; z-index: 1; background: radial-gradient(ellipse at 30% 40%, rgba(28, 32, 21, .35), rgba(28, 32, 21, .78) 70%), linear-gradient(180deg, rgba(28, 32, 21, .55) 0%, rgba(28, 32, 21, .15) 35%, rgba(28, 32, 21, .85) 100%); }
.hero .bokeh { z-index: 2; }
.hero-inner { position: relative; z-index: 3; padding: calc(var(--hdr) + 30px) 0 130px; }
.rise { animation: rise 1.1s var(--ease) both; animation-delay: var(--d, 0ms); }
@keyframes rise { from { opacity: 0; transform: translateY(26px); } }
.hero-script { color: var(--gold-light); font-size: clamp(1.9rem, 3.2vw, 2.6rem); }
.hero-title { color: #fff; font-size: clamp(2.6rem, 5.4vw, 5rem); max-width: 17ch; font-weight: 400; }
.hero-title em { color: transparent; background: var(--gold-grad); -webkit-background-clip: text; background-clip: text; font-weight: 500; }
.hero-lead { font-size: clamp(1.05rem, 1.4vw, 1.22rem); max-width: 54ch; color: rgba(242, 233, 215, .88); margin: 0 0 34px; }
.hero-stats { position: absolute; z-index: 3; left: 0; right: 0; bottom: 0; border-top: 1px solid rgba(217, 191, 134, .25); background: linear-gradient(180deg, transparent, rgba(28, 32, 21, .55)); backdrop-filter: blur(4px); }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); }
.stats > div { padding: 22px 10px; text-align: center; border-left: 1px solid rgba(217, 191, 134, .18); }
.stats > div:first-child { border-left: 0; }
.stats b { display: block; font: 500 clamp(1.8rem, 3vw, 2.6rem)/1 var(--ff-display); color: var(--gold-light); }
.stats span { font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: rgba(242, 233, 215, .75); }

/* ---------- reveal ---------- */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--ease), transform .9s var(--ease); transition-delay: var(--d, 0ms); }
.reveal.is-in { opacity: 1; transform: none; }
.no-js .reveal { opacity: 1; transform: none; }

/* ---------- tipos de evento ---------- */
.tipo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.tipo-card { position: relative; display: block; aspect-ratio: 3/4.3; border-radius: var(--r); overflow: hidden; contain: paint; text-decoration: none; color: #fff; isolation: isolate; }
.tipo-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); z-index: -2; }
.tipo-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(28, 32, 21, 0) 30%, rgba(28, 32, 21, .92) 100%); }
.tipo-card:hover img { transform: scale(1.07); }
.tipo-body { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 24px; display: flex; flex-direction: column; gap: 6px; }
.tipo-ico { width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(217, 191, 134, .6); display: grid; place-items: center; color: var(--gold-light); margin-bottom: 6px; }
.tipo-body b { font: 500 2rem/1 var(--ff-display); }
.tipo-body small { font-size: .92rem; color: rgba(242, 233, 215, .82); line-height: 1.45; }
.tipo-body em { font-style: normal; white-space: nowrap; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-light); margin-top: 6px; }

/* ---------- sobre ---------- */
.sobre { background: var(--paper); }
.sobre-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(36px, 6vw, 90px); align-items: center; }
.sobre-fig { margin: 0; position: relative; }
.sobre-fig img { border-radius: 200px 200px var(--r) var(--r); aspect-ratio: 4/5; object-fit: cover; width: 100%; box-shadow: var(--shadow); }
.sobre-fig figcaption { position: absolute; right: -14px; bottom: 34px; background: var(--olive-900); color: var(--champ-200); padding: 16px 22px; border-radius: 14px; font-size: .86rem; letter-spacing: .04em; box-shadow: var(--shadow); max-width: 230px; }
.sobre-fig figcaption .script { display: block; font-size: 1.6rem; margin-bottom: 2px; }
.sobre-txt p { color: var(--muted); }
.feats { list-style: none; padding: 0; margin: 30px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 18px 26px; }
.feats li { display: flex; gap: 14px; align-items: flex-start; }
.feats .ico { color: var(--gold); margin-top: 3px; }
.feats b { display: block; font-weight: 500; color: var(--olive-900); }
.feats span { font-size: .93rem; color: var(--muted); line-height: 1.45; }

/* ---------- ambientes ---------- */
.ambientes { background: var(--ivory); }
.amb { display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(28px, 5vw, 70px); align-items: center; margin-bottom: clamp(60px, 8vw, 110px); }
.amb:last-child { margin-bottom: 0; }
.amb-rev .tour { order: 2; }
.tour { position: relative; border-radius: var(--r); overflow: hidden; contain: paint; aspect-ratio: 16/11; background: var(--olive-900); box-shadow: var(--shadow); }
.tour-track, .tour-slide { position: absolute; inset: 0; margin: 0; }
.tour-slide { opacity: 0; transition: opacity 1s var(--ease); }
.tour-slide.is-on { opacity: 1; }
.tour-slide img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 6s linear; }
.tour-slide.is-on img { transform: scale(1); }
.tour-btn { position: absolute; top: 50%; z-index: 3; width: 46px; height: 46px; margin-top: -23px; border-radius: 50%; border: 0; background: rgba(250, 247, 240, .88); color: var(--olive-900); display: grid; place-items: center; cursor: pointer; transition: transform .3s, background .3s; }
.tour-btn:hover { background: #fff; transform: scale(1.08); }
.tour-btn.prev { left: 14px; }
.tour-btn.next { right: 14px; }
.tour-dots { position: absolute; left: 0; right: 0; bottom: 14px; z-index: 3; display: flex; justify-content: center; gap: 7px; }
.tour-dots i { width: 7px; height: 7px; border-radius: 50%; background: rgba(255, 255, 255, .5); transition: width .3s, background .3s; }
.tour-dots i.on { width: 22px; border-radius: 4px; background: var(--gold-light); }
.amb-n { font: italic 500 1.2rem var(--ff-display); color: var(--gold); margin: 0 0 .2em; letter-spacing: .1em; }
.amb-body .display { font-size: clamp(2rem, 3.4vw, 2.9rem); }
.amb-call { color: var(--muted); font-size: 1.08rem; margin: -4px 0 22px; }
.specs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0 0 20px; }
.specs > div { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.specs dt { font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); display: flex; gap: 6px; align-items: center; }
.specs dt .ico { color: var(--gold); }
.specs dd { margin: 4px 0 0; font: 500 1.7rem/1 var(--ff-display); color: var(--olive-900); }
.specs dd small { font: 400 .8rem var(--ff-body); color: var(--muted); }
.tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 26px; padding: 0; }
.tags span { display: inline-flex; gap: 6px; align-items: center; font-size: .82rem; padding: 6px 12px; border-radius: 999px; background: var(--champ-200); color: var(--olive-800); }

/* ---------- pacotes ---------- */
.pacotes { background: var(--olive-900); color: var(--champ-200); overflow: hidden; contain: paint; }
.pacotes .display { color: #fff; }
.pacotes .display em { color: var(--gold-light); }
.pacotes .lead { color: rgba(242, 233, 215, .72); }
.pac-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.pac { position: relative; background: rgba(255, 255, 255, .035); border: 1px solid rgba(217, 191, 134, .2); border-radius: var(--r); padding: 30px 28px; display: flex; flex-direction: column; transition: transform .5s var(--ease), border-color .4s, background .4s, opacity .9s var(--ease); }
.pac:hover { transform: translateY(-6px); border-color: rgba(217, 191, 134, .55); background: rgba(255, 255, 255, .06); }
.pac.is-feat { background: linear-gradient(170deg, rgba(217, 191, 134, .16), rgba(255, 255, 255, .03) 55%); border-color: rgba(217, 191, 134, .6); }
.pac-seal { position: absolute; top: -12px; right: 22px; background: var(--gold-grad); color: var(--olive-950); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; padding: 6px 12px; border-radius: 999px; }
.pac-types { font-size: .74rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-light); margin: 0 0 8px; }
.pac .display { font-size: 2rem; margin-bottom: 10px; }
.pac-val { font: 500 2.3rem/1 var(--ff-display); color: #fff; margin: 0 0 10px; }
.pac-val small { font: 400 .82rem var(--ff-body); color: rgba(242, 233, 215, .65); }
.pac-meta { font-size: .86rem; color: rgba(242, 233, 215, .72); display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 14px; }
.pac-meta .ico { color: var(--gold-light); }
.pac-res { font-size: .95rem; color: rgba(242, 233, 215, .85); margin: 0 0 18px; }
.checks { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 9px; font-size: .92rem; }
.checks li { display: flex; gap: 10px; align-items: flex-start; line-height: 1.45; }
.checks .ico { color: var(--gold); margin-top: 3px; }
.checks.cols2 { grid-template-columns: 1fr 1fr; }
.pac .checks { flex: 1; color: rgba(242, 233, 215, .85); }
.pac .checks .ico { color: var(--gold-light); }
.pac .btn-ghost { border-color: rgba(217, 191, 134, .5); color: var(--champ-200); }
.pac .btn-ghost:hover { background: var(--gold-light); color: var(--olive-950); }

/* ---------- calculadora ---------- */
.calc { background: linear-gradient(180deg, var(--champ-200), var(--ivory)); overflow: hidden; contain: paint; }
.calc > .wrap { position: relative; z-index: 2; }
.calc-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 34px; align-items: start; }
.calc-steps { display: grid; gap: 18px; min-width: 0; }
.step { margin: 0; border: 1px solid var(--line); border-radius: var(--r); background: var(--paper); padding: 22px 24px 24px; min-width: 0; }
.step legend { float: left; width: 100%; padding: 0; margin: 0 0 16px; font: 500 1.45rem/1.2 var(--ff-display); color: var(--olive-900); display: flex; align-items: center; gap: 12px; }
.step legend small { font: 400 .85rem var(--ff-body); color: var(--muted); }
.step legend + * { clear: both; }
.step-n { width: 32px; height: 32px; border-radius: 50%; background: var(--olive-800); color: var(--gold-light); font: 500 .95rem/32px var(--ff-body); text-align: center; flex: none; }
.pills { display: flex; flex-wrap: wrap; gap: 10px; }
.pill input, .amb-opt input, .pac-opt input, .ext-opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pill span { display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 999px; border: 1px solid var(--line); cursor: pointer; transition: all .3s; font-size: .95rem; }
.pill span .ico { color: var(--gold); }
.pill input:checked + span { background: var(--olive-800); color: #fff; border-color: var(--olive-800); }
.pill input:checked + span .ico { color: var(--gold-light); }
.pill input:focus-visible + span, .amb-opt input:focus-visible + .amb-card, .pac-opt input:focus-visible + .pac-card, .ext-opt input:focus-visible ~ .ext-box { outline: 2px solid var(--gold); outline-offset: 2px; }
.amb-pick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.amb-card { display: flex; gap: 12px; align-items: center; border: 1px solid var(--line); border-radius: 14px; padding: 8px; cursor: pointer; transition: border-color .3s, box-shadow .3s, background .3s; height: 100%; }
.amb-thumb { width: 84px; height: 70px; object-fit: cover; border-radius: 10px; flex: none; }
.amb-info { display: flex; flex-direction: column; line-height: 1.3; min-width: 0; }
.amb-info b { font-weight: 500; color: var(--olive-900); }
.amb-info small { font-size: .8rem; color: var(--muted); }
.amb-info .gold, .gold { color: var(--gold); }
.amb-opt input:checked + .amb-card { border-color: var(--olive); background: rgba(93, 101, 52, .06); box-shadow: inset 0 0 0 1px var(--olive); }
.amb-opt.is-off .amb-card { opacity: .45; }

/* calendário */
.cal { max-width: 460px; }
.cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.cal-title { margin: 0; font: 500 1.35rem var(--ff-display); color: var(--olive-900); }
.cal-nav { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: transparent; cursor: pointer; display: grid; place-items: center; color: var(--olive-800); }
.cal-nav:hover:not([disabled]) { background: var(--olive-800); color: #fff; }
.cal-nav[disabled] { opacity: .3; cursor: default; }
.cal-dow, .cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.cal-dow span { text-align: center; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); padding: 4px 0; }
.cal-day { position: relative; aspect-ratio: 1; border: 1px solid transparent; border-radius: 10px; background: var(--ivory); cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: .95rem; padding: 0; transition: background .2s, border-color .2s, transform .2s; min-width: 0; }
.cal-day:hover:not([disabled]) { border-color: var(--olive-300); transform: translateY(-1px); }
.cal-day small { font-size: .58rem; line-height: 1; color: var(--gold); font-weight: 600; margin-top: 2px; }
.cal-day.is-sat { background: #f6ecd5; }
.cal-day.is-pre { background: repeating-linear-gradient(135deg, #f3e6c8 0 5px, #faf3e2 5px 10px); color: #7a5d1f; }
.cal-day.is-booked { background: #efe9e4; color: #b3a9a0; text-decoration: line-through; cursor: not-allowed; }
.cal-day.is-past { background: transparent; color: #c9c5b8; cursor: default; }
.cal-day.is-empty { visibility: hidden; }
.cal-day.is-sel { background: var(--olive-800); color: #fff; border-color: var(--olive-800); }
.cal-day.is-sel small { color: var(--gold-light); }
.cal-legend { list-style: none; padding: 0; margin: 14px 0 0; display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: .8rem; color: var(--muted); }
.cal-legend li { display: flex; align-items: center; gap: 6px; }
.lg { width: 14px; height: 14px; border-radius: 4px; display: inline-block; border: 1px solid var(--line); }
.lg-free { background: var(--ivory); }
.lg-sat { background: #f6ecd5; }
.lg-pre { background: repeating-linear-gradient(135deg, #e9d6a8 0 3px, #faf3e2 3px 6px); }
.lg-booked { background: #efe9e4; position: relative; }
.lg-booked::after { content: ""; position: absolute; left: 1px; right: 1px; top: 50%; height: 1px; background: #b3a9a0; }
.cal-msg { margin: 12px 0 0; font-size: .92rem; color: var(--olive-700); min-height: 1.4em; }
.cal-msg.is-warn { color: #8a6514; }
.cal-msg.is-err { color: var(--danger); }
.has-cal .cal-fallback { display: none; }

/* slider */
.range-wrap { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 4px 10px; }
.range-out { font: 500 3rem/1 var(--ff-display); color: var(--olive-900); }
.range-unit { color: var(--muted); }
.range { grid-column: 1 / -1; width: 100%; margin: 14px 0 4px; -webkit-appearance: none; appearance: none; height: 6px; border-radius: 6px; background: linear-gradient(90deg, var(--olive) var(--p, 30%), #e5dcc8 var(--p, 30%)); outline-offset: 6px; }
.range::-webkit-slider-thumb { -webkit-appearance: none; width: 28px; height: 28px; border-radius: 50%; background: var(--paper); border: 2px solid var(--gold); box-shadow: 0 4px 12px rgba(0, 0, 0, .18); cursor: grab; }
.range::-moz-range-thumb { width: 26px; height: 26px; border-radius: 50%; background: var(--paper); border: 2px solid var(--gold); cursor: grab; }
.range-hint { grid-column: 1 / -1; margin: 4px 0 0; font-size: .86rem; color: var(--muted); }

.pac-pick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pac-card { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; cursor: pointer; height: 100%; transition: border-color .3s, background .3s; }
.pac-card b { font-weight: 500; color: var(--olive-900); }
.pac-price { font: 500 1.5rem/1.1 var(--ff-display); color: var(--olive); }
.pac-price small { font: 400 .78rem var(--ff-body); color: var(--muted); }
.pac-card > small { font-size: .8rem; color: var(--muted); }
.pac-opt input:checked + .pac-card { border-color: var(--olive); box-shadow: inset 0 0 0 1px var(--olive); background: rgba(93, 101, 52, .06); }
.pac-opt[hidden] { display: none; }

.ext-pick { display: grid; gap: 10px; }
.ext-opt { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding: 12px 16px; border: 1px solid var(--line); border-radius: 14px; cursor: pointer; transition: border-color .3s, background .3s; position: relative; }
.ext-box { width: 22px; height: 22px; border-radius: 6px; border: 1.5px solid var(--olive-300); display: grid; place-items: center; color: transparent; transition: all .25s; }
.ext-opt input:checked ~ .ext-box { background: var(--olive-800); border-color: var(--olive-800); color: var(--gold-light); }
.ext-opt:has(input:checked) { border-color: var(--olive); background: rgba(93, 101, 52, .05); }
.ext-txt { display: flex; flex-direction: column; line-height: 1.35; min-width: 0; }
.ext-txt b { font-weight: 500; color: var(--olive-900); }
.ext-txt small { font-size: .82rem; color: var(--muted); }
.ext-price { text-align: right; font: 500 1.15rem/1.1 var(--ff-display); color: var(--olive); white-space: nowrap; }
.ext-price small { display: block; font: 400 .72rem var(--ff-body); color: var(--muted); }

.fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.field { display: flex; flex-direction: column; gap: 6px; font-size: .88rem; color: var(--muted); min-width: 0; }
.field.full { grid-column: 1 / -1; }
.field input, .field select, .field textarea { width: 100%; padding: 13px 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--ivory); color: var(--ink); font-size: 1rem; transition: border-color .25s, box-shadow .25s; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--olive); box-shadow: 0 0 0 3px rgba(93, 101, 52, .15); }
.field.is-err input { border-color: var(--danger); }
.ferr { color: var(--danger); font-size: .8rem; min-height: 0; }
.ferr:empty { display: none; }

.calc-sum { position: sticky; top: calc(var(--hdr) + 16px); }
.sum-card { background: var(--olive-900); color: var(--champ-200); border-radius: var(--r); padding: 28px 26px; box-shadow: var(--shadow); position: relative; overflow: hidden; }
.sum-card::before { content: ""; position: absolute; width: 260px; height: 260px; right: -110px; top: -120px; border-radius: 50%; background: radial-gradient(circle, rgba(217, 191, 134, .28), transparent 70%); pointer-events: none; }
.sum-eyebrow { font-size: .74rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-light); margin: 0 0 14px; }
.sum-eyebrow.mt { margin-top: 26px; }
.sum-lines { list-style: none; padding: 0; margin: 0 0 16px; display: grid; gap: 10px; font-size: .88rem; }
.sum-lines li { display: flex; justify-content: space-between; gap: 14px; color: rgba(242, 233, 215, .82); }
.sum-lines li b { font-weight: 500; color: #fff; white-space: nowrap; }
.sum-lines .muted { color: rgba(242, 233, 215, .6); }
.sum-total { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; border-top: 1px solid rgba(217, 191, 134, .3); padding-top: 16px; }
.sum-total span { font-size: .9rem; }
.sum-total strong { font: 500 2.4rem/1 var(--ff-display); color: transparent; background: var(--gold-grad); -webkit-background-clip: text; background-clip: text; transition: transform .3s; }
.sum-total strong.bump { animation: bump .45s var(--ease); }
@keyframes bump { 40% { transform: scale(1.06); } }
.sum-per { display: flex; justify-content: space-between; font-size: .9rem; color: rgba(242, 233, 215, .7); margin: 6px 0 20px; }
.sum-per b { color: var(--champ-200); font-weight: 500; }
.sum-warn { background: rgba(217, 191, 134, .14); border: 1px solid rgba(217, 191, 134, .35); border-radius: 10px; padding: 10px 12px; font-size: .85rem; margin: 0 0 16px; color: var(--champ-200); }
.sum-note { font-size: .78rem; color: rgba(242, 233, 215, .6); margin: 14px 0 0; line-height: 1.5; }
.sum-card .btn-line { margin-top: 10px; }
.alert { padding: 14px 18px; border-radius: 12px; font-size: .95rem; }
.alert.err { background: #f7e4de; color: #7c2f1d; border: 1px solid #e8c1b5; }
.calc-done, .form-done { max-width: 620px; margin: 0 auto; text-align: center; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); padding: 44px 32px; box-shadow: var(--shadow); }
.form-done { box-shadow: none; }
.done-ico { width: 68px; height: 68px; border-radius: 50%; background: var(--olive-800); color: var(--gold-light); display: inline-grid; place-items: center; margin-bottom: 14px; }
.done-total b { font: 500 1.6rem var(--ff-display); color: var(--olive); }
.calc-done[hidden] { display: none; }

/* ---------- cardápios ---------- */
.cardapios { background: var(--paper); }
.tab-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 34px; }
.tab-list button { border: 1px solid var(--line); background: transparent; padding: 10px 18px; border-radius: 999px; cursor: pointer; font-size: .92rem; transition: all .3s; }
.tab-list button[aria-selected="true"] { background: var(--olive-800); color: #fff; border-color: var(--olive-800); }
.menu-panel { border: 1px solid rgba(176, 138, 62, .35); border-radius: var(--r); padding: clamp(28px, 4vw, 48px); background: var(--ivory) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cpath d='M60 20v80M60 45c-10-2-17-10-18-20 10 1 17 9 18 20Zm0 20c10-2 17-10 18-20-10 1-17 9-18 20Z' fill='none' stroke='%23b08a3e' stroke-opacity='.08' stroke-width='1.2'/%3E%3C/svg%3E"); animation: fadeUp .6s var(--ease); }
@keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } }
.menu-name { font: italic 500 2.1rem var(--ff-display); color: var(--olive-900); text-align: center; margin: 0 0 28px; }
.menu-cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.menu-col h4 { font-size: .76rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); margin: 0 0 12px; padding-bottom: 10px; border-bottom: 1px solid rgba(176, 138, 62, .3); }
.menu-col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.menu-col li { font: 400 1.18rem/1.3 var(--ff-display); color: var(--ink); }
.menu-note { text-align: center; margin: 30px 0 0; color: var(--muted); font-size: .92rem; display: flex; gap: 8px; justify-content: center; align-items: center; }
.menu-note .ico { color: var(--gold); }

/* ---------- galeria ---------- */
.gal-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; }
.gal-head .display { margin: 0; }
.gal-filter { display: flex; flex-wrap: wrap; gap: 8px; }
.gal-filter button { border: 1px solid var(--line); background: transparent; padding: 8px 16px; border-radius: 999px; cursor: pointer; font-size: .88rem; }
.gal-filter button.is-on { background: var(--olive-800); color: #fff; border-color: var(--olive-800); }
.gal-grid { columns: 4 260px; column-gap: 14px; }
.gal-item { break-inside: avoid; margin: 0 0 14px; position: relative; border-radius: 14px; overflow: hidden; contain: paint; }
.gal-item img { width: 100%; transition: transform 1s var(--ease); }
.gal-item a { display: block; }
.gal-item:hover img { transform: scale(1.05); }
.gal-item figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 14px 12px; font-size: .85rem; color: #fff; background: linear-gradient(transparent, rgba(28, 32, 21, .85)); opacity: 0; transform: translateY(8px); transition: all .4s var(--ease); pointer-events: none; }
.gal-item:hover figcaption, .gal-item:focus-within figcaption { opacity: 1; transform: none; }
.gal-item.is-hidden { display: none; }
.lightbox { position: fixed; inset: 0; z-index: 90; background: rgba(20, 22, 15, .94); display: flex; align-items: center; justify-content: center; padding: 30px; opacity: 0; transition: opacity .3s; }
.lightbox.is-open { opacity: 1; }
.lightbox img { max-height: 86vh; max-width: 100%; width: auto; border-radius: 10px; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); }
.lightbox p { position: absolute; bottom: 20px; left: 0; right: 0; text-align: center; color: var(--champ-200); font-size: .95rem; margin: 0; padding: 0 70px; }
.lb-btn { position: absolute; width: 50px; height: 50px; border-radius: 50%; border: 1px solid rgba(217, 191, 134, .4); background: rgba(255, 255, 255, .05); color: #fff; display: grid; place-items: center; cursor: pointer; }
.lb-close { top: 20px; right: 20px; }
.lb-prev { left: 20px; top: 50%; margin-top: -25px; }
.lb-next { right: 20px; top: 50%; margin-top: -25px; }

/* ---------- depoimentos ---------- */
.deps { background: var(--olive-800); color: var(--champ-200); overflow: hidden; contain: paint; }
.deps .wrap { position: relative; z-index: 2; }
.deps .display { color: #fff; }
.deps .display em { color: var(--gold-light); }
.dep-slider { display: grid; margin-top: 26px; }
.dep { grid-area: 1 / 1; margin: 0; opacity: 0; transform: translateY(14px); transition: opacity .8s var(--ease), transform .8s var(--ease); pointer-events: none; }
.dep.is-on { opacity: 1; transform: none; pointer-events: auto; }
.stars { color: var(--gold-light); display: flex; gap: 4px; justify-content: center; margin: 0 0 14px; }
.star { fill: currentColor; }
.dep-txt { font: italic 400 clamp(1.4rem, 2.6vw, 2rem)/1.4 var(--ff-display); color: #fff; margin: 0 0 22px; }
.dep footer b { display: block; font-weight: 500; }
.dep footer span { font-size: .85rem; color: var(--gold-light); letter-spacing: .06em; }
.dep-nav { grid-area: 2 / 1; display: flex; justify-content: center; align-items: center; gap: 18px; margin-top: 30px; }
.dep-nav button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(217, 191, 134, .45); background: transparent; color: var(--champ-200); cursor: pointer; display: grid; place-items: center; }
.dep-nav button:hover { background: var(--gold-light); color: var(--olive-950); }
.dep-dots { display: flex; gap: 7px; }
.dep-dots i { width: 7px; height: 7px; border-radius: 50%; background: rgba(242, 233, 215, .35); transition: all .3s; }
.dep-dots i.on { background: var(--gold-light); width: 22px; border-radius: 4px; }

/* ---------- FAQ ---------- */
.faq-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(30px, 6vw, 80px); align-items: start; }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { list-style: none; cursor: pointer; padding: 22px 0; display: flex; justify-content: space-between; gap: 20px; font: 500 1.35rem/1.3 var(--ff-display); color: var(--olive-900); }
.faq-list summary::-webkit-details-marker { display: none; }
.plus { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; flex: none; transition: transform .35s var(--ease), background .3s; color: var(--gold); }
details[open] .plus { transform: rotate(45deg); background: var(--olive-800); color: var(--gold-light); }
.faq-list details p { margin: -6px 0 22px; color: var(--muted); max-width: 64ch; }

/* ---------- visita ---------- */
.visita { background: var(--paper); }
.visita-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 70px); align-items: start; }
.contact-list { list-style: none; padding: 0; margin: 26px 0; display: grid; gap: 16px; }
.contact-list li { display: flex; gap: 14px; align-items: flex-start; color: var(--muted); }
.contact-list .ico { color: var(--gold); margin-top: 3px; }
.contact-list a { color: var(--olive-800); }
.map { width: 100%; height: 240px; border: 0; border-radius: var(--r); filter: sepia(.25) saturate(.8); }
.visita-form { background: var(--ivory); border: 1px solid var(--line); border-radius: var(--r); padding: clamp(24px, 4vw, 40px); }
.visita-form .btn { margin-top: 18px; }

/* ---------- páginas internas: ambiente ---------- */
.amb-hero .tour-big { aspect-ratio: auto; height: min(86vh, 760px); min-height: 520px; border-radius: 0; box-shadow: none; }
.amb-hero .hero-veil { z-index: 2; background: linear-gradient(180deg, rgba(28, 32, 21, .65) 0%, rgba(28, 32, 21, .05) 35%, rgba(28, 32, 21, .85) 100%); pointer-events: none; }
.amb-hero-txt { position: absolute; left: 0; right: 0; bottom: 56px; z-index: 3; color: var(--champ-200); }
.amb-hero-txt .display { color: #fff; font-size: clamp(2.6rem, 6vw, 5rem); }
.amb-hero-txt .hero-lead { margin: 0; }
.crumbs { font-size: .85rem; color: rgba(242, 233, 215, .75); margin-bottom: 14px; }
.crumbs a { color: var(--gold-light); text-decoration: none; }
.amb-hero .tour-dots { bottom: 22px; }
.amb-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(30px, 5vw, 70px); align-items: start; }
.rich { color: var(--muted); font-size: 1.05rem; }
.rich strong { color: var(--olive-900); font-weight: 500; }
.rich ul { padding-left: 1.1em; }
.rich li::marker { color: var(--gold); }
.specs-lg { margin-bottom: 30px; }
.thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 30px; }
.thumbs a { border-radius: 10px; overflow: hidden; display: block; aspect-ratio: 4/3; }
.thumbs img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.thumbs a:hover img { transform: scale(1.06); }
.amb-aside { position: sticky; top: calc(var(--hdr) + 16px); }
.aside-price { font: 500 2.6rem/1 var(--ff-display); color: #fff; margin: 0 0 8px; }
.amb-aside .sum-note { margin: 0 0 20px; }
.amb-aside .btn + .btn { margin-top: 10px; }
.busy { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; font-size: .88rem; }
.busy li { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px dashed rgba(217, 191, 134, .25); padding-bottom: 8px; }
.busy em { font-style: normal; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: #e5b9a8; }
.busy em.is-pre { color: var(--gold-light); }
.amb-others { background: var(--champ-200); }
.others { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 30px; }
.other { position: relative; display: block; border-radius: var(--r); overflow: hidden; contain: paint; aspect-ratio: 4/3; color: #fff; text-decoration: none; }
.other img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.other:hover img { transform: scale(1.06); }
.other span { position: absolute; inset: auto 0 0; padding: 40px 20px 18px; background: linear-gradient(transparent, rgba(28, 32, 21, .88)); display: flex; flex-direction: column; }
.other b { font: 500 1.6rem/1.1 var(--ff-display); }
.other small { color: var(--gold-light); font-size: .82rem; }
.page-calc .calc { padding-top: 70px; }
.notfound { padding-top: calc(var(--hdr) + 100px); }

/* ---------- footer ---------- */
.site-footer { background: var(--olive-950); color: rgba(242, 233, 215, .75); font-size: .93rem; }
.footer-cta { position: relative; overflow: hidden; contain: paint; text-align: center; padding: 90px 0; background: radial-gradient(ellipse at 50% 120%, rgba(176, 138, 62, .35), transparent 60%), var(--olive-900); }
.footer-cta .wrap { position: relative; z-index: 2; }
.footer-cta .display { color: #fff; }
.footer-cta .display em { color: var(--gold-light); }
.footer-cta .cta-row { justify-content: center; margin-top: 26px; }
.footer-cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding: 70px 0 40px; }
.f-logo { font: 500 2.2rem/1 var(--ff-display); color: var(--champ-200); margin: 0 0 12px; }
.site-footer h3 { font-size: .75rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gold-light); margin: 0 0 16px; font-weight: 500; }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.site-footer a { text-decoration: none; }
.site-footer a:hover { color: var(--gold-light); }
.f-social { display: flex; gap: 10px; }
.f-social a { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(217, 191, 134, .3); display: grid; place-items: center; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; border-top: 1px solid rgba(217, 191, 134, .15); padding: 22px 0 90px; font-size: .82rem; }
.footer-bottom p { margin: 0; }
.footer-bottom a { color: var(--gold-light); }

.wa-float { position: fixed; right: 20px; bottom: 20px; z-index: 40; width: 58px; height: 58px; border-radius: 50%; background: #1f8f55; color: #fff; display: grid; place-items: center; box-shadow: 0 14px 30px -10px rgba(0, 0, 0, .45); transition: transform .3s; }
.wa-float:hover { transform: scale(1.08); }

/* SELO DEMO: remover na entrega */
.demo-seal { position: fixed; left: 16px; bottom: 16px; z-index: 45; display: flex; align-items: center; gap: 4px; background: rgba(28, 32, 21, .92); color: var(--champ-200); border: 1px solid rgba(217, 191, 134, .35); border-radius: 999px; padding: 6px 6px 6px 14px; font-size: .74rem; letter-spacing: .03em; backdrop-filter: blur(8px); box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .5); }
.demo-seal a { text-decoration: none; }
.demo-seal b { color: var(--gold-light); font-weight: 500; }
.demo-seal button { width: 22px; height: 22px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .1); color: inherit; cursor: pointer; line-height: 1; padding: 0; }

/* ---------- responsivo ---------- */
@media (max-width: 1100px) {
  .nav { gap: 18px; }
  .nav a:not(.btn) { font-size: .88rem; }
  .calc-grid { grid-template-columns: minmax(0, 1fr) 330px; }
  .pac-grid { grid-template-columns: repeat(2, 1fr); }
  .menu-cols { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 960px) {
  :root { --hdr: 70px; }
  .burger { display: flex; color: var(--champ-200); }
  .nav { position: fixed; inset: var(--hdr) 0 auto; flex-direction: column; align-items: stretch; gap: 0; padding: 10px 24px 26px; background: rgba(28, 32, 21, .98); transform: translateY(-12px); opacity: 0; visibility: hidden; transition: all .35s var(--ease); max-height: calc(100vh - var(--hdr)); overflow-y: auto; }
  .nav.is-open { transform: none; opacity: 1; visibility: visible; }
  .nav a:not(.btn) { padding: 14px 0; border-bottom: 1px solid rgba(217, 191, 134, .15); font-size: 1.05rem; }
  .nav-cta { margin-top: 18px; }
  .site-header.menu-open { background: rgba(28, 32, 21, .98); }
  .tipo-grid { grid-template-columns: repeat(2, 1fr); }
  .sobre-grid, .amb, .faq-grid, .visita-grid, .amb-detail-grid { grid-template-columns: 1fr; }
  .amb-rev .tour { order: 0; }
  .sobre-fig { max-width: 520px; }
  .calc-grid { grid-template-columns: 1fr; }
  .calc-sum, .amb-aside { position: static; }
  .footer-cols { grid-template-columns: 1fr 1fr; }
  .others { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  .wrap, .narrow { width: calc(100% - 36px); }
  .logo-txt b { font-size: 1.4rem; }
  .logo-mark { width: 36px; height: 36px; }
  .hero-inner { padding-bottom: 190px; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .stats > div { padding: 12px 6px; }
  .stats span { font-size: .64rem; letter-spacing: .08em; }
  .stats b { font-size: 1.7rem; }
  .stats > div:nth-child(3) { border-left: 0; }
  .stats > div:nth-child(n+3) { border-top: 1px solid rgba(217, 191, 134, .18); }
  .tipo-grid { grid-template-columns: 1fr; }
  .tipo-card { aspect-ratio: 4/3.3; }
  .feats { grid-template-columns: 1fr; }
  .sobre-fig figcaption { right: 10px; }
  .specs { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .specs > div { padding: 10px; }
  .specs dd { font-size: 1.4rem; }
  .specs dt { font-size: .66rem; letter-spacing: .04em; }
  .pac-grid { grid-template-columns: 1fr; }
  .step { padding: 18px 16px 20px; }
  .step legend { font-size: 1.3rem; }
  .amb-pick, .pac-pick { grid-template-columns: 1fr; }
  .ext-opt { grid-template-columns: auto 1fr; padding: 12px 14px; }
  .ext-price { grid-column: 2; text-align: left; }
  .ext-price small { display: inline; margin-left: 4px; }
  .fields { grid-template-columns: 1fr; }
  .menu-cols { grid-template-columns: 1fr; gap: 22px; }
  .gal-grid { columns: 2 140px; column-gap: 10px; }
  .gal-item { margin-bottom: 10px; }
  .faq-list summary { font-size: 1.2rem; }
  .footer-cols { grid-template-columns: 1fr; gap: 30px; }
  .others { grid-template-columns: 1fr; }
  .thumbs { grid-template-columns: repeat(3, 1fr); }
  .checks.cols2 { grid-template-columns: 1fr; }
  .amb-hero .tour-big { min-height: 560px; height: 78vh; }
  .tour-btn { width: 40px; height: 40px; margin-top: -20px; }
  .lb-prev, .lb-next { top: auto; bottom: 60px; }
  .wa-float { width: 52px; height: 52px; right: 14px; bottom: 14px; }
  .demo-seal { left: 10px; bottom: 14px; font-size: .68rem; }
}

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