/*
Theme Name: Auto Galerie
Theme URI: https://autogalerie.ma
Author: DGX Services
Author URI: https://dgx.services
Description: Thème sur-mesure pour Auto Galerie — garage automobile de luxe (Maroc). Reproduit le design system Auto Galerie (Noir · Blanc · Rouge), en mode cinématique sombre. Inclut un type de contenu « Véhicule » géré depuis l'admin WordPress. Pages livrées : Accueil (offres en vedette) et Catalogue (résultats filtrables).
Version: 1.9.1
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: auto-galerie
Domain Path: /languages
*/

@import url('https://fonts.googleapis.com/css2?family=Saira:wght@300;400;500;600;700;800&family=Saira+Condensed:wght@500;600;700;800&family=Saira+SemiCondensed:wght@500;600;700&display=swap');

/* ============================================================
   TOKENS — couleurs (ordre de marque : NOIR · BLANC · ROUGE · autre)
   ============================================================ */
:root {
  --pure-black:#000; --pure-white:#fff; --logo-red:#ff0000;
  --ink-1000:#050506; --ink-900:#0b0b0d; --ink-800:#141417; --ink-700:#1d1d21;
  --ink-600:#2a2a30; --ink-500:#3c3c44; --ink-400:#5e5e68; --ink-300:#8a8a94;
  --ink-200:#b6b6be; --ink-150:#cfcfd5; --ink-100:#e4e4e8; --ink-75:#eeeef0;
  --ink-50:#f5f5f6; --ink-25:#fafafb;
  --red-900:#5e0200; --red-800:#8a0300; --red-700:#b30400; --red-600:#cc0500;
  --red-500:#e10600; --red-400:#ff1a0d; --red-300:#ff5347; --red-200:#ff9089;
  --red-100:#ffd4d1; --red-50:#fff0ef;
  --chrome-500:#6e7177; --chrome-400:#9aa0a6; --chrome-300:#c4c9cd; --chrome-200:#dfe2e5;
  --champagne:#c9a96a;
  --success:#1f9d57; --warning:#d8920a; --danger:#d4231a; --info:#2d6fd6;

  /* aliases sémantiques — thème clair (showroom) par défaut */
  --bg-base:var(--ink-25); --bg-subtle:var(--ink-50); --bg-sunken:var(--ink-75);
  --surface-card:var(--pure-white); --surface-raised:var(--pure-white); --surface-inverse:var(--ink-900);
  --text-primary:var(--ink-900); --text-secondary:var(--ink-400); --text-tertiary:var(--ink-300);
  --text-inverse:var(--pure-white); --text-on-brand:var(--pure-white); --text-brand:var(--red-500);
  --border-subtle:var(--ink-100); --border-default:var(--ink-150); --border-strong:var(--ink-300); --border-inverse:var(--ink-700);
  --brand:var(--red-500); --brand-hover:var(--red-600); --brand-active:var(--red-700);
  --brand-tint:var(--red-50); --brand-tint-2:var(--red-100);
  --focus-ring:var(--red-400); --overlay-scrim:rgba(5,5,6,.62);

  /* typographie */
  --font-display:"Saira Condensed","Saira",system-ui,sans-serif;
  --font-heading:"Saira SemiCondensed","Saira",system-ui,sans-serif;
  --font-sans:"Saira",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"Saira Condensed",ui-monospace,"SFMono-Regular","Menlo",monospace;
  --fw-light:300; --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-black:800;
  --text-2xs:11px; --text-xs:12px; --text-sm:14px; --text-base:16px; --text-md:18px; --text-lg:20px;
  --text-xl:24px; --text-2xl:30px; --text-3xl:38px; --text-4xl:48px; --text-5xl:62px; --text-6xl:80px; --text-7xl:104px;
  --leading-none:1; --leading-tight:1.08; --leading-snug:1.2; --leading-normal:1.5; --leading-relaxed:1.65;
  --tracking-tighter:-0.02em; --tracking-tight:-0.01em; --tracking-normal:0;
  --tracking-wide:0.04em; --tracking-wider:0.10em; --tracking-widest:0.20em;

  /* espacements / layout */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px;
  --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px; --space-20:80px; --space-24:96px; --space-32:128px;
  --container-max:1280px; --container-wide:1480px; --gutter:clamp(20px,5vw,64px);
  --radius-xs:3px; --radius-sm:6px; --radius-md:10px; --radius-lg:14px; --radius-xl:20px; --radius-2xl:28px; --radius-pill:999px;
  --border-w:1px; --border-w-2:2px;
  --shadow-xs:0 1px 2px rgba(8,8,12,.06); --shadow-sm:0 2px 6px rgba(8,8,12,.08);
  --shadow-md:0 8px 20px rgba(8,8,12,.10); --shadow-lg:0 18px 44px rgba(8,8,12,.14);
  --shadow-xl:0 30px 70px rgba(8,8,12,.20); --glow-red:0 6px 26px rgba(225,6,0,.34);
  --ease-out:cubic-bezier(.22,1,.36,1); --ease-in-out:cubic-bezier(.65,0,.35,1); --ease-snappy:cubic-bezier(.4,0,.2,1);
  --dur-fast:140ms; --dur-base:220ms; --dur-slow:400ms; --dur-slower:680ms;
  --z-sticky:100; --z-overlay:800; --z-modal:1000; --z-toast:1200;
}

