
:root{
  --cream:#f5efe3;
  --paper:#fbf7ef;
  --green:#1f3d32;
  --deep:#143328;
  --orange:#d87a35;
  --gold:#b8935e;
  --ink:#222;
  --muted:#625d55;
  --line:rgba(31,61,50,.13);
  --shadow:0 22px 55px rgba(31,61,50,.10);
  --display:"Cinzel",serif;
  --editorial:"Cormorant Garamond",serif;
  --roman:"Forum",serif;
  --body:"DM Sans",system-ui,sans-serif;
  --max:1320px;
  --nav:88px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(180deg,var(--paper),var(--cream));color:var(--ink);font-family:var(--body);overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
body.lock{overflow:hidden}
.container{width:min(var(--max),calc(100% - 2rem));margin-inline:auto}
.nav{
  position:sticky;top:0;z-index:80;height:var(--nav);
  background:rgba(245,239,227,.94);backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(31,61,50,.10);
}
.nav-inner{
  height:100%;display:grid;grid-template-columns:auto 1fr auto auto;gap:28px;
  align-items:center;width:min(var(--max),calc(100% - 2rem));margin:auto;
}
.nav-mark{display:flex;align-items:center;gap:12px;color:var(--green)}
.nav-mark img{width:45px;height:45px;border-radius:13px;box-shadow:0 12px 24px rgba(31,61,50,.14)}
.nav-mark span{font:400 .78rem var(--roman);letter-spacing:.34em;text-transform:uppercase;color:var(--orange)}
.nav-links{display:flex;justify-content:center;gap:28px}
.nav-links a{font:400 .82rem var(--roman);letter-spacing:.24em;text-transform:uppercase;color:var(--green);opacity:.92}
.nav-links a:hover{color:var(--orange)}
.lang{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.45)}
.lang button{border:0;background:transparent;border-radius:999px;padding:.58rem .82rem;font:700 .82rem var(--body);color:var(--green);cursor:pointer}
.lang button.active{background:var(--green);color:#fff}
.btn,.nav-cta{
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;padding:1rem 1.35rem;
  font:700 .82rem var(--body);letter-spacing:.15em;text-transform:uppercase;
  transition:.25s ease;cursor:pointer;
}
.nav-cta,.btn.primary{background:var(--orange);color:#fff;border:1px solid var(--orange);box-shadow:0 16px 34px rgba(216,122,53,.25)}
.btn.primary{background:var(--green);border-color:var(--green);box-shadow:none}
.btn.secondary{background:transparent;color:var(--green);border:1px solid var(--green)}
.burger{display:none;border:0;background:transparent;width:46px;height:46px;position:relative}
.burger span,.burger:before,.burger:after{content:"";position:absolute;left:10px;right:10px;height:2px;background:var(--green)}
.burger:before{top:14px}.burger span{top:22px}.burger:after{top:30px}
.mobile-menu{position:fixed;inset:0;background:rgba(13,24,19,.58);backdrop-filter:blur(7px);z-index:100;display:none}
.mobile-menu.open{display:block}
.mobile-panel{
  position:absolute;inset:0 0 0 auto;width:min(90vw,420px);background:var(--paper);
  padding:26px;overflow:auto;display:flex;flex-direction:column;gap:22px;
  box-shadow:-24px 0 70px rgba(0,0,0,.18)
}
.mobile-top{display:flex;justify-content:space-between;align-items:center}
.close{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--green);font-size:26px}
.mobile-links{display:grid;gap:0}
.mobile-links a{padding:15px 0;border-bottom:1px solid var(--line);font:400 1rem var(--roman);letter-spacing:.26em;text-transform:uppercase;color:var(--green)}
.mobile-card{background:#fff;border:1px solid var(--line);border-radius:28px;padding:20px;box-shadow:var(--shadow)}

.hero{padding:clamp(60px,8vw,110px) 0 70px}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
.kicker{font:400 .78rem var(--roman);letter-spacing:.38em;text-transform:uppercase;color:var(--orange);display:flex;align-items:center;gap:16px;margin-bottom:20px}
.kicker:before{content:"";width:70px;height:1px;background:var(--orange)}
.hero-logo{width:min(560px,100%);margin-bottom:22px}
.hero-logo img{width:100%;height:auto}
.hero-tag{font:italic 500 clamp(1.65rem,2.4vw,2.4rem)/1.15 var(--editorial);color:var(--green);margin:0 0 14px}
.hero-text{font:400 clamp(1.06rem,1.5vw,1.25rem)/1.65 var(--editorial);color:var(--muted);max-width:54ch;margin:0 0 30px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px}
.hero-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.hero-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:24px;box-shadow:var(--shadow)}
.hero-card h3{font:500 1.35rem/1.12 var(--display);letter-spacing:.04em;color:var(--green);margin:0 0 10px}
.hero-card p{font:400 1rem/1.52 var(--editorial);color:var(--muted);margin:0}
.photo-stack{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:end}
.photo-main{grid-column:1/-1;background:#fff;padding:14px;border:1px solid var(--line);border-radius:34px;box-shadow:var(--shadow)}
.photo-main img{height:360px;width:100%;object-fit:cover;border-radius:24px}
.photo-caption{display:flex;justify-content:space-between;align-items:center;padding:20px 12px 4px;font:400 .78rem var(--roman);letter-spacing:.28em;text-transform:uppercase;color:var(--green)}
.photo-caption strong{font:600 1.35rem var(--display);letter-spacing:.12em;color:var(--orange)}
.photo-small{border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:var(--shadow);background:#fff}
.photo-small img{width:100%;height:190px;object-fit:cover}

.section{padding:clamp(82px,9vw,140px) 0}
.section-head{text-align:center;max-width:820px;margin:0 auto 42px}
.section-head .kicker{justify-content:center}
.section-title{font:500 clamp(2.6rem,5.5vw,5.2rem)/.98 var(--display);letter-spacing:.03em;color:var(--green);margin:0 0 18px}
.section-lede{font:400 clamp(1.08rem,1.7vw,1.32rem)/1.62 var(--editorial);color:var(--muted);margin:0 auto;max-width:62ch}
.dark{background:radial-gradient(circle at 75% 12%,rgba(184,147,94,.15),transparent 30%),linear-gradient(135deg,#143328,#1f3d32 60%,#10271f);color:#fff}
.dark .section-title,.dark .section-lede{color:#f7f3eb}
.dark .kicker{color:#d5b984}
.concept-grid{display:grid;grid-template-columns:1fr minmax(320px,.88fr);gap:clamp(3rem,7vw,7rem);align-items:center}
.concept-copy .kicker{margin-bottom:28px}
.concept-copy .section-title{text-align:left;margin-bottom:28px;max-width:12ch}
.concept-copy .section-lede{text-align:left;margin:0;max-width:56ch;color:rgba(247,243,235,.82)}
.concept-quote{margin:46px 0 12px;padding-left:24px;border-left:2px solid var(--orange);font:italic 500 clamp(1.55rem,2.7vw,2.35rem)/1.35 var(--editorial)}
.concept-attr{font:400 .76rem var(--roman);letter-spacing:.28em;text-transform:uppercase;color:#d5b984}
.wheel-wrap{display:grid;place-items:center;min-height:440px}
.wheel-wrap svg{width:min(520px,100%);height:auto;filter:drop-shadow(0 28px 55px rgba(0,0,0,.22))}
.gear-1{animation:spin 60s linear infinite;transform-origin:center}.gear-2{animation:spinReverse 90s linear infinite;transform-origin:center}.gear-3{animation:spin 120s linear infinite;transform-origin:center}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinReverse{to{transform:rotate(-360deg)}}

.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.gallery-item{border:0;padding:0;background:#fff;border-radius:24px;overflow:hidden;cursor:pointer;aspect-ratio:4/3;box-shadow:var(--shadow)}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.45s ease}
.gallery-item:hover img{transform:scale(1.04)}
.menu-tabs{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.menu-tab{border:1px solid var(--line);background:#fff;color:var(--green);border-radius:999px;padding:.82rem 1.05rem;font:700 .82rem var(--body);letter-spacing:.13em;text-transform:uppercase;cursor:pointer}
.menu-tab.active{background:var(--green);color:#fff}
.menu-panel{display:none;grid-template-columns:repeat(2,1fr);gap:18px}
.menu-panel.active{display:grid}
.dish-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:22px;box-shadow:var(--shadow)}
.dish-line{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.dish-line h3{margin:0;font:500 1.35rem/1.18 var(--editorial);color:var(--green)}
.dish-line strong{font:600 1rem var(--display);color:var(--orange);white-space:nowrap}
.dish-card p{font:400 1rem/1.48 var(--editorial);color:var(--muted);margin:8px 0 0}
.dish-badge{display:inline-block;margin-top:12px;background:rgba(216,122,53,.12);color:var(--orange);border-radius:999px;padding:.35rem .65rem;font:700 .68rem var(--body);letter-spacing:.13em;text-transform:uppercase}
.contact-grid{display:grid;grid-template-columns:minmax(0,840px);justify-content:center;gap:22px}
.info-card,.form-card{background:#fff;border:1px solid var(--line);border-radius:32px;padding:clamp(24px,4vw,42px);box-shadow:var(--shadow)}
.info-card{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.info-label{font:700 .76rem var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--orange);margin-bottom:8px}
.info-value{font:500 1.18rem var(--display);color:var(--green)}
.info-text{font:400 1rem/1.55 var(--editorial);color:var(--muted)}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label{font:700 .78rem var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--green)}
.field input,.field textarea{width:100%;border:1px solid rgba(31,61,50,.14);border-radius:18px;background:#fff;padding:1rem;color:var(--ink);font:400 1rem var(--body)}
.field textarea{min-height:120px;resize:vertical}
.submit{border:0;background:var(--orange);color:#fff;border-radius:999px;padding:1rem 1.25rem;margin:18px auto 0;display:flex;font:700 .84rem var(--body);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.footer{border-top:1px solid var(--line);padding:34px 0;color:var(--muted)}
.footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap}
.wa{position:fixed;right:20px;bottom:20px;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#25D366;color:white;z-index:70;box-shadow:0 12px 34px rgba(37,211,102,.38)}
.wa svg{width:28px;height:28px}
.lightbox{position:fixed;inset:0;background:rgba(8,15,12,.92);display:none;place-items:center;z-index:120;padding:20px}
.lightbox.open{display:grid}
.lightbox img{max-width:min(92vw,1180px);max-height:82vh;border-radius:18px;box-shadow:0 22px 70px rgba(0,0,0,.45)}
.lb-btn{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;backdrop-filter:blur(4px);cursor:pointer}
.lb-close{top:18px;right:18px;width:46px;height:46px;border-radius:50%;font-size:30px}
.lb-prev,.lb-next{top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;font-size:30px}
.lb-prev{left:18px}.lb-next{right:18px}
.lb-count{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.12);color:#fff;padding:.55rem .85rem;border-radius:999px;font:700 .84rem var(--body)}
@media(max-width:1100px){
  .nav-inner{grid-template-columns:auto 1fr auto}.nav-links,.nav-cta{display:none}.burger{display:block;margin-left:auto}
  .hero-grid,.concept-grid{grid-template-columns:1fr}.hero-cards{grid-template-columns:repeat(3,1fr)}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
  :root{--nav:78px}
  .nav-mark img{width:42px;height:42px}.nav-mark span{display:none}
  .hero{padding:44px 0 56px}.hero-grid{gap:32px}.hero-logo{width:100%}
  .kicker{letter-spacing:.25em;gap:12px}.kicker:before{width:38px}
  .hero-cards,.gallery-grid,.menu-panel.active,.info-card,.form-grid{grid-template-columns:1fr}
  .photo-stack{grid-template-columns:1fr}.photo-main img{height:270px}.photo-small img{height:210px}
  .section{padding:76px 0}.section-title{text-align:center}
  .concept-copy .section-title,.concept-copy .section-lede{text-align:left}
  .wheel-wrap{min-height:270px}
  .mobile-panel{width:92vw}
  .lb-prev,.lb-next{width:46px;height:46px}
}



/* === LUXURY MINIMAL OVERRIDE ===
   Less visual noise, cleaner hero, client-ready first fold.
*/
.hero{
  padding:clamp(78px,9vw,135px) 0 clamp(88px,8vw,120px)!important;
}
.hero-grid{
  grid-template-columns:minmax(0,.92fr) minmax(360px,.88fr)!important;
  gap:clamp(3.5rem,7vw,7.5rem)!important;
  align-items:center!important;
}
.hero-logo{
  width:min(430px,92%)!important;
  margin-bottom:26px!important;
}
.hero-tag{
  font-size:clamp(1.75rem,2.1vw,2.25rem)!important;
  margin-bottom:18px!important;
}
.hero-text{
  max-width:48ch!important;
  font-size:clamp(1.08rem,1.35vw,1.22rem)!important;
}
.hero-actions{
  margin-bottom:0!important;
}
.hero-cards{
  display:none!important;
}
.photo-stack{
  display:block!important;
}
.photo-main{
  max-width:560px!important;
  margin-inline:auto!important;
  padding:16px!important;
  border-radius:34px!important;
}
.photo-main img{
  height:430px!important;
  border-radius:24px!important;
}
.photo-small{
  display:none!important;
}
.photo-caption{
  padding:18px 10px 4px!important;
}
.section-head{
  max-width:760px!important;
}
.gallery-grid{
  grid-template-columns:repeat(3,1fr)!important;
  gap:22px!important;
}
.gallery-item{
  border-radius:22px!important;
}
.concept-grid{
  gap:clamp(4rem,8vw,8rem)!important;
}
@media(max-width:1100px){
  .hero-grid{
    grid-template-columns:1fr!important;
    gap:46px!important;
  }
  .photo-main{
    max-width:720px!important;
  }
}
@media(max-width:760px){
  .hero{
    padding:48px 0 74px!important;
  }
  .hero-logo{
    width:100%!important;
    max-width:390px!important;
  }
  .photo-main img{
    height:300px!important;
  }
  .gallery-grid{
    grid-template-columns:1fr!important;
  }
  .section-head{
    text-align:left!important;
    margin-inline:0!important;
  }
  .section-head .kicker{
    justify-content:flex-start!important;
  }
}


/* === MENU AS SINGLE LIST OVERRIDE ===
   Each selected category is shown as a clean vertical list, not two columns.
*/
#menu .container{
  max-width:980px;
}
.menu-tabs{
  margin-bottom:34px!important;
}
.menu-panel.active{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:14px!important;
  max-width:900px!important;
  margin-inline:auto!important;
}
.dish-card{
  display:block!important;
  padding:22px 26px!important;
  border-radius:24px!important;
  box-shadow:0 16px 38px rgba(31,61,50,.07)!important;
}
.dish-line{
  display:grid!important;
  grid-template-columns:1fr auto!important;
  align-items:start!important;
  gap:20px!important;
}
.dish-line h3{
  font-size:1.42rem!important;
}
.dish-line strong{
  min-width:70px!important;
  text-align:right!important;
}
.dish-card p{
  max-width:72ch!important;
}
@media(max-width:760px){
  #menu .container{
    width:min(100% - 1.25rem, 980px)!important;
  }
  .menu-tabs{
    justify-content:flex-start!important;
    overflow-x:auto!important;
    flex-wrap:nowrap!important;
    padding-bottom:6px!important;
    scrollbar-width:none;
  }
  .menu-tabs::-webkit-scrollbar{display:none}
  .menu-tab{
    white-space:nowrap!important;
    flex:0 0 auto!important;
  }
  .dish-card{
    padding:20px!important;
    border-radius:22px!important;
  }
  .dish-line{
    grid-template-columns:1fr auto!important;
    gap:12px!important;
  }
  .dish-line h3{
    font-size:1.25rem!important;
  }
}


/* === FINAL ELEGANT POLISH === */
.preloader{
  position:fixed; inset:0; z-index:999;
  background:linear-gradient(180deg,var(--paper),var(--cream));
  display:grid; place-items:center;
  transition:opacity .6s ease, visibility .6s ease;
}
.preloader.hide{opacity:0; visibility:hidden; pointer-events:none}
.preloader-inner{
  width:min(520px,74vw);
  animation:preloaderFloat 1.8s ease-in-out infinite alternate;
}
.preloader-inner img{width:100%; height:auto; display:block}
@keyframes preloaderFloat{from{transform:translateY(0)} to{transform:translateY(-8px)}}

.hero-logo{
  width:min(470px,88%)!important;
}
.hero-logo img{
  width:100%;
  height:auto;
  display:block;
}
.hero-tag{
  margin-top:6px!important;
}

.info-card{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(255,255,255,.72))!important;
  border-radius:34px!important;
  box-shadow:0 22px 60px rgba(31,61,50,.08)!important;
}
.info-card > div{
  border:1px solid rgba(31,61,50,.08);
  border-radius:24px;
  padding:22px 24px;
  background:rgba(255,255,255,.72);
}
.info-label{
  margin-bottom:10px!important;
  color:var(--orange)!important;
}
.info-value{
  font-size:1.42rem!important;
  line-height:1.2!important;
}
.info-text{
  font-size:1.05rem!important;
  line-height:1.7!important;
}
.form-card{
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.8))!important;
  border-radius:34px!important;
  box-shadow:0 22px 60px rgba(31,61,50,.08)!important;
}
#bookingForm{
  max-width:900px;
  margin-inline:auto;
}
.field label{
  margin-bottom:2px;
}
.field input,.field textarea{
  border-radius:20px!important;
  padding:1.05rem 1.15rem!important;
  background:#fff!important;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.field input:focus,.field textarea:focus{
  outline:none;
  border-color:rgba(216,122,53,.4);
  box-shadow:0 0 0 4px rgba(216,122,53,.08);
}
.submit{
  margin-top:24px!important;
  padding:1rem 1.55rem!important;
  box-shadow:0 16px 36px rgba(216,122,53,.22);
}
.wheel-wrap svg{overflow:visible}
@media(max-width:760px){
  .info-card{grid-template-columns:1fr!important}
  .info-card > div{padding:18px 18px}
  .preloader-inner{width:min(420px,82vw)}
}


/* === GALLERY RULLINO ORIZZONTALE ===
   Scorrimento orizzontale con scroll-snap, frecce laterali su desktop.
*/
.food-gallery-section{
  overflow:hidden;
}
.food-gallery-section .gallery-grid{
  display:flex!important;
  flex-direction:row!important;
  grid-template-columns:none!important;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  gap:14px!important;
  padding-bottom:18px;
  padding-left:4px;
  padding-right:4px;
  scrollbar-width:thin;
  scrollbar-color:var(--green) transparent;
}
.food-gallery-section .gallery-grid::-webkit-scrollbar{
  height:5px;
}
.food-gallery-section .gallery-grid::-webkit-scrollbar-thumb{
  background:var(--green);
  border-radius:99px;
}
.food-gallery-section .gallery-item{
  flex:0 0 260px!important;
  width:260px!important;
  height:320px!important;
  aspect-ratio:unset!important;
  scroll-snap-align:start;
  border-radius:18px!important;
  overflow:hidden;
  background:#fff;
  cursor:pointer;
}
.food-gallery-section .gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
}
/* Wrapper con frecce */
.gallery-rullino-wrap{
  position:relative;
}
.gallery-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:10;
  background:rgba(255,255,255,.92);
  border:none;
  border-radius:50%;
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 2px 12px rgba(0,0,0,.14);
  transition:.2s;
}
.gallery-arrow:hover{background:#fff;}
.gallery-arrow.prev{left:6px;}
.gallery-arrow.next{right:6px;}
.gallery-arrow svg{width:20px;height:20px;stroke:var(--green);fill:none;stroke-width:2.2;}
@media(max-width:760px){
  .gallery-arrow{display:none;}
  .food-gallery-section .gallery-item{
    flex:0 0 78vw!important;
    width:78vw!important;
    height:55vw!important;
  }
}


/* === LOGO VISIBILITY FIX === */
.hero-logo{
  width:min(520px, 96%) !important;
  margin-bottom:18px !important;
}
.hero-logo img{
  width:100% !important;
  height:auto !important;
  display:block !important;
  image-rendering:auto;
  filter: drop-shadow(0 2px 0 rgba(31,61,50,.02));
}
@media (max-width:760px){
  .hero-logo{
    width:min(100%, 420px) !important;
  }
}


/* === FINAL NATURAL PRELOADER: KAIROS + ROTATING WHEEL === */
.preloader{
  position:fixed!important;
  inset:0!important;
  z-index:9999!important;
  display:grid!important;
  place-items:center!important;
  background:
    radial-gradient(circle at 50% 35%, rgba(216,122,53,.055), transparent 34%),
    linear-gradient(180deg,var(--paper),var(--cream))!important;
  transition:opacity .8s ease, visibility .8s ease!important;
}
.preloader.hide{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.preloader-stage{
  width:min(92vw,980px)!important;
  min-height:100svh!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:clamp(22px,4vw,44px)!important;
  padding:2rem!important;
}
.preloader-logo{
  width:min(620px,82vw)!important;
  height:auto!important;
  display:block!important;
  opacity:0;
  transform:translateY(16px) scale(.975);
  animation:kairosLogoReveal 1.05s cubic-bezier(.19,1,.22,1) .12s forwards;
}
.preloader-wheel{
  width:min(420px,58vw)!important;
  aspect-ratio:1!important;
  opacity:0;
  transform:translateY(16px) scale(.96);
  animation:kairosWheelReveal 1.25s cubic-bezier(.19,1,.22,1) .42s forwards;
}
.preloader-wheel svg{
  width:100%;
  height:100%;
  display:block;
  overflow:visible;
  filter:drop-shadow(0 24px 42px rgba(31,61,50,.14));
}
.preload-gear-slow{
  transform-origin:center;
  animation:kairosPreloadSpin 22s linear infinite;
}
.preload-gear-inner{
  transform-origin:center;
  animation:kairosPreloadSpinReverse 34s linear infinite;
}
@keyframes kairosLogoReveal{
  to{opacity:1; transform:translateY(0) scale(1)}
}
@keyframes kairosWheelReveal{
  to{opacity:1; transform:translateY(0) scale(1)}
}
@keyframes kairosPreloadSpin{
  to{transform:rotate(360deg)}
}
@keyframes kairosPreloadSpinReverse{
  to{transform:rotate(-360deg)}
}
@media(max-width:760px){
  .preloader-stage{gap:24px!important}
  .preloader-logo{width:min(500px,88vw)!important}
  .preloader-wheel{width:min(330px,72vw)!important}
}


/* === PRELOADER REFINED / LONGER === */
.preloader{
  background:
    radial-gradient(circle at 50% 34%, rgba(216,122,53,.06), transparent 30%),
    linear-gradient(180deg, var(--paper), var(--cream)) !important;
}
.preloader-stage{
  gap: clamp(16px, 2.4vw, 30px) !important;
}
.preloader-logo{
  width: min(560px, 72vw) !important;
  max-width: 560px !important;
  opacity: 0;
  transform: translateY(24px) scale(.965);
  animation: kairosLogoRevealRefined 1.15s cubic-bezier(.19,1,.22,1) .10s forwards !important;
  filter: drop-shadow(0 12px 26px rgba(31,61,50,.05));
}
.preloader-wheel{
  width: min(330px, 34vw) !important;
  max-width: 330px !important;
  opacity: 0;
  transform: translateY(20px) scale(.95);
  animation: kairosWheelRevealRefined 1.35s cubic-bezier(.19,1,.22,1) .42s forwards !important;
}
.preloader-wheel svg{
  filter: drop-shadow(0 18px 34px rgba(31,61,50,.10)) !important;
}
.preload-gear-slow{
  animation: kairosPreloadSpinRefined 26s linear infinite !important;
}
.preload-gear-inner{
  animation: kairosPreloadSpinReverseRefined 40s linear infinite !important;
}
@keyframes kairosLogoRevealRefined{
  0%   {opacity:0; transform:translateY(24px) scale(.965)}
  60%  {opacity:1; transform:translateY(0) scale(1)}
  100% {opacity:1; transform:translateY(0) scale(1)}
}
@keyframes kairosWheelRevealRefined{
  0%   {opacity:0; transform:translateY(20px) scale(.95)}
  60%  {opacity:1; transform:translateY(0) scale(1)}
  100% {opacity:1; transform:translateY(0) scale(1)}
}
@keyframes kairosPreloadSpinRefined{
  to { transform: rotate(360deg); }
}
@keyframes kairosPreloadSpinReverseRefined{
  to { transform: rotate(-360deg); }
}
@media (max-width: 1100px){
  .preloader-logo{
    width: min(520px, 80vw) !important;
  }
  .preloader-wheel{
    width: min(300px, 46vw) !important;
  }
}
@media (max-width: 760px){
  .preloader-stage{
    gap: 20px !important;
  }
  .preloader-logo{
    width: min(430px, 86vw) !important;
  }
  .preloader-wheel{
    width: min(250px, 62vw) !important;
  }
}


/* === FINAL UPDATE: 4s preloader + elegant mobile hamburger === */

/* preloader logo now uses redesigned gold PNG */
.preloader-logo{
  width:min(640px, 80vw) !important;
  max-width:640px !important;
  filter: drop-shadow(0 10px 20px rgba(184,147,94,.10));
}
.preloader-wheel{
  width:min(340px, 36vw) !important;
  max-width:340px !important;
}
.preloader-stage{
  gap:clamp(18px,2.8vw,30px)!important;
}

/* elegant hamburger */
.burger{
  display:none;
  width:52px;
  height:52px;
  position:relative;
  border:1px solid rgba(31,61,50,.12);
  border-radius:16px;
  background:rgba(255,255,255,.72);
  box-shadow:0 16px 34px rgba(31,61,50,.08);
  backdrop-filter:blur(10px);
}
.burger span,.burger:before,.burger:after{
  content:"";
  position:absolute;
  left:14px;
  right:14px;
  height:2.5px;
  border-radius:999px;
  background:var(--green);
  transition:transform .28s ease, opacity .28s ease, top .28s ease;
}
.burger:before{top:16px}
.burger span{top:24px}
.burger:after{top:32px}

.mobile-menu{
  display:block!important;
  opacity:0;
  pointer-events:none;
  transition:opacity .32s ease;
}
.mobile-menu.open{
  opacity:1;
  pointer-events:auto;
}
.mobile-panel{
  transform:translateX(22px);
  transition:transform .34s ease;
  width:min(92vw, 430px)!important;
  padding:24px;
  gap:20px!important;
  border-left:1px solid rgba(31,61,50,.08);
  box-shadow:-30px 0 70px rgba(0,0,0,.18);
}
.mobile-menu.open .mobile-panel{
  transform:translateX(0);
}
.mobile-top{
  align-items:center;
}
.mobile-top .nav-mark img{
  width:48px;
  height:48px;
  border-radius:15px;
}
.mobile-top .nav-mark span{
  display:block;
}
.close{
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid rgba(31,61,50,.10);
  background:rgba(255,255,255,.92);
  color:var(--green);
  box-shadow:0 10px 22px rgba(31,61,50,.08);
}
.mobile-links a{
  padding:18px 0;
  font-size:1.02rem;
  letter-spacing:.22em;
}
.mobile-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  padding:1rem 1.2rem;
  border-radius:999px;
  background:var(--orange);
  color:#fff;
  border:1px solid var(--orange);
  font:700 .84rem var(--body);
  letter-spacing:.16em;
  text-transform:uppercase;
  box-shadow:0 16px 34px rgba(216,122,53,.22);
}
.mobile-card{
  border-radius:30px;
  padding:22px;
  box-shadow:0 20px 40px rgba(31,61,50,.08);
}

/* mobile nav logic: languages only inside hamburger menu */
@media(max-width:1100px){
  .nav .lang{
    display:none !important;
  }
  .burger{
    display:block !important;
    margin-left:auto;
  }
  .nav-inner{
    grid-template-columns:auto 1fr auto !important;
  }
}
@media(max-width:760px){
  .mobile-top .nav-mark span{
    display:none;
  }
  .mobile-panel{
    width:92vw !important;
    border-top-left-radius:28px;
    border-bottom-left-radius:28px;
    margin:10px 0 10px auto;
    height:calc(100% - 20px);
  }
  .preloader-logo{
    width:min(520px,88vw)!important;
  }
  .preloader-wheel{
    width:min(250px,60vw)!important;
  }
}


/* === FINAL CONTACT REDESIGN: less empty space, cleaner information cards === */
.contact-grid{
  grid-template-columns:minmax(0, 920px) !important;
  gap:18px !important;
}
.info-card{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:16px !important;
  padding:24px !important;
  border-radius:34px !important;
}
.info-card > div{
  flex:1 1 calc(50% - 8px);
  min-width:260px;
  align-self:flex-start !important;
  padding:20px 22px !important;
  border-radius:22px !important;
  box-shadow:none !important;
}
.info-label{
  margin-bottom:10px !important;
}
.info-value{
  font-size:1.15rem !important;
  line-height:1.22 !important;
  max-width:22ch;
}
.info-value a,
.info-text a{
  color:var(--green);
}
.info-text{
  font-size:1rem !important;
  line-height:1.6 !important;
}
.form-card{
  padding:28px !important;
}
#bookingForm{
  max-width:100% !important;
}
@media (min-width: 901px){
  .info-card > div:nth-child(1){flex-basis:calc(53% - 8px)}
  .info-card > div:nth-child(2){flex-basis:calc(47% - 8px)}
  .info-card > div:nth-child(3){flex-basis:calc(44% - 8px)}
  .info-card > div:nth-child(4){flex-basis:calc(56% - 8px)}
}
@media (max-width: 900px){
  .contact-grid{grid-template-columns:1fr !important}
  .info-card{padding:20px !important}
  .info-card > div{flex-basis:100%; min-width:0; padding:18px 18px !important}
  .form-card{padding:22px !important}
}


/* === HEADER REFINED: prenota left, languages far right === */
.nav-inner{
  grid-template-columns:auto 1fr auto auto !important;
  gap:24px !important;
}
.nav-cta{
  padding:1rem 1.55rem !important;
  font:800 .84rem var(--body) !important;
  letter-spacing:.16em !important;
  box-shadow:0 18px 34px rgba(216,122,53,.20) !important;
}
.desktop-lang{
  justify-self:end !important;
}
.lang{
  gap:6px !important;
  padding:4px !important;
  background:rgba(255,255,255,.58) !important;
  box-shadow:0 10px 22px rgba(31,61,50,.05);
}
.lang button{
  padding:.66rem .92rem !important;
  font:800 .83rem var(--body) !important;
  letter-spacing:.03em !important;
}
.lang button.active{
  box-shadow:0 8px 18px rgba(31,61,50,.12);
}
@media (max-width:1100px){
  .desktop-lang{display:none !important;}
}


/* === PRELOADER CTA: open site on click === */
.preloader-enter{
  appearance:none;
  border:1px solid var(--orange);
  background:var(--orange);
  color:#fff;
  border-radius:999px;
  padding:1rem 1.65rem;
  min-width:220px;
  font:800 .86rem var(--body);
  letter-spacing:.16em;
  text-transform:uppercase;
  box-shadow:0 18px 36px rgba(216,122,53,.22);
  cursor:pointer;
  opacity:0;
  transform:translateY(14px) scale(.98);
  animation:kairosVisitReveal .85s cubic-bezier(.19,1,.22,1) 1.25s forwards;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease;
}
.preloader-enter:hover{
  transform:translateY(-1px) scale(1.01);
  box-shadow:0 22px 44px rgba(216,122,53,.28);
}
.preloader-enter:active{
  transform:translateY(0) scale(.995);
}
.preloader-enter:focus-visible{
  outline:2px solid rgba(216,122,53,.3);
  outline-offset:3px;
}
@keyframes kairosVisitReveal{
  to{opacity:1; transform:translateY(0) scale(1)}
}
@media (max-width:760px){
  .preloader-enter{
    min-width:200px;
    padding:.95rem 1.35rem;
    font-size:.82rem;
  }
}


/* === FINAL FIX: elegant contact block + better mobile language pill === */
.contact-grid{
  grid-template-columns:minmax(0, 940px) !important;
  gap:20px !important;
}
.info-card{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:16px !important;
  padding:22px !important;
  align-items:start !important;
  background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.88)) !important;
}
.info-card > div{
  flex:none !important;
  min-width:0 !important;
  height:auto !important;
  align-self:start !important;
  padding:18px 20px !important;
  border-radius:20px !important;
  background:rgba(255,255,255,.96) !important;
  border:1px solid rgba(31,61,50,.08) !important;
  box-shadow:none !important;
}
.info-card > div:nth-child(1){
  grid-column:1 / -1 !important;
}
.info-card > div:nth-child(2),
.info-card > div:nth-child(3),
.info-card > div:nth-child(4){
  grid-column:auto !important;
}
.info-label{
  margin-bottom:8px !important;
}
.info-value{
  max-width:none !important;
  font-size:1.02rem !important;
  line-height:1.35 !important;
}
.info-text{
  font-size:.98rem !important;
  line-height:1.55 !important;
}
.info-value a,
.info-text a{
  text-underline-offset:3px;
}
@media (max-width: 980px){
  .info-card{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
  .info-card > div:nth-child(1){grid-column:1 / -1 !important;}
}
@media (max-width: 700px){
  .info-card{
    grid-template-columns:1fr !important;
    padding:18px !important;
  }
  .info-card > div{
    grid-column:1 !important;
    padding:16px 16px !important;
  }
}

/* Desktop languages unchanged, mobile only in hamburger */
@media (max-width:1100px){
  .nav .desktop-lang{
    display:none !important;
  }
  .nav-inner{
    grid-template-columns:auto 1fr auto !important;
    gap:16px !important;
  }
  .nav-links,
  .nav-cta{
    display:none !important;
  }
  .burger{
    display:block !important;
    margin-left:auto;
  }
}
.mobile-panel .lang{
  width:100% !important;
  display:grid !important;
  grid-template-columns:repeat(3, 1fr) !important;
  gap:6px !important;
  padding:6px !important;
  border-radius:999px !important;
  background:#fff !important;
  border:1px solid rgba(31,61,50,.10) !important;
  box-shadow:0 10px 24px rgba(31,61,50,.05) !important;
}
.mobile-panel .lang button{
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:.9rem 0 !important;
  font:800 .84rem var(--body) !important;
  letter-spacing:.02em !important;
}
.mobile-panel .lang button.active{
  box-shadow:0 8px 18px rgba(31,61,50,.12) !important;
}


/* === FINAL CONTACT REFINEMENT: elegant layout, no pill-style social card === */
.contact-grid{
  grid-template-columns:minmax(0, 940px) !important;
  gap:24px !important;
}
.info-card{
  display:grid !important;
  grid-template-columns:1.25fr .95fr !important;
  gap:0 !important;
  padding:0 !important;
  background:#fff !important;
  border:1px solid rgba(31,61,50,.10) !important;
  border-radius:34px !important;
  overflow:hidden !important;
  box-shadow:0 24px 56px rgba(31,61,50,.08) !important;
}
.info-card > div{
  min-width:0 !important;
  padding:28px 30px !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
.info-card > div:nth-child(1){
  grid-column:1 !important;
  grid-row:1 / span 2 !important;
  border-right:1px solid rgba(31,61,50,.08) !important;
}
.info-card > div:nth-child(2){
  grid-column:2 !important;
  grid-row:1 !important;
  border-bottom:1px solid rgba(31,61,50,.08) !important;
}
.info-card > div:nth-child(3){
  grid-column:1 !important;
  grid-row:3 !important;
  border-top:1px solid rgba(31,61,50,.08) !important;
}
.info-card > div:nth-child(4){
  grid-column:2 !important;
  grid-row:2 / span 2 !important;
  border-left:1px solid rgba(31,61,50,.08) !important;
}
.info-label{
  margin-bottom:12px !important;
  font:800 .78rem var(--body) !important;
  letter-spacing:.18em !important;
}
.info-value{
  max-width:none !important;
  font:500 clamp(1.12rem,2.2vw,1.5rem)/1.26 var(--display) !important;
  color:var(--green) !important;
}
.info-text{
  font:400 1.02rem/1.65 var(--editorial) !important;
  color:var(--muted) !important;
}
.info-card > div:nth-child(1) .info-value{
  max-width:20ch !important;
}
.info-card > div:nth-child(3) .info-text{
  display:grid;
  gap:6px;
}
.info-card > div:nth-child(4){
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.info-card > div:nth-child(4) .info-text{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  font-size:1.05rem !important;
}
.info-card > div:nth-child(4) .info-text a{
  color:var(--green) !important;
  font-weight:600;
  text-decoration:none;
  border-bottom:1px solid rgba(31,61,50,.18);
  padding-bottom:2px;
}
.info-card > div:nth-child(4) .info-text a:hover{
  border-bottom-color:var(--orange);
  color:var(--orange) !important;
}
.social-sep{
  color:var(--orange);
  opacity:.85;
  font-size:1rem;
  line-height:1;
}
@media (max-width: 920px){
  .info-card{
    grid-template-columns:1fr !important;
  }
  .info-card > div{
    grid-column:1 !important;
    grid-row:auto !important;
    padding:22px 22px !important;
    border-left:0 !important;
    border-right:0 !important;
    border-bottom:1px solid rgba(31,61,50,.08) !important;
    border-top:0 !important;
  }
  .info-card > div:last-child{
    border-bottom:0 !important;
  }
}
@media (max-width:1100px){
  .mobile-panel .lang{
    width:100% !important;
    max-width:320px;
    margin-inline:auto;
  }
}
@media (max-width: 700px){
  .info-card{
    border-radius:28px !important;
  }
  .info-value{
    font-size:1.04rem !important;
  }
  .info-text{
    font-size:.98rem !important;
  }
  .mobile-panel .lang{
    grid-template-columns:1fr !important;
    max-width:none;
    border-radius:22px !important;
    padding:8px !important;
    gap:8px !important;
  }
  .mobile-panel .lang button{
    border-radius:14px !important;
    padding:.88rem 0 !important;
  }
}


/* === FINAL CONTACT LUXURY REDESIGN === */
.contact-grid{
  grid-template-columns:minmax(0, 960px) !important;
  justify-content:center !important;
  gap:24px !important;
}
.info-card-luxury{
  display:grid !important;
  grid-template-columns:1.25fr .95fr !important;
  gap:16px !important;
  padding:24px !important;
  background:#fff !important;
  border:1px solid rgba(31,61,50,.09) !important;
  border-radius:34px !important;
  box-shadow:0 28px 56px rgba(31,61,50,.08) !important;
}
.info-card-luxury .info-box{
  min-width:0 !important;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(249,247,241,.92)) !important;
  border:1px solid rgba(31,61,50,.08) !important;
  border-radius:24px !important;
  padding:22px 24px !important;
  box-shadow:none !important;
}
.info-box-address{grid-column:1 !important; grid-row:1 !important;}
.info-box-phone{grid-column:2 !important; grid-row:1 !important;}
.info-box-hours{grid-column:1 !important; grid-row:2 !important;}
.info-box-social{grid-column:2 !important; grid-row:2 !important; display:flex; flex-direction:column; justify-content:flex-start;}
.info-card-luxury .info-label{
  margin-bottom:12px !important;
  font:800 .79rem var(--body) !important;
  letter-spacing:.18em !important;
  text-transform:uppercase !important;
  color:var(--orange) !important;
}
.info-card-luxury .info-value{
  font:500 clamp(1.24rem, 2vw, 1.7rem)/1.18 var(--display) !important;
  color:var(--green) !important;
}
.info-card-luxury .info-box-address .info-value{
  max-width:14ch;
}
.info-card-luxury .info-text{
  font:400 1.03rem/1.6 var(--editorial) !important;
  color:var(--muted) !important;
}
.info-mini{
  margin-top:10px;
  color:var(--muted);
  font:400 .95rem/1.4 var(--editorial);
}
.hours-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}
.hours-list li{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:14px;
  align-items:baseline;
  padding-bottom:8px;
  border-bottom:1px dashed rgba(31,61,50,.08);
}
.hours-list li:last-child{
  border-bottom:0;
  padding-bottom:0;
}
.hours-list span{
  color:var(--green);
  font:600 .98rem/1.35 var(--body);
}
.hours-list strong{
  color:var(--muted);
  font:500 .98rem/1.35 var(--editorial);
}
.social-links-elegant{
  display:grid;
  gap:14px;
  margin-top:2px;
}
.social-link-elegant{
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px 14px;
  border-radius:18px;
  border:1px solid rgba(31,61,50,.08);
  background:rgba(255,255,255,.78);
  color:var(--green);
  text-decoration:none;
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease, color .2s ease;
}
.social-link-elegant:hover{
  transform:translateY(-1px);
  border-color:rgba(216,122,53,.28);
  box-shadow:0 14px 28px rgba(31,61,50,.07);
  color:var(--orange);
}
.social-icon{
  width:42px;
  height:42px;
  border-radius:14px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  background:rgba(216,122,53,.08);
  color:var(--orange);
}
.social-icon svg{width:20px;height:20px;display:block}
.social-link-elegant span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.social-link-elegant small{
  color:var(--muted);
  font:700 .74rem var(--body);
  letter-spacing:.12em;
  text-transform:uppercase;
}
.social-link-elegant strong{
  color:inherit;
  font:500 1rem/1.35 var(--editorial);
}
@media (max-width: 920px){
  .info-card-luxury{
    grid-template-columns:1fr !important;
  }
  .info-box-address,.info-box-phone,.info-box-hours,.info-box-social{
    grid-column:1 !important;
    grid-row:auto !important;
  }
}
@media (max-width: 700px){
  .info-card-luxury{padding:18px !important; border-radius:28px !important;}
  .info-card-luxury .info-box{padding:18px 18px !important; border-radius:20px !important;}
  .info-card-luxury .info-value{font-size:1.12rem !important;}
  .hours-list li{grid-template-columns:1fr; gap:2px;}
  .hours-list span{font-size:.95rem;}
  .hours-list strong{font-size:.95rem;}
  .social-link-elegant{padding:11px 12px; gap:12px; border-radius:16px;}
  .social-icon{width:38px; height:38px; border-radius:12px; flex-basis:38px;}
}


/* === MOBILE MENU REDESIGN inspired by SmartWebCrafted, adapted to Kairos === */
@media (max-width:1100px){
  .mobile-menu{
    position:fixed;
    inset:0;
    background:rgba(10,16,14,.44);
    backdrop-filter:blur(8px);
    z-index:120;
  }
  .mobile-panel{
    position:absolute;
    inset:0;
    width:100%;
    min-height:100%;
    background:
      radial-gradient(circle at top center, rgba(216,122,53,.06), transparent 28%),
      linear-gradient(180deg, #f7f3ea 0%, #f3eee3 100%);
    padding:28px 30px 40px;
    overflow:auto;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap:26px;
    box-shadow:none;
  }
  .mobile-top{order:1; width:100%; display:flex; align-items:center; justify-content:space-between; margin-bottom:8px;}
  .mobile-brand{display:flex; align-items:center; gap:14px; text-decoration:none; color:var(--green);}
  .mobile-brand img{width:56px; height:56px; border-radius:16px; box-shadow:0 18px 30px rgba(31,61,50,.10)}
  .mobile-brand-text{display:flex; flex-direction:column; line-height:1;}
  .mobile-brand-text strong{font:500 1.65rem var(--display); letter-spacing:.01em; color:var(--green)}
  .mobile-brand-text small{font:700 .78rem var(--body); letter-spacing:.22em; text-transform:uppercase; color:var(--orange); margin-top:8px}
  .close{width:58px; height:58px; border-radius:50%; border:1px solid rgba(31,61,50,.08); background:rgba(255,255,255,.9); color:var(--green); font-size:34px; box-shadow:0 18px 34px rgba(31,61,50,.08)}

  .mobile-links{order:2; width:100%; max-width:420px; display:flex; flex-direction:column; align-items:center; gap:2px; margin-top:10px;}
  .mobile-links a{
    width:100%;
    padding:20px 0;
    text-align:center;
    border-bottom:none;
    font:500 clamp(2.25rem, 7vw, 3.35rem)/1.05 var(--display);
    letter-spacing:0;
    text-transform:none;
    color:var(--green);
    text-decoration:none;
  }
  .mobile-links a + a{margin-top:2px;}

  .mobile-panel .lang{
    order:3;
    width:auto !important;
    max-width:none !important;
    display:flex !important;
    align-items:center;
    justify-content:center;
    gap:12px !important;
    padding:0 !important;
    border:none !important;
    background:transparent !important;
    box-shadow:none !important;
    margin:6px 0 4px !important;
  }
  .mobile-panel .lang button{
    width:56px !important;
    height:42px !important;
    padding:0 !important;
    border-radius:0 !important;
    background:rgba(255,255,255,.35) !important;
    border:1px solid rgba(31,61,50,.14) !important;
    color:rgba(31,61,50,.65) !important;
    font:700 .88rem var(--body) !important;
    letter-spacing:.12em !important;
    text-transform:uppercase;
  }
  .mobile-panel .lang button.active{
    color:var(--orange) !important;
    border-color:rgba(216,122,53,.55) !important;
    background:rgba(255,255,255,.82) !important;
    box-shadow:none !important;
  }

  .mobile-cta{
    order:4;
    position:sticky;
    bottom:0;
    z-index:10;
    width:min(100%, 420px);
    margin-top:auto;
    min-height:62px;
    border-radius:999px;
    font:800 .92rem var(--body);
    letter-spacing:.18em;
    text-transform:uppercase;
    background:var(--orange) !important;
    box-shadow:0 22px 38px rgba(216,122,53,.18);
  }

  .mobile-card{
    order:5;
    width:min(100%, 420px);
    background:rgba(255,255,255,.9);
    border:1px solid rgba(31,61,50,.08);
    border-radius:28px;
    padding:22px 22px;
    box-shadow:0 24px 44px rgba(31,61,50,.08);
  }
  .mobile-info-block + .mobile-info-block{margin-top:18px;}
  .mobile-card .info-label{margin-bottom:10px;}
  .mobile-card .info-text{font:400 .98rem/1.62 var(--editorial); color:var(--muted)}
  .mobile-hours-list{font-size:.92rem !important; line-height:1.75 !important;}
  .mobile-mini-links{margin-top:18px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; color:var(--muted); font:600 .82rem/1.4 var(--body); letter-spacing:.03em}
  .mobile-mini-links a{color:var(--green); text-decoration:none}
  .mobile-mini-links span{color:var(--orange)}
}

@media (max-width:700px){
  .mobile-panel{padding:22px 20px 34px; gap:22px;}
  .mobile-brand img{width:52px; height:52px;}
  .mobile-brand-text strong{font-size:1.48rem}
  .mobile-brand-text small{font-size:.74rem; margin-top:7px}
  .close{width:54px; height:54px; font-size:32px}
  .mobile-links a{font-size:2rem; padding:15px 0;}
  .mobile-panel .lang{gap:10px !important; flex-wrap:wrap;}
  .mobile-panel .lang button{width:52px !important; height:40px !important; font-size:.84rem !important;}
  .mobile-cta{min-height:58px; font-size:.88rem;}
  .mobile-card{padding:18px 18px; border-radius:24px;}
}


/* === FINAL ACCESSIBILITY TUNING: larger contact text for readability === */
.info-card-luxury{
  gap:20px !important;
  padding:28px !important;
}
.info-card-luxury .info-box{
  padding:28px 28px !important;
}
.info-card-luxury .info-label{
  font-size:.88rem !important;
  letter-spacing:.20em !important;
  margin-bottom:14px !important;
}
.info-card-luxury .info-value{
  font-size:clamp(1.45rem, 2.2vw, 2rem) !important;
  line-height:1.2 !important;
}
.info-card-luxury .info-text{
  font-size:1.13rem !important;
  line-height:1.7 !important;
}
.info-mini{
  font-size:1.04rem !important;
  line-height:1.55 !important;
}
.hours-list{
  gap:10px !important;
}
.hours-list li{
  grid-template-columns:140px 1fr !important;
  gap:16px !important;
  padding-bottom:10px !important;
}
.hours-list span{
  font-size:1.18rem !important;
  line-height:1.4 !important;
}
.hours-list strong{
  font-size:1.12rem !important;
  line-height:1.45 !important;
}
.social-links-elegant{
  gap:16px !important;
}
.social-link-elegant{
  padding:16px 18px !important;
  gap:16px !important;
}
.social-icon{
  width:48px !important;
  height:48px !important;
  flex-basis:48px !important;
}
.social-icon svg{
  width:22px !important;
  height:22px !important;
}
.social-link-elegant small{
  font-size:.8rem !important;
}
.social-link-elegant strong{
  font-size:1.1rem !important;
  line-height:1.45 !important;
}
@media (max-width: 920px){
  .info-card-luxury{
    padding:22px !important;
  }
  .info-card-luxury .info-box{
    padding:22px 22px !important;
  }
}
@media (max-width: 700px){
  .info-card-luxury{
    padding:18px !important;
  }
  .info-card-luxury .info-box{
    padding:20px 18px !important;
  }
  .info-card-luxury .info-label{
    font-size:.84rem !important;
  }
  .info-card-luxury .info-value{
    font-size:1.32rem !important;
  }
  .info-card-luxury .info-text{
    font-size:1.03rem !important;
  }
  .hours-list li{
    grid-template-columns:1fr !important;
    gap:4px !important;
  }
  .hours-list span{
    font-size:1.05rem !important;
  }
  .hours-list strong{
    font-size:1rem !important;
  }
  .social-link-elegant{
    padding:14px 14px !important;
  }
  .social-icon{
    width:44px !important;
    height:44px !important;
    flex-basis:44px !important;
  }
  .social-link-elegant strong{
    font-size:1rem !important;
  }
}


/* === FINAL FIX: ORARI MOLTO PIÙ LEGGIBILI === */
.info-box-hours{
  padding:30px 32px !important;
}
.info-box-hours .info-label{
  font-size:.95rem !important;
  letter-spacing:.20em !important;
  margin-bottom:18px !important;
}
.hours-list{
  gap:14px !important;
}
.hours-list li{
  grid-template-columns:155px 1fr !important;
  gap:22px !important;
  padding-bottom:14px !important;
  border-bottom:1px solid rgba(31,61,50,.10) !important;
}
.hours-list span{
  font-family:var(--body) !important;
  font-size:1.32rem !important;
  font-weight:800 !important;
  line-height:1.35 !important;
  color:var(--green) !important;
}
.hours-list strong{
  font-family:var(--body) !important;
  font-size:1.28rem !important;
  font-weight:700 !important;
  line-height:1.45 !important;
  color:var(--green) !important;
  letter-spacing:-.01em !important;
}
@media (max-width: 700px){
  .info-box-hours{
    padding:24px 20px !important;
  }
  .info-box-hours .info-label{
    font-size:.9rem !important;
    margin-bottom:16px !important;
  }
  .hours-list{
    gap:12px !important;
  }
  .hours-list li{
    grid-template-columns:1fr !important;
    gap:6px !important;
    padding-bottom:14px !important;
  }
  .hours-list span{
    font-size:1.22rem !important;
  }
  .hours-list strong{
    font-size:1.18rem !important;
    line-height:1.45 !important;
  }
}


/* === FINAL FIX: allarga card orari per evitare ritorni a capo === */
@media (min-width: 921px){
  .contact-grid{
    grid-template-columns:minmax(0, 1080px) !important;
  }
  .info-card-luxury{
    grid-template-columns:1fr 1fr !important;
    gap:18px !important;
  }
  .info-box-address{grid-column:1 !important; grid-row:1 !important;}
  .info-box-phone{grid-column:2 !important; grid-row:1 !important;}
  .info-box-hours{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    padding:30px 34px !important;
  }
  .info-box-social{
    grid-column:1 / -1 !important;
    grid-row:3 !important;
  }
  .hours-list li{
    grid-template-columns:170px 1fr !important;
    gap:28px !important;
  }
  .hours-list strong{
    white-space:nowrap !important;
    font-size:1.22rem !important;
  }
}


/* === FINAL FIX EXTRA: orari molto più larghi su desktop === */
@media (min-width: 921px){
  .contact-grid{
    grid-template-columns:minmax(0, 1160px) !important;
  }
  .info-card-luxury{
    width:100% !important;
    grid-template-columns:1fr 1fr !important;
    gap:20px !important;
  }
  .info-box-hours{
    grid-column:1 / -1 !important;
    width:100% !important;
    padding:34px 38px !important;
  }
  .hours-list{
    gap:12px !important;
  }
  .hours-list li{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:34px !important;
    grid-template-columns:none !important;
    flex-wrap:nowrap !important;
  }
  .hours-list span{
    flex:0 0 180px !important;
    max-width:180px !important;
    white-space:nowrap !important;
  }
  .hours-list strong{
    flex:1 1 auto !important;
    white-space:nowrap !important;
    font-size:1.24rem !important;
  }
  .info-box-social{
    grid-column:1 / -1 !important;
    width:100% !important;
  }
}


/* === FINAL EMERGENCY FIX: mobile contacts layout repaired === */
@media (max-width: 1180px){
  .contact-grid{
    grid-template-columns:minmax(0, 100%) !important;
    gap:20px !important;
  }
  .info-card-luxury{
    width:100% !important;
    max-width:100% !important;
    grid-template-columns:1fr !important;
    gap:16px !important;
    padding:18px !important;
    overflow:hidden !important;
  }
  .info-box-address,
  .info-box-phone,
  .info-box-hours,
  .info-box-social{
    grid-column:1 !important;
    grid-row:auto !important;
    width:100% !important;
    min-width:0 !important;
  }
  .info-card-luxury .info-box{
    padding:20px 18px !important;
    min-width:0 !important;
    overflow:hidden !important;
  }
  .info-card-luxury .info-box-address .info-value{
    max-width:none !important;
    font-size:1.22rem !important;
    line-height:1.28 !important;
    overflow-wrap:anywhere !important;
    word-break:normal !important;
  }
  .info-card-luxury .info-value{
    font-size:1.28rem !important;
    line-height:1.25 !important;
  }
  .info-card-luxury .info-text,
  .info-mini{
    font-size:1rem !important;
    line-height:1.55 !important;
  }
  .hours-list{
    gap:10px !important;
  }
  .hours-list li{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:4px !important;
    align-items:start !important;
    padding-bottom:12px !important;
  }
  .hours-list span{
    flex:none !important;
    max-width:none !important;
    white-space:normal !important;
    font-size:1.12rem !important;
    line-height:1.35 !important;
  }
  .hours-list strong{
    flex:none !important;
    white-space:normal !important;
    font-size:1.08rem !important;
    line-height:1.42 !important;
  }
  .social-links-elegant{
    gap:12px !important;
  }
  .social-link-elegant{
    padding:14px 14px !important;
    gap:12px !important;
    align-items:flex-start !important;
  }
  .social-link-elegant strong,
  .social-link-elegant small{
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }
}

@media (max-width: 700px){
  .info-card-luxury{
    border-radius:24px !important;
    padding:14px !important;
  }
  .info-card-luxury .info-box{
    border-radius:18px !important;
    padding:18px 16px !important;
  }
  .info-card-luxury .info-label{
    font-size:.82rem !important;
    letter-spacing:.16em !important;
    margin-bottom:10px !important;
  }
  .info-card-luxury .info-box-address .info-value,
  .info-card-luxury .info-value{
    font-size:1.14rem !important;
    line-height:1.26 !important;
  }
  .info-card-luxury .info-text,
  .info-mini{
    font-size:.96rem !important;
  }
  .hours-list span{
    font-size:1.05rem !important;
  }
  .hours-list strong{
    font-size:1rem !important;
  }
  .social-icon{
    width:42px !important;
    height:42px !important;
    flex-basis:42px !important;
  }
  .social-link-elegant strong{
    font-size:.98rem !important;
    line-height:1.35 !important;
  }
}


/* === FINAL DEFINITIVE FIX: contatti mobile perfetti === */
@media (max-width: 768px){
  #contact .container{
    padding-left:16px !important;
    padding-right:16px !important;
  }
  #contact .contact-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
    width:100% !important;
    max-width:100% !important;
  }
  #contact .info-card-luxury,
  #contact .form-card{
    width:100% !important;
    max-width:100% !important;
  }
  #contact .info-card-luxury{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:14px !important;
    padding:14px !important;
    border-radius:24px !important;
    overflow:hidden !important;
  }
  #contact .info-card-luxury .info-box{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    padding:18px 16px !important;
    border-radius:18px !important;
    overflow:hidden !important;
  }
  #contact .info-box-address,
  #contact .info-box-phone,
  #contact .info-box-hours,
  #contact .info-box-social{
    grid-column:auto !important;
    grid-row:auto !important;
    width:100% !important;
    max-width:100% !important;
  }
  #contact .info-card-luxury .info-label{
    font-size:.82rem !important;
    letter-spacing:.16em !important;
    margin-bottom:10px !important;
  }
  #contact .info-card-luxury .info-box-address .info-value,
  #contact .info-card-luxury .info-value{
    max-width:none !important;
    width:100% !important;
    font-size:1.18rem !important;
    line-height:1.28 !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
  }
  #contact .info-card-luxury .info-text,
  #contact .info-mini{
    font-size:.98rem !important;
    line-height:1.55 !important;
  }
  #contact .hours-list{
    display:block !important;
    width:100% !important;
  }
  #contact .hours-list li{
    display:block !important;
    width:100% !important;
    padding:0 0 12px !important;
    margin:0 0 12px !important;
    border-bottom:1px solid rgba(31,61,50,.10) !important;
  }
  #contact .hours-list li:last-child{
    margin-bottom:0 !important;
    padding-bottom:0 !important;
    border-bottom:0 !important;
  }
  #contact .hours-list span,
  #contact .hours-list strong{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    white-space:normal !important;
    word-break:normal !important;
  }
  #contact .hours-list span{
    margin-bottom:4px !important;
    font-size:1.06rem !important;
    line-height:1.35 !important;
  }
  #contact .hours-list strong{
    font-size:1rem !important;
    line-height:1.45 !important;
  }
  #contact .social-links-elegant{
    display:grid !important;
    gap:10px !important;
  }
  #contact .social-link-elegant{
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    padding:14px !important;
    width:100% !important;
    max-width:100% !important;
    border-radius:16px !important;
  }
  #contact .social-icon{
    width:40px !important;
    height:40px !important;
    min-width:40px !important;
    flex:0 0 40px !important;
  }
  #contact .social-link-elegant span:last-child{
    min-width:0 !important;
    width:100% !important;
  }
  #contact .social-link-elegant small,
  #contact .social-link-elegant strong{
    display:block !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }
  #contact .social-link-elegant small{
    font-size:.78rem !important;
  }
  #contact .social-link-elegant strong{
    font-size:.98rem !important;
    line-height:1.35 !important;
  }
  #contact .form-card{
    padding:18px 16px !important;
    border-radius:24px !important;
  }
  #contact .form-grid{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
}


