/* =========================================================
   GVMC — École de vol — Site Joomla
   Design LAPL / PPL en deux colonnes, inspiré de la maquette validée.
   Toutes les règles sont préfixées pour éviter les conflits Joomla/SPPB.
   ========================================================= */

#gvmc-training-site{
  --gvmc-tr-blue:#0b4f86;
  --gvmc-tr-blue-dark:#082f5d;
  --gvmc-tr-blue-mid:#166da9;
  --gvmc-tr-sky:#eaf4fb;
  --gvmc-tr-soft:#f7fbfe;
  --gvmc-tr-line:#d8e5ef;
  --gvmc-tr-text:#0b2f5f;
  --gvmc-tr-muted:#607b96;
  --gvmc-tr-danger:#a93333;
  --gvmc-tr-success:#15724a;
  --gvmc-tr-shadow:0 8px 28px rgba(21,72,111,.08);
  color:var(--gvmc-tr-text);
  font-family:inherit;
}

#gvmc-training-site *{box-sizing:border-box}
#gvmc-training-site button,
#gvmc-training-site input,
#gvmc-training-site textarea{font:inherit}

.gvmc-tr-loading,
.gvmc-tr-error-global{
  padding:24px;
  border:1px solid var(--gvmc-tr-line);
  border-radius:18px;
  background:#fff;
  text-align:center;
  color:var(--gvmc-tr-muted);
}
.gvmc-tr-error-global{color:var(--gvmc-tr-danger);background:#fff6f6}

.gvmc-tr-toolbar{
  display:flex;
  justify-content:flex-end;
  margin:0 0 10px;
}
.gvmc-tr-committee-pill{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 12px;
  border-radius:999px;
  background:#eaf5fd;
  border:1px solid #bedcee;
  color:var(--gvmc-tr-blue);
  font-weight:800;
  font-size:12px;
}
.gvmc-tr-committee-pill::before{content:"✎";font-size:14px}

.gvmc-tr-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  align-items:start;
}

.gvmc-tr-program{
  min-width:0;
  background:#fff;
  border:1px solid var(--gvmc-tr-line);
  border-radius:18px;
  overflow:hidden;
  box-shadow:var(--gvmc-tr-shadow);
}

