.elementor-1941 .elementor-element.elementor-element-e219b62{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1941 .elementor-element.elementor-element-f11ec4b{width:100%;max-width:100%;}.elementor-1941 .elementor-element.elementor-element-f11ec4b > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1941 .elementor-element.elementor-element-68170a1{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1941 .elementor-element.elementor-element-68170a1.e-con{--align-self:stretch;}.elementor-1941 .elementor-element.elementor-element-12525e7{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1941 .elementor-element.elementor-element-cf72cec > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-1941 .elementor-element.elementor-element-fba8486{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1941 .elementor-element.elementor-element-e05b11a{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-1941 .elementor-element.elementor-element-d8b0eea > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}@media(min-width:768px){.elementor-1941 .elementor-element.elementor-element-e219b62{--content-width:100%;}.elementor-1941 .elementor-element.elementor-element-12525e7{--width:50%;}.elementor-1941 .elementor-element.elementor-element-fba8486{--width:50%;}}/* Start custom CSS for html, class: .elementor-element-f11ec4b *//* =========================================================
   BASE
   ========================================================= */

#masthead,
#colophon,
.entry-header {
    display:none!important;
}

#page,
#content,
.site-content,
.ast-container,
#primary,
#main,
.ast-article-single,
.entry-content,
.elementor-section-wrap,
.elementor-widget-html,
.elementor-widget-html > .elementor-widget-container {
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
}

body {
    margin:0!important;
    background:#f3eee5;
    color:#302a26;
}

.ct-page {
    --cream:#f3eee5;
    --paper:#faf7f0;
    --green:#26372d;
    --green-dark:#172219;
    --wine:#623a35;
    --terracotta:#c78a60;
    --ink:#302a26;
    --muted:#71675f;
    --line:rgba(74,53,45,.18);
    --serif:"Cormorant Garamond",serif;
    --sans:"Montserrat",Arial,sans-serif;

    overflow:hidden;
    background:var(--cream);
    color:var(--ink);
    font-family:var(--sans);
}

.ct-page * {
    box-sizing:border-box;
}

.ct-page img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.ct-page figure {
    margin:0;
}

.ct-page a {
    color:inherit;
}

.ct-wrap {
    width:min(1180px,calc(100% - 80px));
    margin-inline:auto;
}

.ct-kicker {
    margin:0 0 20px;
    color:var(--terracotta);
    font:600 11px/1.2 var(--sans);
    letter-spacing:.28em;
    text-transform:uppercase;
}

.ct-title {
    margin:0;
    color:var(--wine);
    font:500 clamp(52px,6vw,86px)/.9 var(--serif);
    letter-spacing:-.025em;
}

.ct-body {
    color:#594f48;
    font:400 15px/1.75 var(--sans);
}

.ct-link {
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding-bottom:5px;
    border-bottom:1px solid currentColor;
    color:#9e6546;
    text-decoration:none;
    font:600 10px/1.2 var(--sans);
    letter-spacing:.12em;
    text-transform:uppercase;
}

.ct-link:after {
    content:"→";
    transition:transform .3s ease;
}

.ct-link:hover:after {
    transform:translateX(5px);
}

.ct-button {
    display:inline-flex;
    padding:18px 25px;
    background:#435548;
    color:#fff!important;
    text-decoration:none;
    font:600 10px/1 var(--sans);
    letter-spacing:.13em;
    text-transform:uppercase;
    transition:background .3s,transform .3s;
}

.ct-button:hover {
    background:#526657;
    transform:translateY(-2px);
}

.ct-reveal {
    opacity:0;
    transform:translateY(28px);
    transition:
        opacity .9s ease,
        transform .9s cubic-bezier(.2,.7,.2,1);
}

.ct-reveal.is-visible {
    opacity:1;
    transform:none;
}


/* =========================================================
   WPML - GESTIONE ITALIANO / INGLESE
   ========================================================= */

/* Italiano come lingua predefinita */
.ct-lang-en {
    display:none!important;
}

/* Quando WPML imposta la pagina in inglese */
html[lang^="en"] .ct-lang-it {
    display:none!important;
}

html[lang^="en"] .ct-lang-en {
    display:initial!important;
}

/* Elementi che devono essere blocchi */
html[lang^="en"] p.ct-lang-en,
html[lang^="en"] div.ct-lang-en {
    display:block!important;
}

/* Elementi dentro link */
html[lang^="en"] a .ct-lang-en,
html[lang^="en"] .ct-lang-en.ct-inline {
    display:inline!important;
}


/* =========================================================
   HEADER
   ========================================================= */

.ct-header {
    position:absolute;
    inset:0 0 auto;
    z-index:20;
    height:138px;
    border-bottom:1px solid rgba(255,255,255,.25);
    color:#fff;
}

.ct-header-inner {
    height:100%;
    width:min(1180px,calc(100% - 80px));
    margin:auto;
    display:grid;
    grid-template-columns:190px 1fr 145px;
    align-items:center;
    gap:34px;
}

.ct-logo {
    display:block;
    width:155px;
    height:78px;
    overflow:hidden;
}

.ct-logo img {
    object-position:center 42%;
    filter:brightness(0) invert(1);
}

.ct-nav {
    display:flex;
    justify-content:center;
    align-items:center;
    gap:30px;
}

.ct-nav a {
    color:#fff;
    text-decoration:none;
    font:500 11px/1 var(--sans);
    letter-spacing:.11em;
    text-transform:uppercase;
    white-space:nowrap;
}

.ct-nav a:hover,
.ct-nav a[aria-current="page"] {
    color:#e9b68e;
}

.ct-book {
    justify-self:end;
    padding:18px 24px;
    background:rgba(52,70,58,.92);
    color:#fff;
    text-decoration:none;
    font:600 10px/1 var(--sans);
    letter-spacing:.12em;
    text-transform:uppercase;
}

.ct-menu-toggle {
    display:none;
    justify-self:end;
    border:1px solid rgba(255,255,255,.5);
    background:transparent;
    color:#fff;
    padding:11px 13px;
    font:600 10px var(--sans);
    letter-spacing:.12em;
    text-transform:uppercase;
}


/* =========================================================
   HERO
   ========================================================= */

.ct-hero {
    position:relative;
    width:100%;
    min-height:100vh;
    min-height:100svh;
    display:flex;
    align-items:flex-end;
    color:#fff;
    background:#17130f;
}

.ct-hero-bg {
    position:absolute;
    inset:0;

    background-image:
        linear-gradient(
            90deg,
            rgba(17,12,9,.88) 0%,
            rgba(17,12,9,.52) 48%,
            rgba(17,12,9,.14) 78%
        ),
        url("https://www.ilcaveau.restaurant/wp-content/uploads/2026/10/P1000368-scaled.jpg");

    background-position:center 58%;
    background-size:cover;

    transform:scale(1.03);
    animation:ctHero 12s ease-out both;
}

@keyframes ctHero {
    from {
        transform:scale(1.09);
    }

    to {
        transform:scale(1.03);
    }
}

.ct-hero-content {
    position:relative;
    z-index:2;
    width:min(1180px,calc(100% - 80px));
    margin:0 auto;
    padding:235px 0 95px;
}

.ct-hero .ct-kicker {
    color:#efc5a5;
}

.ct-hero h1 {
    max-width:900px;
    margin:0;
    color:#fff!important;
    font:500 clamp(76px,8.1vw,128px)/.82 var(--serif);
    letter-spacing:-.035em;
    text-shadow:0 3px 28px rgba(0,0,0,.35);
}

.ct-hero h1 em {
    color:#dda074;
    font-style:normal;
}

.ct-hero-copy {
    max-width:620px;
    margin:30px 0 0;
    color:rgba(255,255,255,.92);
    font:400 clamp(16px,1.3vw,20px)/1.6 var(--sans);
}


/* =========================================================
   CONTATTI
   ========================================================= */

.ct-contacts {
    padding:135px 0 145px;
}

.ct-contacts-grid {
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:100px;
    align-items:start;
}

.ct-contacts-copy .ct-body {
    max-width:470px;
    margin:35px 0 42px;
}

.ct-details {
    border-top:1px solid var(--line);
}

.ct-detail {
    display:grid;
    grid-template-columns:125px 1fr;
    gap:24px;
    padding:25px 0;
    border-bottom:1px solid var(--line);
}

.ct-detail-label {
    color:#a46d50;
    font:600 9px/1.4 var(--sans);
    letter-spacing:.18em;
    text-transform:uppercase;
}

.ct-detail-value,
.ct-detail-value a {
    color:#403934;
    text-decoration:none;
    font:500 14px/1.65 var(--sans);
}

.ct-detail-value a:hover {
    color:#a46d50;
}

.ct-contact-image {
    position:relative;
    height:650px;
}

.ct-contact-main {
    position:absolute;
    inset:0 12% 70px 0;
}

.ct-contact-small {
    position:absolute;
    right:0;
    bottom:0;
    width:49%;
    height:315px;
    border:11px solid var(--cream);
    box-shadow:0 24px 60px rgba(44,34,27,.14);
}


/* =========================================================
   PRENOTAZIONE / OCTOTABLE
   ========================================================= */

.ct-reservation {
    padding:125px 0 140px;
    background:var(--green);
    color:#fff;
}

.ct-reservation-grid {
    display:grid;
    grid-template-columns:.72fr 1.28fr;
    gap:80px;
    align-items:start;
}

.ct-reservation .ct-title {
    color:#fff;
}

.ct-reservation-copy .ct-body {
    max-width:430px;
    margin:32px 0;
    color:rgba(255,255,255,.76);
}

.ct-reservation-note {
    padding-left:20px;
    border-left:1px solid rgba(231,183,145,.55);
    color:rgba(255,255,255,.72);
    font:400 12px/1.7 var(--sans);
}

.ct-octo-shell {
    min-height:520px;
    padding:44px;
    background:var(--paper);
    color:var(--ink);
    box-shadow:0 25px 65px rgba(0,0,0,.2);
}

.ct-octo-top {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-bottom:32px;
    padding-bottom:25px;
    border-bottom:1px solid var(--line);
}

.ct-octo-top strong {
    color:var(--wine);
    font:500 36px/1 var(--serif);
}

.ct-octo-top span {
    color:#a46d50;
    font:600 9px var(--sans);
    letter-spacing:.18em;
    text-transform:uppercase;
}

.ct-octo-placeholder {
    min-height:360px;
    display:grid;
    place-items:center;
    padding:40px;
    border:1px dashed rgba(98,58,53,.35);
    background:#f6f0e7;
    text-align:center;
}

.ct-octo-placeholder-inner {
    max-width:410px;
}

.ct-octo-placeholder strong {
    display:block;
    margin-bottom:15px;
    color:var(--wine);
    font:500 34px/1 var(--serif);
}

.ct-octo-placeholder p {
    margin:0 0 24px;
    color:var(--muted);
    font:400 13px/1.7 var(--sans);
}

.ct-octo-elementor {
    position:relative;
    z-index:5;
    width:min(760px,calc(100% - 80px))!important;
    max-width:760px!important;
    margin:-92px auto 110px!important;
    padding:42px!important;
    background:#faf7f0;
    box-shadow:0 25px 65px rgba(0,0,0,.2);
}

.ct-octo-elementor > .e-con-inner {
    padding:0!important;
}

.ct-octo-elementor .elementor-widget-shortcode,
.ct-octo-elementor .elementor-shortcode {
    width:100%;
}


/* =========================================================
   MAPPA
   ========================================================= */

.ct-location {
    padding:145px 0 155px;
}

.ct-location-head {
    display:grid;
    grid-template-columns:.7fr 1.3fr;
    gap:85px;
    align-items:end;
    margin-bottom:55px;
}

.ct-location-head .ct-body {
    max-width:550px;
    margin:0;
}

.ct-map-grid {
    display:grid;
    grid-template-columns:1.35fr .65fr;
    min-height:520px;
    background:var(--paper);
    box-shadow:0 22px 55px rgba(44,34,27,.1);
}

.ct-map {
    min-height:520px;
    overflow:hidden;
}

.ct-map iframe {
    display:block;
    width:100%;
    height:100%;
    min-height:520px;
    border:0;
    filter:grayscale(.85) sepia(.12) contrast(.92);
}

.ct-map-info {
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:55px;
}

.ct-map-info .ct-kicker {
    margin-bottom:18px;
}

.ct-map-info h3 {
    margin:0 0 20px;
    color:var(--wine);
    font:500 44px/.95 var(--serif);
}

.ct-map-info p {
    margin:0 0 28px;
    color:var(--muted);
    font:400 13px/1.75 var(--sans);
}


/* =========================================================
   INFORMAZIONI
   ========================================================= */

.ct-info {
    padding:125px 0 145px;
    background:var(--paper);
}

.ct-info-head {
    text-align:center;
    max-width:760px;
    margin:0 auto 60px;
}

.ct-info-head .ct-title {
    margin-bottom:24px;
}

.ct-info-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
}

.ct-info-card {
    padding:48px 40px 52px;
}

.ct-info-card + .ct-info-card {
    border-left:1px solid var(--line);
}

.ct-info-num {
    display:block;
    margin-bottom:40px;
    color:#bd7c58;
    font:500 11px var(--sans);
    letter-spacing:.2em;
}

.ct-info-card h3 {
    margin:0 0 15px;
    color:var(--wine);
    font:500 35px/1 var(--serif);
}

.ct-info-card p {
    margin:0;
    color:var(--muted);
    font:400 13px/1.72 var(--sans);
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media(max-width:1050px) {

    .ct-header-inner {
        grid-template-columns:155px 1fr 120px;
    }

    .ct-nav {
        gap:18px;
    }

    .ct-nav a {
        font-size:9px;
    }

    .ct-book {
        padding:16px 18px;
    }

    .ct-contacts-grid,
    .ct-reservation-grid,
    .ct-location-head {
        gap:55px;
    }

    .ct-octo-shell {
        padding:32px;
    }

    .ct-map-info {
        padding:40px;
    }
}


@media(max-width:820px) {

    .ct-wrap,
    .ct-header-inner,
    .ct-hero-content {
        width:calc(100% - 40px);
    }

    .ct-header {
        height:105px;
    }

    .ct-header-inner {
        grid-template-columns:1fr auto;
    }

    .ct-logo {
        width:128px;
        height:62px;
    }

    .ct-book {
        display:none;
    }

    .ct-menu-toggle {
        display:block;
    }

    .ct-nav {
        display:none;
        position:absolute;
        left:0;
        right:0;
        top:105px;
        padding:26px 22px;
        background:rgba(21,29,24,.98);
        flex-direction:column;
        align-items:flex-start;
        gap:22px;
    }

    .ct-header.is-open .ct-nav {
        display:flex;
    }

    .ct-nav a {
        font-size:11px;
    }

    .ct-hero {
        min-height:100vh;
        min-height:100svh;
    }

    .ct-hero-content {
        padding:205px 0 85px;
    }

    .ct-hero h1 {
        font-size:clamp(64px,14vw,94px);
    }

    .ct-contacts,
    .ct-location {
        padding:95px 0;
    }

    .ct-contacts-grid,
    .ct-reservation-grid,
    .ct-location-head {
        grid-template-columns:1fr;
        gap:55px;
    }

    .ct-contact-image {
        height:560px;
    }

    .ct-reservation {
        padding:90px 0;
    }

    .ct-octo-shell {
        min-height:470px;
    }

    .ct-map-grid {
        grid-template-columns:1fr;
    }

    .ct-map {
        min-height:420px;
    }

    .ct-map iframe {
        min-height:420px;
    }

    .ct-map-info {
        padding:42px;
    }

    .ct-info {
        padding:95px 0;
    }

    .ct-info-grid {
        grid-template-columns:1fr;
    }

    .ct-info-card {
        padding:40px 24px;
    }

    .ct-info-card + .ct-info-card {
        border-left:0;
        border-top:1px solid var(--line);
    }

    .ct-info-num {
        margin-bottom:24px;
    }
}


@media(max-width:520px) {

    .ct-wrap,
    .ct-header-inner,
    .ct-hero-content {
        width:calc(100% - 32px);
    }

    .ct-kicker {
        font-size:9px;
        letter-spacing:.23em;
    }

    .ct-title {
        font-size:48px;
    }

    .ct-body {
        font-size:14px;
    }

    .ct-hero {
        min-height:100vh;
        min-height:100svh;
    }

    .ct-hero-bg {
        background-position:62% center;
    }

    .ct-hero-content {
        padding-top:175px;
    }

    .ct-hero h1 {
        font-size:56px;
        line-height:.88;
    }

    .ct-hero-copy {
        font-size:15px;
    }

    .ct-detail {
        grid-template-columns:1fr;
        gap:7px;
    }

    .ct-contact-image {
        height:435px;
    }

    .ct-contact-main {
        right:5%;
        bottom:65px;
    }

    .ct-contact-small {
        width:58%;
        height:220px;
        border-width:7px;
    }

    .ct-octo-shell {
        padding:22px;
    }

    .ct-octo-top {
        align-items:flex-start;
        flex-direction:column;
    }

    .ct-octo-top strong {
        font-size:31px;
    }

    .ct-octo-placeholder {
        min-height:330px;
        padding:25px 18px;
    }

    .ct-octo-placeholder strong {
        font-size:30px;
    }

    .ct-location-head {
        gap:24px;
    }

    .ct-map {
        min-height:360px;
    }

    .ct-map iframe {
        min-height:360px;
    }

    .ct-map-info {
        padding:32px 24px;
    }

    .ct-map-info h3 {
        font-size:38px;
    }

    .ct-info-head {
        text-align:left;
    }

    .ct-octo-elementor {
        width:calc(100% - 32px)!important;
        margin:-58px auto 75px!important;
        padding:22px!important;
    }
}


@media(prefers-reduced-motion:reduce) {

    .ct-reveal {
        opacity:1;
        transform:none;
        transition:none;
    }

    .ct-hero-bg {
        animation:none;
    }
}/* End custom CSS */