/* ==========================================================================
   Mundo Neve, versão 3: estrutura de restaurante clássico (referência Savory)
   com o manual da marca: 6 cores oficiais, Poppins + Hibana + Source Code Pro,
   logos e ícones vetoriais da marca.
   ========================================================================== */

@font-face { font-family: "Hibana"; src: url("../assets/fonts/hibana.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../assets/fonts/poppins-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../assets/fonts/poppins-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../assets/fonts/poppins-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../assets/fonts/poppins-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Source Code Pro"; src: url("../assets/fonts/sourcecode-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Source Code Pro"; src: url("../assets/fonts/sourcecode-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }

:root {
  /* Paleta oficial do manual (Elementor > Cores globais) */
  --carvao: #262626;
  --araucaria: #2B4E30;
  --serra: #1D4D82;
  --laranja: #FB9530;
  --celeiro: #D20D0D;
  --neve: #EBE5D9;

  /* Derivadas para texto e linhas */
  --tinta: var(--carvao);
  --suave: #57534D;
  --linha: #D3CBBB;
  --neve-clara: #F3EFE7;

  /* Fontes do manual (Elementor > Fontes globais) */
  --f-titulo: "Poppins", system-ui, sans-serif;            /* 700, caixa-alta, como nos posts */
  --f-destaque: "Hibana", "Poppins", system-ui, sans-serif; /* frases de abertura */
  --f-rotulo: "Source Code Pro", ui-monospace, Consolas, monospace;
  --f-texto: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;

  --margem: clamp(1.25rem, 5vw, 4.5rem);
  --largura: 76rem;
  --secao: clamp(5rem, 10vw, 8.5rem);
  --raio: 4px;
  --topo: 6.75rem;

  /* Grão de papel bem sutil para fundos claros */
  --grao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .16 0 0 0 0 .1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 4.5rem; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body { margin: 0; background: var(--neve); color: var(--tinta); font: 400 1.0625rem/1.75 var(--f-texto); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
p { margin: 0 0 1em; }
a { color: inherit; text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
:focus-visible { outline: 2px solid var(--laranja); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--laranja); color: var(--carvao); padding: .6rem 1rem; font-weight: 600; }
.pular:focus { top: 1rem; }

/* Conteúdo pendente (somente no layout de aprovação) */
.confirmar { display: inline-block; padding: .1em .55em; border-radius: 3px; background: #FFF1C2; color: #5A4300; font: 400 .82em/1.5 var(--f-texto); }

/* ---------- Sistema de títulos (rótulo + título + ornamento) ---------- */

.rotulo { font: 500 .95rem/1.4 var(--f-rotulo); color: var(--araucaria); margin: 0 0 .9rem; letter-spacing: .01em; }
.titulo {
  font: 700 clamp(1.9rem, 1.2rem + 2.4vw, 3.1rem)/1.08 var(--f-titulo);
  text-transform: uppercase; letter-spacing: .01em;
  margin: 0; text-wrap: balance;
}
.lead { font: 500 clamp(1.25rem, 1.05rem + .7vw, 1.6rem)/1.45 var(--f-destaque); margin-bottom: 1.25rem; }

/* Floco de neve do selo como ornamento, com filetes dos lados */
.ornamento {
  --tam: 1.35rem;
  display: block; width: 9rem; height: var(--tam); margin: 1.4rem auto 1.8rem;
  color: var(--laranja); background: currentColor;
  -webkit-mask:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='152.38 129.50 406.54 450.56'%3E%3Cpath fill='currentColor' fill-rule='nonzero' d='M405.47 164.65C405.46 164.66 405.46 164.66 405.46 164.67L405.47 164.65M305.82 214.18L305.83 214.19C305.83 214.19 305.82 214.18 305.82 214.18M405.47 214.19C405.46 214.20 405.46 214.20 405.46 214.20L405.47 214.19M546.51 308.10L546.56 308.12C546.55 308.12 546.53 308.11 546.51 308.10M164.73 308.12C164.71 308.12 164.68 308.13 164.66 308.14L164.73 308.12M502.93 331.68L502.99 331.70C502.97 331.69 502.95 331.68 502.93 331.68M208.30 331.70C208.28 331.70 208.26 331.71 208.23 331.71L208.30 331.70M544.28 393.61C544.28 393.61 544.28 393.62 544.28 393.62L544.28 393.61M166.21 452.64C166.21 452.64 166.20 452.64 166.19 452.65L166.21 452.64M541.20 459.81C541.21 459.81 541.21 459.81 541.22 459.81L541.20 459.81M411.23 489.59L411.27 489.63C411.26 489.62 411.25 489.60 411.23 489.59M411.24 539.14L411.28 539.17C411.26 539.16 411.25 539.15 411.24 539.14M405.47 544.90C405.48 544.90 405.48 544.91 405.48 544.91L405.47 544.90M355.66 580.06C348.98 580.06 343.55 574.63 343.55 567.96L343.55 518.07L311.56 550.53C307.00 555.15 299.06 555.19 294.45 550.66C289.70 545.97 289.65 538.30 294.31 533.54L343.56 483.59L343.56 468.53L311.57 500.98C307.02 505.59 299.06 505.64 294.45 501.12C289.71 496.42 289.65 488.75 294.32 484.00L343.56 434.03L343.56 375.09L291.70 403.15L271.20 470.22C269.28 476.48 262.44 480.18 256.13 478.27C249.70 476.29 246.10 469.51 248.05 463.15L261.37 419.55L248.13 426.72L227.62 493.79C225.70 500.05 218.85 503.71 212.54 501.84C209.42 500.89 206.88 498.80 205.36 495.95C203.84 493.09 203.52 489.81 204.46 486.71L217.79 443.13L173.91 466.87C168.33 469.89 160.59 467.67 157.52 461.98C155.98 459.14 155.63 455.87 156.56 452.77C157.48 449.67 159.55 447.11 162.40 445.57L206.27 421.84L162.49 409.14C156.07 407.27 152.38 400.54 154.24 394.13C156.10 387.77 162.80 384.04 169.19 385.88L236.61 405.43L249.85 398.26L206.06 385.57C199.65 383.70 195.96 376.97 197.81 370.58C199.66 364.22 206.37 360.48 212.73 362.29L280.18 381.85L330.22 354.78L280.17 327.70L212.81 347.23C211.76 347.55 210.60 347.72 209.43 347.72C204.08 347.72 199.30 344.13 197.81 338.98C195.95 332.57 199.66 325.85 206.06 323.99L249.84 311.29L236.59 304.13L169.23 323.66C168.19 323.97 167.03 324.14 165.86 324.14C160.50 324.14 155.73 320.55 154.23 315.41C153.33 312.31 153.69 309.05 155.25 306.21C156.81 303.37 159.38 301.31 162.49 300.41L206.26 287.72L162.40 263.99C156.53 260.80 154.34 253.45 157.51 247.58C159.04 244.74 161.60 242.66 164.70 241.73C167.81 240.80 171.08 241.15 173.93 242.69L217.79 266.42L204.46 222.83C202.52 216.46 206.12 209.68 212.49 207.72C215.56 206.78 218.84 207.08 221.69 208.58C224.56 210.10 226.66 212.64 227.62 215.75L248.12 282.84L261.36 290.00L248.04 246.42C246.09 240.03 249.69 233.26 256.06 231.30C262.46 229.36 269.23 232.96 271.19 239.32L291.69 306.41L343.55 334.47L343.55 275.51L294.31 225.55C292.05 223.27 290.80 220.22 290.83 216.98C290.85 213.74 292.13 210.70 294.44 208.43C296.73 206.16 299.82 205.13 303.01 204.95C306.25 204.97 309.28 206.25 311.56 208.56L343.55 241.02L343.55 225.95L294.31 176.01C289.63 171.26 289.68 163.58 294.43 158.89C299.19 154.20 306.86 154.26 311.54 159.00L343.54 191.48L343.54 141.60C343.54 134.93 348.97 129.50 355.65 129.50C362.32 129.50 367.75 134.93 367.75 141.60L367.75 191.48L399.74 159.02C402.02 156.72 405.05 155.44 408.29 155.42L408.37 155.42C411.58 155.42 414.60 156.65 416.88 158.91C419.17 161.17 420.45 164.20 420.47 167.44C420.49 170.68 419.25 173.72 416.98 176.02L367.75 225.96L367.75 241.02L399.74 208.56C402.02 206.25 405.05 204.97 408.29 204.95C411.66 204.73 414.58 206.17 416.88 208.45C419.17 210.71 420.45 213.74 420.47 216.98C420.49 220.22 419.25 223.26 416.98 225.56L367.75 275.51L367.75 334.47L419.60 306.41L440.11 239.33C442.06 232.96 448.83 229.32 455.22 231.29C461.61 233.25 465.21 240.03 463.26 246.42L449.93 290.01L463.18 282.84L483.69 215.75C485.63 209.39 492.40 205.77 498.78 207.70C505.19 209.68 508.79 216.46 506.84 222.83L493.51 266.43L537.38 242.69C543.24 239.51 550.60 241.71 553.78 247.57C556.96 253.43 554.77 260.80 548.90 263.98L505.03 287.72L548.80 300.42C555.21 302.27 558.91 309.00 557.06 315.40C555.23 321.68 548.17 325.47 541.99 323.64L474.70 304.13L461.45 311.29L505.23 323.99C511.63 325.85 515.34 332.57 513.49 338.98C511.64 345.27 504.59 349.08 498.42 347.22L431.12 327.70L381.08 354.78L431.12 381.85L498.49 362.32C505.05 360.50 511.59 364.12 513.48 370.54C515.34 376.95 511.66 383.68 505.28 385.57L461.46 398.27L474.71 405.43L542.07 385.90C548.51 384.11 555.20 387.81 557.06 394.13C558.91 400.56 555.21 407.28 548.82 409.14L548.81 409.14L505.03 421.84L548.90 445.57C551.73 447.09 553.81 449.64 554.74 452.74C555.66 455.84 555.33 459.12 553.79 461.98C550.71 467.66 543.04 469.93 537.37 466.86L493.50 443.13L506.83 486.71C508.78 493.09 505.18 499.87 498.81 501.83C492.45 503.76 485.61 500.07 483.69 493.82L463.17 426.72L449.92 419.55L463.24 463.15C465.19 469.50 461.60 476.28 455.25 478.25C448.77 480.21 442.03 476.50 440.10 470.25L419.60 403.14L367.75 375.08L367.75 434.05L416.99 483.99C421.67 488.74 421.61 496.42 416.87 501.11C412.25 505.66 404.19 505.56 399.71 500.95L367.76 468.53L367.76 483.59L416.99 533.54C419.26 535.83 420.50 538.88 420.48 542.11C420.46 545.35 419.17 548.39 416.87 550.66C412.26 555.18 404.19 555.10 399.71 550.49L367.76 518.08L367.76 567.96C367.76 574.63 362.33 580.06 355.66 580.06Z'/%3E%3C/svg%3E") center / var(--tam) var(--tam) no-repeat,
    linear-gradient(#000, #000) left center / calc(50% - var(--tam)) 1px no-repeat,
    linear-gradient(#000, #000) right center / calc(50% - var(--tam)) 1px no-repeat;
          mask:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='152.38 129.50 406.54 450.56'%3E%3Cpath fill='currentColor' fill-rule='nonzero' d='M405.47 164.65C405.46 164.66 405.46 164.66 405.46 164.67L405.47 164.65M305.82 214.18L305.83 214.19C305.83 214.19 305.82 214.18 305.82 214.18M405.47 214.19C405.46 214.20 405.46 214.20 405.46 214.20L405.47 214.19M546.51 308.10L546.56 308.12C546.55 308.12 546.53 308.11 546.51 308.10M164.73 308.12C164.71 308.12 164.68 308.13 164.66 308.14L164.73 308.12M502.93 331.68L502.99 331.70C502.97 331.69 502.95 331.68 502.93 331.68M208.30 331.70C208.28 331.70 208.26 331.71 208.23 331.71L208.30 331.70M544.28 393.61C544.28 393.61 544.28 393.62 544.28 393.62L544.28 393.61M166.21 452.64C166.21 452.64 166.20 452.64 166.19 452.65L166.21 452.64M541.20 459.81C541.21 459.81 541.21 459.81 541.22 459.81L541.20 459.81M411.23 489.59L411.27 489.63C411.26 489.62 411.25 489.60 411.23 489.59M411.24 539.14L411.28 539.17C411.26 539.16 411.25 539.15 411.24 539.14M405.47 544.90C405.48 544.90 405.48 544.91 405.48 544.91L405.47 544.90M355.66 580.06C348.98 580.06 343.55 574.63 343.55 567.96L343.55 518.07L311.56 550.53C307.00 555.15 299.06 555.19 294.45 550.66C289.70 545.97 289.65 538.30 294.31 533.54L343.56 483.59L343.56 468.53L311.57 500.98C307.02 505.59 299.06 505.64 294.45 501.12C289.71 496.42 289.65 488.75 294.32 484.00L343.56 434.03L343.56 375.09L291.70 403.15L271.20 470.22C269.28 476.48 262.44 480.18 256.13 478.27C249.70 476.29 246.10 469.51 248.05 463.15L261.37 419.55L248.13 426.72L227.62 493.79C225.70 500.05 218.85 503.71 212.54 501.84C209.42 500.89 206.88 498.80 205.36 495.95C203.84 493.09 203.52 489.81 204.46 486.71L217.79 443.13L173.91 466.87C168.33 469.89 160.59 467.67 157.52 461.98C155.98 459.14 155.63 455.87 156.56 452.77C157.48 449.67 159.55 447.11 162.40 445.57L206.27 421.84L162.49 409.14C156.07 407.27 152.38 400.54 154.24 394.13C156.10 387.77 162.80 384.04 169.19 385.88L236.61 405.43L249.85 398.26L206.06 385.57C199.65 383.70 195.96 376.97 197.81 370.58C199.66 364.22 206.37 360.48 212.73 362.29L280.18 381.85L330.22 354.78L280.17 327.70L212.81 347.23C211.76 347.55 210.60 347.72 209.43 347.72C204.08 347.72 199.30 344.13 197.81 338.98C195.95 332.57 199.66 325.85 206.06 323.99L249.84 311.29L236.59 304.13L169.23 323.66C168.19 323.97 167.03 324.14 165.86 324.14C160.50 324.14 155.73 320.55 154.23 315.41C153.33 312.31 153.69 309.05 155.25 306.21C156.81 303.37 159.38 301.31 162.49 300.41L206.26 287.72L162.40 263.99C156.53 260.80 154.34 253.45 157.51 247.58C159.04 244.74 161.60 242.66 164.70 241.73C167.81 240.80 171.08 241.15 173.93 242.69L217.79 266.42L204.46 222.83C202.52 216.46 206.12 209.68 212.49 207.72C215.56 206.78 218.84 207.08 221.69 208.58C224.56 210.10 226.66 212.64 227.62 215.75L248.12 282.84L261.36 290.00L248.04 246.42C246.09 240.03 249.69 233.26 256.06 231.30C262.46 229.36 269.23 232.96 271.19 239.32L291.69 306.41L343.55 334.47L343.55 275.51L294.31 225.55C292.05 223.27 290.80 220.22 290.83 216.98C290.85 213.74 292.13 210.70 294.44 208.43C296.73 206.16 299.82 205.13 303.01 204.95C306.25 204.97 309.28 206.25 311.56 208.56L343.55 241.02L343.55 225.95L294.31 176.01C289.63 171.26 289.68 163.58 294.43 158.89C299.19 154.20 306.86 154.26 311.54 159.00L343.54 191.48L343.54 141.60C343.54 134.93 348.97 129.50 355.65 129.50C362.32 129.50 367.75 134.93 367.75 141.60L367.75 191.48L399.74 159.02C402.02 156.72 405.05 155.44 408.29 155.42L408.37 155.42C411.58 155.42 414.60 156.65 416.88 158.91C419.17 161.17 420.45 164.20 420.47 167.44C420.49 170.68 419.25 173.72 416.98 176.02L367.75 225.96L367.75 241.02L399.74 208.56C402.02 206.25 405.05 204.97 408.29 204.95C411.66 204.73 414.58 206.17 416.88 208.45C419.17 210.71 420.45 213.74 420.47 216.98C420.49 220.22 419.25 223.26 416.98 225.56L367.75 275.51L367.75 334.47L419.60 306.41L440.11 239.33C442.06 232.96 448.83 229.32 455.22 231.29C461.61 233.25 465.21 240.03 463.26 246.42L449.93 290.01L463.18 282.84L483.69 215.75C485.63 209.39 492.40 205.77 498.78 207.70C505.19 209.68 508.79 216.46 506.84 222.83L493.51 266.43L537.38 242.69C543.24 239.51 550.60 241.71 553.78 247.57C556.96 253.43 554.77 260.80 548.90 263.98L505.03 287.72L548.80 300.42C555.21 302.27 558.91 309.00 557.06 315.40C555.23 321.68 548.17 325.47 541.99 323.64L474.70 304.13L461.45 311.29L505.23 323.99C511.63 325.85 515.34 332.57 513.49 338.98C511.64 345.27 504.59 349.08 498.42 347.22L431.12 327.70L381.08 354.78L431.12 381.85L498.49 362.32C505.05 360.50 511.59 364.12 513.48 370.54C515.34 376.95 511.66 383.68 505.28 385.57L461.46 398.27L474.71 405.43L542.07 385.90C548.51 384.11 555.20 387.81 557.06 394.13C558.91 400.56 555.21 407.28 548.82 409.14L548.81 409.14L505.03 421.84L548.90 445.57C551.73 447.09 553.81 449.64 554.74 452.74C555.66 455.84 555.33 459.12 553.79 461.98C550.71 467.66 543.04 469.93 537.37 466.86L493.50 443.13L506.83 486.71C508.78 493.09 505.18 499.87 498.81 501.83C492.45 503.76 485.61 500.07 483.69 493.82L463.17 426.72L449.92 419.55L463.24 463.15C465.19 469.50 461.60 476.28 455.25 478.25C448.77 480.21 442.03 476.50 440.10 470.25L419.60 403.14L367.75 375.08L367.75 434.05L416.99 483.99C421.67 488.74 421.61 496.42 416.87 501.11C412.25 505.66 404.19 505.56 399.71 500.95L367.76 468.53L367.76 483.59L416.99 533.54C419.26 535.83 420.50 538.88 420.48 542.11C420.46 545.35 419.17 548.39 416.87 550.66C412.26 555.18 404.19 555.10 399.71 550.49L367.76 518.08L367.76 567.96C367.76 574.63 362.33 580.06 355.66 580.06Z'/%3E%3C/svg%3E") center / var(--tam) var(--tam) no-repeat,
    linear-gradient(#000, #000) left center / calc(50% - var(--tam)) 1px no-repeat,
    linear-gradient(#000, #000) right center / calc(50% - var(--tam)) 1px no-repeat;
}
.ornamento--esq { margin-left: 0; }

/* Ícones da marca (SVG como máscara, cor por CSS) */
.icone {
  display: inline-block; width: 3.75rem; height: 3.75rem; background: currentColor;
  -webkit-mask: var(--icone) center / contain no-repeat; mask: var(--icone) center / contain no-repeat;
}
.icone--grande { width: 4.5rem; height: 4.5rem; }

/* ---------- Botões ---------- */

.botao {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 3.1rem; padding: .75rem 1.7rem; border-radius: var(--raio);
  font: 600 .9rem/1.2 var(--f-texto); text-transform: uppercase; letter-spacing: .06em;
  text-decoration: none; white-space: nowrap; border: 2px solid transparent;
  transition: background-color .25s, color .25s, border-color .25s, transform .1s;
}
.botao:active { transform: translateY(1px); }
.botao--pequeno { min-height: 2.6rem; padding: .5rem 1.15rem; font-size: .8rem; }
.botao--laranja { background: var(--laranja); color: var(--carvao); }
.botao--laranja:hover { background: #FFAA55; }
.botao--carvao { background: var(--carvao); color: var(--neve); }
.botao--carvao:hover { background: var(--araucaria); }
.botao--contorno-claro { border-color: var(--neve); color: var(--neve); }
.botao--contorno-claro:hover { background: var(--neve); color: var(--carvao); }

.link-sublinhado { font: 600 .85rem/1 var(--f-texto); text-transform: uppercase; letter-spacing: .08em; text-decoration: none; border-bottom: 2px solid var(--laranja); padding-bottom: .35rem; }
.link-sublinhado:hover { color: var(--araucaria); }

/* ---------- Topo (divided header) ---------- */

.topo { position: fixed; inset: 0 0 auto; z-index: 50; color: var(--neve); transition: background-color .35s; }
.topo::before { content: ""; position: absolute; inset: 0 0 -2rem; background: linear-gradient(rgba(38,38,38,.6), rgba(38,38,38,0)); pointer-events: none; transition: opacity .35s; }
.topo[data-solido] { background: var(--carvao); }
.topo[data-solido]::before { opacity: 0; }

.topo__barra {
  position: relative; max-width: calc(var(--largura) + 2 * var(--margem)); margin: 0 auto;
  padding: 0 var(--margem); height: var(--topo);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem;
  transition: height .35s;
}
.topo[data-solido] .topo__barra { height: 5.25rem; }
.topo__nav { display: flex; align-items: center; gap: clamp(1.25rem, 2.4vw, 2.25rem); }
.topo__nav--dir { justify-content: flex-end; }
.topo__nav > a:not(.botao) { font: 500 .82rem/1 var(--f-texto); text-transform: uppercase; letter-spacing: .1em; text-decoration: none; padding: .5rem 0; border-bottom: 2px solid transparent; }
.topo__nav > a:not(.botao):hover { border-bottom-color: var(--laranja); }
.topo__logo { display: block; }
.topo__logo img { width: 5rem; transition: width .35s; filter: drop-shadow(0 4px 14px rgba(0,0,0,.3)); }
.topo[data-solido] .topo__logo img { width: 3.75rem; }

.topo__menu { display: none; }
.menu-movel { display: none; }

@media (max-width: 1023px) {
  :root { --topo: 5rem; }
  .topo[data-solido] .topo__barra { height: var(--topo); }
  .topo__barra { grid-template-columns: auto 1fr auto; }
  .topo__nav { display: none; }
  .topo__logo { grid-column: 1; }
  .topo__logo img, .topo[data-solido] .topo__logo img { width: 3.4rem; }
  .topo__menu {
    grid-column: 3; display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem;
    background: none; border: 0; color: inherit; cursor: pointer; padding: 0;
  }
  .topo__menu-icone, .topo__menu-icone::before, .topo__menu-icone::after { display: block; width: 1.5rem; height: 2px; background: currentColor; transition: transform .2s; }
  .topo__menu-icone { position: relative; }
  .topo__menu-icone::before, .topo__menu-icone::after { content: ""; position: absolute; left: 0; }
  .topo__menu-icone::before { top: -7px; }
  .topo__menu-icone::after { top: 7px; }
  .topo__menu[aria-expanded="true"] .topo__menu-icone { background: transparent; }
  .topo__menu[aria-expanded="true"] .topo__menu-icone::before { transform: translateY(7px) rotate(45deg); }
  .topo__menu[aria-expanded="true"] .topo__menu-icone::after { transform: translateY(-7px) rotate(-45deg); }

  .menu-movel[data-aberto] {
    display: flex; flex-direction: column; align-items: center; gap: .25rem;
    position: fixed; inset: var(--topo) 0 0; background: var(--carvao); padding: 2rem var(--margem);
    overflow-y: auto;
  }
  .menu-movel a:not(.botao) { font: 700 1.5rem/1.2 var(--f-titulo); text-transform: uppercase; text-decoration: none; padding: .75rem 0; }
  .menu-movel .botao { margin-top: 1.5rem; }
  .topo:has(.menu-movel[data-aberto]) { background: var(--carvao); }
}

/* ---------- Slider ---------- */

.slider { position: relative; height: 100svh; min-height: 34rem; max-height: 62rem; color: var(--neve); overflow: hidden; background: var(--carvao); }
@supports not (height: 100svh) { .slider { height: 100vh; } }
.slider__trilho, .slide { position: absolute; inset: 0; }
.slide { opacity: 0; visibility: hidden; transition: opacity 1.1s ease, visibility 0s 1.1s; }
.slide.is-ativo { opacity: 1; visibility: visible; transition: opacity 1.1s ease; }
.slide__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(38,38,38,.62), rgba(38,38,38,.55) 45%, rgba(38,38,38,.78)); }
.slide__texto {
  position: relative; z-index: 1; height: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  padding: calc(var(--topo) + 1rem) var(--margem) 5rem;
}
.slide .rotulo { color: var(--laranja); font-size: 1.05rem; }
.slide__titulo {
  font: 700 clamp(2.4rem, 1rem + 5.6vw, 5.6rem)/1.02 var(--f-titulo);
  text-transform: uppercase; letter-spacing: -.005em; margin: 0 0 2.25rem; max-width: 13em; text-wrap: balance;
  text-shadow: 0 2px 24px rgba(0,0,0,.25);
}
.slide__acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: .9rem; }

@media (prefers-reduced-motion: no-preference) {
  .slide.is-ativo .slide__foto { animation: aproximar 9s ease-out both; }
  .slide.is-ativo .slide__texto > * { animation: subir .9s cubic-bezier(.2,.7,.2,1) both; }
  .slide.is-ativo .slide__texto > :nth-child(2) { animation-delay: .12s; }
  .slide.is-ativo .slide__texto > :nth-child(3) { animation-delay: .24s; }
}
@keyframes aproximar { from { transform: scale(1.08); } to { transform: scale(1); } }
@keyframes subir { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

.slider__controles { position: absolute; left: 0; right: 0; bottom: 2rem; z-index: 2; display: flex; justify-content: center; align-items: center; gap: 1.5rem; }
.slider__pontos { display: flex; gap: .6rem; }
.slider__pontos button { width: 2.25rem; height: 2.75rem; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.slider__pontos button::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 2px; background: rgba(235,229,217,.45); transition: background-color .3s; }
.slider__pontos button[aria-selected="true"]::before { background: var(--laranja); }
.slider__seta { width: 2.75rem; height: 2.75rem; border: 1px solid rgba(235,229,217,.5); border-radius: 50%; background: none; color: var(--neve); cursor: pointer; position: relative; transition: border-color .2s, background-color .2s; }
.slider__seta:hover { border-color: var(--laranja); background: rgba(38,38,38,.3); }
.slider__seta::before { content: ""; position: absolute; left: 50%; top: 50%; width: .55rem; height: .55rem; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translate(-30%, -50%) rotate(45deg); }
.slider__seta--prox::before { transform: translate(-70%, -50%) rotate(-135deg); }

/* ---------- Base de seções ---------- */

.historia, .cardapio, .destaques, .galeria, .perguntas, .chegar, .avaliacoes {
  padding-block: var(--secao);
  padding-inline: max(var(--margem), calc((100% - var(--largura)) / 2));
}
.cabeca { text-align: center; margin-bottom: clamp(2.5rem, 5vw, 3.5rem); }
.cabeca .titulo { margin-inline: auto; max-width: 18em; }

/* ---------- Nossa história ---------- */

.historia { display: grid; gap: clamp(3rem, 6vw, 6rem); align-items: center; }
@media (min-width: 960px) { .historia { grid-template-columns: 1fr 1.05fr; } }
.historia__texto .ornamento { margin-left: 0; }
.historia__texto > p:not(.lead):not(.rotulo) { color: var(--suave); max-width: 34em; }
.historia__selo { width: 6.5rem; margin-top: 2rem; }

.historia__fotos { position: relative; padding: 0 0 18% 0; }
.historia__foto { border-radius: var(--raio); object-fit: cover; }
.historia__foto--a { width: 72%; aspect-ratio: 4 / 5; }
.historia__foto--b { position: absolute; right: 0; bottom: 0; width: 52%; aspect-ratio: 4 / 5; border: 8px solid var(--neve); box-sizing: content-box; }

/* ---------- Diferenciais (ícones da marca) ---------- */

.diferenciais {
  background: var(--carvao); color: var(--neve);
  display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 3rem 2.5rem;
  padding: clamp(4rem, 8vw, 6rem) max(var(--margem), calc((100% - var(--largura)) / 2));
  text-align: center;
}
.diferencial .icone { color: var(--neve); margin-bottom: 1.25rem; }
.diferencial h3 { font: 700 1.05rem/1.3 var(--f-titulo); text-transform: uppercase; letter-spacing: .04em; margin: 0 0 .6rem; color: var(--laranja); }
.diferencial p { margin: 0 auto; max-width: 17em; font-size: .98rem; color: rgba(235,229,217,.82); }

/* ---------- Cardápio (abas + lista de preços) ---------- */

.cardapio { background: var(--neve-clara); position: relative; isolation: isolate; overflow: hidden; }
/* Marca d'água: selo e floco da marca, em tom quase igual ao fundo */
.cardapio::before, .cardapio::after { content: ""; position: absolute; z-index: -1; pointer-events: none; background: center / contain no-repeat; }
.cardapio::before { width: clamp(22rem, 42vw, 40rem); aspect-ratio: 1; left: clamp(-14rem, -12vw, -6rem); top: clamp(-12rem, -9vw, -5rem); background-image: url("../assets/logos/marca-dagua-selo.svg"); transform: rotate(-14deg); }
.cardapio::after { width: clamp(14rem, 26vw, 24rem); aspect-ratio: 407 / 451; right: clamp(-8rem, -6vw, -3rem); bottom: clamp(-7rem, -5vw, -3rem); background-image: url("../assets/icones/marca-dagua-floco.svg"); transform: rotate(16deg); }
.abas__lista { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 2.5rem; border-bottom: 1px solid var(--linha); margin-bottom: 1.5rem; }
.abas__lista button {
  background: none; border: 0; border-bottom: 3px solid transparent; margin-bottom: -1px; cursor: pointer;
  font: 600 .9rem/1 var(--f-texto); text-transform: uppercase; letter-spacing: .08em; color: var(--suave);
  padding: 1rem .25rem; transition: color .2s, border-color .2s;
}
.abas__lista button:hover { color: var(--tinta); }
.abas__lista button[aria-selected="true"] { color: var(--tinta); border-bottom-color: var(--laranja); }
.aviso { text-align: center; margin-bottom: 2.5rem; }

.abas__painel { display: grid; gap: 2.5rem; align-items: center; }
.abas__painel[hidden] { display: none; }
@media (min-width: 960px) { .abas__painel { grid-template-columns: .85fr 1.15fr; gap: 5rem; } }
.abas__painel img { width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; border-radius: var(--raio); }

.precos { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.9rem; }
.precos li { display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; column-gap: .75rem; }
.precos li::before { content: ""; grid-column: 2; grid-row: 1; border-bottom: 2px dotted var(--linha); transform: translateY(-.3em); }
.precos__nome { grid-column: 1; grid-row: 1; font: 700 1.05rem/1.3 var(--f-titulo); text-transform: uppercase; letter-spacing: .03em; }
.precos__valor { grid-column: 3; grid-row: 1; font: 600 1.05rem/1.3 var(--f-rotulo); color: var(--araucaria); }
.precos__desc { grid-column: 1 / -1; color: var(--suave); font-size: .95rem; margin-top: .3rem; }

.cardapio__cta { text-align: center; margin: 3.5rem 0 0; }

/* ---------- Faixa de reservas (parallax) ---------- */

.reserva { position: relative; isolation: isolate; color: var(--neve); text-align: center; overflow: hidden; padding: clamp(6rem, 13vw, 10rem) var(--margem); }
.reserva__fundo {
  position: absolute; inset: 0; z-index: -2;
  background: url("../assets/img/estrada-2400.webp") 40% 50% / cover no-repeat;
}
@media (min-width: 1024px) and (hover: hover) and (prefers-reduced-motion: no-preference) {
  .reserva__fundo { background-attachment: fixed; }
}
.reserva::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(38,38,38,.62); }
.reserva .rotulo { color: var(--laranja); }
.reserva .titulo { max-width: 14em; margin-inline: auto; }
.reserva p { max-width: 34em; margin-inline: auto; }
.reserva__acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: .9rem; margin-top: 2rem; }

/* ---------- Destaques alternados ---------- */

.destaques { display: grid; gap: clamp(4rem, 9vw, 7rem); }
.destaque { display: grid; gap: 2.5rem; align-items: center; }
.destaque img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: var(--raio); }
.destaque__texto .ornamento { margin-left: 0; }
.destaque__texto p:not(.rotulo) { color: var(--suave); max-width: 32em; margin-bottom: 2rem; }
@media (min-width: 960px) {
  .destaque { grid-template-columns: 1fr 1fr; gap: 5.5rem; }
  .destaque--invertido img { order: 2; }
}

/* ---------- Galeria ---------- */

.galeria { background: var(--carvao); color: var(--neve); }
.galeria .rotulo { color: var(--laranja); }
.galeria__grade { display: grid; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 11rem; grid-auto-flow: dense; gap: .6rem; }
.galeria__grade img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--raio); }
.g-alta { grid-row: span 2; }
.g-larga { grid-column: span 2; }
@media (min-width: 800px) { .galeria__grade { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 14rem; } }

/* ---------- Avaliações ---------- */

.avaliacoes { background: var(--araucaria); color: var(--neve); text-align: center; display: flex; flex-direction: column; align-items: center; }
.avaliacoes .icone { margin-bottom: 1.5rem; }
.avaliacoes__nota { display: flex; align-items: center; gap: 1rem; margin: 2rem 0 .5rem; }
.avaliacoes__nota strong { font: 700 clamp(3.5rem, 2.5rem + 3vw, 5rem)/1 var(--f-titulo); }
.estrelas {
  font-size: 1.9rem; letter-spacing: .15em;
  background: linear-gradient(90deg, var(--laranja) calc(var(--nota) / 5 * 100%), rgba(235,229,217,.3) 0);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.avaliacoes__fonte { font-family: var(--f-rotulo); margin-bottom: 2.25rem; color: rgba(235,229,217,.85); }

/* ---------- Perguntas ---------- */

.perguntas { display: grid; gap: 2rem; }
@media (min-width: 960px) { .perguntas { grid-template-columns: 1fr 1.6fr; gap: 5rem; } }
.perguntas__lista details { border-bottom: 1px solid var(--linha); }
.perguntas__lista details:first-child { border-top: 1px solid var(--linha); }
.perguntas__lista summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem;
  padding: 1.35rem 0; font-weight: 600; font-size: 1.05rem;
}
.perguntas__lista summary::-webkit-details-marker { display: none; }
.perguntas__lista summary::after { content: "+"; flex: none; font: 400 1.6rem/1 var(--f-texto); color: var(--araucaria); transition: transform .25s; }
.perguntas__lista details[open] summary::after { transform: rotate(45deg); }
.perguntas__lista details p { color: var(--suave); padding-bottom: 1.5rem; margin: 0; max-width: 38em; }

/* ---------- Como chegar: mapa largo com cartão sobreposto ---------- */

.chegar { padding: 0; background: var(--carvao); }
.chegar__palco { position: relative; display: flex; flex-direction: column; }
.chegar__mapa { height: 24rem; background: var(--linha); }
.chegar__mapa iframe { display: block; width: 100%; height: 100%; border: 0; filter: grayscale(.45) contrast(1.05); }

.chegar__cartao {
  order: -1; position: relative;
  background: var(--carvao); color: var(--neve);
  padding: clamp(3rem, 8vw, 4rem) var(--margem) 3rem;
}
.chegar__selo { position: absolute; top: clamp(2.5rem, 6vw, 3rem); right: var(--margem); width: 4rem; }
.chegar .rotulo { color: var(--laranja); }
.chegar__titulo { font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.2rem); padding-right: 4.5rem; }
.chegar .ornamento { margin: 1.25rem 0 1.5rem; }
.chegar__endereco { font-style: normal; line-height: 1.6; color: rgba(235,229,217,.82); margin-bottom: 1.75rem; }
.chegar__endereco strong { display: block; color: var(--neve); font: 700 1.15rem/1.4 var(--f-titulo); text-transform: uppercase; letter-spacing: .02em; }

.chegar__dados { list-style: none; padding: 1.5rem 0 0; margin: 0 0 2rem; display: grid; gap: 1.1rem; border-top: 1px solid rgba(235,229,217,.16); }
.chegar__dados li { display: grid; grid-template-columns: 2.4rem 1fr; gap: 1rem; align-items: center; }
.chegar__dados .icone { width: 2.4rem; height: 2.4rem; color: var(--laranja); }
.chegar__dados h3 { font: 600 .75rem/1.3 var(--f-texto); text-transform: uppercase; letter-spacing: .1em; margin: 0 0 .15rem; color: rgba(235,229,217,.65); }
.chegar__dados p { margin: 0; }
.chegar__dados a { text-decoration: none; border-bottom: 1px solid rgba(235,229,217,.35); }
.chegar__dados a:hover { border-bottom-color: var(--laranja); }
.chegar__acoes { display: flex; flex-wrap: wrap; gap: .75rem; }

@media (min-width: 960px) {
  .chegar__mapa { height: max(46rem, 100svh); max-height: 54rem; }
  .chegar__cartao {
    position: absolute; top: 50%; right: max(var(--margem), calc((100% - var(--largura)) / 2));
    width: 32rem; transform: translateY(-50%);
    padding: 2.75rem 2.75rem 2.5rem; border-radius: var(--raio);
    box-shadow: 0 24px 60px rgba(38, 38, 38, .32);
  }
  .chegar__selo { top: 2.5rem; right: 2.75rem; }
  .chegar__acoes { flex-wrap: nowrap; }
}

/* ---------- Rodapé ---------- */

.rodape { background: var(--carvao); color: rgba(235,229,217,.8); font-size: .95rem; }
.rodape__topo {
  display: grid; gap: 2.5rem; padding: 4.5rem max(var(--margem), calc((100% - var(--largura)) / 2)) 3.5rem;
}
@media (min-width: 900px) { .rodape__topo { grid-template-columns: 1.3fr 1fr 1fr 1fr; align-items: start; } }
.rodape__logo { width: 7.5rem; }
.rodape__titulo { font: 700 .85rem/1.3 var(--f-titulo); text-transform: uppercase; letter-spacing: .1em; color: var(--laranja); margin: 0 0 .8rem; }
.rodape a { text-decoration: none; }
.rodape a:hover { color: var(--neve); text-decoration: underline; }
.rodape__insta { display: grid; grid-template-columns: repeat(3, 1fr); }
@media (min-width: 700px) { .rodape__insta { grid-template-columns: repeat(6, 1fr); } }
.rodape__insta a { display: block; overflow: hidden; }
.rodape__insta img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .5s, opacity .3s; }
.rodape__insta a:hover img { transform: scale(1.05); opacity: .85; }
.rodape__copy { margin: 0; text-align: center; padding: 1.5rem var(--margem); font-size: .85rem; color: rgba(235,229,217,.5); }

/* ==========================================================================
   Texturas de fundo: elementos da marca em tom quase igual ao fundo
   ========================================================================== */

.historia, .destaques, .perguntas, .galeria, .avaliacoes, .rodape, .diferenciais { position: relative; isolation: isolate; overflow: hidden; }
.historia::after, .destaques::before, .perguntas::before, .galeria::after, .rodape::before, .chegar__cartao::after {
  content: ""; position: absolute; z-index: -1; pointer-events: none; background: center / contain no-repeat;
}

/* Claras: grão de papel + marca d'água */
.historia, .destaques, .perguntas { background-color: var(--neve); background-image: var(--grao); }
.cardapio { background-image: var(--grao); }

.historia::after { /* linhas das montanhas do logo, saindo pelo canto */
  width: clamp(36rem, 70vw, 68rem); aspect-ratio: 993 / 316;
  right: clamp(-16rem, -10vw, -6rem); bottom: clamp(-3rem, -2vw, -1rem);
  background-image: url("../assets/texturas/montanhas-neve.svg");
}
.destaques::before { /* floco grande cortado na borda esquerda */
  width: clamp(18rem, 30vw, 30rem); aspect-ratio: 407 / 451;
  left: clamp(-15rem, -12vw, -8rem); top: 38%;
  background-image: url("../assets/texturas/floco-neve.svg"); transform: rotate(12deg);
}
.perguntas::before { /* selo atrás da coluna do título */
  width: clamp(20rem, 32vw, 30rem); aspect-ratio: 1;
  left: clamp(-12rem, -8vw, -5rem); bottom: clamp(-12rem, -8vw, -6rem);
  background-image: url("../assets/texturas/selo-neve.svg"); transform: rotate(-12deg);
}

/* Escuras e verde: flocos esparsos e montanhas esmaecidas */
.diferenciais { background-image: url("../assets/texturas/flocos-escuro.svg"); background-size: 320px 320px; }
.avaliacoes { background-image: url("../assets/texturas/flocos-verde.svg"); background-size: 360px 360px; }
.galeria::after {
  width: 120%; aspect-ratio: 993 / 316; left: -10%; bottom: -6%;
  background-image: url("../assets/texturas/montanhas-escuro.svg");
}
.rodape::before {
  width: clamp(20rem, 30vw, 28rem); aspect-ratio: 1; right: clamp(-9rem, -6vw, -4rem); top: clamp(-9rem, -6vw, -5rem);
  background-image: url("../assets/texturas/selo-escuro.svg"); transform: rotate(14deg);
}
.chegar__cartao { overflow: hidden; isolation: isolate; }
.chegar__cartao::after {
  width: 15rem; aspect-ratio: 407 / 451; right: -4rem; bottom: -5rem;
  background-image: url("../assets/texturas/floco-escuro.svg"); transform: rotate(-10deg);
}

/* ---------- Redes sociais ---------- */

.social { display: flex; align-items: center; gap: .5rem; }
.social a {
  display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%;
  border: 1px solid rgba(235,229,217,.35); color: var(--neve); text-decoration: none;
  transition: background-color .2s, border-color .2s, color .2s;
}
.social a:hover { background: var(--laranja); border-color: var(--laranja); color: var(--carvao); }
.social__icone { width: 1.15rem; height: 1.15rem; }

.social--topo { gap: .35rem; }
.social--topo a { width: 2.2rem; height: 2.2rem; border-color: rgba(235,229,217,.3); }
.social--topo .social__icone { width: 1rem; height: 1rem; }
@media (max-width: 1199px) { .social--topo { display: none; } }

.social--menu { margin-top: 1.5rem; gap: .75rem; }
.social--menu a { width: 3rem; height: 3rem; }
.social--cartao { margin-top: .3rem; }
.social--cartao a { width: 2.3rem; height: 2.3rem; }
.chegar__dados .social a { border: 1px solid rgba(235,229,217,.35); }
.social--rodape { margin-top: 1rem; }

/* ---------- Aberto agora ---------- */

.agora { display: inline-flex; align-items: center; gap: .5rem; margin-top: .45rem !important; font-size: .85rem; color: rgba(235,229,217,.75); }
.agora::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: rgba(235,229,217,.45); }
.agora[data-estado="aberto"] { color: var(--neve); }
.agora[data-estado="aberto"]::before { background: #5BC26A; box-shadow: 0 0 0 3px rgba(91,194,106,.2); }

.reserva__horario { font: 500 1.15rem/1.6 var(--f-destaque); }

/* ==========================================================================
   Páginas internas
   ========================================================================== */

.topo__nav a[aria-current="page"] { border-bottom-color: var(--laranja); }
.menu-movel a[aria-current="page"] { color: var(--laranja); }

/* Abertura da página */
.pagina-topo { position: relative; isolation: isolate; min-height: clamp(28rem, 66vh, 40rem); display: flex; align-items: flex-end; color: var(--neve); overflow: hidden; background: var(--carvao); }
.pagina-topo__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.pagina-topo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(38,38,38,.6), rgba(38,38,38,.45) 40%, rgba(38,38,38,.85)); }
.pagina-topo__texto { width: 100%; max-width: calc(var(--largura) + 2 * var(--margem)); margin: 0 auto; padding: calc(var(--topo) + 3rem) var(--margem) clamp(3rem, 6vw, 4.5rem); }
.pagina-topo .rotulo { color: var(--laranja); }
.pagina-topo__titulo { font: 700 clamp(2.4rem, 1.3rem + 4vw, 4.6rem)/1.02 var(--f-titulo); text-transform: uppercase; margin: 0 0 1.1rem; max-width: 14em; text-wrap: balance; }
.pagina-topo__resumo { font: 500 clamp(1.1rem, 1rem + .45vw, 1.4rem)/1.5 var(--f-destaque); max-width: 34em; margin: 0; color: rgba(235,229,217,.9); }
@media (prefers-reduced-motion: no-preference) {
  .pagina-topo__foto { animation: aproximar 9s ease-out both; }
  .pagina-topo__texto > * { animation: subir .9s cubic-bezier(.2,.7,.2,1) both; }
}

.migalhas { display: flex; flex-wrap: wrap; gap: .55rem; margin: 0 0 1.5rem; font: 500 .78rem/1.4 var(--f-texto); text-transform: uppercase; letter-spacing: .1em; color: rgba(235,229,217,.7); }
.migalhas a { text-decoration: none; }
.migalhas a:hover { color: var(--laranja); }

/* Seções genéricas */
.secao { position: relative; isolation: isolate; overflow: hidden; padding-block: var(--secao); padding-inline: max(var(--margem), calc((100% - var(--largura)) / 2)); }
.secao--neve { background-color: var(--neve); background-image: var(--grao); }
.secao--clara { background-color: var(--neve-clara); background-image: var(--grao); }
.secao--carvao { background: var(--carvao) url("../assets/texturas/flocos-escuro.svg") 0 0 / 320px 320px; color: var(--neve); }
.secao--verde { background: var(--araucaria) url("../assets/texturas/flocos-verde.svg") 0 0 / 360px 360px; color: var(--neve); }
.secao--carvao .rotulo, .secao--verde .rotulo { color: var(--laranja); }
/* Marca d'água de floco nas seções claras marcadas */
.secao--marca::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  width: clamp(18rem, 28vw, 28rem); aspect-ratio: 407 / 451; right: clamp(-12rem, -9vw, -6rem); top: clamp(-6rem, -4vw, -3rem);
  background: url("../assets/texturas/floco-neve.svg") center / contain no-repeat; transform: rotate(-14deg);
}
.secao--selo::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  width: clamp(20rem, 30vw, 30rem); aspect-ratio: 1; left: clamp(-12rem, -8vw, -5rem); bottom: clamp(-12rem, -8vw, -6rem);
  background: url("../assets/texturas/selo-neve.svg") center / contain no-repeat; transform: rotate(-12deg);
}
.secao--montanhas::after {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  width: clamp(36rem, 70vw, 68rem); aspect-ratio: 993 / 316; right: clamp(-16rem, -10vw, -6rem); bottom: clamp(-3rem, -2vw, -1rem);
  background: url("../assets/texturas/montanhas-neve.svg") center / contain no-repeat;
}
.texto { max-width: 42em; }
.texto p { color: var(--suave); }
.secao--carvao .texto p, .secao--verde .texto p { color: rgba(235,229,217,.82); }
.centro { text-align: center; }
.centro .texto { margin-inline: auto; }
.espaco-acima { margin-top: clamp(3rem, 6vw, 4.5rem); }