/* THÈME SOMBRE « cinematic » — habitat natif de la marque (appliqué par défaut) */
[data-theme="dark"] {
  --bg-base:var(--ink-1000); --bg-subtle:var(--ink-900); --bg-sunken:var(--ink-1000);
  --surface-card:var(--ink-800); --surface-raised:var(--ink-700); --surface-inverse:var(--pure-white);
  --text-primary:var(--ink-25); --text-secondary:var(--ink-300); --text-tertiary:var(--ink-400);
  --text-inverse:var(--ink-900); --text-on-brand:var(--pure-white); --text-brand:var(--red-400);
  --border-subtle:var(--ink-700); --border-default:var(--ink-600); --border-strong:var(--ink-500); --border-inverse:var(--ink-200);
  --brand:var(--red-500); --brand-hover:var(--red-400); --brand-active:var(--red-300);
  --brand-tint:rgba(225,6,0,.14); --brand-tint-2:rgba(225,6,0,.22);
  --focus-ring:var(--red-400); --overlay-scrim:rgba(0,0,0,.74);
}

/* ============================================================
   BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{
  margin:0;font-family:var(--font-sans);font-size:var(--text-base);
  line-height:var(--leading-normal);font-weight:var(--fw-regular);
  color:var(--text-primary);background:var(--bg-base);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,h6{
  margin:0;font-family:var(--font-heading);font-weight:var(--fw-bold);
  line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);
  color:var(--text-primary);text-wrap:balance;
}
p{margin:0;text-wrap:pretty;}
a{color:inherit;text-decoration:none;}
img,svg,video{display:block;max-width:100%;}
button,input,select,textarea{font:inherit;color:inherit;}
::selection{background:var(--brand);color:var(--text-on-brand);}
:focus-visible{outline:var(--border-w-2) solid var(--focus-ring);outline-offset:2px;}

.ag-eyebrow{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--fw-semibold);
  letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--text-brand);}
.ag-display{font-family:var(--font-display);font-weight:var(--fw-black);text-transform:uppercase;
  letter-spacing:var(--tracking-tight);line-height:var(--leading-none);}

.ag-container{max-width:var(--container-max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);}
.ag-container--wide{max-width:var(--container-wide);}
.ag-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* ============================================================
   BOUTON
   ============================================================ */
.ag-btn{
  --_h:44px;--_px:22px;--_fs:14px;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  height:var(--_h);padding:0 var(--_px);
  font-family:var(--font-sans);font-size:var(--_fs);font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;
  border:var(--border-w) solid transparent;border-radius:var(--radius-sm);
  cursor:pointer;user-select:none;text-decoration:none;
  transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),
    border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);
}
.ag-btn:active{transform:translateY(1px);}
.ag-btn:disabled,.ag-btn[aria-disabled="true"]{opacity:.42;pointer-events:none;}
.ag-btn--sm{--_h:36px;--_px:16px;--_fs:12px;}
.ag-btn--lg{--_h:54px;--_px:30px;--_fs:15px;}
.ag-btn--block{display:flex;width:100%;}
.ag-btn--primary{background:var(--brand);color:var(--text-on-brand);}
.ag-btn--primary:hover{background:var(--brand-hover);box-shadow:var(--glow-red);}
.ag-btn--primary:active{background:var(--brand-active);}
.ag-btn--solid{background:var(--ink-900);color:#fff;}
.ag-btn--solid:hover{background:var(--ink-700);}
.ag-btn--outline{background:transparent;color:var(--text-primary);border-color:var(--border-strong);}
.ag-btn--outline:hover{border-color:var(--brand);color:var(--brand);}
.ag-btn--ghost{background:transparent;color:var(--text-primary);}
.ag-btn--ghost:hover{background:var(--bg-sunken);}
.ag-btn--ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.28);}
.ag-btn--ghost-light:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.6);}
.ag-btn__ic{display:inline-flex;width:18px;height:18px;}
.ag-btn__ic svg{width:100%;height:100%;}

/* ============================================================
   BADGE (statut)
   ============================================================ */
.ag-badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;
  font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;border-radius:var(--radius-xs);white-space:nowrap;}
.ag-badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor;}
.ag-badge--available{background:rgba(31,157,87,.14);color:#3ec57e;}
.ag-badge--new{background:var(--brand);color:#fff;}
.ag-badge--reserved{background:rgba(216,146,10,.16);color:#e0a93b;}
.ag-badge--sold{background:var(--ink-600);color:var(--ink-150);}
.ag-badge--neutral{background:var(--bg-sunken);color:var(--text-secondary);}

/* ============================================================
   SELECT (filtres)
   ============================================================ */
.ag-select{display:flex;flex-direction:column;gap:7px;font-family:var(--font-sans);}
.ag-select__label{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);}
.ag-select__wrap{position:relative;display:flex;align-items:center;}
.ag-select__el{width:100%;box-sizing:border-box;appearance:none;-webkit-appearance:none;
  font-family:var(--font-sans);font-size:15px;color:var(--text-primary);background:var(--surface-card);
  border:var(--border-w) solid var(--border-default);border-radius:var(--radius-sm);
  padding:0 40px 0 14px;height:48px;cursor:pointer;
  transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);}
.ag-select__el:hover{border-color:var(--border-strong);}
.ag-select__el:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint);}
.ag-select__caret{position:absolute;right:14px;width:16px;height:16px;pointer-events:none;color:var(--text-secondary);}

