
    :root {
        /* Nuova Palette */
        --guyot-primary: #6799C8; /* Azzurro Polvere - New Primary */
        --guyot-cream: #F9FBFD; /* Very light blue-whiteish background */
        --guyot-secondary-cream: #eee6d9; /* Sfondo richiesto */
        --guyot-gold: #D4AF37; /* Gold details remain for elegance */
        --guyot-dark: #2C3E50; /* Dark Blue-Grey for text */
        --guyot-text: #4A5568;
        --guyot-border-radius: 16px; /* Arrotondamento consistente */
    }

    body {
        font-family: 'Didact Gothic', sans-serif;
        color: var(--guyot-text);
        background-color: var(--guyot-cream);
        padding-bottom: 0;
        line-height: 1.8;
        -webkit-font-smoothing: antialiased;
        font-size: 1.1rem;
    }

    h1, h2, h3, h4, .navbar-brand {
        font-family: 'Playfair Display', serif;
        color: var(--guyot-dark);
    }

    /* Utilities */
    .text-primary-custom { color: var(--guyot-primary) !important; }
    .text-gold { color: var(--guyot-gold) !important; }
    .bg-primary-custom { background-color: var(--guyot-primary) !important; }

    .separator {
        width: 80px;
        height: 2px;
        background-color: var(--guyot-primary);
        margin: 1.5rem auto;
        opacity: 0.7;
    }

    /* Top Bar */
    .top-bar {
        background-color: var(--guyot-dark);
        color: #fff;
        font-size: 0.9rem;
        padding: 8px 0;
    }
    .top-bar a {
        color: rgba(255,255,255,0.85);
        text-decoration: none;
        transition: color 0.2s;
    }
    .top-bar a:hover {
        color: #fff;
    }

    /* Navbar - Sticky Behavior is handled by 'sticky-top' class */
    .navbar {
        background-color: rgba(255, 255, 255, 0.95);
        backdrop-filter: blur(10px);
        box-shadow: 0 2px 15px rgba(103, 153, 200, 0.1);
        top: 0;
    }

    /* Gestione Logo */
    .navbar-brand img {

        width: 180px;
        transition: transform 0.3s ease;
    }

    /* Riduzione voci di menu */
    .nav-link {
        color: var(--guyot-dark);
        font-weight: 600;
        text-transform: uppercase;
        font-size: 0.8rem;
        letter-spacing: 0.5px;
        transition: color 0.3s;
        white-space: nowrap;
    }

    .nav-link:hover, .nav-link.active {
        color: var(--guyot-primary) !important;
    }

    /* Hero Section */
    .hero-section {
        position: relative;
        height: 100vh;
        overflow: hidden;
        background-color: var(--guyot-dark);
    }

    .hero-overlay {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0,0,0,0.3);
        z-index: 2;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    .hero-title {
        font-size: 3.5rem;
        color: #fff;
        margin-bottom: 1rem;
        text-shadow: 0 4px 10px rgba(0,0,0,0.3);
    }

    .hero-subtitle {
        font-size: 1.5rem;
        color: #fff;
        font-weight: 400;
        text-shadow: 0 2px 5px rgba(0,0,0,0.3);
    }

    .hero-img {
        object-fit: cover;
        width: 100%;
        height: 100%;
        transform: scale(1);
        transition: transform 15s ease-out;
    }

    .carousel-item.active .hero-img {
        transform: scale(1.1);
    }

    /* Buttons */
    .btn-guyot {
        background-color: var(--guyot-primary);
        color: #fff;
        border: none;
        padding: 12px 30px;
        text-transform: uppercase;
        letter-spacing: 2px;
        font-weight: bold;
        border-radius: var(--guyot-border-radius);
        transition: all 0.3s;
        font-size: 0.9rem;
    }

    .btn-guyot:hover {
        background-color: var(--guyot-dark);
        color: #fff;
    }

    /* Sections */
    .intro-section {
        padding: 6rem 0;
        background-color: var(--guyot-secondary-cream);
    }

    /* Slider "Il Locale" */
    .locale-carousel-wrapper {
        border-radius: var(--guyot-border-radius);
        overflow: hidden;
    }

    .locale-carousel-img {
        height: 500px;
        object-fit: cover;
        border-radius: var(--guyot-border-radius);
    }

    #localeCarousel .carousel-indicators [data-bs-target] {
        background-color: #fff;
    }
    #localeCarousel .carousel-control-prev-icon,
    #localeCarousel .carousel-control-next-icon {
         background-color: rgba(0,0,0,0.4);
         border-radius: 50%;
         padding: 20px;
         background-size: 50%;
    }

    .signature-dishes {
        padding: 6rem 0;
        background-color: var(--guyot-cream);
    }

    .dish-card {
        border: none;
        background: #fff;
        transition: transform 0.3s ease, box-shadow 0.3s ease;
        height: 100%;
        overflow: hidden;
        border-radius: var(--guyot-border-radius);
    }

    .dish-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 30px rgba(103, 153, 200, 0.15);
    }

    .dish-img-wrapper {
        height: 300px;
        overflow: hidden;
        position: relative;
        border-radius: var(--guyot-border-radius);
    }

    .dish-img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.5s ease;
        border-radius: var(--guyot-border-radius);
    }

    .dish-card:hover .dish-img {
        transform: scale(1.05);
    }

    .dish-caption {
        padding: 1.5rem;
        text-align: center;
    }

    /* Celiac Section */
    .celiac-section {
        background-color: var(--guyot-primary);
        color: #fff;
        padding: 6rem 0;
        position: relative;
        overflow: hidden;
    }

    .celiac-bg-icon {
        position: absolute;
        right: -5%;
        bottom: -10%;
        opacity: 0.1;
        font-size: 20rem;
        color: #fff;
        pointer-events: none;
    }

    /* Blog Section */
    .blog-section {
        padding: 6rem 0;
        background-color: var(--guyot-secondary-cream);
    }

    .card-blog {
        border: none;
        background: transparent;
        transition: transform 0.3s ease; /* Smooth card lift */
    }

    .card-blog:hover {
        transform: translateY(-5px); /* Lift effect on hover */
    }

    /* Blog Image Zoom Effect Wrapper */
    .blog-img-wrapper {
        display: block;
        overflow: hidden; /* Contains the zoom */
        border-radius: var(--guyot-border-radius);
        margin-bottom: 1rem;
        height: 220px;
        width: 100%;
    }

    .card-blog img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.5s ease; /* Smooth zoom duration */
    }

    /* Hover Trigger */
    .card-blog:hover img {
        transform: scale(1.1); /* Scale up image */
    }

    .blog-title {
        font-size: 1.3rem;
        font-weight: 600;
        color: var(--guyot-dark);
        margin-bottom: 0.5rem;
        display: block;
        text-decoration: none;
        transition: color 0.3s ease;
    }

    .card-blog:hover .blog-title {
        color: var(--guyot-primary); /* Color change on hover */
    }

    /* Footer */
    footer {
        background-color: var(--guyot-dark);
        color: #fff;
        padding: 4rem 0 0.5rem;
    }

    .footer-legal-bar {
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        margin-top: 3rem;
        padding: 10px 0;
        font-size: 0.8rem;
    }

    .footer-legal-bar a {
        color: rgba(255, 255, 255, 0.6);
        margin-left: 15px;
        text-decoration: none;
    }
    .footer-legal-bar a:hover {
        color: #fff;
    }


    /* Sticky CTA Mobile */
    .sticky-mobile-cta {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        z-index: 1050;
        background: #fff;
        box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
        padding: 10px;
    }

    .sticky-btn-block {
        display: block;
        width: 100%;
        background-color: var(--guyot-primary);
        color: #fff;
        text-align: center;
        padding: 15px;
        font-weight: bold;
        text-transform: uppercase;
        text-decoration: none;
        letter-spacing: 1px;
        border-radius: var(--guyot-border-radius);
    }

    @media (min-width: 992px) {
        .hero-title { font-size: 5rem; }
        .sticky-mobile-cta { display: none; }
    }
