:root{
  --bg:#0a0a0a;
  --bg-2:#111111;
  --fg:#f5f4f0;
  --muted:#9a9992;
  --line:rgba(255,255,255,.12);
  --serif:'Cormorant Garamond', serif;
  --sans:'Jost', sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  background:var(--bg);
  color:var(--fg);
  font-family:var(--sans);
  line-height:1.4;
  overflow-x:hidden;
}

a{color:inherit;text-decoration:none;}
ul{list-style:none;}
img{display:block;width:100%;height:100%;object-fit:cover;}

.container{
  max-width:1400px;
  margin:0 auto;
  padding:0 48px;
}

.eyebrow{
  font-size:12px;
  letter-spacing:3px;
  color:var(--muted);
  margin-bottom:16px;
  font-weight:400;
}

/* ---------- Preloader ---------- */
.preloader{
  position:fixed;
  inset:0;
  z-index:9999;
  background:var(--bg);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:opacity .6s ease, visibility .6s ease;
}

.preloader-logo{
  width:220px;
  height:auto;
  object-fit:contain;
  animation:preloader-pulse 1.6s ease-in-out infinite;
}

.preloader.loaded{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

@keyframes preloader-pulse{
  0%, 100%{ opacity:.55; transform:scale(.94); }
  50%{ opacity:1; transform:scale(1); }
}

@media (prefers-reduced-motion: reduce){
  .preloader-logo{ animation:none; }
}

/* ---------- Header ---------- */
.site-header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:100;
  padding:18px 0;
  background:rgba(10,10,10,.92);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:background .3s ease, padding .3s ease;
}

.site-header.scrolled{
  background:rgba(10,10,10,.97);
  padding:14px 0;
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.logo{
  display:flex;
  align-items:center;
  gap:14px;
}

.logo-mark-img{
  width:120px;
  height:auto;
  object-fit:contain;
}

.logo-nwr-img{
  width:90px;
  height:auto;
  object-fit:contain;
}

.logo-text{
  font-size:14px;
  letter-spacing:3px;
  line-height:1.3;
}

.logo-text small{
  font-size:8px;
  letter-spacing:2px;
  color:var(--muted);
}

.main-nav{
  display:flex;
  gap:40px;
}

.main-nav a{
  font-size:12px;
  letter-spacing:2px;
  color:var(--muted);
  position:relative;
  padding-bottom:6px;
}

.main-nav a.active{
  color:var(--fg);
}

.main-nav a.active::after{
  content:'';
  position:absolute;
  bottom:0;left:0;
  width:100%;height:1px;
  background:var(--fg);
}

.header-actions{
  display:flex;
  align-items:center;
  gap:24px;
}

.lang-switch-wrap{
  position:relative;
}

.lang-switch{
  background:none;
  border:none;
  color:var(--fg);
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:2px;
  cursor:pointer;
}

.lang-switch-menu{
  position:absolute;
  top:calc(100% + 14px);
  right:0;
  background:rgba(15,15,15,.98);
  border:1px solid var(--line);
  border-radius:8px;
  min-width:150px;
  padding:6px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index:200;
}

.lang-switch-menu.open{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.lang-switch-menu button{
  display:block;
  width:100%;
  text-align:left;
  background:none;
  border:none;
  color:var(--muted);
  font-family:var(--sans);
  font-size:13px;
  padding:10px 14px;
  border-radius:5px;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}

.lang-switch-menu button:hover{
  background:rgba(255,255,255,.06);
  color:var(--fg);
}

.lang-switch-menu button.active{
  color:#c9a15a;
  font-weight:500;
}

.btn{
  display:inline-block;
  padding:12px 28px;
  font-size:12px;
  letter-spacing:2px;
  border:1px solid var(--fg);
  transition:all .3s ease;
}

.btn-outline{
  color:var(--fg);
  background:transparent;
}

.btn-outline:hover{
  background:var(--fg);
  color:var(--bg);
}

.nav-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  cursor:pointer;
}

.nav-toggle span{
  width:24px;height:1px;
  background:var(--fg);
  transition:transform .3s ease, opacity .3s ease;
}

.nav-toggle.active span:nth-child(1){
  transform:translateY(6px) rotate(45deg);
}

.nav-toggle.active span:nth-child(2){
  opacity:0;
}

.nav-toggle.active span:nth-child(3){
  transform:translateY(-6px) rotate(-45deg);
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  height:800vh; /* spazio di scroll: piu' e' alto, piu' serve scorrere per far avanzare il video (= piu' lento) */
}

.hero-sticky{
  position:sticky;
  top:0;
  height:100vh;
  min-height:700px;
  display:flex;
  align-items:flex-start;
  overflow:hidden;
}

.hero-media{
  position:absolute;
  inset:0;
  z-index:0;
}

.hero-media img,
.hero-media video{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(5%) brightness(.95);
}

.hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.05) 35%, rgba(0,0,0,.2) 70%, rgba(0,0,0,.7) 100%);
  z-index:1;
}

