/* AquaVentura - campanie octombrie. Landing page izolat de site.
   Paleta: portocaliul si verdele din logo (brand-colors.css) + albastrul apei
   din grafica hero (LP.psb). Alb pe portocaliu nu trece contrastul, deci
   butoanele portocalii au text inchis. */

:root {
    /* Apa, din fundalul hero */
    --camp-cyan: #05B8E0;
    --camp-sea: #0293C2;
    --camp-deep: #016392;
    --camp-abyss: #013B57;
    --camp-foam: #EAF8FD;
    --camp-foam-line: #C9EDF8;

    /* Brand, din logo */
    --camp-orange: #F17631;
    --camp-orange-light: #F58B4E;
    --camp-orange-shadow: #B4531B;
    --camp-green: #356647;
    --camp-green-shadow: #1F4430;
    --camp-red: #F83A0A;
    --camp-sun: #FFCD72;

    /* Albastrul vechi ramane ca alias: il folosesc formularul si calendarul */
    --camp-blue: #016F9E;
    --camp-blue-dark: #015A82;
    --camp-yellow: var(--camp-sun);

    --camp-ink: #2A2725;
    --camp-ink-soft: #514D4B;
    --camp-bg: #FFFFFF;
    --camp-bg-alt: var(--camp-foam);
    --camp-line: rgba(1, 99, 146, 0.18);
    --camp-radius: 20px;

    --camp-display: "Barlow Condensed", "Barlow", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.camp-body {
    margin: 0;
    background: var(--camp-bg);
    color: var(--camp-ink);
    font-family: "Barlow", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 17px;
    line-height: 1.6;
}

.camp-body * {
    box-sizing: border-box;
}

.camp-wrap {
    width: 100%;
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 24px;
}

/* --- Antet ------------------------------------------------------------- */

.camp-header {
    position: sticky;
    top: 0;
    z-index: 40;
    /* Culorile marginii de sus a hero-ului, ca antetul sa continue in imagine. */
    background: linear-gradient(90deg, #026491 0%, #016C9A 10%, #038DB8 25%, #04A7D0 50%, #04AFDA 75%, #04ADD6 100%);
}

.camp-header__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    min-height: 108px;
}

.camp-logo img {
    display: block;
    height: 80px;
    width: auto;
}

.camp-logo--footer img {
    height: 44px;
}

.camp-header__right {
    display: flex;
    align-items: center;
    gap: 10px;
}

.camp-social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 2px solid var(--camp-foam-line);
    color: var(--camp-deep);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    text-transform: lowercase;
    transition: .18s;
}

.camp-social:hover {
    background: var(--camp-deep);
    border-color: var(--camp-deep);
    color: #fff;
}

/* --- Butoane ----------------------------------------------------------- */

/* Buton 3D: umbra plina dedesubt, se "apasa" la click. */
.camp-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 26px;
    border: 0;
    border-radius: 999px;
    background: var(--camp-orange);
    color: var(--camp-ink);
    font-family: inherit;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: .01em;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 5px 0 var(--camp-orange-shadow), 0 12px 22px rgba(1, 59, 87, .22);
    transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.camp-btn:hover {
    background: var(--camp-orange-light);
    color: var(--camp-ink);
    transform: translateY(-2px);
    box-shadow: 0 7px 0 var(--camp-orange-shadow), 0 16px 26px rgba(1, 59, 87, .26);
}

.camp-btn:active {
    transform: translateY(4px);
    box-shadow: 0 1px 0 var(--camp-orange-shadow), 0 4px 10px rgba(1, 59, 87, .2);
}

.camp-btn--verde {
    background: var(--camp-green);
    color: #FDFDFD;
    box-shadow: 0 5px 0 var(--camp-green-shadow), 0 12px 22px rgba(31, 68, 48, .28);
}

.camp-btn--verde:hover {
    background: #3E7652;
    color: #FDFDFD;
    box-shadow: 0 7px 0 var(--camp-green-shadow), 0 16px 26px rgba(31, 68, 48, .3);
}

.camp-btn--verde:active {
    box-shadow: 0 1px 0 var(--camp-green-shadow), 0 4px 10px rgba(31, 68, 48, .2);
}

.camp-btn--lg {
    padding: 18px 38px;
    font-size: 20px;
}

.camp-btn--sm {
    padding: 9px 18px;
    font-size: 15px;
}

.camp-btn[disabled] {
    opacity: .5;
    cursor: not-allowed;
    transform: none;
}

/* --- Hero -------------------------------------------------------------- */

/* Scena pastreaza raportul plansei (16:9 desktop, 9:16 mobil), iar tot ce e
   deasupra fundalului e pozitionat in procente din plansa si dimensionat in
   cqw, ca sa ramana unde l-a pus designerul la orice latime. */
.camp-hero {
    position: relative;
    overflow: hidden;
    background: var(--camp-deep);
}

