:root {
    --color-primary: #F7EAD9;
    --color-primary-contrast: #38312C;
    --color-primary-shade: #E3D2BA;
    --color-primary-dark: #D9C096;
    --color-secondary: #A94C2A;
    --color-secondary-shade: #8D3717;
    --kwtemplate-color-primary: #F7EAD9;
    --menu-height: 44px;
}

body {
    background-color: var(--color-primary) !important;
    overflow-x: hidden !important;
}

.border-top-primary-contrast {
    border-top: 1px solid var(--color-primary-contrast);
}

.border-left-primary-contrast {
    border-left: 1px solid var(--color-primary-contrast);
}

.color-primary {
    color: var(--color-primary);
}

.color-secondary {
    color: var(--color-secondary);
}

/*BUTTONS*/

.btn-secondary {
    display: inline-flex;
    align-items: center;
    background-color: var(--color-secondary);
    border: none;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.9rem;
    height: 44px;
}

.btn-secondary .label {
    padding: 0.75rem 1rem 0.75rem 1rem;
    color: var(--color-primary);
    transition: color 0.25s ease;
    width: fit-content;
    min-width: 124px;
    text-align: center;
}

.btn-secondary .icon {
    padding: 0.75rem 1rem;
    width: 44px;
    height: 44px;
    background-color: var(--color-secondary-shade);
    color: var(--color-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.btn-secondary:hover .label {
    background-color: var(--color-primary-contrast);
    color: var(--color-primary);
}

.btn-secondary:hover, .btn-secondary:focus {
    background-color: var(--color-primary-contrast);
}

.btn-secondary:hover .icon {
    background-color: var(--color-secondary);
    color: var(--color-primary);
    border: 1px solid var(--color-primary-contrast);
}


.cta-menu-link {
    background-color: var(--color-primary-contrast);
    color: var(--color-primary) !important;
}

.navbar {
    height: var(--menu-height);
}

.top-menu {
    height: var(--menu-height);
}

.menu-default {
    border: 0;
}

.language-btn {
    border: none;
    text-transform: uppercase;
    background-color: transparent;
    color: var(--color-primary-contrast);
    height: 14px;
    line-height: 14px;
    font-size: 14px;
}

.language-btn i {
    font-size: 10px;
    line-height: 14px;
}

div.mod-languages ul.lang-block, .metismenu-item div.mod-languages ul.lang-block {
    background-color: var(--color-primary-shade);
    opacity: 1 !important;
}

.lang-block .lang-active a, div.mod-languages ul li.lang-active {
    background-color: var(--color-primary-contrast) !important;
    color: var(--color-primary);
}

.mod-languages__select {
    display: flex;
    align-items: center;
    justify-content: center;
}

div.mod-languages ul.lang-block li {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

div.mod-languages ul li {
    margin-top: 10px;
    margin-bottom: 10px;
}

div.mod-languages {
    width: 101px;
    border-left: 1px solid var(--color-primary-contrast);
}

.topmenu, .topmenu .border-left-primary-contrast, .topmenu div {
    height: 14px;
    font-size: 14px;
    padding-left: 20px;
}

.navbar-brand a img {
    width: 241px;
    height: 59px;
}

.container-header .mod-list li.active > a {
    position: relative;
    color: var(--color-primary-contrast);
}

.container-header .mod-list li.active > a::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 6px;
    background-color: var(--color-secondary);
}

#homepage-slider .swiper {
    min-height: calc(100vh - 150px);
}

#homepage-slider .swiper .swiper-button-prev, #homepage-slider .swiper .swiper-button-next {
    opacity: 80%;
    color: var(--color-primary);
    font-size: 35px;
}

.homepage-title-intro {
    padding-left: 60px;
}

.homepage-why-brescia {
    margin-top: 180px;
    margin-bottom: 76px;
}

.homepage-why-brescia .card {
    max-width: 260px;
    min-height: 360px;
    margin-left: 60px;
}

.homepage-why-brescia .row {
    margin-top: 60px;
    margin-bottom: 56px;
}

.homepage-why-brescia .card-body {
    background-color: var(--color-primary);
    border: 1px solid var(--color-primary-contrast);
    position: relative;
    padding: 25px;
}

.homepage-why-brescia .card-body::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 64px;
    height: 7px;
    background-color: var(--color-secondary);
}

.three-reasons-section .card-body {
    max-width: 270px;
    min-width: 270px;
    border: none;
    padding: 13px 0;
    margin-left: 60px;
}

.kw-rooms-section {
    padding: 116px 0 121px 0;
    color: var(--color-primary);
    position: relative;
    isolation: isolate;
    background: var(--color-secondary, transparent); /* il tuo background attuale */
}

/* contenuto sempre sopra */
.kw-rooms-section > * {
    position: relative;
    z-index: 3;
}

.kw-rooms-section {
    position: relative;
    isolation: isolate;
}

.kw-rooms-section > * {
    position: relative;
    z-index: 3;
}