.hero-content{
  position:absolute;
  top:clamp(90px, 15vh, 150px);
  left:48px;
  z-index:2;
  max-width:600px;
  transition:opacity .4s ease, transform .4s ease;
  will-change:opacity, transform;
}

.hero-content::before{
  content:'';
  position:absolute;
  top:-60px;
  left:-70px;
  right:-100px;
  bottom:-70px;
  background:radial-gradient(ellipse 75% 70% at 25% 32%, rgba(0,0,0,.8) 0%, rgba(0,0,0,.55) 40%, rgba(0,0,0,.2) 65%, rgba(0,0,0,0) 85%);
  z-index:-1;
  pointer-events:none;
}

.hero-rule{
  width:1px;
  height:36px;
  background:var(--line);
  margin-bottom:14px;
}

.hero-content .eyebrow{
  margin-bottom:10px;
  text-shadow:0 2px 10px rgba(0,0,0,.6);
}

.hero-content h1{
  font-family:var(--serif);
  font-size:clamp(40px, 6vw, 78px);
  font-weight:500;
  line-height:1.05;
  letter-spacing:1px;
  margin-bottom:16px;
  text-shadow:0 2px 20px rgba(0,0,0,.55), 0 1px 4px rgba(0,0,0,.5);
}

.hero-text{
  color:#e8e7e1;
  font-size:15px;
  font-weight:300;
  margin-bottom:0;
  max-width:340px;
  line-height:1.6;
  text-shadow:0 2px 12px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.5);
}

.hero-progress{
  position:absolute;
  right:48px;
  bottom:48px;
  z-index:2;
  display:flex;
  align-items:center;
  gap:16px;
}

.hero-progress .bar{
  width:80px;
  height:1px;
  background:rgba(255,255,255,.3);
  position:relative;
}

.hero-progress .bar-fill{
  content:'';
  position:absolute;
  left:0;top:0;
  width:0%;
  height:100%;
  background:var(--fg);
  transition:width .1s linear;
}

/* ---------- Info a comparsa durante lo scroll ---------- */
.hero-scroll-info{
  position:absolute;
  top:clamp(90px, 15vh, 150px);
  left:48px;
  z-index:2;
  width:calc(100% - 96px);
  max-width:640px;
  height:clamp(220px, 34vh, 320px);
  pointer-events:none;
}

.info-item{
  position:absolute;
  left:0;
  top:0;
  display:flex;
  align-items:flex-start;
  gap:22px;
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s ease, transform .7s ease;
  pointer-events:none;
  max-width:600px;
}

.info-item::before{
  content:'';
  position:absolute;
  top:-40px;
  left:-50px;
  right:-70px;
  bottom:-40px;
  background:radial-gradient(ellipse 75% 70% at 25% 32%, rgba(0,0,0,.8) 0%, rgba(0,0,0,.55) 40%, rgba(0,0,0,.2) 65%, rgba(0,0,0,0) 85%);
  z-index:-1;
  pointer-events:none;
}