/* === SEO / TRUST SECTION === */
.reviews-section{
  padding-top:clamp(70px,8vw,120px) !important;
}
.reviews-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  max-width:1120px;
  margin:0 auto;
}
.review-card{
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(249,247,241,.92));
  border:1px solid rgba(31,61,50,.10);
  border-radius:28px;
  padding:28px;
  box-shadow:0 22px 48px rgba(31,61,50,.07);
}
.review-stars{
  color:var(--orange);
  letter-spacing:.16em;
  font-size:1rem;
  margin-bottom:18px;
}
.review-card h3{
  margin:0 0 10px;
  font:500 1.45rem/1.15 var(--display);
  color:var(--green);
}
.review-card p{
  margin:0;
  font:400 1.08rem/1.58 var(--editorial);
  color:var(--muted);
}
@media(max-width:900px){
  .reviews-grid{grid-template-columns:1fr; gap:16px}
  .review-card{padding:22px; border-radius:24px}
}


/* === LOCAL SEO + TOURIST CONVERSION UPGRADE === */
.seo-h1{
  margin:0 0 14px;
  max-width:58ch;
  font:700 clamp(.86rem,1.05vw,1rem)/1.45 var(--body);
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--green);
}
.hero-seo-badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 28px;
}
.hero-seo-badges span{
  display:inline-flex;
  align-items:center;
  border:1px solid rgba(31,61,50,.14);
  background:rgba(255,255,255,.64);
  color:var(--green);
  border-radius:999px;
  padding:.62rem .9rem;
  font:700 .76rem/1 var(--body);
  letter-spacing:.08em;
  text-transform:uppercase;
  box-shadow:0 12px 28px rgba(31,61,50,.06);
}
.tourist-section{
  background:
    radial-gradient(circle at 10% 10%,rgba(216,122,53,.10),transparent 26%),
    linear-gradient(180deg,rgba(255,255,255,.42),rgba(245,239,227,.88));
}
.tourist-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  max-width:1180px;
  margin:0 auto 28px;
}
.tourist-card{
  position:relative;
  overflow:hidden;
  min-height:280px;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(251,247,239,.9));
  border:1px solid rgba(31,61,50,.11);
  border-radius:32px;
  padding:32px;
  box-shadow:0 24px 58px rgba(31,61,50,.08);
}
.tourist-card:after{
  content:"";
  position:absolute;
  right:-46px;
  bottom:-46px;
  width:150px;
  height:150px;
  border:1px solid rgba(216,122,53,.18);
  border-radius:50%;
}
.tourist-card.featured{
  background:linear-gradient(145deg,var(--green),#16342a 62%,#0f271f);
  color:#fff;
}
.tourist-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border-radius:50%;
  margin-bottom:24px;
  background:rgba(216,122,53,.12);
  color:var(--orange);
  font:700 .9rem var(--display);
}
.tourist-card.featured .tourist-number{
  background:rgba(255,255,255,.12);
  color:#d5b984;
}
.tourist-card h3{
  margin:0 0 14px;
  font:500 clamp(1.45rem,2vw,2rem)/1.05 var(--display);
  letter-spacing:.02em;
  color:var(--green);
}
.tourist-card.featured h3{color:#fff}
.tourist-card p{
  margin:0;
  font:400 1.08rem/1.58 var(--editorial);
  color:var(--muted);
}
.tourist-card.featured p{color:rgba(255,255,255,.78)}
.seo-copy-box{
  max-width:1020px;
  margin:34px auto 0;
  padding:30px clamp(24px,4vw,42px);
  border:1px solid rgba(31,61,50,.10);
  border-radius:30px;
  background:rgba(255,255,255,.72);
  box-shadow:0 18px 48px rgba(31,61,50,.06);
}
.seo-copy-box h3{
  margin:0 0 10px;
  font:500 clamp(1.5rem,2.2vw,2.35rem)/1.08 var(--display);
  color:var(--green);
}
.seo-copy-box p{
  margin:0;
  font:400 1.08rem/1.68 var(--editorial);
  color:var(--muted);
}
.rating-strip{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:22px;
  max-width:1120px;
  margin:0 auto 24px;
  padding:22px 24px;
  border:1px solid rgba(31,61,50,.10);
  border-radius:28px;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(249,247,241,.9));
  box-shadow:0 18px 42px rgba(31,61,50,.065);
}
.rating-main{
  display:flex;
  align-items:center;
  gap:14px;
  color:var(--orange);
  white-space:nowrap;
}
.rating-main strong{
  font:600 1.35rem var(--display);
  color:var(--green);
}
.rating-stars{
  letter-spacing:.12em;
  font-size:.95rem;
}
.rating-strip p{
  margin:0;
  font:400 1rem/1.45 var(--body);
  color:var(--muted);
}
.rating-strip a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:.82rem 1rem;
  background:var(--green);
  color:#fff;
  font:700 .76rem var(--body);
  letter-spacing:.12em;
  text-transform:uppercase;
}
@media(max-width:980px){
  .tourist-grid{grid-template-columns:1fr}
  .tourist-card{min-height:auto}
  .rating-strip{grid-template-columns:1fr; text-align:left}
  .rating-strip a{width:max-content}
}
@media(max-width:760px){
  .seo-h1{font-size:.78rem; letter-spacing:.12em}
  .hero-seo-badges{gap:8px; margin-bottom:24px}
  .hero-seo-badges span{font-size:.68rem; padding:.58rem .72rem}
  .tourist-card{padding:24px; border-radius:26px}
  .seo-copy-box{padding:24px; border-radius:24px}
  .rating-strip{padding:20px; border-radius:24px}
}