/* ============================================================
   CARTE VÉHICULE
   ============================================================ */
.ag-vcard{display:flex;flex-direction:column;background:var(--surface-card);
  border:var(--border-w) solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;
  font-family:var(--font-sans);color:inherit;text-decoration:none;
  transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out);}
.ag-vcard--link{cursor:pointer;}
.ag-vcard--link:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--border-default);}
.ag-vcard__media{position:relative;aspect-ratio:16/10;background:var(--ink-900);overflow:hidden;}
.ag-vcard__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dur-slow) var(--ease-out);}
.ag-vcard--link:hover .ag-vcard__media img{transform:scale(1.045);}
.ag-vcard__ph{position:absolute;inset:0;display:grid;place-items:center;
  background:radial-gradient(120% 90% at 50% 18%,#1d1d21 0%,#0b0b0d 70%);}
.ag-vcard__ph img{width:64%;opacity:.5;}
.ag-vcard__badges{position:absolute;top:12px;left:12px;display:flex;gap:6px;}
.ag-vcard__body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:12px;}
.ag-vcard__head{display:flex;flex-direction:column;gap:2px;}
.ag-vcard__title{font-family:var(--font-heading);font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.15;color:var(--text-primary);}
.ag-vcard__sub{font-size:13px;color:var(--text-secondary);}
.ag-vcard__specs{display:flex;flex-wrap:wrap;gap:6px 14px;padding:12px 0;
  border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);}
.ag-vcard__spec{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-secondary);}
.ag-vcard__spec svg{width:15px;height:15px;color:var(--text-tertiary);flex:none;}
.ag-vcard__foot{display:flex;align-items:center;justify-content:space-between;}
.ag-vcard__price{display:flex;flex-direction:column;}
.ag-vcard__price b{font-family:var(--font-heading);font-size:22px;font-weight:700;color:var(--text-primary);letter-spacing:-.01em;}
.ag-vcard__price span{font-size:11px;color:var(--text-tertiary);letter-spacing:.04em;}
.ag-vcard__cta{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--brand);}
.ag-vcard__cta svg{width:15px;height:15px;transition:transform var(--dur-fast) var(--ease-out);}
.ag-vcard--link:hover .ag-vcard__cta svg{transform:translateX(3px);}

/* ============================================================
   HEADER
   ============================================================ */
.ag-header{position:sticky;top:0;z-index:var(--z-sticky);background:transparent;
  border-bottom:1px solid transparent;transition:background .25s,border-color .25s,backdrop-filter .25s;}
.ag-header.is-scrolled{background:rgba(5,5,6,.82);backdrop-filter:blur(12px);border-bottom-color:var(--border-subtle);}
.ag-header__inner{max-width:var(--container-wide);margin:0 auto;padding:0 var(--gutter);
  height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.ag-header__logo img{height:46px;width:auto;}
.ag-nav{display:flex;gap:30px;align-items:center;}
.ag-nav a{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--text-secondary);padding:6px 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;}
.ag-nav a:hover{color:var(--text-primary);}
.ag-nav a.is-active,
.ag-nav .current-menu-item > a,
.ag-nav .current_page_item > a,
.ag-nav .current-menu-parent > a,
.ag-nav .current-page-ancestor > a{color:var(--text-primary);border-bottom-color:var(--brand);}
.ag-header__logo .custom-logo{height:46px;width:auto;}
.ag-header__actions{display:flex;align-items:center;gap:16px;}
.ag-header__phone{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:13px;font-weight:600;}
.ag-header__phone .ag-ic{width:16px;height:16px;color:var(--brand);}
.ag-burger{display:none;background:none;border:none;color:var(--text-primary);width:28px;height:28px;cursor:pointer;}

/* ============================================================
   FOOTER
   ============================================================ */
.ag-footer{background:var(--ink-1000);border-top:1px solid var(--border-subtle);}
.ag-footer__grid{max-width:var(--container-wide);margin:0 auto;padding:64px var(--gutter) 40px;
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;}
.ag-footer__brand{max-width:300px;}
.ag-footer__brand img{height:46px;margin-bottom:18px;}
.ag-footer__brand p{font-size:14px;color:var(--text-secondary);line-height:1.6;}
.ag-footer__loc{display:flex;align-items:center;gap:8px;margin-top:18px;color:var(--text-tertiary);font-size:13px;}
.ag-footer__loc .ag-ic{width:16px;height:16px;}
.ag-footer__col{display:flex;flex-direction:column;gap:12px;}
.ag-footer__col h4{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:4px;}
.ag-footer__col a{font-size:14px;color:var(--text-secondary);}
.ag-footer__col a:hover{color:var(--text-primary);}
.ag-footer__bar{border-top:1px solid var(--border-subtle);}
.ag-footer__bar-inner{max-width:var(--container-wide);margin:0 auto;padding:20px var(--gutter);
  display:flex;justify-content:space-between;font-size:12.5px;color:var(--text-tertiary);gap:16px;flex-wrap:wrap;}

/* ============================================================
   ACCUEIL — hero / sections
   ============================================================ */