.camp-hero__scena {
    position: relative;
    width: 100%;
    max-width: 2560px;
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    container-type: inline-size;
}

.camp-hero__fundal img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
}

.camp-hero img {
    display: block;
    width: 100%;
    height: auto;
}

.camp-body .camp-hero__titlu,
.camp-body .camp-hero__eticheta {
    margin: 0;
    padding: 0;
    line-height: 0;
}

.camp-hero__titlu,
.camp-hero__eticheta,
.camp-hero__s3,
.camp-hero__text {
    position: absolute;
    z-index: 1;
}

.camp-hero__titlu {
    left: 48.05%;
    top: 27.01%;
    width: 47.97%;
}

.camp-hero__eticheta {
    left: 6.64%;
    top: 68.82%;
    width: 37.38%;
    z-index: 2;
}

.camp-hero__s3 {
    left: 4.84%;
    top: 17.92%;
    width: 11.88%;
}

.camp-hero__text {
    right: 5.8%;
    top: 55.4%;
    width: 38%;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
    color: #fff;
    text-shadow: 0 1px 2px rgba(1, 59, 87, .35);
}

.camp-body .camp-hero__lead,
.camp-body .camp-hero__afla {
    margin: 0;
    color: #fff;
    font-size: max(13px, 1.8cqw);
    line-height: 1.28;
    font-weight: 400;
}

.camp-hero__lead span,
.camp-hero__lead > strong {
    display: block;
}

.camp-hero__lead strong,
.camp-hero__afla strong {
    font-weight: 700;
}

.camp-hero__gratuit {
    font-size: 1.22em;
    line-height: 1;
    letter-spacing: .01em;
}

.camp-body .camp-hero__afla {
    margin-top: .9cqw;
}

.camp-body .camp-hero__cta {
    margin-top: 1.5cqw;
    padding: .8cqw 2.1cqw;
    font-size: max(14px, 1.45cqw);
    text-shadow: none;
    box-shadow: 0 .32cqw 0 var(--camp-orange-shadow), 0 .8cqw 1.6cqw rgba(1, 40, 60, .3);
}

.camp-body .camp-hero__cta:hover {
    box-shadow: 0 .45cqw 0 var(--camp-orange-shadow), 0 1cqw 2cqw rgba(1, 40, 60, .34);
}

.camp-body .camp-hero__cta:active {
    box-shadow: 0 .08cqw 0 var(--camp-orange-shadow), 0 .3cqw .8cqw rgba(1, 40, 60, .3);
}

.camp-body .camp-hero__termeni {
    margin-top: 1.3cqw;
    color: #fff;
    font-size: max(12px, 1.27cqw);
    line-height: 1.3;
    text-decoration: none;
}

.camp-body .camp-hero__termeni:hover {
    color: #fff;
    text-decoration: underline;
}

.camp-hero a:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
}

@media (max-width: 767px) {
    .camp-hero__scena {
        aspect-ratio: 9 / 16;
    }

    .camp-hero__titlu {
        left: 4.91%;
        top: 45.6%;
        width: 93.15%;
    }

    .camp-hero__eticheta {
        left: 9.07%;
        top: 82.4%;
        width: 81.86%;
    }

    .camp-hero__s3 {
        left: 70.56%;
        top: 4.64%;
        width: 23.05%;
    }

    /* Pe mobil blocul ocupa toata banda de jos, iar eticheta intra intre
       buton si linkul spre termeni, ca in plansa. */
    .camp-hero__text {
        left: 6%;
        right: 6%;
        top: 61%;
        bottom: 2.6%;
        width: auto;
        align-items: center;
        text-align: center;
    }

    .camp-body .camp-hero__lead,
    .camp-body .camp-hero__afla {
        font-size: 3.75cqw;
    }

    .camp-body .camp-hero__afla {
        margin-top: 1.6cqw;
    }

    .camp-body .camp-hero__cta {
        margin-top: 3.6cqw;
        padding: 2.6cqw 6.5cqw;
        font-size: 4.4cqw;
        box-shadow: 0 1cqw 0 var(--camp-orange-shadow), 0 2.4cqw 4cqw rgba(1, 40, 60, .3);
    }

    .camp-body .camp-hero__cta:hover {
        box-shadow: 0 1.3cqw 0 var(--camp-orange-shadow), 0 3cqw 5cqw rgba(1, 40, 60, .34);
    }

    .camp-body .camp-hero__cta:active {
        box-shadow: 0 .2cqw 0 var(--camp-orange-shadow), 0 1cqw 2cqw rgba(1, 40, 60, .3);
    }

    .camp-body .camp-hero__termeni {
        margin-top: auto;
        font-size: 3.1cqw;
    }
}

/* --- Secțiuni ---------------------------------------------------------- */

.camp-section {
    position: relative;
    padding: 88px 0;
}

