/* HERO */
.hero{
  position:relative;
  min-height: 100svh;
  display:grid;
  place-items:center;
  isolation:isolate;
  background:
    radial-gradient(1200px 800px at 75% 40%, var(--accent-20) 0%, transparent 60%),
    linear-gradient(180deg, #031223 0%, #0b0b0d 60%, #031223 100%);
}

.hero-inner{
  width: min(94vw, 1200px);
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  align-items:center;
  gap: clamp(20px, 3vw, 40px);
  padding: clamp(20px, 4vw, 40px) 0;
}

@media (max-width: 900px){
  .container-hero{
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

.hero-copy h1{
  font-size:5rem; line-height:1.1; margin:.2rem 0 1rem;
  color:var(--text);
}
.hero-copy .lead{font-size:3rem;font-weight:700; color:var(--muted);line-height: 1.2em;}
.hero-copy .lead span{color:var(--accent)}
.hero-ctas{display:flex; gap:.8rem; margin:1rem 0}
.trust-list{
  display:flex; gap:1rem; padding:0; margin:1rem 0 0; list-style:none; color:var(--muted)
}
.hero-media img{border-radius:var(--radius); box-shadow:var(--shadow)}

@media (max-width:900px){ .hero-inner{grid-template-columns:1fr} }


/* STEPS — HOW IT WORKS */
.steps {
  margin: 0;
  background: #0b0b0d;
  color: var(--text);
  padding: 80px 20px;
}

.steps-wrapper {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 70px;
}

/* Titolo centrato */
.steps-header {
  text-align: center;
}

.steps-header h2 {
  font-size: clamp(1.8rem, 3.5vw + 0.8rem, 3rem);
  line-height: 1.15;
  margin: 0;
  color: var(--white);
}

/* Riga singolo step: 2 colonne foto + testo */
.step-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

/* Step invertito: testo a sinistra, foto a destra */
.step-row-reverse {
  direction: rtl;
}

.step-row-reverse > * {
  direction: ltr;
}

/* Foto */
.step-photo {
  border-radius: 16px;
  overflow: hidden;
  line-height: 0;
}

.step-photo img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 16px;
  object-fit: cover;
  aspect-ratio: 3 / 2;
}

/* Info testuale */
.step-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
}

.step-info h3 {
  margin: 0;
  font-size: clamp(1.4rem, 2vw + 0.6rem, 2rem);
  font-weight: 700;
  color: var(--brand);
}

.step-info p {
  margin: 0;
  color: rgba(245, 245, 245, 0.75);
  font-size: 1rem;
  line-height: 1.6;
  max-width: 380px;
}

/* Icona piccola sotto il testo */
.step-icon-img {
  margin-top: 8px;
}

.step-icon-img img {
  width: 56px;
  height: 56px;
  object-fit: contain;
  display: block;
}

/* CTA finale */
.steps-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.steps-subtitle {
  font-size: 1rem;
  color: rgba(245, 245, 245, 0.65);
  margin: 0;
}

/* Responsive — mantiene 2 colonne anche su mobile */
@media (max-width: 768px) {
  .steps {
    padding: 48px 12px;
  }

  .steps-wrapper {
    gap: 36px;
  }

  .step-row {
    grid-template-columns: 1fr;
    grid-template-areas:
      "info"
      "photo";
    gap: 14px;
    align-items: start;
  }

  .step-row-reverse {
    direction: ltr;
  }

  .step-info {
    grid-area: info;
    gap: 10px;
    max-width: 560px;
    margin: 0 auto;
  }

  .step-photo {
    grid-area: photo;
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
  }

  .step-photo img {
    aspect-ratio: 16 / 10;
    border-radius: 10px;
  }

  .step-photo {
    border-radius: 10px;
  }

  .step-info {
    gap: 8px;
  }

  .step-info h3 {
    font-size: clamp(0.85rem, 3.5vw, 1.1rem);
  }

  .step-info p {
    font-size: clamp(0.7rem, 2.8vw, 0.88rem);
    max-width: 100%;
    line-height: 1.4;
  }

  .step-icon-img img {
    width: 36px;
    height: 36px;
  }
}

/* HOW-TO: griglia 2 colonne (contenuto | card) */
.howto-grid{
  display:grid;
  grid-template-columns: 1fr 1fr; /* contenuto prioritario */
  gap: 2rem;
  align-items:start;
}
/* Le card nel riquadro destro devono impilarsi in verticale */
.howto-grid .card-grid{grid-template-columns: 1fr;}
@media (max-width: 900px){
  .howto-grid{grid-template-columns:1fr}
}

/* CONTATTI: griglia 2 colonne (info | form) */
.contact-grid{
  display:grid;
  grid-template-columns: 2fr 1fr;
  gap: 2rem;
  align-items:start;
}
@media (max-width:900px){
  .contact-grid{grid-template-columns:1fr}
}

.contact-info-card{
  background: var(--surface);
  border:1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 1.5rem;
  height: 100%;
  display:flex; flex-direction:column;
  justify-content: center;align-items: center;height: 100%;width: 100%;
  text-align: center;
}
.contact-info-card h3{margin:.2rem 0 1rem; color: var(--brand);}
.contact-info-list{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.6rem; color:var(--muted);}
.contact-info-list a{color:var(--brand)}


.contact-form-card{
  background: var(--surface);
  border:1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 1.5rem;
  height: 100%;
}

/* FIRMWARE RELEASES */
.firmware-section{
  margin: 2rem 0 2.5rem;
  padding: 1.5rem;
  border: 1px solid rgba(195, 168, 117, 0.2);
  border-radius: 20px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.firmware-section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1.25rem;
}

.firmware-eyebrow{
  margin:0 0 .35rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.78rem;
  color:var(--accent);
}

.firmware-title{
  margin:.1rem 0 .4rem;
}

.firmware-subtitle{
  margin:0;
  max-width: 720px;
}

.firmware-status{
  padding: 1rem 1.1rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(3, 18, 35, 0.72);
  color: rgba(245, 245, 245, 0.78);
}

.firmware-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1.4rem;
}

