/* TÂRGUL DE NUNȚI (resources/views/targ, config/targ.php). În linia casaseciu.ro: hârtie ivoriu,
   vin, Cormorant la titluri, Jost la text. Mobile-first: traficul vine din reclame Meta, pe telefon. */

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-italic-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-italic-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/jost-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/jost-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --vin: #54121E;
  --vin-moale: #7A2A36;
  --ivoriu: #FAF6F0;
  --hartie: #F1E8DC;
  --caisa: #FFD999;
  --noapte: #120507;
  --luna: #FFF1D8;
  --teracota: #DE663C;
  --text: #3A1A20;
  --linie: rgba(84, 18, 30, .16);
  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans: 'Jost', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ease: cubic-bezier(.16, 1, .3, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--ivoriu); color: var(--text); font: 400 1.0625rem/1.6 var(--sans); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--vin); }
.t-wrap { width: min(72rem, 100% - 2.5rem); margin-inline: auto; }
.t-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 2px solid var(--vin); outline-offset: 3px; }

/* ---- Antet ---- */
.t-antet { padding: 1rem 0; }
.t-antet .t-wrap { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.t-logo { width: 132px; }
.t-antet-link { font: 500 .78rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid var(--linie); padding-bottom: .3rem; }

/* ---- Titluri ---- */
.t-eticheta { margin: 0 0 1rem; font: 500 .78rem/1.4 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--vin); }
.t-h1, .t-h2 { margin: 0; font-family: var(--serif); font-weight: 600; color: var(--vin); text-wrap: balance; font-variant-numeric: lining-nums; }
.t-h1 { font-size: clamp(2.5rem, 1.6rem + 4.2vw, 4.6rem); line-height: 1.02; letter-spacing: -.01em; }
.t-h2 { font-size: clamp(2rem, 1.5rem + 2.2vw, 3rem); line-height: 1.08; }
.t-h1 em, .t-h2 em { display: block; font-style: italic; font-weight: 500; }
.t-lead { margin: 1.2rem 0 0; max-width: 34rem; font-size: 1.125rem; }

/* ---- Butonul ---- */
.t-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 3.25rem; padding: .9rem 2rem; border: 0; border-radius: 999px; background: var(--vin); color: var(--caisa); font: 500 .9rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: transform .2s var(--ease), background-color .2s; -webkit-tap-highlight-color: transparent; }
.t-btn:hover { background: #431019; }
.t-btn:active { transform: scale(.98); }
.t-btn[disabled] { opacity: .6; cursor: progress; }

/* ---- Hero ---- */
.t-hero { padding: .5rem 0 3rem; }
.t-hero-grid { display: grid; gap: 2rem; }
.t-fapte { list-style: none; margin: 1.6rem 0 1.8rem; padding: 0; display: grid; gap: .55rem; }
.t-fapte li { display: flex; gap: .7rem; align-items: baseline; font-size: 1.05rem; }
.t-fapte li::before { content: ""; flex: none; width: .45rem; height: .45rem; border-radius: 50%; background: var(--teracota); transform: translateY(-.1rem); }
.t-fapte b { font-weight: 500; color: var(--vin); }
.t-hero-foto { margin: 0; border-radius: 1.25rem; overflow: hidden; aspect-ratio: 4 / 5; background: var(--hartie); }
.t-hero-foto img { width: 100%; height: 100%; object-fit: cover; }
.t-hero-nota { margin: .9rem 0 0; font-size: .9rem; color: var(--vin-moale); }

/* ---- Secțiuni ---- */
.t-sectiune { padding: 3.5rem 0; border-top: 1px solid var(--linie); }
.t-sectiune-cap { max-width: 40rem; margin-bottom: 2rem; }
.t-sectiune-cap p { margin: 1rem 0 0; }

.t-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; background: var(--linie); border-radius: 1rem; overflow: hidden; }
.t-lista li { background: var(--ivoriu); padding: 1.1rem 1.2rem; }
.t-lista b { display: block; font: 600 1.35rem/1.2 var(--serif); color: var(--vin); }
.t-lista span { font-size: .95rem; }
.t-furnizori { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.6rem 0 0; padding: 0; list-style: none; }
.t-furnizori li { padding: .45rem .95rem; border-radius: 999px; background: var(--hartie); font-size: .92rem; color: var(--vin); }