/* Frase de manifesto */
.manifesto { text-align: center; }
.manifesto__frase { font: 500 clamp(1.6rem, 1.05rem + 2.2vw, 2.9rem)/1.3 var(--f-destaque); max-width: 24em; margin: 0 auto; text-wrap: balance; }
.manifesto__fonte { font-family: var(--f-rotulo); margin: 1.75rem 0 0; color: rgba(235,229,217,.7); }

/* Grade de recursos com ícones da marca */
.recursos { display: grid; grid-template-columns: repeat(auto-fit, minmax(14.5rem, 1fr)); gap: 2.75rem 2.25rem; }
.recurso .icone { width: 3.25rem; height: 3.25rem; color: var(--araucaria); margin-bottom: 1.1rem; }
.secao--carvao .recurso .icone, .secao--verde .recurso .icone { color: var(--neve); }
.recurso h3 { font: 700 1rem/1.3 var(--f-titulo); text-transform: uppercase; letter-spacing: .04em; margin: 0 0 .45rem; }
.secao--carvao .recurso h3, .secao--verde .recurso h3 { color: var(--laranja); }
.recurso p { margin: 0; font-size: .98rem; color: var(--suave); }
.secao--carvao .recurso p, .secao--verde .recurso p { color: rgba(235,229,217,.8); }
.pendente { margin-top: 2.5rem; }