.firmware-card{
  display:grid;
  grid-template-columns: minmax(160px, .9fr) minmax(320px, 2fr) 130px 90px auto;
  align-items:center;
  gap:1rem;
  text-align:left;
  min-height:auto;
  background: rgba(3, 18, 35, 0.9);
  border: 1px solid #f5f5f5;
  padding: 1rem 1.1rem;
}

.firmware-badge{
  display:inline-flex;
  justify-self:start;
  align-items:center;
  padding:.35rem .65rem;
  border-radius:999px;
  border:1px solid rgba(195, 168, 117, 0.35);
  background: rgba(195, 168, 117, 0.12);
  color: var(--accent);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.firmware-date{
  justify-self:start;
  color: rgba(245, 245, 245, 0.68);
  font-size:.85rem;
}

.firmware-version{
  margin:0;
  color:var(--accent);
  text-transform:none;
  font-size:1.05rem;
}

.firmware-notes{
  margin:0;
  color: rgba(245, 245, 245, 0.8);
  overflow: hidden;
  line-clamp: 2;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.firmware-actions{
  display:flex;
  flex-wrap:nowrap;
  gap:.75rem;
  margin-top:0;
  justify-self:end;
}

.firmware-releases-link,
.firmware-notes-link{
  background: var(--panel);
  color: var(--text);
  border-color: rgba(195, 168, 117, 0.45);
}

.firmware-releases-link:hover,
.firmware-notes-link:hover{
  color: var(--text);
}

.firmware-actions .btn{
  min-width: 140px;
}

.filters-row{
  display:flex;
  align-items:center;
  gap:1rem;
}

.filters-row #templates-search{
  flex:1;
  min-width:0;
}

.template-upload-btn{
  flex-shrink:0;
  position:sticky;
  right:0;
  top:1rem;
  z-index:2;
  white-space:nowrap;
}

#templates-search{
  border: 1px solid #f5f5f5 !important;
}

@media (max-width: 900px){
  .firmware-section-head{
    flex-direction:column;
    align-items:flex-start;
  }

  .firmware-card{
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "title title"
      "notes notes"
      "date badge"
      "actions actions";
    gap:.75rem;
  }

  .firmware-version{grid-area:title;}
  .firmware-notes{grid-area:notes;}
  .firmware-date{grid-area:date;}
  .firmware-badge{grid-area:badge; justify-self:end;}
  .firmware-actions{
    grid-area:actions;
    justify-self:start;
    flex-wrap:wrap;
  }
}