.kw-rooms-section::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 635px;
    bottom: 0;
    z-index: 2;
    pointer-events: none;

    --drop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cpath d='M10.5 1C7 6 3 11.5 3 16.5C3 21.7 6.6 25 10.5 25C14.4 25 18 21.7 18 16.5C18 11.5 14 6 10.5 1Z' fill='none' stroke='rgba(255,255,255,0.16)' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' transform='translate(29 22) scale(1.05)'/%3E%3C/svg%3E");

    --step: 80px;
    --half: calc(var(--step) / 2);
    --yoff: 24px; /* quanto “abbassare” la prima riga */

    background-image: var(--drop), var(--drop);
    background-repeat: repeat, repeat;
    background-size: var(--step) var(--step), var(--step) var(--step);
    background-position: 0 var(--yoff), var(--half) calc(var(--half) + var(--yoff));
}


/* opzionale: se vuoi controllare l'opacità in modo semplice */
.kw-rooms-section {
    --kw-pattern-opacity: 1;
}

.kw-rooms-section::after {
    opacity: var(--kw-pattern-opacity);
}


.kw-rooms-section h2 {
    min-height: 79px;
    margin: 0;
}

.kw-rooms-section .kw-rooms-description {
    max-width: 828px;
    text-align: center;
    margin: 11px auto 32px auto;
    min-height: 58px;
}

/* Card camere */
.kw-room-card {
    background-color: var(--color-primary);
    border: 1px solid var(--color-secondary-shade);
    border-radius: 0;
    overflow: hidden;
    text-align: left;
    height: 100%;
    display: flex;
    max-height: 434px;
}

.kw-room-card-inner {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.kw-room-card-image img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 300px;
}

/* Blocco testo */
.kw-room-card-body {
    position: relative;
    padding: 1.75rem 1.5rem 2rem;
    background-color: var(--color-primary);
}

/* Barretta colorata sopra il testo */
.kw-room-card-body::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    height: 7px;
    width: 64px;
    background-color: var(--color-secondary);
}

/* Titolo e testo */
.kw-room-card-title {
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
    color: #3c332a;
}

.kw-room-card-text {
    margin: 0;
    color: #3c332a;
}

.primary-border, .primary-border .icon {
    border: 1px solid var(--color-primary);
}

.kw-rooms-section .row {
    padding-bottom: 56px;
}

.kw-rooms-comfort-section {
    padding: 104px 0 67px 0;
}

.kw-rooms-comfort-section.rooms {
    padding-bottom: 105px;
}

.kw-rooms-comfort-section.ristorante {
    position: relative;
    padding-bottom: 0;
    margin-bottom: 75px;
}

.kw-rooms-comfort-section.ristorante .row:nth-of-type(2) {
    max-width: 932px;
    margin-left: auto;
    margin-right: auto;
}

.kw-rooms-comfort-section.ristorante:before {
    content: "(*) con tecnologie WineFit e Coravin";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}

.kw-guide-gastronomiche-section {
    padding: 166px 0 185px 0;
}

.itemid-325 .kw-guide-gastronomiche-section {
    padding: 110px 0 90px 0;
}

.kw-guide-gastronomiche-section .loghi {
    padding-left: 60px;
    padding-top: 59px;
    row-gap: 30px;
}

#kw_cookie .art-button {
    background-color: var(--color-primary);
    border: none;
    color: var(--color-primary-contrast) !important;
}

.wine-experience-section {
    min-height: 356px;
    background-size: cover;
    padding-bottom: 161px;
    position: relative;
}

.wine-experience-section.coffee {
    margin-top: 168px;
    padding-bottom: 0;
    margin-bottom: 186px;
    position: relative;
    isolation: isolate;
    overflow: visible;
}

.wine-experience-section > * {
    position: relative;
    z-index: 3;
}

.wine-experience-section:not(.vigneti, .restaurant)::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 178px;
    bottom: 0;
    z-index: 2;
    pointer-events: none;
    height: 286px;

    --step: 80px;
    --half: calc(var(--step) / 2);
    --yoff: 24px;

    --drop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cpath d='M10.5 1C7 6 3 11.5 3 16.5C3 21.7 6.6 25 10.5 25C14.4 25 18 21.7 18 16.5C18 11.5 14 6 10.5 1Z' fill='none' stroke='%23D9C096' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' transform='translate(29 22) scale(1.05)'/%3E%3C/svg%3E");

    background-image: var(--drop), var(--drop);
    background-repeat: repeat, repeat;
    background-size: var(--step) var(--step), var(--step) var(--step);
    background-position: 0 var(--yoff), var(--half) calc(var(--half) + var(--yoff));
}


.wine-experience-section .box {
    background-color: var(--color-primary);
    border: 1px solid var(--color-primary-contrast);
    padding: 33px 64px;
    margin-top: -101px;
    position: relative;
    width: fit-content !important;
}

.wine-experience-section.coffee .box {
    margin-top: -223px;
}

.wine-experience-section.wine .box div:first-child {
    padding-right: 130px;
}

.wine-experience-section.wine {
    position: relative;
    isolation: isolate;
    overflow: visible;
}

.wine-experience-section.wine > * {
    position: relative;
    z-index: 3;
}