.ag-hero{position:relative;overflow:hidden;background:var(--ink-1000);}
.ag-hero__bg{position:absolute;inset:0;background:radial-gradient(120% 80% at 70% 10%,#1a1a1e 0%,#0a0a0c 55%,#050506 100%);}
.ag-hero__swoosh{position:absolute;right:-6%;top:16%;width:62%;opacity:.10;pointer-events:none;}
.ag-hero__inner{position:relative;max-width:var(--container-wide);margin:0 auto;padding:clamp(70px,12vh,150px) var(--gutter) 64px;}
.ag-hero__copy{max-width:760px;}
.ag-hero h1{font-size:clamp(48px,8vw,104px);color:#fff;line-height:.9;}
.ag-hero h1 .dot{color:var(--brand);}
.ag-hero__lead{font-size:clamp(16px,2vw,20px);color:var(--text-secondary);margin-top:24px;max-width:540px;line-height:1.55;}
.ag-hero__stats{display:flex;gap:40px;margin-top:40px;flex-wrap:wrap;}
.ag-hero__stat .n{font-family:var(--font-display);font-weight:var(--fw-black);text-transform:uppercase;font-size:34px;color:#fff;line-height:1;}
.ag-hero__stat .l{font-size:12.5px;color:var(--text-tertiary);letter-spacing:.06em;text-transform:uppercase;margin-top:4px;}

/* barre de recherche (hero + catalogue) */
.ag-searchbar{margin-top:48px;max-width:920px;}
.ag-searchbar form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:14px;
  background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:18px;box-shadow:var(--shadow-xl);align-items:end;}

.ag-section{padding:84px var(--gutter);}
.ag-section--subtle{background:var(--bg-subtle);}
.ag-section--base{background:var(--bg-base);padding:72px var(--gutter);}
.ag-sechead{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px;}
.ag-sechead h2{font-family:var(--font-display);font-weight:var(--fw-black);text-transform:uppercase;
  letter-spacing:var(--tracking-tight);line-height:1;font-size:clamp(30px,4vw,46px);color:var(--text-primary);}
.ag-sechead .ag-eyebrow{margin-bottom:10px;}

.ag-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}

/* pourquoi nous */
.ag-why{max-width:var(--container-max);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.ag-why__item{display:flex;flex-direction:column;gap:14px;}
.ag-why__ic{width:46px;height:46px;display:grid;place-items:center;border-radius:var(--radius-md);background:var(--brand-tint);color:var(--brand);}
.ag-why__ic svg{width:22px;height:22px;}
.ag-why__item h3{font-size:20px;color:var(--text-primary);}
.ag-why__item p{font-size:14.5px;color:var(--text-secondary);line-height:1.6;}

/* bande vente */
.ag-sell{position:relative;overflow:hidden;background:var(--ink-900);padding:80px var(--gutter);}
.ag-sell__swoosh{position:absolute;left:-4%;bottom:-30%;width:46%;opacity:.08;}
.ag-sell__inner{position:relative;max-width:var(--container-max);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.ag-sell__copy{max-width:620px;}
.ag-sell__copy h2{font-size:clamp(30px,4vw,48px);color:#fff;}
.ag-sell__copy h2 .dot{color:var(--brand);}
.ag-sell__copy p{font-size:16px;color:var(--text-secondary);margin-top:18px;line-height:1.6;}

/* ============================================================
   CATALOGUE — bannière + filtres + grille
   ============================================================ */
.ag-pagehead{background:var(--ink-1000);border-bottom:1px solid var(--border-subtle);padding:48px var(--gutter) 36px;}
.ag-pagehead__inner{max-width:var(--container-wide);margin:0 auto;}
.ag-pagehead h1{font-family:var(--font-display);font-weight:var(--fw-black);text-transform:uppercase;
  letter-spacing:var(--tracking-tight);line-height:1;font-size:clamp(32px,5vw,56px);color:#fff;}

.ag-catalog{background:var(--bg-subtle);padding:32px var(--gutter) 90px;min-height:60vh;}
.ag-catalog__inner{max-width:var(--container-wide);margin:0 auto;display:grid;grid-template-columns:300px 1fr;gap:32px;}
.ag-rail{position:sticky;top:98px;align-self:start;background:var(--surface-card);
  border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:22px;}
.ag-rail__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;}
.ag-rail__head span{font-family:var(--font-heading);font-weight:700;font-size:18px;color:var(--text-primary);}
.ag-rail__reset{background:none;border:none;color:var(--brand);font-size:12px;font-weight:600;cursor:pointer;letter-spacing:.04em;}
.ag-rail__group{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--border-subtle);}
.ag-rail__group-title{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:14px;}
.ag-catalog__bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px;flex-wrap:wrap;}
.ag-catalog__count{font-size:14px;color:var(--text-secondary);}
.ag-catalog__count b{color:var(--text-primary);}
.ag-catalog__sort{display:flex;align-items:center;gap:10px;}
.ag-catalog__sort > span{font-size:12px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.1em;}
.ag-catalog__sort .ag-select{width:200px;}
.ag-empty{text-align:center;padding:80px 0;color:var(--text-tertiary);}

/* fiche véhicule minimale */
.ag-single{background:var(--bg-base);padding:48px var(--gutter) 90px;}
.ag-single__inner{max-width:var(--container-max);margin:0 auto;display:grid;grid-template-columns:1.3fr 1fr;gap:48px;}
.ag-single__media{aspect-ratio:16/10;background:var(--ink-900);border-radius:var(--radius-lg);overflow:hidden;position:relative;}
.ag-single__media img{width:100%;height:100%;object-fit:cover;}
.ag-single__ph{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(120% 90% at 50% 18%,#1d1d21 0%,#0b0b0d 70%);}
.ag-single__ph img{width:50%;opacity:.5;}
.ag-single h1{font-family:var(--font-display);font-weight:var(--fw-black);text-transform:uppercase;font-size:clamp(28px,4vw,44px);color:var(--text-primary);}
.ag-single__price{font-family:var(--font-heading);font-size:32px;font-weight:700;color:var(--text-primary);margin:8px 0 4px;}
.ag-specgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0;}
.ag-specitem{display:flex;gap:12px;align-items:center;padding:14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-card);}
.ag-specitem .ag-ic{width:22px;height:22px;color:var(--brand);flex:none;}
.ag-specitem .l{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);}
.ag-specitem .v{font-size:15px;color:var(--text-primary);}
.ag-options{list-style:none;padding:0;margin:18px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;}
.ag-options li{display:flex;gap:8px;align-items:flex-start;font-size:14px;color:var(--text-secondary);}
.ag-options li svg{width:16px;height:16px;color:var(--brand);flex:none;margin-top:3px;}

/* page générique (mentions légales, etc.) */
.ag-page{max-width:760px;margin:0 auto;padding:64px var(--gutter) 90px;}
.ag-page h1{font-family:var(--font-display);font-weight:var(--fw-black);text-transform:uppercase;font-size:clamp(30px,5vw,52px);margin-bottom:24px;}
.ag-page p{color:var(--text-secondary);line-height:1.7;margin-bottom:16px;}

.ag-ic{display:inline-flex;}
.ag-ic svg{width:100%;height:100%;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:980px){
  .ag-grid-3,.ag-why{grid-template-columns:1fr 1fr;}
  .ag-catalog__inner{grid-template-columns:1fr;}
  .ag-rail{position:static;}
  .ag-footer__grid{grid-template-columns:1fr 1fr;}
  .ag-single__inner{grid-template-columns:1fr;}
  .ag-searchbar form{grid-template-columns:1fr 1fr;}
}
@media (max-width:720px){
  .ag-nav,.ag-header__phone{display:none;}
  .ag-burger{display:inline-flex;}
  .ag-grid-3,.ag-why,.ag-footer__grid,.ag-specgrid,.ag-options,.ag-searchbar form{grid-template-columns:1fr;}
  .ag-header__logo img,.ag-header__logo .custom-logo{height:38px;}
  /* menu mobile déroulant */
  .ag-nav.is-open{display:flex;flex-direction:column;gap:0;position:absolute;left:0;right:0;top:78px;
    background:rgba(5,5,6,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);
    padding:8px var(--gutter) 20px;}
  .ag-nav.is-open a{padding:14px 0;border-bottom:1px solid var(--border-subtle);width:100%;}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;}
}

/* ---- Pied de page : menus gérés via Apparence → Menus ---------------- */
.ag-footer__col ul.ag-footer__menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.ag-footer__col ul.ag-footer__menu li{margin:0;}
.ag-footer__col ul.ag-footer__menu a{font-size:14px;color:var(--text-secondary);}
.ag-footer__col ul.ag-footer__menu a:hover{color:var(--text-primary);}
.ag-footer__legal{display:flex;flex-wrap:wrap;align-items:center;gap:8px;list-style:none;margin:0;padding:0;font-size:12.5px;}
.ag-footer__legal li{display:inline-flex;align-items:center;gap:8px;}
.ag-footer__legal li:not(:last-child)::after{content:"·";color:var(--text-tertiary);}
.ag-footer__legal a{color:var(--text-tertiary);}
.ag-footer__legal a:hover{color:var(--text-primary);}

/* ============================================================
   PAGES Contact / Vendre / Demande d'achat
   ============================================================ */
.ag-contact{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:start;}
.ag-contact__lead{font-size:18px;color:var(--text-secondary);line-height:1.6;margin-bottom:28px;}
.ag-contact__info{display:flex;flex-direction:column;gap:8px;}
.ag-contact__item{display:flex;gap:16px;align-items:flex-start;padding:14px 0;}
.ag-contact__ic{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:var(--radius-md);
  background:var(--brand-tint);color:var(--brand);}
.ag-contact__ic svg{width:20px;height:20px;}
.ag-contact__item .l{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);}
.ag-contact__item .v{font-size:16px;color:var(--text-primary);margin-top:3px;}
.ag-contact__item .v a:hover{color:var(--brand);}

