/* PST Effetti: ritocchi grafici e animazioni. Ogni regola si aggancia a una classe "pst-..."
   assegnata al widget o al contenitore in Elementor (Avanzate > Classi CSS). */

.pst-site { --pst-amber: #f1a81c; --pst-ink: #1a1a1a; --pst-line: rgba(26, 26, 26, .14); --pst-mute: #5b574f; --pst-blue: #1b50bb; }
.pst-site .elementor-heading-title em { font-style: italic; }

/* testata: i pulsanti non vanno mai a capo */
.pst-header .elementor-button, .pst-dock .elementor-button { white-space: nowrap; }
/* hamburger e chiusura del menu: tondi come l'icona WhatsApp accanto (senza il padding dei pulsanti del kit) */
/* (display lo decide Xpro: su computer i due pulsanti sono nascosti) */
.pst-header .xpro-elementor-horizontal-menu-toggler, .pst-header .xpro-elementor-horizontal-menu-close { padding: 0; line-height: 1; letter-spacing: 0; box-shadow: none; }
.pst-header .xpro-elementor-horizontal-menu-toggler:focus-visible, .pst-header .xpro-elementor-horizontal-menu-close:focus-visible { outline: 2px solid var(--pst-amber); outline-offset: 2px; }
/* niente spazio di riga sotto hamburger e logo: restano centrati in altezza */
.pst-header .xpro-elementor-horizontal-menu-toggler-wrapper, .pst-header .elementor-widget-xpro-site-logo { line-height: 0; }
/* hamburger del progetto: tre righe sottili al posto dell'icona piena */
.pst-header .xpro-elementor-horizontal-menu-toggler i { display: block; position: relative; width: 16px; height: 11px; margin: 0 auto; border-block: 1px solid currentColor; box-sizing: border-box; }
.pst-header .xpro-elementor-horizontal-menu-toggler i::before { content: ""; position: absolute; left: 0; right: 0; top: 4px; height: 1px; background: currentColor; }
.pst-header .xpro-elementor-nav-link { white-space: nowrap; }
/* computer stretto (1025-1199 px): il numero di telefono lascia spazio al menu, resta "Prenota ora" */
@media (max-width: 1199px) { .pst-header .pst-head-tel { display: none; } }
/* pulsanti dell'apertura: stessa altezza; sui telefoni stretti via l'icona per tenere il testo su una riga */
.pst-hero-btn { align-self: stretch; }
.pst-hero-btn .elementor-button-wrapper { height: 100%; }
.pst-hero-btn .elementor-button { display: inline-flex; height: 100%; align-items: center; justify-content: center; }
@media (max-width: 400px) { .pst-hero-btn .elementor-button-icon { display: none; } }

/* ancore (#cucina, #modulo...) non finiscono sotto l'intestazione fissa */
.pst-sec, #modulo { scroll-margin-top: 84px; }

/* comparsa morbida: lo script nasconde (pst-pre) solo cio che e ancora sotto lo schermo */
.pst-pre { opacity: 0; transform: translateY(26px); }
.pst-shown { transition: opacity .8s cubic-bezier(.2, .8, .2, 1), transform .8s cubic-bezier(.2, .8, .2, 1); }
.pst-shown.pst-d1, .pst-card.pst-shown:nth-child(4n+2) { transition-delay: .1s; }
.pst-card.pst-shown:nth-child(4n+3) { transition-delay: .2s; }
.pst-card.pst-shown:nth-child(4n+4) { transition-delay: .3s; }
/* titolo d'apertura: entra al caricamento, solo CSS */
.pst-intro { animation: pst-rise .9s cubic-bezier(.2, .8, .2, 1) .15s both; }
@keyframes pst-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }

