/* ===========================================================================
   /prazdnik/ — Order Animators landing
   Built on top of /musicals/css/app.css (reuses .modal, .korporat-field).
   Brand orange gradient kept for consistency with /musicals/.
   =========================================================================== */

.prazdnik {
    font-family: 'gotham', Helvetica, Arial, sans-serif;
    color: #2b1d0a;
    background: #fff;
}

.prazdnik .page { background-image: none; background-color: #fff; }

.prazdnik .container {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

/* ---------- Buttons -------------------------------------------------------- */
.prazdnik-btn {
    display: inline-block;
    border: 0;
    cursor: pointer;
    padding: 13px 36px;
    border-radius: 999px;
    background: linear-gradient(269.61deg, #ED5C13 0.38%, #F98325 94.3%);
    color: #fff;
    font-family: inherit;
    font-weight: 600;
    font-size: 16px;
    line-height: 1;
    letter-spacing: .02em;
    text-transform: uppercase;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
    box-shadow: 0 6px 18px rgba(237, 92, 19, .25);
}
.prazdnik-btn:hover  { transform: translateY(-2px); filter: brightness(1.05); color: #fff; text-decoration: none; }
.prazdnik-btn:active { transform: translateY(0); }
.prazdnik-btn--lg    { padding: 18px 48px; font-size: 18px; }
.prazdnik-btn--light {
    background: #fff;
    color: #ED5C13;
    box-shadow: 0 6px 22px rgba(0, 0, 0, .15);
}
.prazdnik-btn--outline {
    background: #fff;
    color: #ED5C13;
    box-shadow: none;
    border: 2px solid #ED5C13;
    padding: 11px 34px;
}
.prazdnik-btn--outline:hover { color: #ED5C13; background: #fff7f0; }

/* ---------- Section heading ----------------------------------------------- */
.prazdnik-section-head { margin: 60px 0 40px; }
.prazdnik-section-head--center { text-align: center; }
.prazdnik-section-head__title {
    font-family: 'gotham', Helvetica, Arial, sans-serif;
    font-weight: 600;
    font-size: 42px;
    line-height: 1.2;
    text-transform: uppercase;
    color: #5E4115;
    margin: 0 0 24px;
}
.prazdnik-section-head__text {
    max-width: 900px;
    font-size: 18px;
    line-height: 1.6;
    color: #3a2c14;
}
.prazdnik-section-head__text p { margin: 0 0 16px; }
.prazdnik-section-head--center .prazdnik-section-head__text { margin-left: auto; margin-right: auto; }

/* ---------- Hero ---------------------------------------------------------- */
.prazdnik-hero {
    position: relative;
    min-height: 560px;
    padding: 120px 0 80px;
    background-color: #3a1f0a;
    color: #fff;
    overflow: hidden;
}
/* Background slider — stacked layers crossfading one into another */
.prazdnik-hero__slider {
    position: absolute; inset: 0;
    z-index: 0;
}
.prazdnik-hero__slide {
    position: absolute; inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 2s ease-in-out;
    will-change: opacity;
}
.prazdnik-hero__slide.is-active {
    opacity: 1;
}
.prazdnik-hero__overlay {
    position: absolute; inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(0, 0, 0, .55) 0%, rgba(58, 31, 10, .80) 100%);
    pointer-events: none;
}
.prazdnik-hero .container { position: relative; z-index: 1; }
.prazdnik-hero__content { max-width: 820px; }
.prazdnik-hero__title {
    font-family: 'gotham', Helvetica, Arial, sans-serif;
    font-weight: 600;
    font-size: 56px;
    line-height: 1.1;
    text-transform: uppercase;
    margin: 0 0 28px;
    text-shadow: 0 4px 24px rgba(0, 0, 0, .75);
    color: #fff;
}
.prazdnik-hero__lead {
    font-size: 20px;
    line-height: 1.55;
    margin: 0 0 36px;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .6);
    max-width: 720px;
}

/* ---------- Cards grid (3 × 5) -------------------------------------------- */
.prazdnik-cards { padding: 80px 0; }
.prazdnik-cards__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 36px;
}
.prazdnik-card {
    background: #fff;
    border-radius: 30px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .10);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .2s ease, box-shadow .2s ease;
}
.prazdnik-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 32px rgba(0, 0, 0, .15);
}
.prazdnik-card__media {
    position: relative;
    aspect-ratio: 4 / 3;
    background: linear-gradient(135deg, #ffd9a8 0%, #f98325 100%);
    overflow: hidden;
}
.prazdnik-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.prazdnik-card__body {
    padding: 22px 24px 28px;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 18px;
}
.prazdnik-card__name {
    margin: 0;
    font-family: Helvetica, Arial, sans-serif;
    font-weight: 500;
    font-size: 22px;
    line-height: 1.25;
    color: #5E4115;
    flex: 1;
}
.prazdnik-card { cursor: pointer; }
.prazdnik-card__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}