.ag-formpage{max-width:820px;margin:0 auto;}
.ag-formpage__lead{font-size:18px;color:var(--text-secondary);line-height:1.6;margin-bottom:32px;max-width:640px;}
.ag-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:40px;}
.ag-step{display:flex;flex-direction:column;gap:10px;padding:22px;border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg);background:var(--surface-card);}
.ag-step__ic{width:42px;height:42px;display:grid;place-items:center;border-radius:var(--radius-md);
  background:var(--brand-tint);color:var(--brand);}
.ag-step__ic svg{width:20px;height:20px;}
.ag-step h3{font-size:17px;color:var(--text-primary);}
.ag-step p{font-size:14px;color:var(--text-secondary);line-height:1.55;}

.ag-form-box{background:var(--surface-card);border:1px solid var(--border-subtle);
  border-radius:var(--radius-xl);padding:32px;}
.ag-form-fallback{display:flex;flex-direction:column;gap:16px;align-items:flex-start;}
.ag-form-hint{font-size:13px;color:var(--text-tertiary);background:var(--bg-sunken);
  border:1px dashed var(--border-default);border-radius:var(--radius-md);padding:12px 14px;line-height:1.5;}
.ag-requested-note{background:var(--brand-tint);color:var(--text-primary);border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);padding:12px 16px;margin-bottom:22px;font-size:14px;}