/* le illustrazioni posizionate si misurano dal riquadro del contenuto della sezione */
.pst-sec.e-con-boxed > .e-con-inner { position: relative; }
.pst-sub b { font-style: normal; font-weight: 700; }
.pst-write em { color: var(--pst-amber); }
.pst-small, .pst-info .pst-small { font: 400 .84rem/1.5 "Atkinson Hyperlegible", Verdana, sans-serif; color: var(--pst-mute); margin-top: 6px; }
.pst-info p { margin: 0; }
.pst-info-link a { color: inherit; text-decoration: none; background: linear-gradient(var(--pst-amber), var(--pst-amber)) left bottom / 100% 1px no-repeat; padding-bottom: 2px; }
.pst-info-link a:hover { color: var(--pst-amber); }
.pst-dish-title .elementor-heading-title { display: inline; background: linear-gradient(var(--pst-amber), var(--pst-amber)) left bottom / 0 1.5px no-repeat; transition: background-size .4s; padding-bottom: 3px; }
.pst-card:hover .pst-dish-title .elementor-heading-title { background-size: 100% 1.5px; }
.pst-modulo .wpforms-field-label { font: 400 .8rem/1.4 "Atkinson Hyperlegible", Verdana, sans-serif !important; letter-spacing: .08em; text-transform: uppercase; color: var(--pst-mute) !important; }
.pst-modulo input[type=text], .pst-modulo input[type=email], .pst-modulo input[type=tel], .pst-modulo textarea { border: 0 !important; border-bottom: 1px solid var(--pst-ink) !important; border-radius: 0 !important; padding-inline: 0 !important; background: transparent !important; box-shadow: none !important; }
.pst-modulo input:focus, .pst-modulo textarea:focus { outline: 2px solid var(--pst-amber) !important; outline-offset: 4px; }
.pst-boat::after { content: ""; display: block; height: 10px; margin: -10px -20% 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='12'%3E%3Cpath d='M0 6q8-7 16 0t16 0' fill='none' stroke='%231b50bb' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 / 32px 10px repeat-x; animation: pst-waves-bg 2.6s linear infinite; }
@keyframes pst-waves-bg { to { background-position: 32px 0; } }

/* etichetta di sezione con trattino ambra davanti */
.pst-eyebrow .elementor-heading-title { display: flex; align-items: center; gap: 12px; }
.pst-eyebrow .elementor-heading-title::before { content: ""; flex: none; width: 28px; height: 1px; background: var(--pst-amber); }

/* parola in corsivo sottolineata nei titoli di sezione */
.pst-h2 em { box-shadow: inset 0 -.09em 0 var(--pst-amber); }

/* apertura: nome tra due filetti */
.pst-ruled .elementor-heading-title { display: flex; align-items: center; justify-content: center; gap: clamp(12px, 2vw, 26px); white-space: nowrap; }
.pst-ruled .elementor-heading-title::before, .pst-ruled .elementor-heading-title::after { content: ""; flex: none; width: clamp(28px, 7vw, 104px); height: 1px; background: var(--pst-ink); }
@media (max-width: 640px) { .pst-ruled .elementor-heading-title::before, .pst-ruled .elementor-heading-title::after { display: none; } }

/* apertura: "È roba da matti." con "matti." sottolineato che si disegna */
.pst-claim .elementor-heading-title { line-height: 1.18; padding-top: .06em; }
.pst-claim em { display: inline-block; font-weight: 700; padding-inline: .04em .08em; background: linear-gradient(var(--pst-amber), var(--pst-amber)) 0 .89em / 100% .07em no-repeat; animation: pst-underline .8s cubic-bezier(.6, 0, .2, 1) 1.3s both; }
@keyframes pst-underline { from { background-size: 0 .07em; } }

/* logo tondo: si disegna come un tratto di penna, poi un piccolo sobbalzo */
@property --pst-a { syntax: "<angle>"; inherits: false; initial-value: 360deg; }
.pst-logo-pop img { background: var(--pst-amber); border-radius: 50%; -webkit-mask: conic-gradient(#000 var(--pst-a), transparent 0); mask: conic-gradient(#000 var(--pst-a), transparent 0); animation: pst-draw 1.6s cubic-bezier(.5, 0, .3, 1) .2s both, pst-pulse .7s cubic-bezier(.2, 1.6, .4, 1) 1.9s; transition: scale .4s cubic-bezier(.2, 1.6, .4, 1); }
.pst-logo-pop img:hover { scale: 1.08; }
@keyframes pst-draw { from { --pst-a: 0deg; } to { --pst-a: 360deg; } }
@keyframes pst-pulse { 50% { scale: 1.1; } }

/* illustrazioni che ondeggiano piano */
.pst-wobble { animation: pst-wobble 7s ease-in-out infinite; }
.pst-wobble.pst-l { rotate: -8deg; }
.pst-wobble.pst-r { rotate: 8deg; }
.pst-wobble.pst-d1 { animation-delay: -1s; } .pst-wobble.pst-d2 { animation-delay: -2s; } .pst-wobble.pst-d3 { animation-delay: -3s; } .pst-wobble.pst-d4 { animation-delay: -4s; }
@keyframes pst-wobble { 50% { translate: 0 -6px; } }

/* chip "4,9 su Google" */
.pst-chip { transition: transform .3s, border-color .3s; }
.pst-chip:hover { transform: translateY(-2px); border-color: var(--pst-ink) !important; }

/* scritta che scorre */
.pst-ticker { overflow: hidden; }
.pst-ticker .elementor-widget-container, .pst-ticker.elementor-widget-text-editor { overflow: hidden; }
.pst-ticker__run { display: flex; width: max-content; animation: pst-slide 44s linear infinite; }
.pst-ticker:hover .pst-ticker__run { animation-play-state: paused; }
.pst-ticker ul { display: flex; flex: none; margin: 0; padding: 0; list-style: none; }
.pst-ticker li { font: 400 clamp(1rem, 1.7vw, 1.25rem)/1 "Old Standard TT", Georgia, serif; letter-spacing: .14em; text-transform: uppercase; padding: 18px 0; white-space: nowrap; }
.pst-ticker li::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--pst-amber); margin-inline: 1.8em; display: inline-block; transform: translateY(-.2em); }
@keyframes pst-slide { to { transform: translateX(-50%); } }

