.logo-header { opacity: 0 !important; visibility: hidden !important; transition: opacity 0.4s ease, visibility 0.4s ease; } .logo-header.show-logo { opacity: 1 !important; visibility: visible !important; } document.addEventListener("DOMContentLoaded", function () { function isDesktop() { return window.innerWidth >= 768; } function toggleLogoHeader() { if (!isDesktop()) return; const logos = document.querySelectorAll('.logo-header'); if (!logos.length) return; logos.forEach(function(logo) { if (window.scrollY > 500) { logo.classList.add('show-logo'); } else { logo.classList.remove('show-logo'); } }); } // Run on load toggleLogoHeader(); // Run on scroll window.addEventListener('scroll', toggleLogoHeader); // Reset se cambio dimensione (es. resize) window.addEventListener('resize', function() { const logos = document.querySelectorAll('.logo-header'); if (!isDesktop()) { logos.forEach(l => l.classList.remove('show-logo')); } else { toggleLogoHeader(); } }); });
@import url('https://fonts.googleapis.com/css2?family=Libre+Bodoni:ital,wght@0,400..700;1,400..700&display=swap'); body.vv-intro-running .logo-header, body.vv-intro-running .elemento-header, body.vv-intro-running .logo-header *, body.vv-intro-running .elemento-header * { transition: none !important; } .logo-header, .elemento-header { will-change: transform, opacity; } body.elementor-editor-active .vv-logo-top, body.elementor-editor-active .vv-logo-bottom, body.elementor-editor-active .vv-side-left, body.elementor-editor-active .vv-side-right, body.elementor-editor-active .vv-loop-wrapper, body.elementor-editor-active .vv-img-item { opacity: 1 !important; filter: none !important; visibility: visible !important; transform: scale(1) !important; } body.elementor-editor-active #rowTop { transform: translateY(-180px) !important; } body.elementor-editor-active #rowBottom { transform: translateY(180px) !important; } .vv-container { position: relative; width: 100%; height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; background-color: #F6F7F1; overflow: hidden; font-family: "Libre Bodoni", serif; } .vv-row { width: 83.3333%; box-sizing: border-box; display: flex; flex-direction: row; justify-content: space-between; align-items: center; z-index: 10; position: relative; } .vv-side-left { width: 8.3333%; text-align: center; opacity: 0; margin-left: 16px; } .vv-side-right { width: 8.3333%; text-align: center; opacity: 0; margin-right: 16px; } .vv-center-wrap { width: 25%; text-align: center; display: flex; justify-content: center; align-items: center; } .vv-logo-top { display: block; height: 70px; width: auto; max-width: 100%; object-fit: contain; opacity: 0; transform: scale(1.1); filter: blur(4px); } .vv-logo-bottom { display: block; height: 70px; width: auto; max-width: 100%; object-fit: contain; opacity: 0; transform: scale(1.1); filter: blur(4px); } .vv-date { font-family: open sans; font-size: 16px; color: #333; display: inline-block; } .link-button { font-family: open sans; font-size: 16px; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 17.6%; } .vv-trigger { cursor: pointer; text-decoration: underline; color: #333; margin-bottom: 35%; transition: all 0.3s; display: inline-block; } .vv-trigger:hover { color: #A75B5D; } .vv-loop-wrapper { position: absolute; top: 50%; left: 0; transform: translateY(-50%); width: 100%; height: 320px; opacity: 0; display: flex; align-items: center; z-index: 1; } .vv-marquee { display: flex; gap: 8px; width: max-content; will-change: transform; animation: scrollLoop 60s linear infinite; } .vv-img-item { height: 100%; width: auto; display: block; object-fit: cover; opacity: 0; transform: scale(0.9); filter: blur(2px) grayscale(100%); flex-shrink: 0; border-radius: 4px; max-height: 320px; transition: none; } @keyframes scrollLoop { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } } .vv-row-dates, .vv-row-buttons { display: none; } /* ================================ LAPTOP (≤1366px) ================================ */ @media (max-width: 1366px) { .vv-logo-top { height: 56px; } .vv-logo-bottom { height: 56px; } .vv-loop-wrapper { height: 240px; } .vv-img-item { max-height: 240px; } } /* ================================ TABLET (481px - 768px) ================================ */ @media (min-width: 481px) and (max-width: 768px) { #rowTop .vv-side-left, #rowTop .vv-side-right, #rowBottom .vv-side-left, #rowBottom .vv-side-right { display: none; } .vv-row { width: 100%; justify-content: center; } .vv-center-wrap { width: 50%; justify-content: center; text-align: center; } .vv-logo-top { height: 44px; } .vv-logo-bottom { height: 44px; } .vv-loop-wrapper { height: 160px; } .vv-img-item { max-height: 160px; } .vv-row-dates, .vv-row-buttons { display: flex; position: absolute; left: 0; width: 100%; padding: 0 20px; box-sizing: border-box; flex-direction: row; justify-content: space-between; align-items: baseline; z-index: 10; opacity: 0; } .vv-trigger { margin-top: 5%; } } /* ================================ MOBILE (≤480px) QUI NASCONDO DATE E BOTTONI ================================ */ @media (max-width: 480px) { #rowTop .vv-side-left, #rowTop .vv-side-right, #rowBottom .vv-side-left, #rowBottom .vv-side-right, .vv-row-dates, .vv-row-buttons { display: none !important; } .vv-row { width: 100%; justify-content: center; } .vv-center-wrap { width: 70%; justify-content: center; text-align: center; } .vv-logo-top { height: 34px; } .vv-logo-bottom { height: 34px; } .vv-loop-wrapper { height: 160px; } .vv-img-item { max-height: 160px; } .vv-date, .link-button { font-size: 13px; } } document.addEventListener("DOMContentLoaded", () => { const isEditor = document.body.classList.contains('elementor-editor-active'); const animationPlayed = sessionStorage.getItem('vvHeroAnimationPlayed'); const imageLoop = document.getElementById('imageLoop'); const container = document.getElementById('vvContainer'); const rowDates = document.getElementById('rowDates'); const rowButtons = document.getElementById('rowButtons'); function getGap() { if (window.matchMedia("(max-width: 767px)").matches) return 40; if (window.matchMedia("(max-width: 1024px)").matches) return 20; return 40; } function getMoveY() { return (imageLoop.offsetHeight / 2) + getGap(); } const isTabletLayout = () => window.matchMedia("(min-width: 481px) and (max-width: 768px)").matches; function setDateButtonsPosition() { if (!isTabletLayout()) return; const containerRect = container.getBoundingClientRect(); const loopRect = imageLoop.getBoundingClientRect(); const loopTopRel = loopRect.top - containerRect.top; const loopBottomRel = loopRect.bottom - containerRect.top; const gap = getGap(); rowDates.style.top = (loopTopRel - rowDates.offsetHeight - gap) + 'px'; rowButtons.style.top = (loopBottomRel + gap) + 'px'; } setDateButtonsPosition(); window.addEventListener('resize', () => { if (animationPlayed || isEditor) { gsap.set("#rowTop", { y: -getMoveY() }); gsap.set("#rowBottom", { y: getMoveY() }); } setDateButtonsPosition(); }); if (!isEditor && !animationPlayed) { document.body.style.overflow = 'hidden'; document.body.classList.add('vv-intro-running'); gsap.set(".logo-header, .elemento-header", { opacity: 0, y: -20 }); } const imgsDefault = [ "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-generali-verticale-1.webp", "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-generali-verticale-2.webp", "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-generali-orizzontali-1.webp", "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-generali-verticale-3.webp", "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-generali-orizzontali-2.webp" ]; const imgsAutentico = [ "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-autenticita-verticale-3.webp", "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-autenticita-verticale-2.webp", "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-autenticita-orizzontale-2.webp", "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-autenticita-verticale-1.webp", "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-autenticita-orizzontale-1.webp" ]; const imgsModerno = [ "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-modernita-verticale-3.webp", "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-modernita-verticale-2.webp", "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-modernita-orizzontale-2.webp", "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-modernita-verticale-1.webp", "https://villavitalibellagio.com/wp-content/uploads/2026/02/villa-vitali-home-slider-modernita-orizzontale-1.webp" ]; const marqueeTrack = document.getElementById('marqueeTrack'); function initImages(imgArray) { let baseHTML = ''; imgArray.forEach(url => { baseHTML += `Gallery Image`; }); marqueeTrack.innerHTML = baseHTML.repeat(5) + baseHTML.repeat(5); } initImages(imgsDefault); const desktopSideEls = ".vv-side-left, .vv-side-right"; const mobileExtraEls = "#rowDates, #rowButtons"; if (animationPlayed || isEditor) { gsap.set(".vv-logo-top, .vv-logo-bottom", { opacity: 1, scale: 1, filter: "blur(0px)" }); gsap.set("#rowTop", { y: -getMoveY() }); gsap.set("#rowBottom", { y: getMoveY() }); gsap.set(".vv-loop-wrapper", { opacity: 1 }); gsap.set(".vv-img-item", { opacity: 1, scale: 1, filter: "blur(0px) grayscale(0%)" }); gsap.set(desktopSideEls, { marginLeft: 0, marginRight: 0, opacity: 1 }); gsap.set(mobileExtraEls, { opacity: 1 }); gsap.set(".logo-header, .elemento-header", { opacity: 1, y: 0 }); document.body.style.overflow = 'auto'; setTimeout(setDateButtonsPosition, 50); } else { const tl = gsap.timeline({ defaults: { ease: "power2.out" }, onComplete: () => { document.body.style.overflow = 'auto'; sessionStorage.setItem('vvHeroAnimationPlayed', 'true'); document.body.classList.remove('vv-intro-running'); setDateButtonsPosition(); } }); tl.to(".vv-logo-top, .vv-logo-bottom", { opacity: 1, scale: 1, filter: "blur(0px)", duration: 1.5, delay: 0.5 }) .to("#rowTop", { y: -getMoveY(), duration: 1.5 }, "+=0.2") .to("#rowBottom", { y: getMoveY(), duration: 1.5 }, " { const newUrl = targetArray[i % targetArray.length]; const delay = i * 0.05; gsap.to(img, { duration: 0.3, scale: 0.8, filter: "blur(5px) grayscale(100%)", delay, ease: "power2.in", onComplete: () => { img.src = newUrl; gsap.fromTo(img, { scale: 0.8, filter: "blur(5px) grayscale(100%)" }, { duration: 0.5, scale: 1, opacity: 1, filter: "blur(0px) grayscale(0%)", ease: "back.out(1.2)", overwrite: false } ); } }); }); } document.querySelectorAll('.vv-trigger').forEach(trigger => { trigger.addEventListener('mouseenter', () => { const type = trigger.getAttribute('data-type'); if (type === 'moderno') transitionToGallery(imgsModerno); if (type === 'autentico') transitionToGallery(imgsAutentico); }); trigger.addEventListener('mouseleave', () => { transitionToGallery(imgsDefault); }); }); });

STAY

Authentic

STAY

Historic

VILLA

VILLA

IN

IN

Timeless

Villa Vitali a Bellagio al crepuscolo, con giardini illuminati e Lago di Como sullo sfondo

YOUR RESIDENCE IN THE HISTORIC VILLA: A STAY THAT TELLS OF A HUNDRED YEARS OF ELEGANCE

Each luxury apartment at Villa Vitali in Bellagio on Lake Como exudes the soul of an early 20th-century residence, enhanced by a meticulous restoration that blends original architectural details with contemporary comforts. Staying here means experiencing Bellagio’s history. Overlooking the waters of Lake Como, you’ll experience an atmosphere of tranquility and refined elegance.

Soggiorno mansardato con travi a vista, pareti ocra e finestre con vista sul lago
Soggiorno luminoso con divani azzurro chiaro, parquet scuro e finestre panoramiche sulle colline del lago
Vasca idromassaggio su terrazza panoramica con sedie a sdraio, vasi fioriti e montagne sullo sfondo

SEVEN UNIQUE RESIDENCES, ONE SINGLE VILLA: PRIVACY AND LUXURY ON THE SHORES OF LAKE COMO

The twentieth-century villa houses seven independent apartments, each with its own character. Generous spaces, carefully selected furnishings, and a privileged location just minutes from the center of Bellagio make every stay an authentic and unique experience.
Torre in mattoni rossi di villa storica con balconi in ferro battuto e intonaco color crema

STAY

[Modernity]

STAY

[Privacy]

VILLA

OLIVE GROVE

IN

IN

[Comfort]

EXCLUSIVE RETREATS AMONG THE OLIVE TREES: MODERNITY, DESIGN, AND ABSOLUTE PRIVACY

Created for those who desire maximum privacy without sacrificing any convenience, the apartments in the olive grove are a newly conceived project immersed in greenery. Every detail — from the materials to the amenities — has been chosen to ensure a contemporary experience of the highest level, within a natural context of extraordinary beauty.
Giardino con vasca riflettente, tavolo da pranzo esterno e ulivo in primo piano sullo sfondo delle montagne
Cucina moderna con ante laccate bianche, piano cottura a induzione e lampada a sospensione in ottone
Camera matrimoniale con parquet chiaro, letto imbottito e cuscini rosa, illuminazione indiretta a soffitto
Vasca idromassaggio in terrazza con vista sulle colline e sedie in rattan terracotta
Tavolo da pranzo in teak su terrazza soleggiata, sedie bianche con cuscini terracotta e verde sullo sfondo

THREE EXCLUSIVE RESIDENCES AMIDST NATURE: THE PERFECT RETREAT FOR AN INTIMATE STAY

Leonardo, Ludovica, and Gigi are three independent apartments born from a new vision of luxury hospitality: spacious, bright, with private gardens and high-quality finishes. Surrounded by the villa’s historic olive trees, they offer an authentic connection with the Lake Como landscape, while providing every comfort of contemporary life.

Book from our website

savings compared to other platforms.

Book from our website

savings compared to other platforms.