/* Adaptation légère des formulaires (WPForms/CF7) au thème sombre */
.ag-form-box input[type=text],
.ag-form-box input[type=email],
.ag-form-box input[type=tel],
.ag-form-box input[type=url],
.ag-form-box input[type=number],
.ag-form-box select,
.ag-form-box textarea{
  width:100%;box-sizing:border-box;background:var(--bg-sunken);
  border:1px solid var(--border-default);border-radius:var(--radius-sm);
  padding:12px 14px;color:var(--text-primary);font-family:var(--font-sans);font-size:15px;}
.ag-form-box input:focus,.ag-form-box select:focus,.ag-form-box textarea:focus{
  outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint);}
.ag-form-box label{color:var(--text-primary);font-weight:500;}
.ag-form-box .wpforms-field-description,
.ag-form-box .wpforms-required-label{color:var(--text-tertiary);}
.ag-form-box button[type=submit],
.ag-form-box input[type=submit],
.ag-form-box .wpforms-submit{
  background:var(--brand);color:#fff;border:none;border-radius:var(--radius-sm);
  height:48px;padding:0 26px;font-family:var(--font-sans);font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);}
.ag-form-box button[type=submit]:hover,
.ag-form-box input[type=submit]:hover,
.ag-form-box .wpforms-submit:hover{background:var(--brand-hover);box-shadow:var(--glow-red);}

@media (max-width:980px){
  .ag-contact{grid-template-columns:1fr;gap:32px;}
  .ag-steps{grid-template-columns:1fr;}
}

/* Bande « véhicule sur commande » sur le catalogue */
.ag-catalog__cta{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:18px 22px;margin-bottom:24px;}
.ag-catalog__cta p{font-size:14.5px;color:var(--text-secondary);}
.ag-catalog__cta b{color:var(--text-primary);}
.ag-empty__cta{margin-top:20px;display:flex;justify-content:center;}

/* ============================================================
   FICHE VÉHICULE — galerie + caractéristiques détaillées
   ============================================================ */
.ag-gallery__main{aspect-ratio:16/10;background:var(--ink-900);border-radius:var(--radius-lg);overflow:hidden;cursor:zoom-in;}
.ag-gallery__main img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity var(--dur-fast) var(--ease-out);}
.ag-gallery__thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:10px;}
.ag-gthumb{padding:0;border:2px solid transparent;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;background:var(--ink-900);aspect-ratio:16/11;}
.ag-gthumb img{width:100%;height:100%;object-fit:cover;display:block;}
.ag-gthumb.is-active{border-color:var(--brand);}
.ag-gthumb:hover{border-color:var(--border-strong);}
.ag-single__desc{margin-top:28px;color:var(--text-secondary);line-height:1.7;}

.ag-single__details{margin-top:48px;}
.ag-section-title{font-family:var(--font-display);font-weight:var(--fw-black);text-transform:uppercase;
  letter-spacing:var(--tracking-tight);font-size:clamp(22px,3vw,32px);color:var(--text-primary);margin-bottom:20px;}
.ag-spectable{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;margin:0 0 40px;}
.ag-spectable__row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border-subtle);}
.ag-spectable dt{color:var(--text-secondary);font-size:14.5px;}
.ag-spectable dd{margin:0;color:var(--text-primary);font-weight:500;font-size:14.5px;text-align:right;}
.ag-options-block{margin-top:8px;}

/* Lightbox */
.ag-lightbox{position:fixed;inset:0;z-index:var(--z-modal);display:none;place-items:center;
  background:var(--overlay-scrim);backdrop-filter:blur(4px);padding:5vh 5vw;}