.info-item.active{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

.info-item .info-index{
  font-family:var(--serif);
  font-size:28px;
  color:#c9a15a;
  padding-top:6px;
  text-shadow:0 2px 10px rgba(0,0,0,.6);
}

.info-item h4{
  font-family:var(--serif);
  font-size:clamp(28px, 3.6vw, 42px);
  font-weight:600;
  letter-spacing:.5px;
  line-height:1.15;
  margin-bottom:14px;
  color:#fbf8f2;
  text-shadow:0 2px 20px rgba(0,0,0,.55), 0 1px 4px rgba(0,0,0,.5);
}

.info-item p{
  font-size:16px;
  color:#c9c7bf;
  font-weight:400;
  max-width:380px;
  line-height:1.6;
  text-shadow:0 2px 12px rgba(0,0,0,.6), 0 1px 2px rgba(0,0,0,.5);
}

.hero-progress .count{
  font-size:11px;
  letter-spacing:2px;
  color:var(--muted);
}

/* ---------- Fleet: carosello dinamico, un'auto alla volta ---------- */
.fleet{
  background:var(--bg);
  padding:120px 0;
  overflow:hidden;
}

.fleet-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:64px;
}

.fleet-head h2{
  font-family:var(--serif);
  font-size:clamp(30px,4vw,44px);
  font-weight:500;
  letter-spacing:1px;
}

.carousel-nav{
  display:flex;
  align-items:center;
  gap:24px;
}

.carousel-arrow{
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid var(--line);
  background:transparent;
  color:var(--fg);
  font-size:16px;
  cursor:pointer;
  transition:background .3s ease, border-color .3s ease, transform .2s ease;
  flex-shrink:0;
}

.carousel-arrow:hover{
  background:var(--fg);
  color:var(--bg);
  border-color:var(--fg);
}

.carousel-arrow:active{
  transform:scale(.92);
}

.carousel-count{
  font-size:12px;
  letter-spacing:2px;
  color:var(--muted);
  white-space:nowrap;
}

.carousel-count .current{
  color:var(--fg);
}

.carousel{
  position:relative;
  min-height:440px;
}

.carousel-track{
  position:relative;
  width:100%;
  height:100%;
}

.car-slide{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  align-items:center;
  gap:40px;
  opacity:0;
  transform:translateX(110px) scale(.97);
  transition:opacity .5s ease, transform .8s cubic-bezier(.16,1,.3,1);
  pointer-events:none;
}

.car-slide.active{
  opacity:1;
  transform:translateX(0) scale(1);
  pointer-events:auto;
  position:relative;
  transition-duration:.8s, .9s;
}

.car-slide.exit-left{
  transform:translateX(-110px) scale(.97);
  transition-duration:.5s, .6s;
}

.car-slide-image{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  overflow:visible;
  perspective:1200px;
}

.car-slide-image img{
  width:100%;
  height:auto;
  max-height:380px;
  object-fit:contain;
  filter:drop-shadow(0 30px 40px rgba(0,0,0,.55)) blur(6px);
  transition:transform 1s cubic-bezier(.16,1,.3,1), filter .7s ease;
  transform:scale(.8) rotateY(18deg) rotateZ(2deg);
  transform-origin:center;
}

.car-slide.active .car-slide-image img{
  transform:scale(1) rotateY(0deg) rotateZ(0deg);
  filter:drop-shadow(0 30px 40px rgba(0,0,0,.55)) blur(0);
  transition-delay:.05s;
}

.car-slide-info > *{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .6s ease, transform .6s cubic-bezier(.22,.61,.36,1);
}

.car-slide.active .car-slide-info > *{
  opacity:1;
  transform:translateY(0);
}

.car-slide.active .car-slide-info h3{ transition-delay:.15s; }
.car-slide.active .car-slide-info .car-specs{ transition-delay:.25s; }
.car-slide.active .car-slide-info .car-slide-cta{ transition-delay:.4s; }

.car-slide-info h3{
  font-family:var(--serif);
  font-size:clamp(28px,3vw,40px);
  font-weight:500;
  margin-bottom:28px;
  letter-spacing:.5px;
}

.car-specs{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px 32px;
  margin-bottom:32px;
}

.car-specs > div{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
  opacity:0;
  transform:translateY(14px);
  transition:opacity .5s ease, transform .5s cubic-bezier(.22,.61,.36,1);
}

.car-slide.active .car-specs > div{
  opacity:1;
  transform:translateY(0);
}

.car-slide.active .car-specs > div:nth-child(1){ transition-delay:.3s; }
.car-slide.active .car-specs > div:nth-child(2){ transition-delay:.36s; }
.car-slide.active .car-specs > div:nth-child(3){ transition-delay:.42s; }
.car-slide.active .car-specs > div:nth-child(4){ transition-delay:.48s; }

