/* Bloco À la carte */
.alc { background: var(--bg-2); }
.alc-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 48px; }
.alc-filters button { min-height: 44px; padding-inline: 18px; border: 0; border-radius: 999px; background: var(--bg); color: var(--muted); font: 500 .94rem/1 var(--font); cursor: pointer; box-shadow: 0 0 0 1px var(--line) inset; transition: background-color .2s, color .2s, box-shadow .2s; }
.alc-filters button:hover { color: var(--ink); box-shadow: 0 0 0 1px var(--line-2) inset; }
.alc-filters button[aria-pressed="true"] { background: var(--ink); color: var(--bg); box-shadow: none; }
.alc-grid { columns: 2; column-gap: 16px; margin-top: 24px; }
.alc-group { break-inside: avoid; margin-bottom: 16px; border-radius: var(--r); background: var(--bg); box-shadow: 0 0 0 1px var(--line) inset; padding: clamp(22px, 3vw, 32px); }
.alc-head { display: flex; align-items: center; gap: 14px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.alc-head .ic { margin: 0; width: 44px; height: 44px; }
.alc-head .ic .i { width: 20px; height: 20px; }
.alc-head h3 { font-family: var(--display); font-weight: 780; letter-spacing: -0.018em; font-size: 1.45rem; }
.alc-head .count { margin-left: auto; font: 500 .74rem/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--dim); white-space: nowrap; }
.alc-list { list-style: none; margin: 0; padding: 0; }
.alc-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 24px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.alc-item:last-child { border-bottom: 0; padding-bottom: 2px; }
.alc-item h4 { margin: 0 0 4px; font-family: var(--display); font-weight: 700; font-size: 1.1rem; letter-spacing: -0.01em; line-height: 1.25; }
.alc-item p { color: var(--muted); font-size: .94rem; line-height: 1.5; }
.alc-item .alc-price { display: grid; justify-items: end; align-content: start; text-align: right; gap: 3px; color: var(--ink); }
.alc-price .from { font: 500 .7rem/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--dim); }
.alc-price b { font-family: var(--display); font-weight: 820; font-size: 1.45rem; letter-spacing: -0.02em; line-height: 1.05; font-variant-numeric: tabular-nums; white-space: nowrap; }
.alc-price .unit { color: var(--dim); font-size: .82rem; white-space: nowrap; }
.alc-quote { grid-column: 2; justify-self: end; display: inline-flex; align-items: center; gap: 6px; font-size: .86rem; font-weight: 600; color: var(--ink); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: text-decoration-color .2s; }
.alc-quote:hover { text-decoration-color: currentColor; }
.alc-quote .i { width: 14px; height: 14px; color: var(--purple); }
.alc-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; margin-top: 12px; padding: 24px 28px; border-radius: var(--r); background: linear-gradient(100deg, #EEF4B6, #FFFFFF 55%); box-shadow: 0 0 0 1px var(--line) inset; }
.alc-foot p { color: var(--muted); max-width: 70ch; }

@media (max-width: 899px) { .alc-grid { columns: 1; } }
@media (max-width: 520px) {
  .alc-item { grid-template-columns: minmax(0, 1fr); }
  .alc-item .alc-price { display: flex; flex-wrap: wrap; align-items: baseline; justify-items: start; text-align: left; gap: 4px 8px; }
  .alc-item .alc-quote { grid-column: auto; justify-self: start; }
  .alc-head .count { display: none; }
}

/* Oferta especial e botão "Contratar" */
.alc-item.alc-hot { margin-inline: -14px; padding-inline: 14px; border-radius: 14px; border-bottom-color: transparent; background: linear-gradient(100deg, rgb(200 212 63 / .26), rgb(200 212 63 / .06)); box-shadow: 0 0 0 1px rgb(200 212 63 / .6) inset; }
.alc-hot .alc-price .from { color: var(--green-text); font-weight: 700; }
.alc-price s { color: var(--dim); font-size: .9rem; text-decoration-thickness: 1px; }
.alc-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px 18px; margin-top: 8px; }
.alc-actions .alc-quote { grid-column: auto; justify-self: auto; }
.alc-buy { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding-inline: 18px; border-radius: 999px; background: var(--purple); color: #fff; font: 600 .9rem/1 var(--font); text-decoration: none; box-shadow: 0 8px 22px -12px rgb(138 60 240 / .8); transition: background-color .2s, transform .3s var(--ease); }
.alc-buy:hover { background: #9B55FF; transform: translateY(-1px); }
.alc-buy:focus-visible { outline: 3px solid var(--purple-soft); outline-offset: 2px; }
.alc .vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 520px) { .alc-item .alc-actions { justify-content: flex-start; } }
@media (max-width: 640px) { .alc-buy { min-height: 44px; } }
