/* ==========================================================================
   COVER BLOCK
   ========================================================================== */


.cover-block {
    position: relative;
    display: flex;
    flex-direction: column; /* Выстраиваем элементы в столбик */
    align-items: center;    /* Центрируем всё по горизонтали */
    /*justify-content: center;*/ /* Центрируем всё по вертикали (если нужно) */
    text-align: center;
    color: #fff;            /* Цвет текста для контраста */
    min-height: 630px;      /* Настройте высоту под ваши нужды */
    overflow: hidden;
    border-radius: 30px;
    max-width: 1920px;
    margin: 0 auto;
}

.paragraph--type--gallery {
    max-width: 1920px;
    margin: 0 auto;
}

/* Фоновое изображение */
.cover-block .image-style-header-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;     /* Картинка заполняет блок, не растягиваясь */
    z-index: 1;            /* Уходит на задний план */
}

/* Контент поверх фона */
.cover-block .logo-img, 
.cover-block .header, 
.cover-block .field--name-field-text-date {
    position: relative;    /* Чтобы z-index сработал */
    z-index: 2;            /* Поднимаем над фоном */
    max-width: 90%;        /* Чтобы не прилипало к краям на мобильных */
}

.cover-block .logo-img {
    margin-top: 30px;      /* Отступ сверху */
    margin-bottom: 30px;   /* Отступ до текста */
    height: auto;
    max-width: 370px;
    width: 70%;
}

/* Стили для текста и даты */
.cover-block .header {
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 10px;
}

.cover-block .header {
    background: #fff;
    border-radius: 30px;
    padding: 30px 35px;
    max-width: 570px;
    width: 70%;
    box-sizing: border-box;
    text-transform: uppercase;
    color: rgb(47,47,47);
    font-size: 28px;
    line-height: 100%;
    letter-spacing: 0.08em;
    text-align: center;
    font-weight: 400;
    margin-bottom: 30px;
}

@media (min-width: 1200px) {
    .cover-block .header {
        font-size: 40px;
    }
}


.cover-block .header p {
    margin: 0;
}

.cover-block .field--name-field-text-date {
    background: rgba(255, 180, 104, 1);
    color: #fff;
    font-size: 28px;
    padding: 16px 38px;
    color: rgb(47,47,47);
    text-transform: uppercase;
    font-weight: 400;
    font-size: 28px;
    border-radius: 30px;
    cursor:pointer;
}

.cover-block .field--name-field-text-date:after {
    content: '↓';
    display: inline-block;
    margin-left: 20px;
    transition: transform 0.3s ease;
}

/* Эффект при наведении */
.cover-block .field--name-field-text-date:hover {
    background: rgba(255, 160, 70, 1); /* Чуть насыщеннее */
    box-shadow: 0 4px 15px rgba(255, 180, 104, 0.4); /* Мягкое свечение */
    transform: translateY(-2px); /* Легкий подъем */
}

.cover-block .field--name-field-text-date:hover:after {
    transform: translateY(5px); /* Стрелка «прыгает» вниз */
}

/* Эффект при клике */
.cover-block .field--name-field-text-date:active {
    transform: translateY(0);
    box-shadow: none;
}

@media (max-width: 600px) {

    .cover-block {
        min-height: 450px;
        margin-left: -15px;
        margin-right: -15px;
        overflow: visible;
        margin-bottom: 100px;
    }

    .cover-block .image-style-header-image {
        object-fit: cover;
        object-position: left top;
    }

    .cover-block .logo-img {
        display: none;
        max-width: 220px;
        margin-top: 20px;
        margin-bottom: 20px;
    }
    .cover-block .header {
        font-size: 20px;
        padding: 20px;
        width: 100%;
        margin-bottom: 0;
        margin-top: auto;
    }
    .field--name-field-text-date {
        font-size: 20px;
        padding-left: 20px;
        padding-right: 20px;
    }

    .field--name-field-text-date {
        margin-bottom: -74px;
    }

    .cover-block .field--name-field-text-date:after {
        margin-left: 7px;
    }

    .cover-block .header {
        font-size: 25px;
    }

    .cover-block .image-style-header-image {
        border-radius: 30px;
    }
}

