/*
 Theme Name:     Trattoria da Rocco
 Theme URI:      https://www.trattoriadarocco.it
 Description:    Generatepress Child Theme
 Author:		 Visibilia
 Template:       generatepress
 Version:        1.0.0
*/
 
@import url('https://fonts.googleapis.com/css2?family=Marcellus&display=swap'); 
@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&display=swap'); 
 
/* =Theme customization starts here 
------------------------------------------------------- */

h1,h2,h3{
	font-family: "Marcellus", serif; 
	font-size: 80px; 
}

p{
	font-family: "Nunito Sans", sans-serif;
	font-weight: 500; 
	font-size: 20px; 
}

.p-25 p{
	font-family: "Nunito Sans", sans-serif;
	font-size: 25px; 
	font-weight: bold; 
}
.p-30 p{
	font-size: 25px; 
}

.p-50 p{
	font-family: "Marcellus", serif; 
	font-size: 50px; 
	line-height: 45px; 
}

.h1-hero h1{
	font-family: "Marcellus", serif; 
	font-size: 100px; 
}


.marcellus,
.marcellus :is(h1, h2, h3, h4, h5, h6, p, a, button) {
	font-family: "Marcellus", serif !important;  
}

.parola-accento {
  color: #987B6F;
}

.crediti p{
	font-size: 12px; 
}

p.elementor-icon-box-title{
	font-family: "Marcellus", serif !important;
}


/* HEADER */

/* Header sempre sopra i contenuti: il sottomenu non finisce sotto l'hero */
.ehf-header #masthead {
    z-index: 1001; 
}

/* Font per tutte le voci (comprese sottovoci e Prenota) */
.hfe-nav-menu a.hfe-menu-item,
.hfe-nav-menu a.hfe-sub-menu-item {
    font-family: "Marcellus", serif;
    font-size: 20px; 
}

/* Pulsante "Prenota" */
.hfe-nav-menu li.prenota-header > a.hfe-menu-item,
.hfe-nav-menu li.prenota-header > a.hfe-menu-item:visited {
    background-color: #987B6F; 
    color: #fff !important;
    padding: 12px 15px;
    border: 1px solid #987B6F; 
    border-radius: 3px;
}

.hfe-nav-menu li.prenota-header > a.hfe-menu-item:hover,
.hfe-nav-menu li.prenota-header > a.hfe-menu-item:focus,
.hfe-nav-menu li.prenota-header.current-menu-item > a.hfe-menu-item {
    background-color: transparent;
    color: #fff !important;
    border-color: #fff;
}

/* Elimina eventuali pointer/underline decorativi del menu HFE su "Prenota" */
.hfe-nav-menu li.prenota-header > a.hfe-menu-item::before,
.hfe-nav-menu li.prenota-header > a.hfe-menu-item::after {
    display: none !important;
}

/* Voci normali (esclusa "Prenota") */
.hfe-nav-menu li:not(.prenota-header) > a.hfe-menu-item {
    position: relative;
    color: #fff;
    padding-left: 20px; 
}

/* Colore in hover / focus / voce attiva */
.hfe-nav-menu li:not(.prenota-header) > a.hfe-menu-item:hover,
.hfe-nav-menu li:not(.prenota-header) > a.hfe-menu-item:focus,
.hfe-nav-menu li:not(.prenota-header).current-menu-item > a.hfe-menu-item,
.hfe-nav-menu li:not(.prenota-header).current-menu-ancestor > a.hfe-menu-item,
.hfe-nav-menu li:not(.prenota-header) > a.hfe-menu-item.highlighted {
    color: #987B6F; 
}

/* Pallino */
.hfe-nav-menu li:not(.prenota-header) > a.hfe-menu-item::before,
.hfe-nav-menu li:not(.prenota-header) > a.hfe-menu-item:hover::before,
.hfe-nav-menu li:not(.prenota-header) > a.hfe-menu-item:focus::before,
.hfe-nav-menu li:not(.prenota-header).current-menu-item > a.hfe-menu-item::before,
.hfe-nav-menu li:not(.prenota-header).current-menu-ancestor > a.hfe-menu-item::before,
.hfe-nav-menu li:not(.prenota-header) > a.hfe-menu-item.highlighted::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    left: 4px !important;      
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    width: 6px !important;     
    height: 6px !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
    border-radius: 50%;
    background-color: #987B6F; 
    transition: opacity .2s ease;
}

/* Pallino invisibile di base (il layout non "salta") */
.hfe-nav-menu li:not(.prenota-header) > a.hfe-menu-item::before {
    opacity: 0;
}