/* === LANGUAGE SELECTOR: 5 languages without breaking layout === */
.desktop-lang.lang{
  gap:3px !important;
  padding:4px !important;
}
.desktop-lang.lang button{
  padding:.62rem .66rem !important;
  min-width:42px !important;
  font-size:.78rem !important;
}
.mobile-panel .lang{
  grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
  border-radius:24px !important;
}
.mobile-panel .lang button{
  min-width:0 !important;
  width:100% !important;
  padding:.82rem 0 !important;
}
@media(max-width:700px){
  .mobile-panel .lang{
    grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
    gap:6px !important;
  }
  .mobile-panel .lang button{
    width:100% !important;
    height:40px !important;
    font-size:.78rem !important;
  }
}


/* === FINAL FIX: SEO keywords stay in metadata, not as visible pills === */
.hero-seo-badges{
  display:none !important;
}

/* === FINAL FIX: mobile hamburger language selector in one horizontal row === */
@media (max-width:1100px){
  .mobile-panel .lang,
  .mobile-panel > .lang{
    order:3 !important;
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:center !important;
    width:auto !important;
    max-width:100% !important;
    gap:8px !important;
    padding:0 !important;
    margin:8px auto 4px !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  .mobile-panel .lang button,
  .mobile-panel > .lang button{
    width:42px !important;
    min-width:42px !important;
    max-width:42px !important;
    height:32px !important;
    padding:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:0 !important;
    border:1px solid rgba(31,61,50,.18) !important;
    background:rgba(255,255,255,.48) !important;
    color:rgba(31,61,50,.70) !important;
    font:800 .68rem/1 var(--body) !important;
    letter-spacing:.10em !important;
    text-transform:uppercase !important;
    box-shadow:none !important;
  }
  .mobile-panel .lang button.active,
  .mobile-panel > .lang button.active{
    color:var(--orange) !important;
    border-color:rgba(216,122,53,.72) !important;
    background:rgba(255,255,255,.88) !important;
  }
}
@media (max-width:380px){
  .mobile-panel .lang,
  .mobile-panel > .lang{gap:6px !important;}
  .mobile-panel .lang button,
  .mobile-panel > .lang button{width:38px !important;min-width:38px !important;max-width:38px !important;font-size:.62rem !important;}
}

/* === FINAL FOOTER: SmartWebCrafted-inspired, adapted for Kairos === */
.footer.kairos-crafted-footer{
  position:relative;
  border-top:1px solid rgba(184,147,94,.20) !important;
  background:linear-gradient(180deg, #0b0e0d 0%, #050606 100%) !important;
  color:rgba(245,239,227,.62) !important;
  padding:28px 0 !important;
  box-shadow:0 -18px 60px rgba(0,0,0,.20);
}
.kairos-footer-inner{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  text-align:center !important;
  gap:6px !important;
}

/* Riga 1 — dati legali collassabili */
.footer-legal{
  width:100%;
  text-align:center;
}
.footer-legal summary{
  list-style:none;
  cursor:pointer;
  font:800 .62rem/1.4 var(--body);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(245,239,227,.35);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  user-select:none;
  transition:color .2s;
}
.footer-legal summary::-webkit-details-marker{ display:none; }
.footer-legal summary:hover{ color:rgba(245,239,227,.6); }
.footer-legal-chevron{
  display:inline-block;
  transition:transform .25s;
  font-style:normal;
}
.footer-legal[open] .footer-legal-chevron{ transform:rotate(90deg); }
.footer-legal-full{
  display:block;
  margin-top:5px;
  font:800 .62rem/1.6 var(--body);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(245,239,227,.42);
}

/* Riga 2 — copyright + credits sempre visibili */
.footer-bottom-row{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  font:800 .68rem/1.35 var(--body);
  letter-spacing:.21em;
  text-transform:uppercase;
}
.footer-copy{ color:rgba(245,239,227,.48); white-space:nowrap; }
.kairos-footer-left span{color:rgba(245,239,227,.48); line-height:1.7; white-space:nowrap;}
.kairos-footer-left{
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
}
.ukraine-mark{color:rgba(245,239,227,.62);white-space:nowrap;}
.ukraine-heart{
  display:inline-block;
  margin-right:7px;
  font-size:1rem;
  line-height:1;
  background:linear-gradient(180deg,#2f80ed 0 50%,#ffd43b 50% 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:drop-shadow(0 0 10px rgba(255,212,59,.22));
}
.footer-sep{color:rgba(245,239,227,.34);}
.footer-icon-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  text-decoration:none;
  color:#d7ad45 !important;
  transition:color .22s ease, transform .22s ease, opacity .22s ease;
}
.footer-icon-link:hover{color:#f1c852 !important;opacity:.96;transform:translateY(-1px);}
.developer-text-link{gap:0;}

.developer-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#d7ad45 !important;
  text-decoration:none;
  font-weight:950;
  letter-spacing:.08em;
  transition:color .22s ease, opacity .22s ease, transform .22s ease;
}
.developer-link:hover{color:#f1c852 !important;opacity:.96;transform:translateY(-1px);}
.developer-globe{
  width:16px;
  height:16px;
  display:inline-block;
  color:#d7ad45;
  flex:0 0 auto;
  filter:drop-shadow(0 0 9px rgba(215,173,69,.18));
}
.footer-social{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  color:rgba(245,239,227,.56) !important;
  text-decoration:none;
  transition:color .22s ease, transform .22s ease;
}
.footer-social svg{width:18px;height:18px;display:block;}
.footer-social:hover{color:#d7ad45 !important;transform:translateY(-1px);}
@media(max-width:760px){
  .footer.kairos-crafted-footer{padding:30px 0 34px !important;}
  .kairos-footer-inner{justify-content:center !important;text-align:center !important;}
  .kairos-footer-left,
  .kairos-footer-right{justify-content:center;gap:12px;font-size:.61rem;letter-spacing:.15em;}
  .footer-sep{display:inline-flex;}
}
@media(max-width:430px){
  .kairos-footer-left{width:100%;}
  .kairos-footer-right{gap:10px;line-height:1.8;}
  .developer-link{gap:6px;}
}


/* === NAV ALIGNMENT FIX: push brand/menu/actions to the far edges like reference === */
.nav-inner{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) !important;
  align-items:center !important;
  gap:18px !important;
  width:calc(100% - 12px) !important;
  max-width:none !important;
  margin:0 auto !important;
  padding:0 18px !important;
}
.nav-mark{
  grid-column:1 !important;
  justify-self:start !important;
}
.nav-links{
  grid-column:2 !important;
  justify-self:center !important;
  white-space:nowrap;
}
.nav-actions{
  grid-column:3 !important;
  justify-self:end !important;
  display:flex !important;
  align-items:center !important;
  gap:18px !important;
}
.nav-actions .desktop-lang{display:flex !important;}
.nav-actions .nav-cta{margin:0 !important;}
.burger{
  grid-column:3 !important;
  justify-self:end !important;
}
@media (max-width: 1280px){
  .nav-inner{padding:0 14px !important; gap:14px !important;}
  .nav-links{gap:22px !important;}
  .nav-links a{font-size:.78rem !important; letter-spacing:.18em !important;}
  .nav-actions{gap:12px !important;}
}
@media (max-width:1100px){
  .nav-inner{
    grid-template-columns:auto 1fr auto !important;
    width:min(var(--max),calc(100% - 1rem)) !important;
    max-width:none !important;
    padding:0 !important;
  }
  .nav-actions{display:none !important;}
  .burger{display:block !important;}
}


/* === PRELOADER REDESIGN: elegant Kairos intro with multilingual quote === */
.preloader{
  position:fixed !important;
  inset:0 !important;
  z-index:9999 !important;
  display:grid !important;
  place-items:center !important;
  background:
    radial-gradient(circle at 50% 34%, rgba(216,122,53,.14), transparent 26%),
    radial-gradient(circle at 50% 58%, rgba(184,147,94,.18), transparent 24%),
    linear-gradient(180deg, #143f39 0%, #0f3833 45%, #0a2521 100%) !important;
  overflow:hidden;
}
.preloader::before,
.preloader::after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
  opacity:.28;
}
.preloader::before{
  width:56vw;height:56vw;max-width:780px;max-height:780px;
  border:1px solid rgba(212,181,131,.08);
  box-shadow:0 0 0 26px rgba(212,181,131,.03), 0 0 0 58px rgba(212,181,131,.018);
}
.preloader::after{
  inset:auto auto 8% 12%;
  width:180px;height:180px;
  background:radial-gradient(circle, rgba(216,122,53,.12), transparent 70%);
  filter:blur(10px);
}
.preloader.hide{opacity:0; visibility:hidden; pointer-events:none; transition:opacity .55s ease, visibility .55s ease;}
.preloader-stage{
  position:relative;
  z-index:2;
  width:min(760px, calc(100vw - 40px));
  min-height:min(92vh, 980px);
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:22px !important;
  padding:42px 20px 34px !important;
}
.preloader-copy{
  width:min(680px, 100%);
  display:flex;
  align-items:flex-start;
  gap:18px;
  align-self:flex-start;
  margin-bottom:10px;
}
.preloader-copy-line{
  width:3px;
  min-width:3px;
  height:88px;
  border-radius:999px;
  background:linear-gradient(180deg, #db8740 0%, #b8935e 100%);
  box-shadow:0 0 18px rgba(216,122,53,.18);
}
.preloader-copy-text{max-width:620px;}
.preloader-quote{
  margin:0;
  color:#fff8ef;
  font:400 clamp(1.7rem, 3vw, 2.55rem)/1.24 var(--roman);
  letter-spacing:.01em;
  text-wrap:balance;
  text-shadow:0 10px 28px rgba(0,0,0,.16);
}
.preloader-quote-attr{
  display:inline-block;
  margin-top:16px;
  color:#d4b583;
  font:700 clamp(.76rem, 1vw, .92rem)/1.2 var(--body);
  letter-spacing:.42em;
  text-transform:uppercase;
}
.preloader-logo{
  width:min(560px, 88vw) !important;
  height:auto;
  filter:drop-shadow(0 18px 34px rgba(0,0,0,.14));
}
.preloader-wheel{
  width:min(430px, 76vw) !important;
  aspect-ratio:1/1;
  margin-top:4px;
  filter:drop-shadow(0 22px 34px rgba(0,0,0,.22));
}
.preloader-wheel svg{width:100%;height:100%;display:block;}
.preload-gear-slow{animation:spinSlow 26s linear infinite; transform-origin:center;}
.preload-gear-inner{animation:spinReverse 16s linear infinite; transform-origin:center;}
@keyframes spinSlow{from{transform:rotate(0)} to{transform:rotate(360deg)}}
@keyframes spinReverse{from{transform:rotate(360deg)} to{transform:rotate(0)}}
.preloader-langs{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:4px;
}
.preloader-langs button{
  appearance:none;
  border:1px solid rgba(212,181,131,.28);
  background:rgba(255,255,255,.04);
  color:rgba(255,248,239,.78);
  border-radius:999px;
  min-width:48px;
  height:38px;
  padding:0 14px;
  font:800 .8rem/1 var(--body);
  letter-spacing:.18em;
  text-transform:uppercase;
  cursor:pointer;
  transition:all .25s ease;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.preloader-langs button:hover,
.preloader-langs button.active{
  color:#fff;
  background:linear-gradient(180deg, rgba(216,122,53,.94), rgba(184,147,94,.9));
  border-color:rgba(216,122,53,.85);
  box-shadow:0 10px 22px rgba(216,122,53,.18);
  transform:translateY(-1px);
}
.preloader-enter{
  margin-top:2px;
  appearance:none;
  border:1px solid var(--orange);
  background:var(--orange);
  color:#fff;
  border-radius:999px;
  padding:1rem 1.9rem;
  min-width:228px;
  font:800 .86rem var(--body);
  letter-spacing:.19em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:0 20px 38px rgba(216,122,53,.26);
  transition:transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.preloader-enter:hover{transform:translateY(-2px);box-shadow:0 24px 40px rgba(216,122,53,.3);filter:saturate(1.03);}
.preloader-enter:active{transform:translateY(0);}
.preloader-enter:focus-visible{outline:2px solid rgba(255,255,255,.58);outline-offset:3px;}
@media (max-width: 760px){
  .preloader-stage{width:min(96vw, 560px); gap:18px !important; padding:28px 14px 24px !important;}
  .preloader-copy{gap:12px; margin-bottom:2px;}
  .preloader-copy-line{height:62px;}
  .preloader-quote{font-size:clamp(1.1rem, 6vw, 1.58rem); line-height:1.32;}
  .preloader-quote-attr{margin-top:12px; letter-spacing:.26em; font-size:.72rem;}
  .preloader-logo{width:min(94vw, 430px) !important;}
  .preloader-wheel{width:min(82vw, 320px) !important;}
  .preloader-langs{gap:8px;}
  .preloader-langs button{min-width:42px; height:34px; padding:0 10px; font-size:.72rem; letter-spacing:.12em;}
  .preloader-enter{min-width:210px; padding:.96rem 1.45rem; font-size:.8rem;}
}


/* === PRELOADER WOW V2: logo first, quote below, hidden language row, premium center layout === */
.preloader{
  background:
    radial-gradient(circle at 50% 24%, rgba(216,122,53,.10), transparent 20%),
    radial-gradient(circle at 50% 58%, rgba(184,147,94,.12), transparent 18%),
    linear-gradient(180deg, #104842 0%, #0b3f39 36%, #082c28 100%) !important;
}
.preloader::before{
  width:58vw;height:58vw;max-width:860px;max-height:860px;
  border:1px solid rgba(212,181,131,.06);
  box-shadow:0 0 0 36px rgba(212,181,131,.025), 0 0 0 84px rgba(212,181,131,.012);
  opacity:.4;
}
.preloader-stage{
  width:min(820px, calc(100vw - 34px)) !important;
  min-height:min(92vh, 980px) !important;
  gap:16px !important;
  padding:34px 18px 26px !important;
}
.preloader-logo{
  order:1 !important;
  width:min(620px, 92vw) !important;
  margin-top:4px;
  filter:drop-shadow(0 22px 42px rgba(0,0,0,.18));
}
.preloader-copy{
  order:2 !important;
  width:min(760px, 100%) !important;
  align-self:center !important;
  justify-content:center !important;
  gap:18px !important;
  margin:4px 0 2px !important;
  text-align:left;
}
.preloader-copy-line{
  height:104px !important;
  margin-top:4px;
}
.preloader-copy-text{
  max-width:660px !important;
  padding:6px 0;
  transition:opacity .26s ease, transform .26s ease, filter .26s ease;
}
.preloader-copy-text.is-changing{
  opacity:0;
  transform:translateY(8px);
  filter:blur(2px);
}
.preloader-quote{
  font:400 clamp(2rem, 3.5vw, 3.15rem)/1.18 var(--roman) !important;
  letter-spacing:.005em !important;
  color:#fff6ec !important;
  text-shadow:0 14px 26px rgba(0,0,0,.16);
}
.preloader-quote-attr{
  margin-top:14px !important;
  color:#d8b06c !important;
  font:800 clamp(.82rem, 1vw, 1rem)/1.2 var(--body) !important;
  letter-spacing:.40em !important;
}
.preloader-wheel{
  order:3 !important;
  width:min(365px, 64vw) !important;
  margin-top:8px !important;
  opacity:.98;
}
.preloader-langs{
  display:none !important;
}
.preloader-enter{
  order:4 !important;
  margin-top:10px !important;
  min-width:246px !important;
}
@media (max-width: 760px){
  .preloader-stage{width:min(96vw, 540px) !important; gap:14px !important; padding:24px 12px 20px !important;}
  .preloader-logo{width:min(94vw, 430px) !important;}
  .preloader-copy{width:100% !important; gap:12px !important; margin-top:0 !important;}
  .preloader-copy-line{height:72px !important;}
  .preloader-copy-text{max-width:100% !important;}
  .preloader-quote{font-size:clamp(1.15rem, 6.3vw, 1.82rem) !important; line-height:1.25 !important;}
  .preloader-quote-attr{font-size:.72rem !important; letter-spacing:.24em !important;}
  .preloader-wheel{width:min(78vw, 300px) !important; margin-top:6px !important;}
  .preloader-enter{min-width:214px !important;}
}


/* === PRELOADER OVERFLOW FIX: no expansion/cut when language rotates === */
html:has(body.preloader-open),
body.preloader-open{
  overflow:hidden !important;
  height:100% !important;
}
body.preloader-open .preloader{
  overflow:hidden !important;
}
body.preloader-open .preloader-stage{
  min-height:100dvh !important;
  height:100dvh !important;
  max-height:100dvh !important;
  justify-content:space-between !important;
  gap:0 !important;
  padding:clamp(14px,2dvh,24px) 18px max(clamp(20px,3dvh,32px), env(safe-area-inset-bottom, 20px)) !important;
  box-sizing:border-box !important;
}
body.preloader-open .preloader-logo{
  width:min(520px, 60vw, 76vh) !important;
  max-height:22vh !important;
  object-fit:contain !important;
  margin:0 !important;
}
body.preloader-open .preloader-copy{
  width:min(640px, 82vw) !important;
  min-height:clamp(126px, 19vh, 165px) !important;
  max-height:clamp(126px, 19vh, 165px) !important;
  overflow:hidden !important;
  align-items:center !important;
  margin:0 !important;
}
body.preloader-open .preloader-copy-line{
  height:clamp(78px, 12vh, 108px) !important;
  flex:0 0 3px !important;
}
body.preloader-open .preloader-copy-text{
  max-width:610px !important;
  overflow:hidden !important;
}
body.preloader-open .preloader-quote{
  font-size:clamp(1.55rem, 2.45vw, 2.35rem) !important;
  line-height:1.14 !important;
  display:-webkit-box !important;
  -webkit-line-clamp:3 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
}
body.preloader-open .preloader-quote-attr{
  margin-top:10px !important;
  font-size:clamp(.66rem, .78vw, .82rem) !important;
  letter-spacing:.34em !important;
  white-space:nowrap !important;
}
body.preloader-open .preloader-wheel{
  width:min(300px, 60vw, 32dvh) !important;
  margin:0 !important;
}
body.preloader-open .preloader-enter{
  margin:0 !important;
  min-width:220px !important;
  padding:.88rem 1.45rem !important;
  font-size:.78rem !important;
}
/* ─── MOBILE UNIFICATO — stessi valori su iPhone e Samsung ─── */
@media (max-width:760px){
  body.preloader-open .preloader-stage{
    justify-content:space-between !important;
    gap:0 !important;
    padding:clamp(12px,1.8dvh,20px) 14px max(clamp(18px,3dvh,28px), env(safe-area-inset-bottom, 18px)) !important;
  }
  body.preloader-open .preloader-logo{
    width:min(340px, 82vw) !important;
    max-height:clamp(64px, 15dvh, 100px) !important;
  }
  body.preloader-open .preloader-copy{
    width:min(94vw, 420px) !important;
    min-height:clamp(88px, 18dvh, 130px) !important;
    max-height:clamp(88px, 18dvh, 130px) !important;
    gap:8px !important;
  }
  body.preloader-open .preloader-copy-line{
    height:clamp(58px, 10dvh, 80px) !important;
  }
  body.preloader-open .preloader-quote{
    font-size:clamp(.95rem, 4.6vw, 1.32rem) !important;
    line-height:1.18 !important;
    -webkit-line-clamp:3 !important;
  }
  body.preloader-open .preloader-quote-attr{
    margin-top:6px !important;
    font-size:.6rem !important;
    letter-spacing:.2em !important;
  }
  /* ruota grande, identica su iPhone e Samsung */
  body.preloader-open .preloader-wheel{
    width:min(260px, 60vw, 30dvh) !important;
    margin:0 !important;
  }
  body.preloader-open .preloader-enter{
    width:min(280px, 78vw) !important;
    min-width:min(220px, 70vw) !important;
    padding:.82rem 1.2rem !important;
    font-size:.74rem !important;
    margin:0 !important;
  }
}
@media (max-height:760px){
  body.preloader-open .preloader-logo{max-height:18vh !important; width:min(460px, 54vw) !important;}
  body.preloader-open .preloader-copy{min-height:118px !important; max-height:118px !important;}
  body.preloader-open .preloader-quote{font-size:clamp(1.18rem, 2.1vw, 1.78rem) !important; line-height:1.12 !important;}
  body.preloader-open .preloader-quote-attr{font-size:.62rem !important; margin-top:8px !important;}
  body.preloader-open .preloader-wheel{width:min(240px, 30vw, 30vh) !important;}
  body.preloader-open .preloader-enter{padding:.74rem 1.18rem !important;}
}


/* === PRELOADER FOOD BUBBLES / MICRO CAROUSEL === */
body.preloader-open .preloader-stage{position:relative; isolation:isolate;}
.preloader-bubbles{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
}
.preloader-bubble{
  position:absolute;
  border-radius:50%;
  padding:7px;
  background:linear-gradient(180deg, rgba(216,122,53,.95), rgba(184,147,94,.88));
  box-shadow:0 16px 34px rgba(0,0,0,.22), 0 0 0 1px rgba(255,255,255,.08);
  animation:preBubbleFloat 7s ease-in-out infinite;
}
.preloader-bubble::after{
  content:"";
  position:absolute;
  inset:7px;
  border-radius:50%;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);
}
.preloader-bubble-media{
  display:block;
  width:100%;
  height:100%;
  border-radius:50%;
  background-size:cover;
  background-position:center;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);
  transition:opacity .55s ease, transform .55s ease, filter .55s ease, background-image .2s ease;
}
.preloader-bubble.is-switching .preloader-bubble-media{
  opacity:.35;
  transform:scale(.94);
  filter:saturate(.88);
}
.bubble-a{width:112px;height:112px;left:4%;top:18%;animation-delay:0s;}
.bubble-b{width:92px;height:92px;right:8%;top:29%;animation-delay:1.3s;}
.bubble-c{width:104px;height:104px;left:8%;bottom:22%;animation-delay:2.1s;}
.bubble-d{width:126px;height:126px;right:5%;bottom:17%;animation-delay:3.1s;}
@keyframes preBubbleFloat{
  0%,100%{transform:translateY(0px) rotate(0deg);}
  50%{transform:translateY(-10px) rotate(1.4deg);}
}
@media (max-width: 1180px){
  .bubble-a{left:1%; top:18%; width:96px; height:96px;}
  .bubble-b{right:2%; top:32%; width:84px; height:84px;}
  .bubble-c{left:4%; bottom:24%; width:92px; height:92px;}
  .bubble-d{right:1%; bottom:18%; width:108px; height:108px;}
}
@media (max-width: 900px){
  .bubble-a,.bubble-b{display:none;}
  .bubble-c{left:4%; bottom:20%; width:78px; height:78px;}
  .bubble-d{right:4%; bottom:17%; width:90px; height:90px;}
}
@media (max-width: 640px){
  .preloader-bubbles{display:none;}
}

.preloader-bubbles{z-index:0;}
.preloader-copy, .preloader-logo, .preloader-wheel, .preloader-enter{position:relative; z-index:2;}


/* === MOBILE PRELOADER PREMIUM REFINEMENT === */
@media (max-width:760px){
  body.preloader-open .preloader-stage{
    justify-content:flex-start !important;
    gap:14px !important;
    padding:30px 16px 18px !important;
  }
  body.preloader-open .preloader-logo{
    order:1 !important;
    width:min(430px, 90vw) !important;
    max-height:none !important;
    margin-top:8px !important;
  }
  body.preloader-open .preloader-copy{
    order:2 !important;
    width:min(90vw, 520px) !important;
    min-height:150px !important;
    max-height:150px !important;
    align-items:flex-start !important;
    margin-top:4px !important;
  }
  body.preloader-open .preloader-copy-line{
    height:86px !important;
  }
  body.preloader-open .preloader-copy-text{
    max-width:100% !important;
  }
  body.preloader-open .preloader-quote{
    font-size:clamp(1.28rem, 5.9vw, 1.72rem) !important;
    line-height:1.22 !important;
    -webkit-line-clamp:4 !important;
  }
  body.preloader-open .preloader-quote-attr{
    font-size:.68rem !important;
    letter-spacing:.20em !important;
    margin-top:10px !important;
  }
  body.preloader-open .preloader-wheel{
    order:3 !important;
    width:min(315px, 74vw) !important;
    margin:6px auto 0 !important;
  }
  body.preloader-open .preloader-enter{
    order:4 !important;
    margin-top:auto !important;
    margin-bottom:8px !important;
    min-width:min(320px, 82vw) !important;
    padding:1rem 1.45rem !important;
    font-size:.86rem !important;
  }

  .preloader-bubbles{display:block !important; z-index:0 !important;}
  .preloader-bubble{padding:5px !important; box-shadow:0 12px 24px rgba(0,0,0,.18), 0 0 0 1px rgba(255,255,255,.08) !important;}
  .bubble-a,.bubble-b,.bubble-c,.bubble-d{display:block !important;}
  .bubble-a{width:62px !important; height:62px !important; left:4% !important; top:12% !important;}
  .bubble-b{width:58px !important; height:58px !important; right:4% !important; top:18% !important;}
  .bubble-c{width:66px !important; height:66px !important; left:5% !important; bottom:22% !important;}
  .bubble-d{width:74px !important; height:74px !important; right:5% !important; bottom:18% !important;}
}
@media (max-width:420px){
  body.preloader-open .preloader-stage{padding:26px 14px 16px !important;}
  body.preloader-open .preloader-logo{width:min(390px, 88vw) !important;}
  body.preloader-open .preloader-copy{min-height:144px !important; max-height:144px !important;}
  body.preloader-open .preloader-quote{font-size:clamp(1.22rem, 6vw, 1.56rem) !important;}
  body.preloader-open .preloader-wheel{width:min(292px, 72vw) !important;}
  body.preloader-open .preloader-enter{min-width:min(300px, 82vw) !important;}
}


/* === DESKTOP PRELOADER WIDER LAYOUT === */
@media (min-width: 1024px){
  body.preloader-open .preloader-stage{
    width:min(1380px, calc(100vw - 88px)) !important;
    max-width:none !important;
    gap:18px !important;
    padding-left:40px !important;
    padding-right:40px !important;
  }
  body.preloader-open .preloader-logo{
    width:min(650px, 48vw) !important;
    max-height:24vh !important;
  }
  body.preloader-open .preloader-copy{
    width:min(760px, 56vw) !important;
    min-height:170px !important;
    max-height:170px !important;
  }
  body.preloader-open .preloader-quote{
    font-size:clamp(1.8rem, 2.3vw, 2.7rem) !important;
    line-height:1.16 !important;
  }
  body.preloader-open .preloader-quote-attr{
    font-size:clamp(.68rem, .76vw, .86rem) !important;
  }
  body.preloader-open .preloader-wheel{
    width:min(340px, 24vw, 36vh) !important;
  }
  .preloader-bubbles{
    inset:0 -2vw !important;
  }
  .bubble-a{width:118px !important; height:118px !important; left:12% !important; top:18% !important;}
  .bubble-b{width:98px !important; height:98px !important; right:13% !important; top:30% !important;}
  .bubble-c{width:112px !important; height:112px !important; left:14% !important; bottom:18% !important;}
  .bubble-d{width:128px !important; height:128px !important; right:12% !important; bottom:15% !important;}
}
@media (min-width: 1500px){
  .preloader-bubbles{inset:0 -5vw !important;}
  .bubble-a{left:15% !important;}
  .bubble-b{right:16% !important;}
  .bubble-c{left:17% !important;}
  .bubble-d{right:15% !important;}
}


/* === MOBILE PRELOADER FINAL REWORK === */
@media (max-width: 760px){
  body.preloader-open .preloader-stage{
    width:100vw !important;
    min-height:100dvh !important;
    height:100dvh !important;
    padding:18px 18px 16px !important;
    justify-content:flex-start !important;
    gap:12px !important;
    overflow:hidden !important;
  }
  body.preloader-open .preloader-logo{
    width:min(390px, 92vw) !important;
    max-width:92vw !important;
    max-height:none !important;
    margin:2px auto 0 !important;
  }
  body.preloader-open .preloader-copy{
    width:min(100%, 390px) !important;
    min-height:136px !important;
    max-height:136px !important;
    margin:2px auto 0 !important;
    gap:10px !important;
    align-items:flex-start !important;
  }
  body.preloader-open .preloader-copy-line{
    height:82px !important;
  }
  body.preloader-open .preloader-copy-text{
    max-width:100% !important;
  }
  body.preloader-open .preloader-quote{
    font-size:clamp(1.34rem, 5.85vw, 1.72rem) !important;
    line-height:1.20 !important;
    -webkit-line-clamp:4 !important;
  }
  body.preloader-open .preloader-quote-attr{
    margin-top:10px !important;
    font-size:.68rem !important;
    letter-spacing:.17em !important;
  }
  body.preloader-open .preloader-wheel{
    width:min(330px, 80vw) !important;
    max-width:80vw !important;
    margin:4px auto 0 !important;
  }
  body.preloader-open .preloader-enter{
    min-width:min(320px, 86vw) !important;
    width:min(320px, 86vw) !important;
    margin: auto auto 6px !important;
    padding:1rem 1.4rem !important;
    font-size:.9rem !important;
    letter-spacing:.16em !important;
  }

  .preloader-bubbles{display:block !important; inset:0 !important; z-index:0 !important;}
  .preloader-bubble{display:block !important; padding:4px !important;}
  .bubble-a{width:56px !important; height:56px !important; left:8px !important; top:110px !important;}
  .bubble-b{width:56px !important; height:56px !important; right:8px !important; top:160px !important;}
  .bubble-c{width:64px !important; height:64px !important; left:14px !important; bottom:155px !important;}
  .bubble-d{width:64px !important; height:64px !important; right:14px !important; bottom:145px !important;}
}
@media (max-width: 430px){
  body.preloader-open .preloader-stage{
    padding:16px 16px 14px !important;
  }
  body.preloader-open .preloader-logo{
    width:min(370px, 90vw) !important;
  }
  body.preloader-open .preloader-copy{
    min-height:132px !important;
    max-height:132px !important;
  }
  body.preloader-open .preloader-quote{
    font-size:clamp(1.28rem, 6vw, 1.58rem) !important;
  }
  body.preloader-open .preloader-wheel{
    width:min(312px, 78vw) !important;
  }
  body.preloader-open .preloader-enter{
    width:min(300px, 84vw) !important;
    min-width:min(300px, 84vw) !important;
  }
}
@media (max-width: 360px){
  body.preloader-open .preloader-copy{
    min-height:126px !important;
    max-height:126px !important;
  }
  body.preloader-open .preloader-quote{
    font-size:1.18rem !important;
    line-height:1.18 !important;
  }
  .bubble-a,.bubble-b{width:50px !important; height:50px !important;}
  .bubble-c,.bubble-d{width:56px !important; height:56px !important; bottom:148px !important;}
}


/* === MOBILE PRELOADER POLISH: cleaner composition === */
@media (max-width: 760px){
  body.preloader-open .preloader-stage{
    padding:22px 20px 18px !important;
    gap:14px !important;
  }
  body.preloader-open .preloader-logo{
    width:min(350px, 84vw) !important;
    max-width:84vw !important;
    margin:8px auto 2px !important;
  }
  body.preloader-open .preloader-copy{
    width:min(360px, 86vw) !important;
    min-height:146px !important;
    max-height:146px !important;
    margin:2px auto 0 !important;
  }
  body.preloader-open .preloader-copy-line{
    height:78px !important;
  }
  body.preloader-open .preloader-quote{
    font-size:clamp(1.22rem, 5.25vw, 1.56rem) !important;
    line-height:1.19 !important;
    -webkit-line-clamp:4 !important;
  }
  body.preloader-open .preloader-quote-attr{
    margin-top:9px !important;
    font-size:.66rem !important;
    letter-spacing:.16em !important;
  }
  body.preloader-open .preloader-wheel{
    width:min(292px, 71vw) !important;
    max-width:71vw !important;
    margin:2px auto 0 !important;
  }
  body.preloader-open .preloader-enter{
    width:min(296px, 78vw) !important;
    min-width:min(296px, 78vw) !important;
    margin:auto auto 8px !important;
    padding:.98rem 1.35rem !important;
    font-size:.86rem !important;
    letter-spacing:.15em !important;
  }

  .preloader-bubble{padding:4px !important;}
  .bubble-a{width:50px !important; height:50px !important; left:10px !important; top:39% !important;}
  .bubble-b{width:50px !important; height:50px !important; right:10px !important; top:34% !important;}
  .bubble-c{width:58px !important; height:58px !important; left:12px !important; bottom:18% !important;}
  .bubble-d{width:58px !important; height:58px !important; right:12px !important; bottom:17% !important;}
}
@media (max-width: 430px){
  body.preloader-open .preloader-logo{
    width:min(336px, 83vw) !important;
  }
  body.preloader-open .preloader-copy{
    width:min(348px, 85vw) !important;
    min-height:142px !important;
    max-height:142px !important;
  }
  body.preloader-open .preloader-quote{
    font-size:clamp(1.18rem, 5.6vw, 1.48rem) !important;
  }
  body.preloader-open .preloader-wheel{
    width:min(282px, 69vw) !important;
  }
  body.preloader-open .preloader-enter{
    width:min(286px, 77vw) !important;
    min-width:min(286px, 77vw) !important;
  }
}


/* === PRELOADER FINAL CONCEPT: ribbon instead of bubbles === */
.preloader-bubbles{display:none !important;}
.preloader-ribbon{
  order:4 !important;
  width:min(560px, 82vw);
  margin:2px auto 0;
  position:relative;
  z-index:2;
}
.preloader-ribbon::before,
.preloader-ribbon::after{
  content:"";
  position:absolute;
  top:50%;
  width:54px;
  height:1px;
  background:linear-gradient(90deg, rgba(212,181,131,0), rgba(212,181,131,.5));
}
.preloader-ribbon::before{left:-70px;}
.preloader-ribbon::after{right:-70px; transform:scaleX(-1);}
.preloader-ribbon-track{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:14px;
  align-items:center;
}
.preloader-ribbon-card{
  position:relative;
  aspect-ratio: 1.45 / 1;
  border-radius:18px;
  padding:0;
  background:transparent;
  border:2px solid rgba(255,255,255,0.6);
  box-shadow:0 14px 30px rgba(0,0,0,.22);
  overflow:hidden;
  transform:translateY(0);
}
.preloader-ribbon-card:nth-child(2){transform:translateY(-8px);}
.preloader-ribbon-card::after{
  content:none;
}
.preloader-ribbon-media{
  display:block;width:100%;height:100%;border-radius:0;
  background-size:cover;background-position:center;
  transition:none;
  filter:saturate(1.02);
}
.preloader-ribbon-card.is-switching .preloader-ribbon-media{}
.preloader-copy, .preloader-logo, .preloader-wheel, .preloader-enter, .preloader-ribbon{position:relative; z-index:2;}

@media (min-width: 1024px){
  body.preloader-open .preloader-stage{
    width:min(1320px, calc(100vw - 88px)) !important;
  }
  body.preloader-open .preloader-logo{width:min(620px, 46vw) !important;}
  body.preloader-open .preloader-copy{width:min(720px, 52vw) !important; min-height:155px !important; max-height:155px !important;}
  body.preloader-open .preloader-quote{font-size:clamp(1.75rem, 2.1vw, 2.5rem) !important;}
  body.preloader-open .preloader-wheel{width:min(280px, 20vw, 31vh) !important; margin-top:6px !important;}
  .preloader-ribbon{width:min(520px, 42vw) !important; margin-top:6px !important;}
  body.preloader-open .preloader-enter{margin-top:12px !important; min-width:200px !important; width:auto !important; padding:.86rem 1.45rem !important;}
}

@media (max-width: 760px){
  body.preloader-open .preloader-stage{justify-content:space-between !important; gap:0 !important; padding:clamp(12px,1.8dvh,20px) 14px max(clamp(18px,3dvh,28px), env(safe-area-inset-bottom, 18px)) !important;}
  body.preloader-open .preloader-logo{width:min(340px, 82vw) !important; max-height:clamp(64px,15dvh,100px) !important; margin:0 auto !important;}
  body.preloader-open .preloader-copy{width:min(350px, 86vw) !important; min-height:clamp(88px,18dvh,130px) !important; max-height:clamp(88px,18dvh,130px) !important; margin:0 auto !important;}
  body.preloader-open .preloader-quote{font-size:clamp(.95rem, 4.6vw, 1.32rem) !important; line-height:1.18 !important;}
  body.preloader-open .preloader-copy-line{height:clamp(58px,10dvh,80px) !important;}
  body.preloader-open .preloader-quote-attr{font-size:.6rem !important; letter-spacing:.18em !important; margin-top:6px !important;}
  body.preloader-open .preloader-wheel{width:min(260px, 60vw, 30dvh) !important; max-width:60vw !important; margin:0 auto !important;}
  .preloader-ribbon{width:min(280px, 76vw) !important; margin:0 auto !important;}
  .preloader-ribbon::before,.preloader-ribbon::after{display:none;}
  .preloader-ribbon-track{gap:9px !important;}
  .preloader-ribbon-card{border-radius:14px !important; padding:0 !important; aspect-ratio:1.34/1 !important;}
  .preloader-ribbon-card::after{content:none;}
  .preloader-ribbon-card:nth-child(2){transform:translateY(-5px);}
  body.preloader-open .preloader-enter{width:min(280px, 78vw) !important; min-width:min(220px, 70vw) !important; padding:.82rem 1.2rem !important; font-size:.74rem !important; margin:0 auto !important;}
}

@media (max-width: 420px){
  body.preloader-open .preloader-logo{width:min(300px, 80vw) !important;}
  body.preloader-open .preloader-copy{width:min(320px, 84vw) !important; min-height:clamp(80px, 16dvh, 118px) !important; max-height:clamp(80px, 16dvh, 118px) !important;}
  body.preloader-open .preloader-wheel{width:min(240px, 58vw, 28dvh) !important;}
  .preloader-ribbon{width:min(262px, 74vw) !important;}
  body.preloader-open .preloader-enter{width:min(260px, 74vw) !important; min-width:min(200px, 66vw) !important;}
}


/* === DESKTOP ONLY: side photo composition, mobile untouched === */
@media (min-width: 1024px){
  body.preloader-open .preloader-stage{
    width:min(1440px, calc(100vw - 88px)) !important;
    position:relative !important;
    isolation:isolate !important;
  }

  /* keep center content strong */
  body.preloader-open .preloader-logo,
  body.preloader-open .preloader-copy,
  body.preloader-open .preloader-wheel,
  body.preloader-open .preloader-enter{
    position:relative;
    z-index:3 !important;
  }

  /* turn the ribbon into floating side cards only on desktop */
  .preloader-ribbon{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    margin:0 !important;
    pointer-events:none !important;
    z-index:1 !important;
  }
  .preloader-ribbon::before,
  .preloader-ribbon::after{display:none !important;}
  .preloader-ribbon-track{
    display:block !important;
    width:100%;
    height:100%;
  }
  .preloader-ribbon-card{
    position:absolute !important;
    width:220px !important;
    aspect-ratio: 1.34 / 1 !important;
    padding:7px !important;
    border-radius:24px !important;
    box-shadow:0 18px 38px rgba(0,0,0,.20), inset 0 0 0 1px rgba(255,255,255,.08) !important;
  }
  .preloader-ribbon-card::after{
    inset:7px !important;
    border-radius:18px !important;
  }
  .preloader-ribbon-media{border-radius:18px !important;}

  /* placement: readable, on the sides, without ruining the center */
  .preloader-ribbon-card.card-1{
    left:8.5% !important;
    top:31% !important;
    transform:rotate(-5deg) !important;
  }
  .preloader-ribbon-card.card-2{
    left:10.5% !important;
    top:66% !important;
    transform:rotate(-2deg) !important;
  }
  .preloader-ribbon-card.card-3{
    right:8.5% !important;
    top:52% !important;
    transform:rotate(4deg) !important;
  }

  body.preloader-open .preloader-wheel{
    width:min(260px, 18vw, 30vh) !important;
    margin-top:10px !important;
  }
  body.preloader-open .preloader-enter{
    margin-top:14px !important;
  }
}

@media (min-width: 1280px){
  .preloader-ribbon-card{width:240px !important;}
  .preloader-ribbon-card.card-1{left:9% !important;}
  .preloader-ribbon-card.card-2{left:11.5% !important; top:67% !important;}
  .preloader-ribbon-card.card-3{right:9% !important;}
}

@media (min-width: 1600px){
  .preloader-ribbon-card.card-1{left:12% !important;}
  .preloader-ribbon-card.card-2{left:14% !important;}
  .preloader-ribbon-card.card-3{right:12% !important;}
}


/* === DESKTOP REFINEMENT: wider side cards + safer multilingual quote height === */
@media (min-width: 1024px){
  body.preloader-open .preloader-copy{
    width:min(780px, 56vw) !important;
    min-height:190px !important;
    max-height:190px !important;
  }
  body.preloader-open .preloader-quote{
    font-size:clamp(1.72rem, 2.05vw, 2.42rem) !important;
    line-height:1.15 !important;
  }
  body.preloader-open .preloader-quote-attr{
    margin-top:12px !important;
    font-size:clamp(.70rem, .78vw, .88rem) !important;
  }

  .preloader-ribbon-card{
    width:246px !important;
  }
  .preloader-ribbon-card.card-1{
    left:4.8% !important;
    top:33% !important;
    transform:rotate(-4deg) !important;
  }
  .preloader-ribbon-card.card-2{
    left:6.5% !important;
    top:69% !important;
    transform:rotate(-2deg) !important;
  }
  .preloader-ribbon-card.card-3{
    right:4.8% !important;
    top:56% !important;
    transform:rotate(4deg) !important;
  }
}

@media (min-width: 1280px){
  .preloader-ribbon-card{width:258px !important;}
  .preloader-ribbon-card.card-1{left:5.2% !important; top:32% !important;}
  .preloader-ribbon-card.card-2{left:7.2% !important; top:69.5% !important;}
  .preloader-ribbon-card.card-3{right:5.2% !important; top:55.5% !important;}
}

@media (min-width: 1600px){
  .preloader-ribbon-card{width:270px !important;}
  .preloader-ribbon-card.card-1{left:7.5% !important;}
  .preloader-ribbon-card.card-2{left:9.8% !important;}
  .preloader-ribbon-card.card-3{right:7.5% !important;}
}


/* === FINAL LOGO CENTERING FIX === */
.preloader-logo,
body.preloader-open .preloader-logo{
  display:block !important;
  align-self:center !important;
  justify-self:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
  object-fit:contain !important;
  object-position:center center !important;
  transform:none !important;
}

@media (min-width: 1024px){
  body.preloader-open .preloader-logo{
    width:min(640px, 47vw) !important;
    margin:0 auto 2px !important;
  }
}

@media (max-width: 760px){
  body.preloader-open .preloader-logo{
    width:min(338px, 84vw) !important;
    margin:6px auto 2px !important;
  }
}


/* === REFINED HOURS DESIGN === */
.info-box-hours{
  background:linear-gradient(180deg, rgba(255,255,255,.6), rgba(248,245,239,.92));
}
.hours-list-refined{gap:0 !important;}
.hours-list-refined li{
  display:grid !important;
  grid-template-columns:minmax(130px, 180px) 1fr !important;
  gap:20px !important;
  align-items:center !important;
  padding:18px 0 !important;
  border-bottom:1px solid rgba(19,62,60,.12) !important;
}
.hours-list-refined li:last-child{border-bottom:1px solid rgba(19,62,60,.12) !important;}
.hours-list-refined > li > span{
  font-size:1rem !important;
  font-weight:800 !important;
  color:var(--green-900) !important;
}
.hours-stack{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-start;
}
.hour-slot{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:42px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(19,62,60,.08);
  box-shadow:0 8px 20px rgba(11,46,44,.05);
}
.hour-slot strong{
  font-size:.98rem !important;
  font-weight:800 !important;
  color:var(--green-900) !important;
  letter-spacing:.01em;
}
.hour-badge{
  width:26px;
  height:26px;
  border-radius:50%;
  display:inline-grid;
  place-items:center;
  font-size:.86rem;
  line-height:1;
  font-weight:800;
}
.morning-slot{
  background:rgba(223,142,60,.11);
}
.morning-badge{
  background:rgba(223,142,60,.18);
  color:#d9822b;
}
.evening-slot{
  background:rgba(16,76,70,.09);
}
.evening-badge{
  background:rgba(16,76,70,.16);
  color:#0f4b46;
}
.hour-slot-closed{
  background:rgba(110,115,114,.09);
}
.closed-badge{
  background:rgba(110,115,114,.16);
  color:#5f6665;
}
.closed-stack .hour-slot strong{color:#5d6261 !important;}

.mobile-hours-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.mobile-hour-row{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:0 0 10px;
  border-bottom:1px solid rgba(19,62,60,.10);
}
.mobile-hour-row:last-child{border-bottom:0; padding-bottom:0;}
.mobile-hour-day{
  font-weight:800;
  color:var(--green-900);
}
.mobile-hour-split{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.mobile-hour-pill,
.mobile-hour-closed{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:8px 12px;
  border-radius:999px;
  font-size:.86rem;
  font-weight:800;
}
.mobile-hour-closed{
  background:rgba(110,115,114,.09);
  color:#5d6261;
  width:max-content;
}
.morning-pill{
  background:rgba(223,142,60,.11);
  color:#d9822b;
}
.evening-pill{
  background:rgba(16,76,70,.10);
  color:#0f4b46;
}

@media (max-width: 860px){
  .hours-list-refined li{
    grid-template-columns:1fr !important;
    gap:10px !important;
    padding:15px 0 !important;
  }
  .hours-list-refined > li > span{font-size:1rem !important;}
  .hour-slot strong{font-size:.92rem !important;}
}


/* === CLEAN HOURS FINAL: minimal, no ugly pills/icons === */
.hours-list-clean{
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
}
.hours-list-clean li{
  display:grid !important;
  grid-template-columns:minmax(130px, 180px) 1fr !important;
  gap:20px !important;
  align-items:center !important;
  padding:17px 0 !important;
  border-bottom:1px solid rgba(19,62,60,.12) !important;
}
.hours-list-clean li:last-child{border-bottom:1px solid rgba(19,62,60,.12) !important;}
.hours-list-clean > li > span{
  color:var(--green-900) !important;
  font-weight:900 !important;
  font-size:1.04rem !important;
}
.hours-inline{
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:12px !important;
  font-size:1rem !important;
}
.hours-inline strong,
.mobile-hour-times strong{
  font-weight:900 !important;
  letter-spacing:.01em !important;
  white-space:nowrap !important;
}
.time-lunch{color:#d9822b !important;}
.time-dinner{color:#0f4b46 !important;}
.hours-inline em,
.mobile-hour-times em{
  font-style:normal !important;
  color:rgba(19,62,60,.30) !important;
  font-weight:800 !important;
}
.closed-inline strong,
.mobile-hour-closed{
  color:#6a706e !important;
  font-weight:900 !important;
}

/* Neutralize previous ugly hour pill styles */
.hours-stack,
.hour-slot,
.hour-badge,
.mobile-hour-pill,
.morning-pill,
.evening-pill{
  all:unset;
}
.hour-badge{display:none !important;}

.mobile-hours-clean{
  display:flex !important;
  flex-direction:column !important;
  gap:0 !important;
  line-height:1.35 !important;
}
.mobile-hours-clean .mobile-hour-row{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:7px !important;
  padding:12px 0 !important;
  border-bottom:1px solid rgba(19,62,60,.10) !important;
}
.mobile-hours-clean .mobile-hour-row:last-child{border-bottom:0 !important;}
.mobile-hour-day{
  color:var(--green-900) !important;
  font-weight:900 !important;
}
.mobile-hour-times{
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:9px !important;
  font-size:.93rem !important;
}
.mobile-hour-closed{
  width:max-content !important;
  font-size:.93rem !important;
}

@media (max-width:860px){
  .hours-list-clean li{
    grid-template-columns:1fr !important;
    gap:8px !important;
  }
  .hours-inline{gap:10px !important;}
}


/* === FINAL CONTACT LAYOUT POLISH: address under social, centered and elegant === */
@media (min-width: 1024px){
  #contact .contact-grid{
    display:flex !important;
    justify-content:center !important;
    align-items:flex-start !important;
  }

  #contact .info-card-luxury{
    width:min(1240px, 100%) !important;
    margin:0 auto !important;
    display:grid !important;
    grid-template-columns:minmax(560px, 1.08fr) minmax(360px, .92fr) !important;
    grid-template-rows:auto auto auto !important;
    column-gap:18px !important;
    row-gap:18px !important;
    align-items:start !important;
    padding:18px !important;
  }

  #contact .info-box-hours{
    grid-column:1 !important;
    grid-row:1 / span 3 !important;
    align-self:start !important;
  }

  #contact .info-box-phone{
    grid-column:2 !important;
    grid-row:1 !important;
  }

  #contact .info-box-social{
    grid-column:2 !important;
    grid-row:2 !important;
  }

  #contact .info-box-address{
    grid-column:2 !important;
    grid-row:3 !important;
  }

  #contact .info-box-address,
  #contact .info-box-phone,
  #contact .info-box-social{
    min-height:0 !important;
  }

  #contact .info-card-luxury .info-box-address .info-value{
    font-size:clamp(1.78rem, 1.35vw, 2.2rem) !important;
    line-height:1.18 !important;
    max-width:18ch !important;
  }

  #contact .info-box-phone .info-value{
    font-size:clamp(1.7rem, 1.3vw, 2rem) !important;
  }

  #contact .social-links-elegant{
    gap:12px !important;
  }
}