@media (max-width: 500px) {
    .cover-block .header {
        color: rgb(47, 47, 47);
        font-size: 28px;
        background: #fff;
        border: 1px solid #f2b56e;
        border-radius: 30px;
        padding: 0;
        width: 94%;
        margin: 318px auto 0 auto;
        position: relative;
        z-index: 8;
    }
    .cover-block .header p {
        text-transform: uppercase;
        letter-spacing: 1px;
        padding: 30px 30px 35px 30px;
        margin: 0;
    }
    .cover-block .field--name-field-text-date {
        background: rgba(255, 180, 104, 1);
        text-transform: uppercase;
        font-size: 16px;
        border-radius: 30px;
        cursor: pointer;
        display: inline-block;
        color: rgb(47, 47, 47);
        font-weight: 400;
        margin-top: -25px;
        position: relative;
        z-index: 20;
    }
}

@media (max-width: 450px) {
    .cover-block .header,
    .cover-block .field--name-field-text-date {
        font-size: 16px;
    }
    .cover-block .header {
        font-size: 25px;
    }
}

@media (max-width: 350px) {
    .cover-block .header,
    .cover-block .field--name-field-text-date {
        padding: 16px;
    }
    .cover-block .header {
        font-size: 25px;
    }
    .cover-block .header p {
        padding: 15px 15px 30px 15px;
    }
}


/* ==========================================================================
   ABOUT BLOCK
   ========================================================================== */

.about-text {
    margin: 60px 0;
}

.about-text-wrap {
  position: relative;
  display: flex;
  gap: 40px;
  flex-direction: column;
  min-height: 300px;
  max-width: 1170px;
  margin: 0 auto;
  overflow: hidden;
}

.about-text-wrap .about-content {
    max-width: 558px;
}

.about-content h2,
.about-content P {
    font-size: 25px;
}

.about-content h2 {
    margin: 30px 0;
    font-weight: 900;
}

.about-content P {    
    font-weight: 300;
}

@media (min-width: 768px) {
  .about-text-wrap {
    flex-direction: row;
  }
  .icon-second {
    margin-left: 20px;
    margin-top: 140px;
    position: absolute;
  }
  .icon-third {
    margin-left: 82px;
    margin-top: 20px;
  }
}

@media (max-width: 767px) {

    .about-text {
        margin: 30px 0;
    }

    .about-content h2,
    .about-content P {
        font-size: 20px;
    }

    .about-content h2 {
        margin-top: 0;
    }

    .icon-first,
    .icon-second {
        display: none;
    }

    .block-icons {
        position: relative;
        height: 150px;
        width: 100%;
        margin-top: -50px;
    }

    .icon-third {
        display: block;
        position: absolute;
        right: 0;
        bottom: 0;
        width: 120px;
        z-index: 10;
    }

    .icon-third::before {
        content: '';
        position: absolute;
        width: 150px;
        height: 150px;
        background: #b2d8d8;
        border-radius: 50%;
        z-index: -1;
        left: -20px;
        top: 20px;
    }

    .about-text-wrap {
        gap: 0;
    }
}

/* ==========================================================================
   ANIMATION ICONS
   ========================================================================== */

.block-icons img,
.sources-items img,
.follow-us-social .image-icon,
.subscribe .image-icon {
    transition: transform 0.3s ease;
    transform-origin: center;
    cursor: pointer;
}

.block-icons img:hover,
.sources-items img:hover,
.follow-us-social .image-icon:hover,
.subscribe .image-icon:hover {
  transform: rotate(-15deg);
}

            
/* ==========================================================================
   LINE BLOCK
   ========================================================================== */

.ticker-wrapper {
    position: relative;
    box-sizing: border-box;
    margin-top: 60px;
    margin-bottom: 60px;
}

.ticker-wrapper {
    width: calc(100% + 30px);
    margin-left: -15px;
    margin-right: -15px;
}

@media (min-width: 600px) {
    .ticker-wrapper {
        width: calc(100% + 60px);
        margin-left: -30px;
        margin-right: -30px;
    }
}

.ticker-wrapper {
  overflow: hidden;
  border-top: 2px solid #f9b86d;
  border-bottom: 2px solid #f9b86d;
  background-color: #fff;
  padding: 0;
}

.ticker-wrapper .scroll-text-wrap {
  display: flex;
  white-space: nowrap;
  font-family: sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  color: #f9b86d;
}

.ticker-wrapper .scroll-text-wrap p {
    display: inline-block;
    padding-left: 20px;
    animation: ticker 15s linear infinite;
    font-weight: 900;
    font-size: 48px;
    line-height: 120%;
    letter-spacing: 5%;
    text-align: center;
    text-transform: uppercase;
    margin-top: 0;
    margin-bottom: 0;

}

@keyframes ticker {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}