/* ---------- Detail popup -------------------------------------------------- */
.modal-dialog--detail { max-width: 880px; width: 92%; }
.modal-dialog--detail .modal-body { padding: 0; }
.prazdnik-detail { padding: 34px 38px 40px; text-align: center; }
.prazdnik-detail__title {
    font-family: 'gotham', Helvetica, Arial, sans-serif;
    font-weight: 600;
    font-size: 30px;
    line-height: 1.2;
    text-transform: uppercase;
    color: #5E4115;
    margin: 0 0 24px;
}
.prazdnik-detail__hero {
    border-radius: 22px;
    overflow: hidden;
    margin: 0 0 22px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}
.prazdnik-detail__hero img {
    display: block;
    width: 100%;
    height: auto;
    cursor: zoom-in;
}
.prazdnik-detail__gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin: 0 0 26px;
}
.prazdnik-detail__thumb {
    padding: 0;
    border: 0;
    background: none;
    border-radius: 14px;
    overflow: hidden;
    cursor: zoom-in;
    aspect-ratio: 4 / 3;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .10);
    transition: transform .15s ease;
}
.prazdnik-detail__thumb:hover { transform: translateY(-2px); }
.prazdnik-detail__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.prazdnik-detail__text {
    font-family: Helvetica, Arial, sans-serif;
    font-size: 17px;
    line-height: 1.6;
    color: #3a2c14;
    text-align: left;
    margin: 0 0 28px;
}
.prazdnik-detail__text p { margin: 0 0 14px; }
/* Tame markup pasted from Word (everything tends to come in as <h3>, with
   hard-coded font-size/font-family inline styles) so it reads as body copy. */
.prazdnik-detail__text * {
    font-family: Helvetica, Arial, sans-serif !important;
    line-height: 1.6 !important;
}
.prazdnik-detail__text h1,
.prazdnik-detail__text h2,
.prazdnik-detail__text h3,
.prazdnik-detail__text h4 {
    font-size: 18px !important;
    font-weight: 600;
    color: #5E4115;
    margin: 18px 0 8px;
}
.prazdnik-detail__text h1:first-child,
.prazdnik-detail__text h2:first-child,
.prazdnik-detail__text h3:first-child { margin-top: 0; }
.prazdnik-detail__text span { font-size: inherit !important; }
.prazdnik-detail__cta { text-align: center; }

/* ---------- Feedback form extras ------------------------------------------ */
/* Multiline note — override the fixed 56px height of .korporat-field__input */
.korporat-field__textarea {
    height: auto !important;
    min-height: 84px;
    resize: vertical;
    line-height: 1.45 !important;
    font-family: inherit;
}
/* Locked "party name" field (prefilled from a card) */
.sys_party-input[readonly] {
    background: #f5f3ef;
    color: #6b5a3c;
    cursor: not-allowed;
    border-color: #d8d2c7;
}
/* readonly inputs are barred from :valid, so the base floating-label rule
   never fires — float it manually while the field is locked. */
.korporat-field.is-locked .korporat-field__label {
    transform: scale(.9);
    color: rgba(45, 56, 71, .55);
}

/* CAPTCHA */
.korporat-captcha { margin-bottom: 20px; }
.korporat-captcha__row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}
.korporat-captcha__img {
    display: block;
    height: 44px;
    width: auto;
    border-radius: 6px;
    border: 1px solid #c0c3c8;
    background: #fff;
}
.korporat-captcha__reload {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border: 1px solid #c0c3c8;
    border-radius: 6px;
    background: #fff no-repeat center / 20px 20px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ED5C13' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='23 4 23 10 17 10'/><polyline points='1 20 1 14 7 14'/><path d='M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15'/></svg>");
    cursor: pointer;
    transition: transform .15s ease, border-color .15s ease;
}
.korporat-captcha__reload:hover { border-color: #ED5C13; transform: rotate(-30deg); }
.korporat-captcha .korporat-field { margin-bottom: 0; }

/* ---------- Lightbox ------------------------------------------------------ */
.prazdnik-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .9);
    padding: 40px;
    cursor: zoom-out;
}
.prazdnik-lightbox.is-open { display: flex; }
.prazdnik-lightbox__img {
    max-width: 95vw;
    max-height: 90vh;
    border-radius: 8px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, .6);
    cursor: default;
}
.prazdnik-lightbox__close {
    position: absolute;
    top: 22px;
    right: 28px;
    width: 44px;
    height: 44px;
    border: 0;
    background: none;
    cursor: pointer;
}
.prazdnik-lightbox__close::before,
.prazdnik-lightbox__close::after {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    width: 30px;
    height: 3px;
    background: #fff;
    transform-origin: center;
}
.prazdnik-lightbox__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.prazdnik-lightbox__close::after  { transform: translate(-50%, -50%) rotate(-45deg); }

/* ---------- Services grid (cards from IBlock 25) -------------------------- */
.prazdnik-services {
    padding: 60px 0 100px;
    background: #fbf6ee;
}
/* Same card layout as .prazdnik-cards__grid; scoped separately so service
   cards can diverge from the announcement cards later if needed. */
.prazdnik-services__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 36px;
    margin-top: 40px;
}

