/* Hallmark · redesign: full, content and wiring kept · shape: Catalogue (search-led) · genre: editorial · theme: Ink (kept as the brand, ADR 0017; deal 1/3, seed portal-rom-nesc-oferte-706f·489f02e0·2026-11-10·r0) · job: book · draw: 83bff0
 * hero: Counter on /, a page head on every inner page · nav: edge-aligned, the mark and the name · footer: statement · imagery: the offers' own photos, muted · signature: one accommodation with every agency's price
 * axes: light/grotesk-sans/chromatic-teal · posture: restrained · contrast: pass · fold: pass · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V4 · weakest: S, the inner pages are lists and forms by nature; scale and rules carry them, not pictures */
/* Hallmark · answered F15 · one container (--container), one primary button (black), one radius per level: 12px zones and photos, 10px controls, pills for tags */
/* Hallmark · answered F7 · no box holds another box: lists are ruled, the only zones are paper-2 (filters, the price, the forms, the notices) */
/* Hallmark · waive 44c · the inner pages open with a page head, then the list or the form · a visitor on an offer, a search or a document came for that content, not for a hero; only / and /agentii carry one */
/* Hallmark · waive 79 · the inner pages open with a page head, then the list or the form · the space below a short head is the content starting, not an empty hero */
/* Hallmark · waive 78 · results count, the agencies' offers and the import chapters are item heads in a catalogue · set at --text-2xl and --text-title so the page head stays the one large line */
/* Hallmark · waive 77 · the import format and the privacy policy are documents read at a 65ch measure · their mass is the ruled tables and the code, not width */
/* Hallmark · waive 49b · the links that wrap at 320px sit inside sentences (the consent, the next departures) · nowrap would push them past the edge */
/* Hallmark · waive 59 · the offer page's description and departures are chapters of one offer, 64px apart · a 120px gap would push the departures table below the price column's end */
/* Hallmark · dismissed F20 · the compare note on / is a tag and one sentence that wrap as text, not a row of items */
/* Stilurile paginilor. Culorile, fonturile și mărimile vin din tokens.css (ADR 0017). Aici nu se scrie nicio culoare direct. */

/* ---------- Pagina: lățimea, titlurile, textul mic ---------- */

.container { width: 100%; max-width: calc(var(--container) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
main.container { padding-block: var(--space-lg) var(--space-3xl); }

h1 { font-size: var(--text-display-s); letter-spacing: var(--tracking-display); line-height: 1.02; margin: 0; }
h2 { font-size: var(--text-2xl); margin: 0; }
h3 { font-size: var(--text-lg); margin: 0; }

.lead { font-size: var(--text-lead); line-height: 1.45; max-width: 52ch; margin: 0; }
.hint { color: var(--color-muted); font-size: var(--text-sm); max-width: var(--measure); }
.stars { color: var(--color-ink); font-size: 0.8em; white-space: nowrap; }

/* Felul ofertei, transportul, masa și nopțile: o linie subțire între ele, nu puncte. */
.meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2xs) 0; list-style: none; margin: 0; padding: 0; color: var(--color-muted); font-size: var(--text-sm); }
.meta li { padding-inline: var(--space-sm); border-left: var(--rule-hair) solid var(--color-rule); line-height: 1.2; }
.meta li:first-child { padding-left: 0; border-left: 0; }

/* ---------- Antetul și subsolul ---------- */

.site-header { background: var(--color-paper); border-bottom: var(--rule-hair) solid var(--color-ink); }
.site-header .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-xs) var(--space-lg); min-height: 72px; padding-block: var(--space-sm); }
.site-header__nav { display: flex; gap: var(--space-2xs) var(--space-md); flex-wrap: wrap; }
.site-header__nav a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: var(--space-2xs); color: var(--color-ink-2); text-decoration: none; }
.site-header__nav a:hover { color: var(--color-accent); }
.site-header__nav a[aria-current] { color: var(--color-ink); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.5em; }

/* Logo-ul: semnul și numele site-ului. Numele vine din app.site_name, ca să se schimbe dintr-un loc. */
.logo { display: inline-flex; align-items: center; gap: var(--space-sm); min-height: 44px; color: var(--color-ink); font-size: var(--text-lg); font-weight: 700; letter-spacing: var(--tracking-head); line-height: 1.1; text-decoration: none; }
.logo:hover { color: var(--color-ink); }
.logo__mark { flex: none; width: 32px; height: 32px; }
.logo__tile { fill: var(--color-ink); }
.logo__sun { fill: var(--color-accent-bright); }
.logo__row { fill: var(--color-paper); }
.logo__row--second { opacity: 0.6; }
.logo__label { padding: var(--space-3xs) var(--space-sm); border-radius: var(--radius-pill); background: var(--color-accent-soft); color: var(--color-accent-soft-ink); font-size: var(--text-xs); font-weight: 600; letter-spacing: 0; }
/* Adminul are semnul pe turcoaz, ca să nu fie confundat cu site-ul. */
.admin-body .logo__tile { fill: var(--color-accent); }
.admin-body .logo__sun { fill: var(--color-paper); }
.admin-body .logo__row { fill: var(--color-ink); }