/* Passos (sequência real) */
.passos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 2.25rem; counter-reset: passo; }
.passos li { counter-increment: passo; border-top: 2px solid var(--laranja); padding-top: 1.3rem; }
.passos li::before { content: counter(passo, decimal-leading-zero); display: block; margin-bottom: .6rem; font: 600 1rem/1 var(--f-rotulo); color: var(--laranja); }
.passos h3 { font: 700 1.05rem/1.3 var(--f-titulo); text-transform: uppercase; letter-spacing: .03em; margin: 0 0 .45rem; }
.passos p { margin: 0; color: var(--suave); }

/* Faixa de chamada */
.faixa-cta { text-align: center; }
.faixa-cta .titulo { max-width: 16em; margin-inline: auto; }
.faixa-cta p { max-width: 34em; margin-inline: auto; color: rgba(235,229,217,.82); }
.faixa-cta__acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: .9rem; margin-top: 2rem; }

/* Formulário que monta a mensagem do WhatsApp */
.formulario { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.35rem 1.25rem; }
.campo { display: grid; gap: .45rem; align-content: start; }
.campo--largo { grid-column: 1 / -1; }
.campo label { font: 600 .78rem/1.3 var(--f-texto); text-transform: uppercase; letter-spacing: .08em; color: var(--tinta); }
.campo input, .campo select, .campo textarea {
  width: 100%; min-height: 3.1rem; padding: .8rem 1rem; border-radius: var(--raio);
  border: 1px solid #C9C0AE; background: #FBF9F5; color: var(--tinta); font: 400 1rem/1.4 var(--f-texto);
  transition: border-color .2s, box-shadow .2s;
}
.campo textarea { min-height: 7.5rem; resize: vertical; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--araucaria); box-shadow: 0 0 0 3px rgba(43,78,48,.18); }
.campo input:user-invalid, .campo select:user-invalid { border-color: var(--celeiro); }
.campo__ajuda { font-size: .85rem; color: var(--suave); }
.formulario__acoes { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: .5rem; }
.formulario__nota { margin: 0; font-size: .88rem; color: var(--suave); max-width: 30em; }
@media (max-width: 640px) { .formulario { grid-template-columns: 1fr; } }