/* Cum intrați: trei pași, chiar în ordinea asta. */
.t-pasi { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.2rem; counter-reset: pas; }
.t-pasi li { counter-increment: pas; display: grid; grid-template-columns: 2.6rem 1fr; gap: .9rem; align-items: start; }
.t-pasi li::before { content: counter(pas); display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--vin); color: var(--caisa); font: 600 1.15rem/1 var(--serif); font-variant-numeric: lining-nums; }
.t-pasi b { display: block; font: 600 1.3rem/1.25 var(--serif); color: var(--vin); }

/* Programul */
.t-zile { display: grid; gap: 1rem; }
.t-zi { padding: 1.3rem 1.4rem; border-radius: 1rem; background: var(--hartie); }
.t-zi b { display: block; font: 600 1.5rem/1.2 var(--serif); color: var(--vin); font-variant-numeric: lining-nums; }
.t-zi span { font-size: .98rem; }

/* Spațiile */
.t-spatii { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--linie); border-radius: 1rem; overflow: hidden; }
.t-spatii li { background: var(--ivoriu); padding: 1rem 1.1rem; }
.t-spatii b { display: block; font: 600 1.15rem/1.2 var(--serif); color: var(--vin); }
.t-spatii span { font-size: .88rem; font-variant-numeric: lining-nums; }
.t-galerie { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: 1.4rem; }
.t-galerie img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 5; border-radius: .9rem; background: var(--hartie); }


/* ---- Banda lată, sala pe toată lățimea ---- */
.t-banda { position: relative; margin: 0; height: clamp(16rem, 52vw, 34rem); overflow: hidden; background: var(--noapte); }
.t-banda img { width: 100%; height: 100%; object-fit: cover; }
.t-banda::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(18, 5, 7, .62), rgba(18, 5, 7, 0) 55%); }
.t-banda figcaption { position: absolute; z-index: 1; left: 0; right: 0; bottom: 1.2rem; width: min(72rem, 100% - 2.5rem); margin-inline: auto; color: var(--luna); font: 400 .95rem/1.3 var(--sans); }
.t-banda figcaption span { display: block; font: 600 clamp(1.5rem, 1.1rem + 1.6vw, 2.4rem)/1.1 var(--serif); color: #fff; }

.t-subtitlu { margin: 2.2rem 0 0; font: 500 .78rem/1.4 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--vin); }