.site-footer { padding-block: var(--space-2xl); border-top: var(--rule-hair) solid var(--color-ink); color: var(--color-muted); font-size: var(--text-sm); }
.site-footer__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-md) var(--space-2xl); align-items: start; }
.site-footer__brand { margin: 0; color: var(--color-ink); font-size: var(--text-lg); font-weight: 700; letter-spacing: var(--tracking-head); }
.site-footer__inner > p:not(.site-footer__brand) { margin: 0; max-width: 60ch; }
.site-footer__nav { grid-column: 2; display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-lg); }
.site-footer__nav a { color: var(--color-ink-2); font-weight: 400; }
.site-footer__nav a:hover { color: var(--color-accent); }

@media (max-width: 40rem) {
    .logo { font-size: var(--text-md); gap: var(--space-xs); }
    .site-header .container { min-height: 0; }
    .site-footer__inner { grid-template-columns: minmax(0, 1fr); }
    .site-footer__nav { grid-column: 1; flex-direction: column; }
}

/* ---------- Controalele: butoane, etichete, câmpuri ---------- */

.button {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--space-xs);
    min-height: 48px; padding: var(--space-xs) var(--space-lg);
    border: 0; border-radius: var(--radius-control);
    background: var(--color-ink); color: var(--color-paper);
    font: inherit; font-weight: 600; line-height: 1.2; text-align: center; text-decoration: none;
    cursor: pointer;
    transition: background-color var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out);
}
.button:hover { background: var(--color-ink-2); color: var(--color-paper); }
.button:active { transform: translateY(1px); }
.button[disabled] { background: var(--color-paper-3); color: var(--color-muted); cursor: not-allowed; transform: none; }
.button--small { min-height: 44px; padding: var(--space-2xs) var(--space-md); font-size: var(--text-sm); }
.button--secondary { background: var(--color-paper); color: var(--color-ink); box-shadow: inset 0 0 0 var(--rule-hair) var(--color-ink); }
.button--secondary:hover { background: var(--color-paper-2); color: var(--color-ink); }

/* Etichetele: turcoaz pal pentru ce e „deschis”, negru pentru promovat, contur pentru restul. */
.tag, .badge { display: inline-flex; align-items: center; padding: var(--space-3xs) var(--space-sm); border-radius: var(--radius-pill); background: var(--color-paper-3); color: var(--color-ink); font-size: var(--text-xs); font-weight: 600; line-height: 1.5; white-space: nowrap; }
.tag--in { background: var(--color-accent-soft); color: var(--color-accent-soft-ink); }
.tag--out { background: transparent; box-shadow: inset 0 0 0 var(--rule-hair) var(--color-rule); color: var(--color-muted); }
.badge--promoted { background: var(--color-ink); color: var(--color-paper); }

/* O informație care încă lipsește, ca un loc gol de completat. */
.fill { display: inline-block; padding: var(--space-2xs) var(--space-sm); border: var(--rule-hair) dashed var(--color-muted); border-radius: var(--space-2xs); color: var(--color-muted); }

/* Câmpurile tuturor formularelor: căutarea, cererea, intrarea în admin. */
.quick-search label, .search-form label, .inquiry-form label, .inquiry-form legend, .admin-login label { display: block; margin-bottom: var(--space-2xs); color: var(--color-ink-2); font-size: var(--text-sm); font-weight: 600; }
.quick-search input, .quick-search select,
.search-form input, .search-form select,
.inquiry-form input[type="text"], .inquiry-form input[type="tel"], .inquiry-form input[type="email"], .inquiry-form input[type="number"], .inquiry-form select, .inquiry-form textarea,
.admin-login input:not([type="hidden"]) {
    width: 100%; min-width: 0; min-height: 48px;
    padding: var(--space-xs) var(--space-sm);
    border: var(--rule-hair) solid var(--color-muted); border-radius: var(--radius-control);
    background: var(--color-paper); color: var(--color-ink);
    font-size: var(--text-md);
    transition: border-color var(--dur-micro) var(--ease-out);
}
.quick-search :is(input, select):hover, .search-form :is(input, select):hover, .inquiry-form :is(input, select, textarea):hover, .admin-login input:hover { border-color: var(--color-ink); }
.quick-search :is(input, select):focus-visible, .search-form :is(input, select):focus-visible, .inquiry-form :is(input, select, textarea):focus-visible, .admin-login input:focus-visible { outline-offset: -1px; border-color: var(--color-focus); }
.inquiry-form textarea { min-height: 120px; resize: vertical; }
/* Greșelile din formulare (Symfony le scrie ca listă). */
.search-form ul, .inquiry-form ul { list-style: none; margin: var(--space-2xs) 0 0; padding: 0; color: var(--color-error); font-size: var(--text-sm); }

/* O zonă gri cu margine subțire: filtrele, prețul, formularele, avertismentele. */
.search-form, .price-box, .demo-notice, .inquiry-page .inquiry, .admin-login, .admin-notice {
    background: var(--color-paper-2);
    border: var(--rule-hair) solid var(--color-rule);
    border-radius: var(--radius-card);
}