.camp-section--alt,
.camp-section--spuma {
    background: var(--camp-foam);
}

.camp-body .camp-h2 {
    margin: 0 0 8px;
    font-family: var(--camp-display);
    font-size: clamp(38px, 5vw, 60px);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -.005em;
    text-transform: uppercase;
    text-wrap: balance;
    color: var(--camp-abyss);
}

/* Panglica inclinata, ca cea din titlul si eticheta designului. */
.camp-ribbon {
    display: inline-block;
    padding: 0 .28em .04em;
    background: var(--camp-orange);
    color: var(--camp-ink);
    transform: rotate(-2.5deg) skewX(-8deg);
    border-radius: 4px;
    box-shadow: .08em .08em 0 var(--camp-orange-shadow);
}

.camp-sub {
    margin: 0 0 32px;
    color: var(--camp-ink-soft);
}

.camp-lead {
    margin: 0 0 28px;
    max-width: 54ch;
    font-size: 19px;
    color: var(--camp-ink-soft);
}

.camp-eyebrow {
    display: inline-block;
    margin: 0 0 18px;
    padding: 6px 14px;
    border-radius: 999px;
    background: var(--camp-sun);
    color: var(--camp-ink);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.camp-h2+.camp-steps,
.camp-h2+.camp-cards,
.camp-h2+.camp-faq {
    margin-top: 44px;
}

/* --- Pași -------------------------------------------------------------- */

.camp-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}

.camp-steps li {
    position: relative;
    margin: 0;
    padding: 34px 28px 30px;
    border: 3px solid var(--camp-foam-line);
    border-radius: var(--camp-radius);
    background: #fff;
    box-shadow: 0 8px 0 var(--camp-foam-line);
}

.camp-steps__n {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 18px;
    border-radius: 50%;
    background: var(--camp-orange);
    color: var(--camp-ink);
    font-family: var(--camp-display);
    font-size: 32px;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 4px 0 var(--camp-orange-shadow);
}

.camp-steps li:nth-child(2) .camp-steps__n {
    background: var(--camp-cyan);
    box-shadow: 0 4px 0 var(--camp-deep);
}

.camp-steps li:nth-child(3) .camp-steps__n {
    background: var(--camp-green);
    color: #FDFDFD;
    box-shadow: 0 4px 0 var(--camp-green-shadow);
}

.camp-body .camp-steps h3,
.camp-body .camp-card h3 {
    margin: 0 0 8px;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: none;
    color: var(--camp-abyss);
}

.camp-nowrap {
    white-space: nowrap;
}

.camp-steps p,
.camp-card p {
    margin: 0;
    color: var(--camp-ink-soft);
}

/* --- Secțiunea „apă”: valuri sus și jos ------------------------------- */

.camp-section--apa {
    padding: 128px 0 136px;
    background:
        radial-gradient(circle at 8% 22%, rgba(255, 255, 255, .16) 0 18px, transparent 19px),
        radial-gradient(circle at 12% 30%, rgba(255, 255, 255, .12) 0 9px, transparent 10px),
        radial-gradient(circle at 91% 64%, rgba(255, 255, 255, .14) 0 26px, transparent 27px),
        radial-gradient(circle at 86% 74%, rgba(255, 255, 255, .1) 0 11px, transparent 12px),
        linear-gradient(180deg, var(--camp-sea) 0%, var(--camp-deep) 100%);
}

.camp-section--apa::before,
.camp-section--apa::after,
.camp-cta::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 56px;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    pointer-events: none;
}

.camp-section--apa::before {
    top: -1px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 56' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1440v22c-120 22-240 30-360 18S840 4 720 14 480 50 360 46 120 20 0 30z' fill='%23fff'/%3E%3C/svg%3E");
}

.camp-section--apa::after,
.camp-cta::after {
    bottom: -1px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 56' preserveAspectRatio='none'%3E%3Cpath d='M0 56h1440V26c-120-20-240-26-360-14S840 50 720 42 480 8 360 10 120 36 0 28z' fill='%23F17631'/%3E%3C/svg%3E");
}

.camp-body .camp-section--apa .camp-h2 {
    color: #fff;
    text-shadow: 0 3px 0 rgba(1, 40, 60, .25);
}

/* --- Carduri ----------------------------------------------------------- */

.camp-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}

.camp-card {
    padding: 30px 28px;
    border-radius: var(--camp-radius);
    background: #fff;
    box-shadow: 0 10px 0 rgba(1, 40, 60, .28);
}

.camp-card--vip {
    outline: 4px solid var(--camp-orange);
    outline-offset: -4px;
}

