/* Rubrique Opti de la boutique et guide Velkra Boost */

.opti-grid {
  display: grid;
  gap: 1.6rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
}

.opti-grid .glow {
  height: 100%;
}

.opti-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 0.8rem;
}

.opti-media {
  position: relative;
  aspect-ratio: 40 / 21;
  overflow: hidden;
  clip-path: polygon(14px 0, 100% 0, 100% 100%, 0 100%, 0 14px);
  background: #120d26;
}

.opti-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.glow:hover .opti-media img {
  transform: scale(1.04);
}

/* le visuel de Velkra Boost est une texture : on y pose le nom du logiciel */
.opti-media-title {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  gap: 0.4rem;
  text-align: center;
  background: linear-gradient(180deg, rgba(6, 5, 13, 0.1), rgba(6, 5, 13, 0.55));
}

.opti-media-title strong {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.8rem, 6vw, 2.8rem);
  line-height: 1;
  text-transform: uppercase;
  background: var(--chrome);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 0 22px rgba(139, 43, 255, 0.8));
}

.opti-media-title span {
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: #cfb2ff;
}

.opti-body {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  flex: 1;
  padding: 1.2rem 0.7rem 0.6rem;
}

.opti-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.opti-body h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.1;
  text-transform: uppercase;
}

.opti-tagline {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--mag-hi);
}

.opti-points {
  display: grid;
  gap: 0.5rem;
}

.opti-points li {
  position: relative;
  padding-left: 1.2rem;
  color: #d5d0e6;
}

.opti-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  background: var(--mag);
  transform: rotate(45deg);
  box-shadow: 0 0 8px var(--mag);
}

.opti-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: auto;
  padding-top: 0.6rem;
}

.opti-actions .btn {
  flex: 1 1 auto;
}

.opti-note {
  font-size: 0.82rem;
  color: var(--mute);
}

/* ---------- Guide Velkra Boost ---------- */

.guide-lede {
  max-width: 46rem;
  font-size: 1.08rem;
  color: #d9d4ea;
}

.guide-cards {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
}

.guide-card {
  display: grid;
  align-content: start;
  gap: 0.6rem;
  height: 100%;
  padding: 1.2rem 1.3rem;
}

.guide-card h3 {
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.guide-card p {
  font-size: 0.94rem;
  color: var(--dim);
}

.guide-gain {
  justify-self: start;
}

.guide-steps {
  display: grid;
  gap: 1rem;
  counter-reset: step;
}

.guide-step {
  position: relative;
  display: grid;
  gap: 0.5rem;
  padding: 1.3rem 1.4rem 1.3rem 4.6rem;
  counter-increment: step;
}

.guide-step::before {
  content: "0" counter(step);
  position: absolute;
  left: 1.3rem;
  top: 1.15rem;
  font-family: var(--font-display);
  font-size: 1.9rem;
  line-height: 1;
  color: var(--mag);
  text-shadow: 0 0 18px rgba(255, 43, 214, 0.7);
}

.guide-step h3 {
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.guide-step p,
.guide-list li {
  color: #d5d0e6;
}

.guide-step kbd {
  padding: 0.1rem 0.4rem;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.06);
  font: 600 0.85em var(--font-ui);
}

.prompt-box {
  display: grid;
  gap: 0.9rem;
  padding: clamp(1.2rem, 3vw, 2rem);
}

.prompt-box textarea {
  width: 100%;
  min-height: 22rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-left: 2px solid var(--mag);
  background: rgba(0, 0, 0, 0.35);
  color: var(--text);
  font: 0.9rem/1.6 ui-monospace, "Cascadia Mono", Consolas, monospace;
  resize: vertical;
}

.prompt-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}

.guide-warn {
  display: grid;
  gap: 0.9rem;
  padding: clamp(1.4rem, 3vw, 2.2rem);
}

.guide-warn h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 1.3rem;
  text-transform: uppercase;
}

.guide-list {
  display: grid;
  gap: 0.6rem;
  padding-left: 1.2rem;
  list-style: square;
}

.guide-list li::marker {
  color: var(--mag);
}

.guide-hash {
  overflow-wrap: anywhere;
  font: 0.8rem ui-monospace, "Cascadia Mono", Consolas, monospace;
  color: var(--dim);
}

.guide-download {
  display: grid;
  gap: 1rem;
  justify-items: center;
  padding: clamp(2rem, 5vw, 3.2rem) 1.5rem;
  text-align: center;
}

.section .glow:has(.prompt-box):hover,
.section .glow:has(.guide-warn):hover,
.section .glow:has(.guide-download):hover {
  transform: none;
}