@media (max-width: 767px) {
    .ticker-wrapper{
        margin-top: 30px;
        margin-bottom: 30px;
        padding: 7px 0;
    }
    .ticker-wrapper .scroll-text-wrap p {
        font-size: 25px;
    }
}

/* ==========================================================================
   UPCOMING BLOCK
   ========================================================================== */

#upcoming {
    max-width: 1170px;
    margin: 60px auto 30px;
}

.upcoming-events-wrap > h2 {
    font-size: 48px;
    margin-bottom: 32px;
    text-transform: uppercase;
    text-align: center;
    font-weight: 400;
}

.upcoming-events-wrap > .items > .item {
    margin-bottom: 30px;
    border: 2px solid rgba(255, 180, 104, 1);
    border-radius: 30px;
    padding: 30px;
    box-sizing: border-box;
}

.events-details-wrap {
    display: flex;
    gap: 30px;
}

.events-details-wrap > div {
    flex: 1;
}


.events-details-wrap .date {
    font-weight: 900;
    font-size: 16px;
    line-height: 120%;
    letter-spacing: 5%;
    text-align: center;
    text-transform: uppercase;
    border: 2px solid rgba(255, 180, 104, 1);
    display: inline-block;
    margin-bottom: 30px;
    padding: 10px 20px;
    border-radius: 15px;
}

.events-details-wrap .header {
    font-weight: 900;
    font-size: 25px;
    line-height: 120%;
    margin-bottom: 20px;
}

.events-details-wrap .long-text {
    font-weight: 400;
    font-size: 16px;
    line-height: 130%;
    margin-bottom: 30px;
}

.long-text a {
    color: #5b8fb9;
    text-decoration: none;
}

.long-text a:hover {
    text-decoration: underline;
}

@media (max-width: 767px) {
    .upcoming-events-wrap > h2 {
        font-size: 25px;
        margin-top: 0;
        margin-bottom: 15px;
    }
}

@media (max-width: 800px) {
    .events-details-wrap {
        flex-direction: column;
    }

    .events-details-wrap .date,
    .events-details-wrap .long-text {
        margin-bottom: 20px;
    }

    .events-details-wrap .header {
        font-size: 20px;
    }

    .upcoming-events-wrap > .items > .item {
        margin-bottom: 20px;
        border-radius: 20px;
        padding: 20px;
    }
}
@media (max-width: 600px) {
    .long-text img {
        width: 100%;
        height: auto;
    }
}


/* ==========================================================================
   UPCOMING BLOCK - POINT WRAP
   ========================================================================== */

.point-wrap {
  display: grid;
  /* Резервируем место под иконку (27px) и остальное под текст */
  grid-template-columns: auto 1fr; 
  /* Отступ между иконкой и текстом */
  column-gap: 12px;
  /* Центрируем иконку по вертикали относительно всего блока текста */
  align-items: center; 
}

.point-wrap::before {
  content: "";
  grid-column: 1;
  grid-row: 1 / 3;
  width: 27px;
  height: 48px;
  align-self: center;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url('data:image/svg+xml;utf8,<svg width="27" height="30" viewBox="0 0 27 30" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.2158 0C15.8295 3.31152e-05 18.3844 0.761881 20.5576 2.18848C22.7307 3.61505 24.4245 5.6424 25.4248 8.01465C26.4251 10.3871 26.6866 12.998 26.1768 15.5166C25.6668 18.035 24.4086 20.3483 22.5605 22.1641L15.5518 29.0508C14.9323 29.6587 14.0923 29.9999 13.2168 30C12.3413 30 11.5013 29.6585 10.8818 29.0508L3.87109 22.1641C2.02301 20.3483 0.763802 18.0351 0.253906 15.5166C-0.255959 12.998 0.00559361 10.3871 1.00586 8.01465C2.00613 5.64226 3.70078 3.6151 5.87402 2.18848C8.04725 0.761895 10.6021 0 13.2158 0ZM13.2139 8.11523C11.8995 8.11523 10.6384 8.62793 9.70898 9.54102C8.77962 10.4541 8.25781 11.6931 8.25781 12.9844C8.25789 14.2755 8.77981 15.5138 9.70898 16.4268C10.6384 17.3398 11.8995 17.8525 13.2139 17.8525C14.5281 17.8525 15.7884 17.3398 16.7178 16.4268C17.6471 15.5137 18.1689 14.2756 18.1689 12.9844C18.1689 11.6931 17.6472 10.4541 16.7178 9.54102C15.7885 8.62811 14.528 8.1153 13.2139 8.11523Z" fill="%23FFB468"/></svg>');
}


