/* ════════════════════════════════════════════════════════════
   TARGARYEN Rental — Plugin Frontend CSS v6
   Dark luxury theme · Matches site style
   Reservation form · Steps · Vehicle selector · Calendar
   Airport selector · Promo · Price recap · Success screen
════════════════════════════════════════════════════════════ */

/* ── Variables — aligned with theme ────────────────────── */
:root {
  --gold:        #d4af37;
  --gold-light:  #f0d060;
  --gold-dark:   #a8861a;
  --gold-dim:    rgba(212,175,55,.1);
  --black:       #08080d;
  --dark:        #111118;
  --dark2:       #1a1a28;
  --glass-bg:    rgba(255,255,255,.035);
  --glass-b:     rgba(212,175,55,.15);
  --text:        #ededf0;
  --text-m:      rgba(237,237,240,.55);
  --text-muted:  rgba(237,237,240,.35);
  --border:      rgba(255,255,255,.08);
  --green:       #4ade80;
  --red:         #ef4444;
  --amber:       #f59e0b;
  --radius:      12px;
  --radius-lg:   20px;
  --ease:        cubic-bezier(0.16,1,0.3,1);
}

/* ── Wrap ─────────────────────────────────────────────── */
.trc-wrap {
  font-family: 'DM Sans', system-ui, sans-serif;
  max-width: 880px; margin: 0 auto;
  position: relative; color: var(--text);
}

/* ── Summer Notice ──────────────────────────────────────── */
.trc-summer-notice {
  background: rgba(245,158,11,.07); border: 1px solid rgba(245,158,11,.25);
  border-radius: var(--radius); padding: 14px 20px;
  color: var(--amber); font-size: 14px; font-weight: 600; margin-bottom: 28px;
}