.ag-lightbox.is-open{display:grid;}
.ag-lightbox img{max-width:100%;max-height:90vh;border-radius:var(--radius-md);box-shadow:var(--shadow-xl);}
.ag-lightbox__close{position:absolute;top:18px;right:24px;width:44px;height:44px;border:none;border-radius:50%;
  background:rgba(10,10,13,.6);color:#fff;font-size:26px;line-height:1;cursor:pointer;}
.ag-lightbox__close:hover{background:var(--brand);}

@media (max-width:980px){
  .ag-spectable{grid-template-columns:1fr;}
  .ag-gallery__thumbs{grid-template-columns:repeat(4,1fr);}
}

/* ============================================================
   Habillage WPForms (priorité sur la CSS du plugin) — thème sombre
   ============================================================ */
.ag-form-box .wpforms-container,
.ag-form-box .wpforms-form{font-family:var(--font-sans);}
.ag-form-box .wpforms-field-label,
.ag-form-box .wpforms-field label{color:var(--text-primary)!important;font-weight:500!important;font-size:15px!important;}
.ag-form-box .wpforms-field-sublabel,
.ag-form-box .wpforms-field-description{color:var(--text-tertiary)!important;}
.ag-form-box .wpforms-required-label{color:var(--brand)!important;}

.ag-form-box .wpforms-form input[type=text],
.ag-form-box .wpforms-form input[type=email],
.ag-form-box .wpforms-form input[type=tel],
.ag-form-box .wpforms-form input[type=url],
.ag-form-box .wpforms-form input[type=number],
.ag-form-box .wpforms-form input[type=password],
.ag-form-box .wpforms-form select,
.ag-form-box .wpforms-form textarea{
  background:var(--bg-sunken)!important;
  color:var(--text-primary)!important;
  border:1px solid var(--border-default)!important;
  border-radius:var(--radius-sm)!important;
  padding:12px 14px!important;
  box-shadow:none!important;
}
.ag-form-box .wpforms-form input::placeholder,
.ag-form-box .wpforms-form textarea::placeholder{color:var(--text-tertiary)!important;}
.ag-form-box .wpforms-form input:focus,
.ag-form-box .wpforms-form select:focus,
.ag-form-box .wpforms-form textarea:focus{
  border-color:var(--brand)!important;
  box-shadow:0 0 0 3px var(--brand-tint)!important;
  outline:none!important;
}

/* Bouton d'envoi → rouge marque */
.ag-form-box .wpforms-form button[type=submit],
.ag-form-box .wpforms-form .wpforms-submit{
  background:var(--brand)!important;
  color:#fff!important;
  border:none!important;
  border-radius:var(--radius-sm)!important;
  height:48px!important;
  padding:0 28px!important;
  font-family:var(--font-sans)!important;
  font-weight:600!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
  font-size:14px!important;
  cursor:pointer!important;
  transition:background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)!important;
}
.ag-form-box .wpforms-form button[type=submit]:hover,
.ag-form-box .wpforms-form .wpforms-submit:hover{
  background:var(--brand-hover)!important;box-shadow:var(--glow-red)!important;
}

/* Messages de confirmation / erreurs lisibles sur fond sombre */
.ag-form-box .wpforms-confirmation-container-full{
  background:var(--brand-tint)!important;border:1px solid var(--border-subtle)!important;
  color:var(--text-primary)!important;border-radius:var(--radius-md)!important;padding:16px!important;}
.ag-form-box .wpforms-error{color:var(--red-300)!important;}

/* ============================================================
   Habillage Fluent Forms (priorité sur la CSS du plugin) — thème sombre
   ============================================================ */
.ag-form-box .fluentform,
.ag-form-box .fluent_form_wrapper{font-family:var(--font-sans)!important;}
.ag-form-box .fluentform .ff-el-input--label label,
.ag-form-box .fluentform label{color:var(--text-primary)!important;font-weight:500!important;font-size:15px!important;}
.ag-form-box .fluentform .ff-el-help-message,
.ag-form-box .fluentform .ff-el-input--content .ff-el-help-text{color:var(--text-tertiary)!important;}
.ag-form-box .fluentform .ff-el-is-required .text-danger,
.ag-form-box .fluentform .text-danger,
.ag-form-box .fluentform .error{color:var(--brand)!important;}

.ag-form-box .fluentform .ff-el-form-control,
.ag-form-box .fluentform input[type=text],
.ag-form-box .fluentform input[type=email],
.ag-form-box .fluentform input[type=tel],
.ag-form-box .fluentform input[type=url],
.ag-form-box .fluentform input[type=number],
.ag-form-box .fluentform select,
.ag-form-box .fluentform textarea{
  background:var(--bg-sunken)!important;
  color:var(--text-primary)!important;
  border:1px solid var(--border-default)!important;
  border-radius:var(--radius-sm)!important;
  padding:12px 14px!important;
  box-shadow:none!important;
}
.ag-form-box .fluentform .ff-el-form-control::placeholder,
.ag-form-box .fluentform textarea::placeholder{color:var(--text-tertiary)!important;}
.ag-form-box .fluentform .ff-el-form-control:focus,
.ag-form-box .fluentform input:focus,
.ag-form-box .fluentform select:focus,
.ag-form-box .fluentform textarea:focus{
  border-color:var(--brand)!important;
  box-shadow:0 0 0 3px var(--brand-tint)!important;
  outline:none!important;
}

/* Bouton d'envoi → rouge marque */
.ag-form-box .fluentform .ff-btn,
.ag-form-box .fluentform .ff-btn-submit,
.ag-form-box .fluentform button[type=submit]{
  background:var(--brand)!important;
  color:#fff!important;
  border:none!important;
  border-radius:var(--radius-sm)!important;
  height:48px!important;
  padding:0 28px!important;
  font-family:var(--font-sans)!important;
  font-weight:600!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
  font-size:14px!important;
  cursor:pointer!important;
  box-shadow:none!important;
  transition:background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)!important;
}
.ag-form-box .fluentform .ff-btn:hover,
.ag-form-box .fluentform .ff-btn-submit:hover{background:var(--brand-hover)!important;box-shadow:var(--glow-red)!important;}

