/* Villa Elisa – stile del sito ("Sera in Umbria")
   Caratteri: Melodrama (titoli) e Switzer (testo), Indian Type Foundry / Fontshare, licenza ITF FFL. */

@font-face { font-family: 'Melodrama'; src: url(../fonts/melodrama-400-normal.woff2) format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Melodrama'; src: url(../fonts/melodrama-500-normal.woff2) format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Switzer'; src: url(../fonts/switzer-400-normal.woff2) format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Switzer'; src: url(../fonts/switzer-400-italic.woff2) format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Switzer'; src: url(../fonts/switzer-500-normal.woff2) format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }

:root {
	--ve-notte: #11171D;
	--ve-pannello: #1A222A;
	--ve-linea: #26303A;
	--ve-testo: #ECE4D6;
	--ve-tenue: #B7AC9B;
	--ve-oro: #C8A46A;
	--ve-oro-chiaro: #D9B97E;
	--ve-bianco: #FFFFFF;
	--ve-larghezza: 1320px;
	--ve-margine: 40px;
	--ve-titoli: 'Melodrama', 'Times New Roman', serif;
	--ve-testi: 'Switzer', 'Helvetica Neue', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--ve-notte); color: var(--ve-testo); font-family: var(--ve-testi); font-size: 17px; line-height: 1.7; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ve-oro-chiaro); }