.bloco-formulario { display: grid; gap: clamp(2.5rem, 6vw, 5rem); align-items: start; }
.bloco-formulario .ornamento { margin-left: 0; }
@media (min-width: 960px) { .bloco-formulario { grid-template-columns: .9fr 1.1fr; } }

/* Cardápio completo */
:root:has(.menu-nav) { scroll-padding-top: 10rem; }
.menu-nav {
  position: sticky; top: 5.25rem; z-index: 20;
  display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem 2.25rem;
  padding: 1rem var(--margem); background: rgba(243,239,231,.95); border-bottom: 1px solid var(--linha);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
@media (max-width: 1023px) { .menu-nav { top: var(--topo); gap: .3rem 1.5rem; } }
.menu-nav a { font: 600 .82rem/1 var(--f-texto); text-transform: uppercase; letter-spacing: .08em; text-decoration: none; padding: .55rem 0; border-bottom: 2px solid transparent; }
.menu-nav a:hover { border-bottom-color: var(--laranja); }
.menu-secao { display: grid; gap: clamp(2.5rem, 5vw, 5rem); align-items: start; }
.menu-secao + .menu-secao { margin-top: clamp(4.5rem, 9vw, 7rem); }
.menu-secao__foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--raio); }
.menu-secao .ornamento { margin-left: 0; }
.menu-secao .precos { margin-top: 2rem; }
@media (min-width: 960px) {
  .menu-secao { grid-template-columns: .8fr 1.2fr; }
  .menu-secao__foto { position: sticky; top: 11rem; }
  .menu-secao--invertida .menu-secao__foto { order: 2; }
}

