/*
 * Promo Deliceto: il disegno del sito.
 * Colori e marchio del sito attuale (regola di Stefano 10/10): crema, verde salvia, rame, antracite, marchio oro
 * su testata scura. Cambia solo l'impaginazione. Titoli Fraunces, testo Inter.
 * Veste anche i componenti del plugin gaw-hub-deliceto (schede, prenotazione, luoghi): qui hanno la forma di
 * biglietti e tagliandi, sugli altri portali dei borghi una forma loro.
 * Movimento: solo transizioni brevi su colore e posizione, spente con prefers-reduced-motion.
 */

:root {
	--pd-carta: var(--wp--preset--color--base);
	--pd-bianco: var(--wp--preset--color--surface);
	--pd-inchiostro: var(--wp--preset--color--contrast);
	--pd-blu: var(--wp--preset--color--primary);
	--pd-oro: var(--wp--preset--color--accent);
	--pd-oro-scuro: var(--wp--preset--color--accent-strong);
	--pd-terracotta: var(--wp--preset--color--terracotta);
	--pd-filetto: var(--wp--preset--color--line);
	--pd-grigio: var(--wp--preset--color--muted);
	--pd-display: var(--wp--preset--font-family--display);
	--pd-raggio: 18px;
	--pd-ombra: 0 1px 0 rgba(44, 53, 49, .04), 0 12px 32px -18px rgba(44, 53, 49, .35);
}

body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
::selection { background: var(--pd-oro); color: var(--pd-inchiostro); }
:focus-visible { outline: 3px solid var(--pd-terracotta); outline-offset: 3px; border-radius: 6px; }
.wp-site-blocks { overflow-x: clip; }
main.pd-main { padding-bottom: var(--wp--preset--spacing--60); }
img { height: auto; }

/* ---------- testata ---------- */
.pd-sopra { position: sticky; top: 0; z-index: 50; }
.admin-bar .pd-sopra { top: 32px; }
@media (max-width: 782px) { .admin-bar .pd-sopra { top: 46px; } }
.pd-testata {
	background: color-mix(in srgb, var(--pd-inchiostro) 96%, transparent);
	-webkit-backdrop-filter: saturate(1.2) blur(10px);
	backdrop-filter: saturate(1.2) blur(10px);
	border-bottom: 1px solid color-mix(in srgb, var(--pd-oro) 35%, transparent);
	padding-top: .6rem !important;
	padding-bottom: .6rem !important;
}
.pd-testata__riga { gap: 1.5rem; }
.pd-marchio { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; color: var(--pd-carta); flex-shrink: 0; }
.pd-marchio img { width: 52px; height: auto; display: block; }
.pd-marchio__nome { font-family: var(--pd-display); font-weight: 650; font-size: 1.15rem; line-height: .95; letter-spacing: .01em; text-transform: uppercase; }
.pd-marchio__nome em { display: block; font-style: normal; font-weight: 450; font-size: .72rem; letter-spacing: .32em; color: var(--pd-oro); margin-top: .2rem; }
.pd-nav { margin-left: auto; }
.pd-testata .pd-nav .wp-block-navigation-item__content { color: var(--pd-carta); }
.pd-testata .pd-nav .is-menu-open .wp-block-navigation-item__content { color: var(--pd-inchiostro); }
.pd-nav .wp-block-navigation-item__content { text-decoration: none; padding: .35rem .15rem; background-image: linear-gradient(var(--pd-oro), var(--pd-oro)); background-size: 0 2px; background-position: 0 100%; background-repeat: no-repeat; transition: background-size .25s ease; }
.pd-nav .wp-block-navigation-item__content:hover,
.pd-nav .current-menu-item > .wp-block-navigation-item__content { background-size: 100% 2px; }
.pd-nav .wp-block-navigation__container { gap: 1.6rem; }
.pd-testata__azione .wp-block-button__link { padding: .6rem 1.25rem; font-size: .9rem; }
@media (max-width: 600px) { .pd-testata__azione { display: none; } }

