/*
 * PAGINILE PUBLICE ALE BILETELOR, pe cadrul site-ului (redesignul din 13 oct. 2026). Peste `site-cadru.css`, cu tokenii lui
 * (`--wine`, `--paper`, `--display`, `--ui`…). Forma vine de pe pagina Târgului de Nunți (`targ.css`): hârtie ivoriu, vin,
 * Cormorant la titluri, Jost la text, butoane-pastilă cu text caisă, carduri de 20 px. Prefixul e „b-”.
 *
 * Ce e aici: cardurile de pe prima pagină (`b-card`, în stilul paginii „Sărbători” de pe site), pagina unui eveniment
 * (`b-erou`, `b-sectiune`, `b-preturi`, `b-rezerva`…) și pagina biletelor (`b-bilete`). Paginile care primesc doar cadrul
 * (pachetele, meniul de băuturi, legalul, plata) rămân pe utilitarele Tailwind din `app.css`.
 *
 * Niciun text sub 14 px (.875rem).
 */

.cadru-site {
  --paper-deep: #F1E8DC;
  --text: #3A1A20;
  --night: #120507;
  --b-linie: rgba(84, 18, 30, .16);
}

/* ============ PIESE COMUNE ============ */
.b-wrap { width: min(72rem, 100% - 2rem); margin-inline: auto; }
.b-eticheta {
  display: inline-flex; align-items: center; gap: .9rem; margin: 0 0 1rem;
  font: 500 .875rem/1.4 var(--ui); letter-spacing: .18em; text-transform: uppercase; color: var(--wine-soft);
}
.b-eticheta::before { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .6; }
.b-h1, .b-h2 { margin: 0; font-family: var(--display); font-weight: 600; color: var(--wine); text-wrap: balance; font-variant-numeric: lining-nums; }
.b-h1 { font-size: clamp(2.5rem, 1.6rem + 4.2vw, 4.6rem); line-height: 1.02; letter-spacing: -.01em; }
.b-h2 { font-size: clamp(2rem, 1.5rem + 2.2vw, 3rem); line-height: 1.08; }
.b-h2 em { display: block; font-style: italic; font-weight: 500; }
.b-ico { width: 24px; height: 24px; display: block; }