/* Pallino visibile in hover / focus / voce attiva */
.hfe-nav-menu li:not(.prenota-header) > a.hfe-menu-item:hover::before,
.hfe-nav-menu li:not(.prenota-header) > a.hfe-menu-item:focus::before,
.hfe-nav-menu li:not(.prenota-header).current-menu-item > a.hfe-menu-item::before,
.hfe-nav-menu li:not(.prenota-header).current-menu-ancestor > a.hfe-menu-item::before,
.hfe-nav-menu li:not(.prenota-header) > a.hfe-menu-item.highlighted::before {
    opacity: 1 !important;
}

/* ===== Voce "Menu" (padre con sottomenu): stesso pallino delle altre voci ===== */

/* Base: colore e spazio per il pallino */
.hfe-nav-menu li:not(.prenota-header) > .hfe-has-submenu-container > a.hfe-menu-item {
    position: relative;
    color: #fff;
    padding-left: 20px; /* MODIFICA QUI: deve essere uguale alle altre voci */
}

/* Colore hover / focus / attiva */
.hfe-nav-menu li:not(.prenota-header) > .hfe-has-submenu-container > a.hfe-menu-item:hover,
.hfe-nav-menu li:not(.prenota-header) > .hfe-has-submenu-container > a.hfe-menu-item:focus,
.hfe-nav-menu li:not(.prenota-header).current-menu-item > .hfe-has-submenu-container > a.hfe-menu-item,
.hfe-nav-menu li:not(.prenota-header).current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item,
.hfe-nav-menu li:not(.prenota-header) > .hfe-has-submenu-container > a.hfe-menu-item.highlighted {
    color: #987B6F; /* MODIFICA QUI */
}

/* Pallino (invisibile di base) */
.hfe-nav-menu li:not(.prenota-header) > .hfe-has-submenu-container > a.hfe-menu-item::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    left: 4px !important;
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    width: 6px !important;
    height: 6px !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
    border-radius: 50%;
    background-color: #987B6F; /* MODIFICA QUI */
    opacity: 0;
    transition: opacity .2s ease;
}

/* Pallino visibile in hover / focus / attiva */
.hfe-nav-menu li:not(.prenota-header) > .hfe-has-submenu-container > a.hfe-menu-item:hover::before,
.hfe-nav-menu li:not(.prenota-header) > .hfe-has-submenu-container > a.hfe-menu-item:focus::before,
.hfe-nav-menu li:not(.prenota-header).current-menu-item > .hfe-has-submenu-container > a.hfe-menu-item::before,
.hfe-nav-menu li:not(.prenota-header).current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item::before,
.hfe-nav-menu li:not(.prenota-header) > .hfe-has-submenu-container > a.hfe-menu-item.highlighted::before {
    opacity: 1 !important;
}


/* CARD HOME */

.hover-zoom {
  overflow: hidden;              
  isolation: isolate;           
  background-size: 0 0 !important; 
}

.hover-zoom::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;                  
  background-image: inherit;     
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  pointer-events: none;
  transform: scale(1);
  transition: transform 0.6s ease;  
  will-change: transform;
}

.hover-zoom:hover::after {
  transform: scale(1.08);       
}


/* PLS BIANCO */
body a.pls-bianco,
body .pls-bianco .elementor-button {
  background-color: #fff;                 
  color: #000;                            
  border: 1px solid #fff;                 
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}

body a.pls-bianco:hover,
body a.pls-bianco:focus-visible,
body .pls-bianco .elementor-button:hover,
body .pls-bianco .elementor-button:focus-visible {
  background-color: transparent;
  color: #fff;                            
  border-color: #fff;                    
}


/* ===== FORM CONTATTO / PRENOTAZIONE ===== */
.modulo-contatto {
	/* MODIFICA QUI: variabili del form */
	--mc-font: "Nunito Sans", sans-serif;
	--mc-field-h: 46px;                    /* altezza dei campi */
	--mc-placeholder: rgba(0, 0, 0, 0.5);  /* placeholder / select non ancora scelto */
	--mc-focus: #C8A96E;                   /* colore contorno al focus */

	/* Icone (SVG inline, tratto nero) */
	--mc-icon-calendar: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='16' rx='2'/><path d='M3 10h18M8 3v4M16 3v4'/></svg>");
	--mc-icon-clock: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>");
	--mc-icon-chevron: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");

	width: 100%;
	font-family: var(--mc-font);
	color: #fff;
}

