/* ── PAGES INTERNES ── */
.page { max-width: var(--W); margin: 0 auto; padding: calc(var(--nav-h) + 48px) 40px 80px; }

.page__header { margin-bottom: 40px; }
.page__title { font-size: clamp(28px,5vw,52px); font-weight:800; color:var(--t0); letter-spacing:-0.03em; margin-bottom:12px; }
.page__sub { font-size:16px; color:var(--t2); max-width:560px; line-height:1.65; }

/* ── BOUTIQUE ── */
.shop-search-wrap {
  max-width:600px; margin:0 auto 32px;
  position:relative;
}
.shop-search {
  width:100%; padding:14px 20px 14px 48px;
  border-radius:var(--r3); border:1px solid var(--border-m);
  background:#fff; color:var(--t0); font-size:15px; outline:none;
  box-shadow:var(--shadow-sm); transition:border-color 0.2s, box-shadow 0.2s;
}
.shop-search::placeholder { color:var(--t3); }
.shop-search:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(37,99,235,0.12); }
.shop-search-icon { position:absolute; left:16px; top:50%; transform:translateY(-50%); width:20px; height:20px; stroke:var(--t3); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }

.filter-bar {
  display:flex; align-items:center; justify-content:center; gap:8px;
  flex-wrap:wrap; margin-bottom:36px;
}
.filter-chip {
  font-size:14px; font-weight:500; padding:8px 18px; border-radius:99px;
  background:#fff; border:1px solid var(--border-m); color:var(--t2);
  cursor:pointer; transition:all 0.18s;
}
.filter-chip:hover { border-color:var(--blue); color:var(--blue); }
.filter-chip.is-active { background:var(--blue); border-color:var(--blue); color:#fff; font-weight:600; }

.shop-stats { text-align:center; font-size:13px; color:var(--t3); margin-bottom:20px; }

/* Grille produits — 4 colonnes */
.shop-grid {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:20px;
}
.shop-item {
  background:#fff; border:1px solid var(--border); border-radius:var(--r3);
  overflow:hidden; transition:box-shadow 0.22s, transform 0.22s;
}
.shop-item:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); }

.shop-item__img { position:relative; aspect-ratio:16/9; background:var(--bg-s); overflow:hidden; }
.shop-item__img img { width:100%; height:100%; object-fit:cover; transition:transform 0.45s; }
.shop-item:hover .shop-item__img img { transform:scale(1.06); }
.shop-item__badge {
  position:absolute; top:10px; left:10px;
  font-size:10px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
  padding:3px 8px; border-radius:4px;
  background:var(--blue); color:#fff;
}

.shop-item__body { padding:16px; }
.shop-item__name { font-size:15px; font-weight:700; color:var(--t0); margin-bottom:6px; line-height:1.3; }
.shop-item__price { font-size:18px; font-weight:800; color:var(--t0); margin-bottom:12px; }
.shop-item__price span { font-size:13px; font-weight:500; color:var(--t2); }

.shop-item__buy {
  display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%; padding:10px; border-radius:var(--r1);
  background:#fff; border:1px solid var(--border-m);
  font-size:13px; font-weight:600; color:var(--t1); text-decoration:none;
  cursor:pointer; transition:all 0.18s;
}
.shop-item__buy:hover { background:var(--blue); border-color:var(--blue); color:#fff; }
.shop-item__buy svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

.shop-empty { display:none; text-align:center; padding:80px 24px; color:var(--t2); font-size:15px; }
.shop-empty.is-visible { display:block; }

/* ── PRODUIT DETAIL ── */
.product-detail { padding:calc(var(--nav-h) + 32px) 40px 80px; max-width:1280px; margin:0 auto; }
.product-detail__back { display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--t2); margin-bottom:32px; transition:color 0.18s; }
.product-detail__back:hover { color:var(--blue); }
.product-detail__back svg { width:16px; height:16px; }
.product-detail__layout { display:grid; grid-template-columns:1fr 420px; gap:48px; align-items:start; }

