/*
 * Stilul paginilor casaseciu.ro, peste home.css (copiat de pe bilete). Luat din <style>-ul
 * prototipului Acasă (prototipuri/acasa/index.html, 17 sept. 2026) la trecerea în Blade.
 * De aici încolo se editează aici, nu în prototip.
 */
/* =====================================================================================
   PROTOTIP ACASĂ (casaseciu.ro) — tot ce e nou stă aici, cu prefixul „a-", peste home.css.
   Aceleași tokenuri ca pe bilete: teren (--ground), cerneală (--ink), reguli (--rule).
   Firul paginii e „o zi la Casa Seciu": zi (hero, povestea, descoperă) → amurg (Arhonte,
   împrejurimi) → noapte (seri) → a doua zi (recenzii, newsletter, contact).
   ===================================================================================== */

.page-home {
  --paper-deep: #F1E8DC;
  --a-head: 76px;          /* antetul */
  --a-bar: 0px;            /* bara de jos (doar pe telefon) */
  --a-gut: max(16px, calc((100vw - 1200px) / 2));
  --a-gap: clamp(1.2rem, 2.6vw, 2.4rem);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
@media (max-width: 860px) { .page-home { --a-head: 60px; --a-bar: 64px; } }
/* Pe laptop și tabletă în picioare, marginile de 16px ale telefonului strâng antetul și conținutul. */
@media (min-width: 861px) {
  .page-home { --a-gut: max(32px, calc((100vw - 1200px) / 2)); }
  .page-home .home-wrap { width: min(1200px, 100% - 64px); }
}

.page-home [id] { scroll-margin-top: calc(var(--a-head) + 12px); }
html:has(dialog:modal) { overflow: hidden; }

.nw { white-space: nowrap; }
.page-home [hidden] { display: none !important; }
.a-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.a-skip { position: absolute; left: 12px; top: -80px; z-index: 60; padding: .8rem 1.1rem; border-radius: 999px; background: var(--wine); color: var(--apricot); font: 500 .78rem/1 var(--ui); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.a-skip:focus { top: 12px; }
.a-ext { width: .72em; height: .72em; flex: none; }

/* Pe suprafețele albe (ferestre, meniul Evenimente, cardurile) conturul de focus e mereu vinul:
   `var(--ink)` e crem noaptea și ar dispărea pe alb. */
.a-dialog :focus-visible, .a-menu :focus-visible, .a-drop-panel :focus-visible, .a-white :focus-visible { outline-color: var(--wine); }
/* home.css dă `border-radius: 4px` oricărui element cu focus: pastilele (butoane, câmpul de email) ar deveni dreptunghiuri. */
.page-home :is(.home-btn, .a-close, .a-news-row input, .a-news-card input[name="name"]):is(:focus, :focus-visible) { border-radius: 999px; }
.page-home .a-field :is(input, select, textarea):is(:focus, :focus-visible) { border-radius: 12px; }

/* ============ ANTETUL ============ */
/* Sticky, nu fix: pe desktop stă deasupra hero-ului (fotografia începe sub el) și rămâne la
   îndemână la derulare. Fundalul urmează terenul, la fel ca bara de pe bilete. */
.a-head {
  position: sticky; top: 0; z-index: 40;
  color: var(--ink);
  background: color-mix(in srgb, var(--ground) 90%, transparent);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  transition: background-color 1.1s var(--ease), color 1.1s var(--ease), border-color .4s ease, transform .45s var(--ease);
}
.a-head.is-scrolled { border-bottom-color: var(--rule); }
.a-head.is-hidden { transform: translateY(-101%); }
.a-head-in { height: var(--a-head); padding-inline: var(--a-gut); display: flex; align-items: center; gap: clamp(1rem, 2.4vw, 2.6rem); }
.a-logo { display: block; flex: none; width: 138px; color: inherit; }
.a-logo svg { display: block; width: 100%; height: auto; }

.a-nav { margin-left: auto; }
.a-nav > ul { display: flex; align-items: center; gap: clamp(1rem, 2.1vw, 2.2rem); }
.a-nav-link {
  position: relative; display: inline-flex; align-items: center; gap: .4rem; padding: .7rem 0;
  font: 500 .76rem/1 var(--ui); letter-spacing: .16em; text-transform: uppercase;
  color: inherit; text-decoration: none; background: none; border: 0; cursor: pointer;
}
.a-nav-link::after { content: ""; position: absolute; left: 0; right: .16em; bottom: .3rem; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease); }
.a-nav-link:hover::after, .a-drop.is-open > .a-nav-link::after { transform: scaleX(1); }
.a-nav-link svg { width: .62rem; height: .62rem; transition: transform .4s var(--ease); }
.a-drop.is-open > .a-nav-link svg { transform: rotate(180deg); }

.a-drop { position: relative; }
.a-drop-panel {
  position: absolute; top: calc(100% + .8rem); left: -1.2rem; min-width: 260px; padding: .55rem;
  background: #fff; color: var(--wine); border: 1px solid rgba(84, 18, 30, .12); border-radius: 16px;
  box-shadow: 0 30px 60px -30px rgba(18, 5, 7, .45);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .3s var(--ease), transform .45s var(--ease), visibility 0s linear .45s;
}
.a-drop-panel::before { content: ""; position: absolute; left: 0; right: 0; top: -1rem; height: 1rem; } /* puntea pentru mouse */
.a-drop.is-open .a-drop-panel,
html:not(.js) .a-drop:hover .a-drop-panel,
html:not(.js) .a-drop:focus-within .a-drop-panel { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.a-drop-panel a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .5rem .8rem; border-radius: 10px; font: 500 1.22rem/1.25 var(--display); color: var(--wine); text-decoration: none; }
.a-drop-panel a:hover { background: var(--paper); }
.a-drop-panel .a-drop-cta { margin-top: .35rem; padding-top: .35rem; border-top: 1px solid rgba(84, 18, 30, .12); }
.a-drop-panel .a-drop-cta button { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem .8rem; border: 0; border-radius: 10px; background: none; color: var(--wine); cursor: pointer; font: 500 .74rem/1 var(--ui); letter-spacing: .16em; text-transform: uppercase; text-align: left; }
.a-drop-panel .a-drop-cta button:hover { background: var(--paper); }

.a-head-end { display: flex; align-items: center; gap: clamp(1rem, 1.8vw, 1.6rem); margin-left: clamp(.1rem, 1vw, 1.2rem); padding-left: clamp(1rem, 1.8vw, 1.6rem); border-left: 1px solid var(--rule); }
.a-lang { display: flex; align-items: center; gap: .45rem; font: 500 .74rem/1 var(--ui); letter-spacing: .14em; }
.a-lang [aria-current] { font-weight: 600; }
.a-lang a { color: var(--ink-dim); text-decoration: none; padding: .6rem .1rem; }
.a-lang a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: .3em; }
.a-lang .sep { opacity: .5; }
.a-head .home-btn { min-height: 2.7rem; padding: 0 1.3rem; font-size: .74rem; transition: background-color 1.1s var(--ease), color 1.1s var(--ease), transform .5s var(--ease); }

.a-menu-btn { display: none; }
@media (max-width: 1100px) and (min-width: 861px) {
  .a-nav-link { letter-spacing: .12em; font-size: .72rem; }
  .a-logo { width: 120px; }
}
@media (max-width: 860px) {
  .a-nav, .a-head-end { display: none; }
  .a-logo { width: 122px; }
  .a-menu-btn {
    display: inline-flex; align-items: center; gap: .7rem; margin-left: auto; min-height: 44px; padding: 0 .1rem 0 .6rem;
    background: none; border: 0; color: inherit; cursor: pointer;
    font: 500 .74rem/1 var(--ui); letter-spacing: .16em; text-transform: uppercase;
  }
  .a-menu-btn svg { width: 22px; height: 12px; }
}

/* ============ MENIUL MOBIL (pe tot ecranul) ============ */
dialog.a-menu {
  position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0;
  padding: 0 16px calc(1.4rem + env(safe-area-inset-bottom)); border: 0;
  background: var(--paper); color: var(--wine); overflow-y: auto; overscroll-behavior: contain;
}
dialog.a-menu[open] { display: flex; flex-direction: column; animation: a-fade .35s var(--ease) both; }
dialog.a-menu::backdrop { background: var(--paper); }
.a-menu-top { flex: none; height: 60px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(84, 18, 30, .16); }
.a-menu-top .a-logo { width: 122px; color: var(--wine); }
.a-menu-close { display: inline-flex; align-items: center; gap: .6rem; min-height: 44px; padding: 0 .1rem 0 .6rem; background: none; border: 0; color: var(--wine); cursor: pointer; font: 500 .74rem/1 var(--ui); letter-spacing: .16em; text-transform: uppercase; }
.a-menu-close svg { width: 14px; height: 14px; }
.a-menu-list { margin-top: .6rem; }
.a-menu-list > li { border-bottom: 1px solid rgba(84, 18, 30, .12); }
.a-menu-list > li > a, .a-menu-list > li > button {
  display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 0;
  font: 500 clamp(1.9rem, 1.5rem + 2vw, 2.4rem)/1.1 var(--display); color: var(--wine); text-decoration: none;
  background: none; border: 0; text-align: left; cursor: pointer;
}
.a-menu-list > li > button svg { width: .9rem; height: .9rem; transition: transform .4s var(--ease); }
.a-menu-list > li > button[aria-expanded="true"] svg { transform: rotate(180deg); }
.a-menu-sub { padding: 0 0 1rem 1rem; border-left: 1px solid rgba(84, 18, 30, .16); margin: 0 0 1rem .2rem; }
.a-menu-sub a { display: block; padding: .5rem 0; font: 500 1.35rem/1.2 var(--display); color: var(--wine-soft); text-decoration: none; }
.a-menu-sub .is-cta { display: block; margin-top: .4rem; padding: .7rem 0; background: none; border: 0; cursor: pointer; font: 500 .78rem/1 var(--ui); letter-spacing: .16em; text-transform: uppercase; color: var(--wine); }
.a-menu-foot { margin-top: auto; padding-top: 2rem; display: grid; gap: 1.1rem; }
.a-menu-foot .home-btn { width: 100%; }
.a-menu-foot .row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.a-menu-foot .a-lang a { color: var(--wine-soft); }
.a-menu-foot .tel { font: 500 .8rem/1 var(--ui); letter-spacing: .1em; color: var(--wine); text-decoration: none; border-bottom: 1px solid rgba(84, 18, 30, .25); padding-bottom: .3rem; }