.gvmc-tr-program-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  background:linear-gradient(135deg,#f8fcff 0%,#e8f3fa 100%);
  border-bottom:1px solid #e2edf4;
}
.gvmc-tr-program-title-wrap{min-width:0;flex:1}
.gvmc-tr-program-title-line{display:flex;align-items:center;gap:10px;min-width:0}
.gvmc-tr-program-icon{
  width:28px;height:28px;flex:0 0 28px;
  display:grid;place-items:center;
  color:#7da8cc;
}
.gvmc-tr-program-icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gvmc-tr-program-title{
  margin:0;
  color:#092e5c;
  font-size:clamp(26px,2.0vw,37px);
  line-height:.98;
  font-weight:900;
  letter-spacing:-.02em;
}
.gvmc-tr-program-subtitle{
  display:block;
  margin:4px 0 0 38px;
  color:#164a7d;
  font-size:clamp(13px,1.0vw,17px);
  line-height:1.25;
}
.gvmc-tr-from{
  flex:0 0 auto;
  border-radius:999px;
  padding:9px 14px;
  color:#fff;
  background:linear-gradient(135deg,#729bc0,#386f9f);
  font-size:clamp(11px,.85vw,14px);
  font-weight:900;
  white-space:nowrap;
  box-shadow:inset 0 1px rgba(255,255,255,.22);
}

.gvmc-tr-body{padding:10px 12px 12px}
.gvmc-tr-choose-title{
  margin:0 0 8px;
  color:#0a315f;
  font-size:clamp(15px,1vw,18px);
  font-weight:900;
}

.gvmc-tr-aircraft-grid{
  display:grid;
  grid-template-columns:repeat(var(--plane-count,3),minmax(0,1fr));
  gap:8px;
  margin-bottom:10px;
}
.gvmc-tr-aircraft-card{
  position:relative;
  display:block;
  min-width:0;
  border:1px solid #d5e2ec;
  border-radius:11px;
  background:#fff;
  overflow:hidden;
  cursor:pointer;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.gvmc-tr-aircraft-card:hover{border-color:#8eb8d6}
.gvmc-tr-aircraft-card.selected{
  border:2px solid #1b84e7;
  background:linear-gradient(#fff,#eef8ff);
  box-shadow:0 0 0 2px rgba(27,132,231,.08);
}
.gvmc-tr-aircraft-card input[type="radio"]{position:absolute;opacity:0;pointer-events:none}
.gvmc-tr-aircraft-image{
  height:116px;
  display:grid;
  place-items:center;
  padding:5px 8px 0;
  background:linear-gradient(#fff,#f8fbfd);
}
.gvmc-tr-aircraft-image img{display:block;width:100%;height:100%;object-fit:contain}
.gvmc-tr-aircraft-info{text-align:center;padding:4px 7px 8px}
.gvmc-tr-aircraft-name{display:block;font-size:clamp(12px,.95vw,16px);font-weight:900;color:#092f61;line-height:1.2}
.gvmc-tr-aircraft-rate{display:block;margin-top:2px;font-size:10px;color:var(--gvmc-tr-muted)}
.gvmc-tr-radio-ui{
  display:block;
  width:17px;height:17px;
  margin:6px auto 0;
  border:2px solid #aebdca;
  border-radius:50%;
  background:#fff;
}
.gvmc-tr-aircraft-card.selected .gvmc-tr-radio-ui{border:5px solid #1b84e7}

.gvmc-tr-section{
  border:0;
  margin:0 0 10px;
}
.gvmc-tr-section summary{
  list-style:none;
  display:flex;
  align-items:center;
  gap:9px;
  padding:7px 10px;
  border-radius:8px;
  background:linear-gradient(90deg,#eef6fb,#f7fbfe);
  color:#07529a;
  font-size:clamp(14px,1.0vw,17px);
  font-weight:900;
  cursor:pointer;
  user-select:none;
}
.gvmc-tr-section summary::-webkit-details-marker{display:none}
.gvmc-tr-section summary::after{content:"⌃";margin-left:auto;color:#174a7d;font-size:14px}
.gvmc-tr-section:not([open]) summary::after{content:"⌄"}
.gvmc-tr-section-icon{width:20px;height:20px;display:grid;place-items:center;flex:0 0 20px}
.gvmc-tr-section-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.gvmc-tr-lines{padding:3px 10px 0 45px}
.gvmc-tr-line{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:baseline;
  gap:10px;
  min-height:27px;
  padding:4px 0;
  border-bottom:1px solid #dce5ec;
  font-size:clamp(12px,.88vw,15px);
  color:#153f6c;
}
.gvmc-tr-line:last-child{border-bottom:0}
.gvmc-tr-line-main{min-width:0}
.gvmc-tr-line-label{display:inline}
.gvmc-tr-line-meta{float:right;margin-left:12px;color:#173f6c;white-space:nowrap}
.gvmc-tr-line-amount{display:grid;grid-template-columns:auto minmax(56px,auto);gap:10px;white-space:nowrap;text-align:right}
.gvmc-tr-line-currency{color:#173f6c}.gvmc-tr-line-value{font-variant-numeric:tabular-nums}

.gvmc-tr-subtotal{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  padding:5px 10px 0 45px;
  font-size:clamp(12px,.92vw,15px);
  font-weight:900;
  color:#082e5e;
}
.gvmc-tr-subtotal-value{display:grid;grid-template-columns:auto minmax(65px,auto);gap:10px;text-align:right;white-space:nowrap}

.gvmc-tr-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:8px;
  padding:10px 14px;
  color:#fff;
  background:linear-gradient(90deg,#104f82,#0a5b91);
  border-radius:8px;
  font-size:clamp(16px,1.2vw,21px);
  font-weight:900;
  box-shadow:inset 0 1px rgba(255,255,255,.12);
}
.gvmc-tr-total strong{font-weight:900}.gvmc-tr-total span{white-space:nowrap;font-size:1.12em}
.gvmc-tr-note{margin:5px 10px 0;color:#2f5e88;font-size:10px;line-height:1.35}

/* -------------------------
   Mode comité
   ------------------------- */
.gvmc-tr-program.is-committee{outline:1px solid #c8e0ef;outline-offset:-1px}
.gvmc-tr-edit{
  width:100%;
  min-width:0;
  border:1px solid #b8cfe0;
  border-radius:7px;
  background:#fff;
  color:#0d355f;
  padding:5px 7px;
  font-size:12px;
  line-height:1.25;
}
.gvmc-tr-edit:focus{outline:2px solid rgba(25,126,202,.16);border-color:#2285cb}
.gvmc-tr-edit.title{font-size:22px;font-weight:900}
.gvmc-tr-edit.subtitle{margin-top:4px}
.gvmc-tr-edit.section-title{font-weight:900;color:#07529a;background:#fff}
.gvmc-tr-admin-aircraft{padding:6px 7px 8px;border-top:1px dashed #ccdae5}
.gvmc-tr-admin-aircraft .gvmc-tr-edit{margin-top:4px;text-align:center}
.gvmc-tr-admin-rate-lock{margin-top:5px;font-size:10px;color:#6b7f91;text-align:center}
.gvmc-tr-edit-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 62px 55px 83px;
  gap:5px;
  align-items:center;
  padding:4px 0;
  border-bottom:1px solid #e0e8ee;
}
.gvmc-tr-edit-row.forfait{grid-template-columns:minmax(0,1fr) 83px}
.gvmc-tr-edit-row:last-child{border-bottom:0}
.gvmc-tr-edit-row .gvmc-tr-edit{text-align:left}
.gvmc-tr-edit-row .gvmc-tr-edit[type="number"]{text-align:right}
.gvmc-tr-edit-hint{font-size:10px;color:#6b8196;text-align:right}
.gvmc-tr-save{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  margin-top:10px;
  padding:11px 14px;
  border:0;
  border-radius:9px;
  background:#0c5e97;
  color:#fff;
  font-weight:900;
  cursor:pointer;
}
.gvmc-tr-save:hover{background:#084c7b}.gvmc-tr-save:disabled{opacity:.6;cursor:wait}
.gvmc-tr-save-status{min-height:18px;margin-top:6px;text-align:center;font-size:11px;color:var(--gvmc-tr-muted)}
.gvmc-tr-save-status.success{color:var(--gvmc-tr-success);font-weight:800}.gvmc-tr-save-status.error{color:var(--gvmc-tr-danger);font-weight:800}

@media (max-width:1050px){
  .gvmc-tr-grid{grid-template-columns:1fr}
  .gvmc-tr-program-title{font-size:32px}
  .gvmc-tr-program-subtitle{font-size:16px}
  .gvmc-tr-aircraft-name{font-size:15px}
  .gvmc-tr-section summary{font-size:16px}
  .gvmc-tr-line,.gvmc-tr-subtotal{font-size:14px}
}

@media (max-width:640px){
  .gvmc-tr-program{border-radius:14px}
  .gvmc-tr-program-head{padding:12px;align-items:flex-start}
  .gvmc-tr-program-title{font-size:28px}
  .gvmc-tr-program-subtitle{margin-left:37px;font-size:14px}
  .gvmc-tr-from{padding:8px 10px;font-size:11px}
  .gvmc-tr-body{padding:9px}
  .gvmc-tr-aircraft-grid{gap:6px}
  .gvmc-tr-aircraft-image{height:92px;padding:4px}
  .gvmc-tr-aircraft-name{font-size:12px}
  .gvmc-tr-aircraft-rate{font-size:9px}
  .gvmc-tr-lines{padding-left:14px;padding-right:7px}
  .gvmc-tr-subtotal{padding-left:14px;padding-right:7px}
  .gvmc-tr-line{font-size:12px;gap:6px}
  .gvmc-tr-line-meta{float:none;display:block;margin:2px 0 0;font-size:10px;color:#607b96}
  .gvmc-tr-line-amount{gap:5px}
  .gvmc-tr-total{font-size:15px;padding:9px 11px}
  .gvmc-tr-edit-row{grid-template-columns:minmax(0,1fr) 55px 46px 70px}
}

@media (max-width:430px){
  .gvmc-tr-aircraft-grid{grid-template-columns:repeat(var(--plane-count,2),minmax(0,1fr))}
  .gvmc-tr-aircraft-image{height:82px}
  .gvmc-tr-program-title{font-size:25px}
  .gvmc-tr-program-subtitle{font-size:13px}
  .gvmc-tr-section summary{font-size:14px}
  .gvmc-tr-line{grid-template-columns:minmax(0,1fr) auto}
  .gvmc-tr-line-amount{grid-template-columns:auto auto}
  .gvmc-tr-edit-row,.gvmc-tr-edit-row.forfait{grid-template-columns:1fr}
}


/* =========================================================
   V1.0.1 — ouverture depuis « Détails du prix »
   ========================================================= */
.gvmc-tr-program.gvmc-tr-requested{
  box-shadow:0 0 0 2px rgba(27,132,231,.18), var(--gvmc-tr-shadow);
}

@media (max-width:860px){
  .gvmc-tr-program{
    scroll-margin-top:12px;
  }
}


/* =========================================================
   V1.0.2 — Uniformisation visuelle des avions LAPL / PPL
   Les programmes avec 2 avions ont des cartes plus larges.
   On réduit donc uniquement la largeur visuelle de leur image
   afin d'obtenir une taille d'avion comparable aux cartes LAPL.
   ========================================================= */
.gvmc-tr-aircraft-grid[style*="--plane-count:2"] .gvmc-tr-aircraft-image img{
  width:68% !important;
  max-width:68% !important;
  height:100% !important;
  object-fit:contain !important;
}

/* Sur les petits écrans, on conserve le même rapport visuel. */
@media (max-width:640px){
  .gvmc-tr-aircraft-grid[style*="--plane-count:2"] .gvmc-tr-aircraft-image img{
    width:68% !important;
    max-width:68% !important;
  }
}