/* === EMERGENCY FIX CONTACT: no overlap, balanced desktop layout === */
@media (min-width: 1024px){
  #contact .contact-grid{
    display:grid !important;
    grid-template-columns:minmax(0, 820px) minmax(330px, 390px) !important;
    gap:28px !important;
    align-items:start !important;
    justify-content:center !important;
    max-width:1280px !important;
    width:calc(100% - 2rem) !important;
    margin:0 auto !important;
  }

  #contact .info-card-luxury{
    width:100% !important;
    max-width:820px !important;
    margin:0 !important;
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) minmax(260px, 300px) !important;
    grid-template-rows:auto auto auto !important;
    gap:18px !important;
    padding:18px !important;
    align-items:start !important;
  }

  #contact .info-box-hours{
    grid-column:1 !important;
    grid-row:1 / span 3 !important;
    align-self:stretch !important;
  }
  #contact .info-box-phone{
    grid-column:2 !important;
    grid-row:1 !important;
  }
  #contact .info-box-social{
    grid-column:2 !important;
    grid-row:2 !important;
  }
  #contact .info-box-address{
    grid-column:2 !important;
    grid-row:3 !important;
  }

  #contact .booking-card{
    width:100% !important;
    max-width:390px !important;
    margin:0 !important;
    justify-self:start !important;
  }

  #contact .info-box-address,
  #contact .info-box-phone,
  #contact .info-box-social,
  #contact .info-box-hours{
    min-width:0 !important;
  }

  #contact .info-card-luxury .info-box-address .info-value{
    font-size:clamp(1.36rem, 1.35vw, 1.7rem) !important;
    line-height:1.18 !important;
    max-width:100% !important;
  }
  #contact .info-box-phone .info-value{
    font-size:clamp(1.35rem, 1.2vw, 1.65rem) !important;
    line-height:1.1 !important;
  }
  #contact .social-link-elegant strong{
    font-size:.86rem !important;
  }
}