@media (max-width: 640px){
  .firmware-section{
    padding:1rem;
    margin:1.5rem 0 2rem;
  }

  .filters-row{
    flex-direction:column;
    align-items:stretch;
  }

  .template-upload-btn{
    position:static;
    width:100%;
    text-align:center;
  }

  .firmware-actions .btn{
    width:100%;
    min-width:0;
  }
}


/* CARDS */
.cards{padding:3rem 0; display: flex; justify-content: center; align-items: center;}
.cards h2{color:var(--accent); text-align: center; margin-bottom: 2rem;}
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; max-width: 1200px; margin: 0 auto;}
.card{
  background: var(--surface);
  border:1px solid var(--line); padding:1.5rem; border-radius:14px;
  justify-content: center; text-align:center;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow), 0 0 20px rgba(0,135,255,0.1);
}
.firmware-card{
  border: 1px solid #f5f5f5;
}
/* TAG FILTER CHIPS */
.tag-filters {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: 1.6rem;
}
.tag-chip {
  display: inline-flex;
  align-items: center;
  padding: .32rem .92rem;
  border-radius: 999px;
  border: 1px solid rgba(195, 168, 117, .35);
  background: transparent;
  color: var(--text);
  font-size: .82rem;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  user-select: none;
  transition: background .18s, border-color .18s, color .18s;
}
.tag-chip:hover {
  border-color: var(--accent);
  background: rgba(195, 168, 117, .12);
}
.tag-chip.active {
  background: var(--accent);
  color: #0b0b0d;
  border-color: var(--accent);
  font-weight: 600;
}
.tag-chip-all {
  border-color: rgba(245, 245, 245, .35);
}
.tag-chip-all.active {
  background: rgba(245, 245, 245, .15);
  color: var(--text);
  border-color: rgba(245, 245, 245, .6);
  font-weight: 600;
}
@media (max-width: 600px) {
  .tag-filters { gap: .35rem; }
  .tag-chip { font-size: .78rem; padding: .28rem .75rem; }
}

.template-card{
  border: 1px solid #f5f5f5;
}
.card h3{margin:.7rem 0 .5rem; color:var(--brand); text-transform: uppercase;}
.card p{color:var(--muted); line-height: 1.6;}
.card img{border-radius:12px; box-shadow:var(--shadow)}
@media (max-width:900px){ .card-grid{grid-template-columns:1fr} }

