@charset "utf-8";
/* ── Page-specific overrides ── */
        :root {
            --camp-color: #d97746;
            --camp-color-light: #e89163;
            --camp-gradient: linear-gradient(135deg, #a4502d 0%, #d97746 50%, #e89163 100%);
        }

        /* Hero override for this page */
        .camp-hero {
            position: relative;
            min-height: 75vh;
            display: flex;
            align-items: flex-end;
            /* Imaginea vine din single-camp.php (câmp → reprezentativă → implicit
               global → fișier din temă), pusă inline. Aici doar voalul de culoare:
               calea relativă de dinainte pornea din assets/css/, deci dădea 404. */
            background-color: #774126;
            background-size: cover;
            background-position: center;
            padding: 0;
        }

        .camp-hero-inner {
            width: 100%;
            padding: 4rem 2rem 5rem;
            max-width: 1200px;
            margin: 0 auto;
        }

        .camp-hero .badge {
            background: rgba(217, 119, 70, 0.8);
            border-color: rgba(255, 255, 255, 0.3);
        }

        .camp-hero h1 {
            font-size: 4rem;
            color: var(--white);
            margin-bottom: 1rem;
            text-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
            /* Majusculele sunt din CSS, nu din text: titlul rămâne scris normal
               în admin și în <title>, iar cititoarele de ecran nu-l silabisesc. */
            text-transform: uppercase;
        }

        .camp-hero .sub-title {
            font-size: 1.25rem;
            color: rgba(255, 255, 255, 0.88);
            margin-bottom: 0.5rem;
            font-weight: 500;
        }

        .camp-hero .tagline {
            font-style: italic;
            color: rgba(255, 255, 255, 0.7);
            font-size: 1.05rem;
            margin-bottom: 2.5rem;
        }

        .hero-meta-pills {
            display: flex;
            flex-wrap: wrap;
            gap: 0.8rem;
            margin-bottom: 2rem;
        }

        .meta-pill {
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
            background: rgba(255, 255, 255, 0.12);
            -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.25);
            color: var(--white);
            padding: 0.5rem 1.1rem;
            border-radius: 50px;
            font-size: 0.9rem;
            font-weight: 600;
        }

        /* Shape divider */
        .hero-wave {
            position: absolute;
            bottom: -1px;
            left: 0;
            width: 100%;
            overflow: hidden;
            line-height: 0;
        }

        .hero-wave svg {
            display: block;
            width: calc(100% + 1.3px);
            height: 80px;
        }

        /* Section styles */
        .camp-section {
            padding: 5rem 0;
        }

        .camp-section.bg-alt {
            background: var(--bg-light);
        }

        .section-intro {
            max-width: 720px;
            /* centrat: containerul are 1200px, altfel tot golul cădea în dreapta */
            margin-inline: auto;
            text-align: center;
        }

        .section-intro .section-label {
            color: var(--camp-color);
        }

        .section-intro h2 {
            font-size: 2.2rem;
            color: var(--primary-dark);
            margin-bottom: 1rem;
        }

        .section-intro p {
            color: var(--text-muted);
            font-size: 1.05rem;
            line-height: 1.8;
            margin-bottom: 1.1rem;
            /* doar blocul e centrat; rândurile lungi se citesc mai ușor cu
               marginea din stânga dreaptă */
            text-align: left;
        }

        /* Ultimul paragraf n-are margine: spatiul de dedesubt il da elementul
           urmator, si nu vrem sa se adune doua. */
        .section-intro p:last-child {
            margin-bottom: 0;
        }

        /* Firul rosu */
        /* „Firul roșu" — pastile numerotate, înșirate pe un fir, într-un singur rând.
           ==================================================================
           Boala pe care o reparăm: pastilele stăteau într-o grilă de coloane de 33%,
           deci trei pe rând oricât de scurte ar fi fost etichetele. De acolo veneau
           golurile, rândul al doilea decalat cu o jumătate de coloană și săgețile care
           arătau în gol. Aici nu mai există coloane: pastilele sunt dimensionate după
           conținut, lanțul e strâns și centrat, iar când chiar nu mai încape nu se rupe
           în două rânduri, ci trece dintr-o bucată în traseu vertical.

           Ordinea o duce CIFRA, nu culoarea și nu vreo săgeată. E singurul lucru care
           rămâne adevărat indiferent câți pași pune clientul din admin, indiferent cum
           se așază rândul și indiferent dacă cineva nu distinge culorile.

           Mecanisme moderne (declarate în raport):
           - INTEROGĂRI DE CONTAINER: pragurile întreabă cât spațiu are efectiv lanțul,
             nu cât are fereastra; dacă secțiunea ajunge mâine într-o coloană mai
             îngustă, comutarea se face singură.
           - :has() CA INTEROGARE DE CANTITATE: CSS-ul află câți pași sunt, lucru pe
             care marcajul (un simplu foreach) nu i-l poate spune. De asta depinde
             pragul la care lanțul se ridică în picioare.
           - color-mix(): tot ce e colorat se derivă din --camp-color, deci merge
             identic pe portocaliu sau albastru; nicio culoare de tabără scrisă dur.
           - content: counter() cu text alternativ gol, ca cifra să se vadă, dar să nu
             se și audă peste numerotarea pe care o dă deja <ol>.

           TEMELIA E VERTICALA, iar orizontala se aplică peste ea sub condiții. Ordinea
           asta nu e întâmplătoare: dacă un browser nu știe interogări de container,
           rămâne traseul vertical, care e corect la orice lățime și la orice număr de
           pași. Varianta care cade e cea sigură, nu cea îngustă. */

        .fir {
        	/* Elementul de măsurat. Atenție la capcană: o regulă din @container NU poate
        	   stiliza chiar elementul-container, doar urmașii lui — de aceea containerul
        	   e .fir, iar toate variabilele stau pe .fir-lant. */
        	container-type: inline-size;
        	container-name: fir;
        	margin: 2.5rem 0;
        	text-align: center;
        }

        /* Eticheta rămâne exact .section-label a site-ului — nu-i schimbăm culoarea.
           Tentația era s-o legăm de --camp-color, ca titlul să fie în tonul taberei. Am
           încercat și am măsurat: pe tabăra portocalie (#FF9800) textul ar fi coborât la
           ~2.1:1 pe fundalul crem, adică o etichetă aproape ilizibilă. În plus, toate
           celelalte etichete de secțiune de pe pagina de tabără sunt verzi (--primary),
           deci una portocalie ar fi fost și singulară, nu doar greu de citit. */
        .fir-eticheta {
        	display: block;
        	margin-bottom: 1.1rem;
        }

        /* ------------------------------------------------------------------
           TEMELIA: traseu vertical. Aici nu există rând, deci nu există nici rest de
           rând — starea asta e corectă necondiționat.
           ------------------------------------------------------------------ */
        .fir-lant {
        	/* Culoarea taberei o citim o singură dată, cu plasă de siguranță: dacă o
        	   pagină uită --camp-color, cădem pe verdele site-ului, nu pe „fără fundal". */
        	--fir-c: var(--camp-color, var(--primary));

        	--fir-bulina: 1.75rem;
        	--fir-gros: 2px;       /* grosimea firului */
        	--fir-pad-i: 0.4rem;   /* padding pe partea bulinei */
        	--fir-pad-e: 1rem;     /* padding pe partea textului */
        	--fir-pad-b: 0.4rem;
        	--fir-gol-i: 0.55rem;  /* între bulină și text */
        	--fir-font: 0.95rem;

        	/* Spațiul dintre pastile ESTE lungimea firului vizibil: firul se desenează
        	   exact peste el, deci cele două nu se pot dezacorda. */
        	--fir-gol: 0.8rem;

        	--fir-dir: column;
        	--fir-aliniere: start;   /* pastilele își țin lățimea proprie, nu se întind */
        	--fir-leg-inset: auto auto 100% calc(var(--fir-pad-i) + var(--fir-bulina) / 2);
        	--fir-leg-tr: translateX(-50%);
        	--fir-leg-w: var(--fir-gros);
        	--fir-leg-h: var(--fir-gol);

        	list-style: none;
        	counter-reset: fir;
        	display: flex;
        	flex-direction: var(--fir-dir);
        	/* Aici se taie problema din rădăcină: ruperea rândului nu e gestionată, e
        	   interzisă. Ce nu încape se strânge; ce nu se mai poate strânge comută. */
        	flex-wrap: nowrap;
        	align-items: var(--fir-aliniere);
        	justify-content: center;
        	gap: var(--fir-gol);
        	/* Lățime după conținut + centrare: un lanț scurt nu se mai întinde inutil pe
        	   toată lățimea, deci pastilele nu mai plutesc în spații largi. Pe verticală,
        	   același lucru face ca blocul de pastile să stea centrat ca bloc, dar
        	   aliniat la stânga înăuntru — adică o coloană, nu o listă agățată de margine. */
        	width: fit-content;
        	max-width: 100%;
        	margin: 0 auto;
        	padding: 0;
        	text-align: left;
        }

        .fir-pas {
        	counter-increment: fir;
        	position: relative;
        	display: flex;
        	align-items: center;
        	gap: var(--fir-gol-i);
        	/* Cu shrink permis și min-width:0, pastila cedează și textul trece pe două
        	   rânduri în loc ca lanțul să iasă din pagină. Rândul rămâne un rând. */
        	flex: 0 1 auto;
        	min-width: 0;
        	padding: var(--fir-pad-b) var(--fir-pad-e) var(--fir-pad-b) var(--fir-pad-i);
        	border-radius: 999px;

        	/* Pastilă deschisă cu text închis, nu alb pe gradient. Motivul e contrastul:
        	   --camp-color diferă de la o tabără la alta, iar alb pe o culoare deschisă
        	   (portocaliu, galben) coboară sub 4.5:1. O tentă de 7% pe alb rămâne
        	   citibilă orice culoare ar avea tabăra. E și limbajul cardurilor din restul
        	   paginii (.obj-card / .day-card): fundal deschis, bordură fină, umbră mică. */
        	background: color-mix(in oklab, var(--fir-c) 7%, var(--white));
        	border: 1px solid color-mix(in oklab, var(--fir-c) 18%, transparent);
        	box-shadow: var(--shadow-sm);

        	font-family: var(--font-heading);
        	font-weight: 700;
        	font-size: var(--fir-font);
        	line-height: 1.25;
        	color: color-mix(in oklab, var(--fir-c) 20%, var(--text-main));

        	/* Dacă tot ajunge pe două rânduri, măcar să fie două rânduri egale. */
        	text-wrap: balance;
        	/* Despărțire în silabe înainte de ruperea brutală: pagina e lang="ro", deci
        	   „Recunoaștere" se taie unde trebuie, nu după ultima literă care încape.
        	   break-word rămâne doar ca plasă de siguranță, pentru un cuvânt de 30 de
        	   litere pe care l-ar putea scrie cineva în admin. */
        	hyphens: auto;
        	overflow-wrap: break-word;
        }

        /* Bulina cu numărul. Vine din contor, nu din marcaj: dacă clientul adaugă sau
           șterge un pas din admin, numerotarea se reface singură. */
        .fir-pas::before {
        	/* A doua declarație spune „citește-l ca text gol": ordinea o anunță deja
        	   <ol>, deci cifra ar fi un ecou. Prima rămâne pentru browserele care nu
        	   știu sintaxa cu „/" — acolo se aude „1 Curiozitate", nu nimic. */
        	content: counter(fir);
        	content: counter(fir) / "";
        	flex: none;
        	inline-size: var(--fir-bulina);
        	block-size: var(--fir-bulina);
        	display: grid;
        	place-items: center;
        	border-radius: 50%;
        	/* NU --camp-gradient, deși ar fi fost tentant. Cifra albă e singurul lucru
        	   care spune ordinea, deci trebuie să se citească pe TOATE cele 13 culori de
        	   tabără, nu doar pe verde. Măsurat pe toate 13: alb pe --camp-color dă între
        	   2.12:1 (tabăra portocalie, #FF9800) și 7.16:1, iar pe capătul deschis al
        	   gradientului coboară până la 1.70:1 — sub prag peste tot. Aceleași culori
        	   duse cu 30% spre negru trec pragul peste tot, cel mai slab caz fiind 5.17:1.
        	   Rămâne un gradient, deci bulina arată tot a mărgea, doar că într-o versiune
        	   închisă a culorii taberei. */
        	background: linear-gradient(140deg,
        		color-mix(in oklab, var(--fir-c) 70%, black),
        		color-mix(in oklab, var(--fir-c) 48%, black));
        	color: var(--white);
        	font-size: 0.78rem;
        	font-weight: 800;
        	font-variant-numeric: tabular-nums;
        	line-height: 1;
        }

        /* Firul dintre pastile. E desenat de pastila din DREAPTA legăturii, în golul
           dinaintea ei, deci acoperă exact spațiul dintre două pastile vecine și nu are
           cum să iasă în gol. Prima pastilă n-are ce lega, așa că i-l scoatem din CSS —
           marcajul rămâne un foreach curat, care nu trebuie să știe pe al câtelea pas e. */
        .fir-pas::after {
        	content: "";
        	position: absolute;
        	inset: var(--fir-leg-inset);
        	inline-size: var(--fir-leg-w);
        	block-size: var(--fir-leg-h);
        	transform: var(--fir-leg-tr);
        	/* Amestec cu fundalul, nu transparență: două capete translucide s-ar aduna
        	   într-o pată mai închisă acolo unde se ating bordurile pastilelor. */
        	background: color-mix(in oklab, var(--fir-c) 42%, var(--bg-main));
        	border-radius: 2px;
        }

        .fir-pas:first-child::after {
        	content: none;
        }

        /* Capătul drumului primește un halou în jurul bulinei, nu o pastilă plină:
           o pastilă plină pe fundal de tabără ar arăta a filă selectată, nu a pas final,
           și ar fi singurul loc cu text alb peste --camp-color — adică singurul loc cu
           risc de contrast pe o tabără deschisă la culoare. Haloul nu poartă nicio
           informație: ordinea o spun cifrele, deci nimic nu se pierde dacă nu se vede. */
        .fir-pas:last-child::before {
        	box-shadow: 0 0 0 4px color-mix(in oklab, var(--fir-c) 18%, transparent);
        }

        /* ------------------------------------------------------------------
           ORIZONTALA. Se aplică doar dacă lanțul chiar are loc, iar „are loc" depinde
           de câți pași sunt — de asta interogarea de lățime e dublată de una de
           cantitate. Pragurile sunt în rem, ca la un font rădăcină mărit comutarea să
           se facă mai devreme (direcția sigură).
           ------------------------------------------------------------------ */

        /* BANDA STRÂMTĂ, până în 5 pași (cazul real la toate cele 12 tabere de azi):
           de la 46rem încolo. La 820px fereastră containerul are ~47rem, deci cele
           cinci pastile rămân un rând — cu etichetele lungi pe două rânduri înăuntru,
           ceea ce e mult mai bine decât o stivă de bare pe toată lățimea.
           Aici corpul de literă e cu un pic mai mic: la 820px, cu litera mare, până și
           tabăra cu 4 pași ar fi trecut pe două rânduri degeaba. */
        @container fir (min-width: 46rem) {
        	.fir-lant:not(:has(> :nth-child(6))) {
        		--fir-dir: row;
        		--fir-aliniere: stretch;   /* pastile de aceeași înălțime pe rând */
        		--fir-gol: 0.85rem;
        		--fir-gol-i: 0.4rem;
        		--fir-bulina: 1.5rem;
        		--fir-font: 0.83rem;
        		--fir-pad-b: 0.38rem;
        		--fir-pad-i: 0.32rem;
        		--fir-pad-e: 0.75rem;
        		--fir-leg-inset: 50% 100% auto auto;
        		--fir-leg-tr: translateY(-50%);
        		--fir-leg-w: var(--fir-gol);
        		--fir-leg-h: var(--fir-gros);
        	}
        }

        /* BANDA LARGĂ, până în 7 pași: de la 62rem încolo, cu literă și spații pline.
           Pragul e 62rem tocmai pentru lanțurile de 6-7 pași: sub atât pastilele lor ar
           ajunge sub 100px și cuvinte ca „Creativitate" s-ar rupe în două — mai bine un
           traseu vertical întreg decât un rând sufocat. Regula prinde și lanțurile
           scurte, cărora le dă înapoi spațiul strâns în banda de mai sus; e mai jos în
           fișier și are aceeași specificitate, deci câștigă acolo unde se suprapun.

           Valorile sunt măsurate, nu ghicite: cazul cel mai greu de azi (5 etichete,
           cea mai lungă de 25 de caractere) cere 1110px ca să stea cu toate etichetele
           pe un singur rând de text, iar containerul paginii are 1136px la 1264px și
           1440px fereastră. De asta bulina, spațiile și padding-ul sunt strânse aici:
           cei 23px care lipseau i-am luat din ornament, nu din corpul literei.

           „:not(:has(> :nth-child(8)))" înseamnă „cel mult 7 pași": de la 8 în sus nu
           mai există orizontală la nicio lățime, fiindcă un rând de 8+ etichete e
           înghesuit chiar și pe 1440, iar o coloană de 8 e perfect lizibilă.

           Condiția de lățime e un at-rule, cea de număr e un selector, deci cele două
           blocuri nu se pot uni. DACĂ SCHIMBI ORIENTAREA ÎNTR-UNUL, SCHIMB-O ȘI ÎN
           CELĂLALT — valorile pot să difere, dar cele patru variabile de orientare
           (--fir-dir, --fir-aliniere, --fir-leg-inset, --fir-leg-tr) trebuie să fie
           aceleași, altfel un lanț de 6 pași s-ar purta altfel decât unul de 5. */
        @container fir (min-width: 62rem) {
        	.fir-lant:not(:has(> :nth-child(8))) {
        		--fir-dir: row;
        		--fir-aliniere: stretch;
        		--fir-gol: 0.95rem;
        		--fir-gol-i: 0.45rem;
        		--fir-bulina: 1.6rem;
        		--fir-font: 0.88rem;
        		--fir-pad-b: 0.42rem;
        		--fir-pad-i: 0.35rem;
        		--fir-pad-e: 0.8rem;
        		--fir-leg-inset: 50% 100% auto auto;
        		--fir-leg-tr: translateY(-50%);
        		--fir-leg-w: var(--fir-gol);
        		--fir-leg-h: var(--fir-gros);
        	}
        }
        /* Antetele secțiunilor de tabără stau pe mijloc (cererea clientului,
           2026-08-12), la fel ca intro-ul. Cardurile își păstrează textul la
           stânga — doar blocurile se centrează. */
        .camp-section .container > .section-label {
            display: block;
            text-align: center;
        }
        .camp-section .container > h2,
        .camp-section .container > h2 + p {
            text-align: center;
        }

        /* Objectives grid — flex cu centrare: un rând incomplet (2 carduri
           din 3) stă pe mijloc DIN CONSTRUCȚIE, indiferent câte carduri are
           tabăra. Lățimile fixe pe treimi păstrează aspectul de grilă. */
        .obj-grid {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 1.5rem;
            margin-top: 2.5rem;
        }
        .obj-grid > * {
            flex: 0 0 calc((100% - 3rem) / 3);
        }
        @media (max-width: 900px) {
            .obj-grid > * { flex-basis: calc((100% - 1.5rem) / 2); }
        }
        @media (max-width: 600px) {
            .obj-grid > * { flex-basis: 100%; }
        }

        .obj-card {
            background: var(--white);
            border-radius: var(--radius-md);
            padding: 1.8rem;
            box-shadow: var(--shadow-sm);
            border-left: 4px solid var(--camp-color);
            transition: all 0.3s ease;
        }

        .obj-card:hover {
            transform: translateY(-6px);
            box-shadow: var(--shadow-md);
        }

        .obj-card .obj-icon {
            font-size: 1.8rem;
            margin-bottom: 0.8rem;
        }

        .obj-card h3 {
            font-size: 1.05rem;
            color: var(--primary-dark);
            margin-bottom: 0.4rem;
        }

        .obj-card p {
            font-size: 0.88rem;
            color: var(--text-muted);
            line-height: 1.6;
        }

        /* Days timeline — aceeași centrare din construcție ca .obj-grid. */
        .days-grid {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 1.5rem;
            margin-top: 2.5rem;
        }
        .days-grid > * {
            flex: 0 0 calc((100% - 3rem) / 3);
        }
        @media (max-width: 900px) {
            .days-grid > * { flex-basis: calc((100% - 1.5rem) / 2); }
        }
        @media (max-width: 600px) {
            .days-grid > * { flex-basis: 100%; }
        }

        .day-card {
            background: var(--white);
            border-radius: var(--radius-lg);
            padding: 2rem;
            box-shadow: var(--shadow-sm);
            position: relative;
            overflow: hidden;
            transition: all 0.3s ease;
        }

        .day-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 4px;
            background: var(--camp-gradient);
        }

        .day-card:hover {
            transform: translateY(-6px);
            box-shadow: var(--shadow-md);
        }

        .day-number {
            display: inline-block;
            background: var(--camp-gradient);
            color: var(--white);
            font-size: 0.75rem;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 1px;
            padding: 0.3rem 0.9rem;
            border-radius: 50px;
            margin-bottom: 0.8rem;
        }

        .day-card h3 {
            font-size: 1.1rem;
            color: var(--primary-dark);
            margin-bottom: 0.6rem;
        }

        .day-card p {
            font-size: 0.9rem;
            color: var(--text-muted);
            line-height: 1.7;
        }

        /* Benefits list */
        .benefits-list {
            list-style: none;
            padding: 0;
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: 1rem;
            margin-top: 2rem;
        }

        .benefits-list li {
            background: var(--white);
            padding: 1.2rem 1.4rem;
            border-radius: var(--radius-md);
            box-shadow: var(--shadow-sm);
            display: flex;
            align-items: flex-start;
            gap: 0.8rem;
            font-size: 0.95rem;
            color: var(--text-main);
            line-height: 1.5;
        }

        .benefits-list li::before {
            content: '\2713';
            color: var(--camp-color);
            font-weight: 800;
            font-size: 1rem;
            flex-shrink: 0;
            margin-top: 0.1rem;
        }

        /* Audience cards */
        .audience-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 2rem;
            margin-top: 2.5rem;
        }

        .audience-card {
            background: var(--white);
            border-radius: var(--radius-lg);
            padding: 2.5rem;
            box-shadow: var(--shadow-sm);
        }

        .audience-card h3 {
            font-size: 1.25rem;
            color: var(--camp-color);
            margin-bottom: 1rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .audience-card p {
            color: var(--text-muted);
            font-size: 0.98rem;
            line-height: 1.8;
            margin-bottom: 1rem;
        }

        /* Ultimul paragraf n-are margine: spațiul de sub card îl dă cardul. */
        .audience-card p:last-child {
            margin-bottom: 0;
        }

        /* Pricing card */
        .pricing-wrapper {
            display: grid;
            grid-template-columns: 1fr 1.2fr;
            gap: 2.5rem;
            align-items: start;
            margin-top: 2.5rem;
        }

        .pricing-card {
            background: var(--camp-gradient);
            color: var(--white);
            border-radius: var(--radius-lg);
            padding: 2.5rem;
            box-shadow: 0 15px 40px rgba(217, 119, 70, 0.35);
        }

        .pricing-card .price-big {
            font-family: var(--font-heading);
            font-size: 3.5rem;
            font-weight: 800;
            line-height: 1;
            margin: 1rem 0 0.3rem;
        }

        .pricing-card .price-note {
            font-size: 0.9rem;
            opacity: 0.8;
            margin-bottom: 2rem;
        }

        .pricing-card .includes {
            list-style: none;
            padding: 0;
        }

        .pricing-card .includes li {
            padding: 0.6rem 0;
            border-bottom: 1px solid rgba(255, 255, 255, 0.15);
            font-size: 0.95rem;
            display: flex;
            align-items: center;
            gap: 0.6rem;
        }

        .pricing-card .includes li:last-child {
            border-bottom: none;
        }

        .discounts-card {
            background: var(--white);
            border-radius: var(--radius-lg);
            padding: 2.5rem;
            box-shadow: var(--shadow-sm);
        }

        .discounts-card h3 {
            font-size: 1.2rem;
            color: var(--primary-dark);
            margin-bottom: 1.5rem;
        }

        .discount-item {
            display: flex;
            align-items: flex-start;
            gap: 1rem;
            padding: 0.9rem 0;
            border-bottom: 1px solid rgba(45, 30, 15, 0.06);
        }

        .discount-item:last-child {
            border-bottom: none;
        }

        .discount-icon {
            font-size: 1.3rem;
            flex-shrink: 0;
            margin-top: 0.1rem;
        }

        .discount-item strong {
            display: block;
            color: var(--primary-dark);
            font-size: 0.95rem;
            margin-bottom: 0.2rem;
        }

        .discount-item p {
            color: var(--text-muted);
            font-size: 0.85rem;
            margin: 0;
            line-height: 1.5;
        }

        /* Locations — pe jumătăți, centrate; o singură locație stă pe mijloc. */
        .locations-grid {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 2rem;
            margin-top: 2.5rem;
        }
        .locations-grid > * {
            flex: 0 0 calc((100% - 2rem) / 2);
        }
        @media (max-width: 700px) {
            .locations-grid > * { flex-basis: 100%; }
        }

        .location-card {
            background: var(--white);
            border-radius: var(--radius-lg);
            overflow: hidden;
            box-shadow: var(--shadow-md);
            transition: all 0.3s ease;
        }

        .location-card:hover {
            transform: translateY(-6px);
            box-shadow: var(--shadow-lg);
        }

        .location-card-img {
            height: 200px;
            overflow: hidden;
        }

        .location-card-img img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.5s ease;
        }

        .location-card:hover .location-card-img img {
            transform: scale(1.06);
        }

        .location-card-body {
            padding: 1.8rem;
        }

        .location-tag-pill {
            display: inline-block;
            background: rgba(217, 119, 70, 0.1);
            color: var(--camp-color);
            padding: 0.3rem 0.9rem;
            border-radius: 50px;
            font-size: 0.8rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            margin-bottom: 0.8rem;
        }

        .location-card-body h3 {
            font-size: 1.2rem;
            color: var(--primary-dark);
            margin-bottom: 0.8rem;
        }

        .location-detail {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 0.88rem;
            color: var(--text-muted);
            margin-bottom: 0.4rem;
        }

        /* CTA section */
        .cta-camp {
            padding: 6rem 0;
            background: var(--camp-gradient);
            text-align: center;
            position: relative;
            overflow: hidden;
        }

        .cta-camp::before {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: radial-gradient(circle at 30% 50%, rgba(255, 255, 255, 0.05), transparent 60%),
                radial-gradient(circle at 70% 50%, rgba(255, 255, 255, 0.03), transparent 60%);
        }

        .cta-camp .container {
            position: relative;
            z-index: 1;
        }

        .cta-camp h2 {
            color: var(--white);
            font-size: 2.5rem;
            margin-bottom: 1rem;
        }

        .cta-camp p {
            color: rgba(255, 255, 255, 0.85);
            font-size: 1.1rem;
            max-width: 550px;
            margin: 0 auto 2.5rem;
        }

        .cta-buttons {
            display: flex;
            gap: 1rem;
            justify-content: center;
            flex-wrap: wrap;
        }

        .btn-white {
            display: inline-block;
            background: var(--white);
            color: var(--camp-color);
            padding: 0.9rem 2rem;
            border-radius: 50px;
            font-weight: 700;
            font-size: 1rem;
            transition: all 0.3s ease;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
        }

        .btn-white:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
        }

        .btn-outline-white {
            display: inline-block;
            border: 2px solid rgba(255, 255, 255, 0.7);
            color: var(--white);
            padding: 0.85rem 2rem;
            border-radius: 50px;
            font-weight: 600;
            font-size: 1rem;
            transition: all 0.3s ease;
        }

        .btn-outline-white:hover {
            transform: translateY(-2px); background: rgba(255,255,255,0.15);
            border-color: var(--white);
        }

        /* Breadcrumb */
        .breadcrumb {
            padding: 0.8rem 0;
            font-size: 0.88rem;
            color: rgba(255, 255, 255, 0.65);
        }

        .breadcrumb a {
            color: rgba(255, 255, 255, 0.65);
        }

        .breadcrumb a:hover {
            color: var(--white);
        }

        .breadcrumb span {
            margin: 0 0.4rem;
        }

        @media (max-width: 768px) {
            .camp-hero h1 {
                font-size: 2.5rem;
            }

            .audience-grid {
                grid-template-columns: 1fr;
            }

            .pricing-wrapper {
                grid-template-columns: 1fr;
            }

            .cta-camp h2 {
                font-size: 1.8rem;
            }
        }
    
        /* ── Hero standard v2 ── */
        .camp-hero { min-height: 100vh; align-items: center; }
        .camp-hero-inner { text-align: center; max-width: 900px; }
        .camp-hero .hero-meta-pills { justify-content: center; }
        .camp-hero .hero-buttons { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
        .camp-hero .scroll-cue-std { position: absolute; bottom: 4.5rem; left: 50%; color: rgba(255, 255, 255, 0.7); font-size: 1.5rem; animation: cueBounceStd 2s infinite; }
        @keyframes cueBounceStd { 0%, 100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, 9px); } }