/* =========================================================
   Reset & Base
   ========================================================= */
   *{margin:0;padding:0;box-sizing:border-box;}

   html{
     scroll-behavior:smooth;
   }
   
   :root{
     --primary-color:#8B7355;
     --secondary-color:#D4AF37;
     --accent-color:#6B8E23;
     --text-dark:#2c3e50;
     --text-light:#7f8c8d;
     --background-light:#f8f9fa;
     --white:#ffffff;
     --shadow:rgba(0,0,0,.1);
   }
   
   body{
     font-family:'Inter',sans-serif;
     line-height:1.6;
     color:var(--text-dark);
     background:#fefefe;
   }
   
   .container{max-width:1200px;margin:0 auto;padding:0 20px;}
   
   /* =========================================================
      Typography
      ========================================================= */
   h1,h2,h3,h4{font-family:'Noto Serif',serif;font-weight:600;line-height:1.2;}
   h1{font-size:3.5rem;margin-bottom:1rem;}
   h2{font-size:2.5rem;margin-bottom:1.5rem;}
   h3{font-size:1.8rem;margin-bottom:1rem;}
   h4{font-size:1.3rem;margin-bottom:.5rem;}
   
   /* =========================================================
      Navigation
      ========================================================= */
   .navbar{
     position:fixed;top:0;width:100%;
     background:rgba(255,255,255,.95);
     backdrop-filter:blur(10px);
     border-bottom:1px solid rgba(139,115,85,.1);
     z-index:1000;transition:.3s;
   }
   .nav-container{
     max-width:1200px;margin:0 auto;padding:0 20px;
     display:flex;justify-content:space-between;align-items:center;
     height:80px;gap:20px;
   }
   .nav-logo{flex-shrink:0;max-width:60%;}
   .nav-logo h2{color:var(--primary-color);font-size:1.5rem;margin:0;word-break:break-word;}
   .nav-menu{display:flex;list-style:none;gap:2rem;}
   .nav-link{position:relative;text-decoration:none;color:var(--text-dark);font-weight:500;transition:.3s;}
   .nav-link:hover{color:var(--primary-color);}
   .nav-link::after{content:'';position:absolute;bottom:-5px;left:0;width:0;height:2px;background:var(--secondary-color);transition:.3s;}
   .nav-link:hover::after{width:100%;}
   .hamburger{display:none;flex-direction:column;cursor:pointer;}
   .hamburger span{width:25px;height:3px;background:var(--primary-color);margin:3px 0;display:block;transition:.3s;}
   
   /* =========================================================
      Hero
      ========================================================= */
   .hero{
     height:100vh;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;
     /* Spazio per la navbar fissa su desktop */
     padding-top:80px;
   }
   .hero-background{position:absolute;inset:0;z-index:-2;}
   .hero-background img{width:100%;height:100%;object-fit:cover;}
   .hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.65) 100%);z-index:-1;}
   .hero-content{text-align:center;color:var(--white);max-width:800px;padding:0 20px;}
   .hero-content *{text-shadow:0 3px 8px rgba(0,0,0,.85);}
   .hero-title{font-size:4rem;margin-bottom:1rem;}
   .hero-subtitle,.hero-tagline{display:inline-block;font-weight:700;padding:.35rem 1rem;border-radius:6px;background:rgba(0,0,0,.55);color:#fff;text-shadow:0 3px 7px rgba(0,0,0,.85);}
   .hero-details{margin-bottom:3rem;}
   .hero-date{font-size:2rem;font-weight:800;color:var(--secondary-color);margin-bottom:.4rem;}
   .hero-location{font-size:1.3rem;font-weight:600;color:#f5f5f5;margin-bottom:.4rem;}
   .hero-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}
   
   /* Buttons */
   .btn{
     display:inline-block;
     padding:1rem 2rem;
     border-radius:50px;
     text-decoration:none;
     font-weight:600;
     transition:.3s;
     border:none;
     cursor:pointer;
     font-size:1.1rem;
   }
   .btn-primary{
     background:var(--secondary-color);
     color:var(--white);
   }
   .btn-primary:hover{
     background:#B8941F;
     transform:translateY(-2px);
   }
   .btn-secondary{
     background:transparent;
     color:var(--white);
     border:2px solid var(--white);
   }
   .btn-secondary:hover{
     background:var(--white);
     color:var(--text-dark);
   }
   
   /* Sections */
   section{
     padding:100px 0;
   }
   
   .section-header{
     text-align:center;
     margin-bottom:4rem;
   }
   .section-subtitle{
     font-size:1.2rem;
     color:var(--text-light);
     max-width:600px;
     margin:0 auto;
   }
   
   /* Festival Intro */
   .festival-intro{
     background:var(--background-light);
   }
   .intro-grid{
     display:grid;
     grid-template-columns:1fr 1fr;
     gap:4rem;
     align-items:center;
   }
   .intro-text h3{
     color:var(--primary-color);
     margin-bottom:1.5rem;
   }
   .highlights{
     margin-top:2rem;
   }
   .highlight-item{
     margin-bottom:1.5rem;
   }
   .highlight-item h4{
     color:var(--accent-color);
     margin-bottom:.5rem;
   }
   .intro-image img{
     width:100%;
     border-radius:15px;
     box-shadow:0 10px 30px rgba(0,0,0,.1);
   }
   
   /* Zendo Highlight */
   .zendo-highlight{
     background:var(--white);
     text-align:center;
   }
   .zendo-text{
     margin-bottom:3rem;
   }
   .zendo-image img{
     width:100%;
     max-width:800px;
     border-radius:15px;
     box-shadow:0 15px 40px rgba(0,0,0,.15);
   }
   
   /* Program */
   .program{
     background:var(--background-light);
   }
   .program-days{
     margin-bottom:4rem;
   }
   .program-day{
     background:var(--white);
     border-radius:15px;
     padding:2rem;
     margin-bottom:2rem;
     box-shadow:0 5px 20px rgba(0,0,0,.08);
   }
   .day-header{
     display:flex;
     align-items:center;
     margin-bottom:1.5rem;
   }
   .day-number{
     font-size:3rem;
     font-weight:800;
     color:var(--secondary-color);
     margin-right:1.5rem;
   }
   .day-info h3{
     color:var(--primary-color);
     margin-bottom:.5rem;
   }
   .day-content h4{
     color:var(--accent-color);
     margin-bottom:1rem;
   }
   .activities-grid{
     display:grid;
     grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
     gap:2rem;
   }
   .activity{
     background:var(--white);
     padding:1.5rem;
     border-radius:10px;
     box-shadow:0 5px 15px rgba(0,0,0,.05);
   }
   .activity h4{
     color:var(--primary-color);
   }
   
   /* Facilitators */
   .facilitators{
     background:var(--white);
   }
   .facilitators-grid{
     display:grid;
     grid-template-columns:repeat(auto-fit,minmax(350px,1fr));
     gap:3rem;
     margin-bottom:4rem;
   }
   .facilitator{
     text-align:center;
     background:var(--background-light);
     padding:2rem;
     border-radius:15px;
     box-shadow:0 5px 20px rgba(0,0,0,.08);
   }
   .facilitator-photo{
     width:120px;
     height:120px;
     border-radius:50%;
     object-fit:cover;
     margin-bottom:1.5rem;
     border:4px solid var(--secondary-color);
   }
   .facilitator-info h3{
     color:var(--primary-color);
     margin-bottom:.5rem;
   }
   .facilitator-role{
     color:var(--secondary-color);
     font-weight:600;
     margin-bottom:1rem;
   }
   .special-guests{
     text-align:center;
     padding:2rem;
     background:var(--primary-color);
     color:var(--white);
     border-radius:15px;
   }
   .special-guests h3{
     color:var(--secondary-color);
     margin-bottom:1rem;
   }
   
   /* ========================== MONASTERO =================== */
   .monastery{
     background:var(--background-light);
   }
   /* *** PATCH: Monastero colonna singola e galleria fluida *** */
   .monastery-content{
     display:flex;
     flex-direction:column;
     gap:3rem;
     align-items:center;
   }
   .monastery-text{
     max-width:720px;
     margin-inline:auto;
   }
   .monastery-gallery{
     display:grid;
     grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
     gap:1.5rem;
     width:100%;
     max-width:940px;
   }
   .monastery-gallery img{
     width:100%;
     height:auto;
     border-radius:15px;
     object-fit:cover;
     box-shadow:0 8px 24px rgba(0,0,0,.1);
   }
   /* maestro – disposizione immagine+testo */
   .abbot{
     display:flex;
     gap:1.25rem;
     align-items:center;
     flex-wrap:wrap;
     margin:2.5rem 0;
   }
   .abbot-photo{
     width:120px;
     height:120px;
     border-radius:50%;
     object-fit:cover;
   }
   .abbot-bio{flex:1;}
   /* punti di forza in griglia responsive */
   .monastery-features{
     display:grid;
     grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
     gap:1rem;
     margin-top:2rem;
   }
   .feature h4{color:var(--primary-color);}
   .feature p{font-size:.95rem;}
   
   /* RIMUOVI vecchie regole non più usate
   .monastery-content{grid-template-columns:1fr 1fr;}
   .monastery-image img{...}
   */
   
   /* Scroll Indicator */
   .scroll-indicator{
     position:absolute;
     bottom:2rem;
     left:50%;
     transform:translateX(-50%);
     animation:bounce 2s infinite;
   }
   .scroll-arrow{
     width:30px;
     height:30px;
     border:2px solid var(--white);
     border-top:none;
     border-left:none;
     transform:rotate(45deg);
   }
   @keyframes bounce{
     0%,20%,50%,80%,100%{transform:translateX(-50%) translateY(0);}
     40%{transform:translateX(-50%) translateY(-10px);}
     60%{transform:translateX(-50%) translateY(-5px);}
   }
   
   /* =========================================================
      Responsive – Tablet & Mobile
      ========================================================= */
   @media(max-width:768px){
     .navbar{
       position:static;
       background:rgba(255,255,255,1);
     }
     .nav-container{
       padding:15px;
       height:auto;
       min-height:60px;
       flex-wrap:wrap;
     }
     .nav-logo{
       max-width:70%;
     }
     .nav-logo h2{
       font-size:1.1rem;
       line-height:1.3;
     }
     .hamburger{
       display:flex;
       z-index:1001;
       padding:10px;
     }
     .nav-menu{
       position:fixed;
       left:-100%;
       top:0;
       flex-direction:column;
       background:var(--white);
       width:100%;
       height:100vh;
       text-align:center;
       transition:.3s;
       padding:2rem 0;
       overflow-y:auto;
       box-shadow:0 10px 27px rgba(0,0,0,.1);
     }
     .nav-menu.active{
       left:0;
     }
     .nav-menu li{
       margin:1rem 0;
     }
     .nav-link{
       font-size:1.2rem;
       padding:1rem;
       display:block;
     }
     .hero{
       padding-top:0;
       height:auto;
       min-height:100vh;
     }
     html{
       scroll-padding-top:0;
     }
     h1{font-size:2.5rem;}
     h2{font-size:2rem;}
     h3{font-size:1.6rem;}
     .hero-title{
       font-size:2.8rem;
       line-height:1.15;
     }
     .hero-subtitle{
       font-size:1.2rem;
     }
     .hero-date{
       font-size:1.6rem;
     }
     .hero-location,.hero-tagline{
       font-size:1.1rem;
     }
     section{
       padding:60px 0;
     }
     .intro-grid{
       grid-template-columns:1fr;
       gap:2rem;
     }
     .facilitators-grid{
       grid-template-columns:1fr;
       gap:2rem;
     }
     .activities-grid{
       grid-template-columns:1fr;
     }
     .monastery-content{
       flex-direction:column;
       gap:2rem;
     }
     .monastery-gallery{
       grid-template-columns:1fr;
       gap:1rem;
     }
     .hero-buttons{
       flex-direction:column;
       align-items:center;
     }
     .btn{
       width:100%;
       max-width:300px;
       text-align:center;
     }
     .day-header{
       flex-direction:column;
       text-align:center;
     }
     .day-number{
       margin-right:0;
       margin-bottom:1rem;
     }
   }
   
   /* Small Mobile */
   @media(max-width:480px){
     .container{
       padding:0 15px;
     }
     .nav-container{
       padding:10px 15px;
     }
     .nav-logo h2{
       font-size:1rem;
     }
     .hero-title{
       font-size:2.2rem;
     }
     .hero-date{
       font-size:1.4rem;
     }
     .facilitator{
       padding:1.5rem;
     }
     .program-day{
       padding:1.5rem;
     }
   }
   
   /* XL desktop hero */
   @media(min-width:1024px){
     .hero-title{
       font-size:5.5rem;
       letter-spacing:.8px;
       text-shadow:0 4px 12px rgba(0,0,0,.85);
     }
     .hero-tagline{
       font-size:2rem;
       font-weight:800;
     }
   }
   
   /* ----------  miglior impaginazione biglietti & iscrizione  ---------- */
   .tickets > .container,
   .booking > .container {
     max-width: 940px;
     margin-inline: auto;
   }
   
   .tickets-grid {
     display: grid;
     gap: 2rem;
   }
   
   .ticket-card,
   .booking-box {
     background: #ffffff;
     border-radius: 8px;
     padding: 1.8rem 2rem;
     box-shadow: 0 4px 12px rgba(0,0,0,.06);
   }
   
   .ticket-card.featured {border: 2px solid #0066ff;}
   
   .ticket-badge {
     display: inline-block;
     background: #0066ff;
     color: #fff;
     font-size: .75rem;
     padding: .15rem .5rem;
     border-radius: 4px;
     margin-bottom: .5rem;
     text-transform: uppercase;
     letter-spacing: .4px;
   }
   
   /* evidenzia la card early-bird */
.ticket-card.speciale{
  border:4px solid #ff9800;
  background:linear-gradient(135deg,#fff7eb 0%, #ffedd5 100%);
  box-shadow:0 0 24px rgba(255,152,0,.4);
  transform:scale(1.05);
  order:-1;                /* così appare per prima su mobile */
}

/* badge più visibile */
.ticket-card.speciale .ticket-badge{
  background:#ff9800;
  color:#fff;
}

/* frase di scadenza in grande evidenza */
.ticket-card .deadline{
  margin:.75rem 0 0;
  padding:.25rem .5rem;
  font-size:1.25rem;
  font-weight:700;
  text-align:center;
  color:#d84315;
  background:#fffbe6;
  border-radius:4px;
}

/* lieve animazione di richiamo (facoltativa) */
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(255,152,0,.4);}
  70%{box-shadow:0 0 0 14px rgba(255,152,0,0);}
  100%{box-shadow:0 0 0 0 rgba(255,152,0,0);}
}
.ticket-card.speciale{animation:pulse 2.5s ease-in-out infinite;}


   .price {font-weight: 600; margin: .25rem 0 1rem;}
   
   .practical-info {margin-top: 3rem;}
   
   .info-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit,minmax(220px,1fr));
     gap: 1.5rem;
   }
   
   .info-item h4 {margin-bottom: .25rem;}
   
   .bank-data {margin: 1rem 0 2rem 1.25rem;}
   
   .qr-wrapper {text-align:center;}
   
   .qr-wrapper img {
     max-width: 280px;
     width: 100%;
     border-radius: 6px;
     box-shadow: 0 4px 12px rgba(0,0,0,.05);
   }
   
   @media (min-width: 768px) {
     .tickets-grid {
       grid-template-columns: repeat(3,1fr);
     }
   }
   
   /* ----------  layout sezione iscrizione  ---------- */
   #iscrizione {
     background: var(--background-light);
   }
   
   #iscrizione > .container {
     max-width: 940px;
     margin-inline: auto;
   }
   
   .booking-box {
     max-width: 720px;
     margin: 0 auto;
     background: #ffffff;
     border-radius: 8px;
     padding: 2.2rem 2.5rem;
     box-shadow: 0 4px 18px rgba(0,0,0,.06);
   }
   
   .booking-box h3 {
     margin-top: 2rem;
     color: var(--primary-color);
   }
   
   .booking-box p,
   .booking-box li {
     font-size: 1rem;
     line-height: 1.55;
     margin-bottom: 1rem;
   }
   
   .bank-data {
     list-style: none;
     padding-left: 0;
     margin: 0 0 2rem 0;
   }
   
   .bank-data li {margin-bottom: .35rem;}
   
   .qr-wrapper {
     margin-top: 1.5rem;
     text-align: center;
   }
   
   @media (min-width: 768px) {
     .booking-box {padding: 2.5rem 3rem;}
   }
   
   /* ----------  footer  ---------- */
   .footer {
     background: var(--background-light);
     padding: 70px 0 40px;
     font-size: 0.95rem;
     color: var(--text-dark);
   }
   
   .footer-content {
     max-width: 940px;
     margin-inline: auto;
     display: grid;
     gap: 3rem;
     grid-template-columns: 1fr 1fr;
   }
   
   .footer-main h3 {
     font-size: 1.6rem;
     color: var(--primary-color);
     margin-bottom: .5rem;
   }
   
   .footer-social {
     margin-top: 1rem;
     display: flex;
     flex-wrap: wrap;
     gap: 1rem 1.5rem;
   }
   
   .footer-social a {
     text-decoration: none;
     font-weight: 600;
     color: var(--secondary-color);
   }
   
   .footer-links {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
     gap: 1.5rem;
   }
   
   .footer-section h4 {
     font-size: 1.05rem;
     margin-bottom: .6rem;
     color: var(--primary-color);
   }
   
   .footer-section ul {
     list-style: none;
     padding: 0;
     margin: 0;
   }
   
   .footer-section li {
     margin-bottom: .4rem;
   }
   
   .footer-section a {
     text-decoration: none;
     color: var(--text-dark);
     transition: color .25s;
   }
   
   .footer-section a:hover {
     color: var(--secondary-color);
   }
   
   .footer-bottom {
     border-top: 1px solid var(--shadow);
     margin-top: 50px;
     padding-top: 20px;
     text-align: center;
     font-size: .85rem;
     color: var(--text-light);
   }
   
   /* mobile: tutto in colonna */
   @media (max-width: 768px) {
     .footer-content {
       grid-template-columns: 1fr;
       text-align: center;
     }
     .footer-links {
       grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
       justify-items: center;
     }
     .footer-social {
       justify-content: center;
     }
   }
   