.camp-card__tag {
    display: inline-block;
    margin: 0 0 16px;
    padding: 5px 14px;
    border-radius: 999px;
    background: var(--camp-orange);
    color: var(--camp-ink);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.camp-body .camp-card p.camp-card__tag {
    color: var(--camp-ink);
}

.camp-body .camp-card--copil p.camp-card__tag {
    background: var(--camp-cyan);
    color: var(--camp-abyss);
}

.camp-body .camp-card--qr p.camp-card__tag {
    background: var(--camp-green);
    color: #FDFDFD;
}

/* --- Formular ---------------------------------------------------------- */

.camp-booking {
    padding-bottom: 88px;
}

.camp-form {
    margin-top: 28px;
    display: grid;
    gap: 28px;
}

.camp-step {
    margin: 0;
    padding: 28px;
    border: 1px solid var(--camp-line);
    border-radius: var(--camp-radius);
    background: #fff;
}

.camp-step legend {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 8px;
    font-size: 21px;
    font-weight: 700;
}

.camp-step__n {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--camp-blue);
    color: #fff;
    font-size: 15px;
    font-weight: 800;
}

/* Calendar */

.camp-cal {
    margin-top: 20px;
    max-width: 460px;
}

.camp-cal__head,
.camp-cal__grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 6px;
}

.camp-cal__head span {
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--camp-ink-soft);
    padding-bottom: 6px;
}

.camp-cal__day {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--camp-line);
    border-radius: 10px;
    background: #fff;
    color: var(--camp-ink);
    font-family: inherit;
    font-size: 16px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    cursor: pointer;
    transition: .14s;
}

.camp-cal__day.is-weekend {
    background: #FFF8E8;
}

.camp-cal__day:hover:not([disabled]) {
    border-color: var(--camp-blue);
    color: var(--camp-blue);
}

.camp-cal__day.is-selected {
    background: var(--camp-blue);
    border-color: var(--camp-blue);
    color: #fff;
}

.camp-cal__day[disabled] {
    opacity: .35;
    cursor: not-allowed;
}

.camp-cal__note {
    margin: 12px 0 0;
    font-size: 14px;
    color: var(--camp-ink-soft);
}

/* Contoare */

.camp-counters {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.camp-counter {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    border: 1px solid var(--camp-line);
    border-radius: var(--camp-radius);
}

.camp-counter__label strong {
    display: block;
    font-size: 18px;
}

.camp-counter__label span {
    font-size: 14px;
    color: var(--camp-ink-soft);
}

.camp-counter__ctrl {
    display: flex;
    align-items: center;
    gap: 8px;
}

.camp-counter__btn {
    width: 38px;
    height: 38px;
    border: 1px solid var(--camp-line);
    border-radius: 50%;
    background: #fff;
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    color: var(--camp-ink);
    cursor: pointer;
    transition: .14s;
}

.camp-counter__btn:hover {
    border-color: var(--camp-blue);
    color: var(--camp-blue);
}

.camp-counter__val {
    min-width: 32px;
    text-align: center;
    font-size: 20px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* Câmpuri */

.camp-fields {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.camp-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.camp-field--full {
    grid-column: 1 / -1;
    max-width: 50%;
}

.camp-field>span {
    font-size: 14px;
    font-weight: 600;
}

.camp-body .camp-field input,
.camp-body .camp-field select {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--camp-line);
    border-radius: 10px;
    background: #fff;
    font-family: inherit;
    font-size: 16px;
    color: var(--camp-ink);
}

.camp-body .camp-field input:focus,
.camp-body .camp-field select:focus,
.camp-cal__day:focus-visible,
.camp-btn:focus-visible,
.camp-faq summary:focus-visible {
    outline: 3px solid var(--camp-abyss);
    outline-offset: 3px;
    border-color: var(--camp-blue);
}

.camp-field.has-error input {
    border-color: #D24B64;
}

.camp-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 20px;
    font-size: 15px;
    color: var(--camp-ink-soft);
}

.camp-check input {
    margin-top: 4px;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.camp-check a {
    color: var(--camp-blue);
}

/* Trimitere */

.camp-submit {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
}

.camp-summary {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
}

.camp-error {
    display: none;
    margin: 10px 0 0;
    color: #C0374F;
    font-size: 14px;
    font-style: normal;
}

.camp-error.is-on {
    display: block;
}

.camp-error--general {
    font-size: 16px;
}

/* Confirmare */

.camp-done {
    margin-top: 28px;
    padding: 40px 28px;
    border: 1px solid var(--camp-blue);
    border-radius: var(--camp-radius);
    background: #fff;
    text-align: center;
}

.camp-done__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin: 0 0 16px;
    border-radius: 50%;
    background: var(--camp-blue);
    color: #fff;
    font-size: 28px;
}

.camp-done h3 {
    margin: 0 0 10px;
    font-size: 26px;
    font-weight: 800;
}

.camp-done__text {
    margin: 0 auto;
    max-width: 52ch;
    color: var(--camp-ink-soft);
}

/* --- Chemare la rezervare ---------------------------------------------- */

.camp-cta {
    padding: 96px 0 120px;
    background:
        radial-gradient(120% 90% at 50% 0%, rgba(255, 205, 114, .55) 0%, rgba(255, 205, 114, 0) 60%),
        var(--camp-orange);
}

.camp-cta::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 56' preserveAspectRatio='none'%3E%3Cpath d='M0 56h1440V30c-120 18-240 22-360 10S840 2 720 10 480 44 360 44 120 18 0 26z' fill='%23EAF8FD'/%3E%3C/svg%3E");
}