.demo-notice { margin: 0 0 var(--space-lg); padding: var(--space-sm) var(--space-md); color: var(--color-ink-2); font-size: var(--text-sm); }
.demo-notice strong { color: var(--color-ink); }

/* ---------- Capul paginilor interioare: unde ești, titlul, unde poți merge ---------- */

.breadcrumb ol { display: flex; flex-wrap: wrap; gap: var(--space-2xs) var(--space-xs); list-style: none; margin: 0 0 var(--space-md); padding: 0; font-size: var(--text-sm); }
.breadcrumb li + li::before { content: "/"; margin-right: var(--space-xs); color: var(--color-rule); }
.breadcrumb a { color: var(--color-muted); font-weight: 400; }
.breadcrumb a:hover { color: var(--color-accent); }

.page-head { padding-block: var(--space-xl) var(--space-2xl); }
.page-head h1 { max-width: 18ch; }

.subdestinations ul { display: flex; flex-wrap: wrap; gap: var(--space-xs); list-style: none; margin: var(--space-lg) 0 0; padding: 0; }
.subdestinations a { display: inline-flex; align-items: center; min-height: 40px; padding: var(--space-2xs) var(--space-md); border-radius: var(--radius-pill); box-shadow: inset 0 0 0 var(--rule-hair) var(--color-rule); color: var(--color-ink); font-size: var(--text-sm); text-decoration: none; transition: box-shadow var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out); }
.subdestinations a:hover { box-shadow: inset 0 0 0 var(--rule-hair) var(--color-ink); color: var(--color-ink); }

/* ---------- Căutarea ---------- */

.search { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: var(--space-2xl); align-items: start; }
.search__filters > summary { display: none; }

.search-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-md) var(--space-sm); padding: var(--space-lg); }
.search-form__field--wide, .search-form__field--date, .search-form__price, .search-form__submit, .search-form > ul { grid-column: 1 / -1; }
.search-form__price { display: grid; grid-template-columns: minmax(0, 1fr) 6rem; gap: var(--space-xs); align-items: end; }
.search-form__submit { margin-top: var(--space-2xs); }

.search__bar { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--space-sm) var(--space-lg); padding-bottom: var(--space-md); border-bottom: var(--rule-hair) solid var(--color-ink); }
.search__bar h2 { font-size: var(--text-title); }
.sort { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2xs); font-size: var(--text-sm); }
.sort > span { margin-right: var(--space-xs); color: var(--color-muted); }
.sort a, .sort strong { display: inline-flex; align-items: center; min-height: 36px; padding: 0 var(--space-sm); border-radius: var(--radius-pill); }
.sort a { color: var(--color-ink-2); font-weight: 400; text-decoration: none; }
.sort a:hover { background: var(--color-paper-2); color: var(--color-ink); }
.sort strong { background: var(--color-accent-soft); color: var(--color-accent-soft-ink); font-weight: 600; }
.search__results > .demo-notice { margin-top: var(--space-md); }
.search__results > h2 + p { margin-top: var(--space-sm); }

/* Rezultatele: o listă cu linii, nu cutii. */
.result-cards { container-type: inline-size; list-style: none; margin: 0 0 var(--space-lg); padding: 0; }
.result-cards > li { border-bottom: var(--rule-hair) solid var(--color-rule); }
.result-card { display: grid; grid-template-columns: 220px minmax(0, 1fr) minmax(0, 220px); gap: var(--space-lg); padding-block: var(--space-lg); }
.result-card__photo { display: block; align-self: start; }
.result-card__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-card); filter: saturate(0.7) contrast(0.97); transition: filter var(--dur-short) var(--ease-out); }
.result-card:hover .result-card__photo img { filter: none; }
.result-card__body { display: grid; align-content: start; gap: var(--space-xs); }
.result-card__body p { margin: 0; }
.result-card__title { font-size: var(--text-title); line-height: 1.15; }
.result-card__title a { color: var(--color-ink); text-decoration: none; }
.result-card__title a:hover { color: var(--color-accent); }
.result-card__place { color: var(--color-ink-2); }
.result-card__type { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs) var(--space-sm); }
.result-card__departure { color: var(--color-muted); font-size: var(--text-sm); }
.result-card__aside { display: flex; flex-direction: column; align-items: flex-end; gap: var(--space-2xs); text-align: right; }
.result-card__aside p { margin: 0; }
.result-card__price { color: var(--color-muted); font-size: var(--text-sm); }
.result-card__price strong { display: block; color: var(--color-ink); font-size: var(--text-xl); letter-spacing: var(--tracking-head); line-height: 1.15; font-variant-numeric: tabular-nums; }
.result-card__price-date, .result-card__agencies { color: var(--color-muted); font-size: var(--text-sm); }
.result-card__aside .button { margin-top: var(--space-sm); }
/* Cardul promovat: pe hârtie gri, cu eticheta neagră. Fără dungă pe margine. */
.result-card--promoted { margin-block: var(--space-sm); padding-inline: var(--space-lg); background: var(--color-paper-2); border-radius: var(--radius-card); box-shadow: inset 0 0 0 var(--rule-hair) var(--color-rule); }
.result-cards > li:has(.result-card--promoted) { border-bottom: 0; }