/* ============ FEREASTRA „CE REZERVI ASTĂZI?" ============ */
dialog.a-dialog {
  width: min(1040px, 100% - 32px); max-width: none; max-height: calc(100dvh - 32px);
  padding: clamp(1.4rem, 3.6vw, 2.8rem); border: 0; border-radius: 22px;
  background: #fff; color: var(--wine); box-shadow: 0 40px 90px -40px rgba(18, 5, 7, .6);
  overflow-y: auto; overscroll-behavior: contain;
}
dialog.a-dialog::backdrop { background: rgba(18, 5, 7, .58); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
dialog.a-dialog[open] { animation: a-rise .55s var(--ease) both; }
dialog.a-dialog[open]::backdrop, dialog.a-menu[open]::backdrop { animation: a-fade .35s ease both; }
@keyframes a-rise { from { opacity: 0; transform: translateY(18px) scale(.985); } }
@keyframes a-fade { from { opacity: 0; } }

.a-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.a-dialog-head h2 { margin: 0; font: 600 clamp(2.2rem, 1.5rem + 2.2vw, 3.4rem)/1 var(--display); letter-spacing: -.01em; }
.a-close {
  flex: none; display: inline-flex; align-items: center; gap: .55rem; min-height: 44px; padding: 0 1rem;
  border: 1px solid rgba(84, 18, 30, .22); border-radius: 999px; background: none; color: var(--wine); cursor: pointer;
  font: 500 .72rem/1 var(--ui); letter-spacing: .16em; text-transform: uppercase; transition: border-color .3s;
}
.a-close:hover { border-color: var(--wine); }
.a-close svg { width: 12px; height: 12px; }
.a-rez { margin-top: clamp(1.6rem, 4vh, 2.4rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto auto 1fr auto; border-top: 1px solid rgba(84, 18, 30, .14); }
.a-rez > li { grid-row: span 4; display: grid; grid-template-rows: subgrid; padding: 1.8rem clamp(1rem, 2.4vw, 2rem) .4rem; }
.a-rez > li:first-child { padding-left: 0; }
.a-rez > li:last-child { padding-right: 0; }
.a-rez > li + li { border-left: 1px solid rgba(84, 18, 30, .14); }
/* Opțiunile sunt alternative, nu pași: fiecare are pictograma ei (aceleași ca în bara de jos), nu un număr. */
.a-rez .ico { width: 2.7rem; height: 2.7rem; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--terracotta); color: #B24A25; }
.a-rez .ico svg { width: 22px; height: 22px; }
.a-rez h3 { margin: 1.1rem 0 0; font: 600 clamp(1.8rem, 1.5rem + .8vw, 2.2rem)/1.05 var(--display); }
.a-rez p.txt { margin: .6rem 0 1.4rem; color: var(--wine-soft); text-wrap: pretty; }
.a-rez .home-btn { justify-self: start; white-space: nowrap; min-height: 2.9rem; padding: 0 1.2rem; font-size: .74rem; letter-spacing: .1em; font-variant-numeric: lining-nums; }
.a-rez .home-btn .go { display: none; width: 18px; height: 18px; flex: none; }
.a-btn-line { border-color: rgba(84, 18, 30, .3); color: var(--wine) !important; background: transparent; }
.a-btn-line:hover { background: var(--wine); border-color: var(--wine); color: var(--apricot) !important; }
.a-dialog-note { margin: clamp(1.6rem, 4vh, 2.2rem) 0 0; padding-top: 1.2rem; border-top: 1px solid rgba(84, 18, 30, .14); color: var(--wine-soft); }
.a-dialog-note a { color: var(--wine); font-weight: 500; white-space: nowrap; text-decoration: underline; text-decoration-color: rgba(84, 18, 30, .35); text-underline-offset: .25em; }

@media (max-width: 760px) {
  /* Pe telefon, fereastra urcă de jos (foaie), cu butoanele la îndemâna degetului mare. */
  dialog.a-dialog { width: 100%; max-height: calc(100dvh - 16px); margin: auto 0 0; border-radius: 22px 22px 0 0; padding: 1.4rem 16px calc(1.2rem + env(safe-area-inset-bottom)); }
  dialog.a-dialog[open] { animation-name: a-sheet; }
  @keyframes a-sheet { from { transform: translateY(40px); opacity: 0; } }
  /* Pe telefon fiecare opțiune e un singur rând atingibil (pictogramă · titlu și text · săgeată):
     butonul își întinde suprafața peste tot rândul, iar eticheta lui rămâne pentru cititoarele de ecran. */
  .a-rez { grid-template-columns: 1fr; grid-template-rows: none; margin-top: 1rem; }
  .a-rez > li { position: relative; grid-row: auto; grid-template-rows: none; grid-template-columns: 2.5rem minmax(0, 1fr) 1.4rem; column-gap: 1rem; align-items: center; padding: .95rem 0; }
  .a-rez > li + li { border-left: 0; border-top: 1px solid rgba(84, 18, 30, .14); }
  .a-rez > li > * { grid-column: 2; }
  .a-rez .ico { grid-column: 1; grid-row: 1 / span 2; width: 2.5rem; height: 2.5rem; }
  .a-rez h3 { margin: 0; font-size: 1.6rem; }
  .a-rez p.txt { margin: .15rem 0 0; font-size: .95rem; line-height: 1.45; }
  .a-rez .home-btn { grid-column: 3; grid-row: 1 / span 2; justify-self: end; min-height: 0; padding: 0; border: 0; background: none !important; color: var(--wine) !important; }
  .a-rez .home-btn::after { content: ""; position: absolute; inset: 0; border-radius: 12px; }
  /* Tot rândul se apasă (vezi „celula atingibilă" mai jos), deci tot rândul se și vede apăsat. */
  .a-rez > li { transition: background-color .12s ease; }
  .a-rez > li:active .go { transform: translateX(2px); }
  .a-rez .home-btn .go { transition: transform .12s ease; }
  .a-rez .home-btn:focus-visible { outline: none; }
  .a-rez .home-btn:focus-visible::after { outline: 2px solid var(--wine); outline-offset: 2px; }
  .a-rez .home-btn .lbl, .a-rez .home-btn .a-ext { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .a-rez .home-btn .go { display: block; }
  .a-dialog-note { margin-top: .2rem; padding-top: 1rem; font-size: .95rem; }
}

/* ============ CELULA ATINGIBILĂ (telefon) ============ */
/* Clasa o pune site.js pe cardurile și rândurile care duc într-un singur loc; acolo apasă toată
   celula, nu doar linkul. Safari nu mai pune el dreptunghiul gri doar peste textul atins. */
@media (max-width: 760px) {
  .a-celula { cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .a-celula:active { opacity: .85; transition: opacity .1s ease; }
  .a-rez > li.a-celula:active { opacity: 1; background: rgba(84, 18, 30, .07); }
  .z-locuri > li.a-celula:active { opacity: 1; background: rgba(84, 18, 30, .06); }
}

/* ============ FEREASTRA „CERE OFERTĂ" (3 pași: Eveniment → Detalii → Contact) ============ */
dialog.a-offer { width: min(780px, 100% - 32px); }
.a-offer-lead { margin: .7rem 0 0; max-width: 46ch; color: var(--wine-soft); text-wrap: pretty; }
.a-steps { margin: 1.6rem 0 1.5rem; display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; font: 500 .72rem/1 var(--ui); letter-spacing: .16em; text-transform: uppercase; color: var(--wine-soft); }
.a-steps li { display: flex; align-items: center; gap: .55rem; }
.a-steps b { width: 1.8rem; height: 1.8rem; border-radius: 50%; display: grid; place-items: center; border: 1px solid currentColor; font: 600 1rem/1 var(--display); font-variant-numeric: lining-nums; letter-spacing: 0; }
.a-steps li[aria-current="step"] { color: var(--wine); }
.a-steps li[aria-current="step"] b { background: var(--wine); color: var(--apricot); border-color: var(--wine); }
.a-steps li.is-done b { border-color: var(--wine); color: var(--wine); }
.a-offer fieldset { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 1.1rem; }
.a-offer legend { float: left; width: 100%; margin: 0 0 .2rem; padding: 0; font: 600 clamp(1.6rem, 1.3rem + .8vw, 2rem)/1.1 var(--display); }
.a-offer legend + * { clear: both; }
.a-types { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.a-type { position: relative; display: block; cursor: pointer; }
.a-type input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.a-type span { display: flex; align-items: center; justify-content: space-between; gap: .6rem; min-height: 3.4rem; padding: .7rem 1rem; border: 1px solid rgba(84, 18, 30, .22); border-radius: 14px; background: var(--paper); font: 600 1.3rem/1.1 var(--display); transition: border-color .25s, background-color .25s; }
.a-type span::after { content: ""; flex: none; width: 1rem; height: 1rem; border-radius: 50%; border: 1px solid rgba(84, 18, 30, .35); background: #fff; }
.a-type:hover span { border-color: rgba(84, 18, 30, .5); }
.a-type input:checked + span { border-color: var(--wine); background: #fff; box-shadow: inset 0 0 0 1px var(--wine); }
.a-type input:checked + span::after { border-color: var(--wine); background: radial-gradient(circle, var(--wine) 45%, #fff 50%); }
.a-type input:focus-visible + span { outline: 2px solid var(--wine); outline-offset: 2px; }
.a-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.1rem; }
.a-field label { display: block; margin-bottom: .45rem; font: 500 .72rem/1.3 var(--ui); letter-spacing: .14em; text-transform: uppercase; }
.a-field label i, .a-check i { font-style: normal; color: #B24A25; }
.a-field input, .a-field select, .a-field textarea {
  width: 100%; box-sizing: border-box; min-height: 3.1rem; padding: .75rem .9rem;
  font: 400 1.05rem/1.4 var(--ui); color: var(--wine); background: var(--paper);
  border: 1px solid rgba(84, 18, 30, .22); border-radius: 12px;
}
.a-field textarea { min-height: 6rem; resize: vertical; }
.a-field input:focus, .a-field select:focus, .a-field textarea:focus { outline: 2px solid var(--wine); outline-offset: 1px; border-color: var(--wine); }
.a-field [aria-invalid="true"] { border-color: #A11D2B; }
.a-field .hint { margin: .35rem 0 0; font-size: .86rem; color: var(--wine-soft); }
.a-check { display: grid; grid-template-columns: 1.3rem minmax(0, 1fr); gap: .7rem; align-items: start; font-size: .96rem; line-height: 1.5; }
.a-check input { width: 1.2rem; height: 1.2rem; margin: .15rem 0 0; accent-color: var(--wine); }
.a-check a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.a-err { margin: 0; color: #A11D2B; font-weight: 500; }
.a-err:empty { display: none; }
.a-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem; margin-top: .4rem; }
.a-actions .home-btn { min-height: 2.9rem; }
.a-actions .a-btn-line { color: var(--wine) !important; }
.a-done { padding: 1.6rem 0 .6rem; text-align: center; }
.a-done h3 { margin: 0; font: 600 2.3rem/1.1 var(--display); }
.a-done p { margin: .7rem auto 0; max-width: 40ch; color: var(--wine-soft); }
.a-done .home-btn { margin-top: 1.4rem; }
@media (max-width: 760px) {
  /* Se declară după `dialog.a-dialog` de mai sus, deci aici i se dă înapoi lățimea de foaie. */
  dialog.a-offer { width: 100%; }
  .a-types { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .a-type span { min-height: 3.1rem; font-size: 1.2rem; padding-inline: .85rem; }
  .a-steps { margin: 1.1rem 0 1.1rem; gap: .5rem 1rem; font-size: .66rem; letter-spacing: .12em; }
}
@media (max-width: 480px) { .a-row { grid-template-columns: 1fr; } }

/* ============ BARA DE JOS (telefon) ============ */
.a-tabbar { display: none; }
@media (max-width: 860px) {
  .page-home { padding-bottom: calc(var(--a-bar) + env(safe-area-inset-bottom)); }
  .a-tabbar {
    position: fixed; inset: auto 0 0; z-index: 38;
    display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
    height: calc(var(--a-bar) + env(safe-area-inset-bottom));
    padding: 0 max(4px, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(4px, env(safe-area-inset-left));
    color: var(--ink);
    background: color-mix(in srgb, var(--ground) 93%, transparent);
    -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
    border-top: 1px solid var(--rule);
    transition: background-color 1.1s var(--ease), color 1.1s var(--ease);
  }
  .a-tabbar a, .a-tabbar button {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .3rem; min-width: 0;
    background: none; border: 0; color: inherit; text-decoration: none; cursor: pointer;
    font: 500 .68rem/1 var(--ui); letter-spacing: .03em; -webkit-tap-highlight-color: transparent;
  }
  .a-tabbar svg { width: 22px; height: 22px; flex: none; }
  /* Toate pictogramele stau într-o cutie de 38px, cât cercul din mijloc: etichetele cad pe aceeași linie. */
  .a-tabbar > :not(.is-main) > svg { margin-block: 8px; }
  .a-tabbar .is-main .ico { transition: background-color 1.1s var(--ease), color 1.1s var(--ease); display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--wine); color: var(--apricot); box-shadow: 0 0 0 1px rgba(255, 241, 216, .22); }
  .a-tabbar .is-main svg { width: 20px; height: 20px; }
  .a-tabbar .is-main { font-weight: 600; }
}

/* ============ BUTONUL PLUTITOR ȘI ETICHETA DE PROTOTIP ============ */
/* „Cere ofertă" plutitor (doar desktop): o panglică verticală lipită de marginea din dreapta, la mijlocul
   ecranului. Are ~34px lățime, deci încape în marginea de 32px de la 861px în sus și nu acoperă text
   (o pastilă orizontală în colț acoperea paragrafele la 1024px și intra 100px în conținut la 1440px). */
.a-float {
  position: fixed; right: 0; top: 50%; z-index: 30;
  display: grid; place-items: center; padding: 1.35rem .6rem; min-height: 0;
  border: 0; border-radius: 14px 0 0 14px; cursor: pointer;
  background: var(--wine); color: var(--apricot);
  font: 500 .7rem/1 var(--ui); letter-spacing: .18em; text-transform: uppercase;
  box-shadow: 0 18px 40px -18px rgba(18, 5, 7, .6), 0 0 0 1px rgba(255, 217, 153, .18);
  opacity: 0; visibility: hidden; transform: translate(110%, -50%);
  transition: opacity .5s var(--ease), transform .6s var(--ease), visibility 0s linear .6s, background-color .3s, color .3s;
}
.a-float span { writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; }
.a-float:hover { background: #6b1a27; }
.a-float:focus-visible { outline: 2px solid var(--wine); outline-offset: 3px; border-radius: 14px 0 0 14px; }
.a-float.is-shown:not(.is-away) { opacity: 1; visibility: visible; transform: translate(0, -50%); transition-delay: 0s; }
@media (max-width: 860px) { .a-float { display: none; } }

/* Pe amurg și noapte, butonul de vin s-ar pierde în fundal: devine terracotta, ca pe banda de pe bilete. */
body.page-home[data-ground="dusk"] :is(.a-head .home-btn-wine, .a-float),
body.page-home[data-ground="night"] :is(.a-head .home-btn-wine, .a-float) { background: var(--terracotta); color: #2a0a0f !important; }
body.page-home[data-ground="dusk"] .a-float:focus-visible, body.page-home[data-ground="night"] .a-float:focus-visible { outline-color: var(--moon); }
body.page-home[data-ground="dusk"] .a-tabbar .is-main .ico,
body.page-home[data-ground="night"] .a-tabbar .is-main .ico { background: var(--terracotta); color: #2a0a0f; }

/* Eticheta de prototip: un cotor vertical de ~16px pe marginea din stânga, jos. Stă în margine la orice
   lățime (16px pe telefon), deci nu mai acoperă linkul din hero, titlurile sau linkurile legale. */
.a-proto {
  position: fixed; left: env(safe-area-inset-left, 0px); bottom: calc(18px + var(--a-bar) + env(safe-area-inset-bottom)); z-index: 45;
  margin: 0; padding: .75rem .2rem; border-radius: 7px 0 0 7px;
  background: rgba(84, 18, 30, .9); color: var(--apricot);
  font: 500 .6rem/1 var(--ui); letter-spacing: .16em; text-transform: uppercase; white-space: nowrap;
  writing-mode: vertical-rl; transform: rotate(180deg); pointer-events: none;
}
body.page-home[data-ground="dusk"] .a-proto, body.page-home[data-ground="night"] .a-proto { background: rgba(255, 241, 216, .92); color: var(--wine); }
@media (max-width: 860px) { .a-proto { padding: .7rem .1rem; font-size: .52rem; letter-spacing: .14em; } }

/* ============ PIESE COMUNE ============ */
.a-section { padding-block: clamp(5rem, 12vh, 8rem); }
.a-frame { position: relative; margin: 0; overflow: hidden; border-radius: 3px; background: var(--paper-deep); }
[data-ground="dusk"] .a-frame, [data-ground="night"] .a-frame { background: #1d0c0f; }
.a-frame img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.a-link {
  display: inline-flex; align-items: center; gap: .55rem; padding-bottom: .4rem;
  font: 500 .8rem/1 var(--ui); letter-spacing: .14em; text-transform: uppercase;
  color: inherit; text-decoration: none; border-bottom: 1px solid var(--rule); transition: border-color .3s;
}
.a-link:hover { border-bottom-color: currentColor; }
button.a-link { background: none; border-width: 0 0 1px; border-radius: 0; padding-inline: 0; cursor: pointer; }
.a-body { margin: 1.3rem 0 0; font-size: 1.12rem; color: var(--ink-dim); max-width: 46ch; text-wrap: pretty; }
.a-lead-i { margin: 1.2rem 0 0; font: italic 500 clamp(1.3rem, 1rem + 1vw, 1.7rem)/1.3 var(--display); color: var(--ink-dim); text-wrap: pretty; }
.a-cap { margin: 0; font: 500 .74rem/1.4 var(--ui); letter-spacing: .18em; text-transform: uppercase; color: var(--ink-dim); }
.a-split { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 1rem clamp(2rem, 5vw, 5rem); align-items: end; }
.a-split .a-lead-i { margin: 0 0 .45rem; max-width: 28ch; }
@media (max-width: 860px) { .a-split { grid-template-columns: 1fr; } .a-split .a-lead-i { margin: .2rem 0 0; } }
.a-white { background: #fff; color: var(--wine); border: 1px solid rgba(84, 18, 30, .12); border-radius: 20px; box-shadow: 0 30px 60px -40px rgba(84, 18, 30, .35); }
.a-centered-eyebrow { justify-content: center; }
.a-centered-eyebrow::after { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .6; }

/* ============ HERO ============ */
/* Hero-ul de pe bilete, cu antetul deasupra: încape pe primul ecran fără antet și fără bara de jos. */
.a-hero { min-height: calc(100svh - var(--a-head)); }
.a-hero .home-hero-photo { order: -1; }
.a-hero .home-manor { width: min(300px, 100% - 96px, 32svh); }
.a-hero .home-tagline { font-size: clamp(2rem, 1.2rem + 2.7vw, 3.5rem); max-width: 20ch; }
.a-hero .home-tagline em { display: block; }
.a-lead { margin: 0; max-width: 34ch; font-size: 1.12rem; line-height: 1.55; color: var(--ink-dim); text-wrap: balance; }
.a-hero .home-hero-actions { gap: .9rem 1.8rem; }
/* Linkul are underline și padding jos: fără compensare, textul lui stătea cu ~4px mai sus decât al pastilei. */
.a-hero .home-hero-actions .a-link { padding-top: .4rem; }
@media (min-width: 861px), (orientation: landscape) and (max-height: 500px) {
  .a-hero .home-hero-copy { padding-top: 2.4rem; padding-bottom: 3.2rem; }
  .a-hero .home-hero-photo img { object-position: 50% 50%; }
}
@media (max-width: 860px) and (orientation: portrait), (max-width: 860px) and (min-height: 501px) {
  .a-hero { min-height: calc(100svh - var(--a-head) - var(--a-bar)); }
  /* Banda foto ia tot spațiul liber de sub text (până la 36% din ecran), ca să se vadă casa pe deal;
     pe ecranele scurte rămâne la 17% și nu împinge nimic sub bara de jos. Casa stă la jumătatea pozei:
     la 65%, decupajul o urcă deasupra marginii de jos, unde banda se topește în fundal. */
  .a-hero .home-hero-photo { height: 24vh; height: max(17svh, min(36svh, 100svh - 31rem - var(--a-head) - var(--a-bar))); }
  .a-hero .home-hero-photo img { object-position: 50% 65%; }
  .a-hero .home-hero-copy { padding: 1rem 0 2rem; gap: clamp(.9rem, 2.2vh, 1.6rem); }
  .a-hero .home-manor { width: min(260px, 100% - 96px, 26svh); }
}
/* Telefoanele scunde, în picioare (iPhone SE cu barele Safari: 548px vizibili): butonul din hero intra
   sub bara de jos. Desenul, spațiile dintre rânduri și titlul se strâng; banda foto rămâne la fel.
   De la ~630px în sus încape și fără asta. */
@media (max-width: 860px) and (orientation: portrait) and (max-height: 620px) {
  .a-hero .home-hero-copy { padding-top: .5rem; gap: .45rem; }
  .a-hero .home-manor { width: min(200px, 100% - 96px, 19svh); }
  .a-hero .home-tagline { font-size: 1.65rem; }
  /* Introducerea de pe Evenimente ține trei rânduri și împingea telefonul sub bara de jos. */
  .a-hero .a-lead { font-size: 1rem; line-height: 1.45; }
  .a-hero .home-hero-actions { gap: .5rem 1.8rem; }
}
/* Telefon culcat: antetul și bara de jos lăsau ~265px din 390 și tăiau titlul și butonul din hero.
   Bara de jos dispare (meniul rămâne în antet), hero-ul se strânge, iar decupajul camerei (notch)
   nu mai stă peste logo și peste butonul Meniu. */
@media (orientation: landscape) and (max-height: 500px) {
  .a-tabbar { display: none !important; }
  .page-home { --a-bar: 0px; padding-bottom: env(safe-area-inset-bottom); }
  .a-head-in { padding-inline: max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right)); }
  .page-home .home-wrap { width: auto; margin-inline: max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right)); max-width: 1200px; }
  .a-hero .home-hero-copy { padding: .8rem max(16px, env(safe-area-inset-left)) 1rem; gap: .6rem; }
  .a-hero .home-manor { width: min(190px, 30svh); }
  .a-hero .home-tagline { font-size: clamp(1.5rem, .9rem + 1.8vw, 2rem); }
  .a-hero .a-lead { font-size: .95rem; }
  dialog.a-dialog { max-height: calc(100dvh - 16px); padding-block: 1rem; }
  dialog.a-dialog .a-dialog-head h2 { font-size: 1.9rem; }
  dialog.a-dialog .a-rez { margin-top: .8rem; }
  dialog.a-dialog .a-rez > li { padding-top: 1rem; }
  dialog.a-dialog .a-rez .txt { display: none; }
  dialog.a-dialog .a-rez h3 { margin-top: .6rem; margin-bottom: .9rem; }
  dialog.a-dialog .a-dialog-note { margin-top: 1rem; padding-top: .8rem; }
}

/* ============ POVESTEA ============ */
.a-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.a-intro-text .a-body + .a-body { margin-top: 1rem; }
.a-intro-text .a-link { margin-top: 2.2rem; }
.a-intro-photo { aspect-ratio: 1 / 1; }
.a-stats { margin: clamp(3rem, 8vh, 5rem) 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--rule); }
.a-stats li { padding: 1.6rem 1.2rem 0 0; }
.a-stats li + li { border-left: 1px solid var(--rule); padding-left: clamp(1rem, 3vw, 2.4rem); }
.a-stats b { display: block; font: 600 clamp(3.2rem, 2rem + 4vw, 5.6rem)/.9 var(--display); font-variant-numeric: lining-nums; letter-spacing: -.02em; white-space: nowrap; }
.a-stats span { display: block; margin-top: .75rem; font: 500 .8rem/1.45 var(--ui); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-dim); max-width: 22ch; }
@media (max-width: 860px) {
  .a-intro { grid-template-columns: 1fr; }
  .a-intro-photo { aspect-ratio: 4 / 3; }
}
@media (max-width: 640px) {
  .a-stats { grid-template-columns: 1fr; }
  .a-stats li, .a-stats li + li { display: grid; grid-template-columns: 7.2rem minmax(0, 1fr); align-items: center; gap: 1rem; padding: 1.05rem 0; border-left: 0; border-bottom: 1px solid var(--rule); }
  .a-stats b { font-size: 2.9rem; }
  .a-stats span { margin: 0; }
}

/* ============ DESCOPERĂ: O ZI ============ */
/* Trei carduri legate de o linie a zilei: cercul e gol dimineața, pe jumătate spre seară, plin seara.
   Linia e un segment pe fiecare card, până la cercul următor, și se oprește la al treilea
   (aceeași regulă ca pașii de pe bilete). Rândurile sunt `subgrid`, ca titlurile și butoanele
   să stea aliniate orice lungime ar avea textele. */
.a-day { margin-top: clamp(2.8rem, 7vh, 4rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto auto auto 1fr auto; column-gap: var(--a-gap); }
.a-card { grid-row: span 5; display: grid; grid-template-rows: subgrid; }
.a-card-meta { display: flex; align-items: center; gap: .75rem; margin: 0 0 1.3rem; font: 500 .74rem/1 var(--ui); letter-spacing: .18em; text-transform: uppercase; color: var(--ink-dim); white-space: nowrap; }
.a-dot { flex: none; width: .85rem; height: .85rem; border-radius: 50%; border: 1px solid var(--terracotta); }
.a-dot.half { background: linear-gradient(90deg, var(--terracotta) 50%, transparent 50%); }
.a-dot.full { background: var(--terracotta); }
.a-card:not(:last-child) .a-card-meta::after { content: ""; flex: 1; height: 1px; margin-left: .2rem; margin-right: calc(.6rem - var(--a-gap)); background: var(--rule); }
.a-card .a-frame { aspect-ratio: 4 / 5; }
.a-card:hover .a-frame img { transform: scale(1.04); }
.a-card h3 { margin: 1.35rem 0 0; font: 600 clamp(1.75rem, 1.3rem + 1vw, 2.2rem)/1.06 var(--display); text-wrap: balance; }
.a-card .txt { margin: .65rem 0 0; color: var(--ink-dim); text-wrap: pretty; }
.a-card .a-link { justify-self: start; margin-top: 1.5rem; }
@media (max-width: 900px) {
  .a-day { grid-template-columns: 1fr; grid-template-rows: none; row-gap: 3.4rem; }
  .a-card { grid-row: auto; grid-template-rows: none; }
  .a-card .a-frame { aspect-ratio: 3 / 2; }
  .a-card:not(:last-child) .a-card-meta::after { content: none; }
}
/* Tabletă: cardul stă pe orizontală (foto în stânga, textul în dreapta), nu ca o fotografie de 830px lățime. */
@media (min-width: 641px) and (max-width: 900px) {
  .a-day { row-gap: 2.6rem; }
  .a-card { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto auto auto 1fr; column-gap: 1.8rem; align-items: start; }
  .a-card .a-frame { grid-column: 1; grid-row: 1 / span 4; aspect-ratio: 4 / 3; }
  .a-card > :not(.a-frame) { grid-column: 2; }
  .a-card-meta { margin-bottom: .2rem; }
  .a-card h3 { margin-top: .8rem; }
}

/* ============ VINURILE NOASTRE: ARHONTE DE SECIU ȘI MOȘTENIREA (amurg) ============ */
.a-wine-grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); grid-template-areas: "photo head" "photo list"; column-gap: clamp(2rem, 6vw, 6rem); }
.a-wine-photo { grid-area: photo; align-self: center; aspect-ratio: 3 / 4; margin: 0; }
.a-wine-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Suprafața de brand (ca pe Nunți) până există o fotografie cu sticlele casei. */
.a-brand { position: relative; height: 100%; display: grid; place-items: center; border-radius: 3px; overflow: hidden; background: radial-gradient(120% 90% at 50% 40%, #F6EFE6, var(--paper-deep)); color: var(--wine); }
.a-brand .a-grape { width: 24%; max-width: 110px; height: auto; opacity: .28; }
[data-ground="dusk"] .a-brand, [data-ground="night"] .a-brand { background: radial-gradient(120% 90% at 50% 40%, #3a2138, #1c0f1f); color: var(--moon); }
.a-wine-head { grid-area: head; align-self: end; }
.a-wine-list { grid-area: list; align-self: start; }
.a-wines { margin: 2.4rem 0 0; border-top: 1px solid var(--rule); }
/* Două game în aceeași listă: Arhonte de Seciu și Moștenirea, fiecare cu eticheta ei. */
.a-wines-group { margin: 2.4rem 0 0; font: 500 .78rem/1.3 var(--ui); letter-spacing: .2em; text-transform: uppercase; color: var(--ink-dim); }
.a-wines + .a-wines-group { margin-top: 3.2rem; }
.a-wines-note { margin: .6rem 0 0; color: var(--ink-dim); font-size: 1.06rem; }
.a-wines-group + .a-wines, .a-wines-note + .a-wines { margin-top: 1rem; }
.a-wines li { display: grid; grid-template-columns: minmax(10rem, .75fr) minmax(0, 1.25fr); gap: .5rem 2rem; align-items: baseline; padding: 1.35rem 0; border-bottom: 1px solid var(--rule); }
.a-wines h3 { margin: 0; font: 600 clamp(2.1rem, 1.6rem + 1.2vw, 2.7rem)/1 var(--display); }
.a-wines .a-cap { margin-top: .55rem; }
.a-wines .txt { margin: 0; color: var(--ink-dim); font-size: 1.06rem; text-wrap: pretty; }
.a-wine-list .a-link { margin-top: 2.2rem; }
@media (max-width: 860px) {
  .a-wine-grid { grid-template-columns: 1fr; grid-template-areas: "head" "photo" "list"; }
  /* Cu o fotografie în loc de suprafața de brand, banda 2:1 ar tăia sticlele prin mijloc. */
  .a-wine-photo { aspect-ratio: 3 / 4; margin-top: 2.4rem; }
}
@media (max-width: 560px) { .a-wines li { grid-template-columns: 1fr; } .a-wines .txt { margin-top: .3rem; } }

/* ============ ÎMPREJURIMI (amurg) ============ */
.a-pano { position: relative; margin: clamp(2.6rem, 6vh, 3.6rem) 0 0; height: clamp(260px, 38vw, 600px); overflow: hidden; background: #1d0c0f; }
.a-pano img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 58%; }
.js .a-pano img { transform: scale(1.06); transition: transform 2.4s var(--ease); }
.js .a-pano.is-in img { transform: none; }
.a-times { margin: clamp(2.4rem, 6vh, 3.4rem) 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.2rem var(--a-gap); }
.a-times li { border-top: 1px solid var(--rule); padding-top: 1.3rem; }
.a-times h3 { margin: .8rem 0 0; font: 600 clamp(1.6rem, 1.25rem + .9vw, 2rem)/1.1 var(--display); text-wrap: balance; }
.a-times .txt { margin: .5rem 0 0; color: var(--ink-dim); }
.a-around-more { margin-top: clamp(2.4rem, 6vh, 3.2rem); }
@media (max-width: 760px) { .a-times { grid-template-columns: 1fr; } .a-pano { height: max(240px, 64vw); } .a-pano img { object-position: 30% 58%; } }

/* ============ SERI (noapte) ============ */
.a-band { position: relative; isolation: isolate; min-height: clamp(480px, 84svh, 820px); display: grid; place-items: center; text-align: center; overflow: hidden; color: var(--moon); }
/* Mai lată decât banda și ancorată la dreapta: gravura de pe frapieră (stânga) iese din cadru. */
.a-band > img { position: absolute; top: 0; right: 0; width: 122%; max-width: none; height: 100%; object-fit: cover; object-position: 100% 50%; z-index: -2; }
.js .a-band > img { transform-origin: 70% 50%; }
.js .a-band > img { transform: scale(1.08); transition: transform 2.4s var(--ease); }
.js .a-band.is-in > img { transform: none; }
.a-band::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(62% 58% at 50% 50%, rgba(18, 5, 7, .78), rgba(18, 5, 7, .42) 78%), linear-gradient(180deg, rgba(18, 5, 7, .55) 0%, transparent 22%, transparent 70%, #120507 100%); }
.a-band-copy { position: relative; padding: 4rem 16px; max-width: 800px; }
.a-band .home-eyebrow { color: var(--moon-dim); }
.a-band .home-h2 { color: var(--moon); }
.a-band .a-body { margin-inline: auto; color: #EADBC4; max-width: 44ch; font-size: 1.16rem; }

.a-past { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; padding-block: clamp(2rem, 6vh, 4rem) clamp(5rem, 12vh, 8rem); }
.a-past-photo { aspect-ratio: 4 / 5; }
.a-past-photo img { object-position: 50% 50%; }
.a-past-side { display: grid; gap: 1.8rem; justify-items: start; }
.a-past-side .home-ticket { width: 100%; }
.a-past .home-ticket-main h3 { font-size: clamp(1.9rem, 1.3rem + 1.3vw, 2.6rem); font-variant-numeric: lining-nums; }
.a-past .home-ticket-main .txt { margin: 0; color: var(--wine-soft); font-size: 1.04rem; text-wrap: pretty; }
.a-past .home-ticket-stub .day { font-size: clamp(3.4rem, 2.4rem + 3vw, 4.6rem); }
@media (max-width: 860px) { .a-past { grid-template-columns: 1fr; } .a-past-photo { aspect-ratio: 4 / 5; max-height: 72svh; width: 100%; } .a-past-photo img { object-position: 50% 45%; } }

/* ============ RECENZII (a doua zi) ============ */
.a-reviews { padding-block: clamp(5rem, 12vh, 8rem) 0; text-align: center; }
.a-reviews .a-body { margin-inline: auto; }
.a-reviews .a-link { margin-top: 1.8rem; }

/* ============ NEWSLETTER ============ */
.a-news { padding-block: clamp(4rem, 10vh, 6.5rem); }
.a-news-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; padding-top: clamp(4rem, 10vh, 6.5rem); border-top: 1px solid var(--rule); }
.a-news-card { padding: clamp(1.4rem, 3.4vw, 2.6rem); }
.a-news-card label { display: block; margin-bottom: .6rem; font: 500 .74rem/1.3 var(--ui); letter-spacing: .14em; text-transform: uppercase; }
.a-news-row { display: flex; gap: .7rem; }
/* Numele stă singur pe rând, emailul în rând cu butonul; arată însă la fel. */
.a-news-card input[name="name"] { width: 100%; margin-bottom: 1.2rem; }
.a-news-row input, .a-news-card input[name="name"] {
  flex: 1; min-width: 0; min-height: 3.1rem; padding: .75rem 1.2rem;
  font: 400 1.05rem/1.4 var(--ui); color: var(--wine); background: var(--paper);
  border: 1px solid rgba(84, 18, 30, .24); border-radius: 999px;
}
.a-news-row input::placeholder, .a-news-card input[name="name"]::placeholder { color: rgba(122, 42, 54, .62); }
.a-news-row input:focus, .a-news-card input[name="name"]:focus { outline: 2px solid var(--wine); outline-offset: 2px; border-color: var(--wine); }
.a-news-row input[aria-invalid="true"], .a-news-card input[name="name"][aria-invalid="true"] { border-color: #A11D2B; }
.a-news-note { margin: .9rem 0 0; font-size: .9rem; color: var(--wine-soft); }
.a-news-note a { color: var(--wine); text-decoration: underline; text-decoration-color: rgba(84, 18, 30, .35); text-underline-offset: .22em; }
.a-news-msg:empty { display: none; }
.a-news-msg { margin: 1rem 0 0; }
.a-news-msg.is-error { color: #A11D2B; font-weight: 500; }
.a-news-msg.is-ok strong { display: block; font: 600 1.55rem/1.2 var(--display); }
.a-news-msg.is-ok span { display: block; margin-top: .25rem; font-size: .9rem; color: var(--wine-soft); }
@media (max-width: 860px) { .a-news-grid { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .a-news-row { flex-direction: column; } .a-news-row .home-btn { width: 100%; } }

/* ============ CONTACT ============ */
.a-contact { padding-top: clamp(1rem, 3vh, 2rem); }
.a-contact-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(2.4rem, 6vw, 6rem); align-items: center; }
.a-rows { margin-top: 2.4rem; border-top: 1px solid var(--rule); }
.a-rows > div { padding: 1.1rem 0; border-bottom: 1px solid var(--rule); }
.a-rows h3 { margin: 0; font: 500 .72rem/1.4 var(--ui); letter-spacing: .18em; text-transform: uppercase; color: var(--ink-dim); }
.a-rows p { margin: .4rem 0 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: .15rem 1.4rem; }
.a-rows a { text-decoration: none; }
.a-rows a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.a-rows .tel { font: 600 1.55rem/1.25 var(--display); font-variant-numeric: lining-nums; }
.a-rows .mail { font-size: 1rem; color: var(--ink-dim); }
.a-visual { position: relative; }
.a-visual .a-frame { aspect-ratio: 4 / 3; }
/* Cardul atârnă sub colțul din stânga-jos al fotografiei: nu acoperă fântâna și însemnul din fier forjat. */
.a-map { position: relative; margin: -4.5rem 0 0 clamp(-3rem, -3vw, -1rem); width: min(340px, 72%); padding: 1.4rem 1.6rem 1.7rem; }
.a-map .a-grape { display: block; width: 34px; height: auto; color: var(--terracotta); }
.a-map address { margin: .8rem 0 0; font: 500 1.5rem/1.22 var(--display); font-style: normal; font-variant-numeric: lining-nums; }
.a-map .home-btn { margin-top: 1.2rem; }
@media (max-width: 860px) {
  .a-contact-grid { grid-template-columns: 1fr; }
  .a-map { width: auto; margin: -4rem 12px 0; }
}

/* ============ SUBSOL ============ */
body.page-home > footer.a-foot { background: var(--paper); border-top: 1px solid rgba(84, 18, 30, .16); color: var(--wine); padding: clamp(3.5rem, 9vh, 5.5rem) 0 3.6rem; font-size: .96rem; line-height: 1.55; }
.a-foot-grid { display: grid; grid-template-columns: 1.15fr .8fr 1.25fr .7fr; gap: 2.6rem clamp(1.5rem, 4vw, 3.5rem); }
.a-foot-mark { display: block; width: 116px; color: var(--wine); }
.a-foot-mark svg { display: block; width: 100%; height: auto; }
.a-foot-brand p { margin: 1.3rem 0 0; max-width: 26ch; }
.a-foot h2 { margin: 0 0 1rem; font: 500 .72rem/1.3 var(--ui); letter-spacing: .18em; text-transform: uppercase; color: var(--wine-soft); }
.a-foot li + li { margin-top: .55rem; }
.a-foot a { color: var(--wine); text-decoration: none; }
.a-foot a:hover { text-decoration: underline; text-underline-offset: .2em; }
.a-foot-contact li + li { margin-top: 1rem; }
.a-foot-contact .lbl { display: block; font: 500 .7rem/1.5 var(--ui); letter-spacing: .14em; text-transform: uppercase; color: var(--wine-soft); }
.a-foot-contact a { margin-right: .9rem; }
.a-foot-social a { display: inline-flex; align-items: center; gap: .45rem; }
.a-foot-legal { margin: clamp(2.6rem, 6vh, 3.6rem) 0 0; padding-top: 1.4rem; border-top: 1px solid rgba(84, 18, 30, .14); font-size: .82rem; color: var(--wine-soft); }
.a-foot-bottom { margin-top: .9rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem 1.4rem; font-size: .82rem; color: var(--wine-soft); }
.a-foot-bottom p { margin: 0; }
.a-foot-bottom ul { display: flex; flex-wrap: wrap; gap: .35rem 1.2rem; }
.a-foot-bottom li + li { margin-top: 0; }
.a-foot-bottom a { color: var(--wine-soft); }
@media (max-width: 960px) { .a-foot-grid { grid-template-columns: 1fr 1fr; } }
/* Pe telefon, secțiunea Contact e chiar deasupra: subsolul nu mai repetă telefoanele și emailurile. */
@media (max-width: 860px) { .a-foot-contact { display: none; } }
@media (max-width: 520px) { .a-foot-grid { grid-template-columns: 1fr 1fr; gap: 2.2rem 1.5rem; } .a-foot-brand { grid-column: 1 / -1; } }

/* ============ HOTEL (pagina /hotel) ============ */
/* Pagina interioară: hero-ul, antetele de secțiune, cadrele și linkurile vin de pe Acasă; lista de
   dotări vine din prototipul Nunți („Ce includem”). Ce e nou are prefixul „h-". */
.h-orar { margin: 0; font: 500 .78rem/1.4 var(--ui); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-dim); }
@media (max-width: 860px) and (orientation: portrait), (max-width: 860px) and (min-height: 501px) {
  /* Banda de pe telefon: mansarda văzută din față, cu tăblia și pernele la mijloc. */
  .h-hero.a-hero .home-hero-photo img { object-position: 50% 45%; }
}
.h-head { max-width: 680px; }

.h-why { margin-top: clamp(2.4rem, 6vh, 3.4rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem var(--a-gap); }
.h-why article { padding-top: 1.3rem; border-top: 1px solid var(--rule); }
.h-why h3 { margin: 0; font: 600 clamp(1.6rem, 1.25rem + .9vw, 2rem)/1.08 var(--display); text-wrap: balance; }
.h-why p { margin: .7rem 0 0; color: var(--ink-dim); max-width: 40ch; text-wrap: pretty; }
@media (max-width: 860px) { .h-why { grid-template-columns: 1fr; gap: 1.8rem; } }

.h-camere { margin-top: clamp(2.8rem, 7vh, 4rem); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2.8rem, 7vh, 4rem) var(--a-gap); }
.h-camera .a-frame { aspect-ratio: 3 / 2; }
.h-camera:hover .a-frame img { transform: scale(1.04); }
.h-camera h3 { margin: 1.3rem 0 0; font: 600 clamp(1.75rem, 1.3rem + 1vw, 2.2rem)/1.06 var(--display); text-wrap: balance; }
.h-camera .a-cap { margin-top: .55rem; }
.h-camera .txt { margin: .6rem 0 0; color: var(--ink-dim); max-width: 46ch; text-wrap: pretty; }
.h-camera-links { margin-top: 1.3rem; display: flex; flex-wrap: wrap; gap: .9rem 1.8rem; }
@media (max-width: 760px) { .h-camere { grid-template-columns: 1fr; } }

.h-dotari { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 2.2rem clamp(2rem, 5vw, 5rem); align-items: start; }
.h-liste { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.2rem var(--a-gap); }
.h-lista h3 { margin: 0; font: 500 .78rem/1.3 var(--ui); letter-spacing: .2em; text-transform: uppercase; color: var(--ink-dim); }
.h-lista ul { list-style: none; margin: .9rem 0 0; padding: 0; border-top: 1px solid var(--rule); }
.h-lista li { position: relative; padding: .85rem 0 .85rem 1.9rem; border-bottom: 1px solid var(--rule); font: 500 clamp(1.25rem, 1.05rem + .5vw, 1.45rem)/1.3 var(--display); }
.h-lista li::before { content: ""; position: absolute; left: .15rem; top: 1.25rem; width: .7rem; height: .7rem; border-radius: 50%; border: 1px solid var(--terracotta); }
.h-nota { grid-column: 2; margin: 0; color: var(--ink-dim); font-size: 1.05rem; }
@media (max-width: 860px) { .h-dotari { grid-template-columns: 1fr; } .h-nota { grid-column: auto; } }
@media (max-width: 520px) { .h-liste { grid-template-columns: 1fr; } }

.h-rezervare { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2.4rem, 6vw, 6rem); align-items: center; }
.h-date { padding: clamp(1.4rem, 3.4vw, 2.4rem); display: grid; gap: 1.2rem; }
.h-date-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.h-date .home-btn { justify-self: start; }
.h-date .hint { margin: 0; font-size: .9rem; color: var(--wine-soft); }
@media (max-width: 860px) { .h-rezervare { grid-template-columns: 1fr; } }
@media (max-width: 400px) { .h-date-row { grid-template-columns: 1fr; } }

/* ============ RESTAURANT (pagina /restaurant) ============ */
/* Aceleași piese ca pe Acasă și Hotel: hero, antet de secțiune, cadre, carduri. Ce e nou are „r-". */
@media (max-width: 860px) and (orientation: portrait), (max-width: 860px) and (min-height: 501px) {
  /* Banda de pe telefon: masa din grădină, cu farfuria la mijloc. */
  .r-hero.a-hero .home-hero-photo img { object-position: 50% 58%; }
}

.r-bucatarii { margin-top: clamp(2.8rem, 7vh, 4rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.4rem var(--a-gap); }
.r-bucatarie .a-frame { aspect-ratio: 4 / 5; }
.r-bucatarie:hover .a-frame img { transform: scale(1.04); }
.r-bucatarie h3 { margin: 1.3rem 0 0; font: 600 clamp(1.7rem, 1.3rem + 1vw, 2.15rem)/1.06 var(--display); text-wrap: balance; }
.r-bucatarie .txt { margin: .6rem 0 0; color: var(--ink-dim); text-wrap: pretty; }
@media (max-width: 900px) { .r-bucatarii { grid-template-columns: 1fr; } .r-bucatarie .a-frame { aspect-ratio: 16 / 10; } }

.r-carduri { margin-top: clamp(2.8rem, 7vh, 4rem); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2.6rem, 6vh, 3.6rem) var(--a-gap); }
.r-card .a-frame { aspect-ratio: 3 / 2; }
.r-card:hover .a-frame img { transform: scale(1.04); }
.r-card h3 { margin: 1.3rem 0 0; font: 600 clamp(1.75rem, 1.3rem + 1vw, 2.2rem)/1.06 var(--display); text-wrap: balance; }
.r-card .a-cap { margin-top: .55rem; }
.r-card .txt { margin: .6rem 0 0; color: var(--ink-dim); max-width: 46ch; text-wrap: pretty; }
.r-card .a-link { margin-top: 1.3rem; }
@media (max-width: 760px) { .r-carduri { grid-template-columns: 1fr; } }

.r-semnatura { text-align: center; }
.r-semnatura .a-body { margin-inline: auto; }
.r-semnatura .a-link { margin-top: 1.6rem; }
.r-band-tel { margin: 1.6rem 0 0; }

.r-rezerva { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(2.4rem, 6vw, 5rem); align-items: center; }
.r-rezerva .home-btn { margin-top: 1.8rem; }
.r-program { padding: clamp(1.4rem, 3.4vw, 2.4rem); }
.r-program h3 { margin: 0; font: 500 .72rem/1.4 var(--ui); letter-spacing: .18em; text-transform: uppercase; color: var(--wine-soft); }
.r-program dl { margin: 1rem 0 0; border-top: 1px solid rgba(84, 18, 30, .14); }
.r-program dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1.2rem; padding: .85rem 0; border-bottom: 1px solid rgba(84, 18, 30, .14); }
.r-program dt { font: 500 1.02rem/1.3 var(--ui); }
.r-program dd { margin: 0; font: 600 1.25rem/1.2 var(--display); font-variant-numeric: lining-nums tabular-nums; }
@media (max-width: 860px) { .r-rezerva { grid-template-columns: 1fr; } }

/* ============ EVENIMENTE (pagina /evenimente) ============ */
/* Aceleași piese ca pe celelalte pagini. Sălile stau pe suprafața de brand până vin fotografiile. */
@media (max-width: 860px) and (orientation: portrait), (max-width: 860px) and (min-height: 501px) {
  /* Banda de pe telefon: sala aranjată, cu mesele la mijloc. */
  .e-hero.a-hero .home-hero-photo img { object-position: 50% 52%; }
}

.e-tipuri { margin-top: clamp(2.8rem, 7vh, 4rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2.4rem, 6vh, 3.4rem) var(--a-gap); }
.e-tip .a-frame { aspect-ratio: 4 / 5; }
.e-tip:hover .a-frame img { transform: scale(1.04); }
.e-tip h3 { margin: 1.3rem 0 0; font: 600 clamp(1.7rem, 1.3rem + 1vw, 2.15rem)/1.06 var(--display); text-wrap: balance; }
.e-tip .txt { margin: .6rem 0 0; color: var(--ink-dim); text-wrap: pretty; }
.e-tip .a-link { margin-top: 1.2rem; }
@media (max-width: 900px) { .e-tipuri { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .e-tipuri { grid-template-columns: 1fr; } .e-tip .a-frame { aspect-ratio: 16 / 10; } }

.e-dece { margin-top: clamp(2.4rem, 6vh, 3.4rem); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem var(--a-gap); }
.e-dece article { padding-top: 1.3rem; border-top: 1px solid var(--rule); }
.e-dece h3 { margin: 0; font: 600 clamp(1.45rem, 1.2rem + .7vw, 1.8rem)/1.1 var(--display); text-wrap: balance; }
.e-dece p { margin: .7rem 0 0; color: var(--ink-dim); text-wrap: pretty; }
@media (max-width: 960px) { .e-dece { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .e-dece { grid-template-columns: 1fr; } }

.e-sali { margin-top: clamp(2.8rem, 7vh, 4rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2.4rem, 6vh, 3.4rem) var(--a-gap); }
.e-sala .a-frame { aspect-ratio: 3 / 2; }
.e-sala:hover .a-frame img { transform: scale(1.04); }
.e-sala h3 { margin: 1.2rem 0 0; font: 600 clamp(1.6rem, 1.25rem + .9vw, 2rem)/1.08 var(--display); text-wrap: balance; }
.e-sala .a-cap { margin-top: .5rem; }
.e-sala .a-link { margin-top: 1rem; }
.e-toate { margin-top: clamp(2.4rem, 6vh, 3.4rem); }
@media (max-width: 900px) { .e-sali { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .e-sali { grid-template-columns: 1fr; } }

.e-final { text-align: center; }
.e-final .a-body { margin-inline: auto; }
.e-final-actions { margin-top: 2rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem 1.8rem; }

/* ============ SĂLI (s-): lista sălilor și pagina unei săli ============ */
/* Antetul paginilor de sub Evenimente: nu e hero cu desenul casei, ci un cap de pagină simplu,
   cu drumul înapoi în supratitlu. */
.s-head, .s-hero { padding-top: clamp(2.6rem, 7vh, 4.6rem); }
.s-head { padding-bottom: clamp(2.4rem, 6vh, 3.6rem); }
.s-inapoi { color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: .12em; }
.s-inapoi:hover { color: var(--terracotta); }
.s-h1 { margin-top: .9rem; }
.s-lead { margin-top: 1.3rem; max-width: 48ch; }
.s-actions { margin-top: 2rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.8rem; }

/* Lista sălilor: rânduri alternate, poza pe o parte, textul pe cealaltă. */
.s-rand { padding-block: clamp(2.2rem, 5vh, 3.4rem); }
.s-rand-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(1.4rem, 4vw, 3.4rem); align-items: center; }
.s-rand-invers .s-rand-foto { order: 2; }
.s-rand-foto { aspect-ratio: 3 / 2; }
.s-rand-titlu { margin: 0; font: 600 clamp(1.9rem, 1.4rem + 1.8vw, 2.7rem)/1.05 var(--display); text-wrap: balance; }
.s-rand-text .a-cap { margin-top: .7rem; }
.s-rand-text .a-body { margin-top: 1rem; }
.s-rand-text .a-link { margin-top: 1.3rem; }
@media (max-width: 860px) {
  .s-rand-grid { grid-template-columns: 1fr; }
  .s-rand-invers .s-rand-foto { order: 0; }
}

/* Tabelul comparativ: doar ce e confirmat — locuri și interior/aer liber. */
.s-tabel-scroll { margin-top: clamp(2rem, 5vh, 3rem); overflow-x: auto; }
.s-tabel { width: 100%; border-collapse: collapse; text-align: left; }
.s-tabel th, .s-tabel td { padding: .9rem 1.4rem .9rem 0; border-bottom: 1px solid var(--rule); vertical-align: baseline; }
.s-tabel thead th { font: 500 .74rem/1.4 var(--ui); letter-spacing: .18em; text-transform: uppercase; color: var(--ink-dim); }
.s-tabel tbody th { font: 600 clamp(1.2rem, 1rem + .5vw, 1.45rem)/1.2 var(--display); white-space: nowrap; }
.s-tabel td { color: var(--ink-dim); }
.s-nota { margin-top: 1.2rem; font-size: .95rem; color: var(--ink-dim); max-width: 52ch; }

/* Pagina unei săli: bandă lată sub titlu, apoi indicatori și descriere. */
.s-hero { padding-bottom: 0; }
.s-despre { padding-top: clamp(3rem, 8vh, 5rem); }
.s-banda { margin-top: clamp(1.8rem, 5vh, 2.8rem); aspect-ratio: 16 / 9; }
.s-despre-grid { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(1.6rem, 4vw, 4rem); align-items: start; }
.s-fapte { margin: 0; padding: 0; list-style: none; display: grid; gap: 1rem; }
.s-fapte li { padding-top: .85rem; border-top: 1px solid var(--rule); }
.s-fapte b { display: block; margin-top: .35rem; font: 600 clamp(1.2rem, 1rem + .5vw, 1.4rem)/1.2 var(--display); }
.s-despre-text .a-body { max-width: 54ch; }
.s-despre-text .a-body:first-of-type { margin-top: 0; }
.s-despre-text .a-link { display: inline-block; margin-top: 1.3rem; }
@media (max-width: 860px) { .s-despre-grid { grid-template-columns: 1fr; } }

.s-galerie { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--a-gap); }
.s-galerie .a-frame { aspect-ratio: 3 / 2; }
@media (max-width: 700px) { .s-galerie { grid-template-columns: 1fr; } }

/* ============ TIP DE EVENIMENT (t-) ============ */
.t-dece { margin-top: clamp(2.4rem, 6vh, 3.4rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem var(--a-gap); }
.t-dece article { padding-top: 1.3rem; border-top: 1px solid var(--rule); }
.t-dece h3 { margin: 0; font: 600 clamp(1.45rem, 1.2rem + .7vw, 1.8rem)/1.1 var(--display); text-wrap: balance; }
.t-dece p { margin: .7rem 0 0; color: var(--ink-dim); text-wrap: pretty; }
@media (max-width: 820px) { .t-dece { grid-template-columns: 1fr; gap: 1.6rem; } }

.t-include { margin-top: clamp(2.4rem, 6vh, 3.4rem); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(1.8rem, 5vw, 4rem); align-items: start; }
.t-lista { margin: 0; padding: 0; list-style: none; display: grid; gap: .1rem; }
.t-lista li { padding: .85rem 0 .85rem 1.9rem; border-bottom: 1px solid var(--rule); position: relative; font-size: 1.12rem; }
.t-lista li::before { content: ""; position: absolute; left: 0; top: 1.5em; width: 11px; height: 1px; background: var(--terracotta); }
.t-extra .a-cap { display: block; margin-bottom: .6rem; }
.t-lista-mica li { padding: .55rem 0 .55rem 1.9rem; font-size: 1rem; color: var(--ink-dim); border-bottom: 0; }
.t-lista-mica li::before { top: 1.25em; opacity: .7; }
@media (max-width: 820px) { .t-include { grid-template-columns: 1fr; } }

.t-faq { margin: clamp(2.2rem, 6vh, 3.2rem) 0 0; display: grid; gap: 1.6rem; max-width: 62ch; }
.t-faq dt { font: 600 clamp(1.25rem, 1.05rem + .6vw, 1.55rem)/1.2 var(--display); text-wrap: balance; }
.t-faq dd { margin: .5rem 0 0; color: var(--ink-dim); text-wrap: pretty; }

/* ============ CONTACT (c-) ============ */
.c-linii { margin-top: clamp(2.4rem, 6vh, 3.4rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem var(--a-gap); }
.c-linii article { display: grid; gap: .5rem; align-content: start; padding-top: 1.3rem; border-top: 1px solid var(--rule); }
.c-linii h3 { margin: 0; font: 600 clamp(1.45rem, 1.2rem + .7vw, 1.8rem)/1.1 var(--display); }
.c-linii p { margin: 0; color: var(--ink-dim); text-wrap: pretty; }
.c-tel { margin-top: .5rem; font: 600 clamp(1.3rem, 1.1rem + .6vw, 1.6rem)/1.2 var(--display); color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; justify-self: start; }
.c-tel:hover { color: var(--terracotta); }
.c-linii .a-link { justify-self: start; }
@media (max-width: 820px) { .c-linii { grid-template-columns: 1fr; gap: 1.6rem; } }

.c-program { margin-top: clamp(2.4rem, 6vh, 3.4rem); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: clamp(1.8rem, 5vw, 4rem); align-items: start; }
.c-ore { margin: .8rem 0 0; display: grid; gap: .1rem; }
.c-ore > div { display: flex; justify-content: space-between; gap: 1.5rem; padding: .8rem 0; border-bottom: 1px solid var(--rule); }
.c-ore dt { margin: 0; }
.c-ore dd { margin: 0; color: var(--ink-dim); white-space: nowrap; }
.c-cap-2 { margin-top: 2.2rem; }
.c-drum .a-frame { aspect-ratio: 3 / 2; }
.c-adresa { margin: 1.3rem 0 .9rem; font-style: normal; font-size: 1.12rem; line-height: 1.5; }
@media (max-width: 860px) { .c-program { grid-template-columns: 1fr; } }

/* ============ DESPRE (d-) ============ */
.d-cifre { margin: clamp(2.4rem, 6vh, 3.4rem) 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem var(--a-gap); }
.d-cifre > div { padding-top: 1.3rem; border-top: 1px solid var(--rule); }
.d-cifre dt { margin: 0; font: 600 clamp(1.9rem, 1.4rem + 1.6vw, 2.6rem)/1 var(--display); }
.d-cifre dd { margin: .6rem 0 0; color: var(--ink-dim); text-wrap: pretty; }
@media (max-width: 900px) { .d-cifre { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .d-cifre { grid-template-columns: 1fr; gap: 1.4rem; } }

.d-vin { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.8rem, 5vw, 4rem); align-items: center; }
.d-vin-text .a-body { max-width: 44ch; }
.d-vin-text .a-link { display: inline-block; margin-top: 1.4rem; }
.d-vin-foto { display: grid; grid-template-columns: 1fr 1fr; gap: var(--a-gap); }
.d-vin-foto .a-frame { aspect-ratio: 3 / 4; }
@media (max-width: 860px) { .d-vin { grid-template-columns: 1fr; } .d-vin-foto .a-frame { aspect-ratio: 3 / 2; } }

/* ============ ÎN ZONĂ (z-) ============ */
.z-ghid { margin-top: clamp(2.4rem, 6vh, 3.4rem); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 3.4rem); }
.z-cat h3 { margin: 0 0 .4rem; }
.z-locuri { margin: 0; padding: 0; list-style: none; }
.z-locuri li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .1rem 1rem; padding: .95rem 0; border-bottom: 1px solid var(--rule); align-items: baseline; }
.z-nume { grid-column: 1; font: 600 clamp(1.15rem, 1rem + .45vw, 1.35rem)/1.25 var(--display); color: inherit; text-decoration: none; border-bottom: 1px solid transparent; justify-self: start; }
.z-nume:hover { border-bottom-color: currentColor; color: var(--terracotta); }
.z-unde { grid-column: 1; font-size: .92rem; color: var(--ink-dim); }
.z-drum { grid-column: 2; grid-row: 1 / span 2; font: 500 .82rem/1.4 var(--ui); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-dim); white-space: nowrap; }
@media (max-width: 760px) { .z-ghid { grid-template-columns: 1fr; gap: 2rem; } }

/* ============ PAGINI LEGALE (l-) ============ */
.l-data { margin: 1.4rem 0 0; font: 500 .78rem/1.4 var(--ui); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-dim); }
.l-text { padding-top: clamp(2rem, 5vh, 3rem); }
.l-capitole { margin: 0; padding: 0; list-style: none; counter-reset: cap; display: grid; gap: clamp(2rem, 5vh, 3rem); max-width: 68ch; }
.l-capitole > li { counter-increment: cap; }
.l-capitole h2 { margin: 0 0 .8rem; font: 600 clamp(1.4rem, 1.15rem + .8vw, 1.9rem)/1.15 var(--display); display: flex; gap: .7rem; align-items: baseline; text-wrap: balance; }
.l-capitole h2::before { content: counter(cap) "."; font: 500 .82rem/1 var(--ui); color: var(--terracotta); font-variant-numeric: tabular-nums; }
.l-capitole p { margin: 0 0 .9rem; color: var(--ink-dim); text-wrap: pretty; }
.l-capitole p:last-child { margin-bottom: 0; }
.l-capitole a { color: inherit; }
.l-tabel-scroll { margin: 1.2rem 0 .4rem; overflow-x: auto; }
.l-tabel { font-size: .98rem; }
.l-tabel tbody th { font: 600 1.05rem/1.3 var(--ui); white-space: normal; }
.l-tabel td { color: var(--ink-dim); }
.l-legatura { margin-top: clamp(2.4rem, 6vh, 3.4rem); padding-top: 1.4rem; border-top: 1px solid var(--rule); font-size: .98rem; color: var(--ink-dim); }

/* ============ VINURI (v-) ============ */
/* Vinurile n-au poze pe sticlă, deci cardurile sunt de text: semnul, numele, tipul și nota de
   degustare din meniul de bar. Liniile de sus le țin aliniate, ca o listă de etichete. */
.v-gama + .v-gama { padding-top: 0; }
.v-sticle { margin-top: clamp(2.4rem, 6vh, 3.4rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem var(--a-gap); }
.v-vin { padding-top: 1.2rem; border-top: 1px solid var(--rule); }
.v-semn { margin: 0; color: var(--terracotta); }
.v-vin h3 { margin: .7rem 0 0; font: 600 clamp(1.9rem, 1.4rem + 1.6vw, 2.6rem)/1.05 var(--display); }
.v-tip { margin: .5rem 0 0; font: 500 .8rem/1.4 var(--ui); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-dim); }
.v-cine { margin: .9rem 0 0; font: italic 500 1.05rem/1.4 var(--display); color: var(--ink-dim); }
.v-nota { margin: .7rem 0 0; color: var(--ink-dim); text-wrap: pretty; }
@media (max-width: 860px) { .v-sticle { grid-template-columns: 1fr; gap: 1.6rem; } }

/* Intro cu poza pe stânga, pentru secțiunile care alternează. */
@media (min-width: 861px) { .a-intro-invers .home-reveal-img { order: -1; } }

/* ============ CAMERE (c-, pagina unei camere) ============ */
.c-dotari { margin: 1.6rem 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .1rem 1.5rem; }
.c-dotari li { padding: .7rem 0 .7rem 1.6rem; border-bottom: 1px solid var(--rule); position: relative; color: var(--ink-dim); }
.c-dotari li::before { content: ""; position: absolute; left: 0; top: 1.35em; width: 9px; height: 1px; background: var(--terracotta); }
.c-dotari .c-dotare-aparte { color: var(--ink); font-weight: 500; }
@media (max-width: 620px) { .c-dotari { grid-template-columns: 1fr; } }

.c-rezerva { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(1.6rem, 4vw, 3.4rem); align-items: start; }
.c-rezerva .a-body { max-width: 46ch; }
.c-rezerva .c-ore { margin-top: .4rem; }
@media (max-width: 860px) { .c-rezerva { grid-template-columns: 1fr; } }

/* ============ TIPAR ȘI MIȘCARE REDUSĂ ============ */
@media print {
  .a-head, .a-tabbar, .a-float, .a-proto, .a-skip, .k-banner { display: none !important; }
  .js .a-band > img, .js .a-pano img { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .a-head, .a-tabbar, .a-tabbar .ico, .a-head .home-btn, .a-float, .a-drop-panel, .a-nav-link::after, .a-nav-link svg, .a-link, .a-close, .a-frame img, .a-menu-list svg { transition: none !important; }
  .a-head.is-hidden { transform: none; }
  .js .a-band > img, .js .a-pano img { transform: none; transition: none; }
  dialog.a-dialog[open], dialog.a-menu[open], dialog[open]::backdrop { animation: none; }
  .a-card:hover .a-frame img, .h-camera:hover .a-frame img, .r-bucatarie:hover .a-frame img, .r-card:hover .a-frame img, .e-tip:hover .a-frame img, .e-sala:hover .a-frame img { transform: none; }
  .a-type span { transition: none; }
}

/* ============ FORMULARE ============ */
/* Capcana de boți: scoasă din ecran, nu ascunsă cu `hidden` sau `type=hidden` — pe alea unii boți
   le sar, și atunci capcana nu mai prinde nimic (api-formular-website.md §6). */
.a-hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* Mesajul de după trimiterea unui formular fără JavaScript: cu JavaScript, răspunsul apare în
   fereastră și banda asta nu se mai randează deloc. */
.a-flash { padding: clamp(1rem, 2.5vh, 1.6rem) 0; background: rgba(84, 18, 30, .06); border-bottom: 1px solid var(--rule); }
.a-flash p { margin: 0; font: 500 1rem/1.5 var(--ui); color: var(--wine); text-wrap: pretty; }
.a-flash-rau { background: rgba(161, 29, 43, .1); }
.a-flash:focus { outline: 2px solid var(--wine); outline-offset: -2px; }

/* ============ JURNAL PE PRIMA PAGINĂ ============ */
/* Ultimul articol, în tiparul „a-intro”, dar cu poza lată: e un cadru de reportaj, nu un portret. */
.a-jurnal-foto { aspect-ratio: 3 / 2; }
.a-jurnal .a-card-meta { margin-top: 1rem; }
.a-jurnal-toate { margin: clamp(2rem, 5vh, 3rem) 0 0; }

/* ============ JURNAL ============ */
/* Lista de articole și pagina de articol. Proza stă pe o coloană îngustă, cât să se citească
   (~60 de caractere pe rând), iar pozele ies din ea: fie două alăturate, fie una lată. */
.j-lista { margin-top: clamp(1.8rem, 5vh, 3rem); display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: clamp(2rem, 5vw, 3.2rem); }
.j-articol .a-frame { aspect-ratio: 3 / 2; }
.j-articol .a-card-meta { margin-top: 1.1rem; }
.j-articol h3 { margin: .5rem 0 0; font: 600 clamp(1.7rem, 1.4rem + .9vw, 2.2rem)/1.12 var(--display); text-wrap: pretty; }
.j-articol h3 a { color: inherit; text-decoration: none; }
.j-articol h3 a:hover { color: var(--terracotta); }
.j-articol .txt { margin: .7rem 0 1.1rem; color: var(--ink-dim); text-wrap: pretty; }

.j-meta { margin: 1rem 0 0; font: 500 .78rem/1.4 var(--ui); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-dim); font-variant-numeric: lining-nums; }
.j-hero figcaption, .j-figura figcaption, .j-lat figcaption, .j-inalta figcaption { margin-top: .7rem; font-size: .92rem; color: var(--ink-dim); }
.j-sectiune { padding-top: clamp(2.6rem, 6vh, 4rem); }
.j-text { max-width: 60ch; }
.j-text p { margin: 1.2rem 0 0; font-size: 1.12rem; line-height: 1.66; color: var(--ink-dim); text-wrap: pretty; }
/* Culorile vin din teren (--ink/--ink-dim), ca textul să se vadă și pe fundalul de noapte. */
.j-text p a { color: var(--ink); text-underline-offset: .18em; }
.j-text .home-h2 { margin: 0; }

.j-rezumat { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 1.4rem 0; }
.j-rezumat dl { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1.1rem clamp(1.4rem, 3vw, 2.6rem); }
.j-rezumat dt { font: 500 .72rem/1.4 var(--ui); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-dim); }
.j-rezumat dd { margin: .35rem 0 0; color: var(--ink-dim); text-wrap: pretty; }

.j-pereche { margin-top: clamp(1.6rem, 4vh, 2.4rem); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem, 2.5vw, 1.8rem); align-items: start; }
.j-figura, .j-inalta { margin: 0; }
.j-figura .a-frame, .j-figura img { width: 100%; }
.j-lat { margin: clamp(1.6rem, 4vh, 2.4rem) 0 0; }
.j-inalta { margin: clamp(1.6rem, 4vh, 2.4rem) auto 0; max-width: 520px; }

.j-program { margin: clamp(1.4rem, 4vh, 2.2rem) 0 0; padding: 0; list-style: none; max-width: 60ch; }
.j-program li { display: grid; grid-template-columns: 8.5rem 1fr; gap: 1rem; padding: .85rem 0; border-top: 1px solid var(--rule); }
.j-program li:last-child { border-bottom: 1px solid var(--rule); }
.j-program b { font: 600 1.05rem/1.4 var(--display); color: var(--ink); font-variant-numeric: lining-nums; }
.j-program span { color: var(--ink-dim); text-wrap: pretty; }

@media (max-width: 700px) {
  .j-pereche { grid-template-columns: 1fr; }
  .j-program li { grid-template-columns: 1fr; gap: .2rem; }
}

/* ============ ȚINTE DE DEGET (telefon) ============ */
/* Linkurile care nu stau într-o celulă atingibilă cresc pe verticală, ca să le prindă degetul.
   Suprafața se întinde cu un ::before, nu cu padding: linia de subliniere e chiar marginea de jos a
   linkului, iar un padding ar depărta-o de text; marginile, la rândul lor, sunt deja date de alte
   reguli și nu se pot suprascrie fără să sară așezarea. Crește mai ales în sus, unde deasupra e text
   obișnuit, care n-are ce atingere să piardă. (Petru, 20 sept. 2026) */
@media (max-width: 760px) {
  .a-link, .c-tel, .a-logo, .a-menu .tel { position: relative; }
  .a-link::before, .c-tel::before, .a-logo::before, .a-menu .tel::before {
    content: ""; position: absolute; inset: -.9rem -.4rem -.25rem; }
  /* Unde două linkuri stau unul sub altul, mai întâi le crește distanța, ca să nu se calce. */
  .h-camera-links { gap: 1.5rem 1.8rem; }
  .c-linii article { gap: 1.1rem; }
  /* În subsol linkurile n-au linie dedesubt, deci pot crește în ambele părți; rândurile stau mai rar. */
  .a-foot nav li + li, .a-foot-social li + li { margin-top: 1.15rem; }
  .a-foot-bottom ul { gap: 1rem 1.2rem; }
  .a-foot nav a, .a-foot-social a, .a-foot-bottom a { padding-block: .45rem; margin-block: -.45rem; }
}

/* ============ COOKIES (bannerul de acord) ============ */
/* Un card lipit jos, nu o fereastră modală: site-ul se folosește și fără răspuns. Are culorile zilei
   oricare ar fi fundalul de sub el (amurg, noapte). „Accept” și „Refuz” arată la fel, intenționat:
   refuzul trebuie să fie la fel de ușor ca acordul. Pe telefon stă deasupra barei de jos. */
.k-banner {
  --ground: var(--paper); --ink: var(--wine); --ink-dim: var(--wine-soft); --rule: rgba(84, 18, 30, .2);
  position: fixed; z-index: 44;
  left: max(16px, env(safe-area-inset-left)); bottom: calc(16px + var(--a-bar) + env(safe-area-inset-bottom));
  width: min(26rem, calc(100vw - 32px));
  /* Pe un telefon culcat, cardul deschis poate fi mai înalt decât ecranul: atunci se derulează în el.
     Doar pe verticală: o fracțiune de pixel în plus pe orizontală ar aduce o bară de derulare goală. */
  max-height: calc(100svh - var(--a-bar) - 32px); overflow: hidden auto; scrollbar-width: thin;
  padding: 1.35rem 1.45rem 1.25rem;
  background: var(--ground); color: var(--ink);
  border: 1px solid var(--rule); border-radius: 14px;
  box-shadow: 0 26px 60px -26px rgba(42, 10, 15, .5), 0 2px 10px -4px rgba(42, 10, 15, .12);
  font: 400 .92rem/1.5 var(--ui);
}
.k-banner[hidden], .k-alegeri[hidden], .k-banner [hidden] { display: none; }
.k-titlu { margin: 0 0 .4rem; font: 500 1.55rem/1.1 var(--display); letter-spacing: 0; }
.k-titlu:focus { outline: none; }
.k-text { margin: 0; color: var(--ink-dim); text-wrap: pretty; }
.k-text a { color: var(--ink); text-underline-offset: .2em; white-space: nowrap; }
.k-alegeri { display: grid; gap: .85rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--rule); }
.k-alegere { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .75rem; align-items: start; font-size: .86rem; line-height: 1.45; color: var(--ink-dim); cursor: pointer; }
.k-alegere:has(input:disabled) { cursor: default; }
.k-alegere b { display: block; margin-bottom: .1rem; color: var(--ink); font-weight: 500; letter-spacing: .02em; }
.k-alegere input { width: 1.15rem; height: 1.15rem; margin: .12rem 0 0; accent-color: var(--wine); cursor: inherit; }
.k-butoane { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-top: 1.15rem; }
.k-btn { flex: 1 1 7rem; min-height: 2.75rem; padding: 0 1rem; border-color: var(--wine); background: transparent; color: var(--wine); font-size: .74rem; }
.k-btn:hover { background: var(--wine); color: var(--apricot); }
.k-mai {
  flex: 1 0 100%; margin-top: .15rem; padding: .35rem 0; border: 0; background: none; cursor: pointer;
  color: var(--ink-dim); font: 500 .74rem/1 var(--ui); letter-spacing: .14em; text-transform: uppercase;
  text-decoration: underline; text-underline-offset: .35em; text-decoration-color: var(--rule);
}
.k-mai:hover { color: var(--ink); text-decoration-color: currentColor; }
@media (max-width: 860px) {
  .k-banner { left: max(12px, env(safe-area-inset-left)); right: max(12px, env(safe-area-inset-right)); width: auto; bottom: calc(12px + var(--a-bar) + env(safe-area-inset-bottom)); padding: 1.15rem 1.15rem 1rem; }
  .k-titlu { font-size: 1.35rem; }
}
@media (prefers-reduced-motion: no-preference) {
  .k-banner:not([hidden]) { animation: k-intra .7s var(--ease) both; }
}
@keyframes k-intra { from { opacity: 0; transform: translateY(14px); } }