/* Cartões de contato */
.cartoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(16.5rem, 1fr)); gap: 1.25rem; }
.cartao { position: relative; isolation: isolate; overflow: hidden; background: var(--carvao); color: var(--neve); border-radius: var(--raio); padding: clamp(1.75rem, 3vw, 2.5rem); display: flex; flex-direction: column; gap: .35rem; }
.cartao .icone { width: 2.9rem; height: 2.9rem; color: var(--laranja); margin-bottom: 1rem; }
.cartao h2 { font: 700 1.05rem/1.3 var(--f-titulo); text-transform: uppercase; letter-spacing: .05em; margin: 0 0 .4rem; color: var(--laranja); }
.cartao p { margin: 0; color: rgba(235,229,217,.88); }
.cartao a:not(.botao) { text-decoration: none; border-bottom: 1px solid rgba(235,229,217,.35); }
.cartao__espaco { flex: 1; min-height: 1.25rem; }
.cartao .botao { align-self: flex-start; }
.cartao .social { margin-top: .5rem; }
.cartao .agora { margin-top: .6rem !important; }

.mapa-largo { height: clamp(22rem, 45vw, 34rem); background: var(--linha); }
.mapa-largo iframe { display: block; width: 100%; height: 100%; border: 0; filter: grayscale(.45) contrast(1.05); }