/* Cardul se așază după lățimea listei, nu a ecranului: lângă filtre, lista e mai îngustă decât pagina. */
@container (max-width: 760px) {
    .result-card { grid-template-columns: minmax(0, 180px) minmax(0, 1fr); }
    .result-card__aside { grid-column: 2; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--space-2xs) var(--space-md); text-align: left; }
    .result-card__aside .button { grid-column: 2; grid-row: 1 / span 3; margin: 0; }
}
@container (max-width: 520px) {
    .result-card { grid-template-columns: minmax(0, 1fr); gap: var(--space-md); }
    .result-card__photo img { aspect-ratio: 16 / 9; }
    .result-card__aside { grid-column: auto; }
    .result-card--promoted { padding-inline: var(--space-md); }
}

.pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--space-sm) var(--space-md); margin-top: var(--space-2xl); color: var(--color-muted); font-size: var(--text-sm); }
.pagination a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-md); border-radius: var(--radius-control); box-shadow: inset 0 0 0 var(--rule-hair) var(--color-ink); color: var(--color-ink); text-decoration: none; }
.pagination a:hover { background: var(--color-paper-2); color: var(--color-ink); }

@media (max-width: 60rem) {
    .search { grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); }
    .search__filters > summary { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 0 var(--space-md); border-radius: var(--radius-control); box-shadow: inset 0 0 0 var(--rule-hair) var(--color-ink); color: var(--color-ink); font-weight: 600; cursor: pointer; list-style: none; }
    .search__filters > summary::-webkit-details-marker { display: none; }
    .search__filters > summary::after { content: "+"; font-size: var(--text-lg); line-height: 1; }
    .search__filters[open] > summary::after { content: "−"; }
    .search__filters[open] > summary { margin-bottom: var(--space-sm); }
    /* Pe telefon formularul are toată lățimea, așa că datele încap una lângă alta. */
    .search-form .search-form__field--date { grid-column: auto; }
}
@media (max-width: 40rem) {
    .page-head { padding-block: var(--space-lg) var(--space-xl); }
    .search-form { padding: var(--space-md); }
}

/* ---------- Oferta ---------- */

.offer__header { display: grid; gap: var(--space-md); padding-block: var(--space-sm) var(--space-xl); }
.offer__header h1 { max-width: 22ch; }
.offer__accommodation, .offer__header > .offer__type { margin: 0; font-size: var(--text-lead); color: var(--color-ink-2); }
.offer__type { color: var(--color-ink); font-weight: 600; }

.gallery { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-auto-rows: 200px; gap: var(--space-xs); border-radius: var(--radius-card); overflow: hidden; }
.gallery img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.8) contrast(0.97); }
.gallery img:first-child { grid-row: span 2; }
/* Ultima poză, rămasă singură pe rând, ia tot rândul. */
.gallery img:nth-child(2n+4):last-child { grid-column: 1 / -1; }
.gallery img:nth-child(2):last-child { grid-row: span 2; }

.offer__layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--space-2xl); margin-top: var(--space-2xl); align-items: start; }
.offer__main { container-type: inline-size; }
.offer__main > section { margin-top: var(--space-2xl); }
.offer__main h2 { margin-bottom: var(--space-md); }
.offer__description { max-width: var(--measure); color: var(--color-ink-2); }

/* Pe scurt: trei cifre mari, cu linii între ele. */
.facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; border-block: var(--rule-hair) solid var(--color-ink); }
.facts li { padding: var(--space-md) var(--space-md) var(--space-md) 0; color: var(--color-ink); font-size: var(--text-xl); font-weight: 700; letter-spacing: var(--tracking-head); line-height: 1.15; }
.facts li + li { padding-left: var(--space-md); border-left: var(--rule-hair) solid var(--color-rule); }
.facts span { display: block; margin-bottom: var(--space-2xs); color: var(--color-muted); font-size: var(--text-sm); font-weight: 400; letter-spacing: 0; }
.facts li { overflow-wrap: break-word; }
/* Când coloana e îngustă, cuvinte ca „Demipensiune” nu mai încap în trei coloane: faptele trec unul sub altul. */
@container (max-width: 720px) { .facts li { font-size: var(--text-lg); } }
@container (max-width: 560px) {
    .facts { grid-template-columns: minmax(0, 1fr); }
    .facts li, .facts li + li { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-md); padding: var(--space-sm) 0; border-left: 0; }
    .facts li + li { border-top: var(--rule-hair) solid var(--color-rule); }
    .facts span { margin: 0; }
}