/* Champ d'upload de fichiers */
.ag-form-box .fluentform .ff-el-input--content .ff_upload_btn,
.ag-form-box .fluentform .ff-upload-btn,
.ag-form-box .fluentform .ff_upload_zone,
.ag-form-box .fluentform .ff-el-file-upload{
  background:var(--bg-sunken)!important;
  color:var(--text-primary)!important;
  border:1px dashed var(--border-default)!important;
  border-radius:var(--radius-sm)!important;
}
.ag-form-box .fluentform .ff-uploaded-list .ff-upload-preview{
  background:var(--surface-card)!important;border:1px solid var(--border-subtle)!important;border-radius:var(--radius-sm)!important;}

/* Message de succès lisible sur fond sombre */
.ag-form-box .fluentform .ff-message-success,
.ag-form-box .ff-message-success{
  background:var(--brand-tint)!important;border:1px solid var(--border-subtle)!important;
  color:var(--text-primary)!important;border-radius:var(--radius-md)!important;padding:16px!important;}

/* ============================================================
   Habillage Forminator (priorité sur la CSS du plugin) — thème sombre
   ============================================================ */
.ag-form-box .forminator-ui,
.ag-form-box .forminator-custom-form{font-family:var(--font-sans)!important;}
.ag-form-box .forminator-ui .forminator-label,
.ag-form-box .forminator-ui label{color:var(--text-primary)!important;font-weight:500!important;font-size:15px!important;}
.ag-form-box .forminator-ui .forminator-required,
.ag-form-box .forminator-ui .forminator-icon-required,
.ag-form-box .forminator-ui span.forminator-required{color:var(--brand)!important;}
.ag-form-box .forminator-ui .forminator-description,
.ag-form-box .forminator-ui .forminator-field-description{color:var(--text-tertiary)!important;}

.ag-form-box .forminator-ui input.forminator-input,
.ag-form-box .forminator-ui textarea.forminator-textarea,
.ag-form-box .forminator-ui select.forminator-select,
.ag-form-box .forminator-ui .forminator-input,
.ag-form-box .forminator-ui input[type=text],
.ag-form-box .forminator-ui input[type=email],
.ag-form-box .forminator-ui input[type=tel],
.ag-form-box .forminator-ui input[type=url],
.ag-form-box .forminator-ui input[type=number],
.ag-form-box .forminator-ui textarea,
.ag-form-box .forminator-ui select{
  background:var(--bg-sunken)!important;
  color:var(--text-primary)!important;
  border:1px solid var(--border-default)!important;
  border-radius:var(--radius-sm)!important;
  padding:12px 14px!important;
  box-shadow:none!important;
}
.ag-form-box .forminator-ui .forminator-input::placeholder,
.ag-form-box .forminator-ui textarea::placeholder{color:var(--text-tertiary)!important;}
.ag-form-box .forminator-ui .forminator-input:focus,
.ag-form-box .forminator-ui textarea:focus,
.ag-form-box .forminator-ui select:focus{
  border-color:var(--brand)!important;box-shadow:0 0 0 3px var(--brand-tint)!important;outline:none!important;}

/* Bouton d'envoi → rouge marque */
.ag-form-box .forminator-ui button.forminator-button,
.ag-form-box .forminator-ui .forminator-button-submit,
.ag-form-box .forminator-ui button[type=submit]{
  background:var(--brand)!important;
  color:#fff!important;
  border:none!important;
  border-radius:var(--radius-sm)!important;
  min-height:48px!important;
  padding:0 28px!important;
  font-family:var(--font-sans)!important;
  font-weight:600!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
  font-size:14px!important;
  box-shadow:none!important;
  transition:background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)!important;
}
.ag-form-box .forminator-ui button.forminator-button:hover,
.ag-form-box .forminator-ui .forminator-button-submit:hover{background:var(--brand-hover)!important;box-shadow:var(--glow-red)!important;}

/* Champ d'upload de fichiers */
.ag-form-box .forminator-ui .forminator-button-upload,
.ag-form-box .forminator-ui .forminator-field--file,
.ag-form-box .forminator-ui .forminator-upload-file--container{
  background:var(--bg-sunken)!important;color:var(--text-primary)!important;
  border:1px dashed var(--border-default)!important;border-radius:var(--radius-sm)!important;}

/* Messages succès / erreurs lisibles */
.ag-form-box .forminator-ui .forminator-response-message.forminator-success,
.ag-form-box .forminator-response-message.forminator-success{
  background:var(--brand-tint)!important;border:1px solid var(--border-subtle)!important;
  color:var(--text-primary)!important;border-radius:var(--radius-md)!important;padding:16px!important;}
.ag-form-box .forminator-ui .forminator-error-message{color:var(--red-300)!important;}

/* Champ « Véhicule concerné » pré-rempli et verrouillé (fiche → demande) */
.ag-prefill{margin-bottom:22px;}
.ag-prefill__label{display:block;color:var(--text-primary);font-weight:500;font-size:15px;margin-bottom:6px;}
.ag-prefill__input{width:100%;box-sizing:border-box;background:var(--bg-sunken);color:var(--text-secondary);
  border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:12px 14px;
  font-family:var(--font-sans);font-size:15px;cursor:not-allowed;opacity:.85;}
.ag-prefill__hint{font-size:12px;color:var(--text-tertiary);margin-top:4px;}

/* Défilement fluide pour les ancres internes */
html{scroll-behavior:smooth;}

/* Fiche véhicule — formulaire intégré (ancre #ag-demande) */
.ag-single__form{margin-top:48px;scroll-margin-top:96px;}
.ag-single__form .ag-form-box{max-width:760px;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
