/* Pagina FLEX: prenotazione visite al Castello Visconteo */
.plv-page {
  --plv-blue: #174f7d;
  --plv-blue-deep: #103b60;
  --plv-teal: #19bda7;
  --plv-ink: #17222d;
  --plv-muted: #637180;
  --plv-line: #dbe5eb;
  --plv-soft: #f3f8fa;
  max-width: 1240px;
  margin: 0 auto;
  padding: clamp(1.2rem, 3vw, 2.5rem) clamp(1rem, 2.5vw, 2.25rem) 4rem;
  color: var(--plv-ink);
  font-size: 16px;
  line-height: 1.6;
}
.plv-page * { box-sizing: border-box; }
.plv-page h1, .plv-page h2, .plv-page h3 { color: var(--plv-blue-deep); letter-spacing: -.025em; }
.plv-page h2 { margin: 0 0 .75rem; font-size: clamp(1.65rem, 3.2vw, 2.55rem); line-height: 1.12; }
.plv-eyebrow { display:block; margin-bottom:.6rem; color:var(--plv-teal); font-size:.76rem; font-weight:850; letter-spacing:.15em; text-transform:uppercase; }
.plv-hero { display:grid; width:100%; grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr); min-height:520px; overflow:hidden; border-radius:28px; background:linear-gradient(130deg,var(--plv-blue-deep),var(--plv-blue)); box-shadow:0 24px 70px rgba(16,59,96,.18); }
.plv-hero-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(2rem,5vw,4.5rem); color:#fff; }
.plv-hero .plv-eyebrow { color:#7ce2d4; }
.plv-hero h1 { max-width:760px; margin:0; color:#fff; font-size:clamp(2.5rem,5.6vw,5.2rem); line-height:.98; font-weight:850; }
.plv-hero p { max-width:680px; margin:1.25rem 0 0; color:rgba(255,255,255,.86); font-size:clamp(1.03rem,1.8vw,1.28rem); }
.plv-actions { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.7rem; }
.plv-btn { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:.75rem 1.1rem; border:1px solid transparent; border-radius:999px; background:var(--plv-teal); color:#082f2b!important; font-weight:850; text-decoration:none!important; transition:.18s ease; }
.plv-btn:hover { transform:translateY(-2px); filter:brightness(.96); }
.plv-btn.is-ghost { border-color:rgba(255,255,255,.5); background:transparent; color:#fff!important; }
.plv-btn.is-light { border-color:var(--plv-line); background:#fff; color:var(--plv-blue-deep)!important; }
.plv-hero-media { position:relative; min-height:380px; }
.plv-hero-media img { width:100%; height:100%; object-fit:cover; }
.plv-hero-media:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(23,79,125,.38),transparent 50%); pointer-events:none; }
.plv-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1rem 0 0; }
.plv-fact { padding:1.15rem 1.25rem; border:1px solid var(--plv-line); border-radius:16px; background:#fff; box-shadow:0 8px 26px rgba(16,59,96,.055); }
.plv-fact strong { display:block; color:var(--plv-blue-deep); font-size:1.25rem; }
.plv-fact span { color:var(--plv-muted); font-size:.88rem; }
.plv-section { padding:clamp(2.8rem,6vw,5rem) 0 0; }
.plv-intro { max-width:760px; margin:0; color:var(--plv-muted); font-size:1.07rem; }
.plv-price-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1.5rem; }
.plv-price { padding:1.4rem; border:1px solid var(--plv-line); border-radius:18px; background:#fff; }
.plv-price.is-featured { border-color:#9fe1d7; background:#edf9f7; }
.plv-price small { color:var(--plv-teal); font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.plv-price strong { display:block; margin:.25rem 0 .4rem; color:var(--plv-blue-deep); font-size:2rem; line-height:1; }
.plv-price p { margin:0; color:var(--plv-muted); font-size:.92rem; }
.plv-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1.5rem; }
.plv-detail { padding:1.35rem; border-radius:18px; background:var(--plv-soft); }
.plv-detail h3 { margin:0 0 .65rem; font-size:1.1rem; }
.plv-detail ul { margin:0; padding-left:1.15rem; }
.plv-detail li + li { margin-top:.35rem; }
.plv-booking { margin-top:clamp(3rem,7vw,6rem); padding:clamp(1.4rem,4vw,3rem); border:1px solid var(--plv-line); border-radius:26px; background:linear-gradient(180deg,#f7fbfc,#fff); box-shadow:0 18px 55px rgba(16,59,96,.09); }
.plv-booking-head { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem 2rem; flex-wrap:wrap; margin-bottom:1.5rem; }
.plv-booking-head p { max-width:700px; margin:.45rem 0 0; color:var(--plv-muted); }
.plv-widget-shell { padding:clamp(.6rem,2vw,1.25rem); border:1px solid var(--plv-line); border-radius:18px; background:#fff; }
.plv-widget-shell vforms-widget { display:block; width:100%; }
.plv-help { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-top:1rem; padding:1rem 1.1rem; border-radius:14px; background:var(--plv-blue-deep); color:#fff; }
.plv-help p { margin:0; color:rgba(255,255,255,.86); }
.plv-help a { color:#fff; font-weight:850; }
@media (max-width:900px) {
  .plv-hero { grid-template-columns:1fr; min-height:0; }
  .plv-hero-media { min-height:300px; order:-1; }
  .plv-hero-media:after { background:linear-gradient(0deg,rgba(16,59,96,.28),transparent 60%); }
}
@media (max-width:700px) {
  .plv-page { padding-inline:.75rem; }
  .plv-hero { border-radius:20px; }
  .plv-hero-copy { padding:1.6rem 1.25rem 2rem; }
  .plv-hero-media { min-height:230px; }
  .plv-facts, .plv-price-grid, .plv-details { grid-template-columns:1fr; }
  .plv-booking { border-radius:18px; padding:1rem; }
  .plv-actions .plv-btn { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  .plv-page * { transition:none!important; }
}
