/* ==========================================================================
   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;
}

/* Фоновое изображение */
.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;
    }
}
@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;
    }
}


/* ==========================================================================
   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%;
    }

    .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;
    }
}

/* ==========================================================================
   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 40px;
  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;
}

.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;
    background-size: contain;
    position: absolute;
    top: 14px;
    right: 0
}


.faq-items {
    margin: 30px auto 30px;
}

.faq-items .item .description {
  display: none;
}

.faq-items .item.open .description {
  display: block;
}

@media (max-width: 600px) {
    .faq-items {
        margin: 15px auto 15px;
    }
}

@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 (min-width: 600px) {
    .faq-section {
        width: calc(100% + 60px);
        margin-left: -30px;
        margin-right: -30px;
        margin-top: 15px;
    }
}