/* Brand refinements: burgundy, warm gold, print-inspired typography. */
:root { --header-height: 96px; }
.site-header { background: #300610; backdrop-filter: none; transition: none; }
.header-countdown { min-width: 258px; padding: 0 0 0 24px; border: 0; border-left: 1px solid #956345; border-radius: 0; background: none; gap: 6px; }
.countdown-label { color: #d3ac80; font-size: 0.62rem; line-height: 1.2; letter-spacing: 0.16em; margin-bottom: 0; }
.countdown-digits { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; gap: 12px; }
.countdown-unit { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.countdown-unit strong { display: block; font-family: var(--font-serif); font-weight: 600; font-size: 2rem; line-height: 1.2; font-variant-numeric: lining-nums tabular-nums; color: #e0bb8d; }
.countdown-unit small { display: block; font-size: 0.55rem; line-height: 1.2; font-weight: 400; letter-spacing: 0.12em; text-transform: uppercase; color: #f0dbc5; }
.opening-banner { position: relative; height: calc(100svh - var(--header-height)); min-height: 480px; }
.opening-banner img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

/* A strong opening statement, without a floating card. */
.manifesto-section { padding: clamp(4rem, 7vw, 7rem) 0; }
.section-white .manifesto-card { max-width: 1140px; padding: 3rem 0; display: grid; grid-template-columns: 1.1fr 1fr; gap: 5rem; border: 0; border-top: 1px solid #b48a63; border-bottom: 1px solid #b48a63; border-radius: 0; box-shadow: none; text-align: left; }
.manifesto-heading .section-tag { justify-content: flex-start; font-size: 0.7rem; letter-spacing: 0.16em; color: #75142f; }
.section-white .manifesto-quote { font-size: clamp(2.8rem, 4.8vw, 4.6rem); line-height: 1.05; color: #75142f; margin: 1.5rem 0 0; font-weight: 600; }
.manifesto-quote em { font-weight: 400; }
.manifesto-copy { border-left: 1px solid #d4b898; padding-left: 3rem; }
.brand-star { display: block; color: #b2865d; font-size: 3rem; line-height: 1; margin-bottom: 1rem; }
.manifesto-lead { font-family: var(--font-serif); font-size: 1.8rem; font-weight: 600; line-height: 1.2; color: #75142f; margin-bottom: 1rem; }
.section-white .manifesto-text { font-size: 1rem; line-height: 1.7; color: #57303a; }
.editorial-link { display: inline-flex; gap: 2rem; align-items: center; margin-top: 1.5rem; padding-bottom: 0.4rem; border-bottom: 1px solid #75142f; color: #75142f; font-size: 0.85rem; }

/* Menu: two facing pages, thin rules and numbered dishes. */
.menu-section { padding: 6rem 0; }
.menu-section > .container { max-width: 1140px; display: grid; grid-template-columns: 0.78fr 1.4fr; column-gap: 3rem; }
.menu-section > .container > div:first-child { grid-column: 1; grid-row: 1 / 5; background: #75142f; padding: 3rem 2.5rem; text-align: left !important; position: relative; border: 8px double #c49c72; }
.menu-section > .container > div:first-child::after { content: '✦'; display: block; color: #c49c72; font-size: 7rem; line-height: 1; margin-top: 3rem; }
.menu-section .section-tag { color: #e0bb8d; justify-content: flex-start; font-size: 0.65rem; letter-spacing: 0.15em; }
.menu-section .section-tag .star-icon { display: none; }
.menu-section .section-title { background: none; -webkit-text-fill-color: #f5e9d8; color: #f5e9d8; font-size: clamp(2.8rem, 4vw, 4rem); font-weight: 400; margin-top: 2rem; line-height: 1; }
.menu-section .section-subtitle { color: #ead5bc; font-size: 0.95rem; margin: 1.5rem 0 0; }
.menu-nav { grid-column: 2; justify-content: flex-start; gap: 2rem; margin: 0 0 1rem; border-bottom: 1px solid #cfb494; }
.section-white .menu-tab { border: 0; border-bottom: 2px solid transparent; border-radius: 0; font-family: var(--font-serif); font-size: 1.8rem; font-weight: 500; text-transform: none; letter-spacing: 0; padding: 0 0 0.8rem; color: #815763; }
.section-white .menu-tab.active, .section-white .menu-tab:hover { background: none; box-shadow: none; border-color: #75142f; color: #75142f; }
.menu-category-content { grid-column: 2; }
.menu-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2rem; counter-reset: dish; }
.section-white .menu-item-card { position: relative; background: none; border: 0; border-bottom: 1px solid #e0d0bb; border-radius: 0; box-shadow: none; padding: 1.5rem 0; counter-increment: dish; }
.section-white .menu-item-card:hover { border-color: #b58e69; box-shadow: none; }
.menu-item-card::before { content: counter(dish, decimal-leading-zero); display: block; color: #9b7049; font-size: 0.65rem; letter-spacing: 0.1em; margin-bottom: 0.4rem; }
.section-white .menu-item-name { font-size: 1.65rem; color: #75142f; line-height: 1.1; }
.section-white .menu-item-desc { font-size: 0.92rem; color: #57303a; }
.menu-grid--centered { display: block; }
.menu-source-note { grid-column: 2; margin: 1.5rem 0 1rem; font-size: 0.85rem; text-align: left; }
.menu-document-link { grid-column: 2; text-align: left; font-size: 0.8rem; }

/* Quiet, recognizable WhatsApp controls. */
.floating-whatsapp { background: #75142f; border: 1px solid #d3ac80; color: #f7e6d0; width: 54px; height: 54px; box-shadow: none; }
.floating-whatsapp:hover { background: #540d21; box-shadow: none; transform: none; }
.whatsapp-icon { width: 25px; height: 25px; flex-shrink: 0; fill: currentColor; }
.btn-whatsapp, .btn-whatsapp:hover { background: #d0aa7e; border: 1px solid #d0aa7e; color: #3a0714; box-shadow: none; border-radius: 3px; transform: none; font-weight: 500; letter-spacing: 0.04em; }
.btn-whatsapp::before { display: none; }
.btn-whatsapp:hover { background: #e2c6a3; border-color: #e2c6a3; }
.site-footer .btn-whatsapp { gap: 0.85rem; padding: 0.9rem 1.5rem; text-transform: none; font-size: 1rem; }
.site-footer { padding-top: 4rem; }
a:focus-visible, button:focus-visible { outline: 2px solid #b2865d; outline-offset: 5px; }

/* HTML floor plan, traced from the supplied seating layout. */
.map-viewport-wrapper { background: #fff4e9; border: 1px solid #c49c72; border-radius: 4px; box-shadow: none; color: #840b2b; }
.map-controls-bar { border-color: #dec1ab; }
.map-hint { color: #840b2b; }
.map-btn { background: transparent; border-color: #b98783; color: #840b2b; }
.map-canvas-container { height: auto; min-height: 0; max-height: 640px; overflow: auto; scrollbar-width: none; background: #fff4e9; border-radius: 0; touch-action: pan-x pan-y; }
.map-canvas-container::-webkit-scrollbar { display: none; width: 0; height: 0; }
#floorplan-size { position: relative; margin: 0 auto; overflow: hidden; }
#floorplan { position: absolute; top: 0; left: 0; width: 680px; height: 390px; transform-origin: top left; color: #840b2b; font-family: Arial, sans-serif; }
.floor-wall { position: absolute; background: #840b2b; pointer-events: none; }
.floor-label { position: absolute; font: 12px/1 Arial, sans-serif; color: #840b2b; white-space: nowrap; pointer-events: none; }
.floor-label-vertical { writing-mode: vertical-rl; transform: rotate(180deg); }
.floor-table { position: absolute; display: flex; justify-content: center; align-items: center; padding: 0; border: 1.7px solid #840b2b; color: #840b2b; background: var(--table-fill); font: 14px/1 Arial, sans-serif; overflow: visible; }
.floor-table.area1 { --table-fill: #e6c364; }
.floor-table.area2 { --table-fill: #ef607b; }
.floor-table.area3 { --table-fill: #50ba4d; }
.floor-table.shape-circle { border-radius: 50%; }
.floor-table.shape-rect { border-radius: 0; }
.floor-table-number { position: relative; z-index: 1; pointer-events: none; }
.floor-table.has-extension .floor-table-number { position: absolute; top: 0; left: 0; width: 100%; height: 26px; display: flex; align-items: center; justify-content: center; }
.floor-table.has-extension.shape-circle { background: transparent; border: 0; border-radius: 0; }
.floor-table.has-extension.shape-circle::before, .floor-table.has-extension.shape-circle::after { content: ''; position: absolute; left: 0; width: 28px; height: 28px; border: 1.7px solid #840b2b; border-radius: 50%; background: var(--table-fill); }
.floor-table.has-extension.shape-circle::before { top: 0; }
.floor-table.has-extension.shape-circle::after { bottom: 0; }
.floor-table.has-extension.shape-rect::after { content: ''; position: absolute; top: 25px; left: 0; right: 0; border-top: 2px solid #840b2b; }
.floor-table:hover, .floor-table:focus-visible { outline: 2px solid #840b2b; outline-offset: 3px; z-index: 2; }
.floor-status-marker { position: absolute; top: -10px; right: -10px; border-radius: 50%; width: 18px; height: 18px; background: #840b2b; color: white; font-size: 16px; z-index: 3; }
.floor-table.status-vendida { --table-fill: #b8b8b8; color: #333; border-color: #666; opacity: 1; }
.floor-table.status-vendida::before, .floor-table.status-vendida::after { border-color: #666; }
.floor-table.status-vendida .floor-status-marker { background: #666; color: #fff; }
.map-viewport-wrapper .star-icon { color: #840b2b; }

/* One aligned price sheet continuing the floor plan. */
.map-viewport-wrapper { border-bottom: 0; border-radius: 4px 4px 0 0; }
.lot-sheet { background: #fff4e9; color: #75142f; border: 1px solid #c49c72; border-top: 0; border-radius: 0 0 4px 4px; padding: 0 2rem 1.5rem; }
.lot-sheet-heading { border-top: 1px solid #c49c72; padding: 1.5rem 0; display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.lot-sheet-heading h3 { color: #75142f; font-size: 2rem; font-weight: 500; }
.lot-sheet-heading p { font-size: 0.8rem; color: #704a51; }
.lot-comparison { width: 100%; table-layout: fixed; border-collapse: collapse; font-variant-numeric: lining-nums tabular-nums; }
.lot-comparison th, .lot-comparison td { padding: 0.8rem 0.5rem; text-align: center; }
.lot-comparison th:first-child { text-align: left; width: 16%; }
.lot-comparison thead th { vertical-align: top; font-weight: 500; border-bottom: 1px solid #bc9479; padding-top: 0; padding-bottom: 1rem; }
.lot-comparison thead small { display: block; font-size: 0.78rem; font-weight: 400; margin-top: 0.3rem; color: #704a51; }
.lot-area { display: inline-flex; gap: 0.5rem; align-items: center; font-weight: 600; }
.lot-dot { width: 12px; height: 12px; border: 1px solid #840b2b; border-radius: 50%; flex-shrink: 0; }
.lot-dot.yellow { background: #e6c364; }
.lot-dot.red { background: #ef607b; }
.lot-dot.green { background: #50ba4d; }
.lot-comparison tbody tr { border-bottom: 1px solid #e6d2c1; }
.lot-comparison tbody th { font-weight: 400; font-size: 0.9rem; }
.lot-comparison tbody td { font-size: 1rem; white-space: nowrap; }
.lot-comparison tbody tr:first-child { background: #f3e4d5; }
.lot-comparison tbody tr:first-child td { font-weight: 600; }
.lot-sheet-notes { display: flex; justify-content: space-between; gap: 0.5rem 1.5rem; flex-wrap: wrap; margin-top: 1.25rem; font-size: 0.78rem; color: #704a51; }
.lot-sheet-notes strong { color: #75142f; }
@media (max-width: 640px) {
  .lot-sheet { padding: 0 0.75rem 1rem; }
  .lot-sheet-heading { padding: 1rem 0; gap: 0.5rem; }
  .lot-sheet-heading h3 { font-size: 1.5rem; }
  .lot-sheet-heading p { font-size: 0.65rem; }
  .lot-comparison th, .lot-comparison td { padding: 0.8rem 0.15rem; }
  .lot-comparison th:first-child { width: 18%; }
  .lot-comparison thead th, .lot-comparison tbody th { font-size: 0.7rem; }
  .lot-comparison thead small { font-size: 0.6rem; line-height: 1.4; }
  .lot-comparison tbody td { font-size: 0.78rem; }
  .lot-area { gap: 0.25rem; }
  .lot-dot { width: 9px; height: 9px; }
  .lot-sheet-notes { font-size: 0.7rem; }
}

@media (max-width: 980px) {
  :root { --header-height: 136px; }
  .header-container { display: grid; grid-template-columns: auto 1fr; grid-template-rows: 88px 48px; gap: 0; padding: 0 1.25rem; }
  .header-tools { grid-column: 2; grid-row: 1; justify-self: end; }
  .header-container nav { grid-column: 1 / -1; grid-row: 2; width: 100%; overflow-x: auto; }
  .nav-menu { min-height: 42px; justify-content: space-between; gap: 0.5rem; min-width: 100%; padding-bottom: 6px; }
  .nav-link { display: flex; align-items: center; min-height: 40px; }
  .manifesto-card { gap: 2rem !important; }
  .manifesto-copy { padding-left: 2rem; }
  .menu-section > .container { column-gap: 2rem; }
  .menu-section > .container > div:first-child { padding: 2rem 1.5rem; }
}
@media (max-width: 640px) {
  :root { --header-height: 122px; }
  .header-container { grid-template-rows: 74px 48px; padding: 0 0.75rem; }
  .header-countdown { min-width: 190px; padding-left: 10px; }
  .countdown-digits { gap: 14px; }
  .countdown-unit strong { font-size: 1.5rem; }
  .countdown-label { font-size: 0.5rem; letter-spacing: 0.1em; }
  .nav-link { font-size: 0.65rem; }
  .opening-banner { height: calc(100svh - var(--header-height)); min-height: 350px; max-height: 490px; }
  .opening-banner img { object-fit: cover; }
  .section-white .manifesto-card { grid-template-columns: 1fr; padding: 2rem 0; gap: 2rem !important; }
  .manifesto-copy { border-left: 0; padding-left: 0; }
  .manifesto-quote { font-size: 2.8rem !important; }
  .menu-section { padding: 3.5rem 0; }
  .menu-section > .container { display: block; }
  .menu-section > .container > div:first-child { margin-bottom: 2rem; padding: 2rem; }
  .menu-section > .container > div:first-child::after { font-size: 3rem; position: absolute; right: 1rem; top: 0; margin-top: 0.5rem; }
  .menu-section .section-title { margin-top: 1rem; font-size: 3rem; }
  .menu-grid { grid-template-columns: 1fr; }
  .menu-item-card { padding: 1rem 0 !important; }
  .floating-whatsapp { width: 48px; height: 48px; right: 1rem; bottom: 1rem; }
}

/* Updated menu: four categories and full-width main dishes. */
.menu-nav { gap: 0.6rem 1.25rem; }
.section-white .menu-tab { font-size: clamp(1.15rem, 2vw, 1.6rem); }
.menu-grid.menu-grid--principais { grid-template-columns: minmax(0, 1fr); }
.dish-category { display: block; font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.12em; color: #815763; margin-bottom: 0.4rem; }
.menu-document-link { margin-top: 1.5rem; }
.modal-card { max-height: calc(100svh - 24px); overflow-y: auto; padding: 1.5rem; }
.modal-details-grid { margin-bottom: 1rem; padding: .9rem; }
.detail-row { padding: .35rem 0; font-size: .88rem; }
.reservation-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem .85rem; margin: 1rem 0 .95rem; padding-top: .25rem; }
.reservation-form-title { grid-column: 1 / -1; color: var(--accent-gold-bright); font-family: var(--font-serif); font-size: 1.25rem; line-height: 1; }
.reservation-form label { display: grid; gap: .35rem; min-width: 0; color: var(--cream, #f4e6d2); font-size: .78rem; letter-spacing: 0; }
.reservation-form label span { opacity: .9; font-weight: 700; }
.reservation-form input { width: 100%; min-height: 44px; border: 1px solid rgba(220,186,145,.42); border-radius: 3px; padding: .68rem .72rem; background: rgba(255,255,255,.075); color: inherit; font: inherit; outline: none; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease; }
.reservation-form input:focus { border-color: var(--accent-gold-bright); background: rgba(255,255,255,.1); box-shadow: 0 0 0 2px rgba(220,186,145,.12); }
.reservation-form input::placeholder { color: currentColor; opacity: .42; }
.modal-table-header { margin-bottom: .9rem; }
.modal-table-number { font-size: 2.25rem; }
.reservation-error { grid-column: 1 / -1; margin: .2rem 0 0; font-size: .78rem; color: #ff8a8a; line-height: 1.4; }
@media (max-width: 640px) {
  .menu-nav { gap: 0.5rem 0.9rem; }
  .section-white .menu-tab { font-size: 1.1rem; }
  .reservation-form { grid-template-columns: 1fr; }
}