.wine-experience-section.wine::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 178px;
    bottom: 0;
    z-index: 2;
    pointer-events: none;
    height: 286px;

    --step: 80px;
    --half: calc(var(--step) / 2);
    --yoff: 24px;

    --drop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cpath d='M10.5 1C7 6 3 11.5 3 16.5C3 21.7 6.6 25 10.5 25C14.4 25 18 21.7 18 16.5C18 11.5 14 6 10.5 1Z' fill='none' stroke='%23D9C096' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' transform='translate(29 22) scale(1.05)'/%3E%3C/svg%3E");

    background-image: var(--drop), var(--drop);
    background-repeat: repeat, repeat;
    background-size: var(--step) var(--step), var(--step) var(--step);
    background-position: 0 var(--yoff), var(--half) calc(var(--half) + var(--yoff));
}


.wine-experience-section .box::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 64px;
    height: 7px;
    background-color: var(--color-secondary);
}

.wine-experience-section .box h2 {
    min-height: 79px;
}

.wine-experience-section .box a {
    padding-left: 30px;
}

.wine-experience-section.restaurant {
    min-height: 566px;
    margin: 200px 0 58px 0;
}

.wine-experience-section.restaurant .box {
    max-width: 997px;
    margin-left: 0;
}

.coffee-section .container {
    max-width: 1260px;
}

.coffee-section .container a {
    padding-left: initial;
}

.faq-homepage .accordion-button {
    background-color: var(--color-primary) !important;
}

.faq-homepage .accordion-item .accordion-button {
    border-radius: 0 !important;
}

.faq-homepage {
    padding-left: 60px;
}

.faq-homepage .accordion-button p {
    margin: 0;
    font-weight: bold;
    font-size: 21px;
}

.faq-homepage .accordion {
    background-color: var(--color-primary);
}

.faq-homepage .accordion-item {
    border: none;
    border-bottom: 1px solid var(--color-primary-contrast); /* linea sotto */
}

.faq-homepage .accordion-button {
    background-color: var(--color-primary) !important;
    color: var(--color-primary-contrast);
    font-weight: 600;
    padding: 1rem 0;
    box-shadow: none;
}

.faq-homepage .accordion-button::after {
    background-image: none;
    content: "+";
    font-weight: 700;
    color: var(--color-primary-contrast);

    /* importante per la rotazione centrata */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    transform-origin: 50% 50%;
    transition: transform 0.2s ease;
}

/* quando aperto diventa – */
.faq-homepage .accordion-button:not(.collapsed)::after {
    content: "–";
}

/* niente bordo e niente background quando aperto */
.faq-homepage .accordion-button:not(.collapsed) {
    background-color: var(--color-primary) !important;
    color: var(--color-primary-contrast);
    box-shadow: none;
    padding-bottom: 0;
}

.faq-homepage .accordion-body {
    background-color: var(--color-primary);
    padding: 0.75rem 0 1rem 0;
}

.faq-homepage h4 {
    font-family: 'Alegreya Sans', sans-serif;
}

.featured-articles-section {
    padding: 76px 0 88px 0;
}


/* Lista articoli wine */
.mod-articles-wine {
    margin: 0;
    padding: 0;
}

.wine-card {
    background-color: var(--color-primary);
    margin-left: 60px;
    max-width: 270px;
}

/* Immagine */
.wine-card-image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    z-index: 0;
}

.wine-card-title {
    padding: 10px 0 15px 0;
}

.wine-card-title a {
    font-family: 'Playfair Display', sans-serif !important;
    font-size: 27px !important;
}

/* Etichetta categoria (NOVITÀ / ESPERIENZE / TERRITORIO) */
.wine-card-label {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 1 !important;
    background-color: var(--color-secondary);
    color: var(--color-primary);
    padding: 5px 8px;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
}

.review-section {
    padding-top: 123px;
    min-height: 469px;
}

.follow-us-section {
    padding: 104px 0 67px 0;
}

.follow-us-section .btn-secondary {
    margin-top: 51px;
}

.dove-siamo-section {
    padding: 67px 0 148px 0
}

.dove-siamo-section p {
    padding-top: 30px;
    padding-left: 60px;
}

.dove-siamo-section .modulo-mappa iframe {
    margin-top: 32px;
    border: 1px var(--color-primary-contrast) solid !important;
}

.richiesta-disponibilita-section h2, .richiesta-disponibilita-section p {
    color: var(--color-primary);
}

/* Overlay pattern per richiesta disponibilità (parte da 708px) */
.richiesta-disponibilita-section {
    min-height: 800px;
    padding: 87px 0 94px 0;
    position: relative;
    isolation: isolate;
}

.richiesta-disponibilita-section > * {
    position: relative;
    z-index: 3;
}

.richiesta-disponibilita-section::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 640px;
    bottom: 0;
    z-index: 2;
    pointer-events: none;

    --step: 80px;
    --half: calc(var(--step) / 2);
    --yoff: 24px;

    --drop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cpath d='M10.5 1C7 6 3 11.5 3 16.5C3 21.7 6.6 25 10.5 25C14.4 25 18 21.7 18 16.5C18 11.5 14 6 10.5 1Z' fill='none' stroke='rgba(255,255,255,0.16)' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' transform='translate(29 22) scale(1.05)'/%3E%3C/svg%3E");

    background-image: var(--drop), var(--drop);
    background-repeat: repeat, repeat;
    background-size: var(--step) var(--step), var(--step) var(--step);
    background-position: 0 var(--yoff), var(--half) calc(var(--half) + var(--yoff));
}