.car-specs .label{
  font-size:10px;
  letter-spacing:2px;
  color:var(--muted);
}

.car-specs .value{
  font-size:16px;
  font-weight:400;
}

.car-slide-cta{
  margin-top:8px;
}

.carousel-dots{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:48px;
}

.carousel-dots button{
  width:8px;
  height:8px;
  border-radius:50%;
  border:none;
  background:var(--line);
  cursor:pointer;
  padding:0;
  transition:background .3s ease, transform .3s ease;
}

.carousel-dots button.active{
  background:var(--fg);
  transform:scale(1.3);
}

/* ---------- Rental (Noleggio) ---------- */
.rental{
  background:var(--bg);
  padding:120px 0;
  border-top:1px solid var(--line);
}

.rental-head{
  max-width:640px;
  margin:0 auto 64px;
  text-align:center;
}

.rental-head h2{
  font-family:var(--serif);
  font-size:clamp(28px,3.5vw,44px);
  font-weight:500;
  line-height:1.2;
}

.rental-head-text{
  margin-top:20px;
  color:var(--muted);
  font-size:15px;
  font-weight:300;
  line-height:1.7;
}

.rental-tabs{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-bottom:64px;
  flex-wrap:wrap;
}

.rental-tab{
  background:transparent;
  border:1px solid var(--line);
  color:var(--muted);
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:1.5px;
  padding:14px 28px;
  border-radius:30px;
  cursor:pointer;
  transition:all .3s ease;
}

.rental-tab:hover{
  color:var(--fg);
  border-color:var(--muted);
}

.rental-tab.active{
  background:#c9a15a;
  border-color:#c9a15a;
  color:#141414;
  font-weight:500;
}

.rental-panel{
  display:none;
  max-width:920px;
  margin:0 auto;
  animation:rental-fade .5s ease;
}

.rental-panel.active{
  display:block;
}

@keyframes rental-fade{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:translateY(0); }
}

.rental-panel-intro h3{
  font-family:var(--serif);
  font-size:clamp(24px,2.6vw,32px);
  font-weight:500;
  margin-bottom:20px;
  text-align:center;
}

.rental-panel-intro p{
  color:var(--muted);
  font-size:15px;
  font-weight:300;
  line-height:1.8;
  text-align:center;
  max-width:760px;
  margin:0 auto;
}

.rental-stats{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:24px;
  margin:56px 0;
  padding:36px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.rental-stats > div{
  text-align:center;
}

.rental-stat-num{
  display:block;
  font-family:var(--serif);
  font-size:clamp(28px,3vw,38px);
  color:#f3d99b;
}

.rental-stat-label{
  display:block;
  margin-top:8px;
  font-size:11px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--muted);
}

.rental-accordion{
  display:flex;
  flex-direction:column;
  gap:0;
  margin-bottom:56px;
}

.rental-accordion details{
  border-bottom:1px solid var(--line);
  padding:22px 0;
}

.rental-accordion details:first-child{
  border-top:1px solid var(--line);
}

.rental-accordion summary{
  cursor:pointer;
  list-style:none;
  font-size:15px;
  letter-spacing:.5px;
  font-weight:500;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.rental-accordion summary::-webkit-details-marker{
  display:none;
}

.rental-accordion summary::after{
  content:'+';
  font-family:var(--serif);
  font-size:22px;
  color:#c9a15a;
  transition:transform .3s ease;
  margin-left:20px;
  flex-shrink:0;
}

.rental-accordion details[open] summary::after{
  transform:rotate(45deg);
}

.rental-accordion p{
  margin-top:16px;
  color:var(--muted);
  font-size:14px;
  font-weight:300;
  line-height:1.8;
}

.rental-cta{
  text-align:center;
  padding-top:8px;
}

.rental-cta p{
  color:var(--muted);
  font-size:15px;
  font-weight:300;
  max-width:480px;
  margin:0 auto 28px;
  line-height:1.7;
}

.rental-cta-buttons{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:32px;
  flex-wrap:wrap;
}


/* ---------- Why ---------- */
.why{
  background:var(--bg-2);
  padding-bottom:120px;
}

.why-top{
  display:grid;
  grid-template-columns:1fr 1fr;
}

.why-media{
  height:520px;
  overflow:hidden;
}

.why-media img{
  filter:grayscale(10%) brightness(.8);
}

.why-intro{
  padding:100px 80px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.why-intro h2{
  font-family:var(--serif);
  font-size:clamp(28px,3.2vw,40px);
  font-weight:500;
  line-height:1.2;
  letter-spacing:.5px;
}

.why-intro-text{
  margin-top:24px;
  color:var(--muted);
  font-size:15px;
  font-weight:300;
  line-height:1.7;
  max-width:380px;
}

.why-grid{
  max-width:1400px;
  margin:0 auto;
  padding:100px 48px 0;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  column-gap:64px;
  row-gap:56px;
}

.why-card{
  position:relative;
  padding-top:28px;
}

.why-card::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  width:32px;
  height:1px;
  background:var(--line);
  transition:width .5s cubic-bezier(.22,.61,.36,1), background .5s ease;
}

.why-card:hover::before{
  width:100%;
  background:#c9a15a;
}

.why-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:26px;
}