a:hover { color: #EBD3A6; }
:focus-visible { outline: 2px solid var(--ve-oro); outline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--ve-titoli); font-weight: 500; color: var(--ve-bianco); line-height: 1.06; margin: 0 0 .5em; }
h1 { font-size: clamp(52px, 7vw, 104px); line-height: .94; }
h2 { font-size: clamp(34px, 3.6vw, 52px); }
h3 { font-size: clamp(26px, 2.4vw, 32px); }
p { margin: 0 0 1em; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.ve-skip:focus { position: fixed; top: 8px; left: 8px; z-index: 1000; width: auto; height: auto; clip: auto; background: var(--ve-oro); color: var(--ve-notte); padding: 10px 16px; }

/* ---------- Testata ---------- */
.ve-header { position: relative; z-index: 20; border-bottom: 1px solid var(--ve-linea); }
.ve-header--overlay { position: absolute; top: 0; left: 0; right: 0; border-bottom: 0; }
.ve-header__inner { max-width: var(--ve-larghezza); margin: 0 auto; padding: 24px var(--ve-margine); display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.ve-logo { display: block; line-height: 0; }
.ve-logo img { height: 48px; width: auto; }
.ve-nav { display: flex; align-items: center; gap: 26px; font-size: 13px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.ve-header--overlay .ve-nav { background: rgba(17, 23, 29, .6); padding: 12px 12px 12px 22px; }
.ve-nav a { color: var(--ve-bianco); text-decoration: none; }
.ve-nav a:hover, .ve-nav a[aria-current="page"] { color: var(--ve-oro-chiaro); }
.ve-nav .ve-lang { color: var(--ve-tenue); }
.ve-nav .ve-lang a { color: var(--ve-tenue); }
.ve-nav .ve-lang .is-current { color: var(--ve-bianco); }
.ve-btn-oro, .ve-nav .ve-btn-oro { display: inline-block; background: var(--ve-oro); color: var(--ve-notte); text-decoration: none; padding: 10px 16px; font-size: 13px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.ve-btn-oro:hover, .ve-nav .ve-btn-oro:hover { background: var(--ve-oro-chiaro); color: var(--ve-notte); }
.ve-menu-toggle { display: none; width: 48px; height: 48px; background: transparent; border: 1px solid #5A6672; color: var(--ve-oro); cursor: pointer; padding: 0; align-items: center; justify-content: center; }

@media (max-width: 900px) {
	:root { --ve-margine: 20px; }
	.ve-header__inner { padding: 16px var(--ve-margine); }
	.ve-logo img { height: 40px; }
	.ve-menu-toggle { display: inline-flex; }
	.ve-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: flex-start; gap: 18px; padding: 24px var(--ve-margine) 32px; background: var(--ve-notte); border-bottom: 1px solid var(--ve-linea); }
	.ve-header--overlay .ve-nav { background: var(--ve-notte); padding: 24px var(--ve-margine) 32px; }
	.ve-header.is-open .ve-nav { display: flex; }
	.ve-header--overlay { background: rgba(17, 23, 29, .7); }
}

/* ---------- Contenuto ---------- */
.ve-main > * { max-width: var(--ve-larghezza); margin-left: auto; margin-right: auto; padding-left: var(--ve-margine); padding-right: var(--ve-margine); }
.ve-main > .alignfull { max-width: none; padding-left: 0; padding-right: 0; }
.ve-main .wp-block-image { margin: 0; }
.ve-main .wp-block-image img { width: 100%; object-fit: cover; }
.ve-main .wp-block-columns { margin-bottom: 0; }

.ve-kicker { font-style: italic; font-size: 17px; color: var(--ve-oro-chiaro); margin: 0 0 12px; }
.ve-lead { font-size: 19px; color: var(--ve-tenue); }
.ve-tenue { color: var(--ve-tenue); }
.ve-sezione { padding-top: 112px; padding-bottom: 112px; }
.ve-sezione-pannello { background: var(--ve-pannello); }
.ve-sezione-pannello > .wp-block-group__inner-container, .ve-sezione-pannello > .ve-wrap { max-width: var(--ve-larghezza); margin: 0 auto; padding-left: var(--ve-margine); padding-right: var(--ve-margine); }
.ve-main .wp-block-image.ve-img-larga { margin-bottom: 96px; }
.ve-main .wp-block-image.ve-img-larga img { height: 520px; }
.ve-prezzi .ve-prezzi .wp-block-columns, .ve-prezzi > .wp-block-column > .wp-block-columns { gap: 32px; }
.ve-prezzi-pagina .ve-prezzo { margin-bottom: 32px; }
.ve-prezzi-pagina .ve-elenco { columns: 1; margin-top: 16px; }

/* Bottoni (blocco Pulsanti) */
.wp-block-button.ve-btn .wp-block-button__link { background: var(--ve-oro); color: var(--ve-notte); border-radius: 0; padding: 16px 28px; font-size: 13px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.wp-block-button.ve-btn .wp-block-button__link:hover { background: var(--ve-oro-chiaro); }
.wp-block-button.ve-btn-testo .wp-block-button__link { background: transparent; color: var(--ve-oro-chiaro); padding: 16px 0; text-transform: none; letter-spacing: 0; font-size: 16px; text-decoration: underline; }

/* Apertura home: foto piena + riquadro sovrapposto */
.ve-main .wp-block-image.ve-hero-img img { height: 820px; }
.ve-hero-panel { position: relative; margin-top: -560px !important; margin-bottom: 0; min-height: 480px; display: flex; align-items: flex-end; }
.ve-hero-panel > .wp-block-group { background: rgba(17, 23, 29, .86); padding: 44px 48px; max-width: 620px; }
.ve-hero-panel h1 { font-size: clamp(46px, 5vw, 72px); line-height: 1; }
.ve-hero-panel h1 em, .ve-oro { font-style: normal; color: var(--ve-oro-chiaro); }
.ve-hero-panel .wp-block-buttons { margin-top: 8px; align-items: center; }

/* Frase d'apertura con lo stemma */
.ve-intro { text-align: center; max-width: 900px !important; padding-top: 112px; padding-bottom: 96px; }
.ve-stemma img, .ve-main .wp-block-image.ve-stemma img { width: 56px; height: auto; object-fit: contain; margin-bottom: 20px; }
.ve-intro .ve-stemma img { width: 64px; margin: 0 auto 26px; }
.ve-intro .ve-frase { font-family: var(--ve-titoli); font-size: clamp(30px, 3.4vw, 46px); line-height: 1.2; color: var(--ve-bianco); margin-bottom: 26px; }
.ve-intro p:last-child { color: var(--ve-tenue); max-width: 640px; margin: 0 auto; }

/* Tre ingressi */
.ve-ingressi { padding-bottom: 120px; gap: 32px !important; }
.ve-ingressi .wp-block-image img { height: 520px; }
.ve-ingressi .wp-block-column:nth-child(2) { margin-top: 64px; }
.ve-ingressi h3 { margin-top: 14px; }
.ve-ingressi h3 a { color: var(--ve-bianco); text-decoration: none; }
.ve-ingressi h3 a:hover { color: var(--ve-oro-chiaro); }
.ve-ingressi .ve-kicker { margin: 14px 0 0; }

/* Fascia: foto piena con riquadro sovrapposto */
.ve-main .wp-block-image.ve-fascia-img img { height: 680px; }
.ve-fascia-panel { position: relative; margin-top: -160px !important; display: flex; }
.ve-fascia-panel.is-destra { justify-content: flex-end; }
.ve-fascia-panel > .wp-block-group { background: var(--ve-pannello); padding: 48px; max-width: 560px; }

/* Numeri della casa */
.ve-numeri { margin-top: 120px !important; margin-bottom: 120px !important; }
.ve-numeri > .wp-block-columns { border-top: 1px solid var(--ve-linea); border-bottom: 1px solid var(--ve-linea); gap: 0 !important; }
.ve-numeri .wp-block-column { padding: 32px 24px; }
.ve-numero { font-family: var(--ve-titoli); font-size: 52px; line-height: 1; color: var(--ve-bianco); margin: 0; }
.ve-etichetta { font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--ve-tenue); margin: 10px 0 0; }

/* Testo + immagine */
.ve-affianco { padding-top: 96px; padding-bottom: 96px; align-items: center !important; gap: 48px 72px !important; }
.ve-affianco .wp-block-image img { height: 520px; }
.ve-affianco.is-alto .wp-block-image img { height: 620px; }

/* Prezzi */
.ve-prezzi { gap: 48px !important; align-items: center !important; }
.ve-prezzo { border-top: 1px solid var(--ve-oro); padding-top: 20px; }
.ve-prezzo .ve-cifra { font-family: var(--ve-titoli); font-size: 60px; line-height: 1; color: var(--ve-bianco); margin: 0; }
.ve-prezzo .ve-cifra small { font-family: var(--ve-testi); font-size: 16px; color: var(--ve-tenue); }
.ve-prezzo p:last-child { color: var(--ve-tenue); margin: 12px 0 0; }

/* Titolo di pagina */
.ve-titolo-pagina { padding-top: 88px; padding-bottom: 56px; align-items: flex-end !important; gap: 32px 80px !important; }
.ve-titolo-pagina h1 { margin: 0; }
.ve-titolo-pagina p { margin: 0; font-size: 19px; color: var(--ve-tenue); }
.ve-indice { padding-bottom: 24px !important; border-bottom: 1px solid var(--ve-linea); font-style: italic; }
.ve-indice a { margin-right: 26px; }

/* Galleria a tre con didascalie */
.ve-trio { gap: 20px !important; align-items: flex-start !important; }
.ve-trio .wp-block-image img { height: 420px; }
.ve-trio .wp-block-column:nth-child(2) { margin-top: 64px; }
.ve-main figcaption, .ve-main .wp-element-caption { font-style: italic; font-size: 15px; color: var(--ve-tenue); margin-top: 8px; text-align: left; }

/* Elenchi a due colonne */
.ve-elenco { list-style: none; padding: 0; margin: 0; columns: 2 220px; column-gap: 48px; }
.ve-elenco li { padding: 9px 0; border-bottom: 1px solid var(--ve-linea); break-inside: avoid; }

/* Dintorni */
.ve-dintorni { gap: 20px 48px !important; }
.ve-dintorni .wp-block-column { border-top: 1px solid var(--ve-oro); padding-top: 12px; }
.ve-dintorni h3 { font-size: 30px; margin: 0 0 4px; }
.ve-dintorni p { color: var(--ve-tenue); margin: 0; }

/* Invito finale */
.ve-invito { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px; padding-top: 72px; padding-bottom: 72px; }
.ve-invito p { font-family: var(--ve-titoli); font-size: clamp(30px, 3vw, 44px); line-height: 1.1; color: var(--ve-bianco); margin: 0; }

/* Mappa (bloccata da Complianz fino al consenso) */
.ve-mappa iframe { width: 100%; height: 380px; border: 0; display: block; }

/* Pagine di testo (privacy, cookie) */
.ve-legale { max-width: 820px !important; padding-top: 72px; padding-bottom: 96px; }
.ve-legale h1 { font-size: clamp(44px, 5vw, 72px); margin-bottom: 32px; }
.ve-legale h2 { font-size: 30px; margin-top: 40px; }
.ve-legale h3 { font-size: 22px; margin-top: 28px; font-family: var(--ve-testi); font-weight: 500; }
.ve-legale ul { padding-left: 22px; }
.ve-legale .bge-legal, .ve-legale #cmplz-document { max-width: none; margin: 0; }

/* ---------- Modulo di richiesta (Contact Form 7) ---------- */
.ve-richiesta { padding-top: 112px; padding-bottom: 112px; gap: 56px 96px !important; }
.ve-richiesta .ve-stemma img { width: 56px; margin-bottom: 20px; }
.wpcf7 .ve-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 26px 24px; }
.wpcf7 .ve-form label { display: flex; flex-direction: column; gap: 8px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--ve-tenue); }
.wpcf7 .ve-form .ve-largo { grid-column: 1 / -1; }
.wpcf7 .ve-form .wpcf7-form-control-wrap { display: block; }
.wpcf7 input[type="date"], .wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="number"], .wpcf7 textarea {
	width: 100%; font: inherit; font-size: 17px; letter-spacing: 0; text-transform: none; padding: 12px 0; border: 0; border-bottom: 1px solid #5A6672; border-radius: 0; background: transparent; color: var(--ve-bianco); color-scheme: dark;
}
.wpcf7 textarea { height: 120px; resize: vertical; }
.wpcf7 input:focus, .wpcf7 textarea:focus { outline: none; border-bottom-color: var(--ve-oro); }
.wpcf7 .ve-invio { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: space-between; margin-top: 8px; }
.wpcf7 .ve-invio .ve-nota { font-size: 13px; color: var(--ve-tenue); letter-spacing: 0; text-transform: none; }
.wpcf7 input[type="submit"] { font: inherit; font-size: 13px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; background: var(--ve-oro); color: var(--ve-notte); border: 0; border-radius: 0; padding: 16px 32px; cursor: pointer; }
.wpcf7 input[type="submit"]:hover { background: var(--ve-oro-chiaro); }
.wpcf7 .wpcf7-spinner { margin: 0 0 0 12px; }
.wpcf7 .wpcf7-not-valid-tip { color: #F2A98F; font-size: 13px; letter-spacing: 0; text-transform: none; margin-top: 6px; }
.wpcf7 form .wpcf7-response-output { margin: 24px 0 0; padding: 14px 18px; border: 1px solid var(--ve-oro); color: var(--ve-testo); font-size: 15px; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output { border-color: #F2A98F; }

/* ---------- Footer ---------- */
.ve-footer { border-top: 1px solid var(--ve-linea); }
.ve-footer__top { max-width: var(--ve-larghezza); margin: 0 auto; padding: 72px var(--ve-margine) 48px; display: flex; flex-wrap: wrap; gap: 48px 80px; align-items: flex-start; justify-content: space-between; }
.ve-footer__logo img { width: 220px; }
.ve-footer__cols { display: flex; flex-wrap: wrap; gap: 40px 72px; font-size: 15px; color: var(--ve-tenue); }
.ve-footer__cols div { display: flex; flex-direction: column; gap: 6px; }
.ve-footer__cols strong { color: var(--ve-bianco); font-weight: 500; }
.ve-footer__bottom { max-width: var(--ve-larghezza); margin: 0 auto; padding: 20px var(--ve-margine) 40px; display: flex; flex-wrap: wrap; gap: 12px 32px; justify-content: space-between; font-size: 13px; color: #8D8578; border-top: 1px solid #1F2830; }
.ve-footer__bottom a, .ve-footer__bottom button { color: #8D8578; }
.ve-footer__bottom nav { display: flex; flex-wrap: wrap; gap: 20px; }
.ve-footer__bottom button { all: unset; cursor: pointer; text-decoration: underline; }

/* ---------- Telefono ---------- */
@media (max-width: 781px) {
	.ve-main .wp-block-image.ve-hero-img img { height: 460px; }
	.ve-hero-panel { margin-top: -80px !important; min-height: 0; }
	.ve-hero-panel > .wp-block-group { padding: 28px 22px; }
	.ve-ingressi .wp-block-column:nth-child(2), .ve-trio .wp-block-column:nth-child(2) { margin-top: 0; }
	.ve-ingressi .wp-block-image img, .ve-affianco .wp-block-image img, .ve-affianco.is-alto .wp-block-image img, .ve-trio .wp-block-image img { height: 320px; }
	.ve-main .wp-block-image.ve-fascia-img img { height: 300px; }
	.ve-fascia-panel { margin-top: 0 !important; padding: 0 !important; }
	.ve-fascia-panel > .wp-block-group { max-width: none; padding: 28px 22px; }
	.ve-sezione, .ve-intro, .ve-richiesta, .ve-affianco { padding-top: 56px; padding-bottom: 56px; }
	.ve-numeri { margin-top: 56px !important; margin-bottom: 56px !important; }
	.ve-numeri > .wp-block-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ve-numeri .wp-block-column { padding: 20px 8px; }
	.ve-main .wp-block-image.ve-img-larga { margin-bottom: 56px; }
	.ve-main .wp-block-image.ve-img-larga img { height: 280px; }
	.ve-footer__top { padding-top: 48px; flex-direction: column; align-items: center; text-align: center; }
	.ve-footer__cols { justify-content: center; }
}
