/*
  Ritrovo Re' Giò - Stili principali
  File estratto dall'HTML originale senza modificare struttura, classi o contenuti.
*/

:root {
  --blue: #1E5FA8;
  --blue-dark: #153F73;
  --blue-deeper: #0D2545;
  --blue-light: #EBF2FC;
  --gold: #C4963A;
  --gold-light: #F0D898;
  --gold-pale: #FAF3E0;
  --gold-dark: #8B6820;
  --white: #FFFFFF;
  --cream: #FAF7F2;
  --dark: #1C1C2E;
  --text: #333344;
  --text-muted: #6B7280;
  --border: rgba(30,95,168,0.12);
  --shadow: 0 4px 32px rgba(21,63,115,0.10);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Nunito Sans',sans-serif;color:var(--text);background:var(--white);line-height:1.6;}

/* ── LANG SWITCHER ── */
.lang-wrap{position:relative;}
.lang-btn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.85);font-size:12px;font-weight:700;padding:4px 12px;border-radius:3px;cursor:pointer;letter-spacing:.3px;font-family:inherit;transition:background .2s;}
.lang-btn:hover{background:rgba(255,255,255,.22);}
.lang-drop{display:none;position:absolute;top:calc(100% + 6px);right:0;background:#fff;border-radius:6px;box-shadow:0 8px 32px rgba(21,63,115,.18);min-width:140px;z-index:9999;overflow:hidden;}
.lang-wrap.open .lang-drop{display:block;}
.lang-drop a{display:flex;align-items:center;gap:8px;padding:9px 14px;font-size:13px;color:#333;text-decoration:none;transition:background .15s;border-bottom:1px solid #f0f0f0;}
.lang-drop a:last-child{border-bottom:none;}
.lang-drop a:hover{background:#EBF2FC;color:#1E5FA8;}

/* ───── TOP BAR ───── */
.topbar{background:var(--blue-deeper);color:rgba(255,255,255,0.8);font-size:12.5px;padding:7px 0;}
.topbar .wrap{max-width:1280px;margin:0 auto;padding:0 32px;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.topbar a{color:inherit;text-decoration:none;transition:color .2s;}
.topbar a:hover{color:var(--gold-light);}
.topbar .l{display:flex;gap:20px;align-items:center;}
.topbar .r{display:flex;gap:16px;align-items:center;}
.tb-sep{color:rgba(255,255,255,0.2);}

/* ───── HEADER ───── */
header{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:200;box-shadow:0 2px 24px rgba(21,63,115,0.07);}
.hdr{max-width:1280px;margin:0 auto;padding:0 32px;height:74px;display:flex;align-items:center;justify-content:space-between;}
.logo{display:flex;align-items:center;gap:14px;text-decoration:none;cursor:pointer;}
.logo-text .brand{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:var(--blue);line-height:1.1;letter-spacing:-.3px;}
.logo-text .brand em{color:var(--gold);font-style:normal;}
.logo-text .sub{font-size:9.5px;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);font-weight:400;}
nav{display:flex;gap:28px;align-items:center;}
nav a{font-size:13.5px;font-weight:600;color:var(--text);text-decoration:none;letter-spacing:.2px;padding-bottom:3px;border-bottom:2px solid transparent;transition:color .2s,border-color .2s;cursor:pointer;}
nav a:hover,nav a.act{color:var(--blue);border-color:var(--gold);}
.btn-prenota{background:var(--gold);color:#fff!important;padding:10px 22px;border-radius:4px;font-size:13.5px;font-weight:700;letter-spacing:.3px;border-bottom:none!important;display:inline-flex;align-items:center;gap:7px;transition:background .2s,transform .15s;}
.btn-prenota:hover{background:var(--gold-dark);transform:translateY(-1px);}

/* ───── PAGE SECTIONS ───── */
.page{display:none;}
.page.active{display:block;}

/* ───── HERO ───── */
.hero{position:relative;min-height:92vh;overflow:hidden;display:flex;align-items:center;padding:80px 0;}
.hero-bg{position:absolute;inset:0;background:linear-gradient(110deg,#0D2545 0%,#153F73 55%,rgba(196,150,58,.55) 100%);}
.hero-deco{position:absolute;inset:0;pointer-events:none;}
.hero-scroll{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:7px;color:rgba(255,255,255,.5);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;}
.scroll-ln{width:1px;height:38px;background:rgba(255,255,255,.35);animation:sln 2s ease-in-out infinite;}
@keyframes sln{0%,100%{transform:scaleY(1);opacity:.35;}50%{transform:scaleY(.5);opacity:.8;}}
.hero-chip{display:inline-flex;align-items:center;gap:8px;background:rgba(196,150,58,.2);border:1px solid rgba(196,150,58,.5);color:var(--gold-light);font-size:11px;letter-spacing:2.5px;text-transform:uppercase;padding:5px 16px;border-radius:2px;margin-bottom:28px;font-weight:700;}
.hero-h1{font-family:'Playfair Display',serif;font-size:clamp(44px,5.5vw,76px);font-weight:700;line-height:1.08;margin-bottom:22px;}
.hero-h1 em{color:var(--gold-light);font-style:normal;}
.hero-sub{font-size:17px;font-weight:300;opacity:.82;line-height:1.75;margin-bottom:42px;max-width:480px;}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;}
.btn-g{background:var(--gold);color:#fff;padding:14px 30px;border-radius:4px;font-size:14.5px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:8px;letter-spacing:.3px;cursor:pointer;border:none;}
.btn-w{background:transparent;color:#fff;padding:14px 30px;border-radius:4px;font-size:14.5px;font-weight:600;text-decoration:none;border:2px solid rgba(255,255,255,.45);display:inline-flex;align-items:center;gap:8px;letter-spacing:.3px;cursor:pointer;}

/* ───── STRIP ───── */
.strip{background:var(--gold);padding:15px 0;}
.strip-inner{max-width:1280px;margin:0 auto;padding:0 32px;display:flex;justify-content:space-around;align-items:center;flex-wrap:wrap;gap:12px;}
.strip-item{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;color:#fff;letter-spacing:.2px;}

/* ───── SECTION BASE ───── */
.sec{padding:96px 0;}
.sec-alt{background:var(--cream);}
.wrap{max-width:1280px;margin:0 auto;padding:0 32px;}
.lbl{font-size:10.5px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:10px;}
.title{font-family:'Playfair Display',serif;font-size:clamp(28px,3.5vw,46px);font-weight:700;color:var(--blue-dark);line-height:1.15;margin-bottom:14px;}
.desc{font-size:15.5px;color:var(--text-muted);line-height:1.8;max-width:580px;}
.divid{width:56px;height:3px;background:var(--gold);border-radius:2px;margin:14px 0 32px;}

/* ───── ABOUT ───── */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;margin-top:16px;}
.about-photo{width:100%;aspect-ratio:4/5;border-radius:10px;overflow:hidden;position:relative;}
.about-photo img{width:100%;height:100%;object-fit:cover;}
.about-badge{position:absolute;bottom:-28px;right:-28px;background:var(--gold);color:#fff;padding:22px 26px;border-radius:10px;text-align:center;box-shadow:0 8px 40px rgba(196,150,58,.35);}
.about-badge .n{font-family:'Playfair Display',serif;font-size:34px;font-weight:700;display:block;line-height:1;}
.about-badge .l{font-size:10px;letter-spacing:1.5px;opacity:.9;font-weight:700;text-transform:uppercase;}
.feats{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:28px;}
.feat{display:flex;gap:12px;}
.feat-icon{width:42px;height:42px;background:var(--blue-light);border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px;}
.feat h4{font-size:13.5px;font-weight:700;color:var(--blue-dark);margin-bottom:3px;}
.feat p{font-size:12.5px;color:var(--text-muted);line-height:1.5;}

/* ───── SERVICES ───── */
.srv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:48px;}
.srv-card{background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--border);transition:transform .25s,box-shadow .25s;cursor:pointer;}
.srv-card:hover{transform:translateY(-6px);box-shadow:0 20px 56px rgba(21,63,115,.14);}
.srv-img{height:170px;overflow:hidden;position:relative;}
.srv-img img{width:100%;height:100%;object-fit:cover;transition:transform .3s;}
.srv-card:hover .srv-img img{transform:scale(1.05);}
.srv-body{padding:20px;}
.srv-body h3{font-family:'Playfair Display',serif;font-size:17px;color:var(--blue-dark);margin-bottom:7px;}
.srv-body p{font-size:12.5px;color:var(--text-muted);line-height:1.65;}
.srv-tag{display:inline-block;background:var(--blue-light);color:var(--blue);font-size:10.5px;letter-spacing:1px;padding:3px 11px;border-radius:20px;margin-top:12px;font-weight:700;text-transform:uppercase;}

/* ───── GALLERY ───── */
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:280px 280px;gap:12px;margin-top:48px;}
.gal-item{border-radius:10px;overflow:hidden;position:relative;cursor:pointer;}
.gal-item:first-child{grid-row:span 2;border-radius:12px;}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s;display:block;}
.gal-item:hover img{transform:scale(1.06);}
.gal-overlay{position:absolute;inset:0;background:rgba(21,63,115,0);transition:background .3s;display:flex;align-items:center;justify-content:center;}
.gal-item:hover .gal-overlay{background:rgba(21,63,115,.52);}
.gal-lbl{color:#fff;font-size:14px;font-weight:700;opacity:0;transition:opacity .3s;letter-spacing:.5px;}
.gal-item:hover .gal-lbl{opacity:1;}

/* ── LIGHTBOX ── */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:9000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;}
.lightbox.open{opacity:1;pointer-events:all;}
.lightbox img{max-width:90vw;max-height:85vh;border-radius:8px;box-shadow:0 20px 80px rgba(0,0,0,.5);}
.lightbox-close{position:absolute;top:24px;right:32px;color:#fff;font-size:32px;cursor:pointer;line-height:1;}

/* ── FULL GALLERY PAGE ── */
.gal-full-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:48px;}
.gal-full-item{border-radius:10px;overflow:hidden;position:relative;cursor:pointer;aspect-ratio:4/3;}
.gal-full-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s;display:block;}
.gal-full-item:hover img{transform:scale(1.06);}
.gal-full-item .gal-overlay{position:absolute;inset:0;background:rgba(21,63,115,0);transition:background .3s;display:flex;align-items:flex-end;padding:16px;}
.gal-full-item:hover .gal-overlay{background:rgba(21,63,115,.55);}
.gal-full-item .gal-lbl{color:#fff;font-size:13px;font-weight:700;opacity:0;transition:opacity .3s;letter-spacing:.5px;}
.gal-full-item:hover .gal-lbl{opacity:1;}

/* ───── MENU DARK ───── */
.menu-sec{background:var(--blue-deeper);padding:96px 0;}
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;max-width:1280px;margin:0 auto;padding:0 32px;}
.menu-cats{display:flex;flex-direction:column;gap:14px;margin-top:28px;}
.menu-cat{display:flex;align-items:center;gap:16px;padding:16px 18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);border-left:3px solid var(--gold);border-radius:8px;cursor:pointer;transition:background .2s;}
.menu-cat:hover{background:rgba(255,255,255,.1);}
.menu-cat-ic{font-size:24px;}
.menu-cat h4{font-size:14.5px;font-weight:700;color:#fff;}
.menu-cat p{font-size:12px;color:rgba(255,255,255,.5);margin-top:2px;}
.menu-feature{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:36px;}
.menu-feature-lbl{font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold-light);margin-bottom:14px;font-weight:700;}
.menu-feature h3{font-family:'Playfair Display',serif;font-size:24px;color:#fff;margin-bottom:8px;}
.menu-feature p{font-size:13.5px;color:rgba(255,255,255,.6);line-height:1.7;margin-bottom:24px;}
.menu-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:14px;}
.menu-row:last-child{border-bottom:none;}
.menu-row .mn{color:rgba(255,255,255,.82);}
.menu-row .pr{color:var(--gold-light);font-weight:700;}

/* ── MENU FULL PAGE ── */
.menu-section-title{font-family:'Playfair Display',serif;font-size:22px;color:var(--blue-dark);font-weight:700;margin:0 0 20px;padding-bottom:12px;border-bottom:2px solid var(--gold-pale);display:flex;align-items:center;gap:10px;}
.menu-card{background:#fff;border-radius:12px;padding:28px;border:1px solid var(--border);margin-bottom:24px;}
.menu-item-row{display:flex;justify-content:space-between;align-items:flex-start;padding:10px 0;border-bottom:1px solid #f5f5f8;}
.menu-item-row:last-child{border-bottom:none;}
.menu-item-name{font-size:14px;font-weight:700;color:var(--text);}
.menu-item-desc{font-size:12px;color:var(--text-muted);margin-top:3px;}
.menu-item-price{font-size:15px;font-weight:700;color:var(--gold);white-space:nowrap;margin-left:16px;}

/* ── FOOD PHOTO SHOWCASE ── */
.food-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:32px;}
.food-item{border-radius:12px;overflow:hidden;position:relative;aspect-ratio:4/3;}
.food-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.food-item:hover img{transform:scale(1.06);}
.food-item-cap{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(13,37,69,.7));padding:16px 14px 12px;color:#fff;font-size:13px;font-weight:700;}

/* ───── TESTIMONIALS ───── */
.test-sec{background:var(--blue-dark);padding:80px 0;}
.test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px;}
.test-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:26px;}
.stars{color:var(--gold-light);font-size:13px;margin-bottom:12px;letter-spacing:2px;}
.test-card blockquote{font-size:13.5px;line-height:1.75;color:rgba(255,255,255,.8);font-style:italic;margin-bottom:20px;}
.test-author{display:flex;align-items:center;gap:11px;}
.ava{width:38px;height:38px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#fff;flex-shrink:0;}
.test-author h5{font-size:13.5px;font-weight:700;color:#fff;}
.test-author span{font-size:11.5px;color:rgba(255,255,255,.45);}

/* ───── ORARI ───── */
.orari-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px;}
.orari-card{background:#fff;border-radius:12px;padding:28px;border:1px solid var(--border);}
.orari-card h3{font-family:'Playfair Display',serif;font-size:18px;color:var(--blue-dark);margin-bottom:18px;text-align:center;padding-bottom:14px;border-bottom:2px solid var(--gold-pale);}
.orari-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f0f0f5;font-size:13px;}
.orari-row:last-child{border:none;}
.orari-row .day{color:var(--text-muted);}
.orari-row .time{font-weight:700;color:var(--blue-dark);}
.closed{color:#e24b4a!important;}

/* ───── CHI SIAMO PAGE ───── */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:48px;}
.team-card{background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--border);text-align:center;padding-bottom:24px;}
.team-photo{height:200px;overflow:hidden;}
.team-photo img{width:100%;height:100%;object-fit:cover;}
.team-card h3{font-family:'Playfair Display',serif;font-size:16px;color:var(--blue-dark);margin:16px 0 4px;padding:0 16px;}
.team-card p{font-size:12.5px;color:var(--text-muted);padding:0 16px;}
.values-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:48px;}
.value-card{background:#fff;border-radius:12px;padding:28px;border:1px solid var(--border);display:flex;gap:18px;}
.value-icon{width:52px;height:52px;background:var(--blue-light);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;}
.value-card h3{font-size:16px;font-weight:700;color:var(--blue-dark);margin-bottom:6px;}
.value-card p{font-size:13px;color:var(--text-muted);line-height:1.65;}
.storia-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-top:48px;}
.storia-photo{border-radius:12px;overflow:hidden;box-shadow:var(--shadow);}
.storia-photo img{width:100%;height:420px;object-fit:cover;display:block;}
.timeline{display:flex;flex-direction:column;gap:24px;}
.tl-item{display:flex;gap:20px;}
.tl-dot{width:12px;height:12px;background:var(--gold);border-radius:50%;flex-shrink:0;margin-top:6px;position:relative;}
.tl-dot::before{content:'';position:absolute;top:12px;left:5px;width:2px;height:100%;background:var(--border);}
.tl-year{font-size:11px;font-weight:700;color:var(--gold);letter-spacing:1px;text-transform:uppercase;margin-bottom:4px;}
.tl-item h4{font-size:15px;font-weight:700;color:var(--blue-dark);margin-bottom:4px;}
.tl-item p{font-size:13px;color:var(--text-muted);line-height:1.6;}