/* ════════════════════════════════════════════════════════════
   STEP NAV
════════════════════════════════════════════════════════════ */
.trc-steps-nav {
  display: flex; align-items: center; justify-content: center;
  gap: 0; margin-bottom: 44px; flex-wrap: wrap;
}
.trc-step-nav {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 24px; border-radius: 100px;
  font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  background: var(--glass-bg); border: 1px solid var(--border); color: var(--text-m);
  transition: all .35s var(--ease); white-space: nowrap;
}
.trc-step-nav.active {
  background: var(--gold-dim); border-color: rgba(212,175,55,.4); color: var(--gold);
}
.trc-step-nav.done {
  background: rgba(74,222,128,.06); border-color: rgba(74,222,128,.25); color: var(--green);
}
.trc-step-nav-num {
  width: 24px; height: 24px; border-radius: 50%;
  background: rgba(255,255,255,.07); display: flex;
  align-items: center; justify-content: center; font-size: 11px; font-weight: 800;
}
.trc-step-nav.active .trc-step-nav-num { background: var(--gold); color: #000; }
.trc-step-nav.done   .trc-step-nav-num { background: var(--green); color: #000; }
.trc-step-connector  { width: 40px; height: 1px; background: var(--border); flex-shrink: 0; }
@media(max-width:640px) {
  .trc-step-nav-lbl { display:none; }
  .trc-step-connector { width: 16px; }
  .trc-step-nav { padding: 10px 16px; }
}

/* ════════════════════════════════════════════════════════════
   STEP HEADER
════════════════════════════════════════════════════════════ */
.trc-step-header {
  display: flex; align-items: center; gap: 16px;
  background: var(--glass-bg); border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: 20px 24px; margin-bottom: 32px;
}
.trc-step-icon  { font-size: 30px; flex-shrink: 0; }
.trc-step-title { font-size: 18px; font-weight: 700; color: var(--text); margin: 0 0 3px; }
.trc-step-sub   { font-size: 13px; color: var(--text-m); margin: 0; }
.trc-step-footer {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--border);
  flex-wrap: wrap; gap: 12px;
}
.trc-submit-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* ════════════════════════════════════════════════════════════
   VEHICLE SELECTOR
════════════════════════════════════════════════════════════ */
.trc-vehicle-selector {
  display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; margin-bottom: 24px;
}
@media(max-width:640px) { .trc-vehicle-selector { grid-template-columns: 1fr; } }

.trc-vehicle-opt {
  background: var(--glass-bg); border: 1.5px solid var(--border);
  border-radius: var(--radius-lg); overflow: hidden; cursor: pointer;
  transition: all .3s var(--ease); position: relative;
}
.trc-vehicle-opt:hover      { border-color: rgba(212,175,55,.35); transform: translateY(-3px); box-shadow: 0 16px 40px rgba(0,0,0,.4); }
.trc-vehicle-opt.selected   { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(212,175,55,.15), 0 16px 40px rgba(0,0,0,.3); }
.trc-vopt-img-wrap          { position: relative; aspect-ratio: 16/9; overflow: hidden; background: var(--dark2); }
.trc-vopt-img               { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.trc-vehicle-opt:hover .trc-vopt-img { transform: scale(1.05); }
.trc-vopt-no-img            { display: flex; align-items: center; justify-content: center; font-size: 40px; aspect-ratio: 16/9; }
.trc-vopt-cat {
  position: absolute; top: 8px; left: 8px;
  background: rgba(8,8,13,.8); border: 1px solid rgba(212,175,55,.3);
  border-radius: 100px; padding: 3px 10px;
  font-size: 10px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--gold);
}
.trc-vopt-body      { padding: 14px 18px; }
.trc-vopt-name      { font-size: 15px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.trc-vopt-feats     { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.trc-feat-pill      { background: rgba(74,222,128,.06); border: 1px solid rgba(74,222,128,.2); border-radius: 5px; padding: 2px 9px; font-size: 10px; color: var(--green); }
.trc-vopt-prices    { display: flex; align-items: baseline; gap: 10px; }
.trc-vopt-price     { font-size: 20px; font-weight: 800; color: var(--gold); }
.trc-vopt-price small { font-size: 12px; font-weight: 400; color: var(--text-m); }
.trc-vopt-price-s2  { font-size: 12px; color: var(--amber); font-weight: 600; }
.trc-vopt-check {
  position: absolute; top: 10px; right: 10px; width: 28px; height: 28px; border-radius: 50%;
  background: var(--gold); color: #000; font-size: 14px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .2s, transform .2s var(--ease);
  transform: scale(.7);
}
.trc-vehicle-opt.selected .trc-vopt-check { opacity: 1; transform: scale(1); }

/* Gallery */
.trc-gallery-main-wrap { border-radius: var(--radius); overflow: hidden; margin-bottom: 10px; border: 1px solid var(--border); }
.trc-gallery-main-img  { width: 100%; max-height: 260px; object-fit: cover; }
.trc-gallery-thumbs    { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
.trc-thumb-item        { width: 72px; height: 52px; flex-shrink: 0; border-radius: 7px; overflow: hidden; border: 2px solid transparent; cursor: pointer; transition: border-color .2s; }
.trc-thumb-item img    { width: 100%; height: 100%; object-fit: cover; }
.trc-thumb-item.active { border-color: var(--gold); }

/* ════════════════════════════════════════════════════════════
   DATES
════════════════════════════════════════════════════════════ */
.trc-dates-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media(max-width:480px) { .trc-dates-row { grid-template-columns: 1fr; } }

.trc-date-input {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23d4af37' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; padding-right: 44px;
}

/* ── Duration preview ──────────────────────────────────── */
.trc-duration-preview {
  display: flex; align-items: center; gap: 20px;
  background: rgba(212,175,55,.06); border: 1px solid rgba(212,175,55,.2);
  border-radius: var(--radius); padding: 18px 24px; margin-top: 20px; flex-wrap: wrap;
}
.trc-dur-days      { text-align: center; font-size: 11px; color: var(--text-m); }
.trc-dur-days span { display: block; font-size: 36px; font-weight: 800; color: var(--gold); line-height: 1; }
.trc-dur-sep       { width: 1px; height: 48px; background: rgba(212,175,55,.2); flex-shrink: 0; }
.trc-dur-label     { font-size: 10px; color: var(--text-muted); text-transform: uppercase; letter-spacing: .08em; }
.trc-dur-price     { font-size: 26px; font-weight: 800; color: var(--text); margin-top: 2px; }
.trc-dur-note      { font-size: 11px; color: var(--text-m); margin-top: 3px; }
.trc-dur-avail     { font-size: 13px; font-weight: 600; }

/* ════════════════════════════════════════════════════════════
   FORM FIELDS
════════════════════════════════════════════════════════════ */
.trc-field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 18px; }
.trc-label { font-size: 11px; font-weight: 700; color: var(--text-m); text-transform: uppercase; letter-spacing: .07em; }
.trc-req   { color: var(--red); }
.trc-input {
  padding: 13px 18px; border: 1.5px solid var(--border); border-radius: 11px;
  font-size: 14px; font-family: inherit; color: var(--text); outline: none;
  transition: border-color .25s, box-shadow .25s;
  background: rgba(255,255,255,.04); width: 100%;
}
.trc-input:focus { border-color: rgba(212,175,55,.5); box-shadow: 0 0 0 4px rgba(212,175,55,.08); }
.trc-input::placeholder { color: var(--text-muted); }
.trc-textarea { resize: vertical; min-height: 90px; }
.trc-field-error {
  background: rgba(239,68,68,.08); border: 1px solid rgba(239,68,68,.3);
  border-radius: 10px; padding: 11px 16px; color: var(--red); font-size: 13px; font-weight: 600; margin-top: 8px;
}

/* ════════════════════════════════════════════════════════════
   AIRPORTS SELECTOR
════════════════════════════════════════════════════════════ */
.trc-airports-selector {
  display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 24px;
}
@media(max-width:640px) { .trc-airports-selector { grid-template-columns: 1fr; } }

.trc-airport-cards {
  display: flex; flex-direction: column; gap: 7px; margin-top: 8px;
  max-height: 300px; overflow-y: auto; padding-right: 4px;
}
.trc-airport-opt {
  display: flex; justify-content: space-between; align-items: center;
  padding: 11px 16px; border: 1.5px solid var(--border); border-radius: 10px;
  cursor: pointer; transition: all .2s; background: rgba(255,255,255,.02);
}
.trc-airport-opt:hover   { border-color: rgba(212,175,55,.35); background: rgba(212,175,55,.04); }
.trc-airport-opt.selected { border-color: var(--gold); background: rgba(212,175,55,.08); }
.trc-ap-name { font-size: 13px; font-weight: 600; color: var(--text); }
.trc-ap-fee  { font-size: 12px; font-weight: 700; color: var(--text-m); }
.trc-ap-free { color: var(--green) !important; }
.trc-airport-fee-summary {
  background: rgba(212,175,55,.05); border: 1px solid rgba(212,175,55,.18);
  border-radius: 10px; padding: 11px 18px; font-size: 13px; margin-bottom: 22px; color: var(--gold);
}

/* ════════════════════════════════════════════════════════════
   PROMO CODE
════════════════════════════════════════════════════════════ */
.trc-promo-row       { display: flex; gap: 16px; flex-wrap: wrap; }
.trc-promo-input-wrap { display: flex; gap: 10px; align-items: flex-end; width: 100%; }
.trc-promo-input-wrap .trc-input { flex: 1; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; }

/* ════════════════════════════════════════════════════════════
   PRICE RECAP
════════════════════════════════════════════════════════════ */
.trc-price-recap {
  background: rgba(212,175,55,.04); border: 1.5px solid rgba(212,175,55,.18);
  border-radius: var(--radius-lg); padding: 24px; margin-bottom: 28px;
}
.trc-recap-loading { display: flex; align-items: center; gap: 14px; color: var(--text-m); font-size: 14px; }
.trc-recap-header  { margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.trc-recap-vehicle { font-size: 17px; font-weight: 700; color: var(--text); margin-bottom: 4px; }
.trc-recap-period  { font-size: 13px; color: var(--text-m); }
.trc-breakdown-row { display: flex; justify-content: space-between; align-items: center; padding: 7px 0; font-size: 13px; border-bottom: 1px solid rgba(255,255,255,.04); }
.trc-breakdown-row:last-child { border-bottom: none; }
.trc-bd-label { color: var(--text-m); }
.trc-bd-val   { font-weight: 600; color: var(--text); }
.trc-recap-total {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 0 0; margin-top: 6px; font-weight: 800; font-size: 15px; color: var(--text);
}
.trc-recap-total-price {
  font-size: 28px; font-weight: 900;
  background: linear-gradient(135deg, var(--gold-light), var(--gold));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.trc-recap-discount {
  margin-top: 12px; background: rgba(74,222,128,.07); border: 1px solid rgba(74,222,128,.2);
  border-radius: 9px; padding: 10px 16px; font-size: 13px; color: var(--green); font-weight: 600;
}

/* ════════════════════════════════════════════════════════════
   CUSTOMER GRID
════════════════════════════════════════════════════════════ */
.trc-customer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media(max-width:640px) { .trc-customer-grid { grid-template-columns: 1fr; } }

/* Checkbox */
.trc-checkbox-label {
  display: flex; align-items: flex-start; gap: 12px; margin-top: 16px;
  font-size: 13px; color: var(--text-m); cursor: pointer;
}
.trc-checkbox-label input[type="checkbox"] {
  width: 18px; height: 18px; flex-shrink: 0; accent-color: var(--gold); margin-top: 1px;
}

/* ════════════════════════════════════════════════════════════
   BUTTONS
════════════════════════════════════════════════════════════ */
.trc-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 32px; border-radius: 100px; border: none;
  font-family: 'DM Sans', sans-serif; font-size: 12px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: all .35s var(--ease);
  white-space: nowrap;
}
.trc-btn-gold {
  background: linear-gradient(135deg, var(--gold-light), var(--gold), var(--gold-dark));
  background-size: 200% 200%; background-position: 100% 0; color: #000;
  box-shadow: 0 4px 20px rgba(212,175,55,.3);
}
.trc-btn-gold:hover    { background-position: 0 100%; transform: translateY(-2px); box-shadow: 0 10px 32px rgba(212,175,55,.5); color: #000; }
.trc-btn-gold:disabled { opacity: .4; cursor: not-allowed; transform: none; }
.trc-btn-outline {
  background: transparent; border: 1px solid rgba(212,175,55,.3); color: var(--gold);
}
.trc-btn-outline:hover { background: var(--gold-dim); border-color: var(--gold); transform: translateY(-2px); }
.trc-btn-whatsapp { background: #25d366; color: #fff; }
.trc-btn-whatsapp:hover { background: #22c55e; transform: translateY(-2px); }
.trc-btn-whatsapp:disabled { opacity: .4; cursor: not-allowed; transform: none; }

/* ════════════════════════════════════════════════════════════
   SPINNER
════════════════════════════════════════════════════════════ */
.trc-spinner {
  width: 20px; height: 20px; border-radius: 50%;
  border: 2px solid rgba(212,175,55,.2); border-top-color: var(--gold);
  animation: trc-spin .7s linear infinite; flex-shrink: 0;
}
.trc-spinner-lg {
  width: 44px; height: 44px; border-radius: 50%;
  border: 3px solid rgba(212,175,55,.15); border-top-color: var(--gold);
  animation: trc-spin .8s linear infinite;
}
@keyframes trc-spin { to { transform: rotate(360deg); } }

/* Loading overlay */
#trc-loading-overlay {
  position: absolute; inset: 0; background: rgba(8,8,13,.85);
  backdrop-filter: blur(8px); border-radius: var(--radius-lg);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px;
  font-size: 14px; color: var(--text-m); z-index: 50;
}

/* ════════════════════════════════════════════════════════════
   SUCCESS SCREEN
════════════════════════════════════════════════════════════ */
.trc-success-wrap {
  text-align: center; padding: 60px 40px;
  background: rgba(74,222,128,.04); border: 1px solid rgba(74,222,128,.15);
  border-radius: var(--radius-lg);
}
.trc-success-icon  { font-size: 64px; margin-bottom: 20px; animation: trc-bounce .6s var(--ease); }
@keyframes trc-bounce { 0%{transform:scale(.5);opacity:0} 60%{transform:scale(1.2)} 100%{transform:scale(1);opacity:1} }
.trc-success-title { font-family: 'Cormorant Garamond', serif; font-size: 36px; font-weight: 600; color: var(--green); margin-bottom: 12px; }
.trc-success-sub   { font-size: 15px; color: var(--text-m); margin-bottom: 20px; max-width: 440px; margin-left: auto; margin-right: auto; }
.trc-success-id    { font-size: 13px; color: var(--text-muted); margin-bottom: 24px; font-family: monospace; }

/* ════════════════════════════════════════════════════════════
   FLATPICKR — dark theme override
════════════════════════════════════════════════════════════ */
.flatpickr-calendar {
  background: #16161f !important; border: 1px solid rgba(212,175,55,.2) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,.6) !important; border-radius: 16px !important;
  font-family: 'DM Sans', sans-serif !important; color: #ededf0 !important;
}
.flatpickr-months, .flatpickr-innerContainer { background: transparent !important; }
.flatpickr-month { background: transparent !important; color: var(--gold) !important; fill: var(--gold) !important; }
.flatpickr-current-month .flatpickr-monthDropdown-months { background: #16161f; color: var(--text); }
.flatpickr-weekdays { background: transparent !important; }
.flatpickr-weekday { background: transparent !important; color: var(--text-m) !important; font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.flatpickr-day { color: var(--text) !important; border-radius: 8px !important; }
.flatpickr-day:hover { background: rgba(212,175,55,.1) !important; border-color: rgba(212,175,55,.3) !important; }
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange {
  background: var(--gold) !important; border-color: var(--gold) !important; color: #000 !important; font-weight: 800;
}
.flatpickr-day.inRange { background: rgba(212,175,55,.12) !important; border-color: transparent !important; }
.flatpickr-day.flatpickr-disabled { color: rgba(237,237,240,.2) !important; background: transparent !important; }
.flatpickr-day.today:not(.selected) { border-color: rgba(212,175,55,.4) !important; }
.numInputWrapper input, .flatpickr-current-month select {
  color: var(--gold) !important; font-weight: 700;
}
.flatpickr-prev-month, .flatpickr-next-month { fill: var(--gold) !important; }
.flatpickr-prev-month:hover svg, .flatpickr-next-month:hover svg { fill: var(--gold-light) !important; }

/* ════════════════════════════════════════════════════════════
   TRACKING WIDGET
════════════════════════════════════════════════════════════ */
.trc-tracking-wrap {
  max-width: 560px; margin: 0 auto;
  font-family: 'DM Sans', system-ui, sans-serif;
}
.trc-tracking-header {
  display: flex; align-items: center; gap: 16px;
  background: rgba(255,255,255,.03); border: 1px solid var(--border);
  border-radius: 16px; padding: 18px 22px; margin-bottom: 22px;
}
.trc-track-title { font-size: 17px; font-weight: 700; color: var(--text); margin: 0 0 3px; }
.trc-track-sub   { font-size: 13px; color: var(--text-m); margin: 0; }
.trc-track-form input[type="number"] {
  background: rgba(255,255,255,.04); border: 1.5px solid var(--border);
  border-radius: 11px; padding: 12px 16px; color: var(--text);
  font-family: inherit; font-size: 16px; outline: none;
  transition: border-color .25s; width: 100%;
}
.trc-track-form input:focus { border-color: rgba(212,175,55,.4); }
.trc-track-status-card {
  background: rgba(255,255,255,.03); border: 1.5px solid var(--border);
  border-radius: 16px; padding: 24px; overflow: hidden; position: relative;
}
.trc-track-status-bar  { height: 4px; border-radius: 99px; margin-bottom: 20px; }
.trc-track-row {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 7px 0; border-bottom: 1px solid rgba(255,255,255,.04); font-size: 13px;
}
.trc-track-row:last-child { border-bottom: none; }
.trc-track-lbl { color: var(--text-m); font-weight: 500; }
.trc-track-val { font-weight: 700; color: var(--text); }
.trc-track-driver {
  background: rgba(74,222,128,.06); border: 1px solid rgba(74,222,128,.2);
  border-radius: 11px; padding: 14px 18px; margin-top: 16px;
}

/* ════════════════════════════════════════════════════════════
   RESPONSIVE
════════════════════════════════════════════════════════════ */
@media(max-width:640px) {
  .trc-vehicle-selector { grid-template-columns: 1fr; }
  .trc-airports-selector { grid-template-columns: 1fr; }
  .trc-customer-grid { grid-template-columns: 1fr; }
  .trc-submit-actions { flex-direction: column; }
  .trc-submit-actions .trc-btn { justify-content: center; }
  .trc-step-footer { flex-direction: column; }
  .trc-step-footer > button:first-child { order: 2; }
  .trc-duration-preview { flex-direction: column; align-items: flex-start; }
  .trc-dur-sep { width: 100%; height: 1px; }
  .trc-btn { padding: 13px 22px; font-size: 11px; }
}

/* ══════════════════════════════════════════════════════════
   TARGARYEN v7 — NOUVELLES SECTIONS
   ✅ Grandes cards · Lightbox · Caractéristiques · Recap
══════════════════════════════════════════════════════════ */

/* ── Cards plus grandes ─────────────────────────────────── */
.trc-slider-viewport { overflow: hidden; width: 100%; }
.trc-slider-track { display: flex; transition: transform .38s cubic-bezier(.4,0,.2,1); will-change: transform; }
.trc-vcard { background: #111118; border: 1.5px solid rgba(212,175,55,.15); border-radius: 16px; overflow: hidden; cursor: pointer; transition: border-color .2s, transform .2s; flex-shrink: 0; }
.trc-vcard:hover { border-color: rgba(212,175,55,.45); transform: translateY(-3px); }
.trc-vcard.selected { border-color: #d4af37; box-shadow: 0 0 0 3px rgba(212,175,55,.25); }

/* Photo zone — plus haute */
.trc-vcard-photos { position: relative; width: 100%; height: 240px; overflow: hidden; background: #0d0d14; }
@media (max-width: 600px) { .trc-vcard-photos { height: 200px; } }
.trc-vcard-photo { position: absolute; inset: 0; display: none; }
.trc-vcard-photo.trc-photo-active { display: block; }
.trc-vcard-photo img { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; }
.trc-photo-empty { display: flex !important; flex-direction: column; align-items: center; justify-content: center; color: rgba(237,237,240,.3); }
.trc-vcard-badge { position: absolute; top: 10px; left: 10px; background: rgba(212,175,55,.9); color: #08080d; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 20px; text-transform: uppercase; letter-spacing: .5px; }
.trc-vcard-selected-overlay { position: absolute; inset: 0; background: rgba(212,175,55,.18); display: none; align-items: center; justify-content: center; color: #d4af37; font-size: 22px; font-weight: 800; }
.trc-vcard.selected .trc-vcard-selected-overlay { display: flex; }
.trc-photo-btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(0,0,0,.6); color: #fff; border: none; width: 32px; height: 32px; border-radius: 50%; font-size: 18px; cursor: pointer; z-index: 5; display: flex; align-items: center; justify-content: center; }
.trc-photo-btn-prev { left: 8px; }
.trc-photo-btn-next { right: 8px; }
.trc-photo-dots { position: absolute; bottom: 36px; left: 50%; transform: translateX(-50%); display: flex; gap: 5px; }
.trc-photo-dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.4); transition: background .2s; }
.trc-photo-dot.active { background: #d4af37; }

/* Zoom button */
.trc-zoom-btn { position: absolute; bottom: 8px; right: 8px; background: rgba(0,0,0,.75); color: #fff; border: 1px solid rgba(255,255,255,.2); border-radius: 20px; font-size: 12px; padding: 4px 10px; cursor: pointer; z-index: 5; transition: background .2s; }
.trc-zoom-btn:hover { background: rgba(212,175,55,.85); color: #000; }

/* Card info */
.trc-vcard-info { padding: 16px; }
.trc-vcard-name { font-size: 16px; font-weight: 700; color: #ededf0; margin-bottom: 8px; }
.trc-vcard-desc { font-size: 12px; color: rgba(237,237,240,.5); margin: 6px 0; line-height: 1.4; }
.trc-vcard-feats { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.trc-feat-pill { background: rgba(212,175,55,.1); color: rgba(237,237,240,.8); border: 1px solid rgba(212,175,55,.2); border-radius: 20px; font-size: 11px; padding: 3px 9px; }
.trc-vcard-prices { display: flex; gap: 16px; margin-bottom: 12px; }
.trc-vcard-price { font-size: 22px; font-weight: 800; color: #d4af37; }
.trc-vcard-price small { font-size: 12px; font-weight: 400; color: rgba(237,237,240,.5); }
.trc-vcard-prices2 { font-size: 14px; color: #f59e0b; font-weight: 700; }
.trc-vcard-prices2 small { font-size: 11px; font-weight: 400; color: rgba(237,237,240,.4); }
.trc-price-label { display: block; font-size: 10px; color: rgba(237,237,240,.4); }
.trc-vcard-btn { width: 100%; padding: 11px; background: linear-gradient(135deg,#b8962e,#d4af37); color: #08080d; border: none; border-radius: 10px; font-size: 14px; font-weight: 700; cursor: pointer; transition: opacity .2s, transform .15s; }
.trc-vcard-btn:hover { opacity: .88; transform: translateY(-1px); }

/* Slider meta */
.trc-slider-meta { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 10px; }
.trc-sdots { display: flex; gap: 6px; }
.trc-sdot { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.2); cursor: pointer; transition: background .2s, width .2s; }
.trc-sdot.active { background: #d4af37; width: 20px; border-radius: 4px; }
.trc-slider-counter { font-size: 12px; color: rgba(237,237,240,.4); }

/* Selected bar */
.trc-sel-bar { display: flex; align-items: center; gap: 12px; background: rgba(212,175,55,.08); border: 1px solid rgba(212,175,55,.3); border-radius: 12px; padding: 12px 16px; margin-top: 16px; }
.trc-sel-info { display: flex; flex-direction: column; gap: 3px; flex: 1; }
.trc-sel-change { background: rgba(255,255,255,.08); color: rgba(237,237,240,.6); border: 1px solid rgba(255,255,255,.1); border-radius: 8px; padding: 6px 12px; font-size: 12px; cursor: pointer; }

/* ── Caractéristiques voiture ───────────────────────────── */
.trc-car-specs { background: #0d0d18; border: 1px solid rgba(212,175,55,.2); border-radius: 14px; padding: 20px; margin-top: 16px; animation: fadeIn .3s ease; }
.trc-specs-header { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.trc-specs-icon { font-size: 20px; }
.trc-specs-title { font-size: 15px; font-weight: 700; color: #d4af37; margin: 0; }
.trc-specs-desc { font-size: 13px; color: rgba(237,237,240,.6); line-height: 1.6; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.06); }
.trc-specs-feats { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.trc-feat-lg { font-size: 13px !important; padding: 6px 14px !important; }
.trc-specs-price-row { display: flex; gap: 12px; flex-wrap: wrap; }
.trc-spec-price-box { flex: 1; min-width: 130px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 10px; padding: 12px 16px; }
.trc-sp-summer { border-color: rgba(245,158,11,.2); background: rgba(245,158,11,.05); }
.trc-sp-label { font-size: 11px; color: rgba(237,237,240,.45); margin-bottom: 4px; }
.trc-sp-price { font-size: 24px; font-weight: 800; color: #d4af37; }
.trc-sp-price small { font-size: 13px; font-weight: 400; color: rgba(237,237,240,.4); }

/* ── Recap bar step 2 ───────────────────────────────────── */
.trc-recap-bar { display: flex; align-items: center; gap: 12px; background: rgba(212,175,55,.06); border: 1px solid rgba(212,175,55,.15); border-radius: 10px; padding: 10px 14px; margin-bottom: 16px; }

/* ── Lightbox ───────────────────────────────────────────── */
#trc-lightbox { position: fixed; inset: 0; z-index: 99999; display: none; align-items: center; justify-content: center; }
#trc-lightbox.open { display: flex; }
#trc-lb-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.92); cursor: pointer; }
#trc-lb-inner { position: relative; z-index: 1; width: min(92vw, 960px); max-height: 92vh; display: flex; flex-direction: column; align-items: center; gap: 12px; }
#trc-lb-close { position: absolute; top: -14px; right: -14px; background: rgba(255,255,255,.1); border: none; color: #fff; width: 36px; height: 36px; border-radius: 50%; font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 10; transition: background .2s; }
#trc-lb-close:hover { background: rgba(212,175,55,.8); color: #000; }
#trc-lb-img-wrap { position: relative; width: 100%; max-height: 68vh; display: flex; align-items: center; justify-content: center; }
#trc-lb-img { max-width: 100%; max-height: 68vh; object-fit: contain; border-radius: 10px; display: block; }
.trc-lb-arrow { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(0,0,0,.6); color: #fff; border: 1px solid rgba(255,255,255,.15); width: 44px; height: 44px; border-radius: 50%; font-size: 22px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s; }
.trc-lb-arrow:hover { background: rgba(212,175,55,.8); color: #000; }
#trc-lb-prev { left: -22px; }
#trc-lb-next { right: -22px; }
#trc-lb-info { text-align: center; }
#trc-lb-thumbs { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; max-width: 100%; padding: 0 8px; }
.trc-lb-thumb { width: 64px; height: 44px; object-fit: cover; border-radius: 6px; cursor: pointer; opacity: .45; transition: opacity .2s, border-color .2s; border: 2px solid transparent; }
.trc-lb-thumb:hover { opacity: .75; }
.trc-lb-thumb.active { opacity: 1; border-color: #d4af37; }
body.trc-lb-open { overflow: hidden; }

/* ── Spinner ─────────────────────────────────────────────── */
.trc-spinner { width: 32px; height: 32px; border: 3px solid rgba(212,175,55,.2); border-top-color: #d4af37; border-radius: 50%; animation: trcSpin .7s linear infinite; margin: 0 auto; }
@keyframes trcSpin { to { transform: rotate(360deg); } }
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* Summary grid */
.trc-sum-grid { display: grid; gap: 10px; margin-bottom: 20px; }
.trc-sum-row { display: flex; align-items: flex-start; gap: 12px; background: rgba(255,255,255,.04); border-radius: 10px; padding: 12px; }
.trc-sum-row span { font-size: 20px; flex-shrink: 0; }
.trc-sum-row small { display: block; font-size: 11px; color: rgba(237,237,240,.4); margin-bottom: 2px; }
.trc-sum-row strong { font-size: 14px; color: #ededf0; }
.trc-sum-total-row { background: rgba(212,175,55,.1); border: 1px solid rgba(212,175,55,.25); }
.trc-sum-total-price { font-size: 22px !important; color: #d4af37 !important; }

/* ── BOUTONS PRIMAIRES (fix class manquante) ── */
.trc-btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 28px; border-radius: 12px; border: none;
  background: linear-gradient(135deg, #b8962e 0%, #d4af37 50%, #b8962e 100%);
  background-size: 200% 200%; background-position: 0 0;
  color: #08080d; font-weight: 800; font-size: 15px; letter-spacing: .04em;
  cursor: pointer; transition: all .3s ease; width: 100%;
}
.trc-btn-primary:hover:not(:disabled) {
  background-position: 0 100%; transform: translateY(-2px);
  box-shadow: 0 10px 32px rgba(212,175,55,.4);
}
.trc-btn-primary:disabled { opacity: .4; cursor: not-allowed; transform: none; }

.trc-btn-secondary {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 12px 22px; border-radius: 12px;
  border: 1px solid rgba(212,175,55,.3);
  background: rgba(255,255,255,.04); color: rgba(237,237,240,.7);
  font-size: 14px; font-weight: 600; cursor: pointer; transition: all .2s;
}
.trc-btn-secondary:hover { background: rgba(212,175,55,.1); color: #d4af37; }

.trc-btn-promo {
  padding: 10px 18px; border-radius: 8px;
  border: 1px solid rgba(212,175,55,.4);
  background: rgba(212,175,55,.1); color: #d4af37;
  font-size: 13px; font-weight: 700; cursor: pointer; transition: all .2s;
}
.trc-btn-promo:hover { background: rgba(212,175,55,.2); }

/* ── CURSEUR GLOBAL ── */
*, *::before, *::after { cursor: inherit; }
body { cursor: default; }
a, button, [role="button"], label, select,
.trc-vcard, .trc-sdot, .trc-ap, .trc-thumb-item,
.trc-photo-btn, .trc-zoom-btn, .trc-vcard-btn,
.trc-sel-change, .trc-lb-arrow, .trc-lb-close,
.trc-lb-overlay, .trc-lb-thumb { cursor: pointer !important; }
input, textarea { cursor: text; }