.b-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 3.25rem; padding: .9rem 2rem;
  border: 1px solid transparent; border-radius: 999px; font: 500 .9rem/1.2 var(--ui); letter-spacing: .14em; text-transform: uppercase;
  text-decoration: none; text-align: center; cursor: pointer; transition: transform .2s var(--ease), background-color .2s, color .2s, border-color .2s;
  -webkit-tap-highlight-color: transparent;
}
.b-btn:active { transform: scale(.98); }
.b-btn-vin { background: var(--wine); color: var(--apricot) !important; }
.b-btn-vin:hover { background: #431019; }
.b-btn-caisa { background: var(--apricot); color: var(--wine) !important; }
.b-btn-caisa:hover { background: #ffe3b3; }
.b-btn-contur { border-color: rgba(255, 241, 216, .55); color: var(--moon) !important; background: transparent; }
.b-btn-contur:hover { border-color: var(--moon); background: rgba(255, 241, 216, .08); }
.b-link {
  display: inline-flex; align-items: center; gap: .55rem; padding-bottom: .4rem;
  font: 500 .875rem/1 var(--ui); letter-spacing: .14em; text-transform: uppercase;
  color: inherit; border-bottom: 1px solid var(--rule); transition: border-color .3s;
}

/* ============ PRIMA PAGINĂ: CARDURILE EVENIMENTELOR (ca pe „Sărbători”) ============ */
.b-carduri { margin-top: clamp(2.8rem, 7vh, 4rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2.4rem, 6vh, 3.4rem) clamp(1.2rem, 2.6vw, 2.4rem); }
.b-card { display: flex; flex-direction: column; color: inherit; text-decoration: none; }
.b-card-foto { position: relative; margin: 0; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 3px; background: var(--paper-deep); }
.b-card-foto img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.b-card:hover .b-card-foto img { transform: scale(1.04); }
.b-card-marca, .b-marca { position: absolute; inset: 0; display: grid; place-items: center; color: var(--wine); opacity: .55; }
.b-card-marca svg, .b-marca svg { width: 42%; height: auto; }
.b-card-cand { margin: 1rem 0 0; font: 500 .875rem/1.4 var(--ui); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-dim); }
.b-card h3 { margin: .5rem 0 0; font: 600 clamp(1.6rem, 1.25rem + .9vw, 2rem)/1.08 var(--display); text-wrap: balance; font-variant-numeric: lining-nums; }
.b-card-meta { margin: .5rem 0 0; font-size: 1rem; color: var(--ink-dim); }
.b-card-nota { margin: .6rem 0 0; font-size: 1rem; color: var(--ink-dim); }
.b-card-rand { margin-top: auto; padding-top: 1.2rem; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .6rem 1.2rem; }
.b-card-pret { font: 600 1.6rem/1 var(--display); }
.b-card-pret small { font: 500 .875rem/1 var(--ui); letter-spacing: .08em; color: var(--ink-dim); }
.b-card:hover .b-link { border-bottom-color: currentColor; }
@media (max-width: 900px) { .b-carduri { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .b-carduri { grid-template-columns: 1fr; } }

/* ============ PAGINA UNUI EVENIMENT ============ */
.b-erou { padding: 1.5rem 0 3rem; }
.b-erou-grid { display: grid; gap: 2rem; }
.b-erou-grid > * { min-width: 0; }
.b-sub { margin: 1rem 0 0; font: italic 500 clamp(1.4rem, 1.1rem + 1.2vw, 2rem)/1.2 var(--display); color: var(--wine-soft); text-wrap: balance; }
.b-fapte { list-style: none; margin: 1.6rem 0 0; padding: 0; display: grid; gap: .55rem; }
.b-fapte li { display: flex; gap: .7rem; align-items: baseline; font-size: 1.05rem; color: var(--text); }
.b-fapte li::before { content: ""; flex: none; width: .45rem; height: .45rem; border-radius: 50%; background: var(--terracotta); transform: translateY(-.1rem); }
.b-fapte li > span::first-letter { text-transform: uppercase; }
.b-fapte b { font-weight: 500; color: var(--wine); }
.b-insigne { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.4rem; }
.b-insigne:empty { display: none; }
.b-insigna { padding: .5rem 1rem; border-radius: 999px; background: var(--wine); color: var(--apricot); font: 500 .875rem/1.2 var(--ui); letter-spacing: .12em; text-transform: uppercase; }
.b-erou-foto { position: relative; margin: 0; border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 5; background: var(--paper-deep); }
.b-erou-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }

.b-sectiune { padding: 3.5rem 0; border-top: 1px solid var(--b-linie); }
.b-sectiune-mica { padding: 2.5rem 0; }
.b-sectiune-cap { max-width: 40rem; margin-bottom: 2rem; }
.b-sectiune-cap p:not(.b-eticheta) { margin: 1rem 0 0; color: var(--wine-soft); font-size: 1.05rem; }
.b-intro { border-top: 0; padding-top: 0; }
.b-lead { margin: 0; max-width: 46rem; font: 500 clamp(1.3rem, 1.1rem + .8vw, 1.7rem)/1.45 var(--display); color: var(--text); text-wrap: pretty; }

.b-motive { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; background: var(--b-linie); border-radius: 20px; overflow: hidden; }
.b-motive li { background: var(--paper); padding: 1.4rem 1.3rem; }
.b-motiv-ico { display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; border: 1px solid var(--b-linie); color: var(--wine); }
.b-motive h3 { margin: .9rem 0 0; font: 600 1.45rem/1.2 var(--display); color: var(--wine); }
.b-motive p { margin: .35rem 0 0; font-size: 1rem; color: var(--wine-soft); }

.b-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; background: var(--b-linie); border-radius: 20px; overflow: hidden; }
.b-lista li { display: flex; gap: .9rem; align-items: baseline; background: var(--paper); padding: 1rem 1.2rem; font-size: 1.05rem; color: var(--text); }
.b-lista li::before { content: ""; flex: none; width: 10px; height: 1px; background: var(--terracotta); transform: translateY(-.3rem); }

.b-program { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.3rem; }
.b-program li { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; align-items: start; }
.b-program-ico { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--wine); color: var(--apricot); }
.b-program-ora { display: block; font: 600 .95rem/1.3 var(--ui); letter-spacing: .14em; text-transform: uppercase; color: var(--wine-soft); font-variant-numeric: tabular-nums lining-nums; }
.b-program b { display: block; margin-top: .15rem; font: 600 1.35rem/1.25 var(--display); color: var(--wine); }
.b-program-nota { display: block; margin-top: .2rem; font-size: 1rem; color: var(--wine-soft); }

