/* ====== BASE ====== */
body {
  margin: 0;
  font-family: 'Montserrat', sans-serif;
  background: #f9f9f9;
  color: #333;
  line-height: 1.5;
}

/* Contenitore generale */
.product-page {
  max-width: 1800px;
  margin: 0 auto;
  padding: 2rem;
}

/* ====== HEADER ====== */
.product-header {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  text-align: left;
  padding: 1rem;
  background: #f5f5f5;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

/* ====== LAYOUT PRINCIPALE ====== */
.product-main {
  display: grid;
  grid-template-columns: 2fr 1fr; /* due colonne */
  gap: 2rem;
  margin-top: 2rem;
}

/* Colonna sinistra */
#svg-container {
    width: 100% !important;
    height: 670px !important; 
    margin-bottom: 20px;
    margin-top: 0px ;
    overflow: hidden;
    position: relative;
    border: 0px solid #e4e3e3; 
    border-radius: 6px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    background: #fff;  
}

#svg-container svg {
    position: absolute; 
    top: 50%; 
    left: 50%; 
    transform-origin: 50% 50%;
}
.left-column {
  background: #fff;
  padding: 1.5rem;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}

/* Colonna destra */
.right-column {
  background: #fafafa;
  padding: 1.5rem;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}

/* Titolo colonna destra */
.right-column .right-title {
  font-size: 2rem;
  font-weight: 600;
  margin-bottom: 1rem;
  text-align: center;
}

/* ====== TABS ====== */
.tabs {
  margin-top: 1.5rem;
}
.tabs input[type="radio"] {
  display: none;
}
.tabs label {
  padding: 0.6rem 1rem;
  margin-right: 0.3rem;
  background: #eee;
  border-radius: 6px 6px 0 0;
  cursor: pointer;
  font-weight: 500;
}
.tabs label:hover {
  background: #ddd;
}
.tab-content {
  display: none;
  padding: 1rem;
  border: 1px solid #ddd;
  border-top: none;
  background: #fff;
  border-radius: 0 6px 6px 6px;
}
#tab-desc:checked ~ #content-desc,
#tab-file:checked ~ #content-file,
#tab-download:checked ~ #content-download {
  display: block;
}

/* ====== CONTROLLI ====== */
.row {
  margin: 1rem 0;
}

.row.controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}

label {
  margin-right: 1rem;
  padding: 0.6rem;
  font-weight: 500;
}

input[type="number"],
select,
textarea {
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  padding: 0.5rem;
  border-radius: 8px;
  border: 1px solid #ccc;
  margin-left: 0.3rem;
}

/* ====== SELECT COLORI ====== */
#color-select {
  width: 100%;
  margin-top: 0.5rem;
  padding: 0.6rem;
  border-radius: 8px;
  border: 1px solid #bbb;
  cursor: pointer;
  font-weight: 500;
}

/* ====== PULSANTI ====== */
.btn {
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  border: none;
  padding: 0.7rem 1.2rem;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.2s;
}

.btn.primary {
  background: #0077ff;
  color: #fff;
  font-weight: 600;
}
.btn.primary:hover {
  background: #005bcc;
}

.btn.secondary {
  background: #eee;
  color: #333;
}
.btn.secondary:hover {
  background: #ddd;
}

.btn.warn {
  background: #ffdddd;
  color: #c00;
}
.btn.warn:hover {
  background: #ffbbbb;
}

/* ====== PREZZI ====== */
.price-info {
  font-size: 0.95rem;
  background: #f5f5f5;
  padding: 0.7rem 1rem;
  border-radius: 8px;
  margin-top: 0.5rem;
}
.price-info span {
  font-weight: 600;
  color: #0077ff;
}
.price-info1 {
  font-size: 1.1rem;
  background: #f5f5f5;
  padding: 0.7rem 0.01rem;
  border-radius: 8px;
  margin-top: 0.5rem;
}
.price-info1 span {
  font-weight: 600;
  color: #eb0505;
}

/* ====== NOTE ====== */
#note-box {
  display: none; /* inizialmente nascosto */
  margin-top: 0.8rem;
}
#note-box textarea {
  width: 100%;
  resize: vertical;
  border-radius: 8px;
  border: 1px solid #ccc;
  padding: 0.8rem;
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
}

/* ====== RESPONSIVE ====== */
@media (max-width: 900px) {
  .product-main {
    grid-template-columns: 1fr; /* una colonna sola su mobile */
  }
  .row.controls {
    flex-direction: column;
    align-items: flex-start;
  }
  .row.controls label {
    margin-bottom: 0.5rem;
  }
}
