/* Pegaso Elementor components */
.pegaso-section { padding: clamp(76px, 9vw, 132px) 0; position: relative; }
.pegaso-section-head { max-width: 760px; margin-bottom: 44px; }
.pegaso-section-head--center { margin-inline: auto; text-align: center; }
.pegaso-section-head h2,
.pegaso-park h2,
.pegaso-sport h2,
.pegaso-seasonal h2 {
  margin: 8px 0 18px;
  color: var(--pegaso-primary);
  font-family: var(--pff-font-heading);
  font-size: clamp(2.35rem, 5vw, 4.8rem);
  line-height: .98;
  letter-spacing: -.04em;
}
.pegaso-section-head > p:last-child { color: var(--pegaso-muted); font-size: 1.06rem; max-width: 680px; }
.pegaso-eyebrow { margin: 0 0 14px; color: #fff; font-size: .75rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.pegaso-eyebrow--dark { color: var(--pegaso-accent); }
.pegaso-richtext > :first-child { margin-top: 0; }
.pegaso-richtext > :last-child { margin-bottom: 0; }
.pegaso-anchor { height: 0; scroll-margin-top: var(--pegaso-header-h); }

/* Hero */
.pegaso-hero {
  min-height: 100svh;
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
  background: #19352b var(--pegaso-hero-image, none) center/cover no-repeat;
  color: #fff;
}
.pegaso-hero__media { position: absolute; inset: -4%; z-index: -3; transform: translate3d(0, calc(var(--pegaso-hero-y, 0px) * .12), 0) scale(1.05); will-change: transform; }
.pegaso-hero__video { width: 100%; height: 100%; object-fit: cover; display: block; }
.pegaso-hero__overlay {
  position: absolute; inset: 0; z-index: -2;
  background:
    linear-gradient(90deg, rgba(10,33,25,.86) 0%, rgba(10,33,25,.54) 42%, rgba(10,33,25,.08) 75%),
    linear-gradient(0deg, rgba(10,33,25,.62) 0%, rgba(10,33,25,0) 48%);
  opacity: var(--pegaso-hero-overlay, .34);
}
.pegaso-hero::before {
  content: ""; position: absolute; z-index: -1; right: -8vw; bottom: -20vw; width: 54vw; height: 54vw; border-radius: 50%;
  border: 2px solid rgba(255,255,255,.12); box-shadow: 0 0 0 44px rgba(232,185,79,.06), 0 0 0 88px rgba(168,205,208,.04);
}
.pegaso-hero__content { padding-top: calc(var(--pegaso-header-h) + 80px); padding-bottom: clamp(110px, 14vh, 180px); }
.pegaso-hero h1 { max-width: 900px; margin: 0; font-family: var(--pff-font-heading); font-size: clamp(3.3rem, 8vw, 7.7rem); letter-spacing: -.055em; line-height: .9; text-wrap: balance; }
.pegaso-hero__lead { max-width: 720px; margin: 28px 0 0; font-size: clamp(1.05rem, 2vw, 1.35rem); color: rgba(255,255,255,.88); }
.pegaso-hero__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 34px; }
.pegaso-hero__scroll { position: absolute; left: 50%; bottom: 24px; transform: translateX(-50%); display: grid; place-items: center; gap: 7px; color: #fff; text-decoration: none; opacity: .82; }
.pegaso-hero__scroll span { width: 1px; height: 38px; background: rgba(255,255,255,.55); position: relative; overflow: hidden; }
.pegaso-hero__scroll span::after { content: ""; position: absolute; top: -20px; left: 0; width: 1px; height: 18px; background: #fff; animation: pegaso-scroll-cue 1.8s ease-in-out infinite; }
.pegaso-hero__scroll small { font-size: .65rem; font-weight: 800; letter-spacing: .18em; }
@keyframes pegaso-scroll-cue { 0%{transform:translateY(0);opacity:0} 25%{opacity:1} 100%{transform:translateY(58px);opacity:0} }

/* Trust */
.pegaso-trust { background: var(--pegaso-cream); border-bottom: 1px solid var(--pegaso-border); }
.pegaso-trust__grid { display: grid; grid-template-columns: repeat(4,1fr); }
.pegaso-trust__item { padding: 26px 30px; border-right: 1px solid var(--pegaso-border); }
.pegaso-trust__item:last-child { border-right: 0; }
.pegaso-trust__item strong { display: block; color: var(--pegaso-primary); font-family: var(--pff-font-heading); font-size: 1.5rem; line-height: 1.05; }
.pegaso-trust__item span { display: block; margin-top: 6px; color: var(--pegaso-muted); font-size: .88rem; }

/* Experience cards: compact three-column layout with independent actions. */
.pegaso-experiences { background: var(--pegaso-surface); }
.pegaso-experiences__grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.pegaso-experience-card { position: relative; display: flex; min-width: 0; min-height: 340px; overflow: hidden; border-radius: var(--pegaso-radius); color: #fff; isolation: isolate; background: var(--pegaso-primary); }
.pegaso-experience-card__media { position: absolute; inset: 0; z-index: -2; background: linear-gradient(135deg, #7e9c78, #29483c); background-size: cover; background-position: center; transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.pegaso-experience-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(15,37,29,.94) 0%, rgba(15,37,29,.64) 100%); }
.pegaso-experience-card__body { position: relative; display: flex; flex-direction: column; align-items: flex-start; width: 100%; padding: 24px; overflow-wrap: anywhere; }
.pegaso-experience-card__body > span { display: inline-flex; padding: 5px 9px; border-radius: 999px; background: rgba(255,255,255,.16); backdrop-filter: blur(8px); font-size: .67rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.pegaso-experience-card h3 { margin: 16px 0 12px; color: inherit; font-family: var(--pff-font-heading); font-size: clamp(1.5rem,2.4vw,2rem); line-height: 1.08; }
.pegaso-experience-card p { margin: 0; color: rgba(255,255,255,.9); font-size: .92rem; line-height: 1.55; }
.pegaso-experience-card__actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; width: 100%; margin-top: auto; padding-top: 22px; }
.pegaso-experience-card__link { display: inline-flex; align-items: center; justify-content: center; gap: 8px; max-width: 100%; min-height: 44px; padding: 10px 14px; border: 1px solid #fff; border-radius: 8px; background: #fff; color: #17382c; font-size: .8rem; font-weight: 700; line-height: 1.3; text-decoration: none; }
.pegaso-experience-card__link--pdf { background: transparent; color: #fff; }
.pegaso-experience-card__link:hover { background: #e8f2e4; color: #17382c; }
.pegaso-experience-card__link:focus-visible { outline: 3px solid #f6dc81; outline-offset: 3px; }
.pegaso-experience-card .pegaso-experience-card__pdf-note { flex-basis: 100%; font-size: .75rem; line-height: 1.45; }
.pegaso-experience-card:hover .pegaso-experience-card__media { transform: scale(1.045); }
.pegaso-experience-card--2 { background: color-mix(in srgb, var(--pff-secondary) 78%, var(--pff-primary)); }
.pegaso-experience-card--3 { background: color-mix(in srgb, var(--pff-accent) 82%, var(--pff-primary)); }
.pegaso-experience-card--4 { background: color-mix(in srgb, var(--pff-primary) 78%, var(--pff-secondary)); }
@media (max-width: 1023px) {
  .pegaso-experiences__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 767px) {
  .pegaso-experiences__grid { grid-template-columns: 1fr; }
  .pegaso-experience-card { min-height: 300px; }
  .pegaso-experience-card__body { padding: 22px; }
}

/* Journey */
.pegaso-journey { background: var(--pegaso-cream); overflow: hidden; }
.pegaso-journey__track { position: relative; min-height: 400px; margin-top: 30px; }
.pegaso-journey__line { position: absolute; inset: 56px 0 auto; width: 100%; height: 220px; overflow: visible; }
.pegaso-journey__line path { fill: none; stroke: rgba(35,70,56,.24); stroke-width: 3; stroke-dasharray: .03 .016; stroke-linecap: round; }
.pegaso-journey__items { position: relative; display: grid; grid-template-columns: repeat(5,1fr); gap: 14px; }
.pegaso-journey__item { text-align: center; padding-top: calc(24px + (var(--i) % 2) * 105px); }
.pegaso-journey__dot { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 20px; border-radius: 50%; background: var(--pegaso-primary); color: #fff; border: 7px solid var(--pegaso-cream); box-shadow: 0 0 0 1px rgba(35,70,56,.15); font-family: var(--pff-font-heading); font-weight: 700; }
.pegaso-journey__item h3 { margin: 0 0 8px; color: var(--pegaso-primary); font-family: var(--pff-font-heading); font-size: 1.3rem; }
.pegaso-journey__item p { margin: 0 auto; max-width: 210px; color: var(--pegaso-muted); font-size: .92rem; }

/* Ponies */
.pegaso-ponies { background: #fff; }
.pegaso-ponies__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.pegaso-pony-card { display: block; overflow: hidden; border-radius: 24px; border: 1px solid var(--pegaso-border); background: var(--pegaso-surface); text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
.pegaso-pony-card:hover { transform: translateY(-5px); box-shadow: var(--pegaso-shadow); }
.pegaso-pony-card__image { aspect-ratio: 4/3; background: var(--pegaso-cream); overflow: hidden; display: grid; place-items: center; color: var(--pegaso-primary); font-size: 4rem; }
.pegaso-pony-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.pegaso-pony-card:hover img { transform: scale(1.035); }
.pegaso-pony-card__body { padding: 24px; }
.pegaso-pony-card__body small { color: var(--pegaso-accent); font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.pegaso-pony-card h3 { margin: 7px 0 7px; color: var(--pegaso-primary); font-family: var(--pff-font-heading); font-size: 1.9rem; line-height: 1; }
.pegaso-pony-card p { margin: 0; color: var(--pegaso-muted); }
.pegaso-empty-state { padding: 30px; border: 1px dashed var(--pegaso-border); border-radius: 20px; background: var(--pegaso-cream); color: var(--pegaso-muted); }
.pegaso-section-link { margin: 32px 0 0; }
.pegaso-btn--dark { color: var(--pegaso-primary); border-color: var(--pegaso-primary); }

/* Park */
.pegaso-park { background: var(--pegaso-primary); color: #fff; }
.pegaso-park__grid { display: grid; grid-template-columns: 1.1fr .9fr; align-items: stretch; gap: clamp(36px,6vw,80px); }
.pegaso-park__media { min-height: 620px; border-radius: 50% 50% 26px 26px / 18% 18% 26px 26px; background: linear-gradient(145deg,#8fa885,#345b49); background-size: cover; background-position: center; position: relative; overflow: hidden; }
.pegaso-park__media::after { content:""; position:absolute; inset:20px; border:1px solid rgba(255,255,255,.35); border-radius: inherit; }
.pegaso-park__content { align-self: center; padding-block: 30px; }
.pegaso-park h2 { color: #fff; }
.pegaso-park__content .pegaso-richtext { color: rgba(255,255,255,.78); font-size: 1.05rem; }
.pegaso-park__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 30px 0; }
.pegaso-park__facts div { padding-top: 18px; border-top: 1px solid rgba(255,255,255,.2); }
.pegaso-park__facts strong { display: block; font-family: var(--pff-font-heading); font-size: 1.55rem; }
.pegaso-park__facts span { display: block; color: rgba(255,255,255,.66); font-size: .88rem; }

/* Sport */
.pegaso-sport { background: var(--pegaso-surface); }
.pegaso-sport__head { display: grid; grid-template-columns: 1.1fr .9fr; gap: 60px; align-items: end; margin-bottom: 50px; }
.pegaso-sport__head > p { margin: 0 0 10px; color: var(--pegaso-muted); }
.pegaso-sport__steps { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--pegaso-border); }
.pegaso-sport__steps article { padding: 34px 36px 36px 0; border-right: 1px solid var(--pegaso-border); }
.pegaso-sport__steps article + article { padding-left: 36px; }
.pegaso-sport__steps article:last-child { border-right: 0; }
.pegaso-sport__steps span { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--pegaso-cream); color: var(--pegaso-accent); font-weight: 800; }
.pegaso-sport__steps h3 { margin: 22px 0 10px; color: var(--pegaso-primary); font-family: var(--pff-font-heading); font-size: 1.7rem; }
.pegaso-sport__steps p { margin: 0; color: var(--pegaso-muted); }

/* Seasonal */
.pegaso-seasonal { background: var(--pegaso-cream); }
.pegaso-seasonal__card { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border-radius: var(--pegaso-radius); background: #fff; box-shadow: var(--pegaso-shadow); }
.pegaso-seasonal__media { min-height: 480px; background: linear-gradient(135deg,#b9d7d3,#7c9d72); background-size: cover; background-position: center; }
.pegaso-seasonal__content { align-self: center; padding: clamp(34px,6vw,72px); }
.pegaso-seasonal__content h2 { font-size: clamp(2.3rem,4.2vw,4.4rem); }
.pegaso-seasonal__content > p:not(.pegaso-eyebrow) { color: var(--pegaso-muted); }
.pegaso-seasonal__meta { color: var(--pegaso-accent) !important; font-weight: 800; }

/* Bidirectional scroll reveal */
[data-pegaso-reveal].pff-reveal-ready { --pegaso-reveal-x: 0px; --pegaso-reveal-y: 34px; --pegaso-reveal-scale: 1; opacity: 0; transform: translate3d(var(--pegaso-reveal-x),var(--pegaso-reveal-y),0) scale(var(--pegaso-reveal-scale)); transition: opacity .72s cubic-bezier(.2,.7,.2,1), transform .72s cubic-bezier(.2,.7,.2,1); will-change: transform,opacity; }
html[data-pegaso-direction="up"] [data-pegaso-reveal="fade-up"].pff-reveal-ready { --pegaso-reveal-y: -34px; }
[data-pegaso-reveal="fade-down"].pff-reveal-ready { --pegaso-reveal-y: -34px; }
html[data-pegaso-direction="up"] [data-pegaso-reveal="fade-down"].pff-reveal-ready { --pegaso-reveal-y: 34px; }
[data-pegaso-reveal="slide-left"].pff-reveal-ready { --pegaso-reveal-x: -46px; --pegaso-reveal-y: 0px; }
html[data-pegaso-direction="up"] [data-pegaso-reveal="slide-left"].pff-reveal-ready { --pegaso-reveal-x: 46px; }
[data-pegaso-reveal="slide-right"].pff-reveal-ready { --pegaso-reveal-x: 46px; --pegaso-reveal-y: 0px; }
html[data-pegaso-direction="up"] [data-pegaso-reveal="slide-right"].pff-reveal-ready { --pegaso-reveal-x: -46px; }
[data-pegaso-reveal="scale"].pff-reveal-ready { --pegaso-reveal-y: 0px; --pegaso-reveal-scale: .965; }
[data-pegaso-reveal].pff-reveal-ready.is-visible { opacity: 1; --pegaso-reveal-x:0px; --pegaso-reveal-y:0px; --pegaso-reveal-scale:1; }

/* Standard Elementor demo sections */
.pegaso-demo-intro { padding: clamp(76px,9vw,130px) 0 !important; }
.pegaso-demo-intro .elementor-heading-title { color: var(--pegaso-primary); font-family: var(--pff-font-heading); font-size: clamp(2.4rem,5vw,4.7rem); line-height: .98; letter-spacing:-.04em; }
.pegaso-demo-cta { padding: clamp(72px,8vw,110px) 20px !important; background: var(--pegaso-honey); text-align:center; }
.pegaso-demo-cta .elementor-heading-title { color: var(--pegaso-primary); font-family: var(--pff-font-heading); font-size:clamp(2.3rem,5vw,4.4rem); }
.pegaso-demo-cta .elementor-button { border-radius:999px; background:var(--pegaso-primary); padding:16px 26px; }

@media (max-width: 1024px) {
  .pegaso-trust__grid { grid-template-columns: repeat(2,1fr); }
  .pegaso-trust__item:nth-child(2) { border-right: 0; }
  .pegaso-trust__item:nth-child(-n+2) { border-bottom: 1px solid var(--pegaso-border); }
  .pegaso-journey__line { display: none; }
  .pegaso-journey__items { grid-template-columns: 1fr 1fr; gap: 28px; }
  .pegaso-journey__item { padding-top: 0; text-align: left; display: grid; grid-template-columns: 64px 1fr; column-gap: 18px; }
  .pegaso-journey__dot { width: 60px; height: 60px; margin:0; grid-row:1 / span 2; }
  .pegaso-journey__item p { max-width:none; margin:0; }
  .pegaso-ponies__grid { grid-template-columns: repeat(2,1fr); }
  .pegaso-park__grid { grid-template-columns: 1fr; }
  .pegaso-park__media { min-height: 520px; }
}

@media (max-width: 680px) {
  .pegaso-hero { min-height: 100svh; background-image: var(--pegaso-hero-mobile, var(--pegaso-hero-image, none)); background-position:center; }
  .pegaso-hero__video { display:none; }
  .pegaso-hero__overlay { background: linear-gradient(0deg, rgba(10,33,25,.86) 0%, rgba(10,33,25,.32) 70%); }
  .pegaso-hero__content { padding-bottom: 112px; }
  .pegaso-hero h1 { font-size: clamp(3rem,16vw,5.4rem); }
  .pegaso-hero__actions { align-items:stretch; flex-direction:column; max-width:340px; }
  .pegaso-trust__item { padding:20px 16px; }
  .pegaso-trust__item strong { font-size:1.25rem; }
  .pegaso-experiences__grid { grid-template-columns: 1fr; }
  .pegaso-experience-card { min-height: 300px; }
  .pegaso-experience-card__body { padding: 22px; }
  .pegaso-journey__items { grid-template-columns:1fr; }
  .pegaso-ponies__grid { display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px; }
  .pegaso-pony-card { min-width:84%; scroll-snap-align:start; }
  .pegaso-park__media { min-height: 390px; }
  .pegaso-park__facts { grid-template-columns:1fr; }
  .pegaso-sport__head { grid-template-columns:1fr; gap:16px; }
  .pegaso-sport__steps { grid-template-columns:1fr; }
  .pegaso-sport__steps article, .pegaso-sport__steps article + article { padding:28px 0; border-right:0; border-bottom:1px solid var(--pegaso-border); }
  .pegaso-sport__steps article:last-child { border-bottom:0; }
  .pegaso-seasonal__card { grid-template-columns:1fr; }
  .pegaso-seasonal__media { min-height:330px; }
  [data-pegaso-reveal] { --pegaso-reveal-x:0px !important; --pegaso-reveal-y:22px !important; }
}

@media (prefers-reduced-motion: reduce) {
  [data-pegaso-reveal] { opacity:1 !important; transform:none !important; }
  .pegaso-hero__scroll span::after { animation:none; }
  .pegaso-hero__media { transform:none !important; }
}

/* Native CPT templates */
.pegaso-archive-hero { padding: clamp(110px,14vw,190px) 0 70px; background: var(--pegaso-cream); }
.pegaso-archive-hero h1, .pegaso-pony-single h1 { margin: 8px 0 18px; font-family: var(--pff-font-heading); color:var(--pegaso-primary); font-size:clamp(3rem,7vw,6.2rem); line-height:.92; letter-spacing:-.05em; }
.pegaso-archive-hero p:last-child { max-width:700px; color:var(--pegaso-muted); }
.pegaso-pony-single { padding-top: clamp(70px,9vw,120px); }
.pegaso-pony-single__hero { display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,7vw,90px); align-items:center; }
.pegaso-pony-single__media { min-height:560px; border-radius:var(--pegaso-radius); overflow:hidden; display:grid; place-items:center; background:var(--pegaso-cream); font-size:6rem; }
.pegaso-pony-single__media img { width:100%; height:100%; object-fit:cover; }
.pegaso-pony-single__tagline { font-size:1.25rem; color:var(--pegaso-muted); }
.pegaso-pony-single__facts { display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; margin-top:28px; }
.pegaso-pony-single__facts div { padding-top:13px; border-top:1px solid var(--pegaso-border); }
.pegaso-pony-single__facts strong,.pegaso-pony-single__facts span { display:block; }
.pegaso-pony-single__facts strong { color:var(--pegaso-accent); font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; }
.pegaso-pony-single__content { margin-top:70px; }
.pegaso-event-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:26px; }
.pegaso-event-card { overflow:hidden; border:1px solid var(--pegaso-border); border-radius:24px; background:#fff; }
.pegaso-event-card img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.pegaso-event-card > div { padding:28px; }
.pegaso-event-card h2 { margin:6px 0 10px; font-family: var(--pff-font-heading); color:var(--pegaso-primary); font-size:2rem; }
.pegaso-event-card h2 a { text-decoration:none; }
.pegaso-event-card__meta { color:var(--pegaso-accent); font-size:.8rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
@media(max-width:800px){.pegaso-pony-single__hero,.pegaso-event-grid{grid-template-columns:1fr}.pegaso-pony-single__media{min-height:400px}.pegaso-pony-single__facts{grid-template-columns:1fr}}
.pegaso-demo-intro { width:min(calc(100% - 40px), var(--pegaso-container)) !important; margin-inline:auto !important; }

/* =========================================================
   Multi-brand components (v2)
   ========================================================= */
.pff-section { padding: clamp(78px, 9vw, 132px) 0; position: relative; }
.pff-section-head { max-width: 780px; margin-bottom: 44px; }
.pff-section-head h2,
.pff-hours h2,
.pff-park-bridge h2 {
  margin: 8px 0 18px;
  color: var(--pff-primary);
  font-family: var(--pff-font-heading);
  font-size: clamp(2.35rem, 5vw, 4.8rem);
  line-height: .98;
  letter-spacing: -.04em;
}
.pff-section-head > p:last-child { color: var(--pff-muted); font-size: 1.06rem; max-width: 700px; }
.pff-eyebrow { margin: 0 0 14px; color: #fff; font-size: .74rem; font-weight: 820; letter-spacing: .16em; text-transform: uppercase; }
.pff-eyebrow--dark { color: var(--pff-accent); }
.pff-anchor { height: 0; scroll-margin-top: calc(var(--pff-header-h) + 20px); }

/* Generic video hero. Visual treatment changes per activity. */
.pff-hero {
  min-height: 100svh;
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
  background: var(--pff-primary) var(--pff-hero-image, none) center/cover no-repeat;
  color: #fff;
}
.pff-hero__media { position: absolute; inset: -4%; z-index: -4; transform: translate3d(0, calc(var(--pff-hero-y, 0px) * .12), 0) scale(1.05); will-change: transform; }
.pff-hero__slides { position:absolute; inset:-4%; z-index:-4; overflow:hidden; transform:translate3d(0, calc(var(--pff-hero-y, 0px) * .12), 0) scale(1.05); will-change:transform; background:var(--pff-primary); }
.pff-hero__slide { position:absolute; inset:0; opacity:0; background-image:var(--pff-slide-image,none); background-position:center; background-size:cover; background-repeat:no-repeat; transform:scale(1.025); transition:opacity var(--pff-hero-slide-transition,1.2s) ease, transform calc(var(--pff-hero-slide-transition,1.2s) * 2.2) ease; will-change:opacity,transform; }
.pff-hero__slide.is-active { opacity:1; transform:scale(1); }
.pff-hero__dots { position:absolute; right:clamp(20px,4vw,58px); bottom:30px; z-index:3; display:flex; align-items:center; gap:8px; }
.pff-hero__dot { width:9px; height:9px; padding:0; border:1px solid rgba(255,255,255,.8); border-radius:999px; background:rgba(255,255,255,.18); cursor:pointer; box-shadow:0 1px 8px rgba(0,0,0,.14); transition:width .25s ease, background .25s ease, opacity .25s ease; }
.pff-hero__dot:hover,.pff-hero__dot:focus-visible { background:rgba(255,255,255,.72); outline:2px solid rgba(255,255,255,.36); outline-offset:3px; }
.pff-hero__dot.is-active { width:28px; background:#fff; }
.pff-hero__video { display: block; width: 100%; height: 100%; object-fit: cover; }
.pff-hero__overlay { position: absolute; inset: 0; z-index: -3; opacity: var(--pff-hero-overlay, .42); background: linear-gradient(90deg, rgba(9,26,21,.92) 0%, rgba(9,26,21,.56) 44%, rgba(9,26,21,.08) 76%), linear-gradient(0deg, rgba(9,26,21,.62), transparent 48%); }
.pff-hero__decoration { position: absolute; z-index: -2; pointer-events: none; }
.pff-hero__content { padding-top: calc(var(--pff-header-h) + 78px); padding-bottom: clamp(112px, 14vh, 180px); }
body.pff-has-parkbar .pff-hero { min-height: calc(100svh - var(--pff-parkbar-h)); }
.pff-hero h1 { max-width: 980px; margin: 0; font-family: var(--pff-font-heading); font-size: clamp(3.4rem, 8vw, 7.9rem); line-height: .9; letter-spacing: -.055em; text-wrap: balance; }
.pff-hero__lead { max-width: 720px; margin: 28px 0 0; color: rgba(255,255,255,.86); font-size: clamp(1.05rem,2vw,1.35rem); }
.pff-hero__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 34px; }
.pff-hero__scroll { position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); display: grid; justify-items: center; gap: 6px; color: #fff; text-decoration: none; opacity: .82; }
.pff-hero__scroll span { width: 1px; height: 38px; background: rgba(255,255,255,.5); position: relative; overflow: hidden; }
.pff-hero__scroll span::after { content: ""; position: absolute; top: -20px; left: 0; width: 1px; height: 18px; background: #fff; animation: pff-scroll-cue 1.8s ease-in-out infinite; }
.pff-hero__scroll small { font-size: .64rem; font-weight: 820; letter-spacing: .18em; }
@keyframes pff-scroll-cue { 0%{transform:translateY(0);opacity:0}25%{opacity:1}100%{transform:translateY(58px);opacity:0} }

/* Pegaso: movement and curved traces. */
.pff-hero--pegaso .pff-hero__decoration { right: -10vw; bottom: -18vw; width: 55vw; aspect-ratio: 1; border: 2px solid rgba(255,255,255,.13); border-radius: 50%; box-shadow: 0 0 0 44px color-mix(in srgb, var(--pff-secondary) 8%, transparent), 0 0 0 88px rgba(255,255,255,.035); }

/* Petit Paris: editorial framing, less playful. */
.pff-hero--petit .pff-hero__overlay { background: linear-gradient(90deg, rgba(24,30,27,.9) 0%, rgba(24,30,27,.5) 48%, rgba(24,30,27,.1) 78%), linear-gradient(0deg, rgba(24,30,27,.55), transparent 56%); }
.pff-hero--petit .pff-hero__decoration { inset: calc(var(--pff-header-h) + var(--pff-parkbar-h) + 44px) 42px 42px auto; width: min(31vw, 430px); border-top: 1px solid rgba(255,255,255,.34); border-right: 1px solid rgba(255,255,255,.34); }
.pff-hero--petit h1 { max-width: 820px; font-size: clamp(3.2rem, 7vw, 7rem); }
.pff-brand-petit .pff-eyebrow { letter-spacing: .2em; }

/* Pettirosso: soft organic shapes. */
.pff-hero--scricciolo .pff-hero__overlay { background: linear-gradient(0deg, rgba(34,64,57,.8) 0%, rgba(34,64,57,.28) 68%), linear-gradient(90deg, rgba(34,64,57,.58), transparent 72%); }
.pff-hero--scricciolo .pff-hero__decoration { right: -8vw; bottom: -10vw; width: 43vw; aspect-ratio: 1.2; border-radius: 54% 46% 62% 38% / 42% 58% 44% 56%; background: color-mix(in srgb, var(--pff-accent) 20%, transparent); filter: blur(1px); }

/* Feature grid */
.pff-feature-section { background: var(--pff-surface); }
.pff-feature-grid { display: grid; gap: 20px; }
.pff-feature-grid--2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.pff-feature-grid--3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.pff-feature-grid--4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.pff-feature-card { min-height: 330px; overflow: hidden; position: relative; display: flex; flex-direction: column; border: 1px solid var(--pff-border); border-radius: var(--pff-radius); background: #fff; text-decoration: none; color: inherit; transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.pff-feature-card:hover { transform: translateY(-5px); box-shadow: var(--pff-shadow); border-color: color-mix(in srgb, var(--pff-accent) 35%, var(--pff-border)); }
.pff-feature-card__media { min-height: 190px; background: var(--pff-cream) center/cover no-repeat; }
.pff-feature-card__body { padding: 28px; margin-top: auto; }
.pff-feature-card__body > span { color: var(--pff-accent); font-size: .72rem; font-weight: 820; letter-spacing: .12em; text-transform: uppercase; }
.pff-feature-card h3 { margin: 12px 0 8px; color: var(--pff-primary); font-family: var(--pff-font-heading); font-size: clamp(1.65rem, 2.5vw, 2.4rem); line-height: 1; }
.pff-feature-card p { margin: 0; color: var(--pff-muted); }
.pff-feature-intro > :first-child, .pff-feature-card__text > :first-child { margin-top: 0; }
.pff-feature-intro > :last-child, .pff-feature-card__text > :last-child { margin-bottom: 0; }
.pff-feature-card__text { color: var(--pff-muted); }
.pff-feature-card__text p { margin: 0 0 .75em; color: inherit; }
.pff-feature-card__text ul, .pff-feature-card__text ol { margin: .65em 0 0; padding-left: 1.25em; }
.pff-feature-card__text a, .pff-feature-intro a { color: var(--pff-accent); text-decoration: underline; text-underline-offset: .14em; }
.pff-brand-petit .pff-feature-card { border-radius: 3px; box-shadow: none; }
.pff-brand-petit .pff-feature-card__body { padding: 30px 28px 34px; }
.pff-brand-scricciolo .pff-feature-card { border: 0; background: var(--pff-cream); }

/* Timeline */
.pff-timeline-section { background: var(--pff-cream); overflow: hidden; }
.pff-timeline { position: relative; margin-top: 32px; }
.pff-timeline__line { position: absolute; left: 0; right: 0; top: 54px; width: 100%; height: 90px; overflow: visible; }
.pff-timeline__line path { fill: none; stroke: color-mix(in srgb, var(--pff-primary) 32%, transparent); stroke-width: 2.5; stroke-linecap: round; transition: stroke-dashoffset 1.25s cubic-bezier(.2,.7,.2,1); }
.pff-timeline__items { position: relative; display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); gap: 18px; }
.pff-timeline__items article { min-height: 230px; padding: 30px 22px; border-radius: var(--pff-radius); background: color-mix(in srgb, var(--pff-surface) 88%, transparent); border: 1px solid var(--pff-border); }
.pff-timeline__items article:nth-child(even) { transform: translateY(52px); }
.pff-timeline__items span { display: inline-grid; place-items: center; min-width: 46px; height: 46px; padding: 0 10px; border-radius: 999px; background: var(--pff-primary); color: #fff; font-weight: 820; font-size: .8rem; }
.pff-timeline__items h3 { margin: 18px 0 8px; color: var(--pff-primary); font-family: var(--pff-font-heading); font-size: 1.55rem; line-height: 1; }
.pff-timeline__items p { margin: 0; color: var(--pff-muted); font-size: .94rem; }
.pff-brand-scricciolo .pff-timeline__items article { border-radius: 36px 36px 18px 36px; background: #fff; }
.pff-brand-petit .pff-timeline__items article { border-radius: 2px; }

/* Info strip */
.pff-info-strip { background: var(--pff-cream); border-block: 1px solid var(--pff-border); }
.pff-info-strip__grid { display: grid; grid-template-columns: repeat(4,1fr); }
.pff-info-strip__grid > div { padding: 26px 30px; border-right: 1px solid var(--pff-border); }
.pff-info-strip__grid > div:last-child { border-right: 0; }
.pff-info-strip strong { display: block; color: var(--pff-primary); font-family: var(--pff-font-heading); font-size: 1.45rem; line-height: 1.05; }
.pff-info-strip span { display: block; margin-top: 6px; color: var(--pff-muted); font-size: .86rem; }

/* Opening hours / practical info */
.pff-hours-section { background: var(--pff-surface); }
.pff-hours { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(42px,8vw,110px); align-items: start; }
.pff-hours > div > p:last-child { color: var(--pff-muted); }
.pff-hours dl { margin: 0; border-top: 1px solid var(--pff-border); }
.pff-hours dl > div { display: grid; grid-template-columns: 1fr auto; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--pff-border); }
.pff-hours dt { font-weight: 720; color: var(--pff-primary); }
.pff-hours dd { margin: 0; color: var(--pff-muted); text-align: right; }
.pff-brand-petit .pff-hours dl > div { padding: 24px 0; }

/* Park bridge */
.pff-park-bridge { background: var(--pff-primary); color: #fff; }
.pff-park-bridge .pff-section-head h2 { color: #fff; }
.pff-park-bridge .pff-section-head > p:last-child { color: rgba(255,255,255,.72); }
.pff-park-bridge__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.pff-park-bridge__card { position: relative; min-height: 235px; padding: 28px; border: 1px solid rgba(255,255,255,.2); border-radius: var(--pff-radius); color: #fff; text-decoration: none; overflow: hidden; background: rgba(255,255,255,.055); transition: background .25s ease, transform .25s ease; }
.pff-park-bridge__card:hover { background: rgba(255,255,255,.1); transform: translateY(-3px); }
.pff-park-bridge__card.is-current { border-color: color-mix(in srgb, var(--pff-secondary) 70%, #fff); }
.pff-park-bridge__card span { font-size: .7rem; letter-spacing: .14em; font-weight: 800; opacity: .65; }
.pff-park-bridge__card h3 { max-width: 80%; margin: 20px 0 0; font-family: var(--pff-font-heading); font-size: clamp(1.7rem,3vw,2.65rem); line-height: 1; }
.pff-park-bridge__card strong { position: absolute; right: 24px; bottom: 22px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--pff-primary); font-size: 1.2rem; }

/* Brand-tailored standard Elementor demo sections. */
.pff-standard-section { width: min(calc(100% - 40px), var(--pff-container)) !important; margin-inline: auto !important; padding: clamp(80px,9vw,130px) 0 !important; text-align:center; align-items:center !important; }
.pff-standard-section .elementor-heading-title { color: var(--pff-primary); font-family: var(--pff-font-heading); font-size: clamp(2.4rem,5vw,4.7rem); line-height: .98; letter-spacing: -.04em; }
.pff-standard-section .elementor-widget-text-editor { max-width: 760px; margin-inline:auto; color: var(--pff-muted); text-align:center; }
.pff-standard-section .elementor-button { border-radius: 999px; background: var(--pff-accent); }
.pff-brand-petit .pff-standard-section .elementor-button { border-radius: 3px; }
.pff-cta-section { padding: clamp(78px,8vw,112px) 20px !important; background: var(--pff-secondary); text-align: center; }
.pff-cta-section .elementor-heading-title { color: var(--pff-primary); font-family: var(--pff-font-heading); font-size:clamp(2.3rem,5vw,4.5rem); line-height:.98; }
.pff-cta-section .elementor-widget-text-editor { max-width: 700px; margin-inline: auto; color: color-mix(in srgb,var(--pff-text) 76%, transparent); }
.pff-cta-section .elementor-button { border-radius:999px; background:var(--pff-primary); color:#fff; padding:16px 26px; }
.pff-brand-petit .pff-cta-section .elementor-button { border-radius:3px; }

/* Bidirectional reveal, with different cadence for each identity. */
[data-pff-reveal].pff-reveal-ready { --pff-rx: 0px; --pff-ry: 34px; --pff-rs: 1; opacity: 0; transform: translate3d(var(--pff-rx),var(--pff-ry),0) scale(var(--pff-rs)); transition: opacity .76s cubic-bezier(.2,.7,.2,1), transform .76s cubic-bezier(.2,.7,.2,1), clip-path .9s cubic-bezier(.2,.7,.2,1); will-change: transform,opacity; }
html[data-pff-direction="up"] [data-pff-reveal="fade-up"].pff-reveal-ready { --pff-ry: -34px; }
[data-pff-reveal="fade-down"].pff-reveal-ready { --pff-ry: -34px; }
html[data-pff-direction="up"] [data-pff-reveal="fade-down"].pff-reveal-ready { --pff-ry: 34px; }
[data-pff-reveal="slide-left"].pff-reveal-ready { --pff-rx: -46px; --pff-ry: 0px; }
html[data-pff-direction="up"] [data-pff-reveal="slide-left"].pff-reveal-ready { --pff-rx: 46px; }
[data-pff-reveal="slide-right"].pff-reveal-ready { --pff-rx: 46px; --pff-ry: 0px; }
html[data-pff-direction="up"] [data-pff-reveal="slide-right"].pff-reveal-ready { --pff-rx: -46px; }
[data-pff-reveal="scale"].pff-reveal-ready { --pff-ry:0px; --pff-rs:.965; }
[data-pff-reveal="soft-rise"].pff-reveal-ready { --pff-ry: 22px; }
html[data-pff-direction="up"] [data-pff-reveal="soft-rise"].pff-reveal-ready { --pff-ry: -22px; }
[data-pff-reveal="mask"].pff-reveal-ready { --pff-ry:0; clip-path: inset(0 0 100% 0); }
html[data-pff-direction="up"] [data-pff-reveal="mask"].pff-reveal-ready { clip-path: inset(100% 0 0 0); }
[data-pff-reveal].pff-reveal-ready.is-visible { opacity:1; --pff-rx:0px; --pff-ry:0px; --pff-rs:1; clip-path: inset(0 0 0 0); }
.pff-motion-editorial [data-pff-reveal].pff-reveal-ready { transition-duration: .92s; }
.pff-motion-soft [data-pff-reveal].pff-reveal-ready { transition-duration: .88s; transition-timing-function: cubic-bezier(.22,.68,.24,1); }
.pff-motion-energetic [data-pff-reveal].pff-reveal-ready { transition-duration: .68s; }

@media (max-width: 1024px) {
  .pff-feature-grid--4 { grid-template-columns: repeat(2,1fr); }
  .pff-feature-grid--3 { grid-template-columns: repeat(2,1fr); }
  .pff-info-strip__grid { grid-template-columns: repeat(2,1fr); }
  .pff-info-strip__grid > div:nth-child(2) { border-right:0; }
  .pff-info-strip__grid > div:nth-child(-n+2) { border-bottom:1px solid var(--pff-border); }
  .pff-hours { grid-template-columns: 1fr; gap: 30px; }
  .pff-park-bridge__grid { grid-template-columns: 1fr; }
  .pff-timeline__line { display:none; }
  .pff-timeline__items article:nth-child(even) { transform:none; }
}

@media (max-width: 680px) {
  .pff-hero { min-height:100svh; background-image:var(--pff-hero-mobile,var(--pff-hero-image,none)); }
  .pff-hero__video { display:none; }
  .pff-hero__slide { background-image:var(--pff-slide-mobile,var(--pff-slide-image,none)); transform:scale(1.015); }
  .pff-hero__slide.is-active { transform:scale(1); }
  .pff-hero__dots { right:18px; bottom:24px; gap:7px; }
  .pff-hero__dot { width:8px; height:8px; }
  .pff-hero__dot.is-active { width:23px; }
  .pff-hero__overlay { background: linear-gradient(0deg, rgba(18,42,34,.87) 0%, rgba(18,42,34,.28) 74%); }
  .pff-hero__content { padding-bottom: 108px; }
  .pff-hero h1 { font-size: clamp(3rem,16vw,5.45rem); }
  .pff-hero__actions { flex-direction:column; align-items:stretch; max-width:340px; }
  .pff-feature-grid--2,.pff-feature-grid--3,.pff-feature-grid--4 { grid-template-columns:1fr; }
  .pff-feature-card { min-height: 290px; }
  .pff-info-strip__grid > div { padding:20px 16px; }
  .pff-info-strip strong { font-size:1.2rem; }
  .pff-timeline__items { grid-template-columns:1fr; }
  .pff-hours dl > div { grid-template-columns:1fr; gap:4px; }
  .pff-hours dd { text-align:left; }
  [data-pff-reveal] { --pff-rx:0px !important; --pff-ry:20px !important; }
}

@media (prefers-reduced-motion: reduce) {
  [data-pff-reveal] { opacity:1 !important; transform:none !important; clip-path:none !important; }
  .pff-hero__scroll span::after { animation:none; }
  .pff-hero__media { transform:none !important; }
  .pff-hero__slides { transform:none !important; }
  .pff-hero__slide { transition:none !important; transform:none !important; }
}

/* Welcome page / Parco identity */
.pff-hero--park .pff-hero__overlay {
  background:
    linear-gradient(90deg, rgba(15,45,35,.88) 0%, rgba(15,45,35,.54) 44%, rgba(15,45,35,.16) 76%),
    linear-gradient(0deg, rgba(15,45,35,.58), transparent 54%);
}
.pff-hero--park .pff-hero__decoration {
  right: clamp(-170px,-8vw,-80px);
  bottom: clamp(-190px,-12vw,-100px);
  width: min(48vw,670px);
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 49% 51% 46% 54% / 58% 43% 57% 42%;
  box-shadow:
    0 0 0 48px rgba(255,255,255,.025),
    0 0 0 96px color-mix(in srgb,var(--pff-secondary) 7%,transparent);
  transform: rotate(-12deg);
}
.pff-hero--park .pff-hero__decoration::before,
.pff-hero--park .pff-hero__decoration::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.22);
}
.pff-hero--park .pff-hero__decoration::before { width: 22%; aspect-ratio:1; left: 16%; top: 7%; }
.pff-hero--park .pff-hero__decoration::after { width: 10%; aspect-ratio:1; left: 5%; top: 32%; background: color-mix(in srgb,var(--pff-accent) 62%,transparent); border:0; }
.pff-brand-park .pff-standard-section { position: relative; }
.pff-brand-park .pff-standard-section::before {
  content: "";
  position: absolute;
  width: 72px;
  height: 1px;
  top: clamp(58px,7vw,92px);
  left: 0;
  background: var(--pff-accent);
}

/* The central choice on the welcome page. */
.pff-activity-selector-section { background: var(--pff-cream); overflow: hidden; }
.pff-activity-selector__head { max-width: 860px; }
.pff-activity-selector {
  display: flex;
  gap: 16px;
  min-height: clamp(520px,62vw,690px);
}
.pff-activity-card {
  --pff-panel-primary: var(--pff-primary);
  --pff-panel-accent: var(--pff-accent);
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  border-radius: 28px;
  isolation: isolate;
  text-decoration: none;
  color: #fff;
  background-color: var(--pff-panel-primary);
  background-image:
    linear-gradient(0deg, color-mix(in srgb,var(--pff-panel-primary) 88%,transparent) 0%, color-mix(in srgb,var(--pff-panel-primary) 24%,transparent) 58%, rgba(0,0,0,.04) 100%),
    var(--pff-panel-image, radial-gradient(circle at 72% 18%, color-mix(in srgb,var(--pff-panel-accent) 54%,transparent), transparent 34%));
  background-position: center;
  background-size: cover;
  transition: flex .68s cubic-bezier(.2,.72,.2,1), transform .45s ease, filter .45s ease;
}
.pff-activity-selector:hover .pff-activity-card:not(:hover) { flex: .86 1 0; filter: saturate(.78) brightness(.88); }
.pff-activity-card:hover,
.pff-activity-card:focus-visible { flex: 1.48 1 0; transform: translateY(-4px); }
.pff-activity-card::before {
  content: "";
  position: absolute;
  inset: 18px;
  z-index: 1;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 20px;
  pointer-events: none;
  transition: inset .45s ease, border-color .45s ease;
}
.pff-activity-card:hover::before { inset: 14px; border-color: rgba(255,255,255,.42); }
.pff-activity-card__veil {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(0deg, rgba(8,20,16,.48), transparent 52%);
}
.pff-activity-card__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: clamp(30px,4vw,54px);
}
.pff-activity-card__kicker {
  display: inline-block;
  margin-bottom: 15px;
  font-size: .68rem;
  line-height: 1.2;
  font-weight: 820;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(255,255,255,.78);
}
.pff-activity-card h3 {
  margin: 0;
  max-width: 11ch;
  font-family: var(--pff-font-heading);
  font-size: clamp(2rem,3.6vw,4rem);
  line-height: .94;
  letter-spacing: -.045em;
  text-wrap: balance;
}
.pff-activity-card p {
  max-width: 440px;
  margin: 18px 0 0;
  color: rgba(255,255,255,.84);
  font-size: 1rem;
  line-height: 1.55;
}
.pff-activity-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 24px;
  font-size: .83rem;
  font-weight: 800;
  letter-spacing: .04em;
}
.pff-activity-card__cta strong {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  color: var(--pff-panel-primary);
  transition: transform .28s ease;
}
.pff-activity-card:hover .pff-activity-card__cta strong { transform: translateX(4px); }
.pff-activity-card--petit { border-radius: 5px; }
.pff-activity-card--petit::before { border-radius: 2px; }
.pff-activity-card--scricciolo { border-radius: 42px 42px 22px 42px; }
.pff-activity-card--scricciolo::before { border-radius: 30px 30px 14px 30px; }

.pff-park-bridge__welcome-link { color:#fff; font-weight:760; text-underline-offset:.18em; }
.pff-motion-ambient [data-pff-reveal].pff-reveal-ready { transition-duration: .9s; transition-timing-function: cubic-bezier(.22,.68,.24,1); }

@media (max-width: 900px) {
  .pff-activity-selector { display: grid; min-height: 0; }
  .pff-activity-card { min-height: 470px; }
  .pff-activity-selector:hover .pff-activity-card:not(:hover),
  .pff-activity-card:hover,
  .pff-activity-card:focus-visible { flex: 1 1 auto; transform: none; filter: none; }
  .pff-activity-card h3 { max-width: 13ch; font-size: clamp(2.5rem,8vw,4.2rem); }
}

@media (max-width: 600px) {
  .pff-activity-card { min-height: 410px; border-radius: 22px; }
  .pff-activity-card::before { inset: 12px; border-radius: 15px; }
  .pff-activity-card__content { padding: 32px 28px; }
  .pff-activity-card--petit { border-radius: 4px; }
  .pff-activity-card--scricciolo { border-radius: 32px 32px 16px 32px; }
}

/* =========================================================
   v4 — PARCO DELLE FARFALLE / CINEMATIC WELCOME EXPERIENCE
   This layer is intentionally unlike the three activity homes.
   ========================================================= */
.pff-scenic-park-home {
  --pff-scene-black: #102a21;
  --pff-scene-ink: #162f27;
  --pff-scene-paper: #f1ecdf;
  --pff-scene-line: rgba(255,255,255,.24);
  background: var(--pff-scene-black);
}
.pff-scenic-park-home .pff-site-main { background: var(--pff-scene-black); }
.pff-scenic-park-home .pff-header {
  min-height: 72px;
  border-bottom-color: rgba(255,255,255,.18);
}
.pff-scenic-park-home .pff-header__inner { min-height: 72px; }
.pff-scenic-park-home .pff-header.is-transparent .pff-header__cta {
  border: 1px solid rgba(255,255,255,.58);
  background: rgba(255,255,255,.08);
  box-shadow: none;
  backdrop-filter: blur(8px);
}
.pff-scenic-park-home .pff-header.is-transparent .pff-nav a { font-size: .82rem; letter-spacing: .04em; text-transform: uppercase; }
.pff-scenic-park-home .pff-header.is-transparent.is-scrolled .pff-header__cta {
  border-color: transparent;
  background: var(--pff-accent);
}
.pff-park-scene { padding: 0 !important; margin: 0 !important; width: 100% !important; max-width: none !important; }
.pff-park-scene > .e-con-inner { padding: 0 !important; max-width: none !important; }

/* Scene 01 — cinematic hero */
.pff-cinema-hero {
  --pff-cinema-position: center;
  min-height: 100svh;
  position: relative;
  display: grid;
  align-items: end;
  isolation: isolate;
  overflow: hidden;
  background: #17382d var(--pff-cinema-image, radial-gradient(circle at 70% 28%, #5d7b62, #17382d 58%, #102a21)) var(--pff-cinema-position)/cover no-repeat;
  color: #fff;
}
.pff-cinema-hero__media {
  position: absolute;
  inset: -5%;
  z-index: -5;
  transform: translate3d(0,var(--pff-cinema-y,0px),0) scale(1.06);
  will-change: transform;
}
.pff-cinema-hero__video { width: 100%; height: 100%; display: block; object-fit: cover; object-position: var(--pff-cinema-position); }
.pff-cinema-hero__shade {
  position: absolute;
  inset: 0;
  z-index: -4;
  background:
    linear-gradient(90deg, rgba(9,29,22,calc(var(--pff-cinema-overlay,.44) + .23)) 0%, rgba(9,29,22,var(--pff-cinema-overlay,.44)) 43%, rgba(9,29,22,.12) 78%),
    linear-gradient(0deg, rgba(7,24,18,.78) 0%, rgba(7,24,18,.08) 55%);
}
.pff-cinema-hero__grain {
  position: absolute;
  inset: 0;
  z-index: -3;
  pointer-events: none;
  opacity: .12;
  background-image:
    repeating-linear-gradient(0deg, rgba(255,255,255,.13) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(90deg, rgba(0,0,0,.08) 0 1px, transparent 1px 4px);
  mix-blend-mode: soft-light;
}
.pff-cinema-hero__inner {
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  position: relative;
  padding-top: 150px;
  padding-bottom: clamp(120px,14vh,170px);
}
.pff-cinema-hero__copy { width: min(100%,1100px); }
.pff-cinema-hero__eyebrow,
.pff-park-outro__eyebrow,
.pff-scenic-gateway__eyebrow {
  margin: 0 0 24px;
  font-size: .7rem;
  line-height: 1.2;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-weight: 800;
}
.pff-cinema-hero__eyebrow { color: rgba(255,255,255,.72); }
.pff-cinema-hero h1 {
  max-width: 11ch;
  margin: 0;
  font-family: var(--pff-font-heading);
  font-size: clamp(4.2rem,10.4vw,10.6rem);
  font-weight: 500;
  line-height: .82;
  letter-spacing: -.067em;
  text-wrap: balance;
}
.pff-cinema-hero__lead {
  max-width: 650px;
  margin: 30px 0 0;
  color: rgba(255,255,255,.8);
  font-size: clamp(1.03rem,1.6vw,1.3rem);
}
.pff-cinema-hero__side-note {
  position: absolute;
  right: 0;
  top: 50%;
  margin: 0;
  transform: translateY(-50%) rotate(90deg) translateX(50%);
  transform-origin: 100% 50%;
  font-size: .64rem;
  letter-spacing: .22em;
  font-weight: 800;
  color: rgba(255,255,255,.55);
}
.pff-cinema-hero__scroll {
  position: absolute;
  left: max(20px,calc((100vw - var(--pff-container))/2));
  bottom: 34px;
  display: flex;
  align-items: center;
  gap: 16px;
  color: #fff;
  text-decoration: none;
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .18em;
}
.pff-cinema-hero__scroll-line { width: 70px; height: 1px; background: rgba(255,255,255,.4); position: relative; overflow: hidden; }
.pff-cinema-hero__scroll-line::after { content:""; position:absolute; inset:0 auto 0 -45%; width:45%; background:#fff; animation:pff-cinema-line 2.1s ease-in-out infinite; }
@keyframes pff-cinema-line { 0%{transform:translateX(0);opacity:0} 25%{opacity:1} 100%{transform:translateX(320%);opacity:0} }
.pff-cinema-hero__orbit { position:absolute; z-index:-2; border:1px solid rgba(255,255,255,.15); border-radius:50%; pointer-events:none; }
.pff-cinema-hero__orbit--one { width:min(64vw,900px); aspect-ratio:1; right:-22vw; bottom:-31vw; box-shadow:0 0 0 54px rgba(255,255,255,.018),0 0 0 108px rgba(217,134,69,.035); }
.pff-cinema-hero__orbit--two { width:150px; aspect-ratio:1; right:14vw; top:18vh; border-color:rgba(255,255,255,.24); }

/* Scene 02 — manifesto */
.pff-park-manifesto {
  min-height: 100svh;
  position: relative;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--pff-scene-paper);
  color: var(--pff-text);
}
.pff-park-manifesto__grid {
  min-height: 100svh;
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  align-items: center;
  gap: clamp(54px,8vw,124px);
  padding-block: clamp(100px,10vw,150px);
}
.pff-park-manifesto__copy { position:relative; z-index:2; }
.pff-park-manifesto__copy h2 {
  margin: 14px 0 30px;
  max-width: 9.5ch;
  color: var(--pff-primary);
  font-family: var(--pff-font-heading);
  font-weight:500;
  font-size: clamp(3.5rem,7.7vw,8.1rem);
  line-height: .88;
  letter-spacing: -.058em;
}
.pff-park-manifesto__text { max-width: 660px; color: color-mix(in srgb,var(--pff-text) 74%,transparent); font-size:1.04rem; }
.pff-park-manifesto__text p { margin:0 0 16px; }
.pff-park-manifesto__visual { margin:0; position:relative; }
.pff-park-manifesto__image {
  min-height: min(66vw,720px);
  background:
    linear-gradient(155deg, rgba(34,75,58,.08), rgba(34,75,58,.32)),
    var(--pff-manifesto-image, linear-gradient(145deg,#9ab486,#315646));
  background-size:cover;
  background-position:center;
  border-radius: 48% 48% 6px 6px / 16% 16% 6px 6px;
  box-shadow: 0 28px 80px rgba(34,58,47,.12);
  transform: translate3d(0,var(--pff-manifesto-shift,0px),0) scale(1.01);
  will-change: transform;
}
.pff-park-manifesto__visual::after { content:""; position:absolute; inset:18px; border:1px solid rgba(255,255,255,.55); border-radius:inherit; pointer-events:none; }
.pff-park-manifesto figcaption { margin-top:14px; font-size:.64rem; font-weight:800; letter-spacing:.16em; color:var(--pff-muted); }
.pff-park-manifesto__rail { position:absolute; top:0; left:0; bottom:0; width:52px; border-right:1px solid rgba(31,74,59,.12); display:flex; justify-content:center; padding-top:110px; color:var(--pff-accent); font-size:.68rem; letter-spacing:.14em; }
.pff-park-manifesto__rail span { writing-mode:vertical-rl; }
.pff-park-manifesto__marquee { position:absolute; left:0; right:0; bottom:20px; overflow:hidden; white-space:nowrap; color:rgba(31,74,59,.11); font-family: var(--pff-font-heading); font-size:clamp(2.5rem,5vw,6rem); line-height:1; letter-spacing:.02em; }
.pff-park-manifesto__marquee span { display:inline-block; min-width:max-content; animation:pff-marquee 34s linear infinite; }
@keyframes pff-marquee { to { transform:translateX(-50%); } }

/* Scene 03 — immersive gateway */
.pff-scenic-gateway { position:relative; background:#0d261e; color:#fff; overflow:hidden; padding-top:clamp(92px,10vw,150px); }
.pff-scenic-gateway__head {
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  gap:50px;
  padding-bottom:50px;
}
.pff-scenic-gateway__head h2 {
  margin:0;
  max-width:8ch;
  font-family: var(--pff-font-heading);
  font-weight:500;
  font-size:clamp(3.7rem,7vw,7.8rem);
  line-height:.86;
  letter-spacing:-.058em;
}
.pff-scenic-gateway__eyebrow { color:color-mix(in srgb,var(--pff-gateway-text,#fff) 55%,transparent); }
.pff-scenic-gateway__hint { margin:0 0 9px; display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.58); font-size:.72rem; max-width:240px; }
.pff-scenic-gateway__hint span { font-size:1.15rem; }
.pff-scenic-gateway__panels {
  min-height: max(680px,78svh);
  display:flex;
  width:100%;
  border-top:1px solid rgba(255,255,255,.15);
}
.pff-scenic-panel {
  --pff-gateway-primary:#234638;
  --pff-gateway-accent:#d66e45;
  position:relative;
  flex:1 1 0;
  min-width:0;
  min-height:max(680px,78svh);
  overflow:hidden;
  isolation:isolate;
  display:flex;
  align-items:flex-end;
  color:var(--pff-gateway-text,#fff);
  text-decoration:none;
  background:radial-gradient(circle at 70% 25%,color-mix(in srgb,var(--pff-gateway-accent) 54%,#fff),var(--pff-gateway-primary) 62%);
  border-right:1px solid rgba(255,255,255,.18);
  transition:flex .82s cubic-bezier(.2,.76,.15,1),filter .6s ease;
}
.pff-scenic-panel:last-child { border-right:0; }
.pff-scenic-gateway__panels:has(.pff-scenic-panel:hover) .pff-scenic-panel:not(:hover),
.pff-scenic-gateway__panels:has(.pff-scenic-panel:focus-visible) .pff-scenic-panel:not(:focus-visible) { flex:.62 1 0; filter:saturate(.72) brightness(.7); }
.pff-scenic-panel:hover,
.pff-scenic-panel:focus-visible,
.pff-scenic-panel.is-active { flex:1.76 1 0; }
.pff-scenic-panel__media { position:absolute; inset:-3%; z-index:-5; transform:translate3d(calc(var(--pff-panel-x,0)*1px),calc(var(--pff-panel-y,0)*1px),0) scale(1.055); transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.pff-scenic-panel__media picture,.pff-scenic-panel__media img,.pff-scenic-panel__media video { position:absolute; inset:0; width:100%; height:100%; display:block; }
.pff-scenic-panel__media img,.pff-scenic-panel__media video { object-fit:cover; object-position:var(--pff-gateway-position,center center); }
.pff-scenic-panel__shade { position:absolute; inset:0; z-index:-3; background:linear-gradient(0deg,var(--pff-gateway-overlay-strong,rgba(4,18,13,.88)) 0%,var(--pff-gateway-overlay-light,rgba(4,18,13,.18)) 68%,rgba(4,18,13,.04) 100%); transition:filter .6s ease; }
.pff-scenic-panel:hover .pff-scenic-panel__shade,
.pff-scenic-panel.is-active .pff-scenic-panel__shade { filter:brightness(.92); }
.pff-scenic-panel__number { position:absolute; top:28px; left:28px; font-family: var(--pff-font-heading); font-size:1.1rem; color:rgba(255,255,255,.55); }
.pff-scenic-panel__content { width:min(100%,620px); padding:clamp(34px,4.4vw,72px); }
.pff-scenic-panel__kicker { display:block; margin-bottom:18px; font-size:.65rem; line-height:1.2; font-weight:800; letter-spacing:.16em; color:color-mix(in srgb,var(--pff-gateway-text,#fff) 68%,transparent); }
.pff-scenic-panel h3 { margin:0; max-width:9ch; font-family: var(--pff-font-heading); font-size:clamp(2.5rem,4.7vw,5.9rem); line-height:.87; letter-spacing:-.055em; font-weight:500; }
.pff-scenic-panel p { max-width:490px; margin:22px 0 0; color:color-mix(in srgb,var(--pff-gateway-text,#fff) 78%,transparent); opacity:.15; transform:translateY(15px); transition:opacity .45s ease .08s,transform .45s ease .08s; }
.pff-scenic-panel__cta { display:inline-flex; align-items:center; gap:12px; margin-top:28px; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; opacity:.2; transform:translateY(15px); transition:opacity .45s ease .13s,transform .45s ease .13s; }
.pff-scenic-panel__cta span { display:grid; place-items:center; width:42px; height:42px; border:1px solid color-mix(in srgb,var(--pff-gateway-text,#fff) 50%,transparent); border-radius:50%; font-size:1rem; }
.pff-scenic-panel:hover p,.pff-scenic-panel:focus-visible p,.pff-scenic-panel.is-active p,
.pff-scenic-panel:hover .pff-scenic-panel__cta,.pff-scenic-panel:focus-visible .pff-scenic-panel__cta,.pff-scenic-panel.is-active .pff-scenic-panel__cta { opacity:1; transform:translateY(0); }
.pff-scenic-panel__line { position:absolute; left:0; right:0; bottom:0; height:4px; background:var(--pff-gateway-accent); transform:scaleX(0); transform-origin:left; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.pff-scenic-panel:hover .pff-scenic-panel__line,.pff-scenic-panel:focus-visible .pff-scenic-panel__line,.pff-scenic-panel.is-active .pff-scenic-panel__line { transform:scaleX(1); }

/* Scene 04 — intentionally minimal editorial pause */
.pff-park-interlude {
  width:100% !important;
  max-width:none !important;
  min-height:78svh;
  display:grid !important;
  grid-template-columns:minmax(20px,1fr) minmax(0,760px) minmax(0,460px) minmax(20px,1fr);
  align-items:center;
  gap:clamp(32px,6vw,90px);
  padding:clamp(110px,12vw,180px) 0 !important;
  background:var(--pff-scene-paper);
}
.pff-park-interlude > .elementor-element:nth-child(1) { grid-column:2; }
.pff-park-interlude > .elementor-element:nth-child(2) { grid-column:3; }
.pff-park-interlude .elementor-heading-title { margin:0; color:var(--pff-primary); font-family: var(--pff-font-heading); font-size:clamp(3.3rem,6.6vw,7rem); line-height:.88; letter-spacing:-.055em; font-weight:500; }
.pff-park-interlude .elementor-widget-text-editor { color:var(--pff-muted); font-size:1.06rem; }

/* Scene 05 — cinematic outro */
.pff-park-outro {
  min-height:100svh;
  position:relative;
  display:grid;
  align-items:center;
  overflow:hidden;
  isolation:isolate;
  color:#fff;
  background:
    linear-gradient(150deg,rgba(18,52,40,.4),rgba(18,52,40,.8)),
    var(--pff-outro-image, radial-gradient(circle at 72% 32%,#6f8b69,#1d4738 58%,#102a21));
  background-size:cover;
  background-position:center;
}
.pff-park-outro__shade { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(9,31,23,.84),rgba(9,31,23,.18) 68%),linear-gradient(0deg,rgba(9,31,23,.65),transparent 48%); }
.pff-park-outro__inner { position:relative; z-index:2; padding-block:130px; }
.pff-park-outro__eyebrow { color:rgba(255,255,255,.62); }
.pff-park-outro h2 { margin:0; max-width:8ch; font-family: var(--pff-font-heading); font-size:clamp(4.2rem,9.2vw,10rem); font-weight:500; line-height:.82; letter-spacing:-.065em; }
.pff-park-outro__text { max-width:560px; margin:30px 0 0; color:rgba(255,255,255,.78); font-size:1.08rem; }
.pff-park-outro__address { margin:42px 0 0; max-width:540px; padding-top:20px; border-top:1px solid rgba(255,255,255,.28); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.68); }
.pff-park-outro__button { display:inline-flex; align-items:center; gap:18px; margin-top:36px; color:#fff; text-decoration:none; font-size:.75rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.pff-park-outro__button span { display:grid; place-items:center; width:48px; height:48px; border-radius:50%; border:1px solid rgba(255,255,255,.55); transition:transform .3s ease,background .3s ease,color .3s ease; }
.pff-park-outro__button:hover span { transform:translateY(-4px); background:#fff; color:var(--pff-primary); }
.pff-park-outro__word { position:absolute; right:-.035em; bottom:-.17em; z-index:-1; font-family: var(--pff-font-heading); font-size:clamp(7rem,20vw,25rem); line-height:.75; letter-spacing:-.08em; color:rgba(255,255,255,.055); white-space:nowrap; }

/* Park footer becomes a quiet epilogue, not another content-heavy section. */
.pff-scenic-park-home .pff-footer { padding-top:46px; background:#0d261e; }
.pff-scenic-park-home .pff-footer__grid { grid-template-columns:1.35fr .65fr .85fr; gap:42px; }
.pff-scenic-park-home .pff-footer::after { display:none; }

@media (max-width: 1024px) {
  .pff-cinema-hero h1 { font-size:clamp(4rem,11vw,7.6rem); }
  .pff-park-manifesto__grid { grid-template-columns:1fr; min-height:auto; padding-block:120px; }
  .pff-park-manifesto__copy h2 { max-width:10ch; }
  .pff-park-manifesto__visual { width:min(78vw,720px); justify-self:end; }
  .pff-park-manifesto__image { min-height:min(92vw,680px); }
  .pff-park-manifesto__rail { display:none; }
  .pff-scenic-gateway__head { grid-template-columns:1fr; gap:24px; }
  .pff-scenic-gateway__hint { max-width:none; }
  .pff-scenic-gateway__panels { min-height:0; display:grid; }
  .pff-scenic-panel,.pff-scenic-panel:hover,.pff-scenic-panel:focus-visible,.pff-scenic-panel.is-active { min-height:66svh; flex:1 1 auto; filter:none; border-right:0; border-bottom:1px solid rgba(255,255,255,.18); }
  .pff-scenic-gateway__panels:has(.pff-scenic-panel:hover) .pff-scenic-panel:not(:hover),.pff-scenic-gateway__panels:has(.pff-scenic-panel:focus-visible) .pff-scenic-panel:not(:focus-visible) { filter:none; }
  .pff-scenic-panel p,.pff-scenic-panel__cta { opacity:1; transform:none; }
  .pff-park-interlude { grid-template-columns:minmax(24px,1fr) minmax(0,900px) minmax(24px,1fr); gap:24px; }
  .pff-park-interlude > .elementor-element:nth-child(1),.pff-park-interlude > .elementor-element:nth-child(2) { grid-column:2; }
  .pff-park-interlude > .elementor-element:nth-child(2) { max-width:640px; }
}

@media (max-width: 680px) {
  .pff-scenic-park-home .pff-header__inner { min-height:68px; }
  .pff-scenic-park-home .pff-header__cta { display:none; }
  .pff-cinema-hero { background-image:var(--pff-cinema-mobile,var(--pff-cinema-image,none)); background-position:center; }
  .pff-cinema-hero__video { display:none; }
  .pff-cinema-hero__inner { padding-top:130px; padding-bottom:118px; }
  .pff-cinema-hero h1 { font-size:clamp(3.8rem,18vw,6.2rem); max-width:8.5ch; }
  .pff-cinema-hero__lead { max-width:92%; margin-top:24px; }
  .pff-cinema-hero__side-note { display:none; }
  .pff-cinema-hero__scroll { left:20px; bottom:28px; }
  .pff-cinema-hero__orbit--one { width:92vw; right:-46vw; bottom:-25vw; }
  .pff-cinema-hero__orbit--two { width:95px; right:8vw; top:16vh; }
  .pff-park-manifesto__grid { padding-block:94px 120px; gap:46px; }
  .pff-park-manifesto__copy h2 { font-size:clamp(3.3rem,15vw,5.5rem); }
  .pff-park-manifesto__visual { width:100%; }
  .pff-park-manifesto__image { min-height:115vw; border-radius:46% 46% 5px 5px / 12% 12% 5px 5px; }
  .pff-park-manifesto__marquee { font-size:3.2rem; bottom:18px; }
  .pff-scenic-gateway { padding-top:90px; }
  .pff-scenic-gateway__head { padding-bottom:36px; }
  .pff-scenic-gateway__head h2 { font-size:clamp(3.4rem,15vw,5.7rem); }
  .pff-scenic-gateway__hint { display:none; }
  .pff-scenic-panel,.pff-scenic-panel:hover,.pff-scenic-panel:focus-visible,.pff-scenic-panel.is-active { min-height:76svh; }
  .pff-scenic-panel__content { padding:32px 24px 40px; }
  .pff-scenic-panel h3 { font-size:clamp(3rem,14vw,5rem); }
  .pff-scenic-panel__number { top:20px; left:20px; }
  .pff-park-interlude { min-height:auto; padding:94px 0 !important; grid-template-columns:20px minmax(0,1fr) 20px; }
  .pff-park-interlude .elementor-heading-title { font-size:clamp(3.1rem,14vw,5.4rem); }
  .pff-park-outro__inner { padding-block:120px; }
  .pff-park-outro h2 { font-size:clamp(4rem,18vw,6.5rem); }
  .pff-park-outro__word { font-size:9rem; bottom:-.1em; }
  .pff-scenic-park-home .pff-footer__grid { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .pff-cinema-hero__media,.pff-park-manifesto__image,.pff-scenic-panel__media { transform:none !important; }
  .pff-cinema-hero__scroll-line::after,.pff-park-manifesto__marquee span { animation:none !important; }
  .pff-scenic-panel { transition:none !important; }
}


/* =========================================================
   v4.2 — stronger brand differentiation + consistent type
   ========================================================= */
/* Every activity uses one typography pair and one palette across every section. */
.pff-brand-pegaso,
.pff-brand-petit,
.pff-brand-scricciolo { font-family: var(--pff-font-body); }
.pff-brand-pegaso .elementor-heading-title,
.pff-brand-pegaso .elementor-widget-heading h1,
.pff-brand-pegaso .elementor-widget-heading h2,
.pff-brand-pegaso .elementor-widget-heading h3,
.pff-brand-petit .elementor-heading-title,
.pff-brand-petit .elementor-widget-heading h1,
.pff-brand-petit .elementor-widget-heading h2,
.pff-brand-petit .elementor-widget-heading h3,
.pff-brand-scricciolo .elementor-heading-title,
.pff-brand-scricciolo .elementor-widget-heading h1,
.pff-brand-scricciolo .elementor-widget-heading h2,
.pff-brand-scricciolo .elementor-widget-heading h3 { font-family:var(--pff-font-heading) !important; }

/* Section titles are intentionally centered on all three activity one-pages. */
.pff-brand-pegaso .pff-section-head,
.pff-brand-petit .pff-section-head,
.pff-brand-scricciolo .pff-section-head,
.pff-brand-pegaso .pegaso-section-head,
.pff-brand-petit .pegaso-section-head,
.pff-brand-scricciolo .pegaso-section-head { margin-inline:auto; text-align:center; }
.pff-brand-pegaso .pff-section-head > p:last-child,
.pff-brand-petit .pff-section-head > p:last-child,
.pff-brand-scricciolo .pff-section-head > p:last-child,
.pff-brand-pegaso .pegaso-section-head > p:last-child { margin-inline:auto; }

/* PEGASO — sportivo, netto, dinamico. */
.pff-brand-pegaso .pff-feature-section,
.pff-brand-pegaso .pegaso-experiences,
.pff-brand-pegaso .pegaso-ponies,
.pff-brand-pegaso .pegaso-sport { background:var(--pff-surface); }
.pff-brand-pegaso .pff-timeline-section { background:var(--pff-cream); }
.pff-brand-pegaso .pff-timeline__items article {
  border-radius:18px;
  border:0;
  border-top:4px solid var(--pff-accent);
  background:var(--pff-surface);
  box-shadow:0 14px 34px color-mix(in srgb,var(--pff-primary) 9%,transparent);
  text-align:center;
}
.pff-brand-pegaso .pff-timeline__items span { background:var(--pff-accent); }
.pff-brand-pegaso .pff-timeline__line path { stroke:color-mix(in srgb,var(--pff-accent) 55%,transparent); stroke-width:3; }
.pff-brand-pegaso .pegaso-experiences__grid { gap:14px; }
.pff-brand-pegaso .pegaso-experience-card { border-radius:18px; }
.pff-brand-pegaso .pegaso-pony-card { border-radius:18px; }

/* PETIT PARIS — bar/ristorazione: editorial, dark, squared, menu-led. */
.pff-brand-petit { --pff-radius:2px; }
.pff-brand-petit .pff-hero { align-items:center; }
.pff-brand-petit .pff-hero__content { padding-top:calc(var(--pff-header-h) + 110px); padding-bottom:100px; text-align:center; }
.pff-brand-petit .pff-hero__content > * { margin-inline:auto; }
.pff-brand-petit .pff-hero h1 { max-width:980px; font-size:clamp(3.4rem,7.2vw,7.4rem); }
.pff-brand-petit .pff-hero__actions { justify-content:center; }
.pff-brand-petit .pff-feature-section { background:var(--pff-cream); }
.pff-brand-petit .pff-feature-card { border:0; border-top:1px solid var(--pff-primary); background:transparent; min-height:300px; }
.pff-brand-petit .pff-feature-card:hover { transform:none; box-shadow:none; border-color:var(--pff-accent); }
.pff-brand-petit .pff-feature-card__body { text-align:center; }
.pff-brand-petit .pff-hours-section { background:var(--pff-surface); }
.pff-brand-petit .pff-hours { max-width:1060px; margin-inline:auto; }
.pff-brand-petit .pff-hours > div:first-child { text-align:center; }
.pff-brand-petit .pff-hours h2 { font-size:clamp(2.7rem,5vw,5.1rem); }
.pff-brand-petit .pff-park-bridge__card { border-radius:2px; }
.pff-brand-petit .pff-standard-section { max-width:920px !important; }
.pff-brand-petit .pff-cta-section { background:var(--pff-primary); color:var(--pff-cream); }
.pff-brand-petit .pff-cta-section .elementor-heading-title,
.pff-brand-petit .pff-cta-section .elementor-widget-text-editor { color:var(--pff-cream); }
.pff-brand-petit .pff-cta-section .elementor-button { background:var(--pff-accent); }

.pff-food-menu { background:var(--pff-primary); color:var(--pff-cream); overflow:hidden; }
.pff-food-menu .pff-section-head h2 { color:var(--pff-cream); }
.pff-food-menu .pff-section-head > p:last-child { color:color-mix(in srgb,var(--pff-cream) 76%,transparent); }
.pff-food-menu .pff-eyebrow--dark { color:var(--pff-secondary); }
.pff-food-menu__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border-top:1px solid color-mix(in srgb,var(--pff-cream) 25%,transparent); border-bottom:1px solid color-mix(in srgb,var(--pff-cream) 25%,transparent); }
.pff-food-menu__group { padding:42px 34px 46px; border-right:1px solid color-mix(in srgb,var(--pff-cream) 25%,transparent); }
.pff-food-menu__group:last-child { border-right:0; }
.pff-food-menu__group small { display:block; margin-bottom:18px; color:var(--pff-secondary); font-size:.7rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.pff-food-menu__group h3 { margin:0 0 24px; color:var(--pff-cream); font-family:var(--pff-font-heading); font-size:clamp(2rem,3vw,3.1rem); line-height:.95; }
.pff-food-menu__group ul { list-style:none; padding:0; margin:0; }
.pff-food-menu__group li { padding:12px 0; border-top:1px solid color-mix(in srgb,var(--pff-cream) 18%,transparent); color:color-mix(in srgb,var(--pff-cream) 86%,transparent); }
.pff-food-menu__group li:last-child { border-bottom:1px solid color-mix(in srgb,var(--pff-cream) 18%,transparent); }
.pff-food-menu__action { display:flex; justify-content:center; margin-top:34px; }
.pff-food-menu__action .pff-btn { border-radius:2px; background:var(--pff-accent); }

/* IL PETTIROSSO — softer and slightly more playful, always within its palette. */
.pff-brand-scricciolo { --pff-radius:38px; }
.pff-brand-scricciolo .pff-hero { align-items:center; }
.pff-brand-scricciolo .pff-hero__content { padding-top:calc(var(--pff-header-h) + 100px); padding-bottom:92px; max-width:980px; }
.pff-brand-scricciolo .pff-hero h1 { font-size:clamp(3.2rem,7vw,7rem); line-height:.94; }
.pff-brand-scricciolo .pff-hero__decoration::before,
.pff-brand-scricciolo .pff-hero__decoration::after { content:""; position:absolute; border-radius:50%; background:color-mix(in srgb,var(--pff-secondary) 34%,transparent); }
.pff-brand-scricciolo .pff-hero__decoration::before { width:120px; height:120px; left:-150px; top:10%; }
.pff-brand-scricciolo .pff-hero__decoration::after { width:64px; height:64px; left:-65px; bottom:8%; background:color-mix(in srgb,var(--pff-accent) 38%,transparent); }
.pff-brand-scricciolo .pff-info-strip { border:0; background:var(--pff-surface); padding:28px 0; }
.pff-brand-scricciolo .pff-info-strip__grid { gap:14px; }
.pff-brand-scricciolo .pff-info-strip__grid > div { border:0 !important; border-radius:999px; background:var(--pff-cream); text-align:center; padding:20px 22px; }
.pff-brand-scricciolo .pff-info-strip__grid > div:nth-child(2n) { background:color-mix(in srgb,var(--pff-secondary) 23%,var(--pff-surface)); }
.pff-brand-scricciolo .pff-feature-section { background:var(--pff-surface); }
.pff-brand-scricciolo .pff-feature-card { min-height:310px; text-align:center; border:0; }
.pff-brand-scricciolo .pff-feature-card:nth-child(1) { background:var(--pff-cream); border-radius:48px 22px 48px 22px; }
.pff-brand-scricciolo .pff-feature-card:nth-child(2) { background:color-mix(in srgb,var(--pff-secondary) 24%,var(--pff-surface)); border-radius:22px 48px 22px 48px; }
.pff-brand-scricciolo .pff-feature-card:nth-child(3) { background:color-mix(in srgb,var(--pff-accent) 18%,var(--pff-surface)); border-radius:48px 48px 22px 48px; }
.pff-brand-scricciolo .pff-feature-card:hover { transform:translateY(-4px) rotate(-.3deg); box-shadow:none; }
.pff-brand-scricciolo .pff-timeline-section { background:color-mix(in srgb,var(--pff-cream) 84%,var(--pff-secondary)); }
.pff-brand-scricciolo .pff-timeline__items article { text-align:center; border:0; box-shadow:none; }
.pff-brand-scricciolo .pff-timeline__items article:nth-child(odd) { rotate:-.5deg; }
.pff-brand-scricciolo .pff-timeline__items article:nth-child(even) { rotate:.5deg; }
.pff-brand-scricciolo .pff-timeline__items span { background:var(--pff-accent); }
.pff-brand-scricciolo .pff-standard-section { position:relative; }
.pff-brand-scricciolo .pff-standard-section::after { content:"✦"; position:absolute; right:2vw; top:18%; color:var(--pff-secondary); font-size:2.3rem; opacity:.75; }
.pff-brand-scricciolo .pff-cta-section { border-radius:50px 50px 0 0; background:var(--pff-secondary); }

@media (max-width:900px){
  .pff-food-menu__grid{grid-template-columns:1fr;}
  .pff-food-menu__group{border-right:0;border-bottom:1px solid color-mix(in srgb,var(--pff-cream) 25%,transparent);}
  .pff-food-menu__group:last-child{border-bottom:0;}
}


/* =========================================================
   v4.4 — ELEMENTOR EDITOR VISIBILITY
   Elementor re-renders custom widgets asynchronously. Public scroll-reveal
   styles start at opacity:0, so without an editor override freshly-rendered
   copy can look missing. In editor mode we always expose the editorial copy
   and use a shorter preview canvas; the public front end keeps all effects.
   ========================================================= */
html.pff-elementor-preview [data-pff-reveal],
html.pff-elementor-preview [data-pegaso-reveal],
body.elementor-editor-active [data-pff-reveal],
body.elementor-editor-active [data-pegaso-reveal],
body.pff-elementor-editor-runtime [data-pff-reveal],
body.pff-elementor-editor-runtime [data-pegaso-reveal],
.elementor-editor-active [data-pff-reveal],
.elementor-editor-active [data-pegaso-reveal],
.pff-elementor-editing [data-pff-reveal],
.pff-elementor-editing [data-pegaso-reveal] {
  opacity: 1 !important;
  transform: none !important;
  clip-path: none !important;
  visibility: visible !important;
}
html.pff-elementor-preview [data-pff-reveal],
html.pff-elementor-preview [data-pegaso-reveal] {
  will-change: auto !important;
}

.pff-cinema-hero.pff-elementor-editing {
  min-height: 680px;
}
.pff-cinema-hero.pff-elementor-editing .pff-cinema-hero__inner {
  min-height: 680px;
  padding-top: 110px;
  padding-bottom: 90px;
}
.pff-cinema-hero.pff-elementor-editing .pff-cinema-hero__media {
  transform: none !important;
}
.pff-cinema-hero.pff-elementor-editing .pff-cinema-hero__scroll-line::after {
  animation: none;
}

.pff-scenic-gateway.pff-elementor-editing .pff-scenic-gateway__panels {
  min-height: 560px !important;
}
.pff-scenic-gateway.pff-elementor-editing .pff-scenic-panel,
.pff-scenic-gateway.pff-elementor-editing .pff-scenic-panel:hover,
.pff-scenic-gateway.pff-elementor-editing .pff-scenic-panel:focus-visible,
.pff-scenic-gateway.pff-elementor-editing .pff-scenic-panel.is-active {
  flex: 1 1 0 !important;
  min-height: 560px !important;
  filter: none !important;
}
.pff-scenic-gateway.pff-elementor-editing .pff-scenic-gateway__panels:has(.pff-scenic-panel:hover) .pff-scenic-panel:not(:hover),
.pff-scenic-gateway.pff-elementor-editing .pff-scenic-gateway__panels:has(.pff-scenic-panel:focus-visible) .pff-scenic-panel:not(:focus-visible) {
  flex: 1 1 0 !important;
  filter: none !important;
}
.pff-scenic-gateway.pff-elementor-editing .pff-scenic-panel p,
.pff-scenic-gateway.pff-elementor-editing .pff-scenic-panel__cta {
  opacity: 1 !important;
  transform: none !important;
}
.pff-scenic-gateway.pff-elementor-editing .pff-scenic-panel__content {
  padding: 40px 30px;
}
.pff-scenic-gateway.pff-elementor-editing .pff-scenic-panel h3 {
  font-size: clamp(2rem, 3.5vw, 4rem);
}

@media (max-width: 1024px) {
  .pff-cinema-hero.pff-elementor-editing,
  .pff-cinema-hero.pff-elementor-editing .pff-cinema-hero__inner {
    min-height: 620px;
  }
  .pff-scenic-gateway.pff-elementor-editing .pff-scenic-gateway__panels,
  .pff-scenic-gateway.pff-elementor-editing .pff-scenic-panel {
    min-height: 480px !important;
  }
}

body.elementor-editor-active .pff-scenic-panel p,
body.elementor-editor-active .pff-scenic-panel__cta,
body.pff-elementor-editor-runtime .pff-scenic-panel p,
body.pff-elementor-editor-runtime .pff-scenic-panel__cta {
  opacity: 1 !important;
  transform: none !important;
}
body.elementor-editor-active .pff-scenic-gateway__panels,
body.pff-elementor-editor-runtime .pff-scenic-gateway__panels {
  min-height: 560px !important;
}
body.elementor-editor-active .pff-scenic-panel,
body.pff-elementor-editor-runtime .pff-scenic-panel {
  min-height: 560px !important;
  filter: none !important;
}
body.elementor-editor-active .pff-cinema-hero,
body.elementor-editor-active .pff-cinema-hero__inner,
body.pff-elementor-editor-runtime .pff-cinema-hero,
body.pff-elementor-editor-runtime .pff-cinema-hero__inner {
  min-height: 680px !important;
}

/* v4.5 — YouTube backgrounds for all hero widgets. The iframe is oversized to mimic object-fit: cover. */
.pff-hero-youtube {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 177.777778vh;
  min-width: 100%;
  height: 56.25vw;
  min-height: 100%;
  transform: translate(-50%, -50%);
  border: 0;
  display: block;
  pointer-events: none;
}

@media (max-width: 680px) {
  .pff-hero-youtube { display: none; }
}

/* =========================================================
   v4.7 — PETIT PARIS: complete food / bar one-page
   Distinct editorial language, but every section keeps the same
   Petit Paris type pair and brand palette.
   ========================================================= */
.pff-brand-petit .pff-bistro-story,
.pff-brand-petit .pff-bistro-moments,
.pff-brand-petit .pff-bistro-gallery,
.pff-brand-petit .pff-bistro-contact,
.pff-brand-petit .pff-food-menu,
.pff-brand-petit .pff-hours-section {
  font-family:var(--pff-font-body);
}
.pff-brand-petit .pff-bistro-story h2,
.pff-brand-petit .pff-bistro-moments h2,
.pff-brand-petit .pff-bistro-moment h3,
.pff-brand-petit .pff-bistro-gallery h2,
.pff-brand-petit .pff-bistro-contact h2,
.pff-brand-petit .pff-food-menu h2,
.pff-brand-petit .pff-food-menu h3,
.pff-brand-petit .pff-hours-section h2 {
  font-family:var(--pff-font-heading);
}

/* Intro / story: large photo + quiet editorial copy. */
.pff-bistro-story { background:var(--pff-surface); }
.pff-bistro-story__grid {
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
  min-height:680px;
  align-items:stretch;
  gap:clamp(42px,6vw,92px);
}
.pff-bistro-story--right .pff-bistro-story__media { order:2; }
.pff-bistro-story__media {
  position:relative;
  min-height:620px;
  background:color-mix(in srgb,var(--pff-primary) 8%,var(--pff-cream));
  background-size:cover;
  background-position:center;
  overflow:hidden;
}
.pff-bistro-story__media::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(12,20,16,.28),transparent 42%);
  pointer-events:none;
}
.pff-bistro-story__media small {
  position:absolute;
  z-index:2;
  left:24px;
  bottom:20px;
  color:#fff;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.13em;
}
.pff-bistro-story__placeholder {
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:30px;
  color:var(--pff-muted);
  text-align:center;
  border:1px dashed var(--pff-border);
}
.pff-bistro-story__copy {
  align-self:center;
  text-align:center;
  max-width:600px;
  margin-inline:auto;
}
.pff-bistro-story__copy h2 {
  margin:12px 0 28px;
  color:var(--pff-primary);
  font-size:clamp(2.7rem,5.2vw,5.4rem);
  line-height:.98;
  font-weight:500;
}
.pff-bistro-story__text { color:var(--pff-text); font-size:1.05rem; }
.pff-bistro-story__text p { margin:0 0 16px; }
.pff-bistro-story__button { margin-top:18px; border-radius:2px; }

/* Actual menu: name + optional price alignment. */
.pff-food-menu__group li {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
}
.pff-food-menu__group li > span { text-align:left; }
.pff-food-menu__group li > strong {
  color:var(--pff-secondary);
  font-size:.88rem;
  font-weight:700;
  white-space:nowrap;
}
.pff-food-menu__note {
  max-width:760px;
  margin:26px auto 0;
  color:color-mix(in srgb,var(--pff-cream) 62%,transparent);
  text-align:center;
  font-size:.84rem;
}

/* Day-parts become large photographic scenes, not generic cards.
   With 1–3 items we preserve the original editorial composition. From 4 items
   onward the widget switches to a regular two-column grid: every card has the
   same width and visual height, and an odd final card is centred at that same
   width instead of expanding to a giant full-width tile. */
.pff-bistro-moments { background:var(--pff-cream); }
.pff-bistro-moments__grid {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-rows:52px;
  grid-auto-flow:row;
  gap:16px;
  margin-top:52px;
}
.pff-bistro-moment {
  position:relative;
  display:block;
  overflow:hidden;
  min-height:430px;
  color:#fff;
  text-decoration:none;
  background:var(--pff-primary);
}

/* One or two moments: use the available width cleanly instead of leaving
   holes inherited from the three-item editorial composition. */
.pff-bistro-moments__grid--single {
  grid-template-columns:1fr;
  grid-auto-rows:auto;
}
.pff-bistro-moments__grid--single .pff-bistro-moment {
  grid-column:auto !important;
  grid-row:auto !important;
  min-height:clamp(460px,52vw,650px);
}
.pff-bistro-moments__grid--pair {
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:auto;
}
.pff-bistro-moments__grid--pair .pff-bistro-moment {
  grid-column:auto !important;
  grid-row:auto !important;
  min-height:clamp(430px,42vw,560px);
}

/* Original three-card editorial composition. */
.pff-bistro-moments__grid--editorial .pff-bistro-moment--1 { grid-column:1 / span 5; grid-row:1 / span 10; }
.pff-bistro-moments__grid--editorial .pff-bistro-moment--2 { grid-column:6 / span 7; grid-row:1 / span 8; }
.pff-bistro-moments__grid--editorial .pff-bistro-moment--3 { grid-column:6 / span 7; grid-row:9 / span 9; }

/* Four or more moments: stable, repeatable card size. */
.pff-bistro-moments__grid--regular {
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:auto;
  align-items:stretch;
}
.pff-bistro-moments__grid--regular .pff-bistro-moment {
  grid-column:auto !important;
  grid-row:auto !important;
  width:100%;
  min-height:clamp(430px,38vw,540px);
}
.pff-bistro-moments__grid--regular .pff-bistro-moment:last-child:nth-child(odd) {
  grid-column:1 / -1 !important;
  width:calc(50% - 8px);
  justify-self:center;
}
.pff-bistro-moment__media,
.pff-bistro-gallery__media {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  background-size:cover;
  background-position:center;
  transform:scale(1.001);
  transition:transform .8s cubic-bezier(.2,.75,.15,1);
}
.pff-bistro-moment:hover .pff-bistro-moment__media { transform:scale(1.045); }
.pff-bistro-moment__shade {
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(10,16,13,.9) 0%,rgba(10,16,13,.3) 53%,rgba(10,16,13,.08) 100%);
}
.pff-bistro-moment__copy {
  position:absolute;
  z-index:2;
  left:0;
  right:0;
  bottom:0;
  padding:32px;
  text-align:center;
}
.pff-bistro-moment__copy small {
  color:var(--pff-secondary);
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.17em;
}
.pff-bistro-moment__copy h3 {
  margin:8px 0 12px;
  color:#fff;
  font-size:clamp(2rem,3.6vw,4rem);
  font-weight:500;
  line-height:.96;
}
.pff-bistro-moment__copy p { max-width:500px; margin:0 auto; color:rgba(255,255,255,.8); }

/* Editorial mosaic gallery. The composition now adapts to the actual number
   of repeater items, so deleting or adding images never leaves reserved holes. */
.pff-bistro-gallery { background:var(--pff-surface); }
.pff-bistro-gallery__grid {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-rows:clamp(260px,34vw,470px);
  grid-auto-flow:row;
  gap:12px;
  margin-top:50px;
}
.pff-bistro-gallery__item {
  position:relative;
  grid-column:span 4;
  margin:0;
  min-height:260px;
  overflow:hidden;
  background:color-mix(in srgb,var(--pff-primary) 8%,var(--pff-cream));
}
/* One image fills the row; two images share it equally. */
.pff-bistro-gallery__grid--count-1 .pff-bistro-gallery__item:first-child { grid-column:1 / -1; }
.pff-bistro-gallery__grid--count-2 .pff-bistro-gallery__item { grid-column:span 6; }
/* From three images onward, keep the distinctive 7/5 editorial opening. */
.pff-bistro-gallery__grid:not(.pff-bistro-gallery__grid--count-1):not(.pff-bistro-gallery__grid--count-2) .pff-bistro-gallery__item:nth-child(1) { grid-column:span 7; }
.pff-bistro-gallery__grid:not(.pff-bistro-gallery__grid--count-1):not(.pff-bistro-gallery__grid--count-2) .pff-bistro-gallery__item:nth-child(2) { grid-column:span 5; }
/* After the opening pair, complete partial rows automatically. */
.pff-bistro-gallery__grid--tail-1 .pff-bistro-gallery__item:last-child:nth-child(n+3) { grid-column:1 / -1; }
.pff-bistro-gallery__grid--tail-2 .pff-bistro-gallery__item:nth-last-child(-n+2):nth-child(n+3) { grid-column:span 6; }
.pff-bistro-gallery__item figcaption {
  position:absolute;
  z-index:2;
  left:16px;
  bottom:14px;
  padding:7px 10px;
  background:rgba(20,29,24,.78);
  color:#fff;
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.pff-bistro-gallery__item::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(10,15,12,.22),transparent 38%);
  pointer-events:none;
}

/* Strong food-specific close. */
.pff-bistro-contact {
  background:var(--pff-primary);
  color:var(--pff-cream);
  min-height:600px;
  display:flex;
  align-items:center;
}
.pff-bistro-contact__inner { text-align:center; max-width:980px; }
.pff-bistro-contact .pff-eyebrow { color:var(--pff-secondary); }
.pff-bistro-contact h2 {
  margin:12px auto 22px;
  max-width:900px;
  color:var(--pff-cream);
  font-size:clamp(3rem,6vw,6.5rem);
  line-height:.92;
  font-weight:500;
}
.pff-bistro-contact__lead { max-width:720px; margin:0 auto; color:color-mix(in srgb,var(--pff-cream) 78%,transparent); }
.pff-bistro-contact__actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:32px; }
.pff-bistro-contact .pff-btn { border-radius:2px; background:var(--pff-accent); }
.pff-bistro-contact .pff-btn--ghost { background:transparent; color:var(--pff-cream); border-color:color-mix(in srgb,var(--pff-cream) 42%,transparent); }
.pff-bistro-contact small { display:block; margin-top:28px; color:color-mix(in srgb,var(--pff-cream) 62%,transparent); letter-spacing:.12em; text-transform:uppercase; }

/* Make existing practical information feel like a restaurant module. */
.pff-brand-petit .pff-hours { grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:clamp(42px,8vw,110px); }
.pff-brand-petit .pff-hours dl { border-top:1px solid var(--pff-border); }
.pff-brand-petit .pff-hours dl > div { border-bottom:1px solid var(--pff-border); }
.pff-brand-petit .pff-hours dt { font-weight:650; }
.pff-brand-petit .pff-hours dd { font-family:var(--pff-font-heading); font-size:1.15rem; }

@media (max-width:960px) {
  .pff-bistro-story__grid { grid-template-columns:1fr; gap:40px; min-height:0; }
  .pff-bistro-story--right .pff-bistro-story__media { order:0; }
  .pff-bistro-story__media { min-height:65vw; }
  .pff-bistro-moments__grid { grid-template-columns:1fr; grid-auto-rows:auto; }
  .pff-bistro-moment,
  .pff-bistro-moments__grid--regular .pff-bistro-moment:last-child:nth-child(odd) {
    grid-column:auto !important;
    grid-row:auto !important;
    width:100%;
    min-height:64vw;
  }
  .pff-bistro-gallery__grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:none; }
  .pff-bistro-gallery__item { grid-column:auto !important; grid-row:auto !important; min-height:42vw; }
  .pff-bistro-gallery__item:first-child { grid-column:1 / -1 !important; min-height:58vw; }
  .pff-brand-petit .pff-hours { grid-template-columns:1fr; }
}

@media (max-width:640px) {
  .pff-bistro-story__media { min-height:92vw; }
  .pff-bistro-moments__grid { margin-top:34px; }
  .pff-bistro-moment { min-height:78svh; }
  .pff-bistro-moment__copy { padding:26px 20px; }
  .pff-bistro-gallery__grid { grid-template-columns:1fr; }
  .pff-bistro-gallery__item { grid-column:auto !important; min-height:72vw; }
  .pff-bistro-contact { min-height:520px; }
  .pff-bistro-contact__actions { flex-direction:column; align-items:center; }
}


/* =========================================================
   v5.0 — PUBLIC VISIBILITY GUARANTEE
   Front-end content must never depend on JavaScript to be visible.
   Public sections remain visible by default; appearance effects are armed only
   on individual elements after JavaScript has a live observer. This also neutralizes
   Elementor's own `elementor-invisible` fail-closed state, so a delayed or
   blocked animation script cannot leave blank sections on the public page.
   ========================================================= */
.pff-site-main [data-pff-reveal],
.pff-site-main [data-pegaso-reveal],
.pff-site-main [data-pff-reveal].pff-reveal-ready,
.pff-site-main [data-pegaso-reveal].pff-reveal-ready,
.pff-site-main [data-pff-reveal].pff-reveal-ready.is-visible,
.pff-site-main [data-pegaso-reveal].pff-reveal-ready.is-visible,
.pff-site-main .elementor-invisible {
  opacity: 1 !important;
  visibility: visible !important;
  clip-path: none !important;
}

/* Legacy reveal masks are neutralised. The v5.2 appearance engine is
   progressive-enhancement and never hides full sections. */
.pff-site-main [data-pff-reveal="mask"].pff-reveal-ready,
.pff-site-main [data-pegaso-reveal="mask"].pff-reveal-ready {
  clip-path: none !important;
}

/* Extra guard for all theme sections and their Elementor wrappers. */
.pff-site-main .pff-section,
.pff-site-main .pegaso-section,
.pff-site-main .elementor-element,
.pff-site-main .elementor-widget,
.pff-site-main .elementor-widget-container {
  visibility: visible;
}


/* =========================================================
   v5.2 — ELEMENT-LEVEL APPEARANCE EFFECTS
   Reveal effects are applied to content atoms only: headings, text, images,
   buttons, cards, timeline items, menu groups, gallery items and footer atoms.
   Full Elementor sections/containers never animate.

   Progressive-enhancement rule: an element is hidden only after JS has a live
   IntersectionObserver and adds .pff-appear-armed to that exact element.
   Without JS, with reduced motion, or inside Elementor Editor everything is
   visible by default.
   ========================================================= */
.pff-site-main .pff-appear-item.pff-appear-armed,
.pff-footer .pff-appear-item.pff-appear-armed {
  --pff-appear-x: 0px;
  --pff-appear-y: 24px;
  --pff-appear-scale: 1;
  --pff-appear-blur: 2px;
  opacity: 0 !important;
  translate: var(--pff-appear-x) var(--pff-appear-y);
  scale: var(--pff-appear-scale);
  filter: blur(var(--pff-appear-blur));
  transition:
    opacity .72s cubic-bezier(.2,.7,.2,1) var(--pff-appear-delay,0ms),
    translate .72s cubic-bezier(.2,.7,.2,1) var(--pff-appear-delay,0ms),
    scale .78s cubic-bezier(.2,.7,.2,1) var(--pff-appear-delay,0ms),
    filter .58s ease var(--pff-appear-delay,0ms);
  will-change: opacity, translate, scale, filter;
  backface-visibility: hidden;
}

/* Physical entry direction: scroll down reveals from below; after an element
   has left through the top it resets above, so scrolling up replays naturally. */
.pff-site-main .pff-appear-item.pff-appear-from-top,
.pff-footer .pff-appear-item.pff-appear-from-top { --pff-appear-y: -24px; }
.pff-site-main .pff-appear-item.pff-appear-from-bottom,
.pff-footer .pff-appear-item.pff-appear-from-bottom { --pff-appear-y: 24px; }

/* Editorial variants. */
.pff-site-main .pff-appear-item.pff-appear--copy,
.pff-footer .pff-appear-item.pff-appear--copy {
  --pff-appear-scale: .995;
  --pff-appear-blur: 2.5px;
}

.pff-site-main .pff-appear-item.pff-appear--media,
.pff-footer .pff-appear-item.pff-appear--media {
  --pff-appear-scale: .965;
  --pff-appear-blur: 2px;
  --pff-appear-y: 18px;
}
.pff-site-main .pff-appear-item.pff-appear--media.pff-appear-from-top,
.pff-footer .pff-appear-item.pff-appear--media.pff-appear-from-top { --pff-appear-y: -18px; }

.pff-site-main .pff-appear-item.pff-appear--card,
.pff-footer .pff-appear-item.pff-appear--card {
  --pff-appear-scale: .985;
  --pff-appear-blur: 1.5px;
}
.pff-site-main .pff-appear-item.pff-appear--card.pff-appear-side-left,
.pff-footer .pff-appear-item.pff-appear--card.pff-appear-side-left { --pff-appear-x: -24px; }
.pff-site-main .pff-appear-item.pff-appear--card.pff-appear-side-right,
.pff-footer .pff-appear-item.pff-appear--card.pff-appear-side-right { --pff-appear-x: 24px; }

.pff-site-main .pff-appear-item.pff-appear--small,
.pff-footer .pff-appear-item.pff-appear--small {
  --pff-appear-scale: .92;
  --pff-appear-y: 12px;
  --pff-appear-blur: 1px;
}
.pff-site-main .pff-appear-item.pff-appear--small.pff-appear-from-top,
.pff-footer .pff-appear-item.pff-appear--small.pff-appear-from-top { --pff-appear-y: -12px; }

/* Visible state. `translate` and `scale` are individual transform properties,
   so existing hover transforms on cards/images remain fully functional. */
.pff-site-main .pff-appear-item.pff-appear-armed.pff-appear-visible,
.pff-footer .pff-appear-item.pff-appear-armed.pff-appear-visible {
  opacity: 1 !important;
  translate: 0 0;
  scale: 1;
  filter: blur(0);
}

/* Brand-specific cadence: same system, different personality. */
body.pff-brand-pegaso .pff-appear-item.pff-appear-armed {
  transition-duration: .60s, .60s, .66s, .48s;
}
body.pff-brand-petit .pff-appear-item.pff-appear-armed {
  transition-duration: .84s, .84s, .90s, .68s;
}
body.pff-brand-scricciolo .pff-appear-item.pff-appear-armed {
  transition-duration: .74s, .74s, .82s, .58s;
}
body.pff-brand-park .pff-appear-item.pff-appear-armed {
  transition-duration: .72s, .72s, .80s, .56s;
}

/* Sections and layout wrappers are explicitly excluded. */
.pff-site-main .elementor-section,
.pff-site-main .e-con,
.pff-site-main .e-con-inner,
.pff-site-main .pff-section,
.pff-site-main .pegaso-section {
  opacity: 1 !important;
  visibility: visible !important;
  translate: none !important;
  scale: 1 !important;
  filter: none !important;
}

/* Elementor editor: no hidden state and no transition while editing. */
body.elementor-editor-active .pff-appear-item,
body.pff-elementor-editor-runtime .pff-appear-item,
html.pff-elementor-preview .pff-appear-item,
.pff-elementor-editing .pff-appear-item {
  opacity: 1 !important;
  visibility: visible !important;
  translate: none !important;
  scale: 1 !important;
  filter: none !important;
  transition: none !important;
  will-change: auto !important;
}

@media (max-width: 680px) {
  .pff-site-main .pff-appear-item.pff-appear-armed,
  .pff-footer .pff-appear-item.pff-appear-armed {
    --pff-appear-x: 0px;
    --pff-appear-y: 18px;
    --pff-appear-blur: 1.5px;
  }
  .pff-site-main .pff-appear-item.pff-appear-from-top,
  .pff-footer .pff-appear-item.pff-appear-from-top { --pff-appear-y: -18px; }
  .pff-site-main .pff-appear-item.pff-appear--small,
  .pff-footer .pff-appear-item.pff-appear--small { --pff-appear-y: 10px; }
  .pff-site-main .pff-appear-item.pff-appear--small.pff-appear-from-top,
  .pff-footer .pff-appear-item.pff-appear--small.pff-appear-from-top { --pff-appear-y: -10px; }
}

@media (prefers-reduced-motion: reduce) {
  .pff-site-main .pff-appear-item,
  .pff-footer .pff-appear-item {
    opacity: 1 !important;
    visibility: visible !important;
    translate: none !important;
    scale: 1 !important;
    filter: none !important;
    transition: none !important;
    will-change: auto !important;
  }
}

/* =========================================================
   v5.6 — Seasonal activities slider + activity single sidebar
   ========================================================= */
.pegaso-seasonal-slider { position: relative; }
.pegaso-seasonal-slider__viewport { overflow: hidden; border-radius: var(--pegaso-radius); box-shadow: var(--pegaso-shadow); }
.pegaso-seasonal-slider__track { display: flex; width: 100%; transition: transform .55s cubic-bezier(.22,.72,.2,1); will-change: transform; }
.pegaso-seasonal-slider__slide { flex: 0 0 100%; width: 100%; min-width: 0; box-shadow: none; border-radius: 0; }
.pegaso-seasonal-slider__controls { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 22px; }
.pegaso-seasonal-slider__arrows { display: flex; gap: 10px; }
.pegaso-seasonal-slider__arrow { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 1px solid color-mix(in srgb, var(--pegaso-primary) 20%, transparent); border-radius: 50%; background: #fff; color: var(--pegaso-primary); cursor: pointer; font-size: 1.2rem; line-height: 1; transition: transform .2s ease, border-color .2s ease, background .2s ease; }
.pegaso-seasonal-slider__arrow:hover { transform: translateY(-2px); border-color: var(--pegaso-accent); background: color-mix(in srgb, var(--pegaso-cream) 70%, #fff); }
.pegaso-seasonal-slider__arrow:focus-visible,
.pegaso-seasonal-slider__dot:focus-visible { outline: 3px solid color-mix(in srgb, var(--pegaso-accent) 55%, transparent); outline-offset: 3px; }
.pegaso-seasonal-slider__dots { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.pegaso-seasonal-slider__dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 999px; background: color-mix(in srgb, var(--pegaso-primary) 22%, transparent); cursor: pointer; transition: width .25s ease, background .25s ease; }
.pegaso-seasonal-slider__dot.is-active { width: 28px; background: var(--pegaso-accent); }

/* Activity detail page. */
.pegaso-event-single { background: var(--pegaso-surface); }
.pegaso-event-single__hero { padding: clamp(70px,9vw,122px) 0 clamp(58px,7vw,92px); background: var(--pegaso-cream); }
.pegaso-event-single__hero-grid { display: grid; grid-template-columns: minmax(0,1.04fr) minmax(0,.96fr); gap: clamp(36px,6vw,84px); align-items: center; }
.pegaso-event-single__media { min-height: 540px; overflow: hidden; display: grid; place-items: center; border-radius: var(--pegaso-radius); background: linear-gradient(135deg,#d9e5dc,#9db9a5); color: var(--pegaso-primary); font-size: 6rem; }
.pegaso-event-single__media img { width: 100%; height: 100%; min-height: 540px; object-fit: cover; display: block; }
.pegaso-event-single__intro h1 { margin: 8px 0 20px; color: var(--pegaso-primary); font-family: var(--pff-font-heading); font-size: clamp(3rem,6.4vw,6.2rem); line-height: .92; letter-spacing: -.05em; text-wrap: balance; }
.pegaso-event-single__lead { margin: 0; max-width: 680px; color: var(--pegaso-muted); font-size: clamp(1.05rem,1.7vw,1.25rem); }
.pegaso-event-single__facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 30px; }
.pegaso-event-single__facts > div { min-width: 0; padding: 16px 18px; border: 1px solid var(--pegaso-border); border-radius: 16px; background: rgba(255,255,255,.62); }
.pegaso-event-single__facts strong,
.pegaso-event-single__facts span { display: block; }
.pegaso-event-single__facts strong { margin-bottom: 3px; color: var(--pegaso-accent); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.pegaso-event-single__facts span { color: var(--pegaso-primary); font-weight: 760; overflow-wrap: anywhere; }
.pegaso-event-single__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.pegaso-event-single__layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,360px); gap: clamp(42px,6vw,84px); align-items: start; padding-top: clamp(62px,8vw,108px); padding-bottom: clamp(82px,10vw,140px); }
.pegaso-event-single__content { min-width: 0; font-size: 1.03rem; }
.pegaso-event-single__content > :first-child { margin-top: 0; }
.pegaso-event-single__content h2,
.pegaso-event-single__content h3 { color: var(--pegaso-primary); font-family: var(--pff-font-heading); line-height: 1.05; }
.pegaso-event-single__content h2 { margin-top: 1.6em; font-size: clamp(2rem,4vw,3.25rem); }
.pegaso-event-single__content h3 { margin-top: 1.5em; font-size: clamp(1.55rem,2.6vw,2.15rem); }
.pegaso-event-single__content img { border-radius: 18px; }
.pegaso-event-single__content-cta { margin-top: 52px; padding: clamp(28px,4vw,42px); border-radius: 22px; background: var(--pegaso-cream); }
.pegaso-event-single__content-cta h2 { margin: 0 0 10px; font-size: clamp(2rem,3vw,2.8rem); }
.pegaso-event-single__content-cta p { margin: 0 0 22px; color: var(--pegaso-muted); }

.pegaso-event-sidebar__inner { position: sticky; top: calc(var(--pff-header-h) + var(--pff-parkbar-h, 0px) + 24px); display: grid; gap: 24px; }
.pegaso-event-sidebar__section { padding: 26px; border: 1px solid var(--pegaso-border); border-radius: 22px; background: #fff; box-shadow: 0 14px 40px rgba(27,58,46,.07); }
.pegaso-event-sidebar__section > .pegaso-eyebrow { margin-bottom: 5px; }
.pegaso-event-sidebar__section h2 { margin: 0 0 20px; color: var(--pegaso-primary); font-family: var(--pff-font-heading); font-size: 1.85rem; line-height: 1.05; }
.pegaso-event-sidebar__list { display: grid; gap: 4px; }
.pegaso-event-sidebar__item { display: grid; grid-template-columns: 68px minmax(0,1fr); gap: 13px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--pegaso-border); text-decoration: none; }
.pegaso-event-sidebar__item:last-child { border-bottom: 0; }
.pegaso-event-sidebar__thumb { width: 68px; height: 62px; overflow: hidden; display: grid; place-items: center; border-radius: 12px; background: var(--pegaso-cream); color: var(--pegaso-primary); }
.pegaso-event-sidebar__thumb img { width: 100%; height: 100%; object-fit: cover; }
.pegaso-event-sidebar__item small { display: block; margin-bottom: 2px; color: var(--pegaso-accent); font-size: .66rem; font-weight: 800; line-height: 1.25; letter-spacing: .05em; text-transform: uppercase; }
.pegaso-event-sidebar__item strong { display: block; color: var(--pegaso-primary); line-height: 1.2; }
.pegaso-event-sidebar__item:hover strong { text-decoration: underline; text-decoration-thickness: .06em; text-underline-offset: .15em; }
.pegaso-event-sidebar__more { display: inline-block; margin-top: 18px; color: var(--pegaso-primary); font-size: .88rem; font-weight: 800; text-decoration: none; }
.pegaso-event-sidebar__more:hover { text-decoration: underline; }
.pegaso-event-sidebar__ponies { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.pegaso-event-sidebar__pony { min-width: 0; color: var(--pegaso-primary); text-align: center; text-decoration: none; }
.pegaso-event-sidebar__pony-image { width: 100%; aspect-ratio: 1; overflow: hidden; display: grid; place-items: center; border-radius: 50%; background: var(--pegaso-cream); font-size: 1.8rem; }
.pegaso-event-sidebar__pony-image img { width: 100%; height: 100%; object-fit: cover; }
.pegaso-event-sidebar__pony strong { display: block; margin-top: 7px; overflow: hidden; font-size: .78rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 1024px) {
  .pegaso-event-single__hero-grid { grid-template-columns: 1fr 1fr; gap: 38px; }
  .pegaso-event-single__media,
  .pegaso-event-single__media img { min-height: 430px; }
  .pegaso-event-single__facts { grid-template-columns: 1fr; }
  .pegaso-event-single__layout { grid-template-columns: minmax(0,1fr) 300px; gap: 38px; }
}

@media (max-width: 800px) {
  .pegaso-event-single__hero-grid,
  .pegaso-event-single__layout { grid-template-columns: 1fr; }
  .pegaso-event-single__media,
  .pegaso-event-single__media img { min-height: 390px; }
  .pegaso-event-sidebar__inner { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 680px) {
  .pegaso-seasonal-slider__controls { align-items: flex-start; }
  .pegaso-seasonal-slider__arrow { width: 42px; height: 42px; }
  .pegaso-seasonal-slider__dots { max-width: 52%; padding-top: 14px; }
  .pegaso-event-single__hero { padding-top: 54px; }
  .pegaso-event-single__media,
  .pegaso-event-single__media img { min-height: 320px; }
  .pegaso-event-single__intro h1 { font-size: clamp(2.8rem,14vw,4.8rem); }
  .pegaso-event-single__actions { align-items: stretch; flex-direction: column; }
  .pegaso-event-single__actions .pegaso-btn { width: 100%; }
  .pegaso-event-sidebar__inner { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .pegaso-seasonal-slider__track { transition: none; }
}
