.consumer-tour { background: var(--paper); }
.consumer-tour__heading { display: grid; grid-template-columns: 1.1fr .65fr; gap: 4rem; align-items: end; margin-bottom: 3rem; }
.consumer-tour__heading h2 { max-width: 15ch; }
.consumer-tour__heading h2 em { color: #7b6752; }
.consumer-tour__heading > p { max-width: 31rem; margin: 0; color: var(--muted); line-height: 1.55; }
.consumer-tour__frame { width: min(100%, 960px); margin-inline: auto; background: #171714; aspect-ratio: 16 / 9; overflow: hidden; }
.consumer-tour__start { position: relative; width: 100%; height: 100%; padding: 0; color: var(--ivory); background: #171714; border: 0; cursor: pointer; overflow: hidden; }
.consumer-tour__start::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(15,15,13,.72)); }
.consumer-tour__start img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.consumer-tour__start:hover img { transform: scale(1.025); }
.consumer-tour__start > span { position: absolute; z-index: 1; right: clamp(1.25rem,4vw,3rem); bottom: clamp(1.25rem,4vw,3rem); left: clamp(1.25rem,4vw,3rem); display: flex; justify-content: space-between; gap: 2rem; align-items: end; text-align: left; }
.consumer-tour__start b { max-width: 15ch; font-family: "Times New Roman", Times, serif; font-size: clamp(1.8rem,3vw,3rem); font-weight: 400; line-height: 1; }
.consumer-tour__start small { max-width: 16ch; color: #d7d1c8; font-size: .62rem; line-height: 1.4; text-align: right; text-transform: uppercase; letter-spacing: .08em; }
.consumer-tour__frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.consumer-tour__bar { width: min(100%,960px); display: flex; justify-content: space-between; gap: 2rem; margin-inline: auto; padding-top: .8rem; color: var(--muted); font-size: .68rem; }
.consumer-tour__bar[hidden] { display: none; }
.consumer-tour__bar a { color: var(--ink); font-weight: 700; text-decoration: none; text-transform: uppercase; }

.consumer-calculator { --calc-sand:#b99873; --calc-cream:#f4eee5; --calc-caramel:#80664d; --calc-charcoal:#201e1a; color: var(--ink); background: #d8cbbb; }
.consumer-calculator__heading { display: grid; grid-template-columns: 1.15fr .65fr; gap: 4rem; align-items: end; }
.consumer-calculator__heading h2 { max-width: 13ch; }
.consumer-calculator__heading h2 em { color: #765e47; }
.consumer-calculator__heading > p { max-width: 28rem; margin: 0; color: #665d54; line-height: 1.55; }
.consumer-calculator__body { display: grid; grid-template-columns: 1.25fr .75fr; gap: 1px; margin-top: 4rem; background: rgba(217,196,165,.28); border: 1px solid rgba(217,196,165,.28); }
.consumer-calculator__choices { padding: clamp(1.5rem,4vw,4rem); color: #f7f3ec; background: var(--calc-charcoal); }
.consumer-calculator fieldset { margin: 0; padding: 0; border: 0; }
.consumer-calculator legend { width: 100%; margin-bottom: 1.5rem; padding-bottom: .8rem; color: #bdb3a6; border-bottom: 1px solid rgba(217,196,165,.24); font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.consumer-calculator__planrow { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(217,196,165,.25); }
.consumer-calculator__plans label { position: relative; cursor: pointer; }
.consumer-calculator__plans input { position: absolute; opacity: 0; }
.consumer-calculator__plans span { display: grid; min-height: 8.5rem; align-content: space-between; padding: 1.25rem; color: #c9c0b5; background: #23211d; border: 1px solid transparent; transition: color .2s, background .2s, border-color .2s; }
.consumer-calculator__plans strong { font-family: "Times New Roman", Times, serif; font-size: 1.55rem; font-weight: 400; }
.consumer-calculator__plans small { font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; }
.consumer-calculator__plans input:checked + span { color: #fffaf3; background: #80664d; border-color: #9b7d5e; }
.consumer-calculator__plans input:focus-visible + span { outline: 2px solid var(--ivory); outline-offset: 2px; }
.consumer-calculator__rooms { margin-top: 3rem !important; }
.consumer-calculator__result { display: flex; flex-direction: column; padding: clamp(1.5rem,4vw,4rem); color: var(--calc-charcoal); background: #f4eee5; border-left: 1px solid rgba(86,69,51,.18); }
.consumer-calculator__summary { min-height: 4rem; margin: 1rem 0 2rem; font-family: "Times New Roman", Times, serif; font-size: clamp(1.5rem,2.2vw,2.3rem); line-height: 1.15; }
.consumer-calculator__result dl { margin: 0; border-top: 1px solid rgba(20,20,18,.25); }
.consumer-calculator__result dl div { display: flex; justify-content: space-between; gap: 2rem; padding: 1rem 0; border-bottom: 1px solid rgba(20,20,18,.25); font-size: .78rem; }
.consumer-calculator__result dl div[hidden] { display: none; }
.consumer-calculator__result dd { margin: 0; font-weight: 700; }
.consumer-calculator__total { display: grid; gap: .6rem; margin-top: auto; padding-top: 3rem; }
.consumer-calculator__total span { font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.consumer-calculator__total strong { font-family: "Times New Roman", Times, serif; font-size: clamp(3rem,5vw,5.6rem); font-weight: 400; line-height: .9; letter-spacing: -.05em; }
.consumer-calculator__explain { max-width: 31rem; margin: 1.5rem 0; font-size: .76rem; line-height: 1.5; }
.consumer-calculator__result .button { justify-content: space-between; }
.consumer-calculator__result .is-disabled { pointer-events: none; opacity: .45; }
.consumer-calculator__result > small { margin-top: .85rem; font-size: .62rem; line-height: 1.4; }


/* etapa 02 · ambientes nomeados */
.roomgroup__intro { margin: 0 0 .5rem; color: #bdb3a6; font-size: .82rem; line-height: 1.5; }
.roomgroup { margin-top: 2.25rem; }
.roomgroup__title { margin: 0; font-family: "Times New Roman", Times, serif; font-size: 1.3rem; }
.roomgroup__desc { margin: .3rem 0 0; color: #9c9287; font-size: .72rem; line-height: 1.45; }
.roomgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin-top: 1.1rem; background: rgba(217,196,165,.22); border: 1px solid rgba(217,196,165,.22); }
.roomgroup[data-group="outro"] .roomgrid { grid-template-columns: 1fr; }
.roomcard { display: grid; gap: .6rem; align-content: start; padding: 1.15rem 1.25rem; background: #23211d; transition: background .2s; }
.roomcard.is-active { background: #80664d; }
.roomcard__pick { display: flex; gap: .7rem; align-items: center; cursor: pointer; }
.roomcard__pick input { flex: none; width: 1.05rem; height: 1.05rem; margin: 0; appearance: none; -webkit-appearance: none; background: transparent; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; cursor: pointer; transition: background .2s, border-color .2s, box-shadow .2s; }
.roomcard.is-active .roomcard__pick input { background: #fffaf3; border-color: #fffaf3; box-shadow: inset 0 0 0 3px #80664d; }
.roomcard__pick input:focus-visible { outline: 2px solid var(--ivory); outline-offset: 2px; }
.roomcard__pick span { font-family: "Times New Roman", Times, serif; font-size: 1.18rem; line-height: 1.15; }
.roomcard__meta { display: flex; gap: .55rem; align-items: baseline; flex-wrap: wrap; padding-left: 1.75rem; }
.roomcard__price { color: #c3b6a6; font-size: .76rem; font-weight: 700; }
.roomcard.is-active .roomcard__price { color: #fffaf3; }
.roomcard__tag { color: #94897d; font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; }
.roomcard.is-active .roomcard__tag { color: #f0e4d5; }
.roomcard__note { margin: 0; padding-left: 1.75rem; color: #a2988c; font-size: .68rem; line-height: 1.45; }
.roomcard.is-active .roomcard__note { color: #f2e7d9; }
.roomcard__qty { display: grid; grid-template-columns: 2.2rem 2.2rem 2.2rem; align-items: center; margin-left: 1.75rem; text-align: center; }
.roomcard__qty[hidden] { display: none; }
.roomcard__qty button { width: 2.2rem; height: 2.2rem; color: var(--ivory); background: transparent; border: 1px solid rgba(255,255,255,.32); border-radius: 50%; cursor: pointer; font-size: 1.05rem; }
.roomcard__qty button:hover { color: #201e1a; background: #f4eee5; border-color: #f4eee5; }
.roomcard__qty output { font-family: "Times New Roman", Times, serif; font-size: 1.4rem; }
.consumer-calculator__check { margin: -.75rem 0 1.5rem; color: #6d6259; font-size: .72rem; line-height: 1.5; }
.consumer-calculator__check[hidden] { display: none; }

@media (max-width: 980px) {
  .consumer-tour__heading, .consumer-calculator__heading, .consumer-calculator__body { grid-template-columns: 1fr; }
  .consumer-tour__heading, .consumer-calculator__heading { gap: 1.5rem; }
  .consumer-calculator__total { margin-top: 2rem; }
}

@media (max-width: 700px) {
  .consumer-tour__frame { width: 100%; aspect-ratio: 4 / 5; }
  .consumer-tour__start > span { flex-direction: column; align-items: start; }
  .consumer-tour__start small { text-align: left; }
  .consumer-tour__bar { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .consumer-calculator__planrow { grid-template-columns: 1fr; }
  .consumer-calculator__plans span { min-height: 5.5rem; }
  .roomgrid { grid-template-columns: 1fr; }
}
