.container { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
.section { padding: var(--space) 0; }
.eyebrow { font-family: var(--serif); letter-spacing: 2px; font-size: 13px; color: var(--gold); text-transform: uppercase; }

/* Header sticky */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; transition: background .3s, color .3s; background: rgba(244,240,232,.92); color: var(--brown); backdrop-filter: blur(4px); }
.site-header.scrolled { background: var(--brown); color: var(--cream); }
.site-header a { text-decoration: none; }
.site-header .brand { font-family: var(--serif); font-size: 18px; letter-spacing: 1px; }
.site-header nav a { font-family: var(--serif); font-size: 15px; margin-left: 22px; }
.btn-gold { background: var(--gold); color: #fff; padding: 11px 22px; border-radius: 2px; font-family: var(--sans); font-size: 13px; letter-spacing: 2px; text-decoration: none; }

/* Hero */
.hero { position: relative; height: 100vh; min-height: 560px; background-size: cover; background-position: center; display: flex; align-items: flex-end; color: #fff; }
.hero::after { content:""; position:absolute; inset:0; background: linear-gradient(transparent 45%, rgba(60,50,40,.55)); }
.hero .hero-inner { position: relative; z-index: 2; padding: 0 24px 60px; max-width: var(--maxw); margin: 0 auto; width: 100%; }
.hero h1 { font-size: clamp(34px, 6vw, 60px); margin: 10px 0; text-shadow: 0 2px 14px rgba(0,0,0,.4); }

/* Footer */
.site-footer { background: var(--brown-dark); color: var(--cream); padding: var(--space) 0; }
.site-footer a { color: var(--cream); }

@media (max-width: 720px){ .site-header nav { display:none; } }

/* Slider */
.slider{position:relative;width:100%;aspect-ratio:16/10;overflow:hidden;border-radius:6px;background:var(--sand)}
.slider .slides{position:absolute;inset:0}
.slider .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease}
.slider .slide.is-active{opacity:1}
.slider-btn{position:absolute;top:50%;transform:translateY(-50%);border:none;background:rgba(244,240,232,.85);color:var(--brown);width:44px;height:44px;border-radius:50%;font-size:24px;cursor:pointer;z-index:3;line-height:1}
.slider-btn.prev{left:14px}.slider-btn.next{right:14px}
.slider-btn:hover{background:var(--cream)}
.slider-dots{position:absolute;bottom:14px;left:0;right:0;display:flex;justify-content:center;gap:8px;z-index:3}
.slider-dots .dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.6);cursor:pointer}
.slider-dots .dot.is-active{background:#fff}
@media(max-width:600px){.slider{aspect-ratio:4/3}}

/* Hero slider */
.hero-slides{position:absolute;inset:0;z-index:0}
.hero-slides .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s ease}
.hero-slides .slide.is-active{opacity:1}
.hero::after{z-index:1}