/* ───── LOCATION ───── */
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-top:48px;}
.map-container{border-radius:12px;overflow:hidden;box-shadow:var(--shadow);}
.map-container iframe{width:100%;height:420px;border:none;display:block;}
.info-list{display:flex;flex-direction:column;gap:18px;}
.info-item{display:flex;gap:14px;align-items:flex-start;}
.info-ic{width:44px;height:44px;background:var(--blue-light);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0;}
.info-item h4{font-size:12px;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.8px;margin-bottom:2px;}
.info-item p{font-size:14.5px;color:var(--blue-dark);font-weight:700;line-height:1.5;}
.loc-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px;}
.btn-wa{background:#25D366;color:#fff;padding:12px 22px;border-radius:4px;font-weight:700;font-size:14px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;}

/* ── CONTACT FORM ── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:48px;}
.form-card{background:#fff;border-radius:12px;padding:36px;border:1px solid var(--border);}
.form-card h3{font-family:'Playfair Display',serif;font-size:22px;color:var(--blue-dark);margin-bottom:24px;}
.form-group{margin-bottom:18px;}
.form-group label{display:block;font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px;}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:6px;font-family:inherit;font-size:14px;color:var(--text);outline:none;transition:border-color .2s;background:#fff;}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--blue);}
.form-group textarea{height:120px;resize:vertical;}
.form-submit{background:var(--gold);color:#fff;padding:13px 28px;border-radius:4px;font-size:14.5px;font-weight:700;border:none;cursor:pointer;width:100%;transition:background .2s;letter-spacing:.3px;}
.form-submit:hover{background:var(--gold-dark);}

/* ───── FOOTER ───── */
footer{background:#0B1E3A;padding:72px 0 0;}
.foot-grid{max-width:1280px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;}
.foot-brand .fn{font-family:'Playfair Display',serif;font-size:22px;color:#fff;font-weight:700;}
.foot-brand .fn em{color:var(--gold-light);font-style:normal;}
.foot-brand .ft{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:rgba(255,255,255,.3);margin-top:3px;margin-bottom:14px;}
.foot-brand p{font-size:13.5px;color:rgba(255,255,255,.55);line-height:1.75;}
.socials{display:flex;gap:10px;margin-top:20px;}
.soc{width:36px;height:36px;border-radius:6px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:#fff;text-decoration:none;font-size:15px;transition:background .2s;cursor:pointer;}
.soc:hover{background:var(--gold);}
.foot-col h4{font-size:11px;font-weight:700;color:#fff;letter-spacing:2px;text-transform:uppercase;margin-bottom:18px;}
.foot-links{list-style:none;display:flex;flex-direction:column;gap:9px;}
.foot-links a{color:rgba(255,255,255,.5);text-decoration:none;font-size:13.5px;transition:color .2s;cursor:pointer;}
.foot-links a:hover{color:var(--gold-light);}
.foot-bottom{border-top:1px solid rgba(255,255,255,.07);margin-top:52px;}
.foot-bottom-inner{max-width:1280px;margin:0 auto;padding:18px 32px;display:flex;justify-content:space-between;font-size:11.5px;color:rgba(255,255,255,.3);flex-wrap:wrap;gap:8px;}
.foot-bottom a{color:inherit;text-decoration:none;transition:color .2s;cursor:pointer;}
.foot-bottom a:hover{color:rgba(255,255,255,.6);}

/* ───── WHATSAPP BTN ───── */
.wa-btn{position:fixed;bottom:30px;right:30px;z-index:9999;width:58px;height:58px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(37,211,102,.4),0 0 0 0 rgba(37,211,102,.3);animation:waPulse 2.5s ease-in-out infinite;cursor:pointer;text-decoration:none;}
@keyframes waPulse{0%,100%{box-shadow:0 4px 20px rgba(37,211,102,.4),0 0 0 0 rgba(37,211,102,.3);}50%{box-shadow:0 4px 20px rgba(37,211,102,.4),0 0 0 14px rgba(37,211,102,0);}}
.wa-tooltip{position:absolute;right:70px;top:50%;transform:translateY(-50%);background:#fff;color:#333;font-size:13px;font-weight:700;padding:7px 14px;border-radius:6px;white-space:nowrap;box-shadow:0 4px 16px rgba(0,0,0,.12);opacity:0;transition:opacity .2s;}
.wa-btn:hover .wa-tooltip{opacity:1;}

/* PAGE HERO BANNER */
.page-hero{background:linear-gradient(110deg,var(--blue-deeper) 0%,var(--blue-dark) 70%,rgba(196,150,58,.4) 100%);padding:80px 0 60px;position:relative;overflow:hidden;}
.page-hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='50' cy='50' r='45' fill='none' stroke='rgba(196,150,58,0.06)' stroke-width='1'/%3E%3C/svg%3E") center/300px;}
.page-hero .wrap{position:relative;z-index:1;}
.page-hero .hero-chip{display:inline-flex;align-items:center;gap:8px;background:rgba(196,150,58,.2);border:1px solid rgba(196,150,58,.5);color:var(--gold-light);font-size:11px;letter-spacing:2.5px;text-transform:uppercase;padding:5px 16px;border-radius:2px;margin-bottom:18px;font-weight:700;}
.page-hero h1{font-family:'Playfair Display',serif;font-size:clamp(36px,4.5vw,60px);font-weight:700;color:#fff;line-height:1.1;margin-bottom:14px;}
.page-hero h1 em{color:var(--gold-light);font-style:normal;}
.page-hero p{font-size:16px;color:rgba(255,255,255,.75);max-width:520px;line-height:1.75;}
.breadcrumb{display:flex;gap:8px;align-items:center;margin-top:24px;font-size:12px;color:rgba(255,255,255,.4);}
.breadcrumb a{color:rgba(255,255,255,.4);text-decoration:none;cursor:pointer;}
.breadcrumb a:hover{color:var(--gold-light);}
.breadcrumb span{color:rgba(255,255,255,.25);}


/* ── FIX LOGO + GALLERY PAGE ── */
.logo{min-width:150px;}
.site-logo{height:62px;width:auto;max-width:180px;object-fit:contain;display:block;}
.footer-logo{height:58px;width:auto;max-width:190px;object-fit:contain;display:block;margin-bottom:12px;}
.gal-full-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin-top:48px;align-items:stretch;}
.gal-full-item{border-radius:14px;overflow:hidden;position:relative;cursor:pointer;aspect-ratio:4/3;min-height:230px;background:var(--blue-light);border:1px solid var(--border);box-shadow:0 10px 34px rgba(21,63,115,.10);}
.gal-full-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease;}
.gal-full-item:hover img{transform:scale(1.055);}
.gal-full-item .gal-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(13,37,69,.72),rgba(13,37,69,0) 58%);display:flex;align-items:flex-end;padding:18px;opacity:1;transition:background .25s ease;}
.gal-full-item:hover .gal-overlay{background:linear-gradient(to top,rgba(13,37,69,.86),rgba(13,37,69,.10) 62%);}
.gal-full-item .gal-lbl{color:#fff;font-size:13px;font-weight:800;opacity:1;letter-spacing:.2px;text-shadow:0 2px 8px rgba(0,0,0,.35);}
@media (max-width:900px){.hdr{height:auto;min-height:76px;padding:10px 22px;gap:18px}.site-logo{height:56px}.gal-full-grid{grid-template-columns:repeat(2,1fr);gap:14px}.gal-full-item{min-height:190px}}
@media (max-width:640px){.hdr{flex-direction:column;align-items:flex-start}.logo{min-width:0}.site-logo{height:54px}nav{flex-wrap:wrap;gap:14px}.gal-full-grid{grid-template-columns:1fr}.gal-full-item{min-height:220px}.page-hero{padding:58px 0 44px}}



/* ───── GALLERY PAGE ORDERED FIX ───── */
.gallery-page-section{padding:86px 0;background:#fff;}
.gallery-page-section:nth-of-type(even){background:var(--cream);}
.gallery-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:34px;}
.gallery-intro-text{max-width:650px;}
.gallery-intro .desc{margin-top:4px;}
.gallery-kicker{font-size:10.5px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:800;margin-bottom:8px;}
.gallery-title{font-family:'Playfair Display',serif;font-size:clamp(28px,3vw,42px);font-weight:700;color:var(--blue-dark);line-height:1.15;}
.gallery-count{background:var(--gold-pale);color:var(--gold-dark);border:1px solid rgba(196,150,58,.25);border-radius:999px;padding:9px 16px;font-size:12px;font-weight:800;white-space:nowrap;}
.gallery-masonry{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch;}
.gallery-card,.gallery-card.featured,.gallery-card.wide{grid-column:auto;position:relative;overflow:hidden;border-radius:16px;background:var(--blue-light);border:1px solid var(--border);box-shadow:0 12px 34px rgba(21,63,115,.10);cursor:pointer;aspect-ratio:4/3;min-height:unset;}
.gallery-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease;}
.gallery-card:hover img{transform:scale(1.055);}
.gallery-caption{position:absolute;left:0;right:0;bottom:0;padding:44px 18px 16px;background:linear-gradient(to top,rgba(13,37,69,.84),rgba(13,37,69,0));color:#fff;font-size:13px;font-weight:800;text-shadow:0 2px 8px rgba(0,0,0,.35);}
.gallery-note{margin-top:34px;padding:22px 26px;border-radius:16px;background:linear-gradient(110deg,var(--blue-deeper),var(--blue-dark));color:rgba(255,255,255,.76);display:flex;justify-content:space-between;align-items:center;gap:20px;}
.gallery-note strong{display:block;color:#fff;font-family:'Playfair Display',serif;font-size:22px;margin-bottom:2px;}
.gallery-note a{flex-shrink:0;}
@media(max-width:980px){.gallery-intro{align-items:flex-start;flex-direction:column}.gallery-masonry{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-card,.gallery-card.featured,.gallery-card.wide{grid-column:auto;aspect-ratio:4/3}.gallery-note{align-items:flex-start;flex-direction:column}}
@media(max-width:640px){.gallery-page-section{padding:62px 0}.gallery-masonry{grid-template-columns:1fr;gap:14px}.gallery-card,.gallery-card.featured,.gallery-card.wide{grid-column:auto;aspect-ratio:4/3}.gallery-caption{font-size:12px}.gallery-count{display:none}}


/* ─────────────────────────────────────────────
   MOBILE FIX DEFINITIVO
   Mantiene il design desktop invariato e corregge solo tablet/mobile.
   ───────────────────────────────────────────── */
html,body{max-width:100%;overflow-x:hidden;}
img,svg,video,iframe{max-width:100%;}
.menu-toggle{display:none;appearance:none;border:1px solid var(--border);background:#fff;width:46px;height:42px;border-radius:10px;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer;box-shadow:0 4px 18px rgba(21,63,115,.08);}
.menu-toggle span{width:22px;height:2px;background:var(--blue-dark);border-radius:99px;display:block;transition:transform .22s ease,opacity .22s ease;}
body.nav-open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
body.nav-open .menu-toggle span:nth-child(2){opacity:0;}
body.nav-open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media(max-width:1100px){
  .topbar .wrap,.hdr,.wrap,.foot-grid,.foot-bottom-inner{padding-left:24px;padding-right:24px;}
  nav{gap:18px;}
  .srv-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .test-grid,.orari-grid,.team-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .about-grid,.menu-grid,.storia-grid,.loc-grid,.form-grid{grid-template-columns:1fr;gap:42px;}
}

@media(max-width:768px){
  body{font-size:15px;}
  .topbar{padding:10px 0;}
  .topbar .wrap{display:block;padding-left:18px;padding-right:18px;}
  .topbar .l{display:grid;grid-template-columns:1fr;gap:8px;align-items:start;}
  .topbar .r{display:none;}
  .tb-sep{display:none;}
  .topbar span{font-size:12.5px;line-height:1.45;}

  header{position:sticky;top:0;z-index:500;}
  .hdr{height:auto;min-height:72px;padding:10px 18px!important;display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:12px!important;}
  .logo{min-width:0!important;max-width:190px;}
  .site-logo{height:56px!important;max-width:170px!important;}
  .menu-toggle{display:flex;}
  nav{grid-column:1 / -1;display:none!important;width:100%;padding:12px 0 4px;gap:0!important;flex-direction:column;align-items:stretch;background:#fff;border-top:1px solid var(--border);}
  body.nav-open nav{display:flex!important;}
  nav a{display:block;width:100%;padding:12px 4px;border-bottom:1px solid rgba(30,95,168,.10);font-size:15px;}
  nav a.act{border-color:rgba(30,95,168,.10);color:var(--blue);}
  nav a.act::before{content:'• ';color:var(--gold);}
  .btn-prenota{justify-content:center;margin-top:10px;padding:13px 18px!important;border-radius:8px!important;border-bottom:none!important;}

  .hero{min-height:auto!important;padding:58px 0 42px!important;overflow:hidden;}
  .hero > div[style*="grid-template-columns"]{display:grid!important;grid-template-columns:1fr!important;gap:34px!important;padding:0 22px!important;max-width:100%!important;}
  .hero-h1{font-size:clamp(42px,13vw,62px)!important;line-height:1.05;}
  .hero-sub{font-size:17px;line-height:1.75;margin-bottom:28px;max-width:100%;}
  .hero-chip{font-size:10px;letter-spacing:2px;line-height:1.6;margin-bottom:22px;}
  .hero-btns{display:grid;grid-template-columns:1fr;gap:12px;}
  .btn-g,.btn-w{width:100%;justify-content:center;text-align:center;}
  .hero img[style*="height:420px"]{height:300px!important;}
  .hero-scroll{display:none;}

  .strip{padding:14px 0;}
  .strip-inner{padding:0 18px;justify-content:flex-start;gap:9px;}
  .strip-item{font-size:12px;background:rgba(255,255,255,.14);padding:7px 10px;border-radius:999px;}

  .sec{padding:64px 0;}
  .wrap{padding-left:22px!important;padding-right:22px!important;}
  .title{font-size:clamp(30px,9vw,42px);}
  .desc{font-size:15px;}
  .about-grid,.menu-grid,.storia-grid,.loc-grid,.form-grid{grid-template-columns:1fr!important;gap:34px!important;}
  .feats,.values-grid,.food-grid{grid-template-columns:1fr!important;}
  .about-photo{aspect-ratio:4/3;}
  .about-badge{right:14px;bottom:14px;}

  .srv-grid{grid-template-columns:1fr!important;gap:18px!important;margin-top:34px;}
  .srv-card{display:grid;grid-template-columns:1fr;background:#fff;}
  .srv-img{height:220px!important;}
  .srv-body{padding:22px!important;}
  .srv-body h3{font-size:24px;line-height:1.2;word-break:normal;overflow-wrap:normal;}
  .srv-body p{font-size:15px;line-height:1.75;}

  .gal-grid,.gal-full-grid,.gallery-masonry{grid-template-columns:1fr!important;grid-template-rows:auto!important;gap:16px!important;}
  .gal-item,.gal-item:first-child,.gal-full-item,.gallery-card,.gallery-card.featured,.gallery-card.wide{grid-column:auto!important;grid-row:auto!important;aspect-ratio:4/3!important;min-height:unset!important;}

  .test-grid,.orari-grid,.team-grid{grid-template-columns:1fr!important;gap:18px!important;}
  .menu-section-title{font-size:21px;}
  .menu-card,.form-card,.orari-card{padding:22px;}
  .menu-item-row{gap:14px;}
  .map-container iframe{height:330px;}

  .page-hero{padding:54px 0 42px!important;}
  .page-hero h1{font-size:clamp(36px,11vw,54px);}
  .breadcrumb{flex-wrap:wrap;}
  .gallery-page-section{padding:58px 0!important;}
  .gallery-intro{display:block;}
  .gallery-count{display:inline-flex;margin-top:18px;}

  footer{padding-top:48px;}
  .foot-grid{grid-template-columns:1fr!important;gap:30px;padding-left:22px!important;padding-right:22px!important;}
  .foot-bottom-inner{display:block;text-align:left;padding-left:22px!important;padding-right:22px!important;line-height:1.8;}
  .wa-btn{width:52px;height:52px;right:18px;bottom:18px;}
  .wa-tooltip{display:none;}
}

@media(max-width:420px){
  .topbar .wrap,.hdr,.wrap,.foot-grid,.foot-bottom-inner{padding-left:18px!important;padding-right:18px!important;}
  .site-logo{height:50px!important;max-width:154px!important;}
  .hero-h1{font-size:41px!important;}
  .hero img[style*="height:420px"]{height:255px!important;}
  .srv-img{height:200px!important;}
  .gallery-card,.gal-full-item,.gal-item{border-radius:13px!important;}
}


/* ─────────────────────────────────────────────
   MOBILE FIX SERVIZI + MENU
   Corregge le pagine servizi.html e menu.html senza alterare il desktop.
   ───────────────────────────────────────────── */
@media(max-width:900px){

  /* SERVIZI: tutte le sezioni 50/50 diventano verticali */
  #page-servizi .wrap > div[style*="display:grid"][style*="grid-template-columns:1fr 1fr"],
  #page-servizi .wrap > div[style*="display: grid"][style*="grid-template-columns:1fr 1fr"]{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:30px!important;
    align-items:stretch!important;
  }

  #page-servizi section.sec{
    padding:58px 0!important;
  }

  #page-servizi section.sec:nth-of-type(even) .wrap > div[style*="display:grid"] > div:first-child:has(img){
    order:-1;
  }

  #page-servizi .title{
    font-size:clamp(31px,9vw,42px)!important;
    line-height:1.12!important;
  }

  #page-servizi .desc{
    font-size:15.5px!important;
    line-height:1.75!important;
    max-width:100%!important;
  }

  #page-servizi .wrap div[style*="display:flex"][style*="flex-wrap:wrap"]{
    gap:9px!important;
  }

  #page-servizi .wrap div[style*="border-radius:20px"][style*="font-size:12px"]{
    font-size:11px!important;
    padding:7px 12px!important;
    line-height:1.25!important;
  }

  #page-servizi img{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    max-height:360px!important;
    object-fit:cover!important;
    border-radius:16px!important;
  }

  /* MENU: listino a 3 colonne -> 1 colonna pulita */
  #page-menu .wrap > div[style*="display:grid"][style*="grid-template-columns:1fr 1fr 1fr"],
  #page-menu .wrap > div[style*="display: grid"][style*="grid-template-columns:1fr 1fr 1fr"]{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:20px!important;
    margin-top:34px!important;
  }

  #page-menu .wrap > div[style*="display:grid"][style*="grid-template-columns:1fr 1fr"],
  #page-menu .wrap > div[style*="display: grid"][style*="grid-template-columns:1fr 1fr"]{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:20px!important;
  }

  #page-menu .menu-card{
    padding:18px!important;
    margin-bottom:22px!important;
    border-radius:14px!important;
    overflow:hidden!important;
  }

  #page-menu .menu-section-title{
    font-size:16px!important;
    line-height:1.25!important;
    padding:11px 14px!important;
    border-radius:10px!important;
    align-items:flex-start!important;
  }

  #page-menu .menu-item-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:12px!important;
    align-items:start!important;
    padding:11px 0!important;
  }

  #page-menu .menu-item-name{
    font-size:14px!important;
    line-height:1.35!important;
    overflow-wrap:anywhere!important;
  }

  #page-menu .menu-item-desc{
    font-size:12.5px!important;
    line-height:1.45!important;
  }

  #page-menu .menu-item-price{
    margin-left:0!important;
    font-size:14px!important;
    line-height:1.35!important;
    white-space:nowrap!important;
    text-align:right!important;
  }

  #page-menu img{
    max-width:100%!important;
    height:auto!important;
    object-fit:cover!important;
  }
}

