/*
Theme Name: Luxury Travel
Description: Tema per crociere, jet, yacht e auto di lusso.
Author: Gemini AI
Version: 1.1
*/

body { margin: 0; font-family: 'Playfair Display', serif; color: #333; overflow-x: hidden; }

/* HEADER & LOGO (Base Desktop) */
.header-top { position: fixed; top: 0; left: 0; width: 100%; height: 100px; z-index: 999; transition: all 0.3s ease-in-out; background-color: transparent; }
.header-top.is-sticky { background-color: rgba(255, 255, 255, 0.98); height: 80px; box-shadow: 0 4px 10px rgba(0,0,0,0.08); }
.site-logo { position: absolute; left: 50px; top: 50%; transform: translateY(-50%); }
.site-logo a { text-decoration: none; color: #333; }
.site-logo img { max-height: 45px; width: auto; display: block; }

/* HAMBURGER DESKTOP */
.hamburger { position: absolute; left: calc(40% - 60px); top: 50%; transform: translateY(-50%); cursor: pointer; display: flex; flex-direction: column; gap: 6px; z-index: 1000; }
.hamburger span { display: block; width: 30px; height: 2px; background-color: #333; transition: background-color 0.3s; }

/* --- HERO SECTION --- */
.hero-split { display: flex; height: 85vh; }
.hero-text-area { width: 40%; background: linear-gradient(0deg, #c2afcc 0%, #ebe8ed 100%); display: flex; flex-direction: column; justify-content: center; padding: 5%; box-sizing: border-box; }
.hero-text-area h2 { font-size: 2.4rem; margin-bottom: 20px; font-weight: 400; }
.hero-text-area p { font-family: 'Barlow', sans-serif; font-size: 18px; line-height: 1.6; color: #000; }
.hero-image-area { width: 60%; position: relative; background: #ccc; }
.slide-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1s ease-in-out; object-fit: cover; }
.slide-image.active { opacity: 1; }
.hero-text-content { transition: opacity 0.4s ease-in-out; opacity: 1; }
.hero-text-content.fade-out { opacity: 0; }
.slider-dots { display: flex; gap: 12px; margin-top: 40px; }
.dot { width: 6px; height: 6px; border-radius: 50%; background-color: #8d779c; cursor: pointer; transition: all 0.3s ease; }
.dot.active { background-color: #333; transform: scale(1.5); }
.slider-meta { font-family: 'Barlow', sans-serif; font-size: 16px; text-transform: uppercase; letter-spacing: 1.5px; color: #222; margin-bottom: 15px; }
.slider-meta .meta-cat { color: #fff; font-weight: bold; padding: 3px; background-color: #8a769a; }
.slider-meta .meta-separator { margin: 0 8px; color: #ccc; }

/* --- MENU LATERALE --- */
.side-menu { position: fixed; top: 0; right: -400px; width: 300px; height: 100vh; background: #111; color: #fff; padding: 80px 50px; box-shadow: -5px 0 15px rgba(0,0,0,0.1); transition: right 0.4s ease-in-out; z-index: 1000; }
.side-menu.open { right: 0; }
.close-btn { font-size: 30px; cursor: pointer; background: none; border: none; position: absolute; top: 20px; right: 30px; color: #fff; }
.offcanvas-nav { list-style: none; padding: 0; }
.offcanvas-nav li { margin-bottom: 25px; }
.offcanvas-nav li a { color: #f4f5f8; text-decoration: none; font-size: 22px; font-family: 'Playfair Display', serif; transition: all 0.3s ease; display: inline-block; }
.offcanvas-nav li a:hover { color: #8d779c; transform: translateX(10px); }
.menu-cat-img { width: 35px; height: 35px; object-fit: cover; border-radius: 50%; vertical-align: middle; margin-right: 15px; border: 1px solid #444; }

/* --- BARRA CATEGORIE NERA --- */
.black-categories-bar { background-color: #000; color: #fff; min-height: 40vh; display: flex; justify-content: center; align-items: center; gap: 40px; flex-wrap: wrap; padding: 20px; }
.black-categories-bar a { color: #fff; text-decoration: none; text-transform: uppercase; font-family: 'Barlow', sans-serif; font-size: 18px; letter-spacing: 1px; }
.black-categories-bar a:hover { color: #8d779c; }
.cat-box { display: flex; flex-direction: column; align-items: center; gap: 12px; text-decoration: none; color: #fff; transition: all 0.3s ease; }
.cat-box img { width: 200px; height: 150px; object-fit: cover; border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); transition: transform 0.3s ease; }
.cat-box:hover img { transform: scale(1.1); }
.cat-box:hover span { color: #8d779c; }

/* --- LATEST NEWS SECTION --- */
.latest-news-section { padding: 80px 10%; background-color: #fafafa; }
.section-heading { text-align: center; margin-bottom: 60px; }
.section-heading h1 { font-size: 42px; font-weight: 400; margin: 0; color: #000; }
.section-subtitle { font-family: 'Barlow', sans-serif; font-size: 18px; color: #666; margin: 15px auto 0; line-height: 1.6; }
.news-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; }
.news-card { display: flex; flex-direction: column; margin-bottom: 30px; }
.news-image { width: 100%; height: 250px; overflow: hidden; }
.news-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.news-card:hover .news-image img { transform: scale(1.05); }
.news-content { background: #fff; padding: 30px; margin: -50px 20px 0; position: relative; z-index: 2; box-shadow: 0 10px 30px rgba(0,0,0,0.05); }
.news-date { display: block; font-family: 'Barlow', sans-serif; font-size: 16px; color: #888; margin-bottom: 12px; text-transform: uppercase; letter-spacing: 1px; }
.news-content h3 { font-size: 22px; margin: 0 0 15px; font-weight: 600; line-height: 1.3; }
.news-content h3 a { text-decoration: none; color: #333; transition: color 0.3s ease; }
.news-content h3 a:hover, .view-more:hover { color: #5c4869; }
.news-content p { font-family: 'Barlow', sans-serif; font-size: 18px; color: #666; line-height: 1.6; margin-bottom: 20px; }
.view-more { font-family: 'Barlow', sans-serif; font-size: 18px; color: #000; text-decoration: underline; display: inline-block; transition: color 0.3s ease; }

/* --- PAGINA CATEGORIA / SINGLE --- */
.category-custom-header { width: 100%; }
.cat-logo-bar { background: radial-gradient(circle, #ebe8ed 0%, #c2afcc 100%); text-align: center; padding: 10px 20px; border-bottom: 1px solid #111; position: relative; }
.cat-custom-logo { text-decoration: none; display: inline-block; }
.cat-custom-logo img { max-height: 60px; width: auto; }
.cat-custom-logo span { font-size: 30px; font-weight: bold; color: #333; font-family: 'Playfair Display', serif; }
.cat-nav-bar { background-color: #222; text-align: center; padding: 20px; display: flex; justify-content: center; flex-wrap: wrap; gap: 30px; }
.cat-nav-bar a { color: #fff; text-decoration: none; font-family: 'Playfair Display', serif; font-size: 18px; transition: color 0.3s ease; }
.cat-nav-bar a:hover, .cat-nav-bar a.active { color: #d4c7da; }
.cat-title-area { text-align: center; padding: 80px 20px 60px; background: #fff; position: relative; overflow: hidden; }
.cat-title-bg-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -60%); width: 150px; height: 150px; background: radial-gradient(circle, transparent 40%, rgba(0,0,0,0.03) 45%, transparent 50%); background-size: 30px 30px; border-radius: 50%; z-index: 0; pointer-events: none; }
.cat-title-area h1 { font-family: 'Playfair Display', serif; font-size: 58px; font-weight: 400; margin: 0 0 15px; position: relative; z-index: 1; color: #111; }
.cat-breadcrumb { font-family: 'Barlow', sans-serif; font-size: 16px; color: #888; position: relative; z-index: 1; }
.cat-breadcrumb a { color: #8d779c; text-decoration: none; }
.category-news-section { padding-top: 20px; }
.cat-hamburger { display: none; } /* Nascondi su desktop */

/* Paginazione */
.pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 60px; width: 100%; }
.pagination .page-numbers { padding: 10px 18px; background: #fff; border: 1px solid #ddd; color: #333; text-decoration: none; font-family: 'Barlow', sans-serif; font-size: 18px; transition: all 0.3s ease; }
.pagination .page-numbers.current, .pagination .page-numbers:hover { background: #5c4869; color: #fff; border-color: #5c4869; }

/* --- SINGLE POST PAGE --- */
.single-post-container { max-width: 900px; margin: 0 auto; padding: 0 20px 80px; }
.single-post-meta { text-align: center; font-family: 'Barlow', sans-serif; font-size: 18px; color: #888; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 40px; margin-top: -20px; }
.single-post-meta .meta-separator { margin: 0 10px; color: #ccc; }
.single-featured-image { width: 100%; margin-bottom: 50px; }
.single-featured-image img { width: 100%; height: auto; object-fit: cover; border-radius: 4px; box-shadow: 0 10px 30px rgba(0,0,0,0.08); }
.single-post-content { font-family: 'Barlow', sans-serif; font-size: 20px; line-height: 1.8; color: #444; }
.single-post-content h2, .single-post-content h3, .single-post-content h4 { font-family: 'Playfair Display', serif; color: #111; margin-top: 50px; margin-bottom: 20px; font-weight: 600; }
.single-post-content h2 { font-size: 32px; }
.single-post-content h3 { font-size: 26px; }
.single-post-content img { max-width: 100%; height: auto; border-radius: 4px; margin: 30px 0; }
.single-post-content a { color: #8d779c; text-decoration: underline; transition: color 0.3s ease; }
.single-post-content a:hover { color: #5c4869; }
.single-post-content blockquote { font-family: 'Playfair Display', serif; font-size: 26px; font-style: italic; color: #5c4869; margin: 40px 0; padding-left: 20px; border-left: 4px solid #8d779c; line-height: 1.5; }

/* ================= FOOTER ================= */
.site-footer { background-color: #0b111a; color: #a9b3bc; padding: 60px 10% 30px; font-family: 'Barlow', sans-serif; font-size: 16px; }
.footer-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 40px; margin-bottom: 50px; }
.footer-col { flex: 1; min-width: 250px; }
.footer-col-1 { flex: 1.5; max-width: 450px; }
.footer-logo-wrap { background-color: #ffffff; display: inline-block; padding: 15px 25px; margin-bottom: 25px; border-radius: 2px; }
.footer-logo-wrap img { max-height: 55px; width: auto; display: block; }
.footer-logo-wrap .text-logo { color: #000; font-family: 'Playfair Display', serif; font-size: 24px; font-weight: bold; text-decoration: none; }
.footer-description { line-height: 1.6; margin: 0; color: #a9b3bc; }
.footer-col h4 { color: #ffffff; font-size: 20px; margin-top: 0; margin-bottom: 25px; font-family: 'Barlow', sans-serif; font-weight: 700; }
.footer-menu { list-style: none; padding: 0; margin: 0; }
.footer-menu li { margin-bottom: 12px; }
.footer-menu li a { color: #a9b3bc; text-decoration: none; transition: color 0.3s ease; font-weight: 500; }
.footer-menu li a:hover { color: #ffffff; }
.footer-col-3 p { margin-bottom: 15px; line-height: 1.5; }
.footer-col-3 strong { color: #ffffff; }
.footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.05); padding-top: 30px; text-align: center; font-size: 13px; line-height: 1.8; color: #6c757d; }
.footer-bottom p { margin: 0 0 15px 0; }
.powered-by { font-size: 15px; margin-top: 20px !important; }
.powered-by a { color: #ffffff; font-weight: bold; text-decoration: none; transition: opacity 0.3s ease; }
.powered-by a:hover { opacity: 0.8; }

/* ================= MEDIA QUERIES (Mobile & Tablet) ================= */

@media (max-width: 991px) {
    /* --- FIX HAMBURGER E LOGO MAIN HEADER --- */
    .header-top { background-color: #fff; box-shadow: 0 4px 10px rgba(0,0,0,0.08); height: 80px; }
    .site-logo { left: 20px !important; }
    
    /* Forza l'hamburger a destra su mobile annullando il calc() del desktop */
    .hamburger { left: auto !important; right: 20px !important; }
    .side-menu { z-index: 9999; box-sizing: border-box; }

    /* Hero Section Mobile */
    .hero-split { flex-direction: column-reverse; height: auto; min-height: 100vh; margin-top: 80px; }
    .hero-image-area, .hero-text-area { width: 100%; height: 50vh; }
    .hero-text-area { padding: 5%; align-items: center; text-align: center; }
    .hero-text-area h2 { font-size: 2rem; }

    /* Sezioni Layout Mobile */
    .black-categories-bar { padding: 40px 20px; gap: 20px; }
    .cat-box img { width: 150px; height: 110px; }
    .latest-news-section { padding: 50px 5%; }
    .section-heading h1 { font-size: 32px; }

    /* --- FIX HAMBURGER E LOGO CATEGORY/SINGLE HEADER --- */
    .cat-sticky-top { position: fixed; top: 0; left: 0; width: 100%; z-index: 998; box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
    .cat-logo-bar { position: relative; padding: 12px 20px; display: flex; align-items: center; justify-content: center; min-height: 60px; }
    .cat-custom-logo img { max-height: 35px; }
    .cat-custom-logo span { font-size: 24px; }
    
    /* Forza l'hamburger categoria a destra e visibile */
    .cat-hamburger { display: flex !important; position: absolute !important; left: auto !important; right: 20px !important; top: 50% !important; transform: translateY(-50%) !important; flex-direction: column; gap: 5px; cursor: pointer; }
    .cat-hamburger span { display: block; width: 25px; height: 2px; background-color: #333; }
    
    .cat-nav-bar { height: 20px; padding: 0; display: block; overflow: hidden; }
    .cat-nav-bar a { display: none; }
    .cat-title-area { padding: 120px 20px 30px; }
    .cat-title-area h1 { font-size: 38px; }

    /* Footer Mobile */
    .site-footer { padding: 50px 5% 30px; }
    .footer-top { flex-direction: column; gap: 30px; }
    .footer-col-1 { max-width: 100%; }
    .footer-logo-wrap { padding: 10px 15px; }
}

@media (max-width: 480px) {
    .side-menu { width: 100vw; right: -100vw; padding: 80px 30px; overflow-y: auto; }
    .side-menu.open { right: 0; }
    .close-btn { right: 20px; top: 20px; }
    .cat-box { width: 100%; }
    .cat-box img { width: 100%; max-width: 300px; height: auto; aspect-ratio: 4/3; }
    .news-content { margin: -30px 10px 0; padding: 20px; }
}

/* ================= AGGIORNAMENTI BREADCRUMB E TITOLI ================= */
.cat-breadcrumb { 
    margin-bottom: 20px; 
    font-family: 'Barlow', sans-serif; 
    font-size: 14px; 
    color: #888; 
    position: relative; 
    z-index: 1; 
    text-transform: uppercase; 
    letter-spacing: 1px; 
}
.cat-title-area h1 { margin: 0; }

.cat-description { 
    font-family: 'Barlow', sans-serif; 
    font-size: 18px; 
    color: #666; 
    margin-top: 20px; 
    position: relative; 
    z-index: 1; 
    max-width: 800px; 
    margin-left: auto; 
    margin-right: auto; 
    line-height: 1.6; 
}

/* ================= AGGIORNAMENTI META TAG (CARD E SINGLE) ================= */
.news-meta-top { 
    display: flex; 
    align-items: center; 
    gap: 12px; 
    margin-bottom: 15px; 
    font-family: 'Barlow', sans-serif; 
    font-size: 13px; 
    text-transform: uppercase; 
    letter-spacing: 1px; 
}

.news-meta-top .news-date { 
    margin-bottom: 0; 
}

/* Stile a etichetta (badge) per la Categoria */
.news-category-tag, .single-post-meta .meta-cat {
    color: #fff;
    font-weight: 600;
    padding: 5px 8px; /* Ho aggiunto un po' di padding orizzontale per far respirare il testo */
    background-color: #8a769a;
    border-radius: 2px;
}

/* ================= FIX META INFO E TITOLO SINGLE POST ================= */

/* 1. Riduce la larghezza del titolo H1 solo su Desktop e lo centra */
@media (min-width: 992px) {
    .cat-title-area h1 {
        max-width: 900px; /* Modifica questo valore per stringere o allargare il titolo */
        margin: 0 auto 20px auto; 
        line-height: 1.25; 
    }
}

/* 2. Forza la corretta visualizzazione di Data, Categoria e Autore sotto il titolo */
.single-post-meta {
    display: flex !important;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px; /* Spazio tra gli elementi */
    margin-top: 10px;
    margin-bottom: 40px;
}

/* 3. Stile elegante per il badge viola della categoria, evitando che collassi */
.single-post-meta .meta-cat {
    display: inline-block;
    background-color: #8a769a;
    color: #ffffff !important;
    font-weight: 600;
    padding: 6px 12px;
    border-radius: 3px;
    font-size: 14px;
    line-height: 1;
    white-space: nowrap; /* Evita che il testo vada a capo rompendo il badge */
}

/* 4. Colore e dimensione per data, autore e separatore */
.single-post-meta .meta-date,
.single-post-meta .meta-author {
    color: #666;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.single-post-meta .meta-separator {
    color: #ccc;
    font-size: 18px;
    line-height: 1;
}

/* ================= BADGE IA (Conformità AI Act) ================= */
.ai-badge { 
    position: absolute; 
    bottom: 15px; /* Posizione standard per la pagina del singolo articolo */
    right: 15px; 
    background-color: rgba(0, 0, 0, 0.4); 
    color: rgba(255, 255, 255, 0.6); 
    font-family: 'Barlow', sans-serif; 
    font-size: 11px; 
    padding: 4px 8px; 
    border-radius: 3px; 
    z-index: 10; 
    pointer-events: none; 
    text-transform: uppercase; 
    letter-spacing: 0.5px; 
    backdrop-filter: blur(2px);
}

.news-image { 
    position: relative; 
}

/* Regola specifica per le griglie (Home e Categoria) per scavalcare il riquadro bianco */
.news-image .ai-badge {
    bottom: 65px; /* 50px di sovrapposizione del box bianco + 15px di margine */
}

/* Adattamento per gli schermi dei cellulari dove il riquadro bianco sale di meno */
@media (max-width: 480px) {
    .news-image .ai-badge {
        bottom: 40px; /* 30px di sovrapposizione su mobile + 10px di margine */
    }
}