.camp-cta__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
}

.camp-body .camp-cta .camp-h2 {
    color: var(--camp-ink);
    font-size: clamp(44px, 6.4vw, 76px);
}

.camp-body .camp-cta .camp-lead {
    margin-bottom: 26px;
    color: var(--camp-ink);
}

.camp-body .camp-cta__note {
    margin: 22px 0 0;
    font-size: 15px;
    color: var(--camp-ink);
}

.camp-body .camp-cta__note a {
    color: var(--camp-ink);
    font-weight: 700;
}

/* --- Întrebări --------------------------------------------------------- */

.camp-faq {
    display: grid;
    gap: 14px;
    max-width: 800px;
}

.camp-faq details {
    border: 3px solid var(--camp-foam-line);
    border-radius: var(--camp-radius);
    background: #fff;
    padding: 2px 22px;
    box-shadow: 0 5px 0 var(--camp-foam-line);
}

.camp-faq summary {
    position: relative;
    padding: 18px 44px 18px 0;
    font-size: 19px;
    font-weight: 700;
    color: var(--camp-abyss);
    cursor: pointer;
    list-style: none;
}

.camp-faq summary::-webkit-details-marker {
    display: none;
}

.camp-faq summary::after {
    content: "+";
    position: absolute;
    right: 0;
    top: 50%;
    width: 32px;
    height: 32px;
    margin-top: -16px;
    border-radius: 50%;
    background: var(--camp-orange);
    color: var(--camp-ink);
    font-size: 24px;
    font-weight: 700;
    line-height: 31px;
    text-align: center;
    transition: transform .2s ease;
}

.camp-faq details[open] {
    border-color: var(--camp-cyan);
    box-shadow: 0 5px 0 var(--camp-cyan);
}

.camp-faq details[open] summary {
    color: var(--camp-deep);
}

.camp-faq details[open] summary::after {
    transform: rotate(45deg);
}

.camp-faq p {
    margin: 0 0 20px;
    color: var(--camp-ink-soft);
}

/* --- Subsol ------------------------------------------------------------ */

.camp-footer {
    padding: 52px 0 40px;
    background: var(--camp-abyss);
    color: #fff;
}

.camp-footer__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px 32px;
}

.camp-footer__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
}

.camp-footer__nav a {
    color: rgba(255, 255, 255, .85);
    font-size: 15px;
    text-decoration: none;
}

.camp-footer__nav a:hover {
    color: #fff;
    text-decoration: underline;
}

.camp-footer__harta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    padding: 9px 16px;
    border-radius: 999px;
    border: 2px solid rgba(255, 255, 255, .3);
    color: rgba(255, 255, 255, .9);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: .18s;
}

.camp-footer__harta:hover {
    background: var(--camp-orange);
    border-color: var(--camp-orange);
    color: var(--camp-ink);
}

.camp-footer__copy {
    width: 100%;
    margin: 0;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, .16);
    font-size: 14px;
    color: rgba(255, 255, 255, .65);
}

/* --- Mișcare (doar pentru cine n-a cerut mișcare redusă) --------------- */

@media (prefers-reduced-motion: no-preference) {
    .camp-hero__titlu {
        animation: camp-intra-dreapta .7s cubic-bezier(.2, .9, .3, 1.2) both;
    }

    .camp-hero__eticheta {
        animation: camp-pop .6s .35s cubic-bezier(.2, .9, .3, 1.4) both;
    }

    .camp-hero__text {
        animation: camp-urca .6s .2s ease-out both;
    }

    .camp-ribbon {
        transition: transform .2s ease;
    }

    .camp-h2:hover .camp-ribbon {
        transform: rotate(-4deg) skewX(-8deg) scale(1.04);
    }

    .camp-steps li,
    .camp-card {
        transition: transform .2s ease;
    }

    .camp-steps li:hover,
    .camp-card:hover {
        transform: translateY(-4px);
    }
}

@keyframes camp-intra-dreapta {
    from {
        opacity: 0;
        transform: translateX(6%);
    }
}

@keyframes camp-pop {
    from {
        opacity: 0;
        transform: scale(.7) rotate(-6deg);
    }
}

@keyframes camp-urca {
    from {
        opacity: 0;
        transform: translateY(12%);
    }
}

/* --- Ecrane mici ------------------------------------------------------- */