.why-card-icon{
  display:flex;
  color:#c9a15a;
  opacity:.85;
}

.why-card-icon svg{
  width:22px;
  height:22px;
}

.why-card-num{
  font-family:var(--serif);
  font-size:22px;
  color:var(--muted);
  opacity:.5;
}

.why-card h4{
  font-size:14px;
  letter-spacing:2px;
  text-transform:uppercase;
  margin-bottom:14px;
  font-weight:500;
}

.why-card p{
  font-size:14px;
  color:var(--muted);
  font-weight:300;
  line-height:1.75;
  max-width:340px;
}

/* ---------- Contact ---------- */
.contact-section{
  background:var(--bg);
  padding:120px 0;
  border-top:1px solid var(--line);
}

.contact-inner{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:80px;
}

.contact-intro h2{
  font-family:var(--serif);
  font-size:clamp(30px,3.5vw,44px);
  font-weight:500;
  line-height:1.2;
  margin-top:8px;
}

.contact-intro-text{
  margin-top:24px;
  color:var(--muted);
  font-size:15px;
  font-weight:300;
  line-height:1.7;
  max-width:340px;
}

.contact-map{
  margin-top:40px;
  max-width:400px;
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
}

.contact-map iframe{
  width:100%;
  height:220px;
  border:0;
  display:block;
  filter:grayscale(1) invert(.92) contrast(.9);
}

.contact-map-link{
  display:block;
  padding:12px 16px;
  font-size:12px;
  letter-spacing:.03em;
  color:var(--muted);
  text-decoration:none;
  border-top:1px solid var(--line);
  transition:color .2s ease;
}

.contact-map-link:hover{
  color:#c9a15a;
}

.contact-form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}

.form-field{
  margin-bottom:24px;
}

.form-field label{
  display:block;
  font-size:11px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:10px;
}

.form-field input,
.form-field textarea{
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--line);
  padding:10px 0;
  color:var(--fg);
  font-family:var(--sans);
  font-size:15px;
  transition:border-color .3s ease;
  resize:vertical;
}

.form-field input:focus,
.form-field textarea:focus{
  outline:none;
  border-color:#c9a15a;
}

.form-field input::placeholder,
.form-field textarea::placeholder{
  color:#5a5a56;
}

/* Campi con icona (nome, email, telefono, auto, durata, km) */
.form-field.has-icon .field-input{
  display:flex;
  align-items:center;
  gap:12px;
  border-bottom:1px solid var(--line);
  transition:border-color .3s ease;
}

.form-field.has-icon .field-input:focus-within{
  border-color:#c9a15a;
}

.field-icon{
  width:18px;
  height:18px;
  flex-shrink:0;
  color:#6f6f6a;
  transition:color .3s ease;
}

.form-field.has-icon .field-input:focus-within .field-icon{
  color:#c9a15a;
}

.form-field.has-icon input,
.form-field.has-icon select{
  border:none;
  padding:10px 0;
  flex:1;
  min-width:0;
}

.form-field.has-icon input:focus,
.form-field.has-icon select:focus{
  border:none;
}

.form-field select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background-color:transparent;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9a15a' stroke-width='1.6'%3E%3Cpath d='M6 9l6 6 6-6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right center;
  background-size:16px;
  padding-right:24px;
  cursor:pointer;
  color:var(--fg);
}