@media (min-width:1024px) and (max-width:1250px){
  #contact .contact-grid{
    grid-template-columns:minmax(0, 760px) minmax(320px, 360px) !important;
    gap:22px !important;
  }
  #contact .info-card-luxury{
    max-width:760px !important;
    grid-template-columns:minmax(0, 1fr) minmax(238px, 270px) !important;
  }
  #contact .hours-list-clean li{
    grid-template-columns:150px 1fr !important;
  }
  #contact .hours-inline{
    gap:10px !important;
    font-size:.94rem !important;
  }
}


/* === FINAL CONTACT DESKTOP LAYOUT: stacked, elegant, no awkward side card === */
@media (min-width: 1025px){
  #contact .contact-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    justify-items:center !important;
    gap:26px !important;
    max-width:1020px !important;
    margin:0 auto !important;
  }

  #contact .info-card-luxury,
  #contact .form-card{
    width:min(100%, 980px) !important;
    max-width:980px !important;
    margin:0 auto !important;
  }

  #contact .info-card-luxury{
    display:grid !important;
    grid-template-columns:minmax(0, 1.45fr) minmax(290px, .9fr) !important;
    grid-template-areas:
      "hours phone"
      "hours social"
      "hours address" !important;
    align-items:start !important;
    gap:18px !important;
    padding:16px !important;
    border-radius:34px !important;
  }

  #contact .info-card-luxury .info-box{
    min-width:0 !important;
    border-radius:24px !important;
    padding:22px 24px !important;
  }

  #contact .info-box-hours{grid-area:hours !important;}
  #contact .info-box-phone{grid-area:phone !important;}
  #contact .info-box-social{grid-area:social !important;}
  #contact .info-box-address{grid-area:address !important;}

  #contact .hours-list-clean li{
    grid-template-columns:145px 1fr !important;
    gap:14px !important;
  }

  #contact .hours-list-clean .hours-inline{
    justify-content:flex-start !important;
    gap:14px !important;
    flex-wrap:wrap !important;
  }

  #contact .form-card{
    padding:22px 24px !important;
    border-radius:34px !important;
    box-shadow:var(--shadow) !important;
  }

  #contact #bookingForm{
    width:100% !important;
  }

  #contact .form-grid{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:18px 18px !important;
    align-items:start !important;
  }

  #contact .field{
    min-width:0 !important;
  }

  #contact .field.full,
  #contact .field:has(textarea){
    grid-column:1 / -1 !important;
  }

  #contact .field textarea{
    min-height:140px !important;
  }

  #contact .submit{
    display:block !important;
    margin:18px auto 0 !important;
    min-width:230px !important;
  }
}


