:root {
  --font: 'Manrope', 'Aptos', Arial, sans-serif;
  --display: 'Cormorant Garamond', 'Bodoni MT', Didot, Georgia, serif;
}

body { font-family: var(--font); letter-spacing: -.01em; }
h1, h2, .summary-card h3 { font-family: var(--display); font-weight: 600; letter-spacing: -.035em; }
.hero-copy h1 { max-width: 12ch; font-size: clamp(54px, 5.6vw, 78px); line-height: .98; }
.hero-overline { letter-spacing: .22em; }
.hero-lede { max-width: 480px; font-size: 16px; line-height: 1.65; }

/* A escolha dos serviços faz parte do primeiro contato, em vez de ficar abaixo da dobra. */
.hero-copy { width: 66%; padding-bottom: 70px; }
.hero-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-width: 760px; margin-top: 27px; }
.hero-service-card { position: relative; min-width: 0; min-height: 202px; padding: 10px 10px 13px; display: flex; flex-direction: column; align-items: stretch; text-align: left; overflow: hidden; border: 1px solid #e9c86a66; border-radius: 15px; color: var(--white); background: linear-gradient(145deg, #122e43ed, #071c2eeF); box-shadow: inset 0 1px 0 #ffffff1d, 0 7px 0 #020d17, 0 12px 24px #0006; transform: perspective(800px) rotateX(1deg); transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.hero-service-card:hover, .hero-service-card:focus-visible { transform: perspective(800px) translateY(-4px) rotateX(0); border-color: var(--gold); box-shadow: inset 0 1px 0 #ffffff2e, 0 10px 0 #020d17, 0 18px 30px #0008; }
.hero-service-object { height: 115px; width: 100%; display: grid; place-items: center; overflow: hidden; border: 1px solid #d9bd755c; border-radius: 10px; background: radial-gradient(ellipse at 50% 38%, #fffdf7 0, #f1ebdb 74%, #d8c9a7 100%); box-shadow: inset 0 2px 6px #fff, 0 4px 0 #6b5735; }
.hero-service-object img { display: block; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 7px 6px #0b152333); transition: transform .25s ease; }
.hero-service-card:hover .hero-service-object img { transform: scale(1.06) rotate(-1deg); }
.hero-service-copy { display: block; padding: 11px 21px 0 1px; }
.hero-service-copy strong { display: block; font-family: var(--font); font-size: 13px; line-height: 1.35; font-weight: 800; letter-spacing: -.025em; }
.hero-service-copy small { display: block; margin-top: 4px; color: #c7d1da; font-size: 10px; line-height: 1.35; }
.hero-service-arrow { position: absolute; right: 9px; bottom: 10px; width: 23px; height: 23px; display: grid; place-items: center; border: 1px solid #f4ca6280; border-radius: 50%; color: var(--gold); font-size: 14px; }
.home-hero { min-height: min(900px, calc(100svh - 86px)) !important; max-width: 1680px; margin-inline: auto; }
.hero-copy { width: min(940px, 72%) !important; max-width: none; margin: 0; padding: clamp(34px, 5.2vw, 76px) 24px 80px max(24px, calc((100vw - 1320px) / 2)) !important; }
.hero-copy h1 { max-width: 10ch; font-size: clamp(62px, 7.4vw, 108px); line-height: .91; }
.hero-lede { max-width: 39ch; font-size: clamp(16px, 1.35vw, 19px); }
.hero-visual { display: block !important; position: absolute; inset: 0 0 0 auto; width: 67%; z-index: 0; pointer-events: none; overflow: hidden; }
.hero-photo { position: absolute; inset: 0; background-image: url('assets/photos/hero-novo-hamburgo.png'); background-size: cover; background-position: 58% 48%; }
.hero-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, var(--navy) 0%, rgba(6,26,42,.94) 10%, rgba(6,26,42,.66) 34%, rgba(6,26,42,.05) 73%), linear-gradient(0deg, var(--navy) 0%, transparent 23%, transparent 78%, rgba(6,26,42,.24) 100%); }
.hero-photo-glow { position:absolute; inset:auto 0 0; height:35%; background:linear-gradient(0deg,var(--navy),transparent); }
.hero-service-grid { max-width: 790px; gap: 14px; margin-top: 32px; }
.hero-service-card { min-height: 216px; padding: 11px 11px 14px; backdrop-filter: blur(12px); background: linear-gradient(145deg,rgba(14,39,58,.93),rgba(5,20,33,.89)); }
.hero-service-object { height: 126px; }
.hero-service-copy strong { font-size: 14px; }
.hero-service-copy small { font-size: 11px; }
.hero-assurance { display: none; }

/* Os cards de orçamento usam uma só imagem 3D por escolha e tipografia sem sobreposição. */
.choice-intro { margin: -8px 0 15px; color: #c3ced8; font-size: 13px; line-height: 1.6; }
.service-choices { display: grid !important; grid-template-columns: 1fr !important; gap: 12px !important; }
.service-choice, .service-choice.is-selected {
  display: grid !important;
  grid-template-columns: 166px minmax(0, 1fr) 28px !important;
  align-items: center !important;
  column-gap: 19px !important;
  min-height: 145px !important;
  padding: 12px !important;
  border: 1px solid #e6c66b66 !important;
  border-radius: 17px !important;
  background: linear-gradient(112deg, #102b40, #0b2134) !important;
  background-image: none !important;
  box-shadow: inset 0 1px 0 #ffffff1a, 0 6px 0 #020e19, 0 13px 25px #0005 !important;
  transform: perspective(900px) rotateX(.7deg) !important;
}
.service-choice:hover, .service-choice:focus-visible { transform: perspective(900px) translateY(-3px) rotateX(0) !important; border-color: var(--gold) !important; }
.service-choice.is-selected { border: 2px solid var(--gold) !important; padding: 11px !important; }
.service-choice:before { content: none !important; }
.choice-object { grid-column: 1 !important; grid-row: 1 !important; width: 100%; height: 118px; display: grid; place-items: center; overflow: hidden; border: 1px solid #f0d88d; border-radius: 12px; background: radial-gradient(ellipse at 50% 40%, #fffef9 0, #f3eddf 74%, #d9c9a4 100%); box-shadow: inset 0 2px 0 #fff, 0 4px 0 #8d7444, 0 9px 16px #0004; }
.choice-object img { display: block; width: 100%; height: 100%; object-fit: contain; padding: 5px; filter: drop-shadow(0 5px 4px #07121d2c); transition: transform .28s ease; }
.service-choice:hover .choice-object img { transform: scale(1.07) rotate(-1deg); }
.choice-copy { grid-column: 2 !important; grid-row: 1 !important; min-width: 0; }
.choice-copy strong { color: #fffdf7 !important; font-family: var(--font); font-size: 18px !important; line-height: 1.35 !important; font-weight: 800 !important; letter-spacing: -.035em; text-shadow: none !important; }
.choice-copy small { display: block; margin-top: 7px !important; color: #c5d1db !important; font-family: var(--font); font-size: 13px !important; line-height: 1.55 !important; text-shadow: none !important; }
.choice-depth { grid-column: 3 !important; grid-row: 1 !important; position: static !important; align-self: center; color: var(--gold); }
.choice-depth svg { width: 22px; height: 22px; }

/* A revisão deixa alterar o pedido sem perder os outros dados. */
.summary-kicker { margin-bottom: 9px; color: var(--gold); font-size: 10px; font-weight: 800; letter-spacing: .18em; }
.summary-service { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 0; border-top: 1px solid #ffffff26; }
.summary-service small, .summary-service strong { display: block; }
.summary-service small { color: #bfcdd8; font-size: 12px; }
.summary-service strong { margin-top: 4px; color: #fff; font-size: 15px; }
.summary-list > .summary-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; border-top: 1px solid #ffffff26; padding: 12px 0; }
.summary-value { display: block; min-width: 0; }
.summary-value dt { color: #bfcdd8; font-size: 12px; line-height: 1.45; }
.summary-value dd { margin: 4px 0 0; color: #fff; font-size: 14px; line-height: 1.45; font-weight: 700; overflow-wrap: anywhere; }
.summary-actions { display: flex; align-items: center; gap: 7px; }
.summary-edit, .summary-remove { min-height: 32px; padding: 5px 9px; border: 1px solid #d9bb6b80; border-radius: 999px; background: #0a2235; color: #ffe39a; font: 700 11px/1.1 var(--font); white-space: nowrap; }
.summary-remove { border-color: #8797a570; color: #d4dfe8; }
.summary-edit:hover, .summary-remove:hover { border-color: var(--gold); background: #18364b; }

@media (max-width: 700px) {
  body:has(#screen-inicio.is-visible) .app-header { position:absolute; top:0; left:0; right:0; z-index:20; height:clamp(64px,12.8vw,120px); padding:0 5.5%; border:0; background:linear-gradient(180deg,rgba(3,17,29,.9),rgba(3,17,29,.52) 75%,transparent); }
  body:has(#screen-inicio.is-visible) .app-header .brand-mark { width:clamp(52px,10vw,94px); height:clamp(42px,8vw,75px); }
  body:has(#screen-inicio.is-visible) .app-header .brand-lockup strong { font-size:clamp(14px,2.9vw,27px); }
  body:has(#screen-inicio.is-visible) .app-header .brand-lockup small { font-size:clamp(9px,1.9vw,18px); letter-spacing:.01em; }
  body:has(#screen-inicio.is-visible) .app-header .nav-toggle { width:clamp(45px,9.8vw,92px); height:clamp(45px,9.8vw,92px); border-color:#edbf56; }
  .home-hero { position:relative; height:max(100svh,177.8vw) !important; min-height:0 !important; max-width:none; overflow:hidden; }
  .hero-copy { position:absolute; inset:0; width:100% !important; max-width:none; padding:0 !important; margin:0; }
  .hero-visual { display:block !important; inset:0; width:100%; height:100%; }
  .hero-photo { background-position:50% 0%; background-size:cover; background-repeat:no-repeat; background-color:#051928; }
  .hero-photo::after { background:linear-gradient(180deg,rgba(3,16,28,.66) 0%,rgba(4,19,31,.08) 22%,rgba(4,19,31,.04) 40%,rgba(5,22,35,.58) 47%,#061a2a 64%,#061a2a 100%),linear-gradient(90deg,rgba(4,18,31,.22),transparent 76%); }
  .hero-photo-glow { display:none; }
  .location-pill { position:absolute; left:3%; top:46.4%; font-size:clamp(12px,2.25vw,21px); line-height:1.3; text-shadow:0 2px 8px #00101c; }
  .hero-overline { position:absolute; left:3%; top:50.1%; margin:0; font-size:clamp(10px,1.7vw,16px); letter-spacing:.25em; }
  .hero-copy h1 { position:absolute; left:3%; top:52.1%; max-width:95%; font-size:clamp(43px,9.5vw,90px); line-height:.96; letter-spacing:-.045em; }
  .hero-lede { position:absolute; left:3.5%; right:4%; top:64.3%; max-width:70ch; margin:0; font-size:clamp(14px,2.65vw,25px); line-height:1.45; }
  .hero-service-grid { position:absolute; top:69%; left:2.5%; right:2.5%; width:95%; max-width:none; gap:1.6%; margin:0; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .hero-service-card { height:51.4vw; min-height:180px; max-height:490px; padding:0; border-radius:clamp(18px,3vw,30px); border:2px solid #e7b84f; background:#071c2b; box-shadow:0 4px 0 #37220a,0 18px 34px #0008,inset 0 1px 0 #fff7; transform:none; }
  .hero-service-card:hover,.hero-service-card:focus-visible { transform:translateY(-4px); }
  .hero-service-card::before { content:""; position:absolute; z-index:3; left:22%; right:22%; bottom:-2px; height:3px; background:#ffe281; box-shadow:0 0 13px 4px #ffc84a; pointer-events:none; }
  .hero-service-object { position:absolute; inset:0; width:100%; height:100%; border:0; border-radius:inherit; background:none; box-shadow:none; }
  .hero-service-object img { width:100%; height:100%; object-fit:cover; padding:0; filter:none; }
  .hero-service-card::after { content:""; position:absolute; inset:28% 0 0; z-index:0; background:linear-gradient(180deg,transparent 0%,rgba(5,19,30,.18) 28%,rgba(4,17,28,.93) 61%,#041622 100%); pointer-events:none; }
  .hero-service-icon { position:absolute; z-index:1; left:8%; top:43%; width:25%; aspect-ratio:1; display:grid; place-items:center; border:2px solid #edbd4f; border-radius:22%; color:#ffd56d; background:linear-gradient(145deg,#0d2b3e,#041522); box-shadow:0 5px 0 #010c14,inset 0 1px 0 #fff3; font:700 clamp(19px,3.5vw,34px)/1 var(--font); }
  .hero-service-icon svg { width:68%; height:68%; fill:none; stroke:currentColor; stroke-width:2.8; stroke-linecap:round; stroke-linejoin:round; }
  .hero-service-card[data-start-service="transport"] .hero-service-object img { object-position:40% center; }
  .hero-service-card[data-start-service="assembly"] .hero-service-object img { object-position:61% center; }
  .hero-service-card[data-start-service="complete"] .hero-service-object img { object-position:50% center; }
  .hero-service-copy { position:absolute; z-index:1; left:9%; right:8%; bottom:4.8%; display:flex; flex-direction:column; align-items:flex-start; padding:0; }
  .hero-service-copy strong { font:600 clamp(19px,3.7vw,35px)/.97 var(--display); letter-spacing:-.035em; }
  .hero-service-copy small { min-height:2.9em; margin-top:clamp(8px,1.6vw,15px); color:#d8e0e8; font-size:clamp(12px,2vw,19px); line-height:1.34; }
  .hero-card-action { display:block; margin-top:clamp(12px,2vw,20px); color:#ffd45d; font-size:clamp(10px,1.55vw,15px); font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
  .hero-service-arrow { right:6%; bottom:4%; width:24%; aspect-ratio:1; height:auto; border:2px solid #efc34e; border-radius:50%; background:#071b29aa; color:#ffd45d; font-size:clamp(22px,4vw,38px); }
  .hero-rail { display: none; }
  .service-choice, .service-choice.is-selected { grid-template-columns: 104px minmax(0, 1fr) 22px !important; column-gap: 13px !important; min-height: 110px !important; padding: 9px !important; }
  .service-choice.is-selected { padding: 8px !important; }
  .choice-object { height: 90px; border-radius: 9px; }
  .choice-copy strong { font-size: 15px !important; }
  .choice-copy small { margin-top: 4px !important; font-size: 12px !important; }
  .summary-list > .summary-entry { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .summary-actions { justify-content: flex-start; }
  .summary-edit, .summary-remove { min-height: 30px; }
}

/* Full-screen, no-scroll quote flow: one focused question, full visible choices. */
.quote-dialog {
  position: fixed !important; inset: 0 !important; width: 100vw !important; height: 100dvh !important;
  max-width: none !important; max-height: none !important; margin: 0 !important;
  border: 0 !important; border-radius: 0 !important;
}
.quote-layout { display: block !important; height: 100% !important; }
.dialog-shell { height: 100% !important; min-height: 0 !important; }
.wizard-content { overflow: hidden !important; padding: 12px clamp(16px,4vw,30px) 14px !important; }
.wizard-content[data-question] { display: flex; flex-direction: column; justify-content: flex-start; }
.wizard-content[data-question] .wizard-section-label { margin: 0 0 5px !important; font-size: 9px !important; }
.wizard-content[data-question] .wizard-prompt { margin: 0 0 12px !important; font-size: 12px !important; line-height: 1.3 !important; }
.wizard-content[data-question] .form-grid { display: flex !important; flex: 1 1 0; min-height: 0; min-width: 0; width: 100%; align-items: stretch; flex-direction: column; gap: 0 !important; }
.wizard-content[data-question] .detail-field { display: flex; min-height: 0; min-width: 0; width: 100%; align-self: stretch; flex: 1 1 0; flex-direction: column; }
.wizard-content[data-question] .field-label { margin: 0 0 8px !important; font-size: 14px !important; line-height: 1.25 !important; }
.wizard-content[data-question] .detail-cards { flex: 1; align-content: center; gap: clamp(6px,1.4vh,12px) !important; }
.wizard-content[data-question] .detail-card-face { min-height: 0 !important; height: clamp(112px,24vh,188px) !important; }
.wizard-content[data-question] .detail-card-art:not(.detail-card-glyph) { height: clamp(64px,14vh,110px) !important; min-height: clamp(64px,14vh,110px) !important; }
.wizard-content[data-question] .detail-card-copy { min-height: 38px !important; padding: 5px 8px 7px !important; }
.wizard-content[data-question] .detail-card-art img { transform: scale(1.04) !important; }
.wizard-content[data-question] .detail-card-copy strong { font-size: clamp(10px,1.5vh,14px) !important; }
.wizard-content[data-question] .detail-card-copy small { font-size: clamp(8px,1.25vh,11px) !important; }
.wizard-content[data-question] .detail-card-glyph { width: clamp(40px,7vh,58px) !important; height: clamp(40px,7vh,58px) !important; min-height: 0 !important; margin: 3px auto !important; }
.wizard-content[data-question] .detail-field-extraNeeds .detail-card-face,
.wizard-content[data-question] .detail-field-reassembly .detail-card-face { height: clamp(112px,24vh,188px) !important; flex-direction: column !important; align-items: stretch !important; }
.wizard-content[data-question] .detail-field-extraNeeds .detail-card-art:not(.detail-card-glyph),
.wizard-content[data-question] .detail-field-reassembly .detail-card-art:not(.detail-card-glyph) { width: auto !important; min-width: 0 !important; height: clamp(64px,14vh,110px) !important; min-height: clamp(64px,14vh,110px) !important; margin: 0 8px !important; }
.wizard-content[data-question] .detail-field-extraNeeds .detail-card-copy,
.wizard-content[data-question] .detail-field-reassembly .detail-card-copy { padding: 5px 8px 7px !important; }
.wizard-content[data-question] .detail-field > input:not([type=checkbox]),
.wizard-content[data-question] .detail-field > textarea,
.wizard-content[data-question] .field input:not([type=checkbox]),
.wizard-content[data-question] .field select,
.wizard-content[data-question] .field textarea { width: 100%; min-height: 54px; }
.wizard-content[data-question] .detail-field .field-help { margin-top: 7px; font-size: 11px; }
.wizard-content[data-question] .detail-cards.city-cards { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
.wizard-content[data-question] .city-cards .detail-card-face { height: clamp(82px,14vh,116px) !important; }
.wizard-content[data-question] .city-cards .detail-card-art:not(.detail-card-glyph),
.wizard-content[data-question] .city-cards .detail-card-glyph { width: clamp(30px,5vh,44px) !important; height: clamp(30px,5vh,44px) !important; min-height: 0 !important; margin: 4px auto 0 !important; }
.wizard-content[data-question="originOther"],
.wizard-content[data-question="destinationOther"],
.wizard-content[data-question="locationOther"] { justify-content: center; }
.wizard-content[data-question="originOther"] .wizard-prompt,
.wizard-content[data-question="destinationOther"] .wizard-prompt,
.wizard-content[data-question="locationOther"] .wizard-prompt { margin-bottom: 24px !important; }
.wizard-content[data-question="originOther"] .form-grid,
.wizard-content[data-question="destinationOther"] .form-grid,
.wizard-content[data-question="locationOther"] .form-grid { flex: 0 0 auto; }
.wizard-content[data-question="originOther"] .field,
.wizard-content[data-question="destinationOther"] .field,
.wizard-content[data-question="locationOther"] .field { flex: 0 0 auto; }
.wizard-content[data-question][data-option-count="4"] .detail-cards,
.wizard-content[data-question][data-option-count="2"] .detail-cards { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
.wizard-content[data-question][data-option-count="3"] .detail-cards,
.wizard-content[data-question][data-option-count="5"] .detail-cards,
.wizard-content[data-question][data-option-count="6"] .detail-cards,
.wizard-content[data-question][data-option-count="7"] .detail-cards,
.wizard-content[data-question][data-option-count="8"] .detail-cards,
.wizard-content[data-question][data-option-count="9"] .detail-cards { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
.wizard-content[data-question][data-option-count="7"] .detail-card-face { height: clamp(88px,15vh,112px) !important; }
.wizard-content[data-question][data-option-count="7"] .detail-card-art:not(.detail-card-glyph) { height: clamp(46px,8vh,64px) !important; min-height: clamp(46px,8vh,64px) !important; }
.wizard-content[data-question][data-option-count="7"] .detail-card-copy small { display: none; }
.wizard-content[data-question][data-option-count="9"] .detail-card-face { height: clamp(80px,13vh,100px) !important; }
.wizard-content[data-question][data-option-count="9"] .detail-card-copy { min-height: 27px !important; padding: 3px !important; }
.wizard-content[data-question][data-option-count="9"] .detail-card-copy small { display: none; }
.wizard-content[data-question][data-option-count="9"] .detail-card-copy strong { font-size: clamp(8px,1.05vh,10px) !important; }
.wizard-content[data-question][data-option-count="9"] .city-cards .detail-card-face { height: clamp(80px,13vh,100px) !important; }
.wizard-content[data-question][data-option-count="9"] .city-cards .detail-card-copy { min-height: 36px !important; padding: 2px 3px !important; }
.wizard-content[data-question][data-option-count="9"] .city-cards .detail-card-copy strong { font-size: clamp(8px,1.1vh,10px) !important; line-height: 1.12 !important; }
.wizard-content[data-question] .field:not(.detail-field) { gap: 6px; }
.wizard-content[data-question] .field:not(.detail-field) > label { min-height: 0; font-size: 14px; }
.wizard-content[data-question] .form-section-title { margin: 0 0 8px; padding: 0; border: 0; font-size: 13px; }
.wizard-actions { padding: 7px clamp(16px,4vw,30px) max(8px,env(safe-area-inset-bottom)) !important; min-height: 58px; }
.wizard-next { min-height: 44px !important; }
.dialog-privacy { display: none !important; }
.wizard-back[hidden] { display: none !important; }
.wizard-content[data-question] .change-service { margin: 0 0 6px; padding: 0; font-size: 11px; }
.wizard-content[data-question] .wizard-error { margin: 0 0 7px; padding: 5px 8px; font-size: 11px; }
.wizard-content[data-mode="services"] { display: flex; flex-direction: column; overflow: hidden !important; }
.wizard-content[data-mode="services"] .wizard-prompt { margin-bottom: 6px !important; }
.wizard-content[data-mode="services"] .choice-intro { margin: 0 0 12px; color: #b9cbd6; font-size: 13px; }
.wizard-content[data-mode="services"] .service-choices { flex: 1; min-height: 0; grid-template-columns: repeat(3,minmax(0,1fr)) !important; grid-template-rows: minmax(0,1fr); gap: clamp(8px,2vw,18px) !important; }
.wizard-content[data-mode="services"] .service-choice { height: 100%; min-height: 0 !important; padding: clamp(7px,1.4vw,14px) !important; }
.wizard-content[data-mode="services"] .choice-object { flex: 1; min-height: 0; height: clamp(90px,22vh,260px) !important; margin-bottom: 8px !important; }
.wizard-content[data-mode="services"] .choice-copy strong { font-size: clamp(12px,1.4vw,21px) !important; }
.wizard-content[data-mode="services"] .choice-copy small { font-size: clamp(9px,1vw,13px) !important; }
.dialog-shell:has(#wizard-content[data-mode="services"]) .wizard-actions { display: none !important; }
.wizard-content[data-mode="review"] { overflow-y: auto !important; }
.wizard-content[data-mode="question"] .form-grid { animation: quote-question-arrive .24s ease-out both; }
@keyframes quote-question-arrive { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (min-width: 700px) {
  .wizard-content[data-question] .detail-cards.city-cards { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
}
@media (max-height: 700px) {
  .dialog-header { min-height: 50px !important; padding-top: 5px !important; padding-bottom: 5px !important; }
  .dialog-brand .brand-mark { width: 48px !important; height: 34px !important; }
  .dialog-close { width: 34px !important; height: 34px !important; }
  .wizard-heading { padding-top: 9px !important; padding-bottom: 8px !important; }
  .wizard-heading .micro-label { margin-bottom: 4px !important; font-size: 8px !important; }
  .wizard-heading h2 { font-size: 27px !important; }
  .wizard-step-labels { padding-top: 5px !important; padding-bottom: 6px !important; }
  .wizard-content[data-question] .detail-card-face { height: clamp(90px,19vh,128px) !important; }
  .wizard-content[data-question] .detail-card-art:not(.detail-card-glyph) { height: clamp(48px,10vh,70px) !important; min-height: clamp(48px,10vh,70px) !important; }
  .wizard-content[data-question][data-option-count="7"] .detail-card-face { height: clamp(72px,12vh,88px) !important; }
  .wizard-content[data-question][data-option-count="7"] .detail-card-art:not(.detail-card-glyph) { height: clamp(38px,7vh,50px) !important; min-height: clamp(38px,7vh,50px) !important; }
  .wizard-content[data-question][data-option-count="9"] .detail-card-face,
  .wizard-content[data-question][data-option-count="9"] .city-cards .detail-card-face { height: clamp(68px,11vh,80px) !important; }
}
@media (max-width: 600px) {
  .wizard-content[data-mode="services"] .service-choices { grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: 7px !important; padding-inline: 0 !important; }
  .wizard-content[data-mode="services"] .service-choice { padding: 7px !important; }
  .wizard-content[data-mode="services"] .service-choice .choice-object { height: clamp(74px,17vh,138px) !important; }
  .wizard-content[data-mode="services"] .choice-object { height: clamp(88px,18vh,154px) !important; }
  .wizard-content[data-mode="services"] .choice-copy strong { font-size: clamp(10px,3vw,14px) !important; line-height: 1.15 !important; }
  .wizard-content[data-mode="services"] .choice-copy small { font-size: clamp(8px,2.3vw,10px) !important; line-height: 1.3 !important; }
  .wizard-content[data-mode="services"] .choice-depth { width: 21px; height: 21px; right: 5px !important; top: 5px !important; }
  .wizard-content[data-mode="services"] .choice-depth svg { width: 13px !important; height: 13px !important; }
}

@media (max-width: 375px) {
  .hero-copy { padding-inline: 15px; }
  .hero-service-grid { gap: 6px; }
  .hero-service-card { padding-inline: 5px; }
  .hero-service-copy strong { font-size: 10px; }
  .service-choice, .service-choice.is-selected { grid-template-columns: 88px minmax(0, 1fr) 20px !important; column-gap: 10px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-service-card, .hero-service-object img, .service-choice, .choice-object img { transition: none !important; transform: none !important; }
}

/* Quote details: immersive, tactile selection cards instead of legacy controls. */
.detail-field { gap: 12px !important; }
.detail-field > label, .detail-field .field-label { font: 700 clamp(15px, 1.35vw, 18px)/1.35 var(--font); letter-spacing: -.02em; }
.detail-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; perspective: 1200px; }
.detail-cards-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.detail-cards-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.detail-card { position: relative; display: block; min-width: 0; cursor: pointer; outline: none; }
.detail-card > input[type="radio"], .detail-card > input[type="checkbox"] { position: absolute !important; width: 1px !important; height: 1px !important; min-height: 1px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; opacity: 0 !important; appearance: none; pointer-events: none; }
.detail-card-face { position: relative; display: flex; flex-direction: column; height: 100%; min-height: 177px; overflow: hidden; border: 1px solid #9cabc04a; border-radius: 16px; background: linear-gradient(150deg,#19384e,#0a2031 78%); box-shadow: 0 6px 0 #03101c, 0 15px 25px #0005, inset 0 1px 0 #ffffff24; transform: perspective(800px) rotateX(1deg) translateY(0); transition: transform .24s ease,border-color .24s ease,box-shadow .24s ease,filter .24s ease; }
.detail-card-art { position: relative; display: grid; place-items: center; min-height: 102px; height: 102px; margin: 8px 8px 0; overflow: hidden; border: 1px solid #f0d48766; border-radius: 11px; background: radial-gradient(ellipse at 50% 38%,#fffdf5,#d9cfb8 76%,#7d796e); box-shadow: inset 0 1px 0 #fff, 0 5px 9px #0005; }
.detail-card-art::after { position: absolute; inset: 42% 0 0; content: ''; background: linear-gradient(transparent,#07172775); pointer-events: none; }
.detail-card-art img { display: block; width: 100%; height: 100%; object-fit: contain; padding: 4px; filter: drop-shadow(0 8px 5px #06111b60); transition: transform .3s ease; }
.detail-card-glyph { min-height: 84px; height: 84px; color: #ffd765; font: 500 45px/1 var(--display); background: radial-gradient(ellipse at 50% 15%,#24435a,#0a1d2d 75%); }
.detail-card-glyph::after { content: none; }
.detail-card-glyph img { width: 54%; height: 54%; object-fit: contain; filter: drop-shadow(0 3px 4px #0007); }
.detail-card-copy { display: flex; flex: 1; flex-direction: column; justify-content: center; gap: 4px; min-height: 58px; padding: 10px 12px 12px; }
.detail-card-copy strong { display: block; color: #fffdf6; font-size: 14px; line-height: 1.25; letter-spacing: -.025em; }
.detail-card-copy small { color: #bdccd8; font-size: 11px; line-height: 1.35; }
.detail-card-check { position: absolute; top: 13px; right: 13px; display: grid; width: 25px; height: 25px; place-items: center; border: 1px solid #fff7; border-radius: 50%; color: transparent; background: #061725b8; font-size: 14px; font-weight: 800; box-shadow: 0 2px 8px #0006; transition: .2s ease; }
.detail-card:hover .detail-card-face, .detail-card:focus-visible .detail-card-face { transform: perspective(800px) translateY(-4px) rotateX(0); border-color: #f4ca62; box-shadow: 0 9px 0 #03101c, 0 23px 32px #0008, inset 0 1px 0 #fff5; }
.detail-card:hover .detail-card-art img { transform: scale(1.06) translateY(-2px); }
.detail-card:has(input:checked) .detail-card-face { border: 2px solid #ffd45f; background: linear-gradient(150deg,#253e47,#102b3e 78%); box-shadow: 0 5px 0 #4b3514, 0 12px 30px #0008, 0 0 24px #e8ad3a33, inset 0 1px 0 #fff6; transform: perspective(800px) translateY(-2px); }
.detail-card:has(input:checked) .detail-card-check { color: #071a27; border-color: #ffe798; background: linear-gradient(145deg,#fff0a8,#d99d28); }
.detail-card:has(input:focus-visible) .detail-card-face { outline: 3px solid #fff; outline-offset: 3px; }
.detail-field-items textarea { min-height: 92px !important; background: linear-gradient(145deg,#102d42,#0a2031) !important; border-color: #62798a !important; border-radius: 13px !important; }
.detail-field-extraNeeds .detail-card-face, .detail-field-reassembly .detail-card-face { min-height: 112px; flex-direction: row; align-items: center; }
.detail-field-extraNeeds .detail-card-art, .detail-field-reassembly .detail-card-art { width: 64px; min-width: 64px; height: 64px; min-height: 64px; margin: 13px 0 13px 13px; border-radius: 14px; background: linear-gradient(145deg,#ffedac,#c88a21); color: #082033; font-size: 33px; }
.detail-field-extraNeeds .detail-card-copy, .detail-field-reassembly .detail-card-copy { padding: 12px; }
.detail-field-extraNeeds .detail-card-copy strong, .detail-field-reassembly .detail-card-copy strong { font-size: 14px; }
.detail-field-extraNeeds .detail-card-art::after, .detail-field-reassembly .detail-card-art::after { content: none; }
.detail-field-extraNeeds .detail-card-check, .detail-field-reassembly .detail-card-check { top: 9px; right: 9px; }
.detail-field .field-help { margin-top: 0; }
.detail-field + .detail-field { margin-top: 2px; }
@media (max-width: 700px) {
  .detail-cards, .detail-cards-5, .detail-cards-2 { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .detail-card-face { min-height: 156px; border-radius: 14px; }
  .detail-card-art { height: clamp(76px,22vw,112px); min-height: clamp(76px,22vw,112px); margin: 6px 6px 0; }
  .detail-card-glyph { height: 65px; min-height: 65px; font-size: 38px; }
  .detail-card-copy { min-height: 56px; padding: 8px 9px 10px; }
  .detail-card-copy strong { font-size: 13px; }
  .detail-card-copy small { font-size: 10px; }
  .detail-card-check { top: 10px; right: 10px; width: 23px; height: 23px; }
  .detail-field-extraNeeds .detail-card-face, .detail-field-reassembly .detail-card-face { min-height: 93px; }
  .detail-field-extraNeeds .detail-card-art, .detail-field-reassembly .detail-card-art { width: 49px; min-width: 49px; height: 49px; min-height: 49px; margin: 10px 0 10px 10px; font-size: 27px; }
  .detail-field-extraNeeds .detail-card-copy, .detail-field-reassembly .detail-card-copy { padding: 9px; }
  .detail-field-extraNeeds .detail-card-copy strong, .detail-field-reassembly .detail-card-copy strong { font-size: 12px; }
  .detail-field-items textarea { min-height: 82px !important; }
}
@media (prefers-reduced-motion: reduce) { .detail-card-face, .detail-card-art img, .detail-card-check { transition: none !important; } }

/* 3D choice library: each selectable visual is a distinct, locally served render. */
.service-choices { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 14px !important; }
.service-choice, .service-choice.is-selected {
  display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 0 !important;
  min-height: 0 !important; padding: 10px !important; border-radius: 16px !important;
}
.choice-object { width: 100% !important; height: clamp(112px, 15vw, 162px) !important; margin: 0 0 10px !important; border-radius: 12px !important; }
.choice-object img { object-fit: contain !important; padding: 4px !important; }
.choice-copy { margin-top: 0 !important; }
.choice-copy strong { font-family: var(--display) !important; font-size: clamp(17px, 1.6vw, 22px) !important; line-height: 1.1 !important; }
.choice-copy small { margin-top: 5px !important; font-size: 12px !important; line-height: 1.45 !important; }
.choice-depth { position: absolute !important; right: 10px !important; top: 10px !important; bottom: auto !important; z-index: 2; display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid #fff8; border-radius: 50%; background: #061725d9; color: transparent !important; }
.service-choice.is-selected .choice-depth { color: #081c2a !important; background: linear-gradient(145deg,#fff0a8,#d99d28); border-color: #ffe798; }
.choice-depth svg { width: 16px !important; height: 16px !important; }
.detail-card-face { background: #0d2638 !important; }
.detail-card:has(input:checked) .detail-card-face { background: #0d2638 !important; }
.detail-card { background: transparent !important; }
.detail-card-face,
.detail-card:has(input:checked) .detail-card-face {
  background: #0d2638 !important;
  box-shadow: 0 5px 0 #03101c,0 12px 22px #0004,inset 0 1px 0 #ffffff16 !important;
}
.detail-card:has(input:checked) .detail-card-face { border-color: #ffd45f !important; }
.detail-card-art:not(.detail-card-glyph) { margin: 0 8px !important; overflow: visible !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
.detail-card-art:not(.detail-card-glyph)::after { content: none !important; }
.detail-card-art:not(.detail-card-glyph) img { object-fit: contain !important; padding: 0 !important; transform: none !important; filter: drop-shadow(0 7px 10px #0006) !important; mix-blend-mode: normal; }
.detail-card:hover .detail-card-art:not(.detail-card-glyph) img { transform: translateY(-2px) !important; }
.city-cards { grid-template-columns: repeat(3,minmax(0,1fr)); }
.city-cards .detail-card-face { min-height: 126px; justify-content: center; }
.city-cards .detail-card-art { width: 54px; height: 54px; min-height: 54px; margin: 16px auto 2px; }
.city-cards .detail-card-glyph { color: #ffd765; }
.city-cards .detail-card-glyph img { width: 100%; height: 100%; filter: drop-shadow(0 3px 7px #e5ad3b55); }
.city-other-field { grid-column: 1 / -1; }
.detail-field-extraNeeds .detail-card-face, .detail-field-reassembly .detail-card-face { min-height: 0 !important; flex-direction: column !important; align-items: stretch !important; }
.detail-field-extraNeeds .detail-card-art:not(.detail-card-glyph), .detail-field-reassembly .detail-card-art:not(.detail-card-glyph) { width: auto !important; min-width: 0 !important; height: 98px !important; min-height: 98px !important; margin: 0 8px !important; border-radius: 0 !important; background: transparent !important; }
.detail-field-extraNeeds .detail-card-copy, .detail-field-reassembly .detail-card-copy { padding: 9px 10px 11px !important; }
.detail-field-extraNeeds .detail-card-copy strong, .detail-field-reassembly .detail-card-copy strong { font-size: 13px !important; }

/* The homepage is a single cinematic canvas; the image, type, and service cards share it. */
body:has(#screen-inicio.is-visible) .app-shell { min-height: 100svh; }
body:has(#screen-inicio.is-visible) .app-header { position: absolute; inset: 0 0 auto; z-index: 30; height: clamp(78px, 8vw, 124px); padding: 0 clamp(22px, 5.5vw, 86px); border: 0; background: linear-gradient(180deg,#031321d9 0%,#03132182 74%,transparent 100%); }
body:has(#screen-inicio.is-visible) .app-header .brand-mark { width: clamp(52px, 7vw, 104px); height: clamp(44px, 6vw, 78px); }
body:has(#screen-inicio.is-visible) .app-header .brand-lockup strong { font-size: clamp(15px, 2.15vw, 28px); line-height: 1.15; }
body:has(#screen-inicio.is-visible) .app-header .brand-lockup small { margin-top: 5px; font-size: clamp(9px, 1.35vw, 18px); letter-spacing: 0; text-transform: uppercase; }
body:has(#screen-inicio.is-visible) .app-header .app-nav:not(.is-open),
body:has(#screen-inicio.is-visible) .app-header .header-cta { display: none !important; }
body:has(#screen-inicio.is-visible) .app-header .app-nav.is-open { position: absolute; top: calc(100% - 8px); right: clamp(20px,5.5vw,86px); z-index: 31; display: grid !important; gap: 3px; min-width: 280px; padding: 10px; border: 1px solid #f4ca6270; border-radius: 18px; background: #041522f2; box-shadow: 0 22px 50px #0009; backdrop-filter: blur(18px); }
body:has(#screen-inicio.is-visible) .app-header .app-nav.is-open .nav-item { padding: 13px 15px; text-align: left; }
body:has(#screen-inicio.is-visible) .app-header .nav-toggle { display: flex; width: clamp(48px, 7vw, 92px); height: clamp(48px, 7vw, 92px); border-color: #efc34e; }
body:has(#screen-inicio.is-visible) .app-header .nav-toggle span { width: 30px; }
body:has(#screen-inicio.is-visible) .app-footer { display: none !important; }
.home-hero { width: 100%; height: 100svh !important; min-height: 0 !important; max-width: none !important; margin: 0; }
.hero-visual { position: absolute; inset: 0 !important; width: 100% !important; height: 100%; }
.hero-photo { background: url('assets/photos/hero-novo-hamburgo.png') center 42% / cover no-repeat !important; }
.hero-photo::after { background: linear-gradient(180deg,rgba(3,15,25,.2) 0%,rgba(3,15,25,.02) 36%,rgba(3,15,25,.22) 45%,rgba(4,18,29,.77) 64%,#061a2a 100%),linear-gradient(90deg,rgba(3,15,25,.28),transparent 72%) !important; }
.hero-photo-glow { display: none !important; }
.hero-copy { position: absolute; inset: 0; width: 100% !important; max-width: none; height: 100%; margin: 0; padding: 0 !important; }
.hero-copy .location-pill { position: absolute; left: 5.8%; top: 46.3%; font-size: clamp(12px,2.4vw,24px); line-height: 1.3; text-shadow: 0 2px 12px #00101c; }
.hero-copy .hero-overline { position: absolute; left: 5.8%; top: 50.2%; margin: 0; font-size: clamp(9px,1.55vw,16px); letter-spacing: .25em; }
.hero-copy h1 { position: absolute; left: 5.8%; top: 52.1%; max-width: 92%; font-size: clamp(54px,8.2vw,112px); line-height: .92; letter-spacing: -.045em; text-shadow: 0 3px 18px #00101c66; }
.hero-lede { position: absolute; left: 6%; right: 5%; top: 64.4%; max-width: 70ch; margin: 0; font-size: clamp(16px,2.1vw,28px); line-height: 1.42; text-shadow: 0 2px 12px #00101c; }
.hero-service-grid { position: absolute; top: 69.1%; left: 2.5%; right: 2.5%; width: 95%; max-width: none; gap: 1.6%; margin: 0; grid-template-columns: repeat(3,minmax(0,1fr)); }
.hero-service-card { height: 51.4vw; min-height: 190px; max-height: 490px; padding: 0; border: 2px solid #e7b84f; border-radius: clamp(15px,2.6vw,30px); background: #071c2b; box-shadow: 0 4px 0 #37220a,0 18px 34px #0008,inset 0 1px 0 #fff7; transform: none; }
.hero-service-card::after { content: ''; position: absolute; inset: 24% 0 0; z-index: 0; background: linear-gradient(180deg,transparent 0%,rgba(5,19,30,.1) 22%,rgba(4,17,28,.91) 57%,#041622 100%); pointer-events: none; }
.hero-service-card::before { content: ''; position: absolute; z-index: 3; left: 22%; right: 22%; bottom: -2px; height: 3px; background: #ffe281; box-shadow: 0 0 13px 4px #ffc84a; pointer-events: none; }
.hero-service-object { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: inherit; background: none; box-shadow: none; }
.hero-service-object img { width: 100%; height: 100%; object-fit: cover; padding: 0; filter: none; }
.hero-service-icon { position: absolute; z-index: 1; left: 8%; top: 40%; width: 24%; aspect-ratio: 1; display: grid; place-items: center; border: 2px solid #edbd4f; border-radius: 22%; color: #ffd56d; background: linear-gradient(145deg,#0d2b3e,#041522); box-shadow: 0 5px 0 #010c14,inset 0 1px 0 #fff3; }
.hero-service-icon svg { width: 68%; height: 68%; fill: none; stroke: currentColor; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }
.hero-service-copy { position: absolute; z-index: 1; left: 9%; right: 8%; bottom: 4.8%; display: flex; flex-direction: column; align-items: flex-start; padding: 0; }
.hero-service-copy strong { font: 600 clamp(18px,3.7vw,36px)/.97 var(--display); letter-spacing: -.035em; }
.hero-service-copy small { min-height: 2.5em; margin-top: clamp(6px,1.3vw,15px); color: #d8e0e8; font-size: clamp(11px,1.8vw,18px); line-height: 1.3; }
.hero-card-action { display: block; margin-top: clamp(8px,1.5vw,18px); color: #ffd45d; font-size: clamp(9px,1.45vw,15px); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.hero-service-arrow { right: 5.5%; bottom: 4%; width: 24%; aspect-ratio: 1; height: auto; border: 2px solid #efc34e; border-radius: 50%; background: #071b29aa; color: #ffd45d; font-size: clamp(20px,3.8vw,38px); }

@media (max-width: 820px) {
  body:has(#screen-inicio.is-visible) .app-header { height: clamp(70px,12.8vw,120px); padding: 0 5.5%; }
  body:has(#screen-inicio.is-visible) .app-header .brand-mark { width: clamp(52px,10vw,94px); height: clamp(42px,8vw,75px); }
  body:has(#screen-inicio.is-visible) .app-header .brand-lockup strong { font-size: clamp(14px,2.9vw,27px); }
  body:has(#screen-inicio.is-visible) .app-header .brand-lockup small { font-size: clamp(9px,1.9vw,18px); }
  .hero-photo { background-position: 50% 0% !important; }
  .hero-copy .location-pill { left: 5.8%; top: 46.3%; font-size: clamp(12px,2.25vw,21px); }
  .hero-copy .hero-overline { left: 5.8%; top: 50.2%; font-size: clamp(9px,1.7vw,16px); }
  .hero-copy h1 { left: 5.8%; top: 52.1%; max-width: 95%; font-size: clamp(39px,9.5vw,78px); line-height: .93; }
  .hero-lede { left: 6%; right: 5%; top: 64.3%; font-size: clamp(14px,2.7vw,22px); line-height: 1.38; }
  .hero-service-grid { top: 69.1%; left: 2.5%; right: 2.5%; width: 95%; gap: 1.6%; }
  .hero-service-card { height: 51.4vw; min-height: 170px; max-height: 490px; }
  .hero-service-icon { top: 40%; width: 24%; }
  .hero-service-copy strong { font-size: clamp(15px,3.7vw,29px); }
  .hero-service-copy small { min-height: 2.5em; font-size: clamp(10px,2vw,16px); }
  .hero-card-action { font-size: clamp(8px,1.55vw,13px); letter-spacing: .07em; }
  .hero-service-arrow { font-size: clamp(18px,4vw,32px); }
  .service-choices { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 10px !important; }
  .service-choice, .service-choice.is-selected { padding: 8px !important; }
  .choice-object { height: clamp(88px,22vw,126px) !important; }
  .choice-copy strong { font-size: clamp(15px,3.8vw,19px) !important; }
  .choice-copy small { font-size: clamp(10px,2.8vw,12px) !important; }
  .detail-cards, .detail-cards-5, .detail-cards-2 { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .city-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .city-cards .detail-card-face { min-height: 112px; }
  .city-cards .detail-card-art { width: 48px; height: 48px; min-height: 48px; }
  .detail-card-art { height: clamp(84px,24vw,130px) !important; min-height: clamp(84px,24vw,130px) !important; }
  .detail-field-extraNeeds .detail-card-art:not(.detail-card-glyph), .detail-field-reassembly .detail-card-art:not(.detail-card-glyph) { height: clamp(84px,24vw,130px) !important; min-height: clamp(84px,24vw,130px) !important; }
}
@media (max-width: 375px) {
  .hero-service-card { min-height: 162px; }
  .hero-service-copy strong { font-size: 15px; }
  .hero-service-copy small { font-size: 10px; }
  .hero-card-action { font-size: 8px; }
  .detail-card-copy strong { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .service-choice, .choice-object img, .detail-card-face, .detail-card-art img { transition: none !important; }
}

/* Match the supplied cinematic home artwork exactly while keeping its actions live. */
body:has(#screen-inicio.is-visible) .home-hero {
  position: relative; width: min(100%, 941px); height: auto !important; min-height: 0 !important;
  aspect-ratio: 941 / 1672; max-width: 941px; margin: 0 auto; overflow: hidden;
}
body:has(#screen-inicio.is-visible) .home-reference-canvas { position: absolute; inset: 0; z-index: 2; display: block; }
body:has(#screen-inicio.is-visible) .home-reference-image { display: block; width: 100%; height: 100%; object-fit: fill; user-select: none; }
body:has(#screen-inicio.is-visible) .home-hero > .hero-visual,
body:has(#screen-inicio.is-visible) .home-hero > .hero-copy { display: none !important; }
body:has(#screen-inicio.is-visible) .app-header {
  position: absolute; inset: 0 0 auto; z-index: 30; height: clamp(56px, 15vw, 140px);
  padding: 0; border: 0; background: transparent; pointer-events: none;
}
body:has(#screen-inicio.is-visible) .app-header .brand,
body:has(#screen-inicio.is-visible) .app-header .nav-toggle,
body:has(#screen-inicio.is-visible) .app-header .header-cta { visibility: hidden; pointer-events: none; }
body:has(#screen-inicio.is-visible) .app-header .app-nav:not(.is-open) { display: none !important; }
body:has(#screen-inicio.is-visible) .app-header .app-nav.is-open { pointer-events: auto; }
body:has(#screen-inicio.is-visible) .app-footer { display: none !important; }
.home-reference-hit { position: absolute; z-index: 4; padding: 0; border: 0; border-radius: 18px; background: transparent; cursor: pointer; }
.home-reference-hit:focus-visible { outline: 3px solid #fff8d9; outline-offset: -5px; box-shadow: inset 0 0 0 2px #e3ae3a, 0 0 24px #ffd45f; }
.home-reference-menu { top: 1.85%; right: 4.05%; width: 10%; height: 5.55%; border-radius: 50%; }
.home-reference-transport { top: 69.15%; left: 2.55%; width: 30.8%; height: 28.9%; }
.home-reference-assembly { top: 69.15%; left: 34.95%; width: 30.5%; height: 28.9%; }
.home-reference-complete { top: 69.15%; left: 67.1%; width: 30.7%; height: 28.9%; }
.city-cards .detail-card-art:not(.detail-card-glyph) { width: 54px; height: 54px; min-height: 54px; margin: 16px auto 2px !important; }
.city-cards .detail-card-art:not(.detail-card-glyph) img { width: 100%; height: 100%; }
.city-cards .detail-card-glyph { width: 54px; height: 54px; min-height: 54px; }

/* Refined five-stage progress: compact nodes, clear current state, no dated tab strip. */
.progress-track { height: 4px !important; margin-inline: clamp(20px,5vw,32px) !important; border: 1px solid #56708466; background: #0a1d2d !important; box-shadow: inset 0 1px 4px #0009,0 0 14px #0b2638; }
.progress-track span { border-radius: 99px; box-shadow: 0 0 10px #ffd45f85; }
.wizard-step-labels { display: grid !important; grid-template-columns: repeat(5,minmax(0,1fr)); align-items: start; gap: 3px !important; padding: 10px clamp(12px,4vw,25px) 13px !important; border-bottom: 1px solid #dce7f123 !important; background: linear-gradient(180deg,#0c2437cc,#0a2032aa); backdrop-filter: blur(14px); }
.wizard-step-labels span { display: flex; min-width: 0; flex-direction: column; align-items: center; gap: 6px; color: #8299aa; font-size: clamp(8px,1.85vw,10px); line-height: 1.2; letter-spacing: .035em; text-align: center; white-space: nowrap; transition: color .2s ease; }
.wizard-step-labels span::before { content: attr(data-step-label); display: grid; width: 22px; height: 22px; place-items: center; border: 1px solid #4a6377; border-radius: 50%; background: #102b40; color: #a7b9c6; font: 700 9px/1 var(--font); box-shadow: inset 0 1px 0 #ffffff18,0 3px 9px #0003; transition: .2s ease; }
.wizard-step-labels .is-current { color: #ffe6a0; font-weight: 800; }
.wizard-step-labels .is-current::before { border-color: #ffe191; background: radial-gradient(circle at 35% 25%,#fff0ae,#d8a332); color: #092033; box-shadow: 0 0 0 3px #f4ca621c,0 0 15px #f4ca6260; }
.wizard-step-labels .is-complete { color: #d8e5eb; }
.wizard-step-labels .is-complete::before { content: '✓'; border-color: #b98e3e; color: #f9d975; background: #173449; }
@media (max-width: 700px) {
  .city-cards .detail-card-art:not(.detail-card-glyph), .city-cards .detail-card-glyph { width: 48px; height: 48px; min-height: 48px; }
  .wizard-step-labels { padding-inline: 9px !important; }
  .wizard-step-labels span { font-size: clamp(7px,1.85vw,9px); }
  .wizard-step-labels span::before { width: 20px; height: 20px; }
}

/* Keep the 3D artwork seamless with the quote surface on every choice screen. */
.wizard-content .detail-card-face,
.wizard-content .detail-card:hover .detail-card-face,
.wizard-content .detail-card:has(input:checked) .detail-card-face { background: #102d40 !important; }
.wizard-content .detail-card-face { background: #102d40 !important; }
.wizard-content .detail-card-art:not(.detail-card-glyph) { background-color: transparent !important; }
.wizard-content .detail-card-art:not(.detail-card-glyph) img { padding: 0 !important; transform: none !important; background: transparent !important; }
.dialog-shell:has(#wizard-content[data-mode="services"]) .wizard-actions { display: flex !important; }
.wizard-content[data-mode="services"] + .wizard-actions { display: flex !important; }

/* Draggable, snap-centered service rail inspired by premium game selection menus. */
.wizard-content[data-mode="services"] .service-choices,
.wizard-content[data-question] .detail-cards {
  --carousel-slide: min(410px,76vw);
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  display: flex !important;
  grid-template-columns: none !important;
  grid-auto-columns: unset !important;
  flex-flow: row nowrap !important;
  align-items: stretch;
  gap: clamp(12px,2vw,22px) !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 14px 8px 26px !important;
  scroll-padding-inline: 8px;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  touch-action: pan-y;
  cursor: grab;
  perspective: 1500px;
  -webkit-mask-image: none;
  mask-image: none;
}
.wizard-content[data-mode="services"] .service-choices::-webkit-scrollbar,
.wizard-content[data-question] .detail-cards::-webkit-scrollbar { display: none; }
.wizard-content .service-choices.is-dragging,
.wizard-content .detail-cards.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }
.wizard-content[data-mode="services"] .service-choice {
  flex: 0 0 var(--carousel-slide) !important;
  width: var(--carousel-slide) !important;
  height: 100% !important;
  min-height: 0 !important;
  scroll-snap-align: center;
  transform-style: preserve-3d;
  transition: transform .28s cubic-bezier(.2,.8,.2,1),border-color .28s,box-shadow .28s;
}
.wizard-content[data-mode="services"] .service-choice:nth-child(odd) { transform: perspective(1500px) rotateY(5deg) scale(.96); }
.wizard-content[data-mode="services"] .service-choice:nth-child(even) { transform: perspective(1500px) rotateY(-5deg) scale(.96); }
.wizard-content[data-mode="services"] .service-choice.is-carousel-center { transform: perspective(1500px) translateY(-5px) rotateY(0) scale(1); border-color: #f4ca62; box-shadow: 0 0 0 1px #f4ca6255,0 0 28px #e6ad3b35,0 20px 48px #0009,inset 0 1px 0 #fff4; }
.wizard-content[data-mode="services"] .service-choice.is-selected { border-color: #ffd45f; box-shadow: 0 0 0 2px #ffd45f66,0 0 32px #ffc84a45,0 18px 42px #0009,inset 0 1px 0 #fff6; }
.wizard-content[data-question] .detail-cards { align-items: center; flex: 1 1 auto !important; min-height: 0; }
.wizard-content[data-question] .detail-card {
  flex: 0 0 var(--carousel-slide) !important;
  width: var(--carousel-slide) !important;
  height: auto !important;
  min-height: 0 !important;
  scroll-snap-align: center;
  transform-style: preserve-3d;
}
.wizard-content[data-question] .detail-card .detail-card-face { height: clamp(245px,42vh,370px) !important; min-height: 0 !important; }
.wizard-content[data-question] .detail-card:nth-child(odd) .detail-card-face { transform: perspective(1400px) rotateY(-4deg); }
.wizard-content[data-question] .detail-card:nth-child(even) .detail-card-face { transform: perspective(1400px) rotateY(4deg); }
.wizard-content[data-question] .detail-card.is-carousel-center .detail-card-face { border-color: #a8813d; box-shadow: 0 9px 24px #0008,inset 0 1px 0 #fff3; }
.wizard-content[data-question] .detail-card:has(input:checked) .detail-card-face,
.wizard-content[data-question] .detail-card.is-carousel-center:has(input:checked) .detail-card-face { transform: perspective(1400px) translateY(-5px) rotateY(0) scale(1.015); border-color: #ffd45f !important; box-shadow: 0 0 0 1px #ffd45f55,0 0 32px #e8ad3b40,0 16px 35px #000a,inset 0 1px 0 #fff6 !important; }
.wizard-content[data-question] .detail-card-art:not(.detail-card-glyph) { height: clamp(155px,28vh,242px) !important; min-height: clamp(155px,28vh,242px) !important; }
.wizard-content[data-question] .detail-card-copy { min-height: 68px !important; padding: 10px 15px 14px !important; }
.wizard-content[data-question] .detail-card-copy strong { font-size: clamp(15px,1.7vh,19px) !important; }
.wizard-content[data-question] .detail-card-copy small { font-size: clamp(10px,1.25vh,13px) !important; }
.carousel-pointer-dragging, .carousel-pointer-dragging * { user-select: none !important; cursor: grabbing !important; }
@media (max-width: 700px) {
  .wizard-content[data-mode="services"] .service-choices,
  .wizard-content[data-question] .detail-cards { --carousel-slide: 76vw; }
  .wizard-content[data-mode="services"] .service-choices { --carousel-slide: 76vw; }
  .wizard-content[data-mode="services"] .service-choice,
  .wizard-content[data-question] .detail-card { flex-basis: var(--carousel-slide) !important; width: var(--carousel-slide) !important; }
  .wizard-content[data-mode="services"] .service-choice:nth-child(odd) { transform: perspective(1000px) rotateY(6deg) scale(.94); }
  .wizard-content[data-mode="services"] .service-choice:nth-child(even) { transform: perspective(1000px) rotateY(-6deg) scale(.94); }
  .wizard-content[data-mode="services"] .service-choice.is-carousel-center { transform: perspective(1000px) translateY(-3px) rotateY(0) scale(1); }
  .wizard-content[data-question] .detail-card:nth-child(odd) .detail-card-face { transform: perspective(1000px) rotateY(-5deg); }
  .wizard-content[data-question] .detail-card:nth-child(even) .detail-card-face { transform: perspective(1000px) rotateY(5deg); }
  .wizard-content[data-question] .detail-card:has(input:checked) .detail-card-face { transform: perspective(1000px) translateY(-3px) rotateY(0) scale(1.01); }
  .wizard-content[data-question] .detail-card-art:not(.detail-card-glyph) { height: clamp(138px,24vh,200px) !important; min-height: clamp(138px,24vh,200px) !important; }
  .wizard-content[data-question] .detail-card .detail-card-face { height: clamp(235px,36vh,320px) !important; }
}
@media (prefers-reduced-motion: reduce) {
  .wizard-content[data-mode="services"] .service-choice,
  .wizard-content[data-question] .detail-card-face { scroll-behavior: auto !important; transition: none !important; }
}

/* Service selection is a complete visible grid; drag is reserved for longer choice lists. */
.wizard-content[data-mode="services"] .service-choices {
  --carousel-slide: auto;
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  grid-template-rows: minmax(0,1fr) !important;
  flex: 1 1 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  align-items: stretch !important;
  overflow: hidden !important;
  padding: 12px 0 18px !important;
  gap: clamp(8px,2vw,20px) !important;
  scroll-snap-type: none !important;
  scroll-behavior: auto !important;
  touch-action: auto !important;
  cursor: default !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}
.wizard-content[data-mode="services"] .service-choice {
  width: 100% !important;
  min-width: 0 !important;
  height: 100% !important;
  flex: initial !important;
  scroll-snap-align: none !important;
  transform: none !important;
}
.wizard-content[data-mode="services"] .service-choice:hover,
.wizard-content[data-mode="services"] .service-choice:focus-visible { transform: translateY(-3px) !important; }
.wizard-content[data-mode="services"] .service-choice.is-selected { transform: translateY(-2px) !important; }
@media (max-width: 700px) {
  .wizard-content[data-question] .detail-cards { --carousel-slide: 76vw; }
  .wizard-content[data-question] .detail-card { flex-basis: var(--carousel-slide) !important; width: var(--carousel-slide) !important; }
  .wizard-content[data-question] .detail-card:nth-child(odd) .detail-card-face { transform: perspective(1000px) rotateY(-5deg); }
  .wizard-content[data-question] .detail-card:nth-child(even) .detail-card-face { transform: perspective(1000px) rotateY(5deg); }
  .wizard-content[data-question] .detail-card:has(input:checked) .detail-card-face { transform: perspective(1000px) translateY(-3px) rotateY(0) scale(1.01); }
  .wizard-content[data-question] .detail-card-art:not(.detail-card-glyph) { height: clamp(138px,24vh,200px) !important; min-height: clamp(138px,24vh,200px) !important; }
  .wizard-content[data-question] .detail-card .detail-card-face { height: clamp(235px,36vh,320px) !important; }
}
/* Seven furniture types stay visible together; they must not inherit the horizontal rail. */
.wizard-content[data-question][data-option-count="7"] .detail-cards {
  --carousel-slide: auto;
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  grid-auto-rows: minmax(0,1fr) !important;
  flex: 1 1 0 !important;
  min-width: 0 !important;
  min-height: clamp(280px,48vh,440px) !important;
  height: clamp(280px,48vh,440px) !important;
  align-items: stretch !important;
  align-content: stretch !important;
  overflow: hidden !important;
  padding: 4px 0 8px !important;
  gap: clamp(6px,1.2vh,10px) !important;
  scroll-snap-type: none !important;
  scroll-behavior: auto !important;
  touch-action: auto !important;
  cursor: default !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}
.wizard-content[data-question][data-option-count="7"] .form-grid,
.wizard-content[data-question][data-option-count="7"] .detail-field,
.wizard-content[data-question][data-option-count="7"] .detail-cards {
  width: 100% !important;
  align-self: stretch !important;
}
.wizard-content[data-question][data-option-count="7"] .detail-card {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  flex: initial !important;
  scroll-snap-align: none !important;
  transform: none !important;
}
.wizard-content[data-question][data-option-count="7"] .detail-card-face {
  height: 100% !important;
  min-height: 0 !important;
  justify-content: center;
  padding: clamp(4px,.8vh,8px) !important;
  transform: none !important;
}
.wizard-content[data-question][data-option-count="7"] .detail-card-art:not(.detail-card-glyph),
.wizard-content[data-question][data-option-count="7"] .detail-card-glyph {
  width: clamp(38px,7vh,68px) !important;
  height: clamp(38px,7vh,68px) !important;
  min-height: 0 !important;
  margin: 0 auto 3px !important;
}
.wizard-content[data-question][data-option-count="7"] .detail-card-copy {
  min-height: 0 !important;
  flex: 0 0 auto !important;
  padding: 3px 2px !important;
  text-align: center;
}
.wizard-content[data-question][data-option-count="7"] .detail-card-copy strong { font-size: clamp(9px,1.4vw,13px) !important; line-height: 1.15 !important; }
.wizard-content[data-question][data-option-count="7"] .detail-card-copy small { display: none !important; }
/* The nine regional cities stay together in a full-screen 3x3 selection grid. */
.wizard-content[data-question][data-option-count="9"] .detail-cards {
  --carousel-slide: auto;
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  grid-template-rows: repeat(3,minmax(0,1fr)) !important;
  align-content: stretch !important;
  align-items: stretch !important;
  gap: clamp(7px,1.5vh,14px) !important;
  flex: 1 1 0 !important;
  align-self: stretch !important;
  min-height: 0 !important;
  height: 100% !important;
  overflow: hidden !important;
  padding: 5px 0 8px !important;
  scroll-snap-type: none !important;
  scroll-behavior: auto !important;
  touch-action: auto;
  cursor: default;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}
.wizard-content[data-question][data-option-count="9"] .detail-card {
  display: block;
  grid-row: span 1;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  flex: initial !important;
  scroll-snap-align: none !important;
}
.wizard-content[data-question][data-option-count="9"] .detail-card .detail-card-face {
  display: flex;
  flex-direction: column !important;
  align-items: center !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  justify-content: center;
  padding: clamp(5px,1.3vh,12px) !important;
  transform: none !important;
  border-radius: clamp(10px,1.7vw,17px) !important;
}
.wizard-content[data-question][data-option-count="9"] .city-cards .detail-card-glyph {
  width: clamp(40px,7vh,62px) !important;
  height: clamp(40px,7vh,62px) !important;
  min-height: 0 !important;
  margin: 0 auto 5px !important;
}
.wizard-content[data-question][data-option-count="9"] .city-cards .detail-card-art:not(.detail-card-glyph) {
  width: clamp(40px,7vh,62px) !important;
  height: clamp(40px,7vh,62px) !important;
  min-height: 0 !important;
  margin: 0 auto 5px !important;
}
.wizard-content[data-question][data-option-count="9"] .city-cards .detail-card-copy {
  min-height: 0 !important;
  flex: 0 0 auto !important;
  justify-content: center;
  padding: 4px 3px 6px !important;
  text-align: center;
}
.wizard-content[data-question][data-option-count="9"] .city-cards .detail-card-copy strong {
  font-size: clamp(9px,1.65vw,13px) !important;
  line-height: 1.15 !important;
}
.wizard-content[data-question][data-option-count="9"] .city-cards .detail-card-copy small { display: none !important; }
.wizard-content[data-question][data-option-count="9"] .detail-card-check {
  top: 7px !important;
  right: 7px !important;
  width: 19px !important;
  height: 19px !important;
  font-size: 11px !important;
}

/* Transport scope: all five choices visible, with independent art and text rows. */
.wizard-content[data-question="scope"] .detail-cards {
 display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important;
 grid-template-rows:repeat(3,minmax(0,1fr)) !important; gap:10px !important;
 align-items:stretch !important; align-content:stretch !important;
 flex:1 1 0 !important; min-height:0 !important; width:100% !important;
 overflow:visible !important; padding:4px 0 8px !important;
 scroll-snap-type:none !important; perspective:none !important; cursor:default !important;
}
.wizard-content[data-question="scope"] .detail-card {
 width:100% !important; height:100% !important; min-width:0 !important; min-height:0 !important;
 flex:initial !important; transform:none !important;
}
.wizard-content[data-question="scope"] .detail-card .detail-card-face {
 display:grid !important; grid-template-rows:minmax(0,1fr) auto !important;
 height:100% !important; min-height:0 !important; padding:6px !important;
 transform:none !important; overflow:hidden !important; background:#102d40 !important;
}
.wizard-content[data-question="scope"] .detail-card .detail-card-art {
 position:relative !important; inset:auto !important; width:100% !important;
 height:100% !important; min-height:0 !important; margin:0 !important;
 overflow:hidden !important; background:transparent !important;
}
.wizard-content[data-question] .detail-card-art img {
 position:static !important; width:100% !important; height:100% !important;
 max-width:100% !important; max-height:100% !important; object-fit:contain !important;
 transform:none !important;
}
.wizard-content[data-question="scope"] .detail-card .detail-card-copy {
 position:relative !important; inset:auto !important; min-height:0 !important;
 padding:5px 4px !important; flex:none !important; overflow:visible !important;
}
.wizard-content[data-question="scope"] .detail-card-copy strong {font-size:12px !important;line-height:1.2 !important;}
.wizard-content[data-question="scope"] .detail-card-copy small {font-size:10px !important;line-height:1.25 !important;}
.wizard-content[data-question="scope"] .detail-card-check {width:20px !important;height:20px !important;top:7px !important;right:7px !important;}

/* Every choice reserves its own text row, including carousel slides. */
.wizard-content[data-question] .detail-card .detail-card-face {
 display:grid !important; grid-template-rows:minmax(0,1fr) auto !important;
 align-items:stretch !important; justify-content:stretch !important;
 box-sizing:border-box !important;
}
.wizard-content[data-question] .detail-card .detail-card-art {
 display:grid !important; position:relative !important; inset:auto !important;
 width:100% !important; min-width:0 !important; height:100% !important; min-height:0 !important;
 margin:0 !important; overflow:hidden !important; box-sizing:border-box !important;
}
.wizard-content[data-question] .detail-card .detail-card-art img {
 display:block !important; position:absolute !important; inset:0 !important;
 width:100% !important; height:100% !important; object-fit:contain !important;
 padding:12px !important; box-sizing:border-box !important;
}
.wizard-content[data-question] .detail-card .detail-card-copy {
 display:flex !important; position:relative !important; inset:auto !important;
 visibility:visible !important; opacity:1 !important; min-width:0 !important;
 min-height:0 !important; flex:none !important; padding:10px 12px 14px !important;
 z-index:1; box-sizing:border-box !important;
}
.wizard-content[data-question] .detail-card .detail-card-copy strong { white-space:normal !important; overflow-wrap:anywhere; }
.wizard-content[data-question="scope"] .detail-card .detail-card-copy,
.wizard-content[data-question][data-option-count="7"] .detail-card .detail-card-copy,
.wizard-content[data-question][data-option-count="9"] .detail-card .detail-card-copy {padding:5px 6px 7px !important;}
