:root{
  --navy:#0B1220; --blue:#2D5BFF; --teal:#0E9F8E; --coral:#E2574C; --amber:#C98A1F;
  --ink:#0B1220; --muted:#5b6472; --line:#e6e8ee; --bg:#f7f8fb; --card:#fff;
  --primary:var(--blue);
}
*{box-sizing:border-box}
body{margin:0;font-family:Calibri,"Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
h1,h2,h3,.title{font-family:Cambria,Georgia,"Times New Roman",serif}
.mono{font-family:ui-monospace,"Cascadia Code",Menlo,Consolas,monospace}
a{color:var(--primary);text-decoration:none}
img{max-width:100%}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
header.site{background:var(--navy);color:#fff;padding:16px 0}
header.site .wrap{display:flex;align-items:center;gap:14px}
header.site .brand{font-family:Cambria,Georgia,serif;font-size:22px;font-weight:700}
main.wrap{padding-top:8px;padding-bottom:40px}
h1{font-size:28px;margin:22px 0 6px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin:22px 0}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;color:inherit;transition:box-shadow .15s}
.card:hover{box-shadow:0 6px 22px rgba(11,18,32,.10)}
.ph{aspect-ratio:16/10;background:#e9edf5 center/cover no-repeat;display:flex;align-items:center;justify-content:center;color:#9aa4b2;font-size:14px}
.card .body{padding:14px}
.card h3{margin:6px 0;font-size:18px}
.price{color:var(--navy);font-weight:700;font-size:20px;margin-top:6px}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700}
.badge.available{background:rgba(14,159,142,.12);color:var(--teal)}
.badge.sold{background:rgba(226,87,76,.12);color:var(--coral)}
.specs{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:14px;margin:8px 0}
.block{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:14px 0}
.block h2{margin:0 0 8px;font-size:20px}
.btn{display:inline-block;background:var(--primary);color:#fff;padding:10px 16px;border-radius:8px;font-weight:700;border:0;cursor:pointer}
.detail{display:grid;grid-template-columns:1fr;gap:24px;margin:20px 0}
@media(min-width:760px){.detail{grid-template-columns:1.3fr 1fr}}
.gallery{background:#e9edf5;border-radius:12px;aspect-ratio:16/10;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;color:#9aa4b2}
.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px}
.panel .price{font-size:26px}
footer.site{color:var(--muted);padding:28px 0;text-align:center;font-size:13px;border-top:1px solid var(--line);margin-top:30px}
.back{display:inline-block;margin:14px 0;color:var(--muted)}

/* ---- Template « vitrine » (véhicule phare) ---- */
.hero{display:grid;grid-template-columns:1fr;gap:0;background:var(--navy);color:#fff;border-radius:16px;overflow:hidden;margin:22px 0}
@media(min-width:760px){.hero{grid-template-columns:1.4fr 1fr}}
.hero .img{min-height:280px;background:#1b2740 center/cover no-repeat}
.hero .info{padding:26px}
.hero h2{font-size:30px;margin:6px 0}
.hero .price{color:#fff;font-size:30px}
.hero .btn{margin-top:14px;background:var(--teal)}
.section-title{font-size:22px;margin:26px 0 6px}

/* ---- Template « concession » ---- */
.concession-banner{background:linear-gradient(120deg,var(--navy),#1c3a8f);color:#fff;border-radius:16px;padding:34px 26px;margin:22px 0}
.concession-banner h1{color:#fff;margin:0 0 6px}
.concession-banner p{margin:0;color:#cdd8f2}
.concession .card{border-top:3px solid var(--blue)}
.services{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:16px 0}

/* ---- Template « mandataire » ---- */
.mandataire .deal-row{display:flex;align-items:center;gap:16px;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--amber);border-radius:10px;padding:12px 16px;margin:10px 0}
.mandataire .deal-row .thumb{width:120px;aspect-ratio:16/10;border-radius:8px;background:#e9edf5 center/cover no-repeat;flex:0 0 auto}
.mandataire .deal-row .grow{flex:1;min-width:0}
.mandataire .deal-row .price{font-size:24px;text-align:right}
.mandataire .lead{background:rgba(201,138,31,.12);color:var(--amber);font-weight:700;display:inline-block;padding:4px 12px;border-radius:999px;margin:8px 0}
@media(max-width:560px){.mandataire .deal-row{flex-wrap:wrap}.mandataire .deal-row .price{text-align:left}}

/* ---- Template « minimaliste » ---- */
.minimal main.wrap{max-width:760px}
.minimal h1{font-weight:400;letter-spacing:.5px}
.minimal-list{list-style:none;padding:0;margin:20px 0}
.minimal-list a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);color:inherit}
.minimal-list .name{font-family:Cambria,serif;font-size:21px}
.minimal-list .meta{color:var(--muted);font-size:14px}
.minimal-list .price{font-weight:700;white-space:nowrap}

/* ---- Template « premium » (sombre haut de gamme) ---- */
body.premium{background:#0b0f17;color:#e8ebf2}
body.premium h1,body.premium h2,body.premium h3{color:#fff}
.premium header.site{background:#000}
.premium .p-hero{position:relative;border-radius:16px;overflow:hidden;margin:22px 0;min-height:340px;background:#11151f center/cover no-repeat;display:flex;align-items:flex-end}
.premium .p-hero .cap{padding:26px;width:100%;background:linear-gradient(transparent,rgba(0,0,0,.78))}
.premium .card{background:#131926;border-color:#222c3d;color:#e8ebf2}
.premium .ph{background:#1a2130;color:#5b6680}
.premium .price{color:#E8C46A}
.premium .badge.available{background:rgba(232,196,106,.15);color:#E8C46A}
.premium .btn{background:#E8C46A;color:#0b0f17}
.premium .specs{color:#9aa4bd}
.premium footer.site{border-color:#222c3d;color:#8b93a7}
.premium .block{background:#131926;border-color:#222c3d}

/* ---- Template « familial » (chaleureux) ---- */
body.familial{background:#fbf7f2}
.familial header.site{background:#0E9F8E}
.familial .intro{background:#e9f6f1;border:1px solid #cfe9e0;border-radius:16px;padding:22px;margin:22px 0}
.familial .intro h1{color:#0b6f61;margin:0 0 6px}
.familial .card{border-radius:16px}
.familial .price{color:#0b6f61}
.familial .btn{background:#0E9F8E}
.familial .tag{display:inline-block;background:#fff3e0;color:var(--amber);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;margin-bottom:6px}

/* ---- Template « magazine » (éditorial) ---- */
.mag .feature{display:grid;grid-template-columns:1fr;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin:22px 0;background:#fff}
@media(min-width:760px){.mag .feature{grid-template-columns:1.6fr 1fr}}
.mag .feature .img{min-height:320px;background:#e9edf5 center/cover no-repeat}
.mag .feature .txt{padding:28px}
.mag .feature h2{font-size:32px;margin:8px 0}
.mag .kicker{text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--blue);font-weight:700}
.mag .grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}

/* ---- Template « compact » (tableau dense) ---- */
.compact main.wrap{max-width:1000px}
.compact-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.compact-table th{background:var(--navy);color:#fff;text-align:left;padding:10px 12px;font-size:13px}
.compact-table td{padding:10px 12px;border-top:1px solid var(--line);font-size:14px}
.compact-table tr:hover td{background:#f4f6fb}
.compact-table .p{font-weight:700;color:var(--navy);white-space:nowrap}
.compact-table a{color:inherit;font-weight:700}

/* ---- Template « sport » ---- */
body.sport{background:#12100f;color:#f0eae6}
.sport header.site{background:#000;border-bottom:3px solid var(--coral)}
.sport h1,.sport h2,.sport h3{text-transform:uppercase;letter-spacing:1px;color:#fff}
.sport .banner{background:linear-gradient(100deg,#E2574C,#C98A1F);color:#141414;border-radius:14px;padding:24px 26px;margin:22px 0;font-weight:700}
.sport .banner h1{color:#141414;margin:0}
.sport .card{background:#1c1a18;border-color:#332f2b;color:#f0eae6}
.sport .ph{background:#241f1c;color:#7a706a}
.sport .price{color:#ff7a6c}
.sport .btn{background:var(--coral)}
.sport .badge.available{background:rgba(226,87,76,.18);color:#ff8a80}
.sport footer.site{border-color:#332f2b;color:#8b7f78}

/* ---- Template « eco » ---- */
body.eco{background:#f2f8f3}
.eco header.site{background:#1b7a4b}
.eco .intro{background:#e3f3e8;border:1px solid #bfe4cc;border-radius:16px;padding:22px;margin:22px 0}
.eco .intro h1{color:#14663d;margin:0 0 6px}
.eco .price{color:#14663d}
.eco .btn{background:#1b7a4b}
.eco .leaf{display:inline-block;background:#d6efdd;color:#14663d;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;margin-bottom:6px}

/* ---- Template « urbain » (citadine) ---- */
body.urbain{background:#eef4fb}
.urbain header.site{background:#0a3d62}
.urbain .hero-city{background:linear-gradient(120deg,#2D5BFF,#0E9F8E);color:#fff;border-radius:16px;padding:26px;margin:22px 0}
.urbain .hero-city h1{color:#fff;margin:0}
.urbain .card{border-radius:14px}
.urbain .price{color:#0a3d62}
.urbain .btn{background:#0a3d62}

/* ---- Template « utilitaire » (pro) ---- */
body.utilitaire{background:#f5f5f2}
.utilitaire header.site{background:#2b2b2b;border-bottom:4px solid var(--amber)}
.utilitaire .strip{background:var(--amber);color:#1a1a1a;font-weight:700;border-radius:10px;padding:16px 20px;margin:22px 0}
.utilitaire .strip h1{color:#1a1a1a;margin:0;font-size:24px}
.utilitaire .card{border-top:4px solid var(--amber);border-radius:8px}
.utilitaire .price{color:#8a5a00}
.utilitaire .btn{background:var(--amber);color:#1a1a1a}

/* ---- Template « luxe » (haut de gamme clair) ---- */
body.luxe{background:#f7f3ec;color:#2a2620}
.luxe header.site{background:#2a2620}
.luxe h1,.luxe h2,.luxe h3{font-family:Cambria,Georgia,serif;letter-spacing:.3px}
.luxe .lux-hero{border:1px solid #e3d9c6;background:#fffdf8;border-radius:16px;padding:34px;margin:22px 0;text-align:center}
.luxe .lux-hero h1{font-size:34px;color:#7a6a3a;margin:0}
.luxe .lux-hero .rule{width:60px;height:2px;background:#b79a54;margin:14px auto}
.luxe .card{background:#fffdf8;border-color:#e3d9c6}
.luxe .price{color:#7a6a3a}
.luxe .btn{background:#7a6a3a}

/* ---- Template « rétro » (collection) ---- */
body.retro{background:#efe7d6;color:#3a3226}
.retro header.site{background:#5a3a22}
.retro h1,.retro h2,.retro h3{font-family:Cambria,Georgia,serif}
.retro .plate{display:inline-block;background:#3a3226;color:#f0e6cf;border:2px solid #f0e6cf;border-radius:8px;padding:6px 16px;font-family:ui-monospace,Menlo,monospace;letter-spacing:2px;margin:12px 0}
.retro .card{background:#f7f0df;border-color:#d8c9a8}
.retro .ph{background:#e5d8ba;color:#a08a5a}
.retro .price{color:#8a5a2a}
.retro .btn{background:#8a5a2a}