/* Принудительно отправляем текстовые блоки во вторую колонку */
.point-wrap .place-name, 
.point-wrap .time {
    grid-column: 2;
    line-height: 1.2; /* Немного уменьшим межстрочный интервал для плотности */
    font-weight: 900;
    font-size: 16px;
    line-height: 120%;
    letter-spacing: 0;
}

.point-wrap .place-name {
  font-weight: 700; /* Как на картинке */
}

.point-wrap .time {
  font-weight: 700;
}


/* ==========================================================================
   PAST EVENTS BLOCK
   ========================================================================== */

.past-events-wrap {
    max-width: 1170px;
    margin: 30px auto;
}

.past-events-wrap .item {
    margin-bottom: 30px;
    border: 2px solid rgba(255, 180, 104, 1);
    border-radius: 30px;
    padding: 10px 30px;
    box-sizing: border-box;
    display: flex;
    gap: 15px;
    justify-content: space-between;
}

.past-events-wrap .header {
    display: inline-flex;
    align-items: center; 
    font-weight: 900;
    font-size: 20px;
    letter-spacing: 0;
    padding: 10px 0;
}

.past-events-wrap .date {
    display: inline-flex;
    align-items: center; 
    justify-content: center;
    padding: 10px 20px;
    background: rgba(255, 180, 104, 1);
    border-radius: 16px;
    font-size: 16px;
    letter-spacing: 5%;
    text-align: center;
    text-transform: uppercase;
}

@media (max-width: 800px) {
    .past-events-wrap {
        margin: 20px auto;
    }
    .past-events-wrap .item {
        margin-bottom: 20px;
        border-radius: 20px;
        padding: 10px 20px;
    }
    .past-events-wrap .date {
        padding: 10px;
    }

    .past-events-wrap .item {
        flex-direction: column;
    }

    .past-events-wrap .header {
        font-size: 16px;
        padding-bottom: 0;
    }

    .past-events-wrap .date {

    }
}

/* ==========================================================================
   FOLLOW US SOCIAL BLOCK
   ========================================================================== */

.follow-us-social {
    background: rgba(255, 180, 104, 1);
    position: relative;
    box-sizing: border-box;
    margin-top: 60px;
    margin-bottom: 60px;
}

.follow-us-social {
    width: calc(100% + 30px);
    margin-left: -15px;
    margin-right: -15px;
}

@media (min-width: 600px) {
    .follow-us-social {
        width: calc(100% + 60px);
        margin-left: -30px;
        margin-right: -30px;
    }
}

.follow-us-social .wrap {
    /*max-width: 1170px;*/
    max-width: 1230px;
    margin: 60px auto 60px;
    display: flex;
    gap: 40px;
    box-sizing: border-box;
    padding-left: 30px;
    padding-right: 30px;
}