.richiesta-disponibilita-section .row {
    --gutter-x: 60px;
    padding: 0;
    justify-content: space-between;
}

.richiesta-disponibilita-section .form {
    max-width: 820px;
}

.richiesta-disponibilita-section .form .row {
    padding: 0;
    --gutter-x: 22px;
    --gutter-y: 22px;
}

.newsletter-section {
    padding: 126px 0 148px 0;
}

.newsletter-section .form {
    margin-top: 19px;
    padding-left: 60px;
}

.footer-noce {
    background-color: var(--color-secondary);
    color: var(--color-primary);
    padding: 75px 0 75px 0;
}

.footer-noce .contacts .kw-footer-address-icon {
    display: flex;
    align-items: center;
}

.footer-noce .contacts i {
    color: var(--color-primary-dark);
}

.footer-noce a {
    color: var(--color-primary);
    text-decoration: none;
}

.footer-noce a:hover {
    text-decoration: underline;
}

.footer-brand {
    font-size: 1.7rem;
    letter-spacing: 0.12em;
}

.art-footer h4.footer-title {
    font-family: 'Playfair Display', sans-serif !important;
    font-size: 31px;
    margin-bottom: 0.75rem;
    color: var(--color-primary);
}

.footer-menu li + li {
    margin-top: 0.25rem;
}

.footer-social {
    display: flex;
    align-items: center;
    margin-top: 25px;
}

.footer-social i {
    font-size: 25px;
    margin-right: 23px;
}

.footer-social a {
    display: flex;
    align-items: center;
}

.footer-copyright {
    color: var(--color-primary-contrast);
    height: 60px;
    text-align: center;
    display: flex;
    align-items: center;
}

.footer-copyright a {
    color: var(--color-primary-contrast);
}


.header-slider .section-container, .image-slider .section-container {
    position: relative;
    padding: 0;
}

.header-slider .swiper {
    min-height: 697px;
    width: 50%;
    max-width: 632px;
    justify-content: end;
    background-color: var(--color-primary);
    margin-right: 0 !important;
    padding-bottom: 17px;
}

.image-slider .swiper {
    min-height: 671px;
    max-width: 600px;
    padding-bottom: 17px;
}

.header-slider .swiper-slide {
    background-repeat: no-repeat;
    background-size: cover;
    background-position: right center;
}

.wine-hero-card {
    background-color: var(--color-secondary);
    color: var(--color-primary);
    padding: 42px 67px 39px 57px;
    max-width: 820px;
    margin: 0; /* niente margine verticale */
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
}

.wine-hero-card h1, .wine-hero-card h2, .wine-hero-card h3, .wine-hero-card h4 {
    color: var(--color-primary);
}

.header-slider:not(.rooms) .wine-hero-card h1 {
    font-size: 29px;
    line-height: 34px;
}

.wine-hero-card h2 {
    font-size: 50px;
    line-height: 55px;
    margin-bottom: 34px !important;
}

.header-slider:is(.rooms) .wine-hero-card h2 {
    font-size: 29px;
    line-height: 33px;
}

.wine-hero-card p {
    font-size: 21px;
    line-height: 26px;
}

.header-slider .swiper-pagination, .image-slider .swiper-pagination {
    bottom: 0 !important;
    right: 0 !important;
    width: auto;
    text-align: end;
    height: 17px;
}

.header-slider .swiper-pagination-bullet, .image-slider .swiper-pagination-bullet {
    width: 64px;
    height: 7px;
    background-color: #d6c7b6;
    opacity: 1;
    margin-left: 8px !important;
    margin-bottom: 5px !important;
    border-radius: 0;
    margin-right: 0 !important;
}

.header-slider .swiper-pagination-bullet-active, .image-slider .swiper-pagination-bullet-active {
    background-color: var(--color-primary-contrast);
}

.citazione-section {
    padding: 80px 0 79px 0;
}

.citazione-section .box {
    padding-top: 27px;
    position: relative;
}

.citazione-section .box::before {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 0;
    width: 64px;
    height: 7px;
    background-color: var(--color-secondary);
}

.citazione-section .box {
    display: flex;
}

.citazione-section .box .author {
    text-align: center;
    font-size: 17px;
    line-height: 22px;
    margin-top: 25px;
}

.breakfast-section {
    padding: 147px 0 0 0;
}

.breakfast-box {
    padding-left: 15px;
}

.restaurant-section {
    padding: 147px 0 0 0;
}

.restaurant-section.restaurant {
    padding: 75px 0 55px 0;
}

.restaurant-box {
    padding-right: 55px;
}

.wine-faq-section {
    padding: 145px 0 200px 0;
}

.prenota-section {
    margin: 139px 0 0 0;
    padding: 0 0 92px 0;
}

.prenota-section .modulo-mappa {
    margin-top: -200px;
    margin-bottom: 82px;
}

.prenota-section li span {
    color: var(--color-primary) !important;
}

.art-footer h2 {
    font-family: 'Playfair Display', serif !important;
}