/* =========================================================
   KAIROS FINAL FIX - CONTACT SECTION
   Form sotto largo su desktop + layout contatti bilanciato.
   Lascia mobile intatto.
   ========================================================= */
@media (min-width: 1025px) {
  #contact .contact-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    align-items: start !important;
    gap: 30px !important;
    max-width: 1080px !important;
    width: min(1080px, calc(100vw - 80px)) !important;
    margin: 0 auto !important;
  }

  #contact .info-card-luxury {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 1080px !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, .9fr) !important;
    grid-template-areas:
      "hours phone"
      "hours social"
      "hours address" !important;
    gap: 18px !important;
    padding: 18px !important;
    border-radius: 34px !important;
  }

  #contact .info-card-luxury .info-box {
    min-width: 0 !important;
    border-radius: 24px !important;
    padding: 22px 24px !important;
  }

  #contact .info-box-hours {
    grid-area: hours !important;
  }

  #contact .info-box-phone {
    grid-area: phone !important;
  }

  #contact .info-box-social {
    grid-area: social !important;
  }

  #contact .info-box-address {
    grid-area: address !important;
  }

  #contact .hours-list-clean li {
    grid-template-columns: 145px 1fr !important;
    gap: 14px !important;
  }

  #contact .hours-list-clean .hours-inline {
    justify-content: flex-start !important;
    gap: 14px !important;
    flex-wrap: wrap !important;
  }

  #contact .form-card {
    grid-column: 1 / -1 !important;
    justify-self: center !important;
    width: 100% !important;
    max-width: 1080px !important;
    margin: 0 auto !important;
    padding: 30px 34px !important;
    border-radius: 34px !important;
    box-shadow: var(--shadow) !important;
  }

  #contact #bookingForm {
    width: 100% !important;
    max-width: 100% !important;
  }

  #contact .form-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px 22px !important;
    align-items: start !important;
  }

  #contact .field {
    min-width: 0 !important;
  }

  #contact .field.full,
  #contact .field:has(textarea) {
    grid-column: 1 / -1 !important;
  }

  #contact .field textarea {
    min-height: 150px !important;
  }

  #contact .submit {
    display: block !important;
    margin: 22px auto 0 !important;
    min-width: 240px !important;
  }
}