@media(max-width:480px){
  #page-servizi section.sec{
    padding:48px 0!important;
  }

  #page-servizi img{
    max-height:300px!important;
  }

  #page-menu .menu-card{
    padding:16px!important;
  }

  #page-menu .menu-item-row{
    grid-template-columns:minmax(0,1fr) 58px!important;
    gap:8px!important;
  }

  #page-menu .menu-item-price{
    font-size:13.5px!important;
  }
}


/* ─────────────────────────────────────────────
   MOBILE FIX V3 — SERVIZI + MENU ANTI-TAGLIO
   Da tenere in fondo al CSS. Forza le griglie inline desktop a 1 colonna.
   ───────────────────────────────────────────── */
@media screen and (max-width: 900px){

  html,
  body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  .page,
  section,
  .wrap{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  /* SERVIZI: qualsiasi griglia inline 1fr/1fr viene trasformata in colonna */
  #page-servizi div[style*="display:grid"][style*="grid-template-columns:1fr 1fr"],
  #page-servizi div[style*="display: grid"][style*="grid-template-columns:1fr 1fr"],
  #page-servizi div[style*="grid-template-columns:1fr 1fr"],
  #page-servizi div[style*="grid-template-columns: 1fr 1fr"]{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:28px!important;
    width:100%!important;
    max-width:100%!important;
    align-items:stretch!important;
  }

  #page-servizi div,
  #page-servizi p,
  #page-servizi h1,
  #page-servizi h2,
  #page-servizi h3{
    max-width:100%!important;
    min-width:0!important;
  }

  #page-servizi .sec{
    padding:52px 0!important;
  }

  #page-servizi .title{
    font-size:clamp(30px,9vw,42px)!important;
    line-height:1.12!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }

  #page-servizi .desc{
    max-width:100%!important;
    font-size:15.5px!important;
    line-height:1.75!important;
  }

  #page-servizi img{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    max-height:320px!important;
    object-fit:cover!important;
    border-radius:16px!important;
    margin:0!important;
  }

  #page-servizi div[style*="display:flex"][style*="flex-wrap:wrap"]{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:9px!important;
    width:100%!important;
  }

  #page-servizi div[style*="border-radius:20px"][style*="font-size:12px"]{
    font-size:11px!important;
    padding:7px 12px!important;
    line-height:1.25!important;
    max-width:100%!important;
  }

  /* MENU: qualsiasi griglia inline 2/3 colonne viene trasformata in 1 colonna */
  #page-menu div[style*="display:grid"][style*="grid-template-columns:1fr 1fr 1fr"],
  #page-menu div[style*="display: grid"][style*="grid-template-columns:1fr 1fr 1fr"],
  #page-menu div[style*="grid-template-columns:1fr 1fr 1fr"],
  #page-menu div[style*="grid-template-columns: 1fr 1fr 1fr"],
  #page-menu div[style*="display:grid"][style*="grid-template-columns:1fr 1fr"],
  #page-menu div[style*="display: grid"][style*="grid-template-columns:1fr 1fr"],
  #page-menu div[style*="grid-template-columns:1fr 1fr"],
  #page-menu div[style*="grid-template-columns: 1fr 1fr"]{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:20px!important;
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  #page-menu div,
  #page-menu p,
  #page-menu h1,
  #page-menu h2,
  #page-menu h3{
    max-width:100%!important;
    min-width:0!important;
  }

  #page-menu .sec{
    padding:52px 0!important;
  }

  #page-menu .menu-card{
    width:100%!important;
    max-width:100%!important;
    padding:18px!important;
    margin:0 0 22px!important;
    border-radius:14px!important;
    overflow:hidden!important;
  }

  #page-menu .menu-section-title{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    font-size:16px!important;
    line-height:1.28!important;
    padding:11px 14px!important;
    border-radius:10px!important;
    white-space:normal!important;
  }

  #page-menu .menu-item-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) max-content!important;
    gap:10px!important;
    align-items:start!important;
    width:100%!important;
    max-width:100%!important;
    padding:11px 0!important;
  }

  #page-menu .menu-item-row > div:first-child{
    min-width:0!important;
    max-width:100%!important;
  }

  #page-menu .menu-item-name{
    font-size:14px!important;
    line-height:1.35!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }

  #page-menu .menu-item-desc{
    font-size:12.5px!important;
    line-height:1.45!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }

  #page-menu .menu-item-price{
    margin-left:0!important;
    font-size:14px!important;
    line-height:1.35!important;
    white-space:nowrap!important;
    text-align:right!important;
  }

  #page-menu img{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    object-fit:cover!important;
    border-radius:14px!important;
  }
}

@media screen and (max-width: 480px){
  #page-servizi .wrap,
  #page-menu .wrap{
    padding-left:18px!important;
    padding-right:18px!important;
  }

  #page-servizi img{
    max-height:280px!important;
  }

  #page-menu .menu-card{
    padding:16px!important;
  }

  #page-menu .menu-item-row{
    grid-template-columns:minmax(0,1fr) 56px!important;
    gap:8px!important;
  }

  #page-menu .menu-item-price{
    font-size:13px!important;
  }
}