@media (max-width: 900px) {

    .camp-steps,
    .camp-cards,
    .camp-counters,
    .camp-fields {
        grid-template-columns: 1fr;
    }

    .camp-field--full {
        max-width: none;
    }
}

@media (max-width: 600px) {

    .camp-section {
        padding: 60px 0;
    }

    .camp-section--apa {
        padding: 96px 0 104px;
    }

    .camp-cta {
        padding: 64px 0 96px;
    }

    .camp-step {
        padding: 20px 16px;
    }

    .camp-steps li,
    .camp-card {
        padding: 26px 22px;
    }

    .camp-header {
        background: linear-gradient(90deg, #05A2CD 0%, #06B3DE 25%, #04C0E5 50%, #06BAE2 100%);
    }

    .camp-header__inner {
        min-height: 88px;
    }

    .camp-header .camp-logo img {
        height: 64px;
    }

    .camp-section--apa::before,
    .camp-section--apa::after,
    .camp-cta::after {
        height: 32px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .camp-body * {
        transition: none !important;
        animation: none !important;
    }
}

/* --- Modul campanie peste paginile existente --------------------------- */

.camp-mode #page-wrapper {
    padding-top: 0;
}

.camp-mode .camp-header,
.camp-mode .camp-footer {
    font-family: "Barlow", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Selectul de sursa din checkout: tema foloseste eticheta plutitoare, iar
   optiunea goala se suprapunea peste ea. */
.camp-mode #aqua_camp_sursa_field label {
    position: static;
    display: block;
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: 600;
    transform: none;
}

.camp-mode #aqua_camp_sursa_field select {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid var(--camp-line);
    border-radius: 10px;
    background: #fff;
    font-family: inherit;
    font-size: 16px;
}

/* Zi fara bilete de campanie: nu se mai poate alege. */
.camp-mode .day.camp-epuizat {
    opacity: .38;
    pointer-events: none;
    cursor: not-allowed;
    filter: grayscale(1);
}

/* --- Ce te așteaptă în parc + Cum ajungi (22.09) ----------------------- */

/* Sectiunea "apa" e urmata acum de o sectiune alba, nu de CTA-ul portocaliu. */
.camp-section--apa.camp-section--spre-alb::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 56' preserveAspectRatio='none'%3E%3Cpath d='M0 56h1440V26c-120-20-240-26-360-14S840 50 720 42 480 8 360 10 120 36 0 28z' fill='%23fff'/%3E%3C/svg%3E");
}

/* CTA-ul vine dupa o sectiune alba: primeste val alb sus. */
.camp-cta--val-sus::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -1px;
    height: 56px;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 56' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1440v22c-120 22-240 30-360 18S840 4 720 14 480 50 360 46 120 20 0 30z' fill='%23fff'/%3E%3C/svg%3E");
}

.camp-atractii,
.camp-acces {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}

.camp-atractie,
.camp-acces__card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 3px solid var(--camp-foam-line);
    border-radius: var(--camp-radius);
    background: #fff;
    box-shadow: 0 8px 0 var(--camp-foam-line);
}

.camp-atractie__foto,
.camp-acces__foto {
    aspect-ratio: 3 / 2;
    background: var(--camp-foam);
}

.camp-atractie__foto img,
.camp-acces__foto img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
}

.camp-atractie__text,
.camp-acces__text {
    padding: 22px 24px 26px;
}

.camp-body .camp-atractie h3,
.camp-body .camp-acces__card h3 {
    margin: 0 0 8px;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: none;
    color: var(--camp-abyss);
}

.camp-atractie p,
.camp-acces__card p {
    margin: 0;
    color: var(--camp-ink-soft);
}

.camp-body .camp-atractie p.camp-card__tag {
    margin-bottom: 12px;
    color: var(--camp-ink);
}

.camp-body .camp-atractie:nth-child(3n+2) p.camp-card__tag {
    background: var(--camp-cyan);
    color: var(--camp-abyss);
}

.camp-body .camp-atractie:nth-child(3n+3) p.camp-card__tag {
    background: var(--camp-green);
    color: #FDFDFD;
}

/* Confort si siguranta: lista scurta sub atractii, cu iconitele site-ului. */
.camp-body .camp-atractii__nota {
    margin: 26px auto 0;
    max-width: 720px;
    padding: 12px 18px;
    border-radius: 14px;
    background: var(--camp-foam);
    border: 2px dashed var(--camp-foam-line);
    color: var(--camp-ink-soft);
    font-size: 15px;
    line-height: 1.5;
    text-align: center;
}

.camp-confort {
    list-style: none;
    margin: 40px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.camp-confort li {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 14px 16px;
    border-radius: 14px;
    background: var(--camp-foam);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--camp-abyss);
}

.camp-confort img {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
}

/* Cum ajungi */
.camp-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 14px 0 0;
}