/* menu a cassetto sul telefono: pannello a destra, sfondo velato (has-modal-open sta sul contenitore) */
.pd-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: rgba(44, 53, 49, .55) !important;
	left: auto; padding: 0;
}
.pd-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	background: var(--pd-carta); margin-left: auto; width: min(84vw, 360px); min-height: 100vh;
	padding: 5rem 2rem 2rem; align-items: flex-start; box-shadow: -20px 0 40px -20px rgba(0, 0, 0, .4);
}
.pd-nav .is-menu-open .wp-block-navigation__container { gap: 1.1rem; align-items: flex-start; }
.pd-nav .is-menu-open .wp-block-navigation-item__content { font-family: var(--pd-display); font-size: 1.5rem; }
.pd-nav .wp-block-navigation__responsive-container-open,
.pd-nav .wp-block-navigation__responsive-container-close { color: var(--pd-carta); }
.pd-nav .is-menu-open .wp-block-navigation__responsive-container-close { color: var(--pd-inchiostro); }

/* ---------- elementi comuni ---------- */
.pd-occhiello {
	font-size: .78rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--pd-oro-scuro);
	display: flex; align-items: center; gap: .75rem; margin-bottom: .5rem;
}
.pd-occhiello::before { content: ""; width: 2.25rem; height: 1px; background: var(--pd-oro); }
.pd-attacco { font-family: var(--pd-display); font-size: clamp(1.25rem, 2.2vw, 1.6rem); line-height: 1.4; font-weight: 380; color: var(--pd-inchiostro); }
.pd-link-freccia a { font-weight: 600; text-decoration: none; color: var(--pd-blu); border-bottom: 1px solid var(--pd-oro); padding-bottom: .15rem; }
.pd-link-freccia a::after { content: " →"; transition: margin .2s; }
.pd-link-freccia a:hover::after { margin-left: .25rem; }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--pd-blu); border: 1.5px solid var(--pd-blu); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--pd-blu); color: var(--pd-bianco); }
.wp-block-button__link { transition: background-color .2s ease, color .2s ease, transform .2s ease; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.pd-btn-oro .wp-block-button__link { background: var(--pd-oro); color: var(--pd-inchiostro); }
.pd-btn-oro .wp-block-button__link:hover { background: var(--pd-bianco); color: var(--pd-blu); }
.pd-sezione { margin-top: var(--wp--preset--spacing--60) !important; }
.pd-sezione__testa { margin-bottom: 1.5rem; gap: 1rem; }
.pd-sezione__testa h2 { margin: 0; }
.pd-elenco li { margin-bottom: .55rem; }

/* ---------- home: apertura ---------- */
.pd-apertura { padding-top: clamp(2rem, 6vw, 5rem); padding-bottom: clamp(2rem, 5vw, 4rem); }
.pd-apertura__colonne { gap: clamp(2rem, 5vw, 4.5rem) !important; }
.pd-apertura__titolo { font-size: clamp(2.6rem, 6.4vw, 5.2rem) !important; font-weight: 520; line-height: 1.02; letter-spacing: -.025em; margin: .2rem 0 1.25rem; }
.pd-apertura__titolo em { font-style: italic; font-weight: 420; color: var(--pd-terracotta); }
.pd-apertura__testo { font-size: 1.15rem; max-width: 34rem; color: #3a4440; }
.pd-apertura__azioni { margin-top: 1.75rem; gap: .75rem; }
.pd-arco { position: relative; margin: 0; }
.pd-arco img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; border-radius: 999px 999px var(--pd-raggio) var(--pd-raggio); box-shadow: var(--pd-ombra); }
.pd-arco::before { content: ""; position: absolute; inset: -14px 14px 14px -14px; border: 1px solid var(--pd-oro); border-radius: 999px 999px var(--pd-raggio) var(--pd-raggio); z-index: -1; }
.pd-arco__nota { position: absolute; left: 1rem; bottom: 1rem; background: var(--pd-carta); color: var(--pd-inchiostro); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; padding: .45rem .8rem; border-radius: 999px; }
@media (max-width: 781px) { .pd-arco img { aspect-ratio: 4 / 3; border-radius: 160px 160px var(--pd-raggio) var(--pd-raggio); } .pd-arco::before { display: none; } }

/* ---------- home: tre anime ---------- */
.pd-tre { border-top: 1px solid var(--pd-filetto); border-bottom: 1px solid var(--pd-filetto); padding-top: clamp(2rem, 4vw, 3rem); padding-bottom: clamp(2rem, 4vw, 3rem); }
.pd-tre__colonne { gap: clamp(1.5rem, 4vw, 3.5rem) !important; }
.pd-tre__voce { position: relative; }
.pd-tre__numero { font-family: var(--pd-display); font-size: 3.4rem; line-height: 1; font-weight: 300; color: transparent; -webkit-text-stroke: 1px var(--pd-oro-scuro); margin: 0 0 .5rem; }
.pd-tre__titolo { font-size: 1.6rem !important; margin: 0 0 .5rem; }
.pd-tre__titolo a { color: var(--pd-blu); text-decoration: none; }
.pd-tre__titolo a:hover { color: var(--pd-terracotta); }
@media (max-width: 781px) { .pd-tre__voce + .pd-tre__voce { border-top: 1px solid var(--pd-filetto); padding-top: 1.5rem; } }

/* ---------- home: fascia coworking ---------- */
.pd-fascia { background: var(--pd-blu); color: #f4f1ea; margin-top: var(--wp--preset--spacing--60) !important; padding-top: clamp(3rem, 7vw, 5.5rem); padding-bottom: clamp(3rem, 7vw, 5.5rem); }
.pd-fascia h2 { color: var(--pd-bianco); }
.pd-fascia .pd-occhiello { color: var(--pd-oro); }
.pd-fascia__colonne { gap: clamp(2rem, 5vw, 4.5rem) !important; }
.pd-fascia__foto { margin: 0; }
.pd-fascia__foto img { width: 100%; border-radius: var(--pd-raggio); display: block; aspect-ratio: 4 / 3; object-fit: cover; }
.pd-fascia__elenco { list-style: none; padding: 0; margin: 1.25rem 0 1.75rem; }
.pd-fascia__elenco li { padding: .6rem 0 .6rem 1.75rem; border-bottom: 1px solid rgba(255, 255, 255, .14); position: relative; }
.pd-fascia__elenco li::before { content: ""; position: absolute; left: 0; top: 1.1rem; width: .7rem; height: .7rem; border: 1.5px solid var(--pd-oro); transform: rotate(45deg); }

/* ---------- pagine ---------- */
.pd-testa-pagina { padding-top: clamp(2.5rem, 6vw, 4.5rem); padding-bottom: clamp(1.25rem, 3vw, 2rem); margin-bottom: clamp(1.5rem, 4vw, 2.5rem); border-bottom: 1px solid var(--pd-filetto); }
.pd-testa-pagina__titolo { font-size: clamp(2.4rem, 5.5vw, 4.2rem) !important; font-weight: 500; letter-spacing: -.02em; margin: 0; }
.pd-testa-pagina__titolo::after { content: ""; display: block; width: 4rem; height: 3px; background: var(--pd-oro); margin-top: 1.1rem; }
.pd-testa-pagina__sommario { font-family: var(--pd-display); font-size: 1.25rem; color: #3a4440; max-width: 46rem; margin-top: 1rem; }
.pd-passi { counter-reset: passo; margin-top: 2rem !important; }
.pd-passi .wp-block-column { background: var(--pd-bianco); border: 1px solid var(--pd-filetto); border-radius: var(--pd-raggio); padding: 1.25rem 1.4rem; }
.pd-passi__n { font-family: var(--pd-display); font-size: 1.1rem; width: 2.4rem; height: 2.4rem; display: grid; place-items: center; border-radius: 50%; background: var(--pd-blu); color: var(--pd-bianco); margin: 0 0 .75rem; }
.pd-contatti { margin-top: 1rem !important; gap: 3rem !important; }
.pd-contatti__email a { font-family: var(--pd-display); font-size: clamp(1.25rem, 3vw, 1.75rem); color: var(--pd-blu); }

/* ---------- PNRR e piede ---------- */
.pd-pnrr { background: var(--pd-bianco); border-top: 1px solid var(--pd-filetto); padding-top: 2.5rem; padding-bottom: 2.5rem; text-align: center; }
.pd-pnrr__loghi { width: 100%; max-width: 760px; height: auto; display: block; margin: 0 auto 1.25rem; }
.pd-pnrr__testo { font-size: .82rem; line-height: 1.6; color: var(--pd-grigio); }
.pd-pnrr__codici { font-size: .82rem; font-weight: 600; letter-spacing: .04em; color: var(--pd-inchiostro); }
.pd-piede { background: var(--pd-inchiostro); color: #d3d6cf; padding-top: clamp(3rem, 6vw, 4.5rem); padding-bottom: 1.5rem; font-size: .95rem; }
.pd-piede a { color: #f0e6d2; text-decoration: none; }
.pd-piede a:hover { color: var(--pd-oro); }
.pd-piede__colonne { gap: 3rem !important; }
.pd-piede__marchio img { width: 132px; height: auto; display: block; margin-bottom: 1rem; }
.pd-piede__titolo { font-family: var(--wp--preset--font-family--body) !important; font-size: .78rem !important; letter-spacing: .2em; text-transform: uppercase; color: var(--pd-oro) !important; font-weight: 600 !important; margin-bottom: 1rem; }
.pd-piede__menu { list-style: none; padding: 0; }
.pd-piede__menu li { margin-bottom: .45rem; }
.pd-piede__legali { border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 2.5rem; padding-top: 1.25rem; font-size: .82rem; gap: .75rem; }
.pd-piede__legali p { margin: 0; }

/* ======================================================================
 * Componenti del plugin gaw-hub-deliceto, alla maniera di Promo Deliceto
 * ====================================================================== */

/* griglia e schede: biglietti */
body .dh-griglia { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.75rem; margin: 0; }
body .dh-card { background: var(--pd-bianco); color: var(--pd-inchiostro); border: 1px solid var(--pd-filetto); border-radius: var(--pd-raggio); box-shadow: var(--pd-ombra); overflow: visible; transition: transform .25s ease, box-shadow .25s ease; }
body .dh-card:hover { transform: translateY(-3px); box-shadow: 0 1px 0 rgba(44, 53, 49, .04), 0 22px 40px -22px rgba(44, 53, 49, .45); }
body .dh-card-img { background: var(--pd-filetto); border-radius: var(--pd-raggio) var(--pd-raggio) 0 0; aspect-ratio: 16 / 10; }
body .dh-card-c { padding: 1.25rem 1.4rem 1.3rem; }
body .dh-card-c .dh-quando { color: var(--pd-terracotta); font-size: .75rem; letter-spacing: .14em; margin-bottom: .55rem; }
body .dh-card-c h3 { color: var(--pd-inchiostro); font-family: var(--pd-display); font-size: 1.4rem; font-weight: 560; line-height: 1.2; }
body .dh-card-c p { color: #4b5550; font-size: .95rem; }
body .dh-card .dh-etichetta { background: transparent; color: var(--pd-oro-scuro); border: 1px solid var(--pd-oro); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; padding: 2px 10px; }
body .dh-card-piede { position: relative; border-top: 2px dashed var(--pd-filetto); margin: 1rem -1.4rem 0; padding: 1rem 1.4rem 0; }
body .dh-card-piede::before, body .dh-card-piede::after { content: ""; position: absolute; top: -11px; width: 20px; height: 20px; border-radius: 50%; background: var(--pd-carta); border: 1px solid var(--pd-filetto); }
body .dh-card-piede::before { left: -11px; clip-path: inset(0 0 0 50%); }
body .dh-card-piede::after { right: -11px; clip-path: inset(0 50% 0 0); }
body .dh-prezzo { font-family: var(--pd-display); font-size: 1.35rem; font-weight: 600; color: var(--pd-blu); }
body .dh-posti { color: var(--pd-grigio); font-size: .8rem; }
body .dh-btn, body .dh-card .dh-btn, body button.dh-btn, body .dh-prenota button.dh-btn {
	background: var(--pd-blu) !important; color: var(--pd-bianco) !important; border: 0 !important; border-radius: 999px; padding: .7rem 1.2rem; font-size: .88rem; font-weight: 600;
	transition: background-color .2s ease;
}
body .dh-btn:hover { background: var(--pd-terracotta) !important; }
body .dh-btn[disabled] { background: #a3aaa5 !important; }
body .dh-vuoto { background: var(--pd-bianco); border: 1px dashed var(--pd-filetto); border-radius: var(--pd-raggio); padding: 1.5rem; font-family: var(--pd-display); font-size: 1.15rem; }

/* scheda della singola attivita' */
body .dh-scheda-img img { border-radius: var(--pd-raggio); max-height: 520px; box-shadow: var(--pd-ombra); }
body .dh-credito { font-size: .75rem; color: var(--pd-grigio); }
body .dh-scheda-info { background: transparent; border-top: 1px solid var(--pd-inchiostro); border-bottom: 1px solid var(--pd-filetto); border-radius: 0; padding: 1.1rem 0; gap: 1rem 2rem; margin: 1.5rem 0 2rem; }
body .dh-scheda-info strong { color: var(--pd-oro-scuro); font-size: .7rem; letter-spacing: .16em; font-weight: 600; margin-bottom: .2rem; }
body .dh-scheda-info div { font-size: 1rem; }

/* prenotazione: un tagliando con le tacche */
body .dh-prenota { position: relative; background: var(--pd-bianco); border: 1px solid var(--pd-filetto); border-top: 6px solid var(--pd-blu); border-radius: var(--pd-raggio); padding: clamp(1.25rem, 4vw, 2.25rem); box-shadow: var(--pd-ombra); margin: 2.5rem 0; }
body .dh-prenota::before, body .dh-prenota::after { content: ""; position: absolute; top: 50%; width: 26px; height: 26px; border-radius: 50%; background: var(--pd-carta); border: 1px solid var(--pd-filetto); transform: translateY(-50%); }
body .dh-prenota::before { left: -14px; clip-path: inset(0 0 0 50%); }
body .dh-prenota::after { right: -14px; clip-path: inset(0 50% 0 0); }
body .dh-prenota h2 { font-family: var(--pd-display); font-size: 1.8rem; margin: 0 0 1rem; }
body .dh-prenota label { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--pd-grigio); }
body .dh-prenota input[type=date], body .dh-prenota input[type=number] { border: 1px solid var(--pd-filetto); border-radius: 12px; background: var(--pd-carta); padding: .75rem .9rem; font: inherit; color: var(--pd-inchiostro); max-width: 320px; }
body .dh-fasce { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); max-width: 640px; gap: .6rem; }
body .dh-fascia { position: relative; flex-direction: column; align-items: flex-start; gap: .15rem; padding: .9rem 1rem; border: 1.5px solid var(--pd-filetto); border-radius: 14px; background: var(--pd-carta); font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--pd-inchiostro); font-size: .95rem; transition: border-color .2s ease, background-color .2s ease; }
body .dh-fascia input { position: absolute; opacity: 0; pointer-events: none; }
body .dh-fascia span { font-weight: 400; font-size: .82rem; color: var(--pd-grigio); }
body .dh-fascia small { margin: .35rem 0 0; font-family: var(--pd-display); font-size: 1.05rem; color: var(--pd-blu); }
body .dh-fascia:has(input:checked) { border-color: var(--pd-blu); background: #e6efe8; box-shadow: inset 0 0 0 1px var(--pd-blu); }
body .dh-fascia:has(input:focus-visible) { outline: 3px solid var(--pd-terracotta); outline-offset: 2px; }
body .dh-fascia.pieno { opacity: .45; }
body .dh-nota { color: var(--pd-grigio); font-size: .85rem; }
body .dh-anteprima { border-radius: 14px !important; font-size: .9rem !important; }

/* luoghi */
body .dh-luoghi { max-width: none; padding: 0; margin: 0; gap: clamp(2rem, 5vw, 3.5rem); }
body .dh-luogo { gap: clamp(1.25rem, 4vw, 3rem); }
body .dh-luogo:nth-child(even) > div:first-child { order: 2; }
body .dh-luogo img { border-radius: 999px 999px var(--pd-raggio) var(--pd-raggio); aspect-ratio: 4 / 5; box-shadow: var(--pd-ombra); }
body .dh-luogo h3 { font-family: var(--pd-display); font-size: clamp(1.5rem, 3vw, 2rem); color: var(--pd-inchiostro); }
body .dh-luogo h3 a { color: inherit; text-decoration: none; }
body .dh-luogo h3 a:hover { color: var(--pd-terracotta); }
@media (max-width: 760px) { body .dh-luogo:nth-child(even) > div:first-child { order: 0; } body .dh-luogo img { aspect-ratio: 4 / 3; border-radius: 120px 120px var(--pd-raggio) var(--pd-raggio); } }

/* pagamento a blocchi di WooCommerce: stessi caratteri e bottoni */
.wc-block-checkout, .wc-block-components-order-summary { font-family: var(--wp--preset--font-family--body); }
.wc-block-components-checkout-place-order-button { background: var(--pd-blu) !important; color: var(--pd-bianco) !important; border: 0 !important; border-radius: 999px !important; }
.wc-block-components-checkout-place-order-button:hover { background: var(--pd-terracotta) !important; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
	body .dh-card:hover, .wp-block-button__link:hover { transform: none; }
}

/* fasce orarie: il plugin mette display:block e maiuscole su tutte le label del modulo */
body .dh-prenota .dh-fascia { display: flex; flex-direction: column; align-items: flex-start; text-transform: none; letter-spacing: 0; font-size: 1rem; font-weight: 600; color: var(--pd-inchiostro); margin: 0; }
body .dh-prenota .dh-fascia span { display: block; }
body .dh-prenota .dh-fascia small { display: block; }