.bullet-with-icon {
    display: flex;
    align-items: flex-start;
    gap: 6px;
}

.bullet-icon {
    width: 9px;
    height: 13px;
    flex: 0 0 auto;
    fill: var(--color-primary-contrast);
}

.card {
    background-color: transparent;
}

.corpo-dependance-section .card-box {
    --gutter-x: 60px;
}

.corpo-dependance-section .card-box li {
    font-size: 17px;
    align-items: center;
}

.cantina-section {
    padding: 58px 0 75px 0;
}

.booking-hero {
    margin-top: -216.235px;
    position: relative;
    z-index: 1;
    overflow: visible;
}

.booking-hero__wrap {
    position: relative;
}

.booking-hero__top {
    background: var(--color-secondary);
    color: var(--color-primary);
    display: flex;
    justify-content: space-between;
    /*gap: 24px;*/
    padding: 21px 45px 22px 26px;
    max-width: 820px;
    align-items: center;
    height: 156px;
}

.booking-hero__title {
    height: 123px;
    color: var(--color-primary);
}

.booking-hero__top-right li {
    font-size: 17px;
}

.booking-hero__top-right .bullet-with-icon {
    align-items: center;
}

.booking-hero__top-right .bullet-with-icon svg {
    fill: var(--color-primary);
}

.booking-hero__bottom h3 {
    color: var(--color-primary);
    min-width: 254px;
}

.booking-hero__bottom {
    background: #3a332f;
    display: flex;
    align-items: stretch;
    gap: 16px;
    padding: 20px 24px 14px 29px;
    height: 120px;
    max-width: 1260px;
}

.booking-hero__kicker {
    font-family: "Playfair Display", serif;
    font-size: 26px;
    line-height: 1.05;
}

.booking-hero__fields {
    display: flex;
    gap: 29px;
    flex: 1;
    align-items: center;
}

.booking-hero__field {
    background: #fff;
    color: #2f2a26;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    min-width: 410px;
    height: 65px;
}

.booking-hero__icon {
    width: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}

.booking-hero__label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #6b625b;
}

.booking-hero__value {
    font-size: 16px;
    font-weight: 600;
}

.booking-hero__cta {
    width: 65px;
    height: 65px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-secondary);
    text-decoration: none;
    margin: auto 0;
}

.booking-hero__cta i {
    color: var(--color-primary);
    font-size: 33px;
}

.booking-hero__cta:hover {
    background: var(--color-secondary-shade);
    color: var(--color-primary);
}

.homepage-article {
    margin-top: 107px;
    margin-bottom: 0;
}

.faq-section-home {
    padding: 76px 0 76px 0;
}

.form .form-control {
    border-radius: 0;
    border: none;
}

.form .form-control::placeholder {
    text-transform: uppercase;
    letter-spacing: .02em;
}

.richiesta-disponibilita-section .form .form-check-label {
    color: var(--color-primary);
}

.form .form-check-input {
    border-radius: 0;
    border: none;
}

.richiesta-disponibilita-section .form-check-input:checked[type=checkbox] {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%2338312C' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
}

.richiesta-disponibilita-section .form-check-input:checked {
    background-color: var(--color-primary) !important;
}

.richiesta-disponibilita-section .form .btn-secondary {
    border: 1px solid var(--color-primary);
}

.richiesta-disponibilita-section .form .btn-secondary .icon {
    border-top: 1px solid var(--color-primary);
    border-bottom: 1px solid var(--color-primary);
}

.richiesta-disponibilita-section .form .form-check-label a {
    color: var(--color-primary-contrast);
}

.form-check-input:checked[type=checkbox] {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
}

.form-check-input:checked {
    background-color: var(--color-primary-contrast) !important;
}

.newsletter-section .form .row {
    --gutter-y: 22px;
}

.restaurant-resume h2, .restaurant-resume h3 {
    color: var(--color-primary);
}

.restaurant-resume .card-body {
    background-color: var(--color-secondary);
}

.restaurant-resume .card-body::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 64px;
    height: 7px;
    background-color: var(--color-primary);
}

.restaurant-resume .cards {
    justify-content: space-between;
    color: var(--color-primary);
}

.restaurant-resume .cards a {
    color: var(--color-primary);
    text-decoration: underline !important;
}

.restaurant-resume .card-body {
    max-width: 270px;
    min-width: 270px;
    border: none;
    padding: 13px 0;
}

.restaurant-resume {
    position: relative;
    isolation: isolate;
    min-height: 809px;
}

.restaurant-resume > * {
    position: relative;
    z-index: 3;
}

.restaurant-resume::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 540px;
    bottom: 0;
    z-index: 2;
    pointer-events: none;

    --step: 80px;
    --half: calc(var(--step) / 2);
    --yoff: 24px;

    --drop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cpath d='M10.5 1C7 6 3 11.5 3 16.5C3 21.7 6.6 25 10.5 25C14.4 25 18 21.7 18 16.5C18 11.5 14 6 10.5 1Z' fill='none' stroke='rgba(255,255,255,0.16)' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' transform='translate(29 22) scale(1.05)'/%3E%3C/svg%3E");

    background-image: var(--drop), var(--drop);
    background-repeat: repeat, repeat;
    background-size: var(--step) var(--step), var(--step) var(--step);
    background-position: 0 var(--yoff), var(--half) calc(var(--half) + var(--yoff));
}