/* Tabelele cu linii: plecările, orarul de pe prima pagină, prețurile pentru agenții, câmpurile importului. */
.departures, .departure-table, .price-table, .import-format__table table { width: 100%; border-collapse: collapse; border-top: var(--rule-hair) solid var(--color-ink); }
.departures :is(th, td), .departure-table :is(th, td), .price-table :is(th, td), .import-format__table :is(th, td) { padding: var(--space-md) var(--space-sm) var(--space-md) 0; border-bottom: var(--rule-hair) solid var(--color-rule); text-align: left; vertical-align: top; }
:is(.departures, .departure-table, .price-table, .import-format__table) thead th { color: var(--color-muted); font-size: var(--text-sm); font-weight: 400; white-space: nowrap; }
.departures td:first-child::first-letter { text-transform: uppercase; }
.departures th:last-child, .departures td:last-child { text-align: right; padding-right: 0; }
.departures__price { color: var(--color-ink); font-size: var(--text-lg); font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.departures + .hint { margin-top: var(--space-md); }

/* Coloana din dreapta: prețul, cererea și agenția. Nu e lipicioasă: cu formularul, e mai înaltă decât ecranul. */
.offer__aside { display: grid; gap: var(--space-xl); }
.price-box { padding: var(--space-lg); }
.price-from { margin: 0 0 var(--space-lg); color: var(--color-muted); }
.price-from strong { color: var(--color-ink); font-size: var(--text-2xl); letter-spacing: var(--tracking-head); font-variant-numeric: tabular-nums; }
.agency { padding-top: var(--space-md); border-top: var(--rule-hair) solid var(--color-ink); }
.agency h2 { margin-bottom: var(--space-xs); color: var(--color-muted); font-size: var(--text-sm); font-weight: 400; letter-spacing: 0; }
.agency p { margin: 0; }
.agency__name { color: var(--color-ink); font-size: var(--text-title); font-weight: 700; letter-spacing: var(--tracking-head); }
.agency__license { margin-top: var(--space-2xs); color: var(--color-ink-2); }
.agency .hint { margin-top: var(--space-sm); }
.offer__aside .compare { margin: 0; }
.offer__aside .compare a { display: flex; align-items: center; min-height: 48px; padding: var(--space-xs) var(--space-md); border-radius: var(--radius-control); box-shadow: inset 0 0 0 var(--rule-hair) var(--color-ink); color: var(--color-ink); text-decoration: none; }
.offer__aside .compare a:hover { background: var(--color-paper-2); color: var(--color-ink); }

@media (max-width: 60rem) {
    .offer__layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); margin-top: var(--space-xl); }
    .offer__aside { order: -1; }
}
@media (max-width: 40rem) {
    .gallery { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-auto-rows: 120px; }
    .gallery img:first-child { grid-column: span 2; grid-row: span 2; }
    .gallery img:nth-child(2):last-child { grid-column: span 2; grid-row: span 2; }
    .price-box { padding: var(--space-md); }
}

/* ---------- Cererea turistului ---------- */

.inquiry__title { margin-bottom: var(--space-md); font-size: var(--text-lg); }
.inquiry > .button, .inquiry-form > .button { width: 100%; }
.inquiry__note { margin: var(--space-sm) 0 0; color: var(--color-muted); font-size: var(--text-sm); }
.inquiry__sent { padding: var(--space-md); border-radius: var(--radius-control); background: var(--color-accent-soft); color: var(--color-accent-soft-ink); }
.inquiry__sent p { margin: 0; }
.inquiry__sent p + p { margin-top: var(--space-xs); }
.inquiry__sent strong { color: var(--color-accent-soft-ink); }

.inquiry-form { display: grid; gap: var(--space-md); }
.inquiry-form__people { display: grid; gap: var(--space-md); }
.inquiry-form__pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-sm); }
.inquiry-form__ages { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-sm); margin: 0; padding: 0; border: 0; }
.inquiry-form__ages legend { grid-column: 1 / -1; padding: 0; }
.inquiry-form__ages label { color: var(--color-muted); font-weight: 400; }
.inquiry-form__ages[hidden], .inquiry-form__ages [hidden] { display: none; }
.inquiry-form__consent { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0 var(--space-sm); align-items: start; }
.inquiry-form__consent input[type="checkbox"] { width: 20px; height: 20px; margin: var(--space-3xs) 0 0; accent-color: var(--color-ink); }
.inquiry-form .inquiry-form__consent label { margin: 0; color: var(--color-ink-2); font-size: var(--text-sm); font-weight: 400; }
.inquiry-form__consent ul { grid-column: 1 / -1; }
/* Câmpul-capcană stă în afara ecranului (ADR 0011). */
.inquiry-form__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.inquiry-page { max-width: 560px; padding-top: var(--space-md); }
.inquiry-page__back { margin: 0 0 var(--space-lg); font-size: var(--text-sm); }
.inquiry-page h1 { margin-bottom: var(--space-sm); }
.inquiry-page__offer { margin: 0 0 var(--space-xl); color: var(--color-ink-2); font-size: var(--text-lead); }
.inquiry-page .inquiry { padding: var(--space-lg); }

/* ---------- Cazarea ---------- */