@media (min-width: 1025px) and (max-width: 1220px) {
  #contact .contact-grid {
    width: min(1010px, calc(100vw - 56px)) !important;
  }

  #contact .info-card-luxury,
  #contact .form-card {
    max-width: 1010px !important;
  }
}

/* Cache marker: kairos-final-sito-completo-v2 */


/* === FINAL FIX HOURS SEPARATOR POSITION === */
#contact .hours-list-clean .hours-inline{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  flex-wrap:nowrap !important;
  gap:8px !important;
  width:auto !important;
  max-width:max-content !important;
}

#contact .hours-list-clean .hours-inline strong,
#contact .hours-list-clean .hours-inline em{
  display:inline-flex !important;
  width:auto !important;
  max-width:none !important;
  white-space:nowrap !important;
}

#contact .hours-list-clean .hours-inline em{
  margin:0 2px !important;
  transform:none !important;
  color:rgba(19,62,60,.34) !important;
}

#contact .hours-list-clean .time-lunch,
#contact .hours-list-clean .time-dinner{
  min-width:auto !important;
}

/* ═══════════════════════════════════════════════════════
   DISH INFO MODAL — bottom sheet elegante
   ═══════════════════════════════════════════════════════ */
.dish-card{
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease;
  position:relative;
}
.dish-card:hover,.dish-card:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(31,61,50,.12);
  outline:none;
}


