Коллекция особняков ACADEMIA
Камерные отели, расположенные в особняках
в центре Санкт-Петербурга с приватной атмосферой и историческими интерьерами
Гостеприимство как искусство!
Спецпредложения
Графская осень
Атмосферный сценарий отдыха с аристократическими традициями
Осеннее предложение
Скидка 15% при бронировании категории Люкс с 1 спальней в ACADEMIA Васильевский
Промокод GENIUS
Получите бонус при первом бронировании на сайте
Раннее бронирование
Планируйте поездку заранее от 3 ночей со скидкой 20%
Длительное проживание
Скидка 20% на проживание от 5 ночей
ГРАФСКИЙ НОВЫЙ ГОД В ОСОБНЯКЕ ШУВАЛОВА
Проживание в особняке и новогодняя ночь с театрализованной программой в атмосфере светского салона XIX века
День рождения
Привилегии для именинников и скидка 20%
АЭРОФЛОТ БОНУС
До 1 000 миль за каждую ночь проживания в особняках!
Графский Петербург
Особый отдых в формате пышных аристократических традиций
ПЕТЕРБУРГ: ПОГРУЖЕНИЕ В ИСТОРИЮ
Отдых в особняке Шувалова с комплиментарным посещением лекции
Свадебное предложение
Свадебное предложение ACADEMIA — это гармония исторических интерьеров и безупречного сервиса
ГДЕ ПРОВЕСТИ НОВОГОДНЮЮ НОЧЬ В САНКТ-ПЕТЕРБУРГЕ
Встречайте Новый год в Петербурге в особняке Шувалова.
31 декабря 2026 | начало в 20:00
Здесь Новый год начинается как настоящий прием в старинном петербургском особняке.
Вместо обычного ресторанного праздника — камерный вечер в атмосфере светского салона: графская семья, праздничный стол, живая музыка, танцы и традиции дома Шуваловых.
(() => {
// ================= КОНФИГУРАЦИЯ КОНТЕНТА =================
const SLIDE_CONTENT = {
default: {
title: "ГДЕ ПРОВЕСТИ МАЙСКИЕ ВЫХОДНЫЕ В САНКТ-ПЕТЕРБУРГЕ",
text: '<p>Весна в Петербурге всегда нетороплива, мечтательна и наполнена вдохновением. Приглашаем вас попробовать Графские завтраки, стать званым гостем на гастрономическом ужине в баре-ресторане.<br/>Послушать живую музыку и получить коктейль в подарок на вечеринке в честь открытия летней террасы во французской Брассери 8 мая.<br/><br/>Выбирайте свой особняк ACADEMIA для ваших майских выходных, <a href="/booking/?date=2026-05-01&nights=2&adults=2&children-age=&access-code=&hotel_id=41018 ">бронируйте ваш номер на официальном сайте</a> и участвуйте в розыгрыше приятных подарков от ACADEMIA и наших партнеров!<br/><br/>Проведите свои выходные в коллекции особняков ACADEMIA!</p>',
buttonText: "ВЫБРАТЬ НОМЕР",
buttonUrl: "/booking/?date=2026-05-01&nights=2&adults=2&children-age=&access-code=&hotel_id=41018",
},
1: {
title: "Майский розыгрыш подарков",
text: '<p>Выбирайте любой из особняков ACADEMIA для ваших майских выходных, <a href="/booking/?date=2026-05-01&nights=2&adults=2&children-age=&access-code=&hotel_id=41018">бронируйте на официальном сайте</a> и участвуйте в розыгрыше приятных подарков от ACADEMIA и наших партнеров!<br/><br/><strong>Для номеров высоких категорий будут разыграны:</strong><br/>- визит в ACADEMIA СПА<br/>- представительский трансфер<br/>- приветственный сет в номер<br/>- завтрак.<br/><br/><strong>Для стандартных категорий номеров мы подготовили подарочные сертификаты от наших партнеров:</strong> RXBSHOES, Ruskala Brand, KIRICLAN, Amazing cacao и Императорского фарфорового завода.</p>',
},
};
// ================= СЕЛЕКТОРЫ =================
const SELECTORS = {
slider: ".brxe-slider", // Контейнер слайдера
slide: ".swiper-slide", // Слайды
activeSlide: ".swiper-slide-active", // Активный слайд
header: "#sliderHeader",
text: "#sliderText",
button: "#sliderBtn",
};
// ================= СОСТОЯНИЕ =================
const currentContent = {
title: null,
text: null,
buttonText: null,
buttonUrl: null,
};
// ================= ОБНОВЛЕНИЕ КОНТЕНТА =================
function updateContent(slideIndex) {
const els = {
header: document.querySelector(SELECTORS.header),
text: document.querySelector(SELECTORS.text),
button: document.querySelector(SELECTORS.button),
};
if (!els.button) return; // Если нет кнопки - выходим
const slideConfig = SLIDE_CONTENT[slideIndex] || {};
const def = SLIDE_CONTENT.default;
// Формируем новое состояние (с fallback на default)
const newContent = {
title: slideConfig.title !== undefined ? slideConfig.title : def.title,
text: slideConfig.text !== undefined ? slideConfig.text : def.text,
buttonText:
slideConfig.buttonText !== undefined
? slideConfig.buttonText
: def.buttonText,
buttonUrl:
slideConfig.buttonUrl !== undefined
? slideConfig.buttonUrl
: def.buttonUrl,
};
// Обновляем только изменившиеся поля
if (newContent.title !== currentContent.title && els.header) {
els.header.textContent = newContent.title;
currentContent.title = newContent.title;
}
if (newContent.text !== currentContent.text && els.text) {
els.text.innerHTML = newContent.text; // innerHTML для поддержки HTML тегов
currentContent.text = newContent.text;
}
if (newContent.buttonText !== currentContent.buttonText) {
els.button.textContent = newContent.buttonText;
currentContent.buttonText = newContent.buttonText;
}
if (newContent.buttonUrl !== currentContent.buttonUrl) {
els.button.href = newContent.buttonUrl;
currentContent.buttonUrl = newContent.buttonUrl;
}
}
// ================= ПОЛУЧЕНИЕ ИНДЕКСА АКТИВНОГО СЛАЙДА =================
function getActiveSlideIndex() {
const activeSlide = document.querySelector(SELECTORS.activeSlide);
if (!activeSlide) return 0;
// Пробуем получить индекс из разных атрибутов
const index =
activeSlide.getAttribute("data-swiper-slide-index") ||
activeSlide.getAttribute("data-brx-swiper-index") ||
0;
return parseInt(index, 10);
}
// ================= ИНИЦИАЛИЗАЦИЯ =================
function init() {
const slider = document.querySelector(SELECTORS.slider);
if (!slider) {
setTimeout(init, 300); // Повторяем если слайдер еще не загружен
return;
}
// Начальное обновление
const initialIndex = getActiveSlideIndex();
updateContent(initialIndex);
// Способ 1: Используем события Swiper (если доступен)
if (typeof Swiper !== "undefined") {
const swiperInstance = slider.swiper;
if (swiperInstance) {
swiperInstance.on("slideChange", function () {
updateContent(this.activeIndex);
});
}
}
// Способ 2: MutationObserver (универсальный, работает всегда)
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (
mutation.type === "attributes" &&
mutation.attributeName === "class" &&
mutation.target.classList.contains("swiper-slide")
) {
// Проверяем, появился ли класс swiper-slide-active
if (mutation.target.classList.contains("swiper-slide-active")) {
const index = getActiveSlideIndex();
updateContent(index);
}
}
});
});
// Наблюдаем за всеми слайдами
const slides = document.querySelectorAll(SELECTORS.slide);
slides.forEach((slide) => {
observer.observe(slide, { attributes: true, attributeFilter: ["class"] });
});
// Также наблюдаем за добавлением новых слайдов (для динамических слайдеров)
const wrapper = slider.querySelector(".swiper-wrapper");
if (wrapper) {
const wrapperObserver = new MutationObserver(() => {
const newSlides = wrapper.querySelectorAll(SELECTORS.slide);
newSlides.forEach((slide) => {
observer.observe(slide, {
attributes: true,
attributeFilter: ["class"],
});
});
});
wrapperObserver.observe(wrapper, { childList: true });
}
}
// ================= ЗАПУСК =================
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", init);
} else {
init();
}
})();
Особняки с историей в центре Петербурга
Коллекция отелей ACADEMIA
ACADEMIA
ОСОБНЯК ШУВАЛОВА
★★★★
- Погружение в эпоху XIX века и встречи с графской семьей
- Исторические резиденции с антикварной мебелью
- Графские завтраки
- Ресторан ACADEMIA Шувалова
- Студия восстановления ACADEMIA массаж & спа
- Рядом с Летним садом и Михайловским замком
ACADEMIA
ОСОБНЯК ТЕПЛОВА
★★★★
- Элегантный особняк с приватной атмосферой
- Панорамные сьюты с видами на крыши Петербурга
- Просторные номера и сьюты с кухнями
- Десять минут пешком до Дворца бракосочетания №1
- Рядом Исаакиевский собор и Новая Голландия
ACADEMIA
ВАСИЛЬЕВСКИЙ
★★★★
- Клубный отель с яркой атмосферой на Васильевском острове
- Просторные номера и люксы с кухнями
- Французский ресторан ACADEMIA брассери и живая музыка по выходным
- Кинопоказы под открытым небом
- Рядом с Университетской набережной и Дворцовым мостом
Сервис, который становится главой вашей истории
Каждый момент вашего пребывания — это маленькая история, наполненная вниманием, уютом и заботой.
В ACADEMIA гостеприимство становится частью вашей истории. Мы знаем, что путешествие — это не только дорога, но и эмоции, которые остаются с вами надолго.