/* --- Colonne (float come prima, con riga sempre pulita) --- */
.modulo-contatto .col-sx-contatto,
.modulo-contatto .col-dx-contatto {
	display: block;
	width: 49%;
	position: relative;
	margin-bottom: 20px;
	--mc-icon: none;
}
.modulo-contatto .col-sx-contatto {
	float: left !important;
	clear: both;               
}
.modulo-contatto .col-dx-contatto {
	float: right !important;
}
.modulo-contatto .col-full {
	display: block;
	clear: both;
	width: 100%;
	position: relative;
	margin-bottom: 20px;
	--mc-icon: none;
}
.modulo-contatto br {
	display: none;
}
.modulo-contatto .wpcf7-form p {
	margin: 0;
}

/* --- Campi: sfondo bianco, testo nero --- */
.modulo-contatto input[type=text],
.modulo-contatto input[type=email],
.modulo-contatto input[type=tel],
.modulo-contatto textarea,
.modulo-contatto select {
	width: 100%;
	height: var(--mc-field-h);
	margin: 0;
	padding: 0 16px;
	background-color: #fff;
	color: #000;
	border: 1px solid #fff;
	border-radius: 0;
	box-shadow: none;
	box-sizing: border-box;
	font-family: var(--mc-font);
	font-size: 16px;
}
.modulo-contatto textarea {
	height: 120px!important;
	padding: 12px 16px;
	resize: none;
}

/* --- Placeholder: sbiadito, pieno al focus --- */
.modulo-contatto input::placeholder,
.modulo-contatto textarea::placeholder {
	color: var(--mc-placeholder);
	opacity: 1;
}
.modulo-contatto input:focus::placeholder,
.modulo-contatto textarea:focus::placeholder {
	color: #000;
}

/* --- Focus --- */
.modulo-contatto input[type=text]:focus,
.modulo-contatto input[type=email]:focus,
.modulo-contatto input[type=tel]:focus,
.modulo-contatto textarea:focus,
.modulo-contatto select:focus {
	background-color: #fff;
	color: #000;
	border-color: #fff;
	outline: none!important;
	outline-offset: 2px;
}

/* --- Select: sbiadito finché non scegli, poi pieno --- */
.modulo-contatto select {
	color: var(--mc-placeholder);
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}
.modulo-contatto select:focus,
.modulo-contatto select:not(:has(option:first-child:checked)) {
	color: #000;
}
.modulo-contatto select option {
	background-color: #fff;
	color: #000;
}

/* --- Icone (calendario, orologio, freccia select) --- */
.modulo-contatto .col-sx-contatto:has(select),
.modulo-contatto .col-dx-contatto:has(select),
.modulo-contatto .col-full:has(select) {
	--mc-icon: var(--mc-icon-chevron);
}
.modulo-contatto .col-sx-contatto.col-data {
	--mc-icon: var(--mc-icon-calendar);
}
.modulo-contatto .col-dx-contatto.col-ora {
	--mc-icon: var(--mc-icon-clock);
}
.modulo-contatto .col-sx-contatto::after,
.modulo-contatto .col-dx-contatto::after,
.modulo-contatto .col-full::after {
	content: "";
	position: absolute;
	right: 16px;
	top: calc(var(--mc-field-h) / 2);  /* centrata sul campo anche se compare l'errore sotto */
	width: 18px;
	height: 18px;
	transform: translateY(-50%);
	background: var(--mc-icon) center / contain no-repeat;
	pointer-events: none;              /* il click passa al campo */
}
.modulo-contatto .col-data input,
.modulo-contatto select {
	padding-right: 44px;               /* il testo non finisce sotto l'icona */
}
.modulo-contatto .col-data input {
	cursor: pointer;
}

/* --- Privacy, invio, messaggi --- */
.modulo-contatto .privacy {
	clear: both;
	margin-left: -1rem !important;
	margin-top: 0;
	font-size: 14px;
	font-family: var(--mc-font);
}
.modulo-contatto .privacy a {
	color: #fff;
}
.modulo-contatto input[type="submit"] {
	width: auto;
	float: left;
	margin-top: 20px !important;
	background-color: #987B6F;
	border: 1px solid #987B6F;
	color: #fff;
	border-radius: 3px; 
	font-family: "Marcellus", serif; 
}
.modulo-contatto input[type="submit"]:hover {
	background-color: transparent;
	color: #fff;
	border: 1px solid #fff;
}
.wpcf7 form.sent .wpcf7-response-output {
	border-color: transparent;
}
.wpcf7-response-output {
	color: #1FAF38;
	font-size: 20px;
	font-family: "Nunito Sans", sans-serif;
}