/* foto con nastro adesivo e leggera inclinazione */
.pst-tape { position: relative; }
.pst-tape::before { content: ""; position: absolute; left: 50%; top: -12px; width: 98px; height: 26px; margin-left: -49px; background: var(--pst-amber); opacity: .92; rotate: var(--pst-t, -3deg); z-index: 2; clip-path: polygon(0 0, 3% 25%, 0 50%, 3% 75%, 0 100%, 100% 100%, 97% 75%, 100% 50%, 97% 25%, 100% 0); pointer-events: none; }
.pst-tape img { box-shadow: 0 16px 34px -16px rgba(26, 26, 26, .4); }
.pst-tilt-l { rotate: -1.3deg; } .pst-tilt-r { rotate: 1.3deg; --pst-t: 2deg; }
/* schede di piatti e drink: il nastro sta sulla scheda (la foto ritaglia lo zoom), inclinato a turno */
.pst-card.pst-tape:nth-child(even) { --pst-t: 2deg; }
.pst-snap { transform-origin: 50% 0; rotate: -2.4deg; animation: pst-sway 6s ease-in-out infinite; }
.pst-snap:hover { animation-play-state: paused; }
@keyframes pst-sway { 0%, 100% { rotate: -2.4deg; } 50% { rotate: -1deg; } }
.pst-zoom { overflow: hidden; }
.pst-zoom img { transition: transform 1s cubic-bezier(.2, .8, .2, 1); }
.pst-card:hover .pst-zoom img, .pst-zoom:hover img { transform: scale(1.05); }

/* adesivo tondo bianco per un'illustrazione sopra la foto */
.pst-sticker img { background: #fff; border-radius: 50%; padding: 12px; box-shadow: 0 8px 18px -8px rgba(26, 26, 26, .45); }

/* scheda clinica (Sintomi / Terapia / Prognosi) */
.pst-chart dl { margin: 0; font-size: .9rem; }
.pst-chart dl > div { display: grid; grid-template-columns: 92px 1fr; gap: 12px; border-bottom: 1px solid var(--pst-line); padding: 8px 0; }
.pst-chart dt { text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; color: var(--pst-mute); padding-top: 3px; }
.pst-chart dd { margin: 0; font-style: italic; }

/* riquadro "Un porto per tutti" */
.pst-porto { position: relative; overflow: hidden; }
.pst-porto::after { content: ""; position: absolute; left: 0; right: 0; bottom: 20px; height: 9px; background: radial-gradient(circle at 12px -8px, transparent 13.2px, var(--pst-amber) 13.8px, var(--pst-amber) 15px, transparent 15.6px) 0 0 / 24px 9px repeat-x; animation: pst-tide 9s linear infinite; pointer-events: none; }
@keyframes pst-tide { to { background-position: 48px 0; } }
.pst-badge img { background: var(--pst-amber); border-radius: 50%; padding: 20%; }
.pst-badge img { animation: pst-rock 5s ease-in-out infinite; }
@keyframes pst-rock { 0%, 100% { rotate: -9deg; } 50% { rotate: 9deg; } }
.pst-write em { display: inline-block; }
.pst-porto.pst-in .pst-write em { animation: pst-write 1.3s cubic-bezier(.65, 0, .25, 1) .5s both; }
@keyframes pst-write { from { clip-path: inset(-.3em 100% -.4em -.2em); transform: translateY(.08em); } to { clip-path: inset(-.3em -.3em -.4em -.2em); transform: none; } }

/* occasioni (pillole inclinate) */
.pst-tags .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 !important; }
.pst-tags .elementor-icon-list-item { margin: 0 !important; padding: 10px 18px 11px !important; border: 1px solid var(--pst-ink); border-radius: 999px; background: #fff; rotate: var(--r, 0deg); transition: rotate .35s cubic-bezier(.2, .8, .2, 1), transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s; }
.pst-tags .elementor-icon-list-item::after { display: none !important; }
.pst-tags .elementor-icon-list-text { font: italic 400 1.1rem/1 "Old Standard TT", Georgia, serif !important; padding: 0 !important; }
.pst-tags .elementor-icon-list-item:nth-child(3n+1) { background: var(--pst-amber); border-color: var(--pst-amber); --r: -2deg; }
.pst-tags .elementor-icon-list-item:nth-child(3n+2) { --r: 1.6deg; }
.pst-tags .elementor-icon-list-item:nth-child(3n) { background: var(--pst-ink); --r: -1deg; }
.pst-tags .elementor-icon-list-item:nth-child(3n) .elementor-icon-list-text { color: #fff !important; }
.pst-tags .elementor-icon-list-item:hover { rotate: 0deg; transform: translateY(-3px); box-shadow: 0 8px 16px -10px rgba(26, 26, 26, .6); }

/* voto Google grande sottolineato */
.pst-score .elementor-heading-title { box-shadow: inset 0 -.1em 0 var(--pst-amber); display: inline-block; }

/* modulo WPForms dentro la scheda */
.pst-modulo .wpforms-container { margin: 0 !important; }
.pst-modulo .wpforms-field-description a { color: var(--pst-ink); text-decoration-color: var(--pst-amber); }
.pst-modulo button[type=submit] { border-radius: 999px !important; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; padding: 16px 28px !important; height: auto !important; }

/* barra prenota fissa in fondo, solo su telefono */
@media (max-width: 767px) {
	.pst-dock { position: fixed !important; left: 0; right: 0; bottom: 0; z-index: 60; padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px)) !important; }
	body.pst-site { padding-bottom: 72px; }
	/* il pulsante chat di SiteLeads sale sopra la barra, cosi non copre "Prenota ora" */
	.pst-site .siteleads-root { bottom: calc(76px + env(safe-area-inset-bottom, 0px)) !important; }
}