.sem-quebra { white-space: nowrap; }

/* ==========================================================================
   Experiência do lugar, Instagram e redes sociais (revisão 15/10)
   ========================================================================== */

/* Redes sociais: círculo creme com ícone laranja, preenche no hover */
.social a {
  border: 1.5px solid rgba(235,229,217,.55);
  background: rgba(235,229,217,.07);
  color: var(--laranja);
  box-shadow: 0 0 0 0 rgba(251,149,48,0);
  transition: background-color .2s, border-color .2s, color .2s, box-shadow .25s, transform .2s;
}
.social a:hover, .social a:focus-visible { background: var(--laranja); border-color: var(--laranja); color: var(--carvao); box-shadow: 0 0 0 5px rgba(251,149,48,.18); transform: translateY(-1px); }
.social--topo { gap: .5rem; padding-left: .25rem; }
.social--topo a { width: 2.5rem; height: 2.5rem; }
.social--topo .social__icone { width: 1.15rem; height: 1.15rem; }
.topo__nav--dir { gap: clamp(1rem, 2vw, 1.9rem); }
@media (max-width: 1239px) { .social--topo { display: none; } }

/* Cartões de experiência com foto */
.experiencias { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: clamp(1.5rem, 3vw, 2.25rem); }
.experiencias--tres { grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); }
.experiencia img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--raio); margin-bottom: 1.25rem; transition: transform .6s ease; }
.experiencia { overflow: hidden; }
.experiencia:hover img { transform: scale(1.02); }
.experiencia h3 { font: 700 1.15rem/1.25 var(--f-titulo); text-transform: uppercase; letter-spacing: .03em; margin: 0 0 .45rem; }
.experiencia h3::before { content: ""; display: block; width: 2rem; height: 2px; background: var(--laranja); margin-bottom: .8rem; }
.experiencia p { margin: 0; color: var(--suave); }