.form-field select:invalid,
.form-field select option[value=""]{
  color:#5a5a56;
}

.form-field select option{
  background:#141414;
  color:var(--fg);
}

.contact-form-honeypot{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}

/* ---------- Pulsante unico per tutte le call-to-action del sito ---------- */
.btn-gold{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:15px 32px;
  background:linear-gradient(120deg, #c9a15a 0%, #f3d99b 45%, #c9a15a 100%);
  border:1px solid #c9a15a;
  border-radius:4px;
  color:#141210 !important;
  font-family:var(--sans);
  font-size:12px;
  font-weight:500;
  letter-spacing:2.5px;
  cursor:pointer;
  text-decoration:none;
  transition:transform .25s ease, box-shadow .25s ease, opacity .25s ease;
  box-shadow:0 8px 24px -8px rgba(201,161,90,.5);
}

.btn-gold svg,
.btn-gold .arrow{
  width:16px;
  height:16px;
  transition:transform .3s ease;
}

.btn-gold:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px -6px rgba(201,161,90,.65);
}

.btn-gold:hover svg,
.btn-gold:hover .arrow{
  transform:translateX(5px);
}

.btn-gold:active{
  transform:translateY(0);
}

.btn-gold:disabled{
  opacity:.6;
  cursor:default;
  transform:none;
  box-shadow:none;
}

.contact-form-submit{
  margin-top:16px;
}

@media (max-width:768px){
  .contact-form-submit{
    width:100%;
  }
}

.contact-form-feedback{
  margin-top:18px;
  font-size:13px;
  min-height:18px;
}

.contact-form-feedback.success{ color:#8fd08f; }
.contact-form-feedback.error{ color:#e78885; }

/* Validazione custom dei campi obbligatori (niente popup nativi del browser) */
.form-field.field-error label{
  color:#e78885;
}

.form-field.field-error .field-input,
.form-field.field-error input,
.form-field.field-error select,
.form-field.field-error textarea{
  border-color:#d9534f !important;
}

.form-field.field-error .field-icon{
  color:#d9534f;
}

@keyframes field-shake{
  0%, 100%{ transform:translateX(0); }
  25%{ transform:translateX(-4px); }
  75%{ transform:translateX(4px); }
}

.form-field.field-error{
  animation:field-shake .3s ease;
}

/* ---------- WhatsApp float button ---------- */
.whatsapp-float{
  position:fixed;
  right:24px;
  bottom:24px;
  width:56px;
  height:56px;
  border-radius:50%;
  background:#25d366;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  box-shadow:0 6px 20px rgba(0,0,0,.35);
  z-index:180;
  transition:transform .25s ease, box-shadow .25s ease;
}

.whatsapp-float:hover{
  transform:scale(1.08);
  box-shadow:0 8px 26px rgba(0,0,0,.45);
}

.whatsapp-float svg{
  width:28px;
  height:28px;
}

@media (max-width:640px){
  .whatsapp-float{
    right:16px;
    bottom:16px;
    width:50px;
    height:50px;
  }
  .whatsapp-float svg{
    width:25px;
    height:25px;
  }
}

/* ---------- Footer ---------- */
.site-footer{
  padding:40px 0;
  border-top:1px solid var(--line);
}

.footer-inner{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:32px;
}

.footer-left{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}

.copyright{
  font-size:12px;
  color:var(--muted);
}

.company-info{
  font-size:11px;
  color:var(--muted);
  opacity:.6;
}

.company-info a{
  color:var(--muted);
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.2);
}

.company-info a:hover{
  color:var(--fg);
}

.admin-entry{
  opacity:.55;
}

.admin-entry:hover{
  opacity:1;
}

.footer-right{
  display:flex;
  align-items:center;
  gap:40px;
}

.footer-nav{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  row-gap:12px;
  gap:28px;
}

.footer-nav a{
  font-size:12px;
  color:var(--muted);
}

.footer-nav a:hover{
  color:var(--fg);
}

.socials{
  display:flex;
  gap:16px;
}

.socials a{
  width:32px;height:32px;
  border:1px solid var(--line);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  transition:color .3s ease, border-color .3s ease;
}

.socials a:hover{
  color:#c9a15a;
  border-color:#c9a15a;
}

.socials a svg{
  width:16px;
  height:16px;
}

.footer-credit-link{
  display:inline-flex !important;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}

.credit-logo{
  height:46px;
  width:auto;
}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .car-slide{grid-template-columns:1fr;grid-template-rows:auto auto;gap:24px;}
  .car-slide-image img{max-height:280px;}
  .carousel{min-height:600px;}
  .why-top{grid-template-columns:1fr;}
  .why-media{height:400px;}
  .why-intro{padding:64px 40px;}
  .why-grid{grid-template-columns:repeat(2, 1fr);padding:64px 40px 0;}
}