.gallery { position:sticky; top:calc(var(--nav-h) + 16px); }
.gallery__main { position:relative; aspect-ratio:16/9; border-radius:var(--r3); overflow:hidden; background:var(--bg-s); border:1px solid var(--border); margin-bottom:10px; cursor:zoom-in; }
.gallery__main img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s; }
.gallery__main:hover img { transform:scale(1.03); }
.gallery__counter { position:absolute; bottom:10px; right:10px; background:rgba(0,0,0,0.55); color:#fff; font-size:11px; font-weight:600; padding:3px 9px; border-radius:5px; }
.gallery__nav { position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,0.9); border:1px solid var(--border); border-radius:50%; width:38px; height:38px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all 0.2s; z-index:2; box-shadow:var(--shadow-sm); }
.gallery__nav:hover { background:var(--blue); border-color:var(--blue); color:#fff; }
.gallery__nav svg { width:18px; height:18px; }
.gallery__nav--prev { left:10px; }
.gallery__nav--next { right:10px; }
.gallery__thumbs { display:flex; gap:8px; flex-wrap:wrap; }
.gallery__thumb { width:70px; height:46px; border-radius:6px; overflow:hidden; background:var(--bg-s); border:2px solid transparent; cursor:pointer; transition:all 0.18s; flex-shrink:0; }
.gallery__thumb img { width:100%; height:100%; object-fit:cover; }
.gallery__thumb.is-active { border-color:var(--blue); }
.gallery__thumb:hover:not(.is-active) { border-color:var(--border-m); }

.product-info { display:flex; flex-direction:column; gap:20px; }
.product-info__cat { font-size:12px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--blue); }
.product-info__name { font-size:clamp(22px,4vw,32px); font-weight:800; color:var(--t0); line-height:1.15; letter-spacing:-0.02em; }
.product-info__price { font-size:36px; font-weight:800; color:var(--t0); letter-spacing:-0.02em; }
.product-info__tags { display:flex; gap:6px; flex-wrap:wrap; }
.product-info__desc { background:var(--bg-s); border:1px solid var(--border); border-radius:var(--r2); padding:18px 20px; font-size:14px; color:var(--t2); line-height:1.7; }
.product-info__actions { display:flex; flex-direction:column; gap:10px; }
.product-info__buy {
  display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; padding:15px 28px; border-radius:var(--r2);
  background:var(--blue); border:none; color:#fff;
  font-size:15px; font-weight:700; cursor:pointer; transition:all 0.22s;
  text-decoration:none; box-shadow:0 2px 8px rgba(37,99,235,0.25);
}
.product-info__buy svg { width:18px; height:18px; }
.product-info__buy:hover { background:var(--blue-h); transform:translateY(-2px); box-shadow:0 6px 20px rgba(37,99,235,0.35); }
.product-info__discord {
  display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; padding:12px 28px; border-radius:var(--r2);
  background:#fff; border:1px solid var(--border-m);
  color:var(--t2); font-size:13px; font-weight:600; text-decoration:none; transition:all 0.18s;
}
.product-info__discord:hover { border-color:var(--blue); color:var(--blue); }
.product-info__guarantee { display:flex; align-items:center; gap:8px; padding:12px 16px; background:var(--bg-s); border:1px solid var(--border); border-radius:var(--r2); font-size:12px; color:var(--t2); }
.product-info__guarantee svg { width:14px; height:14px; stroke:#16a34a; flex-shrink:0; }

/* ── CONTACT / INFOS PAGE ── */
.contact-layout { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.contact-block { background:#fff; border:1px solid var(--border); border-radius:var(--r4); padding:36px; box-shadow:var(--shadow-sm); }
.contact-block__title { font-size:22px; font-weight:800; color:var(--t0); margin-bottom:8px; }
.contact-block__sub { font-size:14px; color:var(--t2); margin-bottom:24px; line-height:1.6; }

.info-row { display:flex; align-items:center; gap:14px; padding:16px; border-radius:var(--r2); background:var(--bg-s); border:1px solid var(--border); margin-bottom:10px; }
.info-row__icon { width:40px; height:40px; border-radius:10px; background:var(--blue-l); border:1px solid var(--blue-m); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.info-row__icon svg { width:19px; height:19px; stroke:var(--blue); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.info-row__label { font-size:11px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--t3); margin-bottom:3px; }
.info-row__value { font-size:14px; font-weight:600; color:var(--t0); }
a.info-row__value:hover { color:var(--blue); }

/* TEAM */
.team-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:16px; }
.team-card { background:#fff; border:1px solid var(--border); border-radius:var(--r3); padding:28px 20px; text-align:center; box-shadow:var(--shadow-sm); transition:box-shadow 0.22s, transform 0.22s; }
.team-card:hover { box-shadow:var(--shadow-md); transform:translateY(-3px); }
.team-card__avatar { width:64px; height:64px; border-radius:14px; background:var(--blue-l); display:flex; align-items:center; justify-content:center; margin:0 auto 14px; font-size:26px; }
.team-card__name { font-size:16px; font-weight:700; color:var(--t0); margin-bottom:4px; }
.team-card__role { font-size:12px; color:var(--t2); margin-bottom:14px; }
.team-card__bio { font-size:12px; color:var(--t2); line-height:1.55; margin-bottom:14px; border-top:1px solid var(--border); padding-top:12px; }
.team-card__skills-label { font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--t3); margin-bottom:8px; }
.team-card__skills { display:flex; gap:5px; flex-wrap:wrap; justify-content:center; }
.team-card__skill { font-size:11px; padding:2px 8px; border-radius:4px; background:var(--bg-s); border:1px solid var(--border); color:var(--t2); }

/* SOFTWARES */
.softwares-section { margin-top:40px; }
.softwares-title { font-size:clamp(20px,3vw,32px); font-weight:800; color:var(--t0); text-transform:uppercase; letter-spacing:-0.02em; margin-bottom:10px; }
.softwares-sub { font-size:14px; color:var(--t2); margin-bottom:36px; }
.softwares-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:700px; }
.software-item { display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; text-decoration:none; }
.software-item__logo { width:64px; height:64px; border-radius:14px; overflow:hidden; background:var(--bg-s); display:flex; align-items:center; justify-content:center; border:1px solid var(--border); }
.software-item__logo img { width:100%; height:100%; object-fit:contain; }
.software-item__name { font-size:14px; font-weight:700; color:var(--t0); }
.software-item__desc { font-size:12px; color:var(--t2); }

/* ── PORTFOLIO ── */
.portfolio-masonry { columns:2; column-gap:16px; }
.portfolio-entry { break-inside:avoid; margin-bottom:16px; border-radius:var(--r3); overflow:hidden; position:relative; background:var(--bg-s); border:1px solid var(--border); box-shadow:var(--shadow-sm); transition:box-shadow 0.22s, transform 0.22s; }
.portfolio-entry:hover { box-shadow:var(--shadow-md); transform:scale(1.01); }
.portfolio-entry img { width:100%; display:block; }
.portfolio-entry__overlay { position:absolute; bottom:0; left:0; right:0; padding:16px 14px 12px; background:linear-gradient(transparent,rgba(0,0,0,0.75)); }
.portfolio-entry__name { font-size:15px; font-weight:700; color:#fff; margin-bottom:4px; }
.portfolio-entry__tag { font-size:11px; color:rgba(255,255,255,0.6); }

/* Similar grid */
.similar-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }

/* ── RESPONSIVE ── */
@media(max-width:1024px) {
  .shop-grid { grid-template-columns:repeat(3,1fr); }
  .product-detail__layout { grid-template-columns:1fr; }
  .gallery { position:static; }
  .contact-layout { grid-template-columns:1fr; }
}
@media(max-width:768px) {
  .page { padding:calc(var(--nav-h)+28px) 20px 60px; }
  .shop-grid { grid-template-columns:repeat(2,1fr); gap:14px; }
  .portfolio-masonry { columns:1; }
  .softwares-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:480px) {
  .shop-grid { grid-template-columns:1fr; }
  .team-grid { grid-template-columns:1fr 1fr; }
}

/* ══════════════════════════════════════════
   DARK MODE — pages internes
══════════════════════════════════════════ */
[data-theme="dark"] .shop-item,
[data-theme="dark"] .shop-item__img,
[data-theme="dark"] .filter-bar,
[data-theme="dark"] .shop-search,
[data-theme="dark"] .filter-chip {
  background: var(--bg-w) !important;
  border-color: var(--border) !important;
}
[data-theme="dark"] .filter-chip:hover {
  background: rgba(255,255,255,0.04) !important;
  border-color: var(--blue) !important;
}
[data-theme="dark"] .filter-chip.is-active {
  background: var(--blue) !important;
  border-color: var(--blue) !important;
  color: #fff !important;
}
[data-theme="dark"] .shop-search {
  color: var(--t0) !important;
}
[data-theme="dark"] .shop-search-icon { stroke: var(--t3); }

[data-theme="dark"] .shop-item__buy {
  background: var(--blue) !important;
  border-color: var(--blue) !important;
}

/* Product detail */
[data-theme="dark"] .gallery__main,
[data-theme="dark"] .gallery__thumb,
[data-theme="dark"] .product-info__desc,
[data-theme="dark"] .product-info__meta,
[data-theme="dark"] .product-info__guarantee,
[data-theme="dark"] .product-info__discord {
  background: var(--bg-w) !important;
  border-color: var(--border) !important;
  color: var(--t1) !important;
}
[data-theme="dark"] .product-info__buy {
  background: var(--blue) !important;
}

/* Team + softwares */
[data-theme="dark"] .team-card,
[data-theme="dark"] .software-item,
[data-theme="dark"] .info-row,
[data-theme="dark"] .contact-block {
  background: var(--bg-w) !important;
  border-color: var(--border) !important;
}
[data-theme="dark"] .softwares-section {
  background: var(--bg-w) !important;
  border-color: var(--border) !important;
}
[data-theme="dark"] .softwares-track-wrap::before {
  background: linear-gradient(to right, var(--bg-w), transparent) !important;
}
[data-theme="dark"] .softwares-track-wrap::after {
  background: linear-gradient(to left, var(--bg-w), transparent) !important;
}

/* Portfolio */
[data-theme="dark"] .portfolio-entry {
  background: var(--bg-w) !important;
  border-color: var(--border) !important;
}

/* Legal pages */
[data-theme="dark"] .legal-toc,
[data-theme="dark"] .legal-block,
[data-theme="dark"] .legal-table th,
[data-theme="dark"] .legal-table td {
  background: var(--bg-w) !important;
  border-color: var(--border) !important;
  color: var(--t1) !important;
}
[data-theme="dark"] .legal-highlight {
  background: var(--blue-l) !important;
  border-color: var(--blue-m) !important;
  color: var(--t1) !important;
}

/* Similar grid produits */
[data-theme="dark"] .similar-section {
  background: transparent;
}