.accommodation-card__header { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-xl) var(--space-2xl); align-items: center; padding-block: var(--space-sm) var(--space-2xl); }
.accommodation-card__cover { grid-column: 2; grid-row: 1; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-card); filter: saturate(0.8) contrast(0.97); }
.accommodation-card__intro { display: grid; gap: var(--space-md); }
.accommodation-card__intro p { margin: 0; }
.accommodation-card__place { color: var(--color-ink-2); font-size: var(--text-lead); }
.accommodation-card__map { font-size: var(--text-sm); }
.accommodation-card__intro .price-from { margin-top: var(--space-sm); }
.accommodation-card__intro .price-from strong { font-size: var(--text-3xl); font-variant-numeric: tabular-nums; }
.accommodation-card__offers h2 { margin-bottom: var(--space-lg); }

.agency-offers { list-style: none; margin: 0 0 var(--space-md); padding: 0; border-top: var(--rule-hair) solid var(--color-ink); }
.agency-offer { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 5fr) minmax(0, 3fr); gap: var(--space-xs) var(--space-xl); align-items: center; padding-block: var(--space-lg); border-bottom: var(--rule-hair) solid var(--color-rule); }
.agency-offer > div { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2xs); }
.agency-offer__agency strong { color: var(--color-ink); font-size: var(--text-lg); letter-spacing: var(--tracking-head); }
.agency-offer__agency > span:last-child { color: var(--color-muted); font-size: var(--text-sm); }
.agency-offer__details a { color: var(--color-ink); }
.agency-offer > .agency-offer__price { align-items: flex-end; color: var(--color-muted); font-size: var(--text-sm); text-align: right; }
.agency-offer__price strong { color: var(--color-ink); font-size: var(--text-xl); letter-spacing: var(--tracking-head); font-variant-numeric: tabular-nums; }
.agency-offer__price .button { margin-top: var(--space-xs); }

@media (max-width: 60rem) {
    .accommodation-card__header { grid-template-columns: minmax(0, 1fr); }
    .accommodation-card__cover { grid-column: 1; aspect-ratio: 16 / 9; }
}
@media (max-width: 40rem) {
    .agency-offer { grid-template-columns: minmax(0, 1fr); }
    .agency-offer > .agency-offer__price { flex-direction: row; flex-wrap: wrap; align-items: baseline; justify-content: space-between; text-align: left; }
    .agency-offer__price .button { margin: 0 0 0 auto; }
}

/* Oferta care nu mai e pe site. */
.unavailable { display: grid; gap: var(--space-lg); justify-items: start; padding-block: var(--space-2xl) var(--space-xl); }
.unavailable h1 { max-width: 16ch; }
.unavailable p { margin: 0; max-width: 52ch; font-size: var(--text-lead); color: var(--color-ink-2); }

/* ---------- Documentele: formatul de import și confidențialitatea ---------- */

.import-format, .legal { max-width: 880px; padding-top: var(--space-md); }
.import-format > h1, .legal > h1 { max-width: 20ch; margin-bottom: var(--space-lg); }
.import-format > section { margin-top: var(--space-3xl); padding-top: var(--space-lg); border-top: var(--rule-hair) solid var(--color-ink); }
.import-format h2 { margin-bottom: var(--space-md); }
.import-format h3 { margin: var(--space-xl) 0 var(--space-sm); }
.import-format p, .import-format li, .legal p, .legal li { max-width: var(--measure); color: var(--color-ink-2); }
.import-format__lead { font-size: var(--text-lead); line-height: 1.45; }
.import-format__rules { padding-left: var(--space-lg); }
.import-format__rules li + li { margin-top: var(--space-xs); }
.import-format code, .import-format__example { font-family: var(--font-mono); font-size: 0.875em; }
.import-format__example code { font-size: inherit; }
.import-format :not(pre) > code { padding: 0 var(--space-2xs); border-radius: var(--space-2xs); background: var(--color-paper-3); color: var(--color-ink); overflow-wrap: anywhere; }
.import-format__table { overflow-x: auto; }
.import-format__table td:first-child { white-space: nowrap; }
.import-format__table td { color: var(--color-ink-2); }
.import-format__values { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0 var(--space-xl); }
.import-format__values > h2, .import-format__values > p { grid-column: 1 / -1; }
.import-format__values h3 { margin: var(--space-sm) 0 var(--space-xs); font-size: var(--text-md); }
.import-format__values ul { margin: 0; padding-left: var(--space-lg); }
.import-format__example { margin: 0; padding: var(--space-md) var(--space-lg); overflow-x: auto; border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-card); background: var(--color-paper-2); color: var(--color-ink); line-height: 1.5; }

.legal > h2 { margin: var(--space-2xl) 0 var(--space-sm); padding-top: var(--space-lg); border-top: var(--rule-hair) solid var(--color-rule); font-size: var(--text-xl); }
.legal > h1 + p { font-size: var(--text-lead); }
.legal ul { padding-left: var(--space-lg); }
.legal > .hint { margin-top: var(--space-2xl); }