/* Footer richer */
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.footer-grid a{display:block;text-decoration:none;margin:3px 0}
.footer-grid .btn-gold{display:inline-block;color:#fff;margin-top:8px}
.footer-brand{font-family:var(--serif);font-size:22px;margin:0 0 6px}
.footer-h{font-family:var(--serif);font-size:14px;letter-spacing:1px;opacity:.7;margin:0 0 10px;text-transform:uppercase}
.footer-bottom{margin-top:40px;padding-top:20px;border-top:1px solid rgba(244,240,232,.2);font-size:13px;opacity:.7}
@media(max-width:720px){.footer-grid{grid-template-columns:1fr;gap:28px}}


/* Footer v2 (logo + social) */
.footer-top{display:grid;grid-template-columns:250px 1fr;gap:48px;align-items:center}
.footer-logo img{width:230px;border-radius:12px;display:block}
.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.footer-cols a{display:block;margin:3px 0;text-decoration:none}
.footer-cols .social-btn{display:inline-block;border:1px solid rgba(244,240,232,.45);border-radius:2px;padding:8px 16px;margin:4px 6px 4px 0;font-size:13px;letter-spacing:1px}
.footer-cols .social-btn:hover{background:rgba(244,240,232,.12)}
.footer-cols .btn-gold{display:inline-block;color:#fff;margin-top:10px}
@media(max-width:820px){.footer-top{grid-template-columns:1fr;gap:28px}.footer-cols{grid-template-columns:1fr}}

/* Experiences cards */
.exp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:26px;margin-top:36px}
.exp-card{background:#fff;border:1px solid var(--sand);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.exp-img{height:200px;background-size:cover;background-position:center}
.exp-body{padding:20px 22px}
.exp-body h3{margin:0 0 8px;font-size:21px}
.exp-body p{margin:0;font-size:15px;line-height:1.6}
.exp-link{display:inline-block;margin-top:12px;color:var(--gold);text-decoration:none;font-family:var(--sans);font-size:13px;letter-spacing:1px}


/* Recommended (Martina Franca & Valle d'Itria) */
.rec-cat{margin-top:46px}
.rec-cat h2{margin:4px 0 0}
.rec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:18px}
.rec-card{display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid var(--sand);border-radius:8px;text-decoration:none;background:#fff;transition:border-color .2s}
.rec-card:hover{border-color:var(--gold)}
.rec-card img{width:46px;height:46px;object-fit:contain;border-radius:6px;background:var(--cream);flex:0 0 auto}
.rec-noicon{width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:var(--brown);color:#fff;border-radius:6px;font-family:var(--serif);font-size:20px;flex:0 0 auto}
.rec-name{font-family:var(--serif);font-size:16px;color:var(--ink)}


/* Booking calendar */
.cal-head{display:flex;align-items:center;justify-content:space-between;max-width:660px;margin:10px 0}
.cal-head button{border:1px solid var(--sand);background:#fff;width:40px;height:40px;border-radius:50%;font-size:20px;cursor:pointer;color:var(--brown)}
.cal-status{font-size:14px;color:var(--brown)}
.cal-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:30px;max-width:660px}
.cal-title{font-family:var(--serif);font-size:18px;margin-bottom:10px;text-align:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{font-size:11px;text-align:center;color:#9a8f7c;padding-bottom:4px}
.cal-day{aspect-ratio:1;border:none;background:var(--cream);border-radius:6px;cursor:pointer;font-family:var(--sans);font-size:14px;color:var(--ink);padding:0}
.cal-day.is-open:hover{background:var(--sand)}
.cal-day.is-off{background:transparent;color:#c9bfae;text-decoration:line-through;cursor:not-allowed}
.cal-day.is-start,.cal-day.is-end{background:var(--brown);color:#fff}
.cal-day.is-range{background:var(--sand)}
.cal-legend{margin-top:12px;font-size:13px;color:var(--brown)}
.cal-legend .lg{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:middle;margin:0 4px 0 14px}
.cal-legend .lg.open{background:var(--cream);border:1px solid var(--sand)}
.cal-legend .lg.off{background:transparent;border:1px solid #c9bfae}
.booking-summary{font-family:var(--serif);font-size:18px;margin:24px 0 8px;color:var(--brown-dark)}
.booking-form{max-width:660px}
.bf-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.booking-form label{display:block;font-size:13px;color:var(--brown);font-family:var(--sans)}
.booking-form input,.booking-form textarea{width:100%;padding:10px 12px;border:1px solid var(--sand);border-radius:6px;font-family:var(--sans);font-size:15px;margin-top:4px}
.bf-actions{display:flex;gap:14px;align-items:center;margin-top:16px;flex-wrap:wrap}
.btn-gold[disabled]{opacity:.5;cursor:not-allowed}
.wa-btn{background:#25D366;color:#fff;padding:12px 22px;border-radius:2px;text-decoration:none;font-size:13px;letter-spacing:1px}
@media(max-width:560px){.bf-grid{grid-template-columns:1fr}}