.b-preturi { display: grid; gap: 1rem; }
.b-salon { background: #fff; border: 1px solid rgba(84, 18, 30, .12); border-radius: 20px; padding: 1.4rem 1.3rem; box-shadow: 0 30px 60px -45px rgba(84, 18, 30, .35); }
.b-salon h3 { margin: 0; font: 600 1.6rem/1.15 var(--display); color: var(--wine); }
.b-salon-zona { margin: 1rem 0 0; font: 500 .875rem/1.4 var(--ui); letter-spacing: .14em; text-transform: uppercase; color: var(--wine-soft); }
.b-salon ul { list-style: none; margin: .6rem 0 0; padding: 0; }
.b-salon li { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--b-linie); font-size: 1rem; color: var(--text); }
.b-salon li:last-child { border-bottom: 0; }
.b-salon li b { flex: none; font: 600 1.25rem/1 var(--display); color: var(--wine); }

.b-info { display: grid; gap: .8rem; margin: 0; }
.b-info > div { display: grid; grid-template-columns: 2.6rem 1fr; column-gap: .9rem; align-items: center; padding: 1rem 1.2rem; border-radius: 20px; background: var(--paper-deep); }
.b-info-ico { grid-row: span 2; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--paper); color: var(--wine); }
.b-info dt { font: 500 .875rem/1.3 var(--ui); letter-spacing: .14em; text-transform: uppercase; color: var(--wine-soft); }
.b-info dd { margin: 0; font: 600 1.35rem/1.2 var(--display); color: var(--wine); }
.b-info dd::first-letter { text-transform: uppercase; }
.b-info-nota { margin: 1rem 0 0; font-size: 1rem; color: var(--wine-soft); }

.b-faq { border-top: 1px solid var(--b-linie); }
.b-faq details { border-bottom: 1px solid var(--b-linie); }
.b-faq summary { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 0; cursor: pointer; list-style: none; font: 600 1.3rem/1.25 var(--display); color: var(--wine); }
.b-faq summary::-webkit-details-marker { display: none; }
.b-faq summary svg { flex: none; width: 22px; height: 22px; color: var(--wine-soft); transition: transform .3s var(--ease); }
.b-faq details[open] summary svg { transform: rotate(45deg); }
.b-faq p { margin: 0 0 1.2rem; font-size: 1.05rem; color: var(--text); }

/* Rezervările doar la telefon: banda de vin de la finalul paginii, ca formularul târgului. */
.b-rezerva { background: var(--wine); color: var(--moon); padding: 3.5rem 0 4rem; }
.b-rezerva .b-eticheta { color: var(--apricot); }
.b-telefon { max-width: 40rem; }
.b-telefon-titlu { margin: 0; font: 600 clamp(2rem, 1.5rem + 2.2vw, 3rem)/1.08 var(--display); color: var(--moon); text-wrap: balance; }
.b-telefon-numar { display: inline-block; margin: .6rem 0 0; font: 600 clamp(2.4rem, 1.8rem + 3vw, 3.8rem)/1.05 var(--display); color: var(--apricot); text-decoration: none; }
a.b-telefon-numar:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .15em; }
.b-telefon-text { margin: 1rem 0 0; font-size: 1.1rem; color: var(--moon-dim); }
.b-telefon-butoane { display: grid; gap: .8rem; margin-top: 1.8rem; }
.b-telefon-butoane .b-btn { width: 100%; min-height: 3.5rem; font-size: 1rem; }
.b-rezerva :focus-visible { outline-color: var(--apricot); }