/* ---- Cum intrați: noaptea, ca serile din casă ---- */
.t-noapte { background: var(--noapte); color: var(--luna); border-top: 0; }
.t-noapte .t-h2, .t-noapte .t-eticheta { color: var(--luna); }
.t-noapte .t-h2 em { color: var(--caisa); }
.t-noapte .t-pasi li::before { background: var(--caisa); color: var(--vin); }
.t-noapte .t-pasi b { color: #fff; }

/* ---- Formularul ---- */
.t-inscriere { background: var(--vin); color: var(--luna); padding: 3.5rem 0 4rem; }
.t-inscriere .t-h2, .t-inscriere .t-eticheta { color: var(--luna); }
.t-inscriere .t-sectiune-cap a { color: var(--caisa); }
.t-form { background: var(--ivoriu); color: var(--text); border-radius: 1.25rem; padding: 1.4rem 1.2rem 1.6rem; max-width: 36rem; }
.t-camp { margin-bottom: 1.05rem; }
.t-camp > label, .t-camp > legend { display: block; margin-bottom: .4rem; font: 500 .92rem/1.3 var(--sans); color: var(--vin); padding: 0; }
.t-camp small { font-weight: 400; color: var(--vin-moale); }
.t-input { width: 100%; min-height: 3.1rem; padding: .7rem .9rem; border: 1px solid rgba(84, 18, 30, .3); border-radius: .7rem; background: #fff; color: var(--text); font: 400 1.0625rem/1.3 var(--sans); }
.t-input:focus { outline: 2px solid var(--vin); outline-offset: 1px; border-color: var(--vin); }
.t-rand { display: grid; gap: 0 .9rem; }
fieldset.t-camp { border: 0; margin: 0 0 1.05rem; padding: 0; }
.t-zile-alege { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.t-zile-alege label { position: relative; display: block; cursor: pointer; }
.t-zile-alege input { position: absolute; opacity: 0; inset: 0; }
.t-zile-alege span { display: block; height: 100%; padding: .8rem .9rem; border: 1px solid rgba(84, 18, 30, .3); border-radius: .7rem; background: #fff; font-size: .95rem; line-height: 1.3; }
.t-zile-alege span b { display: block; font-weight: 500; color: var(--vin); }
.t-zile-alege input:checked + span { border-color: var(--vin); box-shadow: inset 0 0 0 1px var(--vin); background: var(--luna); }
.t-zile-alege input:focus-visible + span { outline: 2px solid var(--vin); outline-offset: 2px; }
.t-bifa { display: grid; grid-template-columns: 1.4rem 1fr; gap: .7rem; align-items: start; font-size: .92rem; line-height: 1.45; }
.t-bifa input { width: 1.25rem; height: 1.25rem; margin: .1rem 0 0; accent-color: var(--vin); }
.t-eroare { margin: .35rem 0 0; font-size: .88rem; color: #A3121F; }
.t-erori { margin: 0 0 1.2rem; padding: .9rem 1rem; border-radius: .7rem; background: #FBE7E4; color: #7A0F18; font-size: .95rem; }
.t-trimite { margin-top: 1.4rem; }
.t-trimite .t-btn { width: 100%; }
.t-trimite p { margin: .8rem 0 0; font-size: .88rem; color: var(--vin-moale); text-align: center; }
.t-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---- Confirmarea: textul și biletul cu codul ---- */
.t-gata { padding: 1rem 0 4rem; }
.t-gata-grid { display: grid; gap: 2.2rem; }
.t-gata-grid > * { min-width: 0; }
.t-gata .t-lead { overflow-wrap: anywhere; }
/* Pe telefon (la intrare), codul vine imediat după titlu; pe desktop, textul stă în stânga și biletul în dreapta. */
@media (max-width: 979px) {
  .t-gata-text { display: contents; }
  .t-gata-grid { gap: 0; }
  .t-gata .t-eticheta { order: 1; }
  .t-gata .t-h1 { order: 2; margin-bottom: 1.4rem; }
  .t-bilet-cadru { order: 3; margin-bottom: 1.6rem; }
  .t-gata .t-lead { order: 4; margin-top: 0; }
  .t-gata .t-fapte { order: 5; }
  .t-gata-contact { order: 6; }
}
.t-gata-contact { margin: 0; font-size: 1rem; }
.t-bilet-cadru { background: #241528; border-radius: 1.5rem; padding: 1rem; max-width: 30rem; width: 100%; }
.t-bilet { display: grid; grid-template-columns: 5.4rem 1fr; background: #fff; border-radius: 1rem; overflow: hidden; }
.t-bilet-cotor { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .2rem; padding: 1rem .4rem; border-right: 2px dashed #D9C7AE; text-align: center; }
.t-bilet-cotor small { font: 500 .62rem/1.3 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--vin-moale); }
.t-bilet-cotor b { font: 700 2.9rem/1 var(--serif); color: var(--vin); font-variant-numeric: lining-nums; }
.t-bilet-corp { padding: 1.2rem 1rem 1.1rem; text-align: center; }
.t-bilet-qr { width: min(14rem, 100%); margin: 0 auto .8rem; aspect-ratio: 1; }
.t-bilet-qr svg, .t-bilet-qr img { width: 100%; height: 100%; display: block; }
.t-bilet-cod { font: 500 1.05rem/1 var(--sans); letter-spacing: .16em; color: var(--vin); font-variant-numeric: tabular-nums lining-nums; }
.t-bilet-corp p { margin: .5rem 0 0; font-size: .92rem; color: var(--vin-moale); }
.t-bilet-nota { margin: .9rem .3rem .1rem; font-size: .85rem; color: #D9C7AE; text-align: center; }
@media (min-width: 980px) {
  .t-gata { padding: 3rem 0 6rem; }
  .t-gata-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 5rem; align-items: center; }
  .t-gata .t-h1 { font-size: clamp(3rem, 2rem + 2.6vw, 4.4rem); }
  .t-bilet-cadru { justify-self: end; padding: 1.3rem; }
  .t-bilet { grid-template-columns: 6.5rem 1fr; }
  .t-bilet-cotor b { font-size: 3.4rem; }
  .t-bilet-qr { width: 15.5rem; }
}

/* ---- Subsol ---- */
.t-subsol { padding: 2.5rem 0 3rem; background: var(--noapte); color: var(--luna); font-size: .95rem; }
.t-subsol a { color: var(--caisa); }
.t-subsol .t-logo { width: 120px; margin-bottom: 1rem; }
.t-subsol p { margin: .3rem 0; }

/* ---- Cookie-uri (doar când e pixelul Meta) ---- */
.t-cookie { position: fixed; z-index: 30; left: .75rem; right: .75rem; bottom: calc(.75rem + env(safe-area-inset-bottom, 0px)); max-width: 30rem; padding: 1rem 1.1rem; border-radius: 1rem; background: var(--ivoriu); box-shadow: 0 10px 40px -10px rgba(18, 5, 7, .45); font-size: .9rem; }
.t-cookie p { margin: 0 0 .8rem; }
.t-cookie div { display: flex; gap: .6rem; }
.t-cookie button { flex: 1; min-height: 2.75rem; border-radius: 999px; border: 1px solid var(--vin); background: transparent; color: var(--vin); font: 500 .8rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.t-cookie button.da { background: var(--vin); color: var(--caisa); }

/* Bara de jos, pe telefon: butonul de înscriere rămâne la îndemână până la formular. */
.t-bara { position: fixed; z-index: 20; left: 0; right: 0; bottom: 0; padding: .7rem 1rem calc(.7rem + env(safe-area-inset-bottom, 0px)); background: rgba(250, 246, 240, .94); backdrop-filter: blur(8px); border-top: 1px solid var(--linie); transform: translateY(110%); transition: transform .35s var(--ease); }
.t-bara.on { transform: none; }
.t-bara .t-btn { width: 100%; }

@media (min-width: 760px) {
  .t-rand { grid-template-columns: 1fr 1fr; }
  .t-lista { grid-template-columns: 1fr 1fr; }
  .t-zile { grid-template-columns: 1fr 1fr; }
  .t-spatii { grid-template-columns: repeat(3, 1fr); }
  .t-galerie { grid-template-columns: repeat(3, 1fr); }
  .t-form { padding: 2rem; }
  .t-bara { display: none; }
}
@media (min-width: 980px) {
  .t-wrap { width: min(76rem, 100% - 5rem); }
  .t-hero { padding: 2rem 0 5rem; }
  .t-hero-grid { grid-template-columns: 1.05fr .95fr; align-items: center; gap: 5rem; }
  .t-hero-foto { aspect-ratio: 4 / 5; max-height: 78vh; justify-self: end; width: 100%; }
  .t-lead { font-size: 1.2rem; }
  .t-sectiune, .t-inscriere { padding: 6.5rem 0; }
  .t-sectiune-cap { margin-bottom: 0; }
  /* Titlul în stânga, lipit sus cât derulezi; conținutul în dreapta, pe toată lățimea rămasă. */
  .t-doua { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 5rem; align-items: start; }
  .t-doua > .t-sectiune-cap { position: sticky; top: 2rem; }
  .t-banda figcaption { width: min(76rem, 100% - 5rem); bottom: 2rem; }
  /* Pașii, pe un rând, cu cifrele mari. */
  .t-noapte .t-sectiune-cap { max-width: none; margin-bottom: 3rem; }
  .t-noapte .t-pasi { grid-template-columns: repeat(3, 1fr); gap: 3rem; }
  .t-noapte .t-pasi li { grid-template-columns: 1fr; gap: 1.2rem; }
  .t-noapte .t-pasi li::before { width: 3.4rem; height: 3.4rem; font-size: 1.5rem; }
  .t-noapte .t-pasi b { font-size: 1.6rem; margin-bottom: .3rem; }
  .t-spatii { grid-template-columns: 1fr 1fr; }
  /* Galeria: mozaic, cu prima poză mare. */
  .t-galerie { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 15.5rem; gap: .8rem; margin-top: 4rem; }
  .t-galerie img { aspect-ratio: auto; height: 100%; }
  .t-galerie img:first-child { grid-column: span 2; grid-row: span 2; }
  .t-galerie img:nth-child(6) { display: none; }
  .t-inscriere .t-wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 5rem; align-items: start; }
  .t-inscriere .t-sectiune-cap { position: sticky; top: 2rem; }
  .t-form { max-width: none; padding: 2.4rem; }
  .t-subsol .t-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 2.5rem; }
  .t-subsol .t-logo { margin: 0 1rem 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .t-btn, .t-bara { transition: none; }
}