.camp-tag {
    display: inline-block;
    padding: 4px 11px;
    border: 2px solid var(--camp-foam-line);
    border-radius: 999px;
    background: var(--camp-foam);
    color: var(--camp-abyss);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .04em;
    font-variant-numeric: tabular-nums;
}

.camp-tag--metrou {
    background: var(--camp-sun);
    border-color: var(--camp-sun);
    color: var(--camp-ink);
}

.camp-tag--adresa {
    background: var(--camp-orange);
    border-color: var(--camp-orange);
    color: var(--camp-ink);
}

.camp-acces__text a {
    color: var(--camp-deep);
    font-weight: 700;
}

.camp-body .camp-acces__sfat {
    margin: 16px 0 0;
    padding: 10px 14px;
    border-left: 4px solid var(--camp-cyan);
    border-radius: 0 10px 10px 0;
    background: var(--camp-foam);
    font-size: 14px;
    color: var(--camp-ink-soft);
}

.camp-body .camp-acces__harta {
    margin: 36px 0 0;
    text-align: center;
}

@media (prefers-reduced-motion: no-preference) {

    .camp-atractie,
    .camp-acces__card {
        transition: transform .2s ease;
    }

    .camp-atractie:hover,
    .camp-acces__card:hover {
        transform: translateY(-4px);
    }
}

@media (max-width: 900px) {

    .camp-atractii,
    .camp-acces,
    .camp-confort {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {

    .camp-atractii,
    .camp-acces,
    .camp-confort {
        grid-template-columns: 1fr;
    }

    .camp-atractie__text,
    .camp-acces__text {
        padding: 18px 18px 22px;
    }

    .camp-cta--val-sus::before {
        height: 32px;
    }
}

/* --- Antet cu meniu + contact (22.09) ---------------------------------- */

:root {
    --camp-header-h: 108px;
}

/* Ancorele din meniu se opresc sub antetul lipicios, nu sub el. */
.camp-body .camp-section {
    scroll-margin-top: var(--camp-header-h);
}

@media (prefers-reduced-motion: no-preference) {
    html:has(.camp-body) {
        scroll-behavior: smooth;
    }
}

.camp-header__inner {
    justify-content: space-between;
    gap: 24px;
}

.camp-header .camp-logo {
    display: block;
    flex: 0 0 auto;
}

.camp-nav {
    display: flex;
    align-items: center;
    gap: 28px;
}

.camp-nav__link {
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .01em;
    text-decoration: none;
    padding: 6px 0;
    border-bottom: 2px solid transparent;
    transition: border-color .15s ease;
}

.camp-nav__link:hover,
.camp-nav__link:focus-visible {
    color: #fff;
    border-bottom-color: var(--camp-sun);
}

.camp-nav__link:focus-visible,
.camp-burger:focus-visible {
    outline: 3px solid var(--camp-sun);
    outline-offset: 3px;
}

.camp-body .camp-nav__cta {
    margin-left: 8px;
}

.camp-burger {
    display: none;
    width: 48px;
    height: 48px;
    padding: 10px;
    border: 0;
    border-radius: 12px;
    background: rgba(255, 255, 255, .14);
    cursor: pointer;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
}

.camp-burger__bar {
    display: block;
    width: 24px;
    height: 3px;
    margin: 0 auto;
    border-radius: 2px;
    background: #fff;
    transition: transform .2s ease, opacity .2s ease;
}

.camp-header.is-open .camp-burger__bar:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.camp-header.is-open .camp-burger__bar:nth-child(2) {
    opacity: 0;
}

.camp-header.is-open .camp-burger__bar:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

@media (max-width: 859px) {
    .camp-burger {
        display: flex;
    }

    .camp-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 6px 24px 22px;
        background: var(--camp-deep);
        box-shadow: 0 16px 28px rgba(1, 59, 87, .3);
    }

    .camp-header.is-open .camp-nav {
        display: flex;
    }

    .camp-nav__link {
        padding: 15px 0;
        font-size: 18px;
        border-bottom: 1px solid rgba(255, 255, 255, .14);
    }

    .camp-nav__link:hover,
    .camp-nav__link:focus-visible {
        border-bottom-color: var(--camp-sun);
    }

    .camp-body .camp-nav__cta {
        margin: 18px 0 0;
        text-align: center;
    }
}

@media (max-width: 600px) {
    :root {
        --camp-header-h: 88px;
    }
}

/* Contact */

.camp-contact__grid {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 48px;
    align-items: start;
}

.camp-contact__date {
    margin: 8px 0 0;
    display: grid;
    gap: 18px;
}

.camp-contact__date div {
    padding-left: 16px;
    border-left: 4px solid var(--camp-orange);
}

.camp-contact__date dt {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--camp-deep);
}

.camp-contact__date dd {
    margin: 2px 0 0;
    color: var(--camp-ink-soft);
}

.camp-contact__date a {
    color: var(--camp-abyss);
    font-weight: 600;
}