/* Faixa panorâmica */
.panorama { position: relative; isolation: isolate; min-height: clamp(26rem, 55vw, 40rem); display: flex; align-items: flex-end; color: var(--neve); overflow: hidden; }
.panorama__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.panorama::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(38,38,38,0) 35%, rgba(38,38,38,.75)); }
.panorama__texto { width: 100%; max-width: calc(var(--largura) + 2 * var(--margem)); margin: 0 auto; padding: 3rem var(--margem) clamp(3rem, 6vw, 4.5rem); }
.panorama .rotulo { color: var(--laranja); }
.panorama .titulo { margin-bottom: 1rem; }
.panorama p:not(.rotulo) { max-width: 32em; margin: 0; }

/* Faixa de grupos: foto do mirante no fundo */
.reserva__fundo { background-image: url("../assets/img/hero-riacho-2400.webp"); background-position: 50% 55%; }

/* Galeria do Instagram */
.insta { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem; }
@media (min-width: 800px) { .insta { grid-template-columns: repeat(4, 1fr); } }
.insta__item { position: relative; display: block; overflow: hidden; border-radius: var(--raio); aspect-ratio: 1; background: #333; }
.insta__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease, opacity .3s; }
.insta__item::after {
  content: ""; position: absolute; inset: 0; opacity: 0; transition: opacity .3s;
  background: rgba(38,38,38,.45) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23EBE5D9' stroke-width='1.6'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4.2'/%3E%3C/svg%3E") center / 2.25rem no-repeat;
}
.insta__item:hover img, .insta__item:focus-visible img { transform: scale(1.05); }
.insta__item:hover::after, .insta__item:focus-visible::after { opacity: 1; }