@media (max-width:768px){
  .container{padding:0 20px;}
  .nav-toggle{display:flex;z-index:201;position:relative;}
  .header-actions .btn-gold{display:none;}

  .main-nav{
    display:flex;
    flex-direction:column;
    position:fixed;
    inset:0;
    background:rgba(8,8,8,.98);
    padding:110px 32px 40px;
    gap:4px;
    opacity:0;
    visibility:hidden;
    transform:translateY(-16px) translateZ(0);
    transition:opacity .35s ease, transform .35s ease, visibility .35s ease;
    z-index:150;
    isolation:isolate;
    will-change:opacity, transform;
  }

  .main-nav.open{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
  }

  .main-nav a{
    font-family:var(--serif);
    font-size:30px;
    font-weight:500;
    letter-spacing:.5px;
    padding:18px 0;
    border-bottom:1px solid var(--line);
    color:var(--fg);
  }

  .main-nav a.active{
    color:#c9a15a;
  }

  body.nav-open{
    overflow:hidden;
  }

  /* Evita un bug di composizione grafica per cui il video in scroll
     "buca" il menu a schermo intero su alcuni browser: lo nascondiamo
     del tutto finche' il menu resta aperto. */
  body.nav-open .hero{
    visibility:hidden;
  }

  body.nav-open .whatsapp-float{
    display:none;
  }
  /* Testo in alto (sotto il menu), video 16:9 ancorato in basso: cosi'
     non si tagliano mai a meta' e l'ordine e' invertito rispetto al desktop */
  .hero-content{left:20px;top:100px;max-width:calc(100% - 40px);}
  .hero-rule{height:24px;margin-bottom:10px;}
  .hero-content h1{margin-bottom:12px;}
  .hero-progress{right:20px;bottom:20px;}
  .hero-scroll-info{left:20px;top:100px;width:calc(100% - 40px);max-width:none;}
  .info-item{gap:14px;}
  .info-item .info-index{font-size:18px;}
  .info-item h4{font-size:21px;margin-bottom:8px;}
  .info-item p{font-size:14px;}

  /* Il video e' orizzontale (16:9): su schermi verticali lo teniamo sempre
     in questo rapporto, subito sotto al testo (la posizione esatta la
     calcola il JS in base all'altezza reale del blocco testo, cosi' non
     resta una banda nera vuota in mezzo) */
  .hero-media{
    top:380px; /* valore di fallback, il JS lo corregge subito */
    bottom:auto;
    left:0;
    right:0;
    transform:none;
    width:100%;
    height:auto;
    aspect-ratio:16/9;
    background:#000;
  }
  .hero-media video{
    width:100%;
    height:100%;
  }
  .fleet{padding:72px 0;}
  .fleet-head{flex-direction:column;align-items:flex-start;gap:20px;}
  .carousel{min-height:560px;}
  .car-slide-image img{max-height:220px;}
  .car-specs{grid-template-columns:1fr;gap:16px;}
  .why-intro{padding:48px 20px;}
  .why-grid{grid-template-columns:1fr;padding:48px 20px 0;row-gap:40px;}
  .why-card p{max-width:none;}
  .rental{padding:72px 0;}
  .rental-stats{grid-template-columns:1fr 1fr;gap:28px;}
  .rental-tabs{gap:8px;}
  .rental-tab{padding:12px 18px;font-size:11px;}
  .rental-cta-buttons{gap:20px;}
  .contact-section{padding:72px 0;}
  .contact-inner{grid-template-columns:1fr;gap:40px;}
  .contact-form-row{grid-template-columns:1fr;}
  .footer-inner{flex-direction:column;align-items:flex-start;}
}