.camp-contact__form {
    padding: 32px;
    border-radius: var(--camp-radius);
    background: #fff;
    box-shadow: 0 18px 40px rgba(1, 59, 87, .12);
}

.camp-contact__fields {
    margin-top: 0;
}

.camp-contact .camp-field--wide {
    grid-column: 1 / -1;
}

.camp-contact .camp-field small {
    font-weight: 400;
    color: var(--camp-ink-soft);
}

.camp-body .camp-contact textarea {
    width: 100%;
    min-height: 140px;
    padding: 12px 14px;
    border: 1px solid var(--camp-line);
    border-radius: 10px;
    background: #fff;
    font-family: inherit;
    font-size: 16px;
    line-height: 1.5;
    color: var(--camp-ink);
    resize: vertical;
}

.camp-body .camp-contact textarea:focus {
    outline: 3px solid var(--camp-abyss);
    outline-offset: 3px;
    border-color: var(--camp-blue);
}

.camp-contact .camp-field.has-error textarea {
    border-color: #D24B64;
}

.camp-contact .camp-error.is-visible {
    display: block;
}

.camp-contact .camp-check.has-error {
    color: #C0374F;
}

.camp-contact__submit {
    margin-top: 24px;
}

.camp-contact__stare {
    margin: 0 0 20px;
    padding: 14px 16px;
    border-radius: 12px;
    font-weight: 600;
}

.camp-contact__stare--ok {
    background: #E6F4EA;
    color: var(--camp-green-shadow);
}

.camp-contact__stare--nu {
    background: #FDECEF;
    color: #A52A40;
}

/* Honeypot: in afara ecranului, nu display:none (unii roboti sar peste el). */
.camp-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
    margin: 0;
}

@media (max-width: 900px) {
    .camp-contact__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}

@media (max-width: 600px) {
    .camp-contact__form {
        padding: 22px 18px 26px;
    }
}


/* --- Ce te asteapta, fara fotografii (cerere client 23.09.2026) ----------
   Casetele preiau designul cardurilor din "Ce intra in bilet": alb, umbra
   plina, fara chenar deschis, cu o dunga colorata sus in locul fotografiei. */

.camp-atractii--text .camp-atractie {
    position: relative;
    border: 0;
    box-shadow: 0 10px 0 rgba(1, 40, 60, .28);
}

.camp-atractii--text .camp-atractie::before {
    content: "";
    display: block;
    height: 10px;
    background: var(--camp-orange);
}

.camp-atractii--text .camp-atractie:nth-child(3n+2)::before {
    background: var(--camp-cyan);
}

.camp-atractii--text .camp-atractie:nth-child(3n+3)::before {
    background: var(--camp-green);
}

.camp-atractii--text .camp-atractie__text {
    padding: 26px 28px 30px;
}

@media (max-width: 600px) {

    .camp-atractii--text .camp-atractie__text {
        padding: 20px 20px 24px;
    }
}


/* --- Pagini de text in designul campaniei (regulamente) ----------------- */

.camp-text {
    max-width: 820px;
    margin: 0 auto;
    padding: 40px 0 60px;
}

.camp-body .camp-text__h1 {
    margin: 0 0 8px;
    font-family: var(--camp-display);
    font-size: clamp(30px, 5vw, 46px);
    font-weight: 800;
    line-height: 1.05;
    text-transform: uppercase;
    color: var(--camp-abyss);
}

.camp-text__sub {
    margin: 0 0 28px;
    color: var(--camp-ink-soft);
    font-size: 16px;
}

.camp-text__body {
    padding: 30px 32px;
    border-radius: var(--camp-radius);
    background: #fff;
    box-shadow: 0 10px 0 rgba(1, 40, 60, .28);
    color: var(--camp-ink);
    font-size: 16px;
    line-height: 1.6;
}

.camp-body .camp-text__body h2,
.camp-body .camp-text__body h3 {
    margin: 28px 0 10px;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.25;
    text-transform: none;
    color: var(--camp-deep);
}

.camp-body .camp-text__body h2:first-child,
.camp-body .camp-text__body h3:first-child,
.camp-body .camp-text__body p:first-child {
    margin-top: 0;
}

.camp-text__body p {
    margin: 0 0 12px;
    text-align: justify;
}

.camp-text__body ol,
.camp-text__body ul {
    margin: 0 0 14px;
    padding-left: 26px;
}

.camp-text__body li {
    margin: 0 0 6px;
    text-align: justify;
}

.camp-text__body li > ol,
.camp-text__body li > ul {
    margin-top: 6px;
}

.camp-text__body a {
    color: var(--camp-deep);
    text-decoration: underline;
}

.camp-text__back {
    margin-top: 26px;
}

@media (max-width: 600px) {

    .camp-text {
        padding: 24px 0 40px;
    }

    .camp-text__body {
        padding: 20px 18px;
        font-size: 15px;
    }
}
