/* ============================================================
   styles.css — foglio di stile unificato
   Generato il 2026-04-30 da home.html, azienda-agricola.html, bardi-dintorni.html, camere.html, contatti.html, galleria.html, news.html, ristorante.html, sentiero-ritrovato.html
   ============================================================ */

/* ─── STILI COMUNI A TUTTE LE PAGINE ─────────────────────── */

/* ── Desktop: sidebar sempre aperta e fissa ─────────────── */
@media (min-width: 1024px) {
  body {
    padding-left: var(--sidebar-w) !important;
  }

  #sidebar {
    left: 0 !important;
    transition: none;
  }

  .sb-inner {
    opacity: 1 !important;
    transition: none;
  }

  .sb-toggle {
    display: none !important;
  }
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
      --blue: #0089F7; --dark: #161922; --text: #626262;
      --bg: #FCFCFC; --footer-bg: #545454;
      --sidebar-w: 200px; --sidebar-peek: 50px; --max: 940px;
    }

html { scroll-behavior: smooth; }

body.open { padding-left: var(--sidebar-w); }

a { color: #006edf; text-decoration: none; transition: color .2s; }

a:hover { color: var(--blue); }

img { max-width:100%; height:auto; display:block; }

body.open #sidebar { left:0; }

.sb-toggle:hover { color:var(--blue); }

body.open .sb-inner { opacity:1; }

.sb-logo { text-align:center; padding:5px 20px 20px; }

.sb-logo img { max-width:140px; margin:0 auto; }

.sb-nav ul li a {
      display:block; text-align:center; padding:0 20px;
      font-family:'Roboto',sans-serif; font-size:13px; color:var(--dark);
      line-height:38px; border-bottom:1px solid rgba(0,0,0,.05); transition:color .2s;
    }

.sb-nav ul li a:hover, .sb-nav ul li.current a { color:var(--blue); }

.sb-social a { color:rgba(0,0,0,.4); transition:color .2s; }

.sb-social a:hover { color:#1877f2; }

footer h3 { color:#fff; font-size:26px; margin-bottom:12px; }

footer p { font-size:13px; line-height:22px; }

footer a { color:#badbfc; }

footer a:hover { color:var(--blue); }

.footer-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:580px; margin:28px auto 0; text-align:left; }

.footer-copy { margin-top:28px; padding-top:20px; border-top:1px solid rgba(255,255,255,.1); font-size:12px; color:rgba(255,255,255,.45); }


/* ─── HOME ────────────────────────────────────────────── */

body {
      font-family: 'Poppins', sans-serif; font-size: 13px; line-height: 26px;
      color: var(--text); background: var(--bg);
      padding-left: var(--sidebar-peek); transition: padding-left .5s ease;
    }

h1,h2,h3,h4 { font-family:'Playfair Display',serif; color:var(--dark); line-height:1.25; }

ul { list-style:none; padding:0; }

/* ── SIDEBAR ─────────────────────────────── */
    #sidebar {
      position:fixed; top:0;
      left:calc(var(--sidebar-peek) - var(--sidebar-w));
      width:var(--sidebar-w); height:100%;
      background:#fff; z-index:9002;
      box-shadow:2px 0 6px rgba(0,0,0,.12);
      transition:left .5s ease;
      display:flex; flex-direction:column;
    }

.sb-toggle {
      position:absolute; right:8px; top:10px;
      width:34px; height:34px; border:none;
      background:transparent; color:var(--dark); font-size:20px;
      cursor:pointer; border-radius:3px; z-index:2;
      display:flex; align-items:center; justify-content:center;
    }

.sb-inner {
      opacity:0; transition:opacity .4s ease .1s;
      padding:60px 0 20px; overflow-y:auto;
      flex:1; display:flex; flex-direction:column;
    }

.sb-lang { position:relative; text-align:center; padding:10px 0 12px; }

.lang-btn {
  display:inline-flex; align-items:center; gap:5px;
  background:none; border:1px solid rgba(0,0,0,.12); border-radius:4px;
  padding:4px 10px; cursor:pointer; font-size:12px; color:#555;
  transition:border-color .2s;
}
.lang-btn:hover { border-color:var(--blue); color:var(--blue); }
.lang-arrow { font-size:10px; margin-left:2px; }

.lang-dropdown {
  display:none; position:absolute; bottom:calc(100% - 10px); left:50%;
  transform:translateX(-50%);
  background:#fff; border:1px solid rgba(0,0,0,.1);
  border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.1);
  list-style:none; padding:4px 0; min-width:80px; z-index:100;
}
.sb-lang.open .lang-dropdown { display:block; }

.lang-dropdown a {
  display:flex; align-items:center; justify-content:center;
  padding:6px 14px; font-size:12px; color:#555; text-decoration:none;
  transition:background .15s;
}
.lang-dropdown a:hover { background:#f5f5f5; color:var(--blue); }

.sb-lang img { width:18px; height:12px; border-radius:1px; }

.sb-social { padding:12px 20px; display:flex; justify-content:center; margin-top:auto; }

/* ── HERO SLIDER ─────────────────────────── */
    .hero {
      position:relative; width:100%; height:650px;
      overflow:hidden; background:#13162f;
    }

.hero .slide {
      position:absolute; inset:0;
      opacity:0; transition:opacity 1.2s ease;
    }

.hero .slide.active { opacity:1; }

.hero .slide img {
      width:100%; height:100%; object-fit:cover; object-position:center;
    }

.hero::after {
      content:''; position:absolute; inset:0;
      background:linear-gradient(to bottom, rgba(0,0,0,.02), rgba(0,0,0,.15));
      pointer-events:none;
    }

.hero-arrow {
      position:absolute; top:50%; transform:translateY(-50%);
      width:46px; height:46px; border:none; cursor:pointer;
      background:rgba(255,255,255,.18); color:#fff; font-size:24px;
      border-radius:50%; backdrop-filter:blur(4px);
      transition:background .2s; z-index:3;
      display:flex; align-items:center; justify-content:center;
    }

.hero-arrow:hover { background:rgba(255,255,255,.35); }

.hero-arrow.prev { left:24px; }

.hero-arrow.next { right:24px; }

.hero-dots {
      position:absolute; bottom:22px; left:50%;
      transform:translateX(-50%); display:flex; gap:8px; z-index:3;
    }

.hero-dots button {
      width:9px; height:9px; border-radius:50%;
      background:rgba(255,255,255,.45); border:none; cursor:pointer;
      padding:0; transition:background .2s, transform .2s;
    }

.hero-dots button.active { background:#fff; transform:scale(1.3); }

/* ── CONTAINER ───────────────────────────── */
    .container { max-width:var(--max); margin:0 auto; padding:0 24px; }

/* ── INTRO ───────────────────────────────── */
    .sec-intro { padding:70px 24px 40px; max-width:780px; margin:0 auto; text-align:center; }

.page-home .sec-intro h2 {
      font-size:clamp(34px,5vw,52px); font-weight:700;
      margin-bottom:24px;
    }

.sec-intro p { font-size:15px; line-height:30px; color:#5a5a5a; }

/* ── COSA OFFRIAMO ───────────────────────── */
    .sec-offer { padding:30px 0 10px; }

.sec-offer h3 { text-align:center; font-size:32px; margin-bottom:10px; }

.icon-grid {
      display:grid; grid-template-columns:repeat(4,1fr);
      gap:30px;
    }

.icon-card { text-align:center; padding:20px 10px; transition:transform .3s; }

.icon-card:hover { transform:translateY(-6px); }

.icon-card .ic-img {
      width:84px; height:84px; margin:0 auto 18px;
      display:flex; align-items:center; justify-content:center;
    }

.icon-card .ic-img img { max-width:100%; max-height:100%; }

.icon-card h4 {
      font-size:18px; font-weight:600; margin-bottom:12px;
      font-family:'Poppins',sans-serif;
    }

.icon-card p { font-size:13px; line-height:22px; color:#7a7a7a; }

/* ── DIVIDER ─────────────────────────────── */
    .divider {
      display:flex; align-items:center; gap:14px;
      padding:30px 0; max-width:600px; margin:0 auto;
      color:var(--blue); letter-spacing:6px;
    }

.divider::before,.divider::after { content:''; flex:1; height:1px; background:var(--blue); opacity:.4; }

/* ── LINK UTILI ──────────────────────────── */
    .sec-links { padding:30px 0 20px; }

.sec-links h3 { text-align:center; font-size:32px; margin-bottom:30px; }

.links-grid {
      display:grid; grid-template-columns:repeat(3,1fr);
      gap:30px;
    }

.link-card {
      text-align:center; padding:24px 18px; border-radius:6px;
      transition:transform .3s, box-shadow .3s;
      background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.04);
    }

.link-card:hover { transform:translateY(-6px); box-shadow:0 8px 24px rgba(0,0,0,.1); }

.link-card a { color:inherit; display:block; }

.link-card .lc-img {
      width:140px; height:140px; margin:0 auto 18px;
      display:flex; align-items:center; justify-content:center;
      overflow:hidden; border-radius:50%;
    }

.link-card .lc-img img { max-width:100%; max-height:100%; object-fit:cover; }

.link-card h4 {
      font-size:18px; font-weight:600; margin-bottom:10px;
      font-family:'Poppins',sans-serif; color:var(--dark);
      transition:color .2s;
    }

.link-card:hover h4 { color:var(--blue); }

.link-card p { font-size:13px; line-height:22px; color:#7a7a7a; }

/* ── FOOTER ──────────────────────────────── */
    footer { background:var(--footer-bg); color:#bababa; padding:55px 20px 30px; text-align:center; }

.wa { color:#25d366 !important; }

.wa:hover { color:#1ebe58 !important; }

/* ── RESPONSIVE ──────────────────────────── */
    @media(max-width:900px) {
      .icon-grid { grid-template-columns:repeat(2,1fr); }
      .links-grid { grid-template-columns:1fr; }
    }

@media(max-width:767px) {
      .hero { height:380px; }
      .hero-arrow { width:38px; height:38px; font-size:20px; }
      .hero-arrow.prev { left:10px; }
      .hero-arrow.next { right:10px; }
      .footer-grid { grid-template-columns:1fr; text-align:center; }
    }

@media(max-width:520px) {
      .icon-grid { grid-template-columns:1fr; gap:20px; }
      .page-home .sec-intro h2 { font-size:32px; }
    }


/* ─── AZIENDA-AGRICOLA ────────────────────────────────── */

body {
      font-family: 'Poppins', sans-serif; font-size: 13px; line-height: 28px;
      color: var(--text); background: var(--bg);
      padding-left: var(--sidebar-peek); transition: padding-left .5s ease;
    }

/* ── HERO ────────────────────────────────── */
    .hero {
      position:relative; width:100%; height:450px;
      overflow:hidden; background:#13162f;
    }

.hero img { width:100%; height:100%; object-fit:cover; object-position:center 40%; }

.hero-caption {
      position:absolute; inset:0; display:flex; flex-direction:column;
      align-items:center; justify-content:center;
      color:#fff; text-align:center; padding:20px;
      background:linear-gradient(to bottom, rgba(0,0,0,.05), rgba(0,0,0,.3));
      z-index:2;
    }

.hero-sub {
      font-size:13px; font-weight:400; letter-spacing:3px;
      text-transform:uppercase; margin-top:12px; opacity:.9;
      text-shadow:0 1px 6px rgba(0,0,0,.4);
    }

.hero-caption .pre {
      font-size:11px; font-weight:600; letter-spacing:5px;
      text-transform:uppercase; margin-bottom:10px;
    }

.hero-caption h1 {
      font-family:'Playfair Display',serif; color:#fff; font-weight:700;
      font-size:clamp(34px,6vw,58px); text-shadow:0 2px 10px rgba(0,0,0,.4);
    }

/* ── INTRO 1+2 ────────────────────────────── */
    .sec-intro { padding:70px 0 40px; }

.intro-grid {
      display:grid; grid-template-columns:1fr 2fr; gap:50px;
      align-items:start;
    }

.intro-grid .left .pre {
      font-size:11px; font-weight:600; letter-spacing:4px;
      text-transform:uppercase; color:var(--blue);
      margin-bottom:14px; display:block;
    }

.intro-grid h2 {
      font-size:clamp(34px,4.5vw,48px); font-weight:700;
      line-height:1.15;
    }

.intro-grid .right p {
      font-size:14px; line-height:30px; margin-bottom:18px;
      color:#5a5a5a;
    }

.intro-grid .right p:last-child { margin-bottom:0; }

.intro-grid .right em { color:var(--blue); font-style:italic; font-weight:500; }

/* ── GALLERY ─────────────────────────────── */
    .sec-gallery { padding:30px 0 70px; }

.sec-gallery h3 {
      text-align:center; font-size:30px; font-weight:700;
      margin-bottom:8px;
    }

.sec-gallery .sub {
      text-align:center; font-size:13px; color:#999;
      letter-spacing:2px; text-transform:uppercase; margin-bottom:38px;
    }

.gallery {
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      gap:8px;
    }

.gallery-item {
      position:relative; overflow:hidden; cursor:zoom-in;
      aspect-ratio:3/2; border-radius:2px;
    }

.gallery-item img {
      width:100%; height:100%;
      object-fit:cover; object-position:center;
      transition:transform .5s ease, filter .3s ease;
    }

.gallery-item:hover img { transform:scale(1.06); filter:brightness(1.05); }

.gallery-item::after {
      content:'+'; position:absolute; inset:0;
      display:flex; align-items:center; justify-content:center;
      color:#fff; font-size:36px; font-weight:300;
      background:rgba(0,137,247,0); opacity:0; transition:all .3s;
    }

.gallery-item:hover::after { background:rgba(0,137,247,.35); opacity:1; }

/* ── LIGHTBOX ────────────────────────────── */
    #lb {
      display:none; position:fixed; inset:0;
      background:rgba(0,0,0,.92); z-index:9999;
      align-items:center; justify-content:center;
    }

#lb.active { display:flex; }

#lb img { max-width:92vw; max-height:88vh; object-fit:contain; border-radius:4px; }

.lb-close {
      position:absolute; top:18px; right:26px;
      color:#fff; font-size:38px; cursor:pointer;
      background:none; border:none; line-height:1;
    }

.lb-arrow {
      position:absolute; top:50%; transform:translateY(-50%);
      color:#fff; font-size:50px; cursor:pointer;
      background:none; border:none; opacity:.65; transition:opacity .2s; line-height:1;
    }

.lb-arrow:hover { opacity:1; }

#lb-prev { left:20px; }

#lb-next { right:20px; }

.lb-counter {
      position:absolute; bottom:24px; left:50%;
      transform:translateX(-50%); color:rgba(255,255,255,.7);
      font-size:13px; letter-spacing:2px;
    }

/* ── RESPONSIVE ──────────────────────────── */
    @media(max-width:900px) {
      .gallery { grid-template-columns:repeat(2, 1fr); }
    }

@media(max-width:767px) {
      .hero { height:280px; }
      .intro-grid { grid-template-columns:1fr; gap:20px; }
      .intro-grid h2 { font-size:30px; }
      .sec-intro { padding:50px 0 30px; }
      .footer-grid { grid-template-columns:1fr; text-align:center; }
    }

@media(max-width:480px) {
      .gallery { grid-template-columns:1fr; }
    }


/* ─── BARDI-DINTORNI ──────────────────────────────────── */

h5 { font-family:'Poppins',sans-serif; color:#5f6271; }

/* ── HERO ────────────────────────────────── */
    .hero {
      position:relative; width:100%; height:480px;
      overflow:hidden; background:#13162f;
    }

.hero img { width:100%; height:100%; object-fit:cover; object-position:center 35%; }

.hero-caption {
      position:absolute; inset:0; display:flex; flex-direction:column;
      align-items:center; justify-content:center;
      color:#fff; text-align:center; padding:20px;
      background:linear-gradient(to bottom, rgba(0,0,0,.05), rgba(0,0,0,.3));
    }

/* ── INTRO ───────────────────────────────── */
    .sec-intro { padding:70px 0 50px; text-align:center; }

.sec-intro h2 { font-size:clamp(30px,4.5vw,44px); font-weight:700; margin-bottom:30px; }

.sec-intro h5 { font-size:18px; font-weight:700; margin-bottom:20px; }

.sec-intro p {
      font-size:14px; line-height:30px; max-width:780px;
      margin:0 auto 16px; color:#5a5a5a;
    }

.sec-intro p em { color:var(--blue); font-style:italic; }

/* ── DIVIDER ─────────────────────────────── */
    .divider {
      display:flex; align-items:center; gap:14px;
      padding:30px 0; max-width:600px; margin:0 auto;
      color:var(--blue); letter-spacing:6px; justify-content:center;
    }

/* ── 1+2 SECTION ─────────────────────────── */
    .sec-12 { padding:15px 0; }

.sec-12-grid {
      display:grid; grid-template-columns:1fr 2fr; gap:50px;
      align-items:start;
    }

.sec-12 h3 {
      font-size:clamp(26px,3.4vw,34px); font-weight:700; line-height:1.15;
    }

.sec-12 h5.sub { font-weight:700; font-size:18px; color:#161922; margin-bottom:16px; }

.sec-12 .right p {
      font-size:14px; line-height:30px; margin-bottom:16px;
      color:#5a5a5a;
    }

.sec-12 .right p:last-child { margin-bottom:0; }

/* ── GALLERY ─────────────────────────────── */
    .sec-gallery { padding:25px 0; }

.gallery {
      display:grid;
      grid-template-columns:repeat(4, 1fr);
      gap:8px;
    }

.gallery-item::after {
      content:'+'; position:absolute; inset:0;
      display:flex; align-items:center; justify-content:center;
      color:#fff; font-size:30px; font-weight:300;
      background:rgba(0,137,247,0); opacity:0; transition:all .3s;
    }

/* ── FOOTER ──────────────────────────────── */
    footer { background:var(--footer-bg); color:#bababa; padding:55px 20px 30px; text-align:center; margin-top:60px; }

@media(max-width:767px) {
      .hero { height:300px; }
      .sec-12-grid { grid-template-columns:1fr; gap:18px; }
      .sec-12 { padding:25px 0; }
      .sec-intro { padding:50px 0 30px; }
      .footer-grid { grid-template-columns:1fr; text-align:center; }
    }


/* ─── CAMERE ──────────────────────────────────────────── */

.hero img { width:100%; height:100%; object-fit:cover; object-position:center 30%; }

.hero-caption {
      position:absolute; inset:0; display:flex; flex-direction:column;
      align-items:center; justify-content:center;
      color:#fff; text-align:center; padding:20px;
      background:linear-gradient(to bottom, rgba(0,0,0,.02), rgba(0,0,0,.25));
    }

/* ── INTRO ───────────────────────────────── */
    .sec-intro { padding:60px 24px 10px; max-width:var(--max); margin:0 auto; text-align:center; }

.sec-intro h2 { font-size:clamp(26px,4vw,40px); margin-bottom:20px; }

.suite-note {
      display:inline-block; text-align:left;
      background:#f4f9fe; border-left:3px solid var(--blue);
      padding:14px 20px; border-radius:0 4px 4px 0;
      font-size:13px; line-height:22px;
      max-width:640px; width:100%;
    }

/* ── GRIGLIA FOTO 2×2 ────────────────────── */
    .sec-photos { padding:30px 0 10px; }

.photo-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
    }

.photo-item {
      position:relative; overflow:hidden;
      border-radius:20px;
      aspect-ratio:16/10;
    }

.photo-item img {
      width:100%; height:100%;
      object-fit:cover; object-position:center;
    }

.photo-item .caption {
      position:absolute; bottom:0; left:0; right:0;
      background:linear-gradient(transparent,rgba(0,0,0,.5));
      color:#fff; font-size:12px; padding:22px 14px 10px;
      opacity:0; transition:opacity .3s;
    }

.photo-item:hover .caption { opacity:1; }

/* ── DIVIDER ─────────────────────────────── */
    .divider {
      display:flex; align-items:center; gap:14px;
      padding:8px 0; color:var(--blue); letter-spacing:6px;
    }

/* ── INFO PRATICHE ───────────────────────── */
    .sec-info { padding:10px 0 10px; }

.sec-info h4 { text-align:center; font-size:20px; margin-bottom:28px; }

.info-cols {
      display:grid; grid-template-columns:1fr 1fr;
      gap:10px 40px; max-width:560px; margin:0 auto 18px;
    }

.info-cols li {
      padding:8px 0 8px 26px; position:relative;
      border-bottom:1px solid rgba(0,0,0,.05); font-size:13px;
    }

.info-cols li::before { content:'✓'; position:absolute; left:0; color:var(--blue); font-weight:700; }

.season-note {
      text-align:center; font-size:12px; color:#a8a8a8;
      max-width:640px; margin:0 auto 24px; font-style:italic;
    }

/* ── FLYER ───────────────────────────────── */
    .sec-flyer { padding:20px 0 60px; text-align:center; }

.flyer-link { display:inline-block; transition:transform .3s, box-shadow .3s; }

.flyer-link:hover { transform:translateY(-4px); box-shadow:0 10px 28px rgba(0,0,0,.15); }

.flyer-link img {
      border-radius:3px; box-shadow:0 4px 14px rgba(0,0,0,.12);
      max-height:270px; width:auto; margin:0 auto;
    }

.flyer-caption { font-size:12px; color:#a8a8a8; margin-top:10px; font-style:italic; }

/* ── LIGHTBOX ────────────────────────────── */
    #lb {
      display:none; position:fixed; inset:0;
      background:rgba(0,0,0,.88); z-index:9999;
      align-items:center; justify-content:center;
    }

#lb img { max-width:90vw; max-height:88vh; object-fit:contain; border-radius:4px; }

#lb .lb-close {
      position:absolute; top:18px; right:26px;
      color:#fff; font-size:38px; cursor:pointer; background:none; border:none; line-height:1;
    }

/* ── RESPONSIVE ──────────────────────────── */
    @media(max-width:767px){
      .hero { height:260px; }
      .photo-grid { grid-template-columns:1fr; }
      .info-cols { grid-template-columns:1fr; }
      .footer-grid { grid-template-columns:1fr; text-align:center; }
    }


/* ─── CONTATTI ────────────────────────────────────────── */

/* ── HERO ────────────────────────────────── */
    .hero {
      position:relative; width:100%; height:400px;
      overflow:hidden; background:#13162f;
    }

.hero img { width:100%; height:100%; object-fit:cover; object-position:center 55%; }

.hero-caption {
      position:absolute; inset:0; display:flex; flex-direction:column;
      align-items:center; justify-content:center;
      color:#fff; text-align:center; padding:20px;
      background:linear-gradient(to bottom, rgba(0,0,0,.05), rgba(0,0,0,.3));
    }

/* ── INTRO ───────────────────────────────── */
    .sec-intro { padding:65px 0 50px; }

.sec-intro h3 { font-size:clamp(26px,3.5vw,34px); font-weight:700; margin-bottom:18px; }

.sec-intro p { font-size:14px; line-height:28px; color:#5a5a5a; max-width:700px; }

/* ── ICON BOXES ──────────────────────────── */
    .icon-boxes {
      display:grid; grid-template-columns:repeat(3,1fr); gap:30px;
      padding:0 0 30px;
    }

.icon-box {
      text-align:center; padding:30px 16px 24px;
      border:1px solid #f0f0f0; border-radius:4px;
      background:#fff; transition:box-shadow .25s;
    }

.icon-box:hover { box-shadow:0 4px 20px rgba(0,137,247,.12); }

.icon-box .ico {
      width:52px; height:52px; background:rgba(0,137,247,.1);
      border-radius:50%; display:flex; align-items:center;
      justify-content:center; margin:0 auto 16px; color:var(--blue); font-size:22px;
    }

.icon-box h5 {
      font-family:'Poppins',sans-serif; font-weight:600; font-size:13px;
      color:var(--dark); margin-bottom:10px; text-transform:uppercase; letter-spacing:1px;
    }

.icon-box p { font-size:13px; line-height:22px; color:var(--text); }

.icon-box a { color:var(--text); }

.icon-box a:hover { color:var(--blue); }

.wa { color:#25d366 !important; font-weight:600; }

/* ── DIVIDER ─────────────────────────────── */
    .divider {
      display:flex; align-items:center; gap:14px;
      padding:10px 0 50px; max-width:600px; margin:0 auto;
      color:var(--blue); letter-spacing:6px; justify-content:center;
    }

/* ── CONTACT FORM ────────────────────────── */
    .sec-form { padding:0 0 0px; }

.sec-form h4 { font-size:clamp(22px,3vw,28px); font-weight:700; margin-bottom:10px; }

.sec-form .sub { font-size:14px; color:#5a5a5a; margin-bottom:36px; }

.form-grid {
      display:grid; grid-template-columns:1fr 1fr; gap:16px;
    }

.form-grid .full { grid-column:1/-1; }

input[type="text"],
    input[type="email"],
    input[type="tel"],
    textarea {
      width:100%; padding:12px 16px;
      font-family:'Poppins',sans-serif; font-size:13px; color:var(--text);
      background:#fff; border:1px solid #EBEBEB; border-radius:3px;
      outline:none; transition:border-color .2s, background .2s;
    }

input[type="text"]:focus,
    input[type="email"]:focus,
    input[type="tel"]:focus,
    textarea:focus {
      border-color:#d5e5ee; background:#e9f5fc; color:var(--blue);
    }

input::placeholder, textarea::placeholder { color:#aaa; }

textarea { resize:vertical; min-height:160px; }

.privacy-row {
      display:flex; align-items:flex-start; gap:10px;
      margin-top:4px; font-size:12px; color:#888; line-height:20px;
    }

.privacy-row input[type="checkbox"] {
      width:16px; height:16px; flex-shrink:0; margin-top:2px; cursor:pointer;
    }

.privacy-row a { color:var(--blue); }

.btn-submit {
      margin-top:20px; padding:14px 38px;
      background:var(--blue); color:#fff; border:none;
      font-family:'Poppins',sans-serif; font-size:13px; font-weight:600;
      letter-spacing:1px; cursor:pointer; border-radius:3px;
      transition:background .2s;
    }

.btn-submit:hover { background:#006edf; }

/* Success state */
    .form-success {
      display:none; padding:24px; background:#eaf8ef;
      border:1px solid #3a8b5b33; border-radius:4px; color:#3a8b5b;
      font-size:14px; margin-top:20px;
    }

.form-success.visible { display:block; }

/* ── MAP ─────────────────────────────────── */
    .sec-map { padding:0 0 0; }

.map-wrap { width:100%; height:360px; overflow:hidden; border-radius:4px; }

.map-wrap iframe { width:100%; height:100%; border:0; }

/* ── FOOTER ──────────────────────────────── */
    footer { background:var(--footer-bg); color:#bababa; padding:20px 20px 30px; text-align:center; margin-top:10px; }

/* ── RESPONSIVE ──────────────────────────── */
    @media(max-width:900px) {
      .icon-boxes { grid-template-columns:repeat(3,1fr); gap:18px; }
    }

@media(max-width:767px) {
      .hero { height:280px; }
      .icon-boxes { grid-template-columns:1fr; gap:16px; }
      .form-grid { grid-template-columns:1fr; }
      .form-grid .full { grid-column:1; }
      .footer-grid { grid-template-columns:1fr; text-align:center; }
      .sec-intro { padding:50px 0 35px; }
    }

@media(max-width:480px) {
      .icon-boxes { grid-template-columns:1fr; }
    }


/* ─── GALLERIA ────────────────────────────────────────── */

/* ── HERO ────────────────────────────────── */
    .hero {
      position:relative; width:100%; height:360px;
      overflow:hidden; background:#13162f;
    }

/* ── SECTION HEADING ─────────────────────── */
    .sec-block { padding:35px 0 0; }

.sec-block:last-of-type { padding-bottom: 30px; }

.sec-heading {
      display:flex; align-items:center; gap:18px; margin-bottom:22px;
    }

.sec-heading h3 {
      font-size:clamp(24px,3vw,30px); font-weight:700; white-space:nowrap;
    }

.sec-heading::after { content:''; flex:1; height:1px; background:rgba(0,137,247,.25); }

/* ── GALLERY GRID ────────────────────────── */
    .gallery {
      display:grid;
      grid-template-columns:repeat(4, 1fr);
      gap:6px;
    }

.gallery-item {
      position:relative; overflow:hidden; cursor:zoom-in;
      aspect-ratio:3/2; border-radius:2px; background:#e8e8e8;
    }

.gallery-item::after {
      content:'+'; position:absolute; inset:0;
      display:flex; align-items:center; justify-content:center;
      color:#fff; font-size:28px; font-weight:300;
      background:rgba(0,137,247,0); opacity:0; transition:all .3s;
    }

/* ── LIGHTBOX ────────────────────────────── */
    #lb {
      display:none; position:fixed; inset:0;
      background:rgba(0,0,0,.93); z-index:9999;
      align-items:center; justify-content:center;
    }

#lb-img { max-width:92vw; max-height:88vh; object-fit:contain; border-radius:4px; }

.lb-info {
      position:absolute; bottom:20px; left:50%;
      transform:translateX(-50%); text-align:center;
    }

.lb-info .lb-counter { color:rgba(255,255,255,.6); font-size:12px; letter-spacing:2px; }

.lb-info .lb-caption { color:rgba(255,255,255,.85); font-size:13px; margin-bottom:4px; }

/* ── RESPONSIVE ──────────────────────────── */
    @media(max-width:900px) { .gallery { grid-template-columns:repeat(3, 1fr); } }

@media(max-width:767px) {
      .hero { height:260px; }
      .gallery { grid-template-columns:repeat(2, 1fr); }
      .footer-grid { grid-template-columns:1fr; text-align:center; }
    }

@media(max-width:480px) { .gallery { grid-template-columns:1fr 1fr; gap:4px; } }


/* ─── NEWS ────────────────────────────────────────────── */

/* ── SIDEBAR ─────────────────────────────── */
    #sidebar {
      position:fixed; top:0;
      left:calc(var(--sidebar-peek) - var(--sidebar-w));
      width:var(--sidebar-w); height:100%;
      background:#fff; z-index:9002;
      box-shadow:2px 0 6px rgba(0,0,0,.12);
      transition:left .5s ease; display:flex; flex-direction:column;
    }

/* ── HERO ────────────────────────────────── */
    .hero {
      position:relative; width:100%; height:380px;
      overflow:hidden; background:#13162f;
    }

/* ── NEWS GRID ───────────────────────────── */
    .sec-news { padding:30px 0 30px; }

.news-grid {
      display:grid; grid-template-columns:1fr 1fr; gap:36px;
    }

/* ── ARTICLE CARD ────────────────────────── */
    .news-card {
      background:#fff; border:1px solid #eee; border-radius:4px;
      overflow:hidden; display:flex; flex-direction:column;
      transition:box-shadow .25s, transform .25s;
    }

.news-card:hover {
      box-shadow:0 8px 30px rgba(0,0,0,.1);
      transform:translateY(-3px);
    }

.news-card .card-img {
      width:100%; aspect-ratio:16/9; overflow:hidden; background:#f0f0f0;
      display:flex; align-items:center; justify-content:center;
    }

.news-card .card-img img {
      width:100%; height:100%; object-fit:contain; object-position:center;
      transition:transform .5s ease; padding:12px;
    }

.news-card .card-img.photo img {
      object-fit:cover; padding:0;
    }

.news-card:hover .card-img img { transform:scale(1.04); }

.news-card .card-body {
      padding:22px 24px 24px; flex:1; display:flex; flex-direction:column;
    }

.card-meta {
      font-size:11px; color:#aaa; letter-spacing:1px;
      text-transform:uppercase; margin-bottom:10px;
    }

.card-meta .cat {
      color:var(--blue); font-weight:600; margin-left:8px;
    }

.news-card h4 {
      font-size:clamp(16px,2vw,19px); font-weight:700; line-height:1.3;
      margin-bottom:12px; color:var(--dark);
    }

.news-card h4 a { color:var(--dark); }

.news-card h4 a:hover { color:var(--blue); }

.news-card .excerpt {
      font-size:13px; line-height:24px; color:#6a6a6a;
      flex:1; margin-bottom:20px;
    }

.btn-read {
      display:inline-flex; align-items:center; gap:6px;
      font-size:12px; font-weight:600; letter-spacing:1px;
      text-transform:uppercase; color:var(--blue);
      transition:gap .2s;
    }

.btn-read:hover { gap:10px; color:var(--blue); }

.btn-read svg { flex-shrink:0; }

/* ── RESPONSIVE ──────────────────────────── */
    @media(max-width:767px) {
      .hero { height:260px; }
      .news-grid { grid-template-columns:1fr; gap:24px; }
      .footer-grid { grid-template-columns:1fr; text-align:center; }
    }


/* ─── RISTORANTE ──────────────────────────────────────── */

h1,h2,h3,h4,h6 { font-family:'Playfair Display',serif; color:var(--dark); line-height:1.2; }

h5 { font-family:'Poppins',sans-serif; color:#5f6271; font-weight:400; }

p { margin-bottom: 14px; }

p:last-child { margin-bottom:0; }

/* SIDEBAR */
    #sidebar {
      position:fixed; top:0; left:calc(var(--sidebar-peek) - var(--sidebar-w));
      width:var(--sidebar-w); height:100%; background:#fff; z-index:9002;
      box-shadow:2px 0 6px rgba(0,0,0,.12); transition:left .5s ease;
      display:flex; flex-direction:column;
    }

.sb-toggle {
      position:absolute; right:8px; top:10px; width:34px; height:34px;
      border:none; background:transparent; color:var(--dark); font-size:20px;
      cursor:pointer; border-radius:3px; z-index:2;
      display:flex; align-items:center; justify-content:center;
    }

.sb-inner {
      opacity:0; transition:opacity .4s ease .1s;
      padding:60px 0 20px; overflow-y:auto; flex:1; display:flex; flex-direction:column;
    }

.sb-nav ul { list-style:none; }

.sb-lang { text-align:center; padding-bottom:15px; }

.sb-social { padding:15px 20px; display:flex; justify-content:center; margin-top:auto; }

/* HERO */
    .hero {
      position:relative; width:100%; height:450px;
      overflow:hidden; background:#13162f;
    }

.hero img { width:100%; height:100%; object-fit:cover; object-position:center; }

.hero-caption .pre {
      font-size:11px; font-weight:600; letter-spacing:5px; text-transform:uppercase; margin-bottom:10px;
    }

/* CONTAINER */
    .container { max-width:var(--max); margin:0 auto; padding:0 24px; }

/* INTRO */
    .sec-intro { padding:55px 0 40px; }

.intro-grid { display:grid; grid-template-columns:1fr 2fr; gap:50px; align-items:start; }

.intro-grid h2 { font-size:clamp(26px,4vw,40px); }

.intro-grid h5 { font-weight:600; color:var(--dark); margin-bottom:14px; }

/* HIGHLIGHT BOX */
    .menu-highlight {
      background:#f9f6f1; border-left:3px solid var(--blue);
      padding:18px 22px; margin:20px 0; border-radius:0 4px 4px 0;
    }

.menu-highlight p { font-size:13px; line-height:22px; margin:0; }

.menu-highlight strong { color:var(--dark); }

/* DIVIDER */
    .divider {
      display:flex; align-items:center; gap:14px; padding:8px 0;
      color:var(--blue); letter-spacing:6px;
    }

/* GALLERY */
    .sec-gallery { padding:10px 0 20px; }

.photo-grid {
      display:grid; grid-template-columns:repeat(4,1fr); gap:20px;
    }

.photo-grid a {
      display:block; overflow:hidden; border-radius:3px;
      aspect-ratio:4/3; border:2px solid #e5e5e5; cursor:zoom-in;
    }

.photo-grid a img {
      width:100%; height:100%; object-fit:cover;
      transition:transform .4s ease;
    }

.photo-grid a:hover img { transform:scale(1.07); }

/* LIGHTBOX */
    #lb { display:none; position:fixed; inset:0; background:rgba(0,0,0,.88); z-index:9999; align-items:center; justify-content:center; }

#lb img { max-width:88vw; max-height:88vh; object-fit:contain; border-radius:4px; }

#lb .lb-close { position:absolute; top:20px; right:28px; color:#fff; font-size:34px; cursor:pointer; line-height:1; background:none; border:none; }

/* FOOTER */
    footer { background:var(--footer-bg); color:#bababa; padding:30px 20px 30px; text-align:center; }

/* RESPONSIVE */
    @media(max-width:767px){
      .hero { height:260px; }
      .intro-grid { grid-template-columns:1fr; gap:24px; }
      .photo-grid { grid-template-columns:repeat(2,1fr); }
      .footer-grid { grid-template-columns:1fr; text-align:center; }
    }


/* ─── SENTIERO-RITROVATO ──────────────────────────────── */

/* ── HERO ────────────────────────────────── */
    .hero {
      position:relative; width:100%; height:380px;
      overflow:hidden; background:#1a2410;
    }

.hero img { width:100%; height:100%; object-fit:cover; object-position:center 45%; filter:brightness(1); }

.hero-caption {
      position:absolute; inset:0; display:flex; flex-direction:column;
      align-items:center; justify-content:center;
      color:#fff; text-align:center; padding:20px;
      background:linear-gradient(to bottom, rgba(0,0,0,.05), rgba(0,0,0,.3));
    }

.hero-caption .pre {
      font-size:11px; font-weight:600; letter-spacing:5px;
      text-transform:uppercase; margin-bottom:10px; color:rgba(255,255,255,.85);
    }

.hero-caption h1 {
      font-family:'Playfair Display',serif; color:#fff; font-weight:700;
      font-size:clamp(32px,5.5vw,54px); text-shadow:0 2px 10px rgba(0,0,0,.5);
    }

/* ── INTRO CENTRATA ───────────────────────── */
    .sec-intro { padding:30px 0 20px; text-align:center; }

.sec-intro .pre-title {
      font-size:11px; font-weight:700; letter-spacing:5px;
      text-transform:uppercase; color:var(--blue); margin-bottom:12px;
    }

.sec-intro p {
      font-size:14px; line-height:30px; max-width:800px;
      margin:0 auto; color:#5a5a5a;
    }

/* ── BANNER IMG ──────────────────────────── */
    .banner-img { padding:30px 0; }

.banner-img img { width:100%; border-radius:3px; }

/* ── DIVIDER ─────────────────────────────── */
    .divider {
      display:flex; align-items:center; gap:14px;
      padding:10px 0 10px; max-width:600px; margin:0 auto;
      color:var(--blue); letter-spacing:6px; justify-content:center;
    }

/* ── H3 sezione ──────────────────────────── */
    .sec-desc-title {
      padding:0 0 30px; text-align:center;
    }

.sec-desc-title h3 { font-size:clamp(24px,3.5vw,32px); font-weight:700; }

/* ── TAPPE 1+2 ───────────────────────────── */
    .tappa { padding:24px 0 0; }

.tappa-grid {
      display:grid; grid-template-columns:1fr 2fr; gap:48px;
      align-items:start; padding-bottom:34px;
      border-bottom:1px solid #f0f0f0;
    }

.tappa-grid:last-of-type { border-bottom:none; }

.tappa-num {
      display:inline-flex; align-items:center; justify-content:center;
      width:30px; height:30px; background:var(--blue); color:#fff;
      border-radius:50%; font-size:12px; font-weight:700;
      margin-bottom:12px; flex-shrink:0;
    }

.tappa-grid .left h3 {
      font-size:clamp(18px,2.5vw,24px); font-weight:700; line-height:1.3;
    }

.tappa-grid .right p {
      font-size:14px; line-height:30px; color:#5a5a5a; margin-bottom:14px;
    }

.tappa-grid .right p:last-child { margin-bottom:0; }

/* ── FONTI ───────────────────────────────── */
    .sec-fonti { padding:40px 0 20px; }

.sec-fonti p { font-size:13px; line-height:24px; color:#888; }

.sec-fonti strong { color:var(--dark); }

/* ── MAPPA ───────────────────────────────── */
    .sec-mappa { padding:40px 0 70px; text-align:center; }

.sec-mappa h4 {
      font-size:clamp(18px,2.5vw,24px); font-weight:700;
      letter-spacing:2px; text-transform:uppercase;
      margin-bottom:28px; color:var(--dark);
    }

.sec-mappa img {
      max-width:600px; margin:0 auto; border-radius:4px;
      box-shadow:0 6px 30px rgba(0,0,0,.12);
    }

/* ── RESPONSIVE ──────────────────────────── */
    @media(max-width:767px) {
      .hero { height:260px; }
      .tappa-grid { grid-template-columns:1fr; gap:16px; }
      .footer-grid { grid-template-columns:1fr; text-align:center; }
      .sec-intro { padding:50px 0 30px; }
    }

/* ─── CAMERE: griglia foto 2×2 ─────────────────────────────────────── */
.page-camere .photo-grid { grid-template-columns: 1fr 1fr; }
@media (max-width: 600px) { .page-camere .photo-grid { grid-template-columns: 1fr; } }

/* ─── CAMERE: possibilità di soggiorno ──────────────────────────────── */
.page-camere .stay-options {
  max-width: var(--max); padding: 58px 24px 24px;
}
.page-camere .stay-options h2 {
  margin-bottom: 30px; color: var(--dark);
}
.page-camere .stay-options-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 18px; text-align: left;
}
.page-camere .stay-option {
  display: flex; flex-direction: column;
  padding: 28px 26px 26px;
  background: #f4f9fe; border-top: 3px solid var(--blue);
  border-radius: 4px; box-shadow: 0 4px 18px rgba(22,25,34,.06);
  transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease;
}
.page-camere .stay-option:hover {
  transform: translateY(-4px);
  background: #eaf3fa;
  box-shadow: 0 10px 28px rgba(22,25,34,.11);
}
.page-camere .stay-option h3 {
  margin-bottom: 14px; color: var(--dark);
  font-family: 'Playfair Display', serif; font-size: 24px;
}
.page-camere .stay-option p {
  max-width: none; margin: 0 0 22px;
  font-size: 13px; line-height: 23px; color: #5a5a5a;
}
.page-camere .stay-option-link {
  align-self: flex-start; margin-top: auto; padding-bottom: 3px;
  border-bottom: 1px solid currentColor;
  color: var(--blue); font-size: 12px; font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase;
  transition: color .2s;
}
.page-camere .stay-option-link:hover { color: var(--dark); }
.page-camere .stay-option-link span { margin-left: 4px; }
.page-camere .sec-photos { scroll-margin-top: 24px; }

@media (max-width: 900px) {
  .page-camere .stay-options-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .page-camere .stay-options { padding: 44px 18px 18px; }
  .page-camere .stay-options h2 { margin-bottom: 24px; }
  .page-camere .stay-option { padding: 24px 22px 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .page-camere .stay-option { transition: none; }
  .page-camere .stay-option:hover { transform: none; }
}

/* ─── HOME: altezza hero (sovrascrive le regole delle altre pagine) ── */
.page-home .hero { height: 500px; }
@media (max-width: 900px) { .page-home .hero { height: 420px; } }
@media (max-width: 520px) { .page-home .hero { height: 280px; } }

/* ─── WUBOOK BOTTOM: spazio sotto il footer per non coprire il widget ── */
body { padding-bottom: 74px; }
#sidebar { padding-bottom: 54px; }

/* ─── ARTICOLO NEWS ──────────────────────────────────────────────────── */
.sec-article { padding: 50px 0 70px; }
.article-img { text-align: center; margin-bottom: 36px; }
.article-img img { max-height: 180px; width: auto; margin: 0 auto; }
.article-subtitle { font-size: 20px; margin-bottom: 28px; color: var(--dark); line-height: 1.4; }
.article-body p { margin-bottom: 18px; }
.article-body ul { list-style: disc; padding-left: 24px; margin-bottom: 18px; }
.article-body ul li { margin-bottom: 8px; }
.article-body h3 { font-size: 16px; font-family: 'Poppins', sans-serif; font-weight: 600; margin: 28px 0 12px; color: var(--dark); text-transform: uppercase; letter-spacing: .04em; }
.article-body figure { margin: 28px 0; }
.article-body figure img { width: 100%; height: auto; border-radius: 4px; }
.article-meta-box { background: #f4f7fb; border-left: 3px solid var(--blue); padding: 20px 24px; margin: 36px 0; border-radius: 0 4px 4px 0; font-size: 13px; line-height: 26px; }
.article-meta-box a { color: var(--blue); }
.btn-back { display: inline-flex; align-items: center; gap: 7px; margin-top: 40px; font-size: 13px; font-weight: 600; color: var(--blue); transition: color .2s; }
.btn-back:hover { color: var(--dark); }
.btn-back svg { flex-shrink: 0; }

/* ─── GIFT CARD ─────────────────────────────────────────────────────── */
/* Tutto sotto .page-gift-card: i selettori condivisi (.hero, .sec-intro,
   .form-grid…) sono ridichiarati più volte più in alto nel file e modificarli
   lì cambierebbe anche le altre pagine. */

.page-gift-card .hero { height: 400px; }
.page-gift-card .hero img { object-position: center 60%; }

.page-gift-card .sec-intro { padding: 60px 0 30px; }
.page-gift-card .sec-intro p { max-width: 720px; }

/* Esito del ritorno da Stripe */
.page-gift-card .gc-esito { padding: 20px 24px; border-radius: 4px; margin-bottom: 34px; font-size: 14px; line-height: 24px; }
.page-gift-card .gc-esito p { margin: 6px 0 0; }
.page-gift-card .gc-ok { background: #eaf8ef; border: 1px solid #3a8b5b33; color: #3a8b5b; }
.page-gift-card .gc-avviso { background: #fff6e8; border: 1px solid #d9a04033; color: #a8701c; }
.page-gift-card .gc-codice { font-family: 'Roboto', monospace; font-size: 17px; letter-spacing: 2px; color: var(--dark); }

/* Scelta del taglio */
.page-gift-card .sec-gc { padding: 10px 0 30px; }
.page-gift-card .gc-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 34px; }

.page-gift-card .gc-card { display: block; cursor: pointer; }
.page-gift-card .gc-card input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }

.page-gift-card .gc-in {
  display: flex; flex-direction: column; height: 100%;
  padding: 28px 22px 24px; text-align: center;
  background: #fff; border: 1px solid #ececec; border-radius: 4px;
  transition: border-color .2s, box-shadow .2s;
}
.page-gift-card .gc-card:hover .gc-in { box-shadow: 0 4px 20px rgba(0,137,247,.12); }
.page-gift-card .gc-card.scelta .gc-in { border-color: var(--blue); box-shadow: 0 4px 20px rgba(0,137,247,.16); }
.page-gift-card .gc-card input[type="radio"]:focus-visible + .gc-in { outline: 2px solid var(--blue); outline-offset: 2px; }

.page-gift-card .gc-tit {
  font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 12px;
  text-transform: uppercase; letter-spacing: 1px; color: var(--dark); margin-bottom: 14px;
}
.page-gift-card .gc-prezzo {
  font-family: 'Playfair Display', serif; font-size: 32px; line-height: 1;
  color: var(--blue); margin-bottom: 14px;
}
.page-gift-card .gc-prezzo-libero { display: flex; align-items: baseline; justify-content: center; gap: 6px; }
.page-gift-card .gc-prezzo-libero input[type="number"] {
  width: 118px; padding: 4px 8px;
  font-family: 'Playfair Display', serif; font-size: 30px; text-align: center; color: var(--blue);
  background: #fff; border: 1px solid #EBEBEB; border-radius: 3px; outline: none;
  transition: border-color .2s, background .2s;
}
.page-gift-card .gc-prezzo-libero input[type="number"]:focus { border-color: #d5e5ee; background: #e9f5fc; }
.page-gift-card .gc-desc { font-size: 12.5px; line-height: 21px; color: var(--text); }

/* Dati del regalo */
.page-gift-card .gc-dati { margin-bottom: 4px; }
.page-gift-card .gc-dati textarea { min-height: 96px; }
.page-gift-card .gc-nota { margin-top: 20px; font-size: 12px; line-height: 21px; color: #8a8a8a; max-width: 700px; }

@media (max-width: 900px) {
  .page-gift-card .gc-cards { grid-template-columns: 1fr; gap: 14px; }
}
@media (max-width: 767px) {
  .page-gift-card .hero { height: 280px; }
  .page-gift-card .sec-intro { padding: 46px 0 24px; }
}
/* ─── CONTATTI: nota sotto il titolo del box telefono ─────────────────── */
.icon-box .note { font-size: 12px; line-height: 18px; color: #8a8a8a; margin: -6px 0 8px; }

/* ─── CONTATTI: riquadro giallo dell'intro con animazione bounce-in ───── */
.intro-box { background: #FFC107; padding: 15px 14px; margin-top: 6px; }
.intro-box p { color: #5f6271; }
.intro-box.js-anim { opacity: 0; }
.intro-box.js-anim.in-view { animation: bounceIn 1s ease both; }

@keyframes bounceIn {
  0%   { opacity: 0; transform: scale(0); }
  50%  { opacity: 1; transform: scale(1.1); }
  70%  { opacity: 1; transform: scale(.9); }
  100% { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .intro-box.js-anim { opacity: 1; }
  .intro-box.js-anim.in-view { animation: none; }
}

/* ─── CONTATTI: riquadro degli errori di validazione del form ──────────── */
.form-error {
  padding: 18px 24px; margin-bottom: 24px;
  background: #fdecec; border: 1px solid #c0392b33; border-radius: 4px;
  color: #b03a2e; font-size: 14px;
}
.form-error ul { margin: 0; padding-left: 20px; }
.form-error li { margin: 4px 0; }

/* ─── PAGINE LEGALI (privacy-policy) ──────────────────────────────────── */
.page-legale .sec-legale { padding: 60px 0 40px; }

.page-legale .legale { max-width: 820px; }
.page-legale .legale p,
.page-legale .legale li { font-size: 15px; line-height: 26px; color: #4a4a4a; }
.page-legale .legale p { margin-bottom: 16px; }

.page-legale .legale h2 {
  font-family: 'Playfair Display', serif;
  font-size: 24px; font-weight: 700; color: #2f2f2f;
  margin: 42px 0 14px; padding-bottom: 8px;
  border-bottom: 1px solid #e3e3e3;
}
.page-legale .legale h3 {
  font-size: 16px; font-weight: 600; color: #2f2f2f;
  margin: 26px 0 10px;
}

.page-legale .legale ul { margin: 0 0 16px; padding-left: 22px; }
.page-legale .legale li { margin-bottom: 8px; }
.page-legale .legale a { color: var(--blue); }

.page-legale .legale-data {
  font-size: 13px; color: #8a8a8a; font-style: italic; margin-bottom: 28px;
}

/* La tabella dei cookie scorre da sola sugli schermi stretti */
.page-legale .tabella-wrap { overflow-x: auto; margin: 0 0 20px; }
.page-legale .tabella-cookie {
  width: 100%; min-width: 560px; border-collapse: collapse; font-size: 14px;
}
.page-legale .tabella-cookie th,
.page-legale .tabella-cookie td {
  border: 1px solid #e3e3e3; padding: 10px 12px; text-align: left; vertical-align: top;
}
.page-legale .tabella-cookie th { background: #f6f6f6; font-weight: 600; color: #2f2f2f; }
.page-legale .tabella-cookie code { font-size: 13px; background: #f2f2f2; padding: 1px 5px; border-radius: 3px; }

/* ─── FORM: etichette accessibili sempre visibili ───────────────────── */
#contact-form .field-label,
#gc-form .field-label {
  display: block; margin: 0 0 7px;
  color: #4a4a4a; font-size: 12px; font-weight: 600; line-height: 18px;
}
#contact-form .field-label span,
#gc-form .field-label span { color: #888; font-weight: 400; }

.visually-hidden {
  position: absolute !important; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