.tartare-image-restaurant {
    overflow: visible;
    z-index: 1;
    margin-top: -30px;
}

.itemid-325 .wine-experience-section {
    margin-bottom: 160px;
}

h1.category-title {
    color: var(--color-primary);
}

.wine-food-section {
    padding: 21px 0 124px 0;
}

.itemid-325 .wine-food-section {
    padding: 21px 0 160px 0;
}

/* per simulare il crop delle immagini alte */
.object-cover {
    object-fit: cover;
    height: 100%;
    display: block;
}


@media (min-width: 992px) {
    .wine-food-section .col-lg-3 {
        display: flex;
        flex-direction: column;
    }
}

.three-reasons-section .card-body {
    margin-bottom: 20px;
}

.wine-card {
    margin-bottom: 40px;
}

/* ========== CORREZIONI RESPONSIVE GLOBALI ========== */

/* Immagini */
img {
    max-width: 100%;
    height: auto;
}

/* Hero iniziali: slider + card */
.header-slider .swiper {
    min-height: 420px;
    width: 100%;
    max-width: none;
}

.wine-hero-card {
    position: static;
    transform: none;
    max-width: 100%;
    padding: 24px 20px;
    margin-top: 16px;
}

.header-slider:not(.rooms) .wine-hero-card h1 {
    font-size: 24px;
    line-height: 1.25;
}

.wine-hero-card h2 {
    font-size: 32px;
    line-height: 1.25;
    margin-bottom: 20px !important;
}

.header-slider:is(.rooms) .wine-hero-card h2 {
    font-size: 24px;
    line-height: 1.25;
}

.wine-hero-card p {
    font-size: 16px;
    line-height: 1.4;
}

/*!* Booking hero: versione mobile a colonna *!
.booking-hero {
    margin-top: 0;
}*/

.booking-hero__top,
.booking-hero__bottom {
    background: #3a332f;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 20px 16px;
    height: auto;
    max-width: 100%;
}

.booking-hero__top {
    background: var(--color-secondary);
}

.booking-hero__title {
    height: auto;
}

.booking-hero__fields {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    align-items: stretch;
}

.booking-hero__field {
    min-width: 0;
    width: 100%;
    height: auto;
}

.booking-hero__cta {
    width: 100%;
    height: 56px;
    margin-top: 8px;
    justify-content: center;
}

/* Card camere e card orizzontali */
.kw-room-card {
    flex-direction: column;
    max-height: none;
}

.kw-room-card-image img {
    max-width: 100%;
}

.three-reasons-section .card-body,
.homepage-why-brescia .card,
.wine-card {
    margin-left: 0;
    max-width: 100%;
}

/* Loghi guide gastronomiche */
.kw-guide-gastronomiche-section .loghi {
    padding-left: 16px;
    padding-right: 16px;
}

/* Spaziature orizzontali troppo grandi su mobile */
.homepage-title-intro,
.faq-homepage,
.newsletter-section .form,
.dove-siamo-section p,
.breakfast-box,
.restaurant-box {
    padding-left: 16px;
    padding-right: 16px;
}

.homepage-article {
    margin-top: 40px;
}

/* Pattern e sezioni molto alte: mobile semplificato */
/*.kw-rooms-section::after,
.richiesta-disponibilita-section::after,*/
.restaurant-resume::after,
.wine-experience-section::after,
.wine-experience-section.wine::after {
    display: none;
}

.kw-rooms-section,
.richiesta-disponibilita-section,
.restaurant-resume {
    min-height: auto;
}

.wine-experience-section .box {
    padding: 24px 20px;
    width: 100% !important;
}

.wine-experience-section.coffee .box {
    margin-top: 24px;
}

/* Sezione FAQ homepage */
.faq-homepage {
    padding-left: 16px;
    padding-right: 16px;
}

/* Dove siamo / mappe */
.dove-siamo-section {
    padding: 40px 0 80px 0;
}

/* Wine / featured cards titolo più piccolo su mobile */
.wine-card-title a {
    font-size: 21px !important;
}

/* Sezione wine-food (mosaico immagini) */
.wine-food-section {
    padding: 40px 0 80px 0;
}

/* Footer: allineamenti più centrati su mobile */
.footer-noce {
    padding: 40px 0 40px 0;
}

#manageCookieButton {
    background: var(--color-primary-contrast);
}

.responsive ul.art-hmenu > li > a {
    height: 44px;
    line-height: 44px;
}

.responsive a.cta-menu-link:link, .responsive a.cta-menu-link:visited {
    background-color: var(--color-primary-contrast) !important;
    color: white !important;
    padding: 0 17px !important;
}

.responsive a.cta-menu-link:hover, .responsive a.cta-menu-link:focus {
    background-color: white !important;
    border: 1px solid var(--color-primary-contrast) !important;
    color: var(--color-primary-contrast) !important;
}

.header-title-bg {
    background-color: var(--color-secondary);
    color: var(--color-primary);
    width: fit-content;
}

.header-title-bg h1 {
    color: var(--color-primary);
}