@media (max-width: 40rem) {
    /* Pe telefon, fiecare rând din tabelele cu câmpuri e un bloc: numele sus, explicația dedesubt. */
    .import-format__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .import-format__table tr { display: grid; gap: var(--space-2xs); padding-block: var(--space-md); border-bottom: var(--rule-hair) solid var(--color-rule); }
    .import-format__table td { display: block; padding: 0; border: 0; }
    .import-format__table td:first-child { white-space: normal; font-weight: 600; }
    /* În tabelele care devin blocuri, eticheta coloanei apare în fața valorii. */
    :is(.departure-table, .import-format__table) td[data-label]::before { content: attr(data-label) ": "; color: var(--color-muted); }
}

/* ---------- Prima pagină ---------- */

.home-section { padding-block: var(--space-3xl); }
.home-section h2, .home-agencies h2 { font-size: var(--text-section); letter-spacing: var(--tracking-display); line-height: 1.05; margin: 0; max-width: 24ch; }
.home-section__head { display: grid; gap: var(--space-md); margin-bottom: var(--space-2xl); }
.home-section > .container > h2 { margin-bottom: var(--space-2xl); }
.home-section__more { margin: var(--space-lg) 0 0; }

/* Antetul paginii: căutarea și o cazare cu prețurile tuturor agențiilor. */
.home-hero { padding-block: var(--space-2xl) var(--space-3xl); }
.home-hero__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--space-2xl); align-items: center; }
.home-hero h1 { font-size: var(--text-display); line-height: 1; margin: 0 0 var(--space-lg); max-width: 14ch; }
.home-hero .lead { margin-bottom: var(--space-xl); }

.quick-search { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-md); padding: var(--space-lg); background: var(--color-paper-2); border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-card); }
.quick-search__field--wide { grid-column: 1 / -1; }
.quick-search label { font-weight: 400; }
.quick-search__submit { align-self: end; }

.compare { display: grid; gap: var(--space-md); }
.compare__photo { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-card); outline: var(--rule-hair) solid var(--color-rule); outline-offset: -1px; filter: saturate(0.65) contrast(0.97); }
.compare__title { font-size: var(--text-title); margin: 0; }
.compare__title a { color: var(--color-ink); text-decoration: none; }
.compare__place { margin: var(--space-2xs) 0 0; color: var(--color-muted); }
.compare__offers { list-style: none; margin: 0; padding: 0; border-top: var(--rule-hair) solid var(--color-ink); }
.compare__offers li { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-md); padding-block: var(--space-sm); border-bottom: var(--rule-hair) solid var(--color-rule); }
.compare__price { color: var(--color-muted); font-size: var(--text-sm); white-space: nowrap; }
.compare__price strong { color: var(--color-ink); font-size: var(--text-lg); font-variant-numeric: tabular-nums; }
.compare__note { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs) var(--space-md); margin: 0; color: var(--color-muted); font-size: var(--text-sm); }

@media (max-width: 60rem) {
    .home-hero { padding-block: var(--space-xl) var(--space-2xl); }
    .home-hero__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); }
}
@media (max-width: 40rem) {
    .quick-search { grid-template-columns: minmax(0, 1fr); padding: var(--space-md); }
    .home-section { padding-block: var(--space-2xl); }
}

/* Regiunile cu cele mai multe oferte, ca listă cu linii, pe două coloane. */
.destination-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-2xl); }
.destination-list li { border-bottom: var(--rule-hair) solid var(--color-rule); }
.destination-list li:nth-child(-n + 2) { border-top: var(--rule-hair) solid var(--color-ink); }
.destination-list a { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 var(--space-md); padding-block: var(--space-lg); text-decoration: none; color: var(--color-ink); }
.destination-list__name { font-size: var(--text-title); font-weight: 700; letter-spacing: var(--tracking-head); }
.destination-list__country { grid-row: 2; color: var(--color-muted); font-weight: 400; }
.destination-list .tag { grid-row: 1 / span 2; grid-column: 2; }
.destination-list a:hover .destination-list__name { color: var(--color-accent); }
@media (max-width: 40rem) {
    .destination-list { grid-template-columns: minmax(0, 1fr); }
    .destination-list li:nth-child(2) { border-top: 0; }
}

/* Plecările ieftine, ca un orar. */
.departure-table tbody th, .price-table tbody th { font-weight: 600; color: var(--color-ink); }
.departure-table__name a { font-size: var(--text-lg); }
.departure-table__name span:not(.tag), .price-table tbody th span { display: block; color: var(--color-muted); font-weight: 400; }
.departure-table__date { white-space: nowrap; color: var(--color-ink); }
.departure-table td.departure-table__price, .departure-table th.departure-table__price { text-align: right; padding-right: 0; white-space: nowrap; }
.departure-table__price strong { font-variant-numeric: tabular-nums; font-size: var(--text-xl); color: var(--color-ink); letter-spacing: var(--tracking-head); }
@media (max-width: 40rem) {
    /* Pe telefon, fiecare plecare e un bloc: data și vacanța sus, restul dedesubt. */
    .departure-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .departure-table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2xs) var(--space-md); padding-block: var(--space-md); border-bottom: var(--rule-hair) solid var(--color-rule); }
    .departure-table th, .departure-table td { display: block; padding: 0; border: 0; }
    .departure-table__date, .departure-table__name { grid-column: 1 / -1; }
    .departure-table__price { grid-column: 2; grid-row: 3 / span 2; align-self: end; }
}