/* ============ BILETELE (/bilete/{token}) ============ */
.b-bilete { width: min(36rem, 100% - 2rem); margin-inline: auto; padding: 1.6rem 0 3.5rem; }
.b-bilete-cap { text-align: center; }
.b-bilete-cap .b-h1 { font-size: clamp(2.3rem, 1.8rem + 2vw, 3.2rem); }
.b-bilete-ev { margin: 1.2rem 0 0; padding: 1.2rem 1.3rem; border-radius: 20px; background: var(--wine); color: var(--moon); text-align: left; }
.b-bilete-ev b { display: block; font: 600 1.5rem/1.2 var(--display); color: #fff; }
.b-bilete-ev span { display: block; margin-top: .3rem; font-size: 1rem; color: var(--moon-dim); }
.b-bilete-ev span::first-letter { text-transform: uppercase; }
.b-bilete-ev .cine { margin-top: .7rem; padding-top: .6rem; border-top: 1px solid rgba(255, 241, 216, .2); }
.b-bilete-ev .cine strong { color: var(--moon); font-weight: 500; }
.b-bilet { margin-top: 1.2rem; background: #fff; border: 1px solid rgba(84, 18, 30, .12); border-radius: 20px; overflow: hidden; text-align: center; break-inside: avoid; page-break-inside: avoid; }
.b-bilet-qr { width: min(18rem, 100% - 2rem); aspect-ratio: 1; margin: 1.4rem auto 0; padding: .4rem; background: #fff; }
.b-bilet-qr svg { display: block; width: 100%; height: 100%; }
.b-bilet-corp { padding: .8rem 1.2rem 1.4rem; border-top: 2px dashed var(--moon-dim); margin-top: 1.2rem; }
.b-bilet-tip { font: 600 1.4rem/1.2 var(--display); color: var(--wine); }
.b-bilet-cod { margin-top: .35rem; font: 500 1.1rem/1 var(--ui); letter-spacing: .14em; color: var(--wine); font-variant-numeric: tabular-nums lining-nums; }
.b-bilet-hint { margin-top: .6rem; font-size: .95rem; color: var(--wine-soft); }
.b-bilete-gol { margin-top: 1.4rem; padding: 1.6rem 1.2rem; border: 1px dashed rgba(84, 18, 30, .3); border-radius: 20px; text-align: center; color: var(--wine-soft); }
.b-bilete-share { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin-top: 1.4rem; }
.b-bilete-share button {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 48px; padding: .6rem .4rem;
  border: 1px solid rgba(84, 18, 30, .25); border-radius: 999px; background: transparent; color: var(--wine); cursor: pointer;
  font: 500 .875rem/1.1 var(--ui);
}
.b-bilete-share button:hover { border-color: var(--wine); }
.b-bilete-share svg { width: 17px; height: 17px; flex: none; }
.b-toast { position: fixed; left: 50%; bottom: 24px; z-index: 50; transform: translateX(-50%) translateY(20px); padding: 10px 18px; border-radius: 999px; background: var(--wine); color: var(--apricot); font-size: .95rem; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; }
.b-toast.on { opacity: 1; transform: translateX(-50%) translateY(0); }
@media print {
  .b-bilete-share, .b-toast { display: none !important; }
  .b-bilete-ev, .b-bilet { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ============ ECRANE MAI LATE ============ */
@media (min-width: 760px) {
  .b-motive { grid-template-columns: repeat(3, 1fr); }
  /* 2 sau 4 motive: două coloane, ca să nu rămână o celulă goală la capătul grilei (bufetul de 1 Decembrie, 13 oct.). */
  .b-motive:has(> li:last-child:nth-child(2)),
  .b-motive:has(> li:last-child:nth-child(4)) { grid-template-columns: repeat(2, 1fr); }
  .b-preturi { grid-template-columns: repeat(2, 1fr); }
  .b-info { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
  .b-telefon-butoane { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 980px) {
  .b-wrap { width: min(76rem, 100% - 5rem); }
  .b-erou { padding: 3rem 0 5rem; }
  .b-erou-grid { grid-template-columns: 1.05fr .95fr; align-items: center; gap: 5rem; }
  .b-erou-foto { max-height: 78vh; justify-self: end; width: 100%; }
  .b-sectiune { padding: 5.5rem 0; }
  .b-sectiune-mica { padding: 3rem 0; }
  .b-intro { padding-top: 0; }
  .b-sectiune-cap { margin-bottom: 3rem; }
  .b-doua { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 5rem; align-items: start; }
  .b-doua > .b-sectiune-cap { position: sticky; top: calc(var(--a-head) + 2rem); margin-bottom: 0; }
  .b-preturi { grid-template-columns: repeat(3, 1fr); }
  .b-rezerva { padding: 5.5rem 0; }
}
@media (prefers-reduced-motion: reduce) {
  .b-btn, .b-card-foto img, .b-faq summary svg, .b-toast { transition: none; }
}

/* Prima pagină (home.css): etichetele și linkurile mici urcă la 14 px. */
.cadru-site :is(.home-eyebrow, .home-hero .home-eyebrow, .home-hero-actions .phone, .home-past .when, .home-past .go, .home-past-list .when, .home-past-list .go) { font-size: .875rem; }
/* Fără afiș, pe telefon, suprafața de brand e o bandă, nu un portret gol de un ecran. */
@media (max-width: 979px) { .b-erou-foto-marca { aspect-ratio: 16 / 7; } }

/* ============ VÂNZAREA ONLINE (planul bilete 12): blocul de cumpărare, „Datele tale”, „gata” ============ */
.b-cumpara .b-telefon { max-width: 40rem; }
.b-cumpara-form { max-width: 40rem; margin-top: 1.6rem; }
.b-cumpara-zona { margin: 1.4rem 0 0; font: 500 .875rem/1.4 var(--ui); letter-spacing: .16em; text-transform: uppercase; color: var(--apricot); }
.b-tarif { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(255, 241, 216, .2); }
.b-tarif-text { min-width: 0; }
.b-tarif-nume { display: block; font-size: 1.1rem; line-height: 1.3; color: var(--moon); }
.b-tarif-pret { display: block; margin-top: .2rem; font: 600 1.5rem/1.1 var(--display); color: var(--apricot); }
.b-tarif-epuizat { flex: none; font: 500 .875rem/1.2 var(--ui); letter-spacing: .12em; text-transform: uppercase; color: var(--moon-dim); }
.b-numar { flex: none; display: flex; align-items: center; gap: .35rem; }
.b-numar button {
  width: 3rem; height: 3rem; border-radius: 999px; border: 1px solid rgba(255, 241, 216, .55); background: transparent; color: var(--moon);
  font: 500 1.5rem/1 var(--ui); cursor: pointer; -webkit-tap-highlight-color: transparent; transition: background-color .2s, opacity .2s;
}
.b-numar button:hover:not(:disabled) { background: rgba(255, 241, 216, .1); }
.b-numar button:disabled { opacity: .35; cursor: default; }
.b-numar input {
  width: 2.6rem; padding: 0; border: 0; background: transparent; color: var(--moon); text-align: center;
  font: 600 1.5rem/1 var(--display); font-variant-numeric: lining-nums; -moz-appearance: textfield; appearance: textfield;
}
.b-numar input::-webkit-outer-spin-button, .b-numar input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.b-cumpara-total { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-top: 1.4rem; font-size: 1.1rem; color: var(--moon); }
.b-cumpara-total b { font: 600 2.2rem/1 var(--display); color: var(--apricot); }
.b-cumpara-buton { width: 100%; margin-top: 1.4rem; min-height: 3.5rem; font-size: 1rem; }
.b-cumpara-buton[aria-disabled="true"] { opacity: .6; }
.b-cumpara-mic { margin: 1rem 0 0; font-size: 1rem; line-height: 1.5; color: var(--moon-dim); }
.b-cumpara-mic a { color: var(--apricot); }

/* Paginile pașilor („Datele tale”, „gata”): o coloană pe hârtie, cardul comenzii alb, de 20 px. */
.b-pas { padding: 2rem 0 4rem; }
.b-pas-wrap { max-width: 40rem; }
.b-pas .b-h2 { margin-bottom: 1.4rem; }
.b-comanda { background: #fff; border: 1px solid rgba(84, 18, 30, .12); border-radius: 20px; padding: 1.3rem 1.3rem 1.2rem; box-shadow: 0 30px 60px -45px rgba(84, 18, 30, .35); }
.b-comanda-titlu { margin: 0; font: 600 1.5rem/1.15 var(--display); color: var(--wine); }
.b-comanda-cand { margin: .3rem 0 0; font-size: 1rem; color: var(--wine-soft); }
.b-comanda-linii { list-style: none; margin: 1rem 0 0; padding: 0; }
.b-comanda-linii li, .b-comanda-total { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .5rem 0; border-bottom: 1px solid var(--b-linie); font-size: 1.05rem; color: var(--text); }
.b-comanda-linii b { flex: none; font-weight: 500; }
.b-comanda-total { margin: 0; border-bottom: 0; padding-top: .8rem; font-size: 1.1rem; }
.b-comanda-total b { font: 600 1.9rem/1 var(--display); color: var(--wine); }
.b-comanda-modifica { display: inline-block; margin-top: .4rem; font-size: 1rem; color: var(--wine-soft); text-underline-offset: .2em; }
.b-pas-mesaj { margin-top: 1.6rem; padding: 1.3rem; border-radius: 20px; background: var(--paper-deep); font-size: 1.05rem; color: var(--text); }
.b-pas-mesaj p { margin: .4rem 0 0; }
.b-pas-mesaj .b-pas-mesaj-titlu { margin: 0; font: 600 1.6rem/1.15 var(--display); color: var(--wine); }
.b-pas-buton { width: 100%; margin-top: 1.4rem; min-height: 3.5rem; font-size: 1rem; }
.b-date { margin-top: 2rem; }
.b-capcana { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.b-erori { margin-bottom: 1.4rem; padding: 1.1rem 1.2rem; border-radius: 20px; border: 1px solid var(--terracotta); background: #FFF6F1; color: var(--text); font-size: 1rem; }
.b-erori:focus { outline: 2px solid var(--wine); outline-offset: 2px; }
.b-erori-titlu { margin: 0; font: 600 1.25rem/1.2 var(--display); color: var(--wine); }
.b-erori ul { margin: .5rem 0 0; padding-left: 1.2rem; }
.b-camp-grup { margin: 0 0 1.2rem; padding: 0; border: 0; }
.b-legenda, .b-camp label { display: block; margin-bottom: .4rem; font: 500 .9rem/1.3 var(--ui); letter-spacing: .08em; text-transform: uppercase; color: var(--wine-soft); }
.b-tip { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.b-tip-optiune { display: flex; align-items: center; gap: .6rem; min-height: 3.25rem; padding: .7rem 1rem; border: 1px solid var(--rule); border-radius: 14px; background: #fff; font-size: 1.05rem; color: var(--text); cursor: pointer; }
.b-tip-optiune:has(input:checked) { border-color: var(--wine); box-shadow: inset 0 0 0 1px var(--wine); }
.b-tip-optiune input, .b-bifa input { width: 1.25rem; height: 1.25rem; accent-color: var(--wine); flex: none; }
.b-camp { margin: 0 0 1.1rem; min-width: 0; }
.b-camp input[type="text"], .b-camp input[type="tel"], .b-camp input[type="email"], .b-camp select {
  width: 100%; min-height: 3.25rem; padding: .7rem .9rem; border: 1px solid rgba(84, 18, 30, .28); border-radius: 12px; background: #fff;
  font: 400 1.05rem/1.3 var(--ui); color: var(--text);
}
.b-camp input:focus, .b-camp select:focus { outline: 2px solid var(--wine); outline-offset: 1px; border-color: var(--wine); }
.b-camp-rand { display: grid; gap: 0 1rem; }
.b-ajutor { margin: .4rem 0 0; font-size: .95rem; line-height: 1.45; color: var(--wine-soft); }
.b-centru { text-align: center; }
.b-optional { text-transform: none; letter-spacing: 0; }
.b-cui { display: grid; grid-template-columns: minmax(0, 1fr); gap: .6rem; }
.b-btn-contur-vin { border-color: var(--wine); color: var(--wine) !important; background: transparent; min-height: 3.25rem; padding: .7rem 1.2rem; }
.b-btn-contur-vin:hover { background: var(--wine); color: var(--apricot) !important; }
.b-btn-contur-vin:disabled { opacity: .6; }
.b-bifa { display: flex; align-items: flex-start; gap: .7rem; margin: 1.4rem 0 0; font-size: 1.05rem; line-height: 1.45; color: var(--text); cursor: pointer; }
.b-bifa input { margin-top: .15rem; }
.b-bifa a { color: var(--wine); text-underline-offset: .2em; }
.b-pas-buton:disabled { opacity: .6; }
.b-doar-firma, .b-doar-firma-inline { display: none; }
.b-date:has(#tip-firma:checked) .b-doar-firma { display: block; }
.b-date:has(#tip-firma:checked) .b-doar-firma-inline { display: inline; }
.b-date:has(#tip-firma:checked) .b-doar-pf { display: none; }
@media (min-width: 560px) {
  .b-camp-rand { grid-template-columns: 1fr 1fr; }
  .b-cui { grid-template-columns: minmax(0, 1fr) auto; }
}
.b-pas-text { margin: 1rem 0 0; font-size: 1.1rem; line-height: 1.55; color: var(--text); }
.b-pas .b-ajutor a { color: var(--wine); }
.b-comanda-total b, .b-tarif-pret, .b-cumpara-total b, .b-numar input { font-variant-numeric: lining-nums; }

/* ============ BLOCURILE ÎNGUSTE, CENTRATE CA BLOC (13 oct. 2026) ============
   O coloană mai îngustă decât containerul stă la mijloc (margin-inline: auto); textul din ea rămâne aliniat la stânga.
   Eticheta și titlul unei secțiuni sunt în același bloc cu conținutul lor, deci se aliniază cu el, nu cu marginea paginii. */
.b-lead { margin-inline: auto; }
.b-telefon, .b-cumpara-form { margin-inline: auto; }
.b-cumpara .b-wrap > :is(.b-eticheta, .b-telefon-titlu, .b-telefon-text) { max-width: 40rem; margin-inline: auto; }
.b-cumpara .b-wrap > .b-eticheta { display: flex; }
@media (min-width: 980px) {
  .b-doua { max-width: 64rem; margin-inline: auto; }
}

/* ============ VITRINA PACHETELOR DE SĂRBĂTORI (misiunea 005): /sarbatori/{slug}, „Datele tale”, „gata” ============
   Pe hârtie, ca pașii comenzii: camerele sunt carduri albe de 20 px, alegerea are conturul de vin, prețul e în Cormorant. */
.b-sb-wrap { max-width: 44rem; }
.b-sb-eb { display: grid; gap: .25rem; margin-top: 1.2rem; padding: 1rem 1.2rem; border-radius: 20px; background: var(--wine); color: var(--moon); }
.b-sb-eb b { font: 600 1.35rem/1.2 var(--display); color: var(--apricot); }
.b-sb-eb span { font-size: 1rem; color: var(--moon); }
.b-sb-include { margin-top: 1.4rem; }
.b-sb-lista { list-style: none; margin: .8rem 0 0; padding: 0; display: grid; gap: .45rem; }
.b-sb-lista li { display: flex; gap: .7rem; align-items: baseline; font-size: 1.05rem; color: var(--text); }
.b-sb-lista li::before { content: ""; flex: none; width: .45rem; height: .45rem; border-radius: 50%; background: var(--terracotta); transform: translateY(-.1rem); }
.b-sb-form { margin-top: 2rem; }
.b-sb-camera { margin: 0 0 1.6rem; padding: 0; border: 0; min-width: 0; }
.b-sb-legenda { padding: 0; margin: 0 0 .9rem; font: 600 1.7rem/1.15 var(--display); color: var(--wine); }
.b-sb-filtru { margin-bottom: 1rem; }
.b-sb-filtru[hidden] { display: none; }
.b-sb-pastile { display: flex; flex-wrap: wrap; gap: .5rem; }
.b-sb-pastila {
  min-height: 2.9rem; padding: .55rem 1rem; border: 1px solid var(--rule); border-radius: 999px; background: #fff; color: var(--text);
  font: 400 1rem/1.2 var(--ui); cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.b-sb-pastila small { font-size: .875rem; color: var(--wine-soft); }
.b-sb-pastila[aria-pressed="true"] { border-color: var(--wine); background: var(--wine); color: var(--apricot); }
.b-sb-pastila[aria-pressed="true"] small { color: var(--apricot-light); }
.b-sb-sejur { margin-bottom: 1.2rem; }
.b-sb-sejur[hidden] { display: none; }
.b-sb-sejur-titlu { margin: 0 0 .6rem; font: 500 .875rem/1.4 var(--ui); letter-spacing: .14em; text-transform: uppercase; color: var(--wine-soft); }
.b-sb-varianta {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .9rem; margin-bottom: .6rem; padding: 1rem 1.1rem;
  border: 1px solid rgba(84, 18, 30, .14); border-radius: 20px; background: #fff; cursor: pointer;
  box-shadow: 0 24px 50px -44px rgba(84, 18, 30, .4); transition: border-color .2s, box-shadow .2s;
}
.b-sb-varianta[hidden] { display: none; }
.b-sb-varianta:has(input:checked) { border-color: var(--wine); box-shadow: inset 0 0 0 1px var(--wine); }
.b-sb-varianta:has(input:disabled) { cursor: default; background: var(--paper-deep); box-shadow: none; }
.b-sb-varianta input { width: 1.25rem; height: 1.25rem; margin: 0; accent-color: var(--wine); }
.b-sb-varianta-text { display: grid; gap: .1rem; min-width: 0; }
.b-sb-varianta-nume { font: 600 1.3rem/1.2 var(--display); color: var(--wine); }
.b-sb-varianta-salon, .b-sb-varianta-nota { font-size: .95rem; color: var(--wine-soft); }
.b-sb-varianta-pret { display: grid; justify-items: end; text-align: right; }
.b-sb-varianta-pret b { font: 600 1.45rem/1.1 var(--display); color: var(--wine); white-space: nowrap; }
.b-sb-varianta-pret s { font-size: .95rem; color: var(--wine-soft); white-space: nowrap; }
.b-sb-epuizat { font: 500 .875rem/1.2 var(--ui); letter-spacing: .12em; text-transform: uppercase; color: var(--terracotta); }
.b-sb-persoane { margin-top: 1.2rem; }
.b-sb-rand { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--b-linie); }
.b-sb-rand[hidden] { display: none; }
.b-sb-rand-text { display: grid; gap: .1rem; font-size: 1.05rem; color: var(--text); }
.b-sb-rand-text small { font-size: .9rem; color: var(--wine-soft); }
.b-sb .b-numar button { border-color: rgba(84, 18, 30, .35); color: var(--wine); }
.b-sb .b-numar button:hover:not(:disabled) { background: rgba(84, 18, 30, .06); }
.b-sb .b-numar input { color: var(--wine); }
.b-sb-persoane .b-tip { margin-bottom: .2rem; }
.b-sb-doua { margin: 0 0 1.6rem; }
.b-sb-doua > summary { list-style: none; width: 100%; }
.b-sb-doua > summary::-webkit-details-marker { display: none; }
.b-sb-doua[open] > summary { display: none; }
.b-sb-fara { margin-bottom: .9rem; }
.b-sb-total { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--b-linie); font-size: 1.1rem; color: var(--text); }
.b-sb-total[hidden] { display: none; }
.b-sb-total b { font: 600 2.2rem/1 var(--display); color: var(--wine); font-variant-numeric: lining-nums; }
.b-sb-politica { margin-top: 2.4rem; }
.b-sb-camere { display: grid; gap: 1rem; }
.b-sb-linie-mica { font-size: .95rem; color: var(--wine-soft); }
.b-sb-avertisment { margin-top: 1.4rem; padding: 1rem 1.2rem; border-radius: 20px; border: 1px solid var(--rule); background: #fff; font-size: 1rem; line-height: 1.5; color: var(--text); }
@media (max-width: 420px) {
  .b-sb-varianta { grid-template-columns: auto minmax(0, 1fr); }
  .b-sb-varianta-pret, .b-sb-epuizat { grid-column: 2; justify-items: start; text-align: left; }
}
.b-sb-termeni h2 { margin: 1.8rem 0 .5rem; font: 600 1.4rem/1.2 var(--display); color: var(--wine); }
.b-sb-termeni p, .b-sb-termeni li { font-size: 1.05rem; line-height: 1.6; color: var(--text); }
.b-sb-termeni ul { padding-left: 1.2rem; }
.b-sb-termeni a { color: var(--wine); text-underline-offset: .2em; }
.b-sb-program { margin-top: 1rem; }
.b-sb-program summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font: 500 .95rem/1.3 var(--ui); letter-spacing: .1em; text-transform: uppercase; color: var(--wine); }
.b-sb-zi { padding: .8rem 0; border-top: 1px solid var(--b-linie); }
.b-sb-zi-data { margin: 0; font: 500 .875rem/1.4 var(--ui); letter-spacing: .12em; text-transform: uppercase; color: var(--wine-soft); }
.b-sb-zi-titlu { margin: .2rem 0 .3rem; font: 600 1.25rem/1.25 var(--display); color: var(--wine); }
.b-sb-zi ul { margin: 0; padding-left: 1.1rem; font-size: 1rem; color: var(--text); }
.b-sb-camera-rezumat + .b-sb-camera-rezumat { margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--b-linie); }
.b-sb-capitole { margin: 1.4rem 0 0; padding-left: 1.6rem; list-style: decimal; }
.b-sb-capitole > li { padding-left: .3rem; }
.b-sb-capitole > li::marker { font: 600 1.3rem/1 var(--display); color: var(--wine); }
.b-sb-termeni .b-sb-capitole p { margin: .5rem 0 0; }

/* Vitrina pachetelor, după testul ca de client (25.10.2026): mesajul de lângă „Continuă”, bara fixă pe mobil, reducerea reală pe
   variantă, saloanele Revelionului, telefonul care nu se rupe pe două rânduri. */
.b-sb [hidden] { display: none !important; }
.b-nowrap { white-space: nowrap; }
.b-sb a[href^="tel:"] { white-space: nowrap; }
.b-sb-reducere { display: inline-block; margin-top: .2rem; padding: .1rem .5rem; border-radius: 999px; background: var(--wine); color: var(--apricot); font: 500 .875rem/1.3 var(--ui); white-space: nowrap; }
.b-sb-saloane { list-style: none; margin: 0 0 1.1rem; padding: 0; display: grid; gap: .45rem; font-size: 1rem; line-height: 1.45; color: var(--text); }
.b-sb-saloane b { color: var(--wine); font-weight: 600; }
.b-sb-bara { margin-top: 1rem; }
.b-sb-bara .b-sb-total { border-top: 1px solid var(--b-linie); }
.b-sb-mesaj { margin: 0 0 .2rem; padding: .75rem 1rem; border-radius: 14px; border: 1px solid var(--terracotta); background: #FFF6F1; font-size: 1rem; line-height: 1.45; color: var(--text); }
@media (max-width: 640px) {
  .b-sb-bara {
    position: sticky; bottom: 0; z-index: 20; margin: 1rem -1rem 0; padding: .7rem 1rem calc(.7rem + env(safe-area-inset-bottom));
    background: var(--paper); border-top: 1px solid var(--b-linie); box-shadow: 0 -10px 24px -14px rgba(84, 18, 30, .35);
  }
  .b-sb-bara-rand { display: flex; align-items: center; gap: .8rem; }
  .b-sb-bara .b-sb-total { flex: 1; min-width: 0; display: grid; gap: 0; padding-top: 0; border-top: 0; font-size: .95rem; }
  .b-sb-bara .b-sb-total b { font-size: 1.7rem; white-space: nowrap; }
  .b-sb-bara .b-pas-buton { flex: 1 0 auto; width: auto; margin-top: 0; padding-inline: 1.4rem; }
  .b-sb-mesaj { margin-bottom: .6rem; padding: .55rem .8rem; font-size: .95rem; }
}