.follow-text h2 {
    font-size: 25px;
    font-weight: 400;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.follow-text div {
    font-size: 16px;
}

.follow-buttons {
    display: flex;
    gap: 50px;
    justify-content: space-between;
    align-items: center;
}

@media (max-width: 900px) {

    .follow-us-social {
        margin-top: 15px;
        margin-bottom: 15px;
    }

    .follow-us-social .wrap {
        margin: 30px auto 30px;
        padding-top: 10px;
        padding-bottom: 25px;
    }

    .image-icon {
        max-width: 120px;
    }

    .follow-text h2 {
        font-size: 20px;
    }

    .follow-text div {
        font-size: 16px;
    }

    .follow-us-social .wrap {
        flex-direction: column;
        gap: 10px;
    }

    .follow-buttons img {
        width: 90px;
        height: auto;
    }

}

@media (max-width: 600px) {
    .follow-buttons {
        gap: 0;
    }

    .follow-buttons img {
        width: 80px;
        height: auto;
    }
    
    .follow-us-social .wrap {
        padding-left: 25px;
        padding-right: 25px;
    }
}

/* ==========================================================================
   SOURCES BLOCK
   ========================================================================== */

.sources {
    max-width: 1170px;
    margin: 60px auto 60px;
}

.sources > .header {
    font-size: 48px;
    text-transform: uppercase;
    text-align: center;
    margin-bottom: 37px;
}

.sources-items {
    display: flex;
    gap: 30px;
    align-items: stretch;
}

.sources-items > .item {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.sources-items > .item a {
    text-decoration: none;
}

.sources-items .icon {
    margin-bottom: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 160px;
}

/* Общие стили для всех блоков */
.sources-items .wrap {
    border-radius: 30px;
    padding: 30px;
    border: 2px solid;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.sources-items .item:nth-child(1) .wrap {
    border-color: rgba(255, 180, 104, 1); /* Оранжевый */
}

.sources-items .item:nth-child(2) .wrap {
    border-color: rgba(205, 159, 204, 1); /* Например, синий */
}

.sources-items .item:nth-child(3) .wrap {
    border-color: rgba(166, 216, 212, 1); /* Например, зеленый */
}

.sources-items .wrap .header {
    font-weight: 900;
    font-size: 25px;
    margin-bottom: 30px;
}

.sources-items .wrap .desc {
    font-size: 16px;
    margin-bottom: 44px;
}

.sources-items .wrap .desc p:first-child {
    margin-top: 0;
}

.sources-items .wrap .desc p:last-child {
    margin-bottom: 0;
}

.sources-items .wrap .link {
    padding: 10px;
    border-radius: 15px;
    text-align: center;
    font-size: 16px;
    letter-spacing: 5%;
    text-transform: uppercase;
    margin-top: auto;
}

.sources-items .wrap .link a {
    color: rgb(47, 47, 47);
}

.sources-items .wrap .link a:hover {
    text-decoration: none;
}

.sources-items .item:nth-child(1) .wrap .link {
    background: rgba(255, 180, 104, 1);
}

.sources-items .item:nth-child(2) .wrap .link {
    background: rgba(205, 159, 204, 1);
}

.sources-items .item:nth-child(3) .wrap .link {
    background: rgba(166, 216, 212, 1);
}

@media (max-width: 1020px) {

    .sources {
        margin: 30px auto 30px;
    }

   .sources > .header {
        font-size: 25px;
        margin-bottom: 15px;
    }

    .sources-items {
        flex-direction: column;
    }

    .sources-items .wrap {
        padding: 20px;
    }

    .sources-items .wrap .header {
        font-size: 20px;
        margin-bottom: 20px;
    }

    .sources-items .wrap .desc {
        margin-bottom: 20px;
    }
}

/* ==========================================================================
   SOURCES BLOCK - ANIMATION HOVER
   ========================================================================== */

.sources-items .wrap .link {
    transition: all 0.3s ease;
    cursor: pointer;
    box-shadow: 0 4px 0 rgba(0, 0, 0, 0.05);
}

.sources-items .wrap .link:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
    filter: brightness(1.05);
}

.sources-items .wrap .link:active {
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.sources-items .wrap .link a {
    display: block;
    width: 100%;
    text-decoration: none;
}

/* ==========================================================================
   SUBSCRIBE BLOCK
   ========================================================================== */

.subscribe {
    background: rgba(205, 159, 204, 1);
    position: relative;
    box-sizing: border-box;
    margin-top: 60px;
    margin-bottom: 60px;
}

.subscribe {
    width: calc(100% + 30px);
    margin-left: -15px;
    margin-right: -15px;
}

@media (min-width: 600px) {
    .subscribe {
        width: calc(100% + 60px);
        margin-left: -30px;
        margin-right: -30px;
    }
}


.subscribe .wrap {
    /*max-width: 1170px;*/
    max-width: 1230px;
    margin: 60px auto 60px;
    display: flex;
    gap: 40px;
    box-sizing: border-box;
    padding: 15px 30px;
    justify-content: space-between;
}

.info-block {
    display: flex;
    gap: 46px;
    align-items: center;
}

.subscribe .follow-text {
    max-width: 290px;
}

.subscribe .follow-text h2 {
    font-size: 25px;
    font-weight: 400;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.subscribe .follow-text div {
    font-size: 16px;
}


@media (max-width: 900px) {

    .subscribe {
        margin-top: 15px;
        margin-bottom: 15px;
    }

    .subscribe .wrap {
        margin: 30px auto 30px;
        padding-top: 10px;
        padding-bottom: 25px;
    }

    .image-icon {
        max-width: 120px;
    }

    .subscribe .follow-text h2 {
        font-size: 20px;
    }

    .subscribe .follow-text div {
        font-size: 16px;
    }

    .subscribe .wrap {
        flex-direction: column;
        gap: 10px;
    }

    .info-block {
        flex-direction: column;
        gap: 10px;
        align-items: inherit;
    }

}

@media (max-width: 600px) {
    
    .subscribe .wrap {
        padding-left: 25px;
        padding-right: 25px;
    }

}


/* ==========================================================================
   SUBSCRIBE BLOCK - FORM
   ========================================================================== */

.subscribe-form-container {
    display: flex;
    align-items: center;
    position: relative;
}

.subscribe-form-container form {
    display: flex;
    align-items: center;
    gap: 15px;
}

.subscribe-input.form-email {
    max-width: 400px;
}

.subscribe-input {
    flex-grow: 1;
    height: 50px;
    padding: 0 25px;
    border: none;
    border-radius: 25px;
    font-size: 16px;
    outline: none;
}

.subscribe-input::placeholder {
  color: #ccc;
}

.subscribe-button {
  width: 50px;
  height: 50px;
  background-color: white;
  border: none;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  color: #c5a3cf;
  transition: transform 0.3s ease;
}

.subscribe-button:hover {
  transform: rotate(-15deg);
}

.subscribe-button svg {
  width: 24px;
  height: 24px;
}


@media (max-width: 600px) {

    .subscribe-input {
        width: 100%;
    }

    .subscribe-button {
        flex-shrink: 0;
    }

    .subscribe-input.form-email {
        max-width: 200px;
    }
}

@media (max-width: 400px) {
    .subscribe-input.form-email {
        max-width: 156px;
    }
}


/* ==========================================================================
   SUBSCRIBE BLOCK - FORM - DIALOG
   ========================================================================== */

.ui-dialog.webform-confirmation-modal {
    background: #ffffff !important;
    border: none !important;
    border-radius: 20px !important;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08) !important;
    padding: 0 !important;
    overflow: hidden;
    font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.ui-dialog-titlebar {
    background: transparent !important;
    border: none !important;
    padding: 30px 30px 10px 30px !important;
}

.ui-dialog-title {
    font-size: 22px !important;
    font-weight: 500 !important;
    color: #333 !important;
    float: none !important;
    display: block;
    text-align: center;
}

.ui-dialog-titlebar-close {
    top: 20px !important;
    right: 20px !important;
    border: none !important;
    background: #f5f5f5 !important;
    border-radius: 50% !important;
    transition: background 0.3s;
}

.ui-dialog-titlebar-close:hover {
    background: #eee !important;
}

.webform-confirmation-modal--content {
    padding: 10px 40px 40px 40px !important;
    text-align: center !important;
    font-size: 16px !important;
    color: #666 !important;
    line-height: 1.5 !important;
}

.ui-icon-closethick {
    filter: grayscale(1) opacity(0.5);
}

/* ==========================================================================
   SUBSCRIBE BLOCK - FORM - DIALOG - MESSAGES   
   ========================================================================== */

[data-drupal-messages] {
    margin: 20px auto !important;
    font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    position: absolute;
    bottom: 75%;
    max-width: 350px;
}

[data-drupal-messages] .messages {
    border: none !important;
    border-radius: 12px !important;
    padding: 15px 40px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
    position: relative;
    overflow: hidden;
}

[data-drupal-messages] .messages--error {
    background-color: #fff5f5 !important;
    color: #c53030 !important;
    border-left: 4px solid #fc8181 !important;
}

[data-drupal-messages] .messages__list {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

[data-drupal-messages] .messages__item {
    margin-bottom: 5px !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
}

[data-drupal-messages] .messages__item:last-child {
    margin-bottom: 0 !important;
}

[data-drupal-messages] .visually-hidden {
    position: absolute !important;
    clip: rect(1px, 1px, 1px, 1px) !important;
    overflow: hidden !important;
    height: 1px !important;
    width: 1px !important;
    word-wrap: normal !important;
}

/* ==========================================================================
   IMPRESS BLOCK
   ========================================================================== */

.impressions {
    margin-bottom: 60px;
}

.impressions > .header {
    font-size: 48px;
    text-transform: uppercase;
    text-align: center;
    margin-bottom: 37px;
    font-weight: 400;
}

.impressions .mosvintage-impress-items {
  max-width: 1920px;
  margin: 0 auto;
  padding: 60px 0; /* 60 40 */
  box-sizing: border-box;
}

.impressions .slider-track {
  display: flex;
  flex-direction: column;
  gap: 120px;
}

.impressions .item {
  display: flex;
  align-items: center; /* Центрируем текст по вертикали относительно фото */
  gap: 80px;
}

/* Чередование сторон */
.impressions .item:nth-child(even) {
  flex-direction: row-reverse;
}

/* Изображение 970x630 */
.impressions .photoswipe-gallery {
    flex-shrink: 0;
    width: 60%;
    max-width: 970px;
    height: auto;
    border-radius: 40px;
    overflow: hidden;
    position: relative;
}

.impressions .photoswipe-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  vertical-align: bottom;
}

.impressions .photoswipe-gallery a {
    position: relative;
}

/* Кнопка лупы из твоего SVG */
.impressions .photoswipe-gallery a::after {
    content: "";
    position: absolute;
    bottom: 30px;
    right: 30px;
    width: 60px;
    height: 60px;
    background-image: url("data:image/svg+xml;utf8,<svg width='80' height='80' viewBox='0 0 80 80' fill='none' xmlns='http://www.w3.org/2000/svg'><circle cx='40' cy='40' r='40' fill='%23FFB468'/><path d='M24 36.4444C24 38.0787 24.3219 39.6969 24.9473 41.2067C25.5727 42.7166 26.4893 44.0884 27.6449 45.244C28.8005 46.3996 30.1723 47.3162 31.6822 47.9416C33.192 48.567 34.8102 48.8889 36.4444 48.8889C38.0787 48.8889 39.6969 48.567 41.2067 47.9416C42.7166 47.3162 44.0884 46.3996 45.244 45.244C46.3996 44.0884 47.3162 42.7166 47.9416 41.2067C48.567 39.6969 48.8889 38.0787 48.8889 36.4444C48.8889 34.8102 48.567 33.192 47.9416 31.6822C47.3162 30.1723 46.3996 28.8005 45.244 27.6449C44.0884 26.4893 42.7166 25.5727 41.2067 24.9473C39.6969 24.3219 38.0787 24 36.4444 24C34.8102 24 33.192 24.3219 31.6822 24.9473C30.1723 25.5727 28.8005 26.4893 27.6449 27.6449C26.4893 28.8005 25.5727 30.1723 24.9473 31.6822C24.3219 33.192 24 34.8102 24 36.4444Z' fill='%23FFB468' stroke='black' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'/><path d='M56.0026 55.9987L45.3359 45.332' stroke='black' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-size: contain;
    background-repeat: no-repeat;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.impressions .photoswipe-gallery a:hover::after {
    transform: scale(1.15) rotate(8deg);
}

/* Блок текстов друг под другом */
.impressions .mosvintage-impress-items .header, 
.impressions .mosvintage-impress-items .description {
    max-width: 550px; /* Чтобы текст не размазывался по экрану */
}

.impressions .mosvintage-impress-items .header {
    font-weight: 900;
    font-size: 25px;
    margin-bottom: 30px;
}

.impressions .mosvintage-impress-items .header p {
    margin: 0;
}

.impressions .description {
    font-size: 16px;
    line-height: 130%;
}

.impressions .description p:first-child {
    margin-top: 0;
}

.impressions .description p:last-child {
    margin-bottom: 0;
}

.impressions .pagination { display: none; }

@media (max-width: 900px) {

    .mosvintage-impress-items,
    .mosvintage-impress-items * {
        -webkit-user-select: none; /* Chrome, Safari */
        -moz-user-select: none;    /* Firefox */
        -ms-user-select: none;     /* IE/Edge (старые) */
        user-select: none;         /* стандарт */
    }

    .impressions > .header {
        font-size: 25px;
        margin-bottom: 15px;
    }

    .impressions .mosvintage-impress-items {
        padding: 0;
    }


    .impressions .mosvintage-impress-items .header {
        font-size: 16px;
    }

    .impressions .photoswipe-gallery a {
        display: block;
    }

    .impressions .photoswipe-gallery a::after {
        bottom: inherit;
        top: 10px;
        right: 10px;
        width: 30px;
        height: 30px;
    }

    .impressions .description {
        line-height: inherit;
    }

  .impressions .slider-track {
    flex-direction: row;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 15px;
    padding-bottom: 20px;
    scrollbar-width: none;
  }
  .impressions .slider-track::-webkit-scrollbar { display: none; }

  .impressions .item {
    flex: 0 0 88%;
    flex-direction: column !important;
    gap: 0;
    align-items: center;
  }

  .impressions .photoswipe-gallery {
    width: 100%;
    height: auto;
    aspect-ratio: 970 / 630;
    border-radius: 30px;
  }


    .mosvintage-impress-items .text-wrap {
        border: 2px solid rgba(255, 180, 104, 1);
        padding: 20px;
        border-radius: 20px;
        margin-top: -60px;
        padding-top: 20px;
        position: relative;
        background: #fff;
        margin-left: 10px;
        margin-right: 10px;
    }

    .impressions .pagination {
        display: flex;
        justify-content: center;
        gap: 12px;
        margin-top: 15px;
    }

    .impressions .dot {
        width: 12px; height: 12px;
        border: 2px solid #333;
        border-radius: 50%;
    }

    .impressions .dot.active {
        background: #FFB468;
        border-color: #FFB468;
    }
}

/* ==========================================================================
   FAQ BLOCK
   ========================================================================== */

.faq-section {
    background: rgba(185, 205, 218, 1);
    position: relative;
    box-sizing: border-box;
    margin-top: 60px;
    padding-top: 60px;
    padding-bottom: 120px;
    margin-bottom: -30px;
    z-index: 1;
}

.faq-section {
    width: calc(100% + 30px);
    margin-left: -15px;
    margin-right: -15px;
}

body.node-type-main footer.site-footer {
    margin-top: 0;
    z-index: 10;
    position: relative;
}

.faq-section .section-header {
    font-size: 48px;
    text-transform: uppercase;
    text-align: center;
    margin-bottom: 37px;
    font-weight: 400;
}

.faq-items {
    max-width: 760px;
    margin: 0 auto;
    display: flex;
    gap: 30px;
    flex-direction: column;
}

.faq-items .item {
    border-radius: 30px;
    background: #fff;
    padding: 15px 30px;
}

.faq-items .item .header {
    font-weight: 900;
    font-size: 20px;
}

.faq-items .item .description {
    font-size: 20px;
    max-width: 600px;
}

.faq-items .header {
    display: flex;
    align-items: center;
    gap: 10px;
    position: relative;
    cursor: pointer;
}

.faq-items .header p::after {
    content: "";
    display: inline-block;
    vertical-align: middle;
    width: 30px;
    height: 30px;
    background-image: url('data:image/svg+xml;utf8,<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15 0C13.0302 -2.93527e-08 11.0796 0.387986 9.25975 1.14181C7.43986 1.89563 5.78628 3.00052 4.3934 4.3934C3.00052 5.78628 1.89563 7.43986 1.14181 9.25975C0.387987 11.0796 0 13.0302 0 15C0 16.9698 0.387987 18.9204 1.14181 20.7403C1.89563 22.5601 3.00052 24.2137 4.3934 25.6066C5.78628 26.9995 7.43986 28.1044 9.25975 28.8582C11.0796 29.612 13.0302 30 15 30C18.9782 30 22.7936 28.4196 25.6066 25.6066C28.4196 22.7936 30 18.9782 30 15C30 11.0218 28.4196 7.20644 25.6066 4.3934C22.7936 1.58035 18.9782 5.92805e-08 15 0Z" fill="%23B9CDDA"/><path d="M20 13.334L15 18.334L10 13.334" stroke="%232F2F2F" stroke-linecap="round" stroke-linejoin="round"/></svg>');
    background-repeat: no-repeat;
    position: absolute;
    top: 14px;
    right: 0;
    transition: transform 0.3s ease;
}

.faq-items .item.open .header p::after {
    transform: rotate(180deg);
}

.faq-items .header {
    -webkit-user-select: none; /* Safari */
    -ms-user-select: none;      /* IE 10 и старые Edge */
    user-select: none;          /* Стандарт (Chrome, Firefox, Opera) */
}


.faq-items {
    margin: 30px auto 30px;
}

.faq-items .item .description {
  display: none;
}

.faq-items .item.open .description {
  display: block;
}

@media (max-width: 900px) {

    .faq-section .section-header {
        font-size: 25px;
        margin-bottom: 15px;
    }

    .faq-section {
        padding-top: 30px;
    }

    .faq-items .item .header,
    .faq-items .item .description {
        font-size: 16px;
    }

    .faq-items .item {
        border-radius: 20px;
        padding: 10px 20px;
    }

    .faq-items .item .header p {
        padding-right: 36px;
    }

}

@media (max-width: 800px) {
    .faq-items {
        margin: 15px auto 15px;
        margin-left: 30px;
        margin-right: 30px;
    }
}

@media (max-width: 600px) {
    .faq-items {
        margin: 15px auto 15px;
        margin-left: 15px;
        margin-right: 15px;
    }
}

@media (min-width: 600px) {
    .faq-section {
        width: calc(100% + 60px);
        margin-left: -30px;
        margin-right: -30px;
        margin-top: 15px;
    }
}