.prazdnik-services__visual {
    margin: 60px auto 0;
    max-width: 1000px;
    border-radius: 30px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .12);
}
.prazdnik-services__visual img {
    display: block;
    width: 100%;
    height: auto;
}

/* ---------- Three steps --------------------------------------------------- */
.prazdnik-steps { padding: 80px 0; background: #fff; }
.prazdnik-steps__list {
    list-style: none;
    padding: 0;
    margin: 0 0 50px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    counter-reset: prazdnik-step;
}
.prazdnik-step {
    position: relative;
    text-align: center;
    padding: 20px 18px;
}
.prazdnik-step__num {
    width: 80px;
    height: 80px;
    margin: 0 auto 22px;
    border-radius: 50%;
    background: linear-gradient(269.61deg, #ED5C13 0.38%, #F98325 94.3%);
    color: #fff;
    font-family: 'gotham', Helvetica, Arial, sans-serif;
    font-size: 36px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 18px rgba(237, 92, 19, .35);
    position: relative;
    z-index: 1;
}
.prazdnik-step__text {
    font-family: Helvetica, Arial, sans-serif;
    font-size: 18px;
    line-height: 1.5;
    color: #3a2c14;
}
.prazdnik-step + .prazdnik-step::before {
    content: '';
    position: absolute;
    top: 60px;
    left: -15%;
    width: 30%;
    border-top: 3px dashed #F98325;
    z-index: 0;
}
.prazdnik-steps__cta { text-align: center; }

/* ---------- Trust block --------------------------------------------------- */
.prazdnik-trust {
    padding: 80px 0;
    background: #fbf6ee;
}
.prazdnik-trust__content {
    max-width: 980px;
    margin: 0 auto;
    font-size: 18px;
    line-height: 1.65;
    color: #3a2c14;
    text-align: center;
}
.prazdnik-trust__content p { margin: 0 0 18px; }
.prazdnik-trust__partners {
    list-style: none;
    padding: 0;
    margin: 30px 0 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 16px;
}
.prazdnik-trust__partners li {
    background: #fff;
    border-radius: 999px;
    padding: 10px 22px;
    font-size: 16px;
    color: #5E4115;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
    white-space: nowrap;
}

.prazdnik-trust__gallery {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-top: 50px;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}
.prazdnik-trust__gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 4 / 3;
    display: block;
    border-radius: 24px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}

/* ---------- Finale -------------------------------------------------------- */
.prazdnik-finale {
    padding: 80px 0;
    background: linear-gradient(269.61deg, #ED5C13 0.38%, #F98325 94.3%);
    color: #fff;
    text-align: center;
}
.prazdnik-finale__text {
    font-family: 'gotham', Helvetica, Arial, sans-serif;
    font-weight: 600;
    font-size: 36px;
    line-height: 1.25;
    text-transform: uppercase;
    margin: 0 0 36px;
    text-shadow: 0 3px 16px rgba(0, 0, 0, .25);
}

/* ---------- Responsive ---------------------------------------------------- */
@media (max-width: 1024px) {
    .prazdnik-cards__grid    { grid-template-columns: repeat(2, 1fr); gap: 28px; }
    .prazdnik-services__grid { grid-template-columns: repeat(2, 1fr); }
    .prazdnik-hero__title    { font-size: 44px; }
    .prazdnik-section-head__title { font-size: 34px; }
    .prazdnik-finale__text   { font-size: 28px; }
}

@media (max-width: 640px) {
    .prazdnik-hero {
        min-height: 0;
        padding: 60px 0 50px;
    }
    .prazdnik-hero__title { font-size: 30px; }
    .prazdnik-hero__lead  { font-size: 16px; }
    .prazdnik-cards       { padding: 50px 0; }
    .prazdnik-cards__grid { grid-template-columns: 1fr; gap: 20px; }
    .prazdnik-services    { padding: 50px 0 60px; }
    .prazdnik-services__grid { grid-template-columns: 1fr; gap: 20px; }
    .prazdnik-section-head__title { font-size: 26px; }
    .prazdnik-section-head { margin: 40px 0 24px; }
    .prazdnik-steps       { padding: 50px 0; }
    .prazdnik-steps__list { grid-template-columns: 1fr; gap: 18px; margin-bottom: 36px; }
    .prazdnik-step + .prazdnik-step::before { display: none; }
    .prazdnik-trust       { padding: 50px 0; }
    .prazdnik-trust__gallery { grid-template-columns: 1fr; gap: 16px; margin-top: 30px; }
    .prazdnik-services__visual { margin-top: 36px; border-radius: 18px; }
    .prazdnik-finale      { padding: 50px 0; }
    .prazdnik-finale__text { font-size: 22px; }
    .prazdnik-btn--lg     { padding: 14px 30px; font-size: 16px; }
    .prazdnik-detail      { padding: 26px 20px 32px; }
    .prazdnik-detail__title { font-size: 24px; }
    .prazdnik-detail__gallery { grid-template-columns: repeat(3, 1fr); gap: 8px; }
    .prazdnik-detail__text { font-size: 16px; }
    .prazdnik-lightbox    { padding: 16px; }
}