/* ---------- Carrossel de fotos nos blocos imagem + texto ---------- */

.carrossel { position: relative; overflow: hidden; border-radius: var(--raio); aspect-ratio: 5 / 4; background: var(--carvao); }
.carrossel__trilho { position: absolute; inset: 0; }
.destaque .carrossel__foto, .carrossel__foto {
  position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto;
  object-fit: cover; border-radius: 0; opacity: 0; transition: opacity 1s ease;
}
.carrossel__foto.is-ativa { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .carrossel__foto.is-ativa { animation: aproximar 7s ease-out both; }
}
.carrossel::after {
  content: ""; position: absolute; inset: auto 0 0 0; height: 30%; pointer-events: none;
  background: linear-gradient(180deg, rgba(38,38,38,0), rgba(38,38,38,.55));
}
.carrossel__controles {
  position: absolute; left: 1.1rem; right: 1.1rem; bottom: 1rem; z-index: 1;
  display: flex; align-items: center; gap: .9rem;
}
.carrossel__pontos { display: flex; gap: .45rem; flex: 1; justify-content: center; }
.carrossel__pontos button { width: 1.6rem; height: 2rem; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.carrossel__pontos button::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 2px; background: rgba(235,229,217,.5); transition: background-color .3s; }
.carrossel__pontos button[aria-pressed="true"]::before { background: var(--laranja); }
.carrossel__seta {
  width: 2.5rem; height: 2.5rem; flex: none; border-radius: 50%; cursor: pointer; position: relative;
  border: 1.5px solid rgba(235,229,217,.7); background: rgba(38,38,38,.35); color: var(--neve);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); transition: background-color .2s, border-color .2s, color .2s;
}
.carrossel__seta:hover { background: var(--laranja); border-color: var(--laranja); color: var(--carvao); }
.carrossel__seta::before { content: ""; position: absolute; left: 50%; top: 50%; width: .5rem; height: .5rem; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translate(-30%, -50%) rotate(45deg); }
.carrossel__seta--prox::before { transform: translate(-70%, -50%) rotate(-135deg); }
@media (min-width: 960px) { .destaque--invertido .carrossel { order: 2; } }

/* Ícones de estrutura (mesmo traço dos ícones da marca) */

/* De Mundo Novo a Mundo Neve */
.historia-nome { text-align: center; }
.historia-nome__selo { width: 5.5rem; margin: 0 auto 1.5rem; }
.historia-nome .titulo { max-width: 16em; margin-inline: auto; }
.historia-nome .texto { margin-inline: auto; max-width: 40em; }
.historia-nome .texto p { color: rgba(235,229,217,.88); font-size: 1.08rem; }

/* Carrossel vertical do cardápio (muitas fotos: indicadores menores) */
.carrossel--retrato { aspect-ratio: 4 / 5; }
.carrossel--retrato .carrossel__pontos { gap: .3rem; }
.carrossel--retrato .carrossel__pontos button { width: .8rem; }
.menu-secao__foto .carrossel { width: 100%; }

/* Contador de fotos (substitui os pontinhos no carrossel com muitas fotos) */
.carrossel__contador { display: none; font: 600 .82rem/1 var(--f-rotulo); color: var(--neve); background: rgba(38,38,38,.55); padding: .45rem .7rem; border-radius: 999px; }
.carrossel--retrato .carrossel__pontos { display: none; }
.carrossel--retrato .carrossel__contador { display: inline-block; margin-inline: auto; }
/* Área de toque mínima de 24px nos pontinhos */
.carrossel__pontos button { min-width: 1.5rem; min-height: 1.5rem; }

/* Data de atualização (preço e horário) */
.atualizado { margin-top: .9rem; font-size: .82rem; color: var(--suave); }
.cartao .atualizado { color: rgba(235,229,217,.6); }

/* Resumo factual logo abaixo da abertura da home */
.resumo { background: var(--carvao); color: rgba(235,229,217,.88); padding: clamp(2rem, 4vw, 2.75rem) max(var(--margem), calc((100% - 56rem) / 2)); border-top: 1px solid rgba(235,229,217,.08); }
.resumo p { margin: 0 auto; max-width: 56rem; font-size: clamp(.95rem, .9rem + .2vw, 1.05rem); line-height: 1.75; text-align: center; }
