@import"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Lato:wght@300;400;700&display=swap";:root{--crema: #f8f5f0;--avorio: #fffdf9;--oro: #c5a47e;--oro-scuro: #a6895b;--marrone: #3e2b1e;--marrone-chiaro: #5c4033;--verde-bosco: #2f4f3f;--rosso-vino: #7b2d2d;--testo: #2c2c2c;--testo-chiaro: #6b6b6b;--ombra-soft: 0 4px 20px rgba(62, 43, 30, .08);--ombra-elevata: 0 12px 40px rgba(62, 43, 30, .15);--raggio: 2px;--raggio-lg: 4px;--transizione: all .4s cubic-bezier(.25, .46, .45, .94)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Lato,sans-serif;background-color:var(--crema);color:var(--testo);line-height:1.7;font-weight:300;letter-spacing:.02em}img{max-width:100%;display:block}a{color:var(--oro-scuro);text-decoration:none;transition:var(--transizione)}a:hover{color:var(--marrone)}button{cursor:pointer;border:none;border-radius:var(--raggio);padding:.85rem 1.8rem;font-size:.9rem;font-family:Lato,sans-serif;letter-spacing:.12em;text-transform:uppercase;transition:var(--transizione);position:relative;overflow:hidden}button:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.25) 0%,transparent 50%);opacity:0;transition:opacity .3s ease}button:hover:after{opacity:1}button:active{transform:translateY(1px)}.container{width:min(92%,1200px);margin-inline:auto}.section{padding:5rem 0}.section-title{font-family:Playfair Display,serif;font-size:clamp(2rem,4vw,2.8rem);font-weight:500;color:var(--marrone);margin-bottom:.6rem;text-align:center;letter-spacing:.04em}.section-subtitle{text-align:center;color:var(--oro-scuro);font-size:.85rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:2.5rem}.divider{width:60px;height:1px;background:var(--oro);margin:0 auto 2.5rem}.header{background:linear-gradient(180deg,#faf8f4fa,#f2eee8fa);border-bottom:1px solid rgba(197,164,126,.35);position:sticky;top:0;z-index:100;transition:var(--transizione)}.header-scrolled{background:linear-gradient(180deg,#f8f5f0fa,#efe9e1fa);box-shadow:0 4px 24px #3e2b1e1a}.header .container{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;position:relative}.logo{font-family:Playfair Display,serif;font-size:1.6rem;font-weight:600;color:var(--marrone);letter-spacing:.08em;display:flex;align-items:center;gap:.4rem}.logo span{color:var(--oro-scuro);font-weight:500;font-style:italic}.nav{display:flex;align-items:center}.nav a{margin-left:2.2rem;color:var(--marrone-chiaro);font-weight:500;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;position:relative;padding:.5rem 0}.nav a:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:linear-gradient(90deg,var(--oro),var(--oro-scuro));transition:width .3s ease;border-radius:2px}.nav a:hover{color:var(--marrone);text-decoration:none}.nav a:hover:after{width:100%}.menu-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;width:44px;height:44px;background:transparent;border:1px solid rgba(166,137,91,.35);border-radius:var(--raggio);padding:0;z-index:110}.menu-toggle span{display:block;width:22px;height:2px;background:var(--marrone-chiaro);margin:3px 0;transition:var(--transizione);border-radius:2px}.menu-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}@media (max-width: 768px){.header .container{padding:1rem 0}.menu-toggle{display:flex}.nav{position:fixed;top:0;right:-100%;width:min(75%,320px);height:100vh;background:linear-gradient(180deg,#f8f5f0fa,#efe9e1fa);flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:5rem 2rem 2rem;box-shadow:-8px 0 30px #3e2b1e26;transition:right .4s cubic-bezier(.25,.46,.45,.94)}.nav-open{right:0}.nav a{margin:0 0 1.5rem;font-size:1rem;padding:.6rem 0;width:100%;border-bottom:1px solid rgba(197,164,126,.2)}.nav a:after{display:none}.nav a:hover{color:var(--marrone);padding-left:.5rem}}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--avorio);overflow:hidden}.hero-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;animation:slowZoom 20s ease-in-out infinite alternate}@keyframes slowZoom{0%{transform:scale(1)}to{transform:scale(1.08)}}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#3e2b1e59,#3e2b1e73,#3e2b1ea6);z-index:1}.hero-content{position:relative;z-index:2;padding:2rem;max-width:900px;animation:fadeInUp 1.2s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.hero-label{font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;color:var(--oro);margin-bottom:1.2rem;display:block}.hero h1{font-family:Playfair Display,serif;font-size:clamp(2.8rem,7vw,5.5rem);font-weight:500;margin-bottom:1rem;letter-spacing:.03em;line-height:1.1}.hero h1 em{font-style:italic;color:var(--oro)}.hero p{font-size:clamp(1.1rem,2vw,1.4rem);margin-bottom:2.2rem;font-weight:300;letter-spacing:.06em}.hero .cta{background-color:transparent;color:var(--avorio);border:1px solid var(--oro);font-weight:400;padding:1rem 2.2rem;letter-spacing:.2em;display:inline-block}.hero .cta:hover{background-color:var(--oro);color:var(--marrone);text-decoration:none}.hero-scroll{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);z-index:2;color:var(--avorio);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;opacity:.8;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(10px)}}.info-grid.elegant{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:1.5rem;align-items:stretch}.info-grid.elegant .info-card{background:var(--avorio);border-radius:var(--raggio-lg);padding:3rem 2rem;box-shadow:var(--ombra-soft);border:1px solid rgba(197,164,126,.15);transition:var(--transizione);position:relative;text-align:center}.info-grid.elegant .info-card:hover{transform:translateY(-8px);box-shadow:var(--ombra-elevata);border-color:#c5a47e59}.info-grid.elegant .info-card.featured{background:var(--marrone);color:var(--avorio);transform:translateY(-12px);box-shadow:var(--ombra-elevata)}.info-grid.elegant .info-card.featured:hover{transform:translateY(-18px)}.info-grid.elegant .info-card.featured h3,.info-grid.elegant .info-card.featured p,.info-grid.elegant .info-card.featured .info-number{color:var(--avorio)}.info-grid.elegant .info-card.featured .info-number{-webkit-text-stroke:1px rgba(248,245,240,.4)}.info-number{font-family:Playfair Display,serif;font-size:2.8rem;font-weight:600;line-height:1;color:transparent;-webkit-text-stroke:1px var(--oro);margin-bottom:1.2rem;display:block}.info-card h3{font-family:Playfair Display,serif;color:var(--marrone);margin-bottom:1rem;font-size:1.4rem;font-weight:500}.info-card p{color:var(--testo-chiaro);font-size:.95rem;line-height:1.7}@media (max-width: 900px){.info-grid.elegant{grid-template-columns:1fr;gap:1.5rem}.info-grid.elegant .info-card.featured{transform:none}.info-grid.elegant .info-card.featured:hover{transform:translateY(-8px)}}.gallery-section{background:var(--marrone);color:var(--avorio)}.gallery-section .section-title{color:var(--avorio)}.gallery-section .section-subtitle{color:var(--oro)}.gallery-section .divider{background:var(--oro)}.gallery-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:240px;gap:.6rem}.gallery-item{border-radius:var(--raggio);overflow:hidden;cursor:pointer;position:relative}.gallery-item:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(62,43,30,.5),transparent 60%);opacity:0;transition:opacity .4s ease}.gallery-item:hover:after{opacity:1}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.gallery-item:hover img{transform:scale(1.08)}.gallery-item:first-child{grid-column:span 3;grid-row:span 2}.gallery-item:nth-child(2){grid-column:span 3}.gallery-item:nth-child(3){grid-column:span 3}.gallery-item:nth-child(4),.gallery-item:nth-child(5),.gallery-item:nth-child(6){grid-column:span 2}.gallery-item:nth-child(7),.gallery-item:nth-child(8),.gallery-item:nth-child(9){grid-column:span 2}.gallery-item:nth-child(10){grid-column:span 3}@media (max-width: 900px){.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px}.gallery-item:first-child,.gallery-item:nth-child(2),.gallery-item:nth-child(3),.gallery-item:nth-child(4),.gallery-item:nth-child(5),.gallery-item:nth-child(6),.gallery-item:nth-child(7),.gallery-item:nth-child(8),.gallery-item:nth-child(9),.gallery-item:nth-child(10){grid-column:span 1;grid-row:span 1}.gallery-item:first-child{grid-row:span 2}}.booking-section{background:linear-gradient(to bottom,var(--crema),var(--avorio))}.booking-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:start}@media (max-width: 900px){.booking-layout{grid-template-columns:1fr}}.booking-form{background:var(--avorio);padding:2.5rem;border-radius:var(--raggio-lg);box-shadow:var(--ombra-soft);border:1px solid rgba(197,164,126,.2)}.booking-form h3{font-family:Playfair Display,serif;color:var(--marrone);font-size:1.5rem;margin-bottom:.5rem}.booking-form .form-intro{color:var(--testo-chiaro);font-size:.9rem;margin-bottom:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 500px){.form-row{grid-template-columns:1fr}}.form-group{margin-bottom:1.2rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:400;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--marrone-chiaro)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.85rem 1rem;border:1px solid #d8d0c4;border-radius:var(--raggio);font-size:1rem;font-family:Lato,sans-serif;background:var(--avorio);color:var(--testo);transition:var(--transizione)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--oro);box-shadow:0 0 0 3px #c5a47e1a}.btn-primary{background-color:var(--marrone);color:var(--avorio);width:100%;border:1px solid var(--marrone)}.btn-primary:hover{background-color:var(--marrone-chiaro);border-color:var(--marrone-chiaro)}.btn-secondary{background-color:var(--oro);color:var(--marrone)}.btn-secondary:hover{background-color:var(--oro-scuro)}.btn-danger{background-color:var(--rosso-vino);color:var(--avorio)}.btn-danger:hover{background-color:#5e2222}.message{padding:1rem 1.2rem;border-radius:var(--raggio);margin-bottom:1.2rem;font-size:.95rem;border-left:3px solid}.message.success{background-color:#2f4f3f14;color:var(--verde-bosco);border-color:var(--verde-bosco)}.message.error{background-color:#7b2d2d14;color:var(--rosso-vino);border-color:var(--rosso-vino)}.message.info{background-color:#c5a47e1f;color:var(--marrone-chiaro);border-color:var(--oro)}.booking-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3e2b1e8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeInOverlay .25s ease}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.booking-modal{background:var(--avorio);border:1px solid rgba(197,164,126,.45);border-radius:var(--raggio-lg);padding:2.5rem 2rem;max-width:420px;width:100%;text-align:center;box-shadow:var(--ombra-elevata);animation:scaleInModal .3s cubic-bezier(.25,.46,.45,.94)}@keyframes scaleInModal{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.booking-modal-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem;font-size:1.6rem;font-weight:700}.booking-modal-icon.success{background:#2f4f3f1a;color:var(--verde-bosco)}.booking-modal-icon.info{background:#c5a47e2e;color:var(--oro-scuro)}.booking-modal h4{font-family:Playfair Display,serif;font-size:1.5rem;color:var(--marrone);margin-bottom:.8rem;letter-spacing:.04em}.booking-modal p{color:var(--testo-chiaro);line-height:1.7;margin-bottom:1.8rem;font-size:1rem}.booking-modal .btn-primary{min-width:140px}@media (max-width: 480px){.booking-modal{padding:2rem 1.4rem}.booking-modal h4{font-size:1.25rem}}.field-error{color:var(--rosso-vino);font-size:.8rem;display:block;margin-top:.3rem}.price-summary{background:#c5a47e14;border:1px solid rgba(197,164,126,.25);border-radius:var(--raggio);padding:1.2rem;margin-bottom:1.2rem}.price-summary-title{font-family:Playfair Display,serif;color:var(--marrone);font-size:1.1rem;margin-bottom:.8rem;text-align:center}.price-summary-row{display:flex;justify-content:space-between;padding:.4rem 0;font-size:.9rem;color:var(--testo-chiaro);border-bottom:1px solid rgba(197,164,126,.15)}.price-summary-total{display:flex;justify-content:space-between;padding-top:.8rem;margin-top:.4rem;font-size:1.1rem;color:var(--marrone);font-weight:600}.calendar-wrapper{background:var(--avorio);padding:1.8rem;border-radius:var(--raggio-lg);box-shadow:var(--ombra-soft);border:1px solid rgba(197,164,126,.2);position:sticky;top:100px}.calendar-wrapper h3{font-family:Playfair Display,serif;color:var(--marrone);font-size:1.4rem;margin-bottom:.2rem;text-align:center}.calendar-nav{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-bottom:1.2rem}.calendar-nav-btn{background:transparent;color:var(--marrone);border:1px solid rgba(197,164,126,.35);padding:.5rem 1rem;font-size:.75rem;letter-spacing:.1em;border-radius:var(--raggio)}.calendar-nav-btn:hover{background:#c5a47e26;border-color:var(--oro)}.custom-calendar{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}@media (max-width: 600px){.custom-calendar{grid-template-columns:1fr}}.custom-calendar-month{text-align:center}.custom-calendar-header{font-family:Playfair Display,serif;font-size:1.1rem;color:var(--marrone);margin-bottom:.8rem;letter-spacing:.05em}.custom-calendar-table{width:100%;border-collapse:separate;border-spacing:4px;font-size:.85rem}.custom-calendar-table th{font-weight:400;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--oro-scuro);padding:.4rem 0}.day-cell{width:32px;height:32px;text-align:center;vertical-align:middle;border-radius:50%;cursor:pointer;transition:var(--transizione);padding:0}.day-cell .day-number{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%}.day-cell:hover:not(.occupied):not(.past):not(.empty-day) .day-number{background-color:#c5a47e40}.day-cell.occupied .day-number{background-color:#7b2d2d1f;color:var(--rosso-vino);text-decoration:line-through;cursor:not-allowed}.day-cell.past .day-number{color:var(--testo-chiaro);opacity:.5;cursor:not-allowed}.day-cell.selected .day-number{background-color:#c5a47e59;color:var(--marrone);font-weight:600}.day-cell.endpoint .day-number{background-color:var(--marrone);color:var(--avorio);font-weight:600;box-shadow:0 0 0 2px #c5a47e66}.empty-day{width:32px;height:32px}.calendar-selection{margin-top:1.4rem;padding:1rem;background:#c5a47e14;border:1px solid rgba(197,164,126,.2);border-radius:var(--raggio);text-align:center}.calendar-selection-dates{font-family:Playfair Display,serif;font-size:1.1rem;color:var(--marrone);margin-bottom:.8rem;min-height:1.4rem}.calendar-selection-actions{display:flex;gap:.6rem;justify-content:center}.calendar-selection-actions button{width:auto;flex:1;font-size:.75rem;padding:.7rem 1rem}.legend{display:flex;gap:1.2rem;margin-top:1.2rem;font-size:.8rem;justify-content:center;color:var(--testo-chiaro);flex-wrap:wrap}.legend span{display:flex;align-items:center;gap:.4rem}.dot{width:10px;height:10px;border-radius:50%}.dot.occupied{background-color:#7b2d2d33;border:1px solid var(--rosso-vino)}.dot.free{background-color:var(--avorio);border:1px solid #d8d0c4}.dot.selected{background-color:#c5a47e80;border:1px solid var(--oro)}.admin-section{min-height:80vh;background:var(--crema)}.admin-login{max-width:420px;margin:6rem auto;background:var(--avorio);padding:2.5rem;border-radius:var(--raggio-lg);box-shadow:var(--ombra-elevata);border:1px solid rgba(197,164,126,.25)}.admin-login h2{text-align:center;margin-bottom:.5rem;font-family:Playfair Display,serif;color:var(--marrone);font-size:1.8rem}.admin-login .subtitle{text-align:center;color:var(--testo-chiaro);font-size:.9rem;margin-bottom:1.5rem}.admin-panel{background:var(--avorio);padding:2rem;border-radius:var(--raggio-lg);box-shadow:var(--ombra-soft);border:1px solid rgba(197,164,126,.2)}.admin-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(197,164,126,.25)}.admin-header h2{font-family:Playfair Display,serif;color:var(--marrone);font-size:1.6rem}.bookings-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:1rem;font-size:.9rem;border-radius:var(--raggio-lg);overflow:hidden;box-shadow:var(--ombra-soft)}.bookings-table th,.bookings-table td{padding:1rem;text-align:left;border-bottom:1px solid rgba(197,164,126,.15)}.bookings-table th{background-color:var(--marrone);color:var(--avorio);font-weight:400;letter-spacing:.08em;text-transform:uppercase;font-size:.75rem}.bookings-table tr:last-child td{border-bottom:none}.bookings-table tr:nth-child(2n){background-color:#f8f5f080}.status-pending{color:var(--oro-scuro);font-weight:600}.status-confirmed{color:var(--verde-bosco);font-weight:600}.status-cancelled{color:var(--testo-chiaro);font-weight:600}.admin-actions{display:flex;gap:.5rem;flex-wrap:wrap}.admin-actions button{padding:.45rem .9rem;font-size:.7rem;letter-spacing:.1em}.footer{background-color:var(--marrone);color:var(--avorio);text-align:center;padding:2.5rem 0}.footer p{font-size:.85rem;letter-spacing:.1em;opacity:.85}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#3e2b1ef5;display:flex;align-items:center;justify-content:center;z-index:200;padding:2rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox img{max-width:90%;max-height:90vh;border-radius:var(--raggio);box-shadow:0 20px 60px #0006}.lightbox-close{position:absolute;top:1.5rem;right:1.5rem;background:#f8f5f026;color:var(--avorio);font-size:1.5rem;padding:.6rem 1rem;border:1px solid rgba(248,245,240,.3);border-radius:50%;width:50px;height:50px;display:flex;align-items:center;justify-content:center}.lightbox-close:hover{background:#f8f5f04d}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3e2b1ed9;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem;animation:fadeIn .3s ease}.modal-content{background:var(--avorio);padding:2rem;border-radius:var(--raggio-lg);max-width:520px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--ombra-elevata);border:1px solid rgba(197,164,126,.3)}.modal-content h3{font-family:Playfair Display,serif;color:var(--marrone);margin-bottom:1.2rem;font-size:1.4rem}@media (max-width: 768px){.section{padding:3rem 0}.section-title{font-size:1.7rem}.hero h1{font-size:2.4rem}.hero p{font-size:1rem}.hero .cta{padding:.85rem 1.6rem;font-size:.75rem}.info-grid.elegant{grid-template-columns:1fr;gap:1.2rem}.info-grid.elegant .info-card{padding:2rem 1.5rem}.info-grid.elegant .info-card.featured{transform:none}.info-grid.elegant .info-card.featured:hover{transform:translateY(-6px)}.info-number{font-size:2.2rem}.booking-form{padding:1.4rem}.form-row{grid-template-columns:1fr;gap:0}.custom-calendar{grid-template-columns:1fr;gap:1.5rem}.calendar-wrapper{position:static;padding:1.4rem}.price-summary{padding:1rem}.admin-panel{padding:1.2rem}.bookings-table{font-size:.75rem}.bookings-table th,.bookings-table td{padding:.5rem}.admin-actions{flex-direction:column;gap:.3rem}.admin-actions button{width:100%}.modal-content{padding:1.5rem;max-height:85vh}.footer p{font-size:.75rem}}@media (max-width: 480px){.container{width:min(94%,1200px)}.logo{font-size:1.25rem}.hero h1{font-size:2rem}.gallery-grid{grid-template-columns:1fr;grid-template-rows:auto}.gallery-item:first-child,.gallery-item:nth-child(2),.gallery-item:nth-child(3),.gallery-item:nth-child(4),.gallery-item:nth-child(5),.gallery-item:nth-child(6){grid-column:span 1;grid-row:span 1;height:200px}.gallery-item:first-child{height:280px}.custom-calendar-table{border-spacing:2px}.day-cell{width:28px;height:28px;font-size:.8rem}.calendar-selection-actions{flex-direction:column}.calendar-selection-actions button{width:100%}}