.art-blog_2 .wine-card {
    background-color: var(--color-primary);
    /* niente bordo */
    border: none;
    width: 100%;
    max-width: 100%;
    margin-bottom: 40px;
    margin-left: 0;
}


/* corpo card */
.wine-card-body {
    padding: 10px;
}

/* titolo già definito, aggiungo solo colore/hover */
.wine-card-title {
    padding: 10px 0 15px 0;
}

.wine-card-title a {
    color: var(--color-primary-contrast);
    text-decoration: none;
}

.wine-card-title a:hover {
    text-decoration: underline;
}

/* testo intro */
.wine-card-text {
    font-size: 17px;
    line-height: 1.5;
    color: var(--color-primary-contrast);
}

/* footer con link LEGGI TUTTA */
.wine-card-footer {
    margin-top: 18px;
}

.wine-card-readmore {
    font-size: 14px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-secondary);
    text-decoration: none;
}

.wine-card-readmore:hover {
    text-decoration: underline;
}

.contact-bot-menu {
    position: fixed !important;
    width: 100%;
    padding: 1rem 0;
    box-shadow: 0 8px 20px -6px #cdbaa1;
    border-top: 1px solid var(--color-primary-contrast);
    z-index: 1;
}

.mobile-lang button {
    font-size: 18px !important;
    padding: 20px 0 !important;
    height: 44px;
    border-top: 1px solid var(--color-primary-contrast);
    margin-top: 30px;
    z-index: 2;
}

.filterbox {
    display: flex;
    align-items: center;
    margin-top: 20px;
}

.filterbox > i {
    font-size: 22px;
    margin-right: 10px;
}

.filterbox > h4 {
    margin: 0;
}

.filterbox > select.form-select {
    margin-left: 40px;
    max-width: 300px;
}

#default-header-image.art-sfondo-faq {
    background-position-y: 77%;
}

.kw-apartments.kw-rooms-comfort-section .row {
    margin: 0;
}

#system-message-container joomla-alert .joomla-alert--close, #system-message-container joomla-alert .joomla-alert-button--close {
    display: none;
}

#system-message-container joomla-alert div.alert-wrapper .alert-message {
    padding: 5px;
}

#system-message-container joomla-alert div .alert-message h2, #system-message-container joomla-alert div .alert-message  p {
    color: #000;
}

/* ========== BREAKPOINT >= 768px (TABLET) ========== */

@media (min-width: 768px) {

    .homepage-title-intro,
    .faq-homepage,
    .newsletter-section .form,
    .dove-siamo-section p,
    .breakfast-box,
    .restaurant-box {
        padding-left: 60px;
        padding-right: 0;
    }

    .homepage-article {
        margin-top: 107px;
    }

    .wine-experience-section .box {
        width: fit-content !important;
    }
}

/* ========== BREAKPOINT >= 992px (DESKTOP) ========== */
@media (min-width: 992px) {

    /* Hero layout originale */
    .header-slider .swiper {
        min-height: 697px;
        width: 50%;
        max-width: 632px;
        padding-bottom: 17px;
    }

    .wine-hero-card {
        background-color: var(--color-secondary);
        padding: 42px 67px 39px 57px;
        max-width: 820px;
        margin: 0;
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
    }

    .header-slider:not(.rooms) .wine-hero-card h1 {
        font-size: 29px;
        line-height: 34px;
    }

    .wine-hero-card h2 {
        font-size: 50px;
        line-height: 55px;
        margin-bottom: 34px !important;
    }

    .header-slider:is(.rooms) .wine-hero-card h2 {
        font-size: 29px;
        line-height: 33px;
    }

    .wine-hero-card p {
        font-size: 21px;
        line-height: 26px;
    }

    /* Booking hero desktop originale */
    .booking-hero {
        margin-top: -256.235px;
    }

    .booking-hero__top,
    .booking-hero__bottom {
        flex-direction: row;
        align-items: center;
        gap: 16px;
        max-width: 1260px;
    }

    .booking-hero__top {
        padding: 21px 45px 22px 26px;
        height: 156px;
        max-width: 820px;
    }

    .booking-hero__bottom {
        height: 120px;
        padding: 20px 24px 14px 29px;
    }

    .booking-hero__fields {
        flex-direction: row;
        gap: 29px;
        align-items: center;
    }

    .booking-hero__field {
        min-width: 410px;
        height: 65px;
    }

    .booking-hero__cta {
        width: 65px;
        height: 65px;
        margin-top: 0;
    }

    /* Card camere e card varie desktop */
    .kw-room-card {
        flex-direction: row;
        max-height: 434px;
    }

    .kw-room-card-image img {
        max-width: 300px;
    }

    .homepage-why-brescia .card {
        max-width: 260px;
        margin-left: 60px;
    }

    .three-reasons-section .card-body,
    .wine-card {
        max-width: 270px;
        margin-left: 60px;
    }

    /* Pattern riattivati */
    .kw-rooms-section::after,
    .wine-experience-section::after,
    .wine-experience-section.wine::after,
    .richiesta-disponibilita-section::after,
    .restaurant-resume::after {
        display: block;
    }

    .kw-rooms-section {
        min-height: 356px;
    }

    .richiesta-disponibilita-section {
        min-height: 800px;
    }

    .restaurant-resume {
        min-height: 809px;
    }

    /* Wine-food sezione: colonne verticali */
    .wine-food-section .col-lg-3 {
        display: flex;
        flex-direction: column;
    }

    .kw-guide-gastronomiche-section .loghi img {
        max-width: 204px;
    }

    .featured-articles-section .row:nth-child(2) {
        padding-top: 69px;
    }

}

