*{box-sizing:border-box}
:root{
  --bg:#050505;
  --bg2:#111;
  --card:#171717;
  --text:#f3f3f3;
  --muted:#b8b8b8;
  --red:#d50000;
  --red2:#ff1a1a;
  --silver:#d7d7d7;
  --line:rgba(255,255,255,.12);
}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Arial, Helvetica, sans-serif;
  color:var(--text);
  background:var(--bg);
}
a{color:inherit}
.container{width:min(1120px,92%);margin:auto}
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(0,0,0,.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{height:86px;display:flex;align-items:center;gap:28px}
.brand img{height:70px;width:auto;display:block}
.nav{display:flex;gap:22px;margin-left:auto}
.nav a{text-decoration:none;color:var(--muted);font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.04em}
.nav a:hover{color:white}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:46px;padding:0 22px;border-radius:999px;
  background:linear-gradient(135deg,var(--red),#8b0000);
  color:white;text-decoration:none;font-weight:800;
  box-shadow:0 10px 30px rgba(213,0,0,.22);
  border:1px solid rgba(255,255,255,.14);
}
.btn:hover{transform:translateY(-1px)}
.btn-small{min-height:38px;padding:0 16px;font-size:14px}
.btn-outline{background:transparent;border:1px solid var(--red);box-shadow:none;color:white}
.hero{
  min-height:680px;
  display:flex;align-items:center;
  background:
    radial-gradient(circle at 78% 30%, rgba(213,0,0,.28), transparent 32%),
    linear-gradient(135deg,#000 0%,#090909 55%,#1a0000 100%);
  border-bottom:1px solid var(--line);
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}
.eyebrow{
  color:var(--red2);font-weight:900;text-transform:uppercase;letter-spacing:.14em;font-size:13px;margin:0 0 14px;
}
h1{font-size:clamp(52px,8vw,94px);line-height:.88;margin:0 0 22px;text-transform:uppercase;letter-spacing:-.06em}
h1 span{font-size:.36em;letter-spacing:.02em;color:var(--silver)}
.lead{font-size:20px;color:var(--muted);line-height:1.55;max-width:620px}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.hero-card{
  border:1px solid var(--line);
  border-radius:30px;
  background:linear-gradient(145deg,#0b0b0b,#1b1b1b);
  padding:32px;
  box-shadow:0 30px 80px rgba(0,0,0,.55);
}
.hero-card img{width:100%;display:block;border-radius:20px}
.section{padding:82px 0}
.section-dark{background:linear-gradient(135deg,#0b0b0b,#160000);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-title{margin-bottom:30px}
.section-title h2,.two-col h2,.contact-card h2{font-size:42px;margin:0 0 12px}
.section-title p,.two-col p,.contact-card p{color:var(--muted);line-height:1.55}

.vetrina-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end}
.sort-box{display:flex;align-items:center;gap:10px;color:var(--muted);font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.sort-box select{min-height:42px;border-radius:999px;border:1px solid var(--line);background:#080808;color:var(--text);padding:0 38px 0 14px;font-size:14px;font-weight:800;outline:none;cursor:pointer}
.sort-box select:focus{border-color:var(--red2);box-shadow:0 0 0 3px rgba(213,0,0,.18)}

.cars-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.car-card{
  overflow:hidden;border-radius:22px;background:var(--card);
  border:1px solid var(--line);
  box-shadow:0 18px 50px rgba(0,0,0,.35);
}
.car-photo{aspect-ratio:4/3;height:auto;background:#222;display:flex;align-items:center;justify-content:center;overflow:hidden}
.car-photo img{width:100%;height:100%;object-fit:cover}
.car-body{padding:20px}
.car-body h3{margin:0 0 8px;font-size:23px}
.price{font-size:26px;font-weight:900;color:white;margin:10px 0}
.specs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0;color:var(--muted);font-size:14px}
.specs span{border:1px solid var(--line);border-radius:12px;padding:8px;background:#101010}
.car-details{display:grid;grid-template-columns:1fr;gap:8px;margin:14px 0}
.car-details div{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;padding:9px 10px;background:#101010;color:var(--muted);font-size:14px}
.car-details strong{color:white;font-size:12px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.car-details span{text-align:right;overflow-wrap:anywhere}
.car-details-price span{color:white;font-weight:900}
.two-col{display:grid;grid-template-columns:1fr 1.1fr;gap:44px;align-items:start}
.contact-card{
  display:flex;justify-content:space-between;gap:24px;align-items:center;
  background:linear-gradient(135deg,#111,#1b0000);
  border:1px solid var(--line);border-radius:28px;padding:34px;
}
.contact-actions{display:flex;gap:12px;flex-wrap:wrap}
.footer{border-top:1px solid var(--line);padding:24px 0;color:var(--muted);text-align:center}

@media(max-width:850px){
  .vetrina-head{display:block;text-align:center}
  .sort-box{justify-content:center;margin-top:14px;flex-wrap:wrap}
  .sort-box select{width:100%;max-width:340px}
  .header-inner{height:auto;padding:12px 0;flex-wrap:wrap}
  .brand img{height:58px}
  .nav{order:3;width:100%;justify-content:center;gap:14px;flex-wrap:wrap}
  .hero{min-height:auto;padding:70px 0}
  .hero-grid,.two-col{grid-template-columns:1fr}
  .cars-grid{grid-template-columns:1fr}
  .contact-card{flex-direction:column;align-items:flex-start}
}

/* Area riservata */
.admin-section{min-height:calc(100vh - 86px);background:radial-gradient(circle at 80% 10%, rgba(213,0,0,.22), transparent 28%), linear-gradient(135deg,#050505,#120000)}
.admin-card{background:linear-gradient(145deg,#111,#181818);border:1px solid var(--line);border-radius:26px;padding:26px;box-shadow:0 22px 60px rgba(0,0,0,.36)}
.login-card{max-width:560px;margin:0 auto}
.admin-title{font-size:clamp(42px,6vw,68px);line-height:.95;letter-spacing:-.05em}
.admin-note{color:var(--muted);font-size:13px;line-height:1.45;margin-top:18px}
.admin-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-end}
.admin-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:start}
.admin-form label{display:block;margin:0 0 8px;color:var(--silver);font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.admin-form input,.admin-form select{width:100%;min-height:46px;border-radius:14px;border:1px solid var(--line);background:#080808;color:var(--text);padding:0 14px;font-size:15px;outline:none}
.admin-form input:focus,.admin-form select:focus{border-color:var(--red2);box-shadow:0 0 0 3px rgba(213,0,0,.18)}
.compact-form{display:grid;gap:14px;margin-top:24px}
.form-row{display:grid;gap:14px;margin-bottom:16px}
.two-fields{grid-template-columns:1fr 1fr}
.three-fields{grid-template-columns:1fr 1fr 1fr}
.four-fields{grid-template-columns:repeat(4,1fr)}
.form-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.form-message{margin:0;color:var(--muted)}
.error-message{color:#ff6969;font-weight:800}
.photo-preview{min-height:190px;border:1px dashed rgba(255,255,255,.2);border-radius:20px;background:#090909;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--muted);text-align:center}
.photo-preview img{width:100%;height:240px;object-fit:cover;display:block}
.admin-list-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px}
.admin-list-head h3{margin:0;font-size:26px}
.admin-list{display:grid;gap:14px}
.admin-item{display:grid;grid-template-columns:104px 1fr;gap:14px;border:1px solid var(--line);border-radius:18px;padding:12px;background:#0d0d0d}
.admin-item img{width:104px;height:82px;object-fit:cover;border-radius:14px;background:#222}
.admin-item h4{margin:0 0 6px;font-size:18px}
.admin-item p{margin:0 0 10px;color:var(--muted);font-size:14px;line-height:1.45}
.admin-item-actions{display:flex;gap:8px;flex-wrap:wrap}
.admin-mini-btn{border:1px solid var(--line);border-radius:999px;background:#171717;color:white;padding:7px 11px;font-weight:800;cursor:pointer}
.admin-mini-btn:hover{border-color:var(--red2)}
.admin-mini-btn.delete{color:#ff6969}

@media(max-width:1000px){
  .admin-layout,.two-fields,.three-fields,.four-fields{grid-template-columns:1fr}
  .admin-heading{display:block}
}

/* Migliorie area riservata: note e galleria foto */
.admin-form textarea{
  width:100%;
  min-height:150px;
  border-radius:14px;
  border:1px solid var(--line);
  background:#080808;
  color:var(--text);
  padding:14px;
  font-size:15px;
  line-height:1.5;
  outline:none;
  resize:vertical;
  font-family:Arial, Helvetica, sans-serif;
}
.admin-form textarea:focus{border-color:var(--red2);box-shadow:0 0 0 3px rgba(213,0,0,.18)}
.multi-photo-preview{
  min-height:170px;
  padding:14px;
  align-items:flex-start;
  justify-content:flex-start;
  gap:12px;
  flex-wrap:wrap;
}

.hidden-file-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.photo-zone-label{display:block;margin:4px 0 8px;color:var(--text);font-weight:800}
.photo-drop-zone{cursor:pointer;transition:border-color .2s, box-shadow .2s, background .2s}
.photo-drop-zone small{color:var(--muted);font-size:13px}
.photo-drop-zone.drag-over{border-color:var(--red2);background:#140808;box-shadow:0 0 0 4px rgba(213,0,0,.16)}
.photo-drop-zone.is-loading{opacity:.75;pointer-events:none}

.photo-help{margin-top:10px}
.photo-thumb{
  position:relative;
  width:132px;
  height:108px;
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  background:#171717;
  cursor:grab;
  box-shadow:0 10px 24px rgba(0,0,0,.26);
}
.photo-thumb.dragging{opacity:.45;outline:2px solid var(--red2)}
.photo-thumb.drag-over-thumb{outline:3px solid var(--red2);transform:scale(1.03)}
.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.photo-thumb strong{
  position:absolute;
  left:8px;
  bottom:8px;
  background:rgba(0,0,0,.74);
  color:white;
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  padding:4px 8px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.main-photo,.remove-photo{
  position:absolute;
  top:6px;
  width:26px;
  height:26px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(0,0,0,.72);
  color:white;
  font-size:18px;
  line-height:20px;
  cursor:pointer;
}
.main-photo{right:38px;color:#ffd75e}
.remove-photo{right:6px;font-size:20px}
.main-photo:hover{background:#2b2410}
.remove-photo:hover{background:var(--red)}
.admin-item-note{font-style:italic;color:#d0d0d0!important}
.car-gallery-count{color:var(--muted);font-size:13px;margin:8px 0 8px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.car-mini-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0 0 12px}
.car-mini-gallery img{width:100%;height:48px;object-fit:cover;border-radius:9px;border:1px solid var(--line);background:#222}
.car-note-full{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:#101010;
  margin:12px 0 18px;
}
.car-note-full strong{display:block;color:white;font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.car-note-full p{color:var(--muted);font-size:14px;line-height:1.5;margin:0;white-space:pre-line}
@media(max-width:850px){
  .photo-thumb{width:calc(50% - 8px);height:118px}
  .car-mini-gallery img{height:58px}
}


/* Database demo offline */
.admin-db-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.db-status{margin:0 0 16px;color:var(--silver);font-size:13px;line-height:1.45;border:1px solid var(--line);border-radius:14px;background:#090909;padding:10px 12px}
.admin-item p strong{color:white}
@media(max-width:850px){.admin-db-actions{justify-content:flex-start}.admin-list-head{align-items:flex-start;flex-direction:column}}

/* Galleria pubblica auto */
.gallery-main-photo{position:relative;cursor:zoom-in}
.gallery-main-photo img{transition:opacity .18s ease}
.gallery-arrow{
  position:absolute;
  z-index:4;
  width:34px;
  height:34px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(0,0,0,.58);
  color:white;
  font-size:28px;
  line-height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  opacity:.88;
  backdrop-filter:blur(4px);
}
.gallery-arrow:hover{background:rgba(213,0,0,.86);opacity:1}
.main-prev{left:10px;top:50%;transform:translateY(-50%)}
.main-next{right:10px;top:50%;transform:translateY(-50%)}
.car-mini-gallery-wrap{position:relative;margin:0 0 12px;padding:0 38px}
.car-mini-gallery{
  display:flex;
  gap:7px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:thin;
  margin:0;
  padding:2px 0 6px;
}
.car-thumb{
  flex:0 0 calc(25% - 6px);
  min-width:58px;
  height:54px;
  border:1px solid var(--line);
  border-radius:10px;
  padding:0;
  overflow:hidden;
  background:#222;
  cursor:pointer;
  scroll-snap-align:center;
}
.car-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.car-thumb.active{outline:2px solid var(--red2);border-color:rgba(255,255,255,.45)}
.thumb-prev{left:0;top:50%;transform:translateY(-50%);width:30px;height:30px;font-size:24px}
.thumb-next{right:0;top:50%;transform:translateY(-50%);width:30px;height:30px;font-size:24px}
body.modal-open{overflow:hidden}
.photo-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.94);
  padding:28px;
}
.photo-modal.open{display:flex}
.photo-modal-img{
  max-width:94vw;
  max-height:88vh;
  object-fit:contain;
  border-radius:16px;
  box-shadow:0 24px 80px rgba(0,0,0,.65);
}
.photo-modal-close{
  position:absolute;
  top:18px;
  right:22px;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(0,0,0,.58);
  color:white;
  font-size:34px;
  line-height:34px;
  cursor:pointer;
  z-index:10001;
}
.photo-modal-close:hover,.photo-modal-arrow:hover{background:rgba(213,0,0,.86)}
.photo-modal-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:10000;
  width:54px;
  height:54px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(0,0,0,.58);
  color:white;
  font-size:46px;
  line-height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.photo-modal-prev{left:24px}
.photo-modal-next{right:24px}
.photo-modal-counter{
  position:absolute;
  bottom:20px;
  left:50%;
  transform:translateX(-50%);
  color:white;
  background:rgba(0,0,0,.58);
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  padding:7px 14px;
  font-weight:800;
}
@media(max-width:850px){
  .car-mini-gallery-wrap{padding:0 34px}
  .car-thumb{flex-basis:calc(50% - 6px);height:62px}
  .photo-modal{padding:16px}
  .photo-modal-arrow{width:42px;height:42px;font-size:36px}
  .photo-modal-prev{left:10px}
  .photo-modal-next{right:10px}
}

/* ==================================================
   Ottimizzazione vetrina mobile/tablet - v10
   ================================================== */
.car-card{transition:transform .18s ease, box-shadow .18s ease}
.car-card:hover{transform:translateY(-3px)}
.gallery-main-photo{touch-action:pan-y;user-select:none}
.gallery-main-photo img{-webkit-user-drag:none}

@media(max-width:1024px){
  .container{width:min(960px,94%)}
  .cars-grid{grid-template-columns:repeat(2,1fr)}
  .hero{min-height:auto;padding:72px 0}
  .hero-grid{grid-template-columns:1fr .8fr;gap:28px}
  .section{padding:68px 0}
}

@media(max-width:720px){
  body{font-size:15px}
  .container{width:92%}
  .site-header{position:static}
  .header-inner{gap:12px;justify-content:center;text-align:center}
  .brand{width:100%;display:flex;justify-content:center}
  .brand img{height:56px}
  .nav{display:none}
  .header-inner>.btn-small{min-height:40px;width:auto;margin:0 auto}

  .hero{padding:38px 0 46px}
  .hero-grid{grid-template-columns:1fr;gap:24px;text-align:center}
  .hero-text{display:flex;flex-direction:column;align-items:center}
  h1{font-size:clamp(42px,15vw,62px);line-height:.92;margin-bottom:16px}
  .lead{font-size:17px;line-height:1.5}
  .hero-actions{width:100%;display:grid;grid-template-columns:1fr;gap:12px;margin-top:22px}
  .hero-actions .btn{width:100%}
  .hero-card{padding:18px;border-radius:22px;max-width:360px;margin:auto}

  .section{padding:46px 0}
  .section-title{margin-bottom:20px;text-align:center}
  .section-title h2,.two-col h2,.contact-card h2{font-size:32px}
  .cars-grid{grid-template-columns:1fr;gap:18px}
  .car-card{border-radius:20px}
  .car-photo{aspect-ratio:4/3;height:auto}
  .car-body{padding:18px}
  .car-body h3{font-size:24px;line-height:1.15}
  .price{font-size:28px;margin:8px 0 14px}
  .car-details{gap:7px}
  .car-details div{font-size:14px;align-items:center;padding:10px 11px}
  .car-details strong{font-size:11px}
  .car-note-full p{font-size:15px;line-height:1.55}
  .car-body .btn-small{width:100%;min-height:46px;margin-top:10px}
  .gallery-arrow{width:42px;height:42px;font-size:34px;background:rgba(0,0,0,.48)}
  .main-prev{left:8px}.main-next{right:8px}

  .two-col{text-align:center;gap:18px}
  .contact-card{padding:24px;align-items:stretch;text-align:center}
  .contact-actions{display:grid;grid-template-columns:1fr;gap:10px;width:100%}
  .contact-actions .btn{width:100%}
  .footer{font-size:13px}

  .photo-modal{padding:10px}
  .photo-modal-img{max-width:100vw;max-height:86vh;border-radius:10px}
  .photo-modal-close{top:10px;right:10px;width:44px;height:44px;background:rgba(0,0,0,.7)}
  .photo-modal-arrow{width:46px;height:46px;font-size:38px;background:rgba(0,0,0,.62)}
  .photo-modal-prev{left:8px}.photo-modal-next{right:8px}
  .photo-modal-counter{bottom:12px;font-size:13px}
}

@media(max-width:420px){
  .container{width:94%}
  .eyebrow{font-size:11px;letter-spacing:.12em}
  .brand img{height:50px}
  .btn{min-height:44px;padding:0 16px}
  .car-body{padding:16px}
  .car-details div{flex-direction:column;align-items:flex-start;gap:4px}
  .car-details span{text-align:left}
  .price{font-size:25px}
}

.visit-counter-card{margin:0 0 18px;padding-bottom:18px}
.visit-counter-card h3{margin-bottom:0}
.visit-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 0}
.visit-stats div{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#111,#090909);padding:15px}
.visit-stats strong{display:block;font-size:30px;line-height:1;color:#fff;margin-bottom:5px}
.visit-stats span{color:var(--silver);font-size:13px}
.visit-status{display:inline-flex;align-items:center;margin:12px 0 0;padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:var(--silver);font-size:12px;background:#080808}
.visit-status[hidden]{display:none}
@media (max-width:700px){.visit-stats{grid-template-columns:1fr}.visit-stats strong{font-size:26px}}