/* ACCORDION */
.accordion{max-width: 800px; margin: 0 auto;}
.accordion-item{
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
  margin-bottom: 1rem;
  overflow: hidden;
}
.accordion-heading{margin: 0;}
.accordion-trigger{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.2rem 1.5rem;
  background: transparent;
  border: none;
  color: var(--text);
  font-size: 1.1rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: background 0.2s ease;
}
.accordion-trigger:hover{background: rgba(255,255,255,0.03);}
.accordion-trigger:focus-visible{
  outline: 2px solid var(--brand);
  outline-offset: -2px;
}
.accordion-trigger[aria-expanded="true"] .accordion-title{color: var(--brand);}
.accordion-icon{
  font-size: 1.5rem;
  color: var(--accent);
  font-weight: 300;
  transition: transform 0.3s ease;
}
.accordion-trigger[aria-expanded="true"] .accordion-icon{transform: rotate(45deg);}
.accordion-panel{
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.accordion-panel[hidden]{display: block;}
.accordion-content{
  padding: 0 1.5rem 1.5rem;
  color: var(--muted);
  line-height: 1.7;
}
.accordion-content p:first-child{margin-top: 0;}
.accordion-content p:last-child{margin-bottom: 0;}

/* BUY BOX */
.buy-box{padding:2.5rem 0}
.buy-box h2{color:var(--accent)}
.buy-box-inner{display:flex; gap:3rem; align-items:center;}

.product-photo img{
  max-width: 900px;
  height: auto;
  width:100%; height:100%; object-fit:contain;
}

.price{font-size:2rem; font-weight:800; color:var(--accent)}
.price-note{display:block; color:#bdbdd0}

.buy-panel{
  background:linear-gradient(180deg, #171721, #13131a);
  border:1px solid var(--line); border-radius:16px; padding:2rem;margin-right: 3rem;margin-left: 3rem;
  width: 100%;
  height: auto;
  box-shadow:var(--shadow);  align-items:center; text-align:center; justify-content: center; display:flex; flex-direction: column;
  gap:3rem;
}

.buy-title{ align-items:center; text-align:right; font-size: 4rem;margin-right: 10rem;}

.price-col{display:grid; grid-template-columns:repeat(2,1fr); gap:1rem;} 

.price-amount{font-size:3.5rem; font-weight:800; color:var(--accent);}
.price-points{list-style:none; padding:0; margin:1rem 0; color:#cbd1df}
.price-points li::marker{color:var(--brand)}
@media (max-width:900px){ .buy-box-inner{grid-template-columns:1fr} }

/* FEATURES 3D */
.features-3d {
  padding: 6rem 0;
  background: transparent; /* Sfondo trasparente come il resto del progetto */
  position: relative;
  overflow: hidden;
}

.features-3d::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 800px;
  height: 800px;
  background: radial-gradient(circle, var(--accent-20) 0%, transparent 70%);
  transform: translateX(-50%);
  pointer-events: none;
}

.features-3d-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  position: relative;
  z-index: 1;
}

.features-3d-model {
  position: relative;
  height: 500px;
  border-radius: var(--radius);
  overflow: hidden;
}

/* Effetto glow/shadow sotto il modello 3D */
.features-3d-model::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 80%;
  height: 40px;
  background: radial-gradient(ellipse at center, var(--brand) 0%, rgba(0,135,255,0.3) 30%, transparent 70%);
  transform: translateX(-50%);
  filter: blur(20px);
  opacity: 0.6;
  pointer-events: none;
  z-index: 0;
}

.features-3d-model model-viewer {
  width: 100% !important;
  height: 100% !important;
  background: transparent !important;
  --poster-color: transparent;
  --progress-bar-color: var(--accent);
  --interaction-prompt-style: none;
  position: relative;
  z-index: 1;
}

.features-3d-model model-viewer::part(default-progress-bar) {
  display: none;
}

.features-3d-model canvas {
  width: 100% !important;
  height: 100% !important;
  background: transparent !important;
}

.features-3d-content {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.features-3d-title {
  font-size: 3rem;
  font-weight: 700;
  color: var(--text);
  margin: 0;
}

.features-3d-description {
  font-size: 1.2rem;
  line-height: 1.6;
  color: var(--text-muted);
  margin: 0;
}

.features-3d-controls {
  display: flex;
  gap: 1rem;
}

.features-3d-nav {
  display: flex;
  gap: 0.5rem;
  margin-top: 1rem;
}

.features-3d-indicator {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--line);
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
}

.features-3d-indicator.active {
  background: var(--accent);
  box-shadow: 0 0 12px var(--accent-20);
}

@media (max-width: 900px) {
  .features-3d-container {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  
  .features-3d-model {
    height: 400px;
  }
  
  .features-3d-title {
    font-size: 2.5rem;
  }
}

/* GETTING STARTED PAGE STYLES */
.card-grid-2{
  display:grid; 
  grid-template-columns:repeat(2,1fr); 
  gap:2rem; 
  max-width: 1200px; 
  margin: 0 auto;
}
@media (max-width:900px){ 
  .card-grid-2{grid-template-columns:1fr} 
}

.intro-text{
  max-width: 900px; 
  margin: 0 auto;
}
.intro-text p{
  margin-bottom: 1.2rem; 
  line-height: 1.7; 
  color: var(--text);
}
.intro-text code{
  background: rgba(255,204,0,.1); 
  padding: 0.2rem 0.5rem; 
  border-radius: 4px; 
  font-family: monospace; 
  color: var(--accent);
  font-size: 0.9em;
}

.lead-content{
  max-width: 900px; 
  margin: 0 auto;
}
.lead-content .lead{
  color: var(--muted); 
  line-height: 1.6;
}

.link-list{
  list-style: none; 
  padding: 0; 
  margin: 1rem 0;
}
.link-list li{
  margin-bottom: 0.8rem;
}
.link-list a{
  color: var(--accent); 
  text-decoration: none; 
  display: inline-block;
  transition: all 0.2s ease;
}
.link-list a:hover{
  color: var(--brand);
}

.info-box h4{
  margin-top: 0;
}
.info-box p{
  color: var(--text);
}