.dish-modal{
  position:fixed;
  inset:0;
  z-index:300;
  display:flex;
  align-items:flex-end;
  opacity:0;
  pointer-events:none;
  transition:opacity .28s ease;
}
.dish-modal.open{
  opacity:1;
  pointer-events:auto;
}
.dish-modal-overlay{
  position:absolute;
  inset:0;
  background:rgba(13,24,19,.48);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.dish-modal-sheet{
  position:relative;
  width:100%;
  max-width:600px;
  margin:0 auto;
  background:var(--paper);
  border-radius:28px 28px 0 0;
  padding:0 0 env(safe-area-inset-bottom,24px);
  box-shadow:0 -24px 60px rgba(0,0,0,.18);
  transform:translateY(30px);
  transition:transform .32s cubic-bezier(.22,.61,.36,1);
  overflow:hidden;
}
.dish-modal.open .dish-modal-sheet{
  transform:translateY(0);
}
.dish-modal-handle{
  width:44px;
  height:4px;
  background:rgba(31,61,50,.18);
  border-radius:99px;
  margin:14px auto 0;
}
.dish-modal-close{
  position:absolute;
  top:14px;
  right:18px;
  width:36px;
  height:36px;
  border-radius:50%;
  border:1px solid rgba(31,61,50,.12);
  background:rgba(255,255,255,.9);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:.18s;
}
.dish-modal-close svg{
  width:16px;
  height:16px;
  stroke:var(--green);
}
.dish-modal-close:hover{background:#fff;}
.dish-modal-body{
  padding:10px 28px 32px;
}
.dish-modal-lang-badge{
  display:inline-block;
  background:var(--green);
  color:#fff;
  font:700 .68rem var(--body);
  letter-spacing:.18em;
  text-transform:uppercase;
  padding:3px 10px;
  border-radius:999px;
  margin-bottom:14px;
}
.dish-modal-it-name{
  font:400 .82rem var(--roman);
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:6px;
}
.dish-modal-name{
  font:700 1.55rem var(--editorial);
  color:var(--green);
  line-height:1.2;
  margin-bottom:0;
}
.dish-modal-divider{
  height:1px;
  background:rgba(31,61,50,.1);
  margin:16px 0;
}
.dish-modal-desc{
  font:400 1rem/1.7 var(--editorial);
  color:var(--muted);
  margin-bottom:20px;
}
.dish-modal-bottom{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.dish-modal-price{
  font:700 1.6rem var(--body);
  color:var(--orange);
  letter-spacing:.02em;
}
.dish-modal-badge{
  font:700 .72rem var(--body);
  letter-spacing:.16em;
  text-transform:uppercase;
  background:rgba(216,122,53,.1);
  color:var(--orange);
  padding:4px 12px;
  border-radius:999px;
  border:1px solid rgba(216,122,53,.22);
}

/* ═══════════════════════════════════════════════════════
   MAP SECTION — Google Maps elegante
   ═══════════════════════════════════════════════════════ */
.map-section{
  background:var(--paper);
}
.map-card{
  background:#fff;
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 20px 50px rgba(31,61,50,.1);
  border:1px solid rgba(31,61,50,.06);
}
.map-embed-wrap{
  width:100%;
  line-height:0;
  overflow:hidden;
}
.map-embed-wrap iframe{
  display:block;
  width:100%;
  height:340px;
  filter:grayscale(8%) contrast(1.04);
}
.map-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:22px 28px;
  flex-wrap:wrap;
}
.map-address{
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:var(--green);
}
.map-address svg{
  width:18px;
  height:18px;
  flex-shrink:0;
  margin-top:2px;
  stroke:var(--orange);
}
.map-address span{
  font:400 .9rem/1.55 var(--editorial);
  color:var(--muted);
}
.map-btns{
  display:flex;
  gap:10px;
  flex-shrink:0;
}
.map-btn{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:.7rem 1.2rem;
  border-radius:999px;
  font:700 .8rem var(--body);
  letter-spacing:.14em;
  text-transform:uppercase;
  text-decoration:none;
  transition:.2s;
  white-space:nowrap;
}
.map-btn svg{width:15px;height:15px;flex-shrink:0;}
.map-btn-nav{
  background:var(--green);
  color:#fff;
  stroke:#fff;
  box-shadow:0 8px 20px rgba(31,61,50,.2);
}
.map-btn-nav:hover{background:#0e3320;}
.map-btn-nav svg{stroke:#fff;}
.map-btn-call{
  background:#fff;
  color:var(--orange);
  border:1.5px solid rgba(216,122,53,.35);
}
.map-btn-call:hover{background:rgba(216,122,53,.06);}
.map-btn-call svg{stroke:var(--orange);}
@media(max-width:640px){
  .map-footer{flex-direction:column; align-items:flex-start; gap:16px;}
  .map-btns{width:100%;}
  .map-btn{flex:1; justify-content:center;}
  .map-embed-wrap iframe{height:240px;}
}

/* ═══════════════════════════════════════════════════════
   CALL BIG BUTTON — sotto il form prenotazione
   ═══════════════════════════════════════════════════════ */
.call-big-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  padding:1rem 1.4rem;
  margin-top:12px;
  border-radius:999px;
  background:#fff;
  border:1.5px solid rgba(216,122,53,.35);
  color:var(--orange);
  font:700 .84rem var(--body);
  letter-spacing:.16em;
  text-transform:uppercase;
  text-decoration:none;
  transition:.2s;
  box-shadow:0 4px 16px rgba(216,122,53,.06);
}
.call-big-btn svg{width:17px;height:17px;stroke:var(--orange);flex-shrink:0;}
.call-big-btn:hover{background:rgba(216,122,53,.05);border-color:var(--orange);}

/* Footer gap fix */
#contact{
  padding-bottom:0 !important;
}
#contact > .container{
  padding-bottom:clamp(48px, 6vw, 72px);
}
.footer.kairos-crafted-footer{
  margin-top:0 !important;
}

/* ═══════════════════════════════════════════════════════
   GALLERY VIDEO ITEMS
   ═══════════════════════════════════════════════════════ */
.gallery-item-video{
  position:relative;
}
.gallery-item-video video{
  width:100%;
  height:100%;
  object-fit:cover;
}
.gallery-play-icon{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2.2rem;
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.55);
  pointer-events:none;
  transition:opacity .2s;
}
.gallery-item-video:hover .gallery-play-icon{
  opacity:0;
}

/* ═══════════════════════════════════════════════════════
   MOBILE MENU — Icona ciclante animata
   ═══════════════════════════════════════════════════════ */
.brand-icon-cycle{
  position:relative;
  width:52px;
  height:52px;
  flex-shrink:0;
  border-radius:16px;
  overflow:hidden;
}
.bic{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:16px;
  background:var(--green);
  opacity:0;
  transform:scale(.78) rotate(-8deg);
  transition:opacity .55s cubic-bezier(.4,0,.2,1),
             transform .55s cubic-bezier(.4,0,.2,1);
  pointer-events:none;
}
.bic.bic-active{
  opacity:1;
  transform:scale(1) rotate(0deg);
}
/* K logo usa img invece di SVG */
.bic:first-child{
  background:transparent;
}
.bic:first-child img{
  width:52px;
  height:52px;
  border-radius:16px;
  display:block;
}
/* SVG icons: colore crema su verde */
.bic svg{
  width:26px;
  height:26px;
  stroke:var(--paper);
}