/* Banda pentru agenții. */
.home-agencies { padding-block: var(--space-3xl); background: var(--color-paper-2); border-block: var(--rule-hair) solid var(--color-rule); }
.home-agencies__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-xl) var(--space-2xl); align-items: start; }
.home-agencies__grid .lead { margin-top: var(--space-md); }
.home-agencies__body { display: grid; gap: var(--space-xl); justify-items: start; }
.ruled { list-style: none; margin: 0; padding: 0; width: 100%; border-top: var(--rule-hair) solid var(--color-ink); }
.ruled li { padding-block: var(--space-md); border-bottom: var(--rule-hair) solid var(--color-rule); color: var(--color-ink); font-size: var(--text-lg); }
@media (max-width: 60rem) { .home-agencies__grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Pagina pentru agenții ---------- */

.agencies-hero { padding-block: var(--space-3xl) var(--space-2xl); }
.agencies-hero h1 { margin: 0 0 var(--space-lg); max-width: 18ch; }
.agencies-hero__contact { margin: var(--space-xl) 0 0; font-size: var(--text-lg); }
.price-table td { width: 1%; white-space: nowrap; padding-right: 0; }
.price-table + .hint { margin-top: var(--space-lg); }
.steps { list-style: none; counter-reset: step; margin: var(--space-2xl) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-xl) var(--space-2xl); }
.steps li { counter-increment: step; border-top: var(--rule-hair) solid var(--color-ink); padding-top: var(--space-md); }
.steps li::before { content: counter(step); display: block; margin-bottom: var(--space-md); color: var(--color-ink); font-size: var(--text-display-s); font-weight: 700; line-height: 1; letter-spacing: var(--tracking-display); }
.steps h3 { font-size: var(--text-title); margin: 0 0 var(--space-xs); }
.steps p { margin: 0; }
@media (max-width: 60rem) { .steps { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Adminul (ADR 0022) ---------- */

.admin-header .container { min-height: 64px; }
/* Pe telefon, „Ieși” rămâne pe rândul logo-ului: numele site-ului se ascunde vizual, semnul și „Admin” rămân. */
@media (max-width: 30rem) {
    .admin-header .container { flex-wrap: nowrap; }
    .admin-header .logo__name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
.admin-header form { margin: 0; }
main.admin { padding-block: var(--space-xl) var(--space-3xl); }
.admin-head { display: grid; gap: var(--space-md); margin-bottom: var(--space-xl); }
.admin-head h1 { font-size: var(--text-section); }

.admin-notice { margin: 0 0 var(--space-lg); padding: var(--space-sm) var(--space-md); color: var(--color-ink); }
.admin-notice--success { border-color: var(--color-accent-soft); background: var(--color-accent-soft); color: var(--color-accent-soft-ink); }
.admin-notice--error { border-color: var(--color-error); color: var(--color-error); }

.admin-login { max-width: 420px; margin: var(--space-2xl) auto 0; padding: var(--space-xl); }
.admin-login h1 { margin-bottom: var(--space-lg); font-size: var(--text-2xl); }
.admin-login form { display: grid; gap: var(--space-xs); }
.admin-login input:not([type="hidden"]) { margin-bottom: var(--space-sm); }
.admin-login .button { margin-top: var(--space-xs); }
.admin-login .admin-notice { background: var(--color-paper); }

.admin-empty { margin: 0; padding-top: var(--space-lg); border-top: var(--rule-hair) solid var(--color-ink); font-size: var(--text-lead); color: var(--color-ink-2); }

/* O cazare de verificat: o secțiune cu linie, cu cazările cu care seamănă dedesubt. */
.review-card { display: grid; gap: var(--space-md); justify-items: start; padding-block: var(--space-lg) var(--space-xl); border-top: var(--rule-hair) solid var(--color-ink); }
.review-card p { margin: 0; }
.review-card__subject { display: grid; gap: var(--space-xs); }
.review-card__name { color: var(--color-ink); font-size: var(--text-title); font-weight: 700; letter-spacing: var(--tracking-head); }
.review-card__name a { color: var(--color-ink); }
.review-card__offers { margin: var(--space-2xs) 0 0; padding-left: var(--space-lg); color: var(--color-ink-2); font-size: var(--text-sm); }
.review-card__title { margin-top: var(--space-xs); color: var(--color-ink-2); font-size: var(--text-md); font-weight: 600; letter-spacing: 0; }
.review-card__suggestions { list-style: none; margin: 0; padding: 0; width: 100%; }
.review-suggestion { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-md) var(--space-xl); padding: var(--space-md) 0; border-top: var(--rule-hair) solid var(--color-rule); }
.review-suggestion > div { display: grid; gap: var(--space-xs); }
.review-suggestion .review-card__name { font-size: var(--text-lg); }
.review-suggestion form { flex-shrink: 0; }
.review-card > form { margin-top: var(--space-xs); }
@media (max-width: 40rem) {
    .review-suggestion { flex-direction: column; }
}