.wpcf7-not-valid-tip{
	font-size: 15px;
}

.wpcf7 form .wpcf7-response-output {
  margin: 3em 0em 1em;
  padding: 0em 0em;
}

/* --- Mobile: una colonna --- */
@media (max-width: 600px) {
	.modulo-contatto .col-sx-contatto,
	.modulo-contatto .col-dx-contatto {
		float: none !important;
		width: 100%;
	}
	.modulo-contatto input[type="submit"] {
		width: 100%;
		float: none;
	}
}

/* ===== FLATPICKR ===== */
.flatpickr-calendar {
	font-family: "Nunito Sans", sans-serif;
	border-radius: 0px !important;
}
.flatpickr-calendar .dayContainer .flatpickr-day.today {
	background: rgba(200, 169, 110, 0.15) !important;
	border-color: #C8A96E !important;
	color: inherit !important;
	border-radius: 0 !important;
}
.flatpickr-calendar .dayContainer .flatpickr-day.today:hover {
	background: rgba(200, 169, 110, 0.3) !important;
	border-color: #C8A96E !important;
	border-radius: 0 !important;
}
.flatpickr-calendar .dayContainer .flatpickr-day.selected,
.flatpickr-calendar .dayContainer .flatpickr-day.selected:hover {
	background: rgba(200, 169, 110, 0.15) !important;
	border-color: #C8A96E !important;
	color: inherit !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}
.flatpickr-calendar .dayContainer .flatpickr-day:not(.flatpickr-disabled):not(.today):hover {
	background: rgba(200, 169, 110, 0.15) !important;
	border-color: #C8A96E !important;
	border-radius: 0 !important;
}
input.numInput.cur-year {
	font-size: 15px !important;
	color: #000 !important;
}
select.flatpickr-monthDropdown-months {
	font-size: 15px !important;
	color: #000 !important;
}


/* FOOTER */

.p-16 p{
	font-size: 15px; 
}

.copyright-footer,
.copyright-footer p,
.copyright-footer a,
.copyright-footer span {
	color: #fff;                  
	font-size: 15px;           
}


/* RESPONSIVE */

@media only screen and (max-width: 40em) {
	
	h1,h2,h3{
	font-family: "Marcellus", serif; 
	font-size: 40px; 
	}
	.h1-hero h1{
	font-family: "Marcellus", serif; 
	font-size: 40px; 
    }
	

	p{
		font-family: "Nunito Sans", sans-serif;
		font-weight: 500; 
		font-size: 20px; 
	}

	.p-25 p{
		font-family: "Nunito Sans", sans-serif;
		font-size: 18px; 
		font-weight: bold; 
	}
	.p-30 p{
		font-size: 22px; 
	}

	.p-50 p{
		font-family: "Marcellus", serif; 
		font-size: 35px; 
		line-height: 45px; 
	}
	a{
		color: #fff; 
	}

}

@media only screen and (min-width: 40.063em) and (max-width: 64em) { /* medium only */
	h1,h2,h3{
	font-family: "Marcellus", serif; 
	font-size: 60px!important; 
	}
	.h1-hero h1{
	font-family: "Marcellus", serif; 
	font-size: 60px; 
    }
	h3.rpl-title,
	h3.rpl-title a {
		font-size: 35px!important;
	}

	p{
		font-family: "Nunito Sans", sans-serif;
		font-weight: 500; 
		font-size: 20px; 
	}

	.p-25 p{
		font-family: "Nunito Sans", sans-serif;
		font-size: 25px; 
		font-weight: bold; 
	}
	.p-30 p{
		font-size: 30px; 
	}

	.p-50 p{
		font-family: "Marcellus", serif; 
		font-size: 40px; 
		line-height: 45px; 
	}
	a{
		color: #fff; 
	}

}



/* PADDING */

@media (max-width: 640px) {
    .elementor .e-con.e-parent:not(.no-auto-padding):not(.no-mobile-padding) { padding-left: 20px !important; padding-right: 20px !important; }
}
@media (min-width: 641px) and (max-width: 1024px) {
    .elementor .e-con.e-parent:not(.no-auto-padding):not(.no-mobile-padding) { padding-left: 25px !important; padding-right: 25px !important; }
}
@media (min-width: 1017px) and (max-width: 1630px) {
    .elementor .e-con.e-parent:not(.no-auto-padding):not(.no-mobile-padding) { padding-left: 20px !important; padding-right: 20px !important; }
}