/* ===== TABLET (min-width: 576px e max-width: 991.98px) ===== */
@media (min-width: 576px) and (max-width: 991.98px) {

    h1 {
        font-size: 38px;
    }

    /* ~75% di 50 */
    h2 {
        font-size: 38px;
    }

    h3 {
        font-size: 24px;
    }

    h4 {
        font-size: 18px;
    }

    p {
        font-size: 16px;
    }

    .header-slider .swiper {
        min-height: 420px;
        width: 100%;
        max-width: none;
    }

    .wine-hero-card {
        position: static;
        transform: none;
        max-width: 100%;
        padding: 24px 24px;
        margin-top: 24px;
    }

    .homepage-title-intro,
    .faq-homepage,
    .newsletter-section .form,
    .dove-siamo-section p,
    .breakfast-box,
    .restaurant-box {
        padding-left: 40px;
        padding-right: 40px;
    }

    .kw-room-card {
        flex-direction: column;
        max-height: none;
    }

    .booking-hero__top,
    .booking-hero__bottom {
        flex-direction: column;
        align-items: stretch;
        max-width: 100%;
        height: auto;
    }

    .booking-hero__fields {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 16px;
    }

    .booking-hero__field {
        flex: 1 1 45%;
        min-width: 0;
    }

    .booking-hero__cta {
        width: auto;
        padding: 0 24px;
        margin-top: 8px;
    }

    .wine-experience-section .box {
        margin-top: 24px;
        width: fit-content !important;
    }
}

@media (min-width: 1200px) {

    .tartare-image-restaurant {
        margin-top: -248px;
    }

}

/* ===== COMPATTAZIONE SEZIONI MOBILE + TABLET (max-width: 991.98px) ===== */
@media (max-width: 991.98px) {

    /* Sezioni principali: meno spazio sopra/sotto */
    .homepage-why-brescia,
    .kw-rooms-section,
    .kw-rooms-comfort-section,
    .kw-guide-gastronomiche-section,
    .wine-experience-section,
    .featured-articles-section,
    .review-section,
    .follow-us-section,
    .dove-siamo-section,
    .richiesta-disponibilita-section,
    .newsletter-section,
    .restaurant-resume,
    .wine-faq-section,
    .prenota-section,
    .breakfast-section,
    .restaurant-section,
    .citazione-section,
    .wine-food-section,
    .faq-section-home {
        padding-top: 40px;
        padding-bottom: 40px;
        margin-top: 0;
        margin-bottom: 0;
    }

    /* Alcune sezioni ancora più compatte */
    .follow-us-section,
    .newsletter-section,
    .review-section,
    .wine-faq-section,
    .prenota-section {
        padding-top: 32px;
        padding-bottom: 32px;
    }

    /* Riduzione padding interno dei box */
    .wine-experience-section .box,
    .wine-experience-section.restaurant .box,
    .kw-room-card-body,
    .restaurant-resume .card-body,
    .citazione-section .box {
        padding-top: 18px;
        padding-bottom: 18px;
        padding-left: 18px;
        padding-right: 18px;
    }

    /* Righe interne: meno spazio verticale */
    .homepage-why-brescia .row,
    .featured-articles-section .row:nth-child(2),
    .kw-rooms-section .row,
    .newsletter-section .form .row,
    .richiesta-disponibilita-section .form .row {
        margin-top: 24px;
        margin-bottom: 24px;
        --gutter-y: 16px;
    }

    .booking-hero {
        margin-top: -150px;
    }

    h1, h2, h3, h4,
    h1.category-title {
        margin-top: 8px;
        margin-bottom: 16px;
    }

    .homepage-title-intro,
    .faq-homepage,
    .newsletter-section .form,
    .dove-siamo-section p,
    .breakfast-box,
    .restaurant-box,
    .wine-card,
    .kw-guide-gastronomiche-section .loghi {
        padding-left: 16px;
        padding-right: 16px;
        margin-left: 0;
        max-width: 100%;
    }

    .homepage-why-brescia div[class^='col-'] {
        padding-left: 16px;
        padding-right: 16px;
    }

    .dove-siamo-section .modulo-mappa iframe,
    .prenota-section .modulo-mappa {
        margin-top: 16px;
        margin-bottom: 32px;
    }

    .footer-noce {
        padding-top: 32px;
        padding-bottom: 32px;
    }

}

@media (max-width: 575.99px) {

    h1 {
        font-size: 30px;
    }

    h2 {
        font-size: 28px;
    }

    h3 {
        font-size: 22px;
    }

    h4 {
        font-size: 18px;
    }

    p {
        font-size: 15px;
    }

    .image-slider {
        margin-bottom: 30px;
    }

    .header-slider .swiper {
        margin-bottom: 30px;
    }

}