/* illustrazioni che viaggiano verso l'etichetta della sezione (vedi pst-effetti.js) */
.pst-swim { transition: transform .3s ease-out; will-change: transform; z-index: 3; pointer-events: none; }
.pst-swim img, .pst-swim svg { display: block; width: 100%; height: auto; }

/* barchetta: dondola, onde che scorrono sotto */
.pst-boat img, .pst-boat svg { transform-origin: 50% 80%; animation: pst-sail 4.5s ease-in-out infinite; }
@keyframes pst-sail { 0%, 100% { rotate: -5deg; translate: 0 0; } 50% { rotate: 5deg; translate: 0 -1.5px; } }
.pst-waves { overflow: hidden; }
.pst-waves img { width: 200% !important; max-width: none !important; height: 10px !important; animation: pst-waves 2.6s linear infinite; }
@keyframes pst-waves { to { transform: translateX(-16.667%); } }

/* boccale che si riempie e fa la schiuma */
.pst-mug .mug__beer { fill: var(--pst-amber); transform-box: fill-box; transform-origin: 50% 100%; transform: scaleY(var(--fill, 1)); transition: transform .3s ease-out; }
.pst-mug .mug__foam { transform-box: fill-box; transform-origin: 50% 100%; transform: scale(calc(.6 + .4 * var(--foam, 1)), var(--foam, 1)); transition: transform .3s ease-out; }

/* nuvoletta: tre righe di scarabocchio che si scrivono una dopo l'altra */
.pst-talk .talk__ink { stroke: var(--pst-amber); stroke-width: 2.2; stroke-dasharray: 1; stroke-dashoffset: calc(1 - clamp(0, var(--fill, 1) * 3 - var(--i, 0), 1)); transition: stroke-dashoffset .3s ease-out; }

/* brindisi: cin cin con scintillio */
.pst-cheers .cheers__l, .pst-cheers .cheers__r { transform-box: fill-box; transform-origin: 50% 100%; animation: pst-clink-l 2.6s ease-in-out infinite; }
.pst-cheers .cheers__r { animation-name: pst-clink-r; }
.pst-cheers .cheers__spark { opacity: 0; animation: pst-spark 2.6s ease-out infinite; }
@keyframes pst-clink-l { 0%, 50%, 100% { rotate: 0deg; } 66% { rotate: -8deg; } 80% { rotate: 1.5deg; } 88% { rotate: 0deg; } }
@keyframes pst-clink-r { 0%, 50%, 100% { rotate: 0deg; } 66% { rotate: 8deg; } 80% { rotate: -1.5deg; } 88% { rotate: 0deg; } }
@keyframes pst-spark { 0%, 76%, 100% { opacity: 0; } 82% { opacity: 1; } 96% { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
	.pst-site *, .pst-site *::before, .pst-site *::after { animation: none !important; transition: none !important; }
	.pst-cheers .cheers__spark { opacity: 1; }
	.pst-logo-pop img { -webkit-mask: none; mask: none; }
}
