@font-face{font-family:'Great Vibes';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/great-vibes-latin.woff2) format('woff2'),url(fonts/great-vibes.ttf) format('truetype');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/inter-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/inter-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500 800;font-display:swap;src:url(fonts/playfair-display-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500 800;font-display:swap;src:url(fonts/playfair-display-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
/* ===== Top Courtiers — thème premium ===== */
:root{
  --ink:#0e1a2b; --ink-2:#17294a; --ink-3:#223a63;
  --gold:#c9a45c; --gold-2:#e2c88f; --gold-deep:#7a5a1e; --gold-soft:#f6eedc;
  --ivory:#faf7f1; --paper:#fffdf9; --line:#e8e0d0; --text:#1d2330; --muted:#5d6472;
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --r:18px; --shadow:0 10px 30px rgba(14,26,43,.07); --shadow-lg:0 22px 50px rgba(14,26,43,.16);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--text);background:var(--ivory);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--ink-3);text-underline-offset:3px}
a:hover{color:var(--gold-deep)}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.container{width:min(1200px,92%);margin:0 auto}
.narrow{max-width:860px}
.muted{color:var(--muted)}
.center{text-align:center}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:-999px;top:0;background:var(--gold);color:#000;padding:.6rem 1rem;z-index:20}
.skip-link:focus{left:1rem}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.ico{width:1em;height:1em;fill:currentColor;flex:none}

/* En-tête */
.site-header{background:rgba(14,26,43,.97);backdrop-filter:saturate(140%) blur(6px);position:sticky;top:0;z-index:10;border-bottom:1px solid rgba(201,164,92,.35)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:1.13rem 0;gap:1.33rem}
.brand{display:flex;align-items:center;gap:.93rem;text-decoration:none;color:#fff}
.brand:hover{color:#fff}
.brand-mark{display:grid;place-items:center;width:51px;height:51px;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font-size:1.4rem}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-family:var(--serif);font-size:1.87rem;font-weight:600;letter-spacing:.01em;display:inline-flex;align-items:baseline;gap:.53rem}
.brand-name em{font-style:italic;color:var(--gold);font-weight:500}
.brand-script{font-family:'Great Vibes',cursive;font-size:2.07rem;font-weight:400;letter-spacing:0;color:var(--gold-2);line-height:1}
.brand-tag{font-size:.96rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2);margin-top:.27rem}
nav{display:flex;gap:1.87rem;align-items:center;flex-wrap:wrap}
nav a{color:#e9e4da;text-decoration:none;font-weight:500;font-size:1.27rem}
nav a:hover{color:var(--gold-2)}
.nav-cta{border:1px solid var(--gold);color:var(--gold-2)!important;padding:.56rem 1.27rem;border-radius:999px}
.nav-cta:hover{background:var(--gold);color:var(--ink)!important}

/* Eyebrow & titres */
.eyebrow{display:inline-flex;align-items:center;gap:.45rem;margin:0 0 .6rem;font-size:.76rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep)}
.eyebrow .ico{color:var(--gold)}
.eyebrow--light{color:var(--gold-2)}
.section{padding:4.5rem 0}
.section--ivory{background:var(--paper);border-top:1px solid var(--line)}
.section-head{text-align:center;max-width:720px;margin:0 auto 2rem}
.section-title{font-size:clamp(1.6rem,3vw,2.3rem);margin:0 0 .5rem}
.section-lead,.count{color:var(--muted);margin:0}
.page .section-title{margin-top:3rem;font-size:1.6rem}

/* Hero accueil */
.hero{position:relative;overflow:hidden;background:var(--ink);color:#f3efe6;padding:5.5rem 0 4.5rem}
.hero-bg{position:absolute;inset:0;background:
  radial-gradient(900px 480px at 85% -10%,rgba(201,164,92,.28),transparent 60%),
  radial-gradient(700px 420px at -10% 110%,rgba(34,58,99,.9),transparent 60%),
  repeating-linear-gradient(135deg,rgba(201,164,92,.06) 0 1px,transparent 1px 28px),
  linear-gradient(160deg,#0e1a2b 0%,#17294a 100%)}
.hero-inner{position:relative;text-align:center}
.hero-title{color:#fff;font-size:clamp(2.2rem,6vw,4.4rem);line-height:1.08;margin:.2rem auto 1rem;max-width:15ch;font-weight:600}
.hero-brand em{color:var(--gold);font-weight:500}
.hero-dash{color:var(--gold)}
.hero-sub{max-width:640px;margin:0 auto 2.2rem;font-size:1.15rem;color:#d9d3c6}
.hero-search{max-width:760px;margin:0 auto;background:rgba(255,255,255,.06);border:1px solid rgba(201,164,92,.45);border-radius:22px;padding:1.3rem;box-shadow:0 30px 60px rgba(0,0,0,.35)}
.hero-label{display:block;font-family:var(--sans);font-weight:500;font-size:.92rem;line-height:1.3;letter-spacing:.04em;color:var(--gold-2);margin:0 0 .4rem;text-align:center}
.hero-search-row{display:flex;gap:.7rem}
.hero-search input{flex:1;font:inherit;font-size:1.05rem;padding:1rem 1.1rem;border-radius:12px;border:1px solid transparent;background:#fff;color:var(--text)}
.hero-search input:focus{outline:2px solid var(--gold);outline-offset:1px}
.hero-filters{display:flex;gap:.7rem;justify-content:flex-start;margin-top:.8rem;flex-wrap:wrap}
.hero-filters select{font:inherit;font-size:.92rem;padding:.55rem .8rem;border-radius:10px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff}
.hero-filters select option{color:var(--text)}
.trust{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 2rem;padding:0;margin:2.2rem 0 0;color:#cfc8b8;font-size:.92rem}
.trust strong{font-family:var(--serif);color:var(--gold-2);font-size:1.25rem;margin-right:.25rem}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font:inherit;font-weight:600;border-radius:999px;border:1px solid transparent;cursor:pointer;text-decoration:none;line-height:1.2;transition:background .15s,color .15s,border-color .15s,transform .15s}
.btn-sm{font-size:.84rem;padding:.5rem .9rem}
.btn-lg{font-size:1rem;padding:.9rem 1.5rem}
.btn-solid{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-solid:hover{background:var(--ink-3);color:#fff}
.btn-outline{background:transparent;color:var(--ink);border-color:#c9c1b0}
.btn-outline:hover{border-color:var(--gold);color:var(--gold-deep)}
.btn-gold{background:linear-gradient(180deg,#d8b873,#c09a50);color:#1b1407;border-color:#b8934a}
.btn-gold:hover{background:linear-gradient(180deg,#e2c68a,#c9a45c);color:#1b1407;transform:translateY(-1px)}
.btn-text{background:none;color:var(--ink-3);padding-left:.3rem;padding-right:.3rem}
.btn-text:hover{color:var(--gold-deep)}
.btn-ghost-light{background:transparent;color:#e9e4da;border-color:rgba(255,255,255,.3)}
.btn-ghost-light:hover{border-color:var(--gold);color:var(--gold-2)}

/* Puces */
.chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:0 0 2rem}
.page .chips{justify-content:flex-start}
.chip{font:inherit;font-size:.86rem;border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:.42rem 1rem;cursor:pointer;color:var(--text);text-decoration:none}
.chip:hover{border-color:var(--gold);color:var(--gold-deep)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}

/* Tuiles de ville */
.city-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.4rem}
.city-tiles--compact{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.city-tile{position:relative;display:block;border-radius:var(--r);overflow:hidden;background:var(--ink);color:#fff;text-decoration:none;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;aspect-ratio:4/5}
.city-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);color:#fff}
.city-tile[hidden]{display:none}
.tile-photo,.tile-photo img{position:absolute;inset:0;width:100%;height:100%}
.tile-photo img{object-fit:cover;object-position:center 18%;transition:transform .5s}
.city-tile:hover .tile-photo img{transform:scale(1.04)}
.tile-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:22%;gap:.5rem;background:repeating-linear-gradient(135deg,rgba(201,164,92,.08) 0 1px,transparent 1px 16px),linear-gradient(160deg,var(--ink),var(--ink-3));color:var(--gold-2);font-family:var(--serif);font-size:1.15rem}
.tile-empty .ico{font-size:2rem}
.tile-body{position:absolute;left:0;right:0;bottom:0;padding:3.5rem 1.1rem 1.1rem;background:linear-gradient(180deg,transparent,rgba(10,18,32,.72) 38%,rgba(10,18,32,.94))}
.tile-region{margin:0;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2)}
.tile-city{margin:.15rem 0 .35rem;color:#fff;font-size:1.55rem;line-height:1.12}
.tile-agent{margin:0;font-weight:600;font-size:.95rem}
.tile-agency{margin:0;font-size:.82rem;color:#d7d0c2}
.city-tile::after{content:"";position:absolute;inset:8px;border:1px solid rgba(201,164,92,0);border-radius:12px;transition:border-color .2s;pointer-events:none}
.city-tile:hover::after{border-color:rgba(201,164,92,.7)}

/* Cartes courtier */
.grid{display:grid;grid-template-columns:1fr;gap:1.4rem;align-items:start}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:visible;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr;align-items:start;height:auto;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.card-photo{position:relative;display:block;background:#ebe5d8;overflow:hidden}
 .card-photo{height:auto;align-self:start}
.card-photo img{width:100%;height:auto;min-height:0;aspect-ratio:auto;object-fit:contain;object-position:center center;transition:none}
.card:hover .card-photo img{transform:scale(1.03)}
.badge{position:absolute;top:.8rem;left:.8rem;display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;padding:.3rem .7rem;border-radius:999px;letter-spacing:.04em}
.badge--featured{background:var(--ink);color:var(--gold-2);border:1px solid var(--gold)}
.badge--example{background:var(--paper);color:var(--gold-deep);border:1px dashed var(--gold);text-transform:uppercase}
.badge--featured+.badge--example{top:2.8rem}
.card-body{padding:1.2rem 1.3rem 1.3rem;display:flex;flex-direction:column;gap:.25rem;flex:1}
.agency{margin:0 0 .35rem}
.agency-badge{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border:1px solid var(--gold);background:var(--gold-soft);padding:.28rem .65rem;border-radius:4px}
.agency-badge--pending{border-style:dashed;background:transparent;color:var(--muted)}
.card-name{margin:0;font-size:1.5rem;line-height:1.2}
.card-name a{color:var(--ink);text-decoration:none}
.card-name a:hover{color:var(--gold-deep)}
.card-title{margin:0;color:var(--gold-deep);font-weight:600;font-size:.9rem}
.card-loc{display:flex;align-items:center;gap:.35rem;margin:.25rem 0 0;color:var(--muted);font-size:.9rem}
.card-loc .ico{color:var(--gold)}
.card-bio{margin:.6rem 0 0;font-size:.94rem;color:#3a4150}
.ivl-criteria-note{position:relative;z-index:2;margin:.45rem 0 0;font-size:.78rem;line-height:1.45;color:var(--muted)}
.ivl-criteria-note a{color:var(--gold-deep);font-weight:650}
.ivl-criteria-note a.affichez-link{text-decoration:none}
.card-bio--pending{color:var(--muted);font-style:italic}
.card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto;padding-top:1.1rem}
.card--featured{border:1px solid var(--gold);box-shadow:0 0 0 3px rgba(201,164,92,.18),var(--shadow)}
.card--premium{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold),0 0 0 5px rgba(201,164,92,.15),var(--shadow-lg)}

.empty{text-align:center;background:#fff;border:1px dashed var(--line);border-radius:var(--r);padding:2.8rem 1rem}
.empty-title{font-family:var(--serif);font-size:1.5rem;margin:0 0 .3rem;color:var(--ink)}

/* CTA */
.cta{margin:3rem 0;background:var(--ink);color:#e9e4da;border-radius:var(--r);padding:2rem 2.2rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background:radial-gradient(500px 200px at 100% 0,rgba(201,164,92,.25),transparent 70%);pointer-events:none}
.cta>*{position:relative}
.cta h2{color:#fff;margin:0 0 .3rem;font-size:1.5rem}
.cta p{margin:0;color:#cfc8b8}
.cta .eyebrow{color:var(--gold-2)}
.cta--big{display:block;text-align:center;padding:3.5rem 2rem;border:1px solid var(--gold)}
.cta--big h2{font-size:clamp(1.6rem,3.2vw,2.4rem);margin-bottom:.8rem}
.cta--big p{max-width:620px;margin:0 auto 1.6rem}

/* Pages intérieures */
.page-hero{background:linear-gradient(160deg,#0e1a2b,#17294a);color:#e9e4da;padding:2.2rem 0 3rem;border-bottom:1px solid rgba(201,164,92,.4);position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(201,164,92,.05) 0 1px,transparent 1px 26px),radial-gradient(700px 300px at 90% 0,rgba(201,164,92,.2),transparent 70%);pointer-events:none}
.page-hero .container{position:relative}
.page-hero h1{color:#fff;font-size:clamp(2rem,4.2vw,3rem);margin:.2rem 0 .7rem;line-height:1.12}
.page-hero .lead{color:#d9d3c6}
.page-hero .eyebrow{color:var(--gold-2)}
.page-hero--city .city-h1{font-size:clamp(2.3rem,6vw,4.4rem);max-width:18ch}
.lead{font-size:1.1rem;max-width:760px;margin:0}
.page{padding:2.5rem 0 4rem}
.breadcrumbs ol{list-style:none;padding:0;margin:0 0 1.2rem;display:flex;flex-wrap:wrap;gap:.35rem;font-size:.85rem;color:#b9b2a3}
.breadcrumbs li+li::before{content:"›";margin-right:.35rem;color:var(--gold)}
.breadcrumbs a{color:#d9d3c6}
.page>.breadcrumbs ol{color:var(--muted)}
.page>.breadcrumbs a{color:var(--muted)}
.back-links{margin-top:2.5rem}

/* Bloc « meilleur courtier » */
.feature{display:grid;grid-template-columns:minmax(260px,440px) 1fr;gap:3rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:26px;padding:1.8rem;box-shadow:var(--shadow-lg);margin-top:-4.5rem;position:relative}
.feature--featured{border-color:var(--gold)}
.feature-photo{position:relative;border-radius:18px;overflow:hidden;display:block}
.feature-photo::after{content:"";position:absolute;inset:10px;border:1px solid rgba(201,164,92,.75);border-radius:12px;pointer-events:none}
.feature-photo img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;object-position:center center}
.feature-name{font-size:clamp(2rem,4vw,3rem);margin:0;line-height:1.1}
.feature-name a{color:var(--ink);text-decoration:none}
.feature-title{margin:.2rem 0 .8rem;color:var(--gold-deep);font-weight:600;font-size:1.05rem}
.feature-bio{font-size:1.08rem;color:#343b49;margin:1.1rem 0 1.6rem;max-width:62ch}
.feature-actions,.profile-actions,.contact-actions{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}
.nearby-champions ul{list-style:none;padding:0;margin:0}
.nearby-champions li{padding:.7rem 1rem;background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:.6rem}

/* Page courtier */
.profile{display:grid;grid-template-columns:minmax(260px,440px) 1fr;gap:3rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:26px;padding:1.8rem;box-shadow:var(--shadow-lg)}
.profile--featured{border-color:var(--gold)}
.profile-photo{position:relative;border-radius:18px;overflow:hidden;background:#ebe5d8}
.profile-photo::after{content:"";position:absolute;inset:10px;border:1px solid rgba(201,164,92,.75);border-radius:12px;pointer-events:none}
.profile-photo img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;object-position:center center}
.profile-name{font-size:clamp(2.2rem,4.5vw,3.3rem);margin:0;line-height:1.08}
.profile-title{margin:.25rem 0 .8rem;color:var(--gold-deep);font-weight:600;font-size:1.1rem}
.profile-bio{font-size:1.1rem;margin:1.1rem 0 1.6rem;color:#343b49;max-width:62ch}
.contact-box{margin-top:2rem;background:linear-gradient(160deg,var(--ink),var(--ink-2));color:#fff;border-radius:22px;padding:1.8rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;border:1px solid rgba(201,164,92,.5)}
.contact-box h2{color:#fff;margin:0;font-size:1.6rem}
.contact-box .btn-solid{background:var(--gold);border-color:var(--gold);color:#1b1407}
.contact-box .btn-outline{color:#fff;border-color:rgba(255,255,255,.45)}
.contact-box .btn-outline:hover{border-color:var(--gold);color:var(--gold-2)}

/* Répertoires */
.letters{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 2rem}
.letters a{display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:#fff;border:1px solid var(--line);text-decoration:none;font-family:var(--serif);font-weight:600;color:var(--ink)}
.letters a:hover{border-color:var(--gold);color:var(--gold-deep)}
.directory{columns:3 280px;column-gap:2.5rem}
.letter-group{break-inside:avoid;margin-bottom:1.8rem}
.letter-group h2{margin:0 0 .6rem;font-size:2rem;color:var(--gold-deep);border-bottom:1px solid var(--gold);padding-bottom:.2rem}
.letter-group ul{list-style:none;padding:0;margin:0}
.letter-group li{padding:.4rem 0;border-bottom:1px dashed var(--line)}
.letter-group li a{font-weight:600;color:var(--ink);text-decoration:none}
.letter-group li a:hover{color:var(--gold-deep)}
.dir-region{display:block;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.alt-name{font-style:italic;color:var(--muted)}
.region-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
.region-item{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.2rem 1.3rem;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.3rem}
.region-item--empty{background:transparent;border-style:dashed}
.region-name{font-family:var(--serif);font-weight:600;font-size:1.25rem;color:var(--ink);text-decoration:none}
a.region-name:hover{color:var(--gold-deep)}
.region-count{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep)}
.region-item--empty .region-count,.region-item--empty .region-name{color:var(--muted)}
.region-cities{flex-basis:100%;font-size:.92rem}

.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.1rem;margin:0 0 2rem}
.tier{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.4rem}
.tier h2{margin:0 0 .4rem;font-size:1.3rem}
.tier--featured{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,164,92,.18)}
.todo-note{font-style:italic}

/* Pied de page */
.site-footer{background:var(--ink);color:#cfc8b8;padding:3rem 0 2.2rem;text-align:center;font-size:.92rem;border-top:1px solid rgba(201,164,92,.4)}
.site-footer a{color:#efe9dd}
.site-footer a:hover{color:var(--gold-2)}
.footer-inner p{margin:.45rem 0}
.footer-brand .brand-name{font-size:1.6rem;color:#fff}
.footer-trust{color:var(--gold-2);letter-spacing:.04em}
.footer-note{opacity:.75;font-size:.8rem}

@media (max-width:860px){
  .feature,.profile{grid-template-columns:1fr;gap:1.4rem;padding:1.1rem}
  .feature{margin-top:-2.5rem}
}
@media (max-width:640px){
  .header-inner{flex-direction:column;align-items:flex-start;gap:.5rem}
  nav{gap:1rem;font-size:.9rem}
  .brand-tag{display:none}
  .hero{padding:3.2rem 0 3rem}
  .hero-search{padding:1rem;border-radius:18px}
  .hero-search-row{flex-direction:column}
  .hero-search .btn{width:100%}
  .section{padding:3rem 0}
  .city-tiles{grid-template-columns:repeat(2,1fr);gap:.8rem}
  .tile-city{font-size:1.15rem}
  .tile-body{padding:2.5rem .75rem .75rem}
  .tile-agency{display:none}
  .card{grid-template-columns:1fr}
  .card-photo img{min-height:0;height:auto;aspect-ratio:auto;object-fit:contain}
  .cta{padding:1.6rem}
  .contact-box{padding:1.4rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.btn-sms{white-space:normal;text-align:center;max-width:100%}
@media (max-width:520px){.btn-sms{flex:1 1 100%}}

/* Indice de visibilité locale — chiffre de preuve, pas un macaron */
.card-id{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem .75rem;flex-wrap:nowrap}
.card-id .card-name{flex:1;min-width:0}
.ivl{display:flex;align-items:baseline;gap:.4rem;margin:.1rem 0 .15rem;line-height:1;flex:none}
.ivl-score{font-family:var(--serif);font-weight:600;font-size:1.2rem;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.ivl-outof{font-family:var(--sans);font-size:.68rem;font-weight:600;color:var(--muted);letter-spacing:0;margin-left:.04rem}
.ivl-meta{display:flex;flex-direction:column;gap:.1rem}
.ivl-kicker{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep)}
.ivl-full{font-size:.62rem;font-weight:500;line-height:1.15;color:var(--muted);max-width:7.6rem}
.profile .ivl,.feature .ivl{margin:.35rem 0 .45rem}
.profile .ivl-score,.feature .ivl-score{font-size:1.45rem}
.profile .ivl-full,.feature .ivl-full{font-size:.7rem;max-width:none}
.ivl-blurb{margin:.85rem 0 0;padding-top:.7rem;border-top:1px solid var(--line);font-size:.78rem;line-height:1.45;color:var(--muted)}
.profile .ivl-blurb,.feature .ivl-blurb{font-size:.72rem;line-height:1.3;max-width:42ch;margin:.15rem 0 .4rem;padding-top:0;border-top:none;color:var(--muted)}
.secteur-ferme{margin:.75rem 0 0;font-size:.86rem;font-weight:600;color:var(--ink)}
.secteur-ferme-note{margin:.12rem 0 0;font-size:.8rem;line-height:1.4;color:var(--muted)}

.card{width:100%;max-width:none}
.card .ivl{flex:0 0 auto;align-self:flex-start}
.card .ivl,.feature .ivl,.profile .ivl{flex-direction:column;align-items:flex-end;text-align:right;gap:.15rem;width:max-content;max-width:11rem;margin:0;padding:.35rem .5rem .4rem;background:var(--gold-soft);border:1px solid var(--gold);border-radius:12px}
.card .ivl-score,.feature .ivl-score,.profile .ivl-score{font-size:1.65rem;font-weight:700;color:var(--gold-deep);line-height:.9}
.card .ivl-outof,.feature .ivl-outof,.profile .ivl-outof{font-size:.72rem;color:var(--gold-deep)}
.card .ivl-kicker,.feature .ivl-kicker,.profile .ivl-kicker{font-size:.68rem;letter-spacing:.14em}
.ivl .ivl-stars{font-size:.92rem;letter-spacing:.02rem}
.ivl-panel{margin:.2rem 0 1.2rem}
.ivl-inactive-label{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .65rem;margin:0 0 .7rem;padding:0;font-size:1.35rem;font-weight:650;line-height:1.3;letter-spacing:0;text-transform:none;color:var(--ink);position:relative;z-index:2;background:none;border:0;border-radius:0;box-shadow:none}
.ivl-lock{font-size:1.85rem;line-height:1}
.ivl-boost{font-weight:600;font-size:1.25rem;color:#1c1c1c;text-decoration:underline;text-underline-offset:.14rem}
.ivl-board{padding:1rem 1.05rem 1.1rem;border:1px solid #e4d3a8;border-radius:16px;background:#f6efe2}
.ivl-board.is-inactive{background:#f6efe2}
.ivl-comments-note{margin:.35rem 0 .15rem;text-align:center;font-size:.92rem;line-height:1.4;color:var(--muted)}
.ivl-grade-title{margin:0 0 .9rem;font-family:var(--serif);font-size:1.42rem;font-weight:600;letter-spacing:-.02em;line-height:1.25;color:var(--ink)}.ivl-grade-title span{color:var(--gold-deep);font-weight:700}
.ivl-grade{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ivl-grade li{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:.35rem .75rem;padding:.7rem .45rem;border-top:1px solid #e4d3a8}
.ivl-grade-label{flex:1 1 12rem;min-width:0;font-size:.95rem;line-height:1.3}
.ivl-grade-value{flex:none;font-weight:700;font-size:.95rem;line-height:1.3;color:var(--ink)}
.ivl-stars{flex:none;letter-spacing:.04rem;font-size:1.05rem;line-height:1;color:#d7d0c4;white-space:nowrap}
.ivl-star.is-on{color:var(--gold)}
.ivl-grade-note{margin:.75rem 0 0;font-size:.8rem;color:var(--muted)}
.ivl-stars-note{display:block;width:100%;clear:both;position:relative;margin:1rem 0 0;font-size:.95rem;line-height:1.55;color:var(--ink)}
.ivl-activate{display:flex;justify-content:flex-start;width:100%;margin:.85rem 0 0;text-align:left}
.ivl-activate .btn{position:relative;z-index:1}
.nous-contacter{flex:1 1 100%;display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1rem;margin-top:.4rem}
.nous-contacter h2,.nous-contacter p,.nous-contacter .form-sub,.nous-contacter .form-note,.nous-contacter button{grid-column:1 / -1}
.nous-contacter h2{margin:0}
.nous-contacter label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}
.nous-contacter input,.nous-contacter textarea{font:inherit;padding:.55rem .7rem;border-radius:10px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff}
.nous-contacter .form-sub{margin:.4rem 0 0;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-2)}
@media (max-width:700px){.nous-contacter{grid-template-columns:1fr}}

.ivl-profile-link{display:inline-block;margin-top:.28rem;font-size:.78rem;font-weight:700;letter-spacing:.01em;text-transform:none;color:var(--gold-deep);text-decoration:underline;text-underline-offset:.15rem}
.card .ivl-profile-link,.feature .ivl-profile-link{color:var(--gold-deep)}
.ivl-profile-link:hover{color:var(--ink)}

.card,.feature{position:relative}
.card-hit{position:absolute;inset:0;z-index:1}
.card-actions,.feature-actions,.ivl-more,.ivl-activate,.nous-contacter,.ivl-grade--card,.ivl-activity{position:relative;z-index:2}
.ivl-more{margin:.4rem 0 0;font-size:.92rem;font-weight:700}
.ivl-more a{color:var(--gold-deep);text-decoration:underline;text-underline-offset:.15rem}

.ivl-grade li.is-shaded{opacity:.62;background:#f3ead6;border-radius:0;border-top-color:transparent;box-shadow:none}
.ivl-grade li.is-shaded + li.is-shaded{border-top:0}
.ivl-grade li:nth-child(3).is-shaded{margin-top:.45rem;border-top-left-radius:14px;border-top-right-radius:14px;box-shadow:none}
.ivl-grade li:nth-child(10).is-shaded{border-bottom-left-radius:14px;border-bottom-right-radius:14px;box-shadow:none}

.ivl-grade li.is-live{opacity:1}
.ivl-activity{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:.15rem}
.ivl-grade--card{width:100%;margin:.65rem 0 .15rem}
.ivl-grade--card li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-top:1px solid var(--line);padding:.42rem 0;font-size:.95rem}

/* Badge IVL compact, à côté du nom. Le clic passe à la carte. */
.card .ivl{align-self:center;gap:.03rem;max-width:7.47rem;padding:.21rem .37rem .24rem;border-radius:11px;background:#fbf6ea;border-color:#e4d3a8;box-shadow:none;pointer-events:none}
.card-photo .ivl{position:absolute;left:.65rem;right:auto;top:auto;bottom:.65rem;z-index:5;flex-direction:column;align-items:flex-start;text-align:left;width:max-content;max-width:calc(100% - 1.3rem);margin:0;padding:.55rem .72rem .62rem;border-radius:16px;gap:.08rem;background:rgba(255,253,249,.94);border:1px solid rgba(196,164,92,.55);box-shadow:0 8px 18px rgba(20,17,12,.16);color:var(--ink)}
.card .ivl-score{font-size:1.31rem;font-weight:600;line-height:1}
.card .ivl-outof{font-size:.69rem;font-weight:600}
.card .ivl-kicker{font-size:.67rem;letter-spacing:.08em;font-weight:600}
.card .ivl .ivl-stars{font-size:.61rem;letter-spacing:-.05rem}

/* Page courtier : photo plein écran. Le badge reste à sa taille, posé sur la photo. */
.agent-page{width:100%}
.agent-page>.container{padding-top:1rem;padding-bottom:.6rem}
.agent-page .profile{width:100%;min-height:0;grid-template-columns:1fr;grid-auto-flow:row;gap:0;align-items:start;align-content:start;justify-items:stretch;border:none;border-radius:0;padding:0;box-shadow:none;background:#fff}
.agent-page .profile-photo{position:relative;border-radius:0;min-height:0;background:#fff}
.agent-page .profile-photo::after{display:none}
.agent-page .profile-photo img{width:100%;height:auto;min-height:0;aspect-ratio:auto;object-fit:contain;object-position:center center}
.agent-page .photo-overlay{position:absolute;left:1.25rem;bottom:1.25rem;z-index:2;max-width:24rem}
.agent-page .photo-overlay .ivl-link{position:static;max-width:24rem;text-decoration:none;color:inherit}
.agent-page .photo-overview{margin:0;padding:.8rem .95rem;border-radius:14px;background:rgba(255,253,249,.94);color:var(--ink);font-size:1rem;line-height:1.45}
.agent-page .ivl-link:hover .ivl{border-color:var(--ink)}
.agent-page .profile .ivl{align-items:flex-start;text-align:left;max-width:24rem;width:max-content;margin:0;padding:.73rem .93rem .83rem;border-radius:19px;gap:.16rem;background:rgba(255,253,249,.94)}
.agent-page .profile .ivl-score{font-size:2.2rem}
.agent-page .profile .ivl-outof{font-size:.96rem}
.agent-page .profile .ivl-kicker{font-size:.91rem}
.agent-page .profile .ivl .ivl-stars{font-size:1.23rem}
.agent-page .profile .ivl-meaning{display:block;max-width:21rem;margin-top:.27rem;font-size:1.04rem;font-weight:650;line-height:1.25;letter-spacing:0;text-transform:none;color:var(--ink)}
.agent-page .profile-info{padding:clamp(1.6rem,3vh,2.6rem) clamp(1.4rem,3vw,2.8rem);display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;align-self:start;height:auto;text-align:left}
.agent-page .profile-name{margin:0 0 .35rem}
.agent-page .profile-title{margin:.15rem 0 .35rem;font-size:1.05rem;font-weight:650}
.agent-page .profile-bio{margin:.7rem 0 .4rem;font-size:1rem;line-height:1.5;max-width:42rem}
.agent-page .container.page{padding-top:3rem;padding-bottom:4rem}
@media (max-width:860px){
  .agent-page .profile{grid-template-columns:1fr;min-height:0;gap:0;padding:0}
  .agent-page .profile-photo,.agent-page .profile-photo img{min-height:0;height:auto}
  .agent-page .profile-info{padding:2.4rem 1.35rem 2.8rem}
}

.ivl-broker{margin-top:1.35rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.ivl-host{margin-top:.9rem}
.ivl-host p{margin:.15rem 0;font-size:.95rem}
.ivl-broker{display:flex;flex-wrap:wrap;gap:.5rem}
.card-photo .ivl-kicker,.card-photo .ivl-stars,.card-photo .ivl-meaning{display:block}
.card-photo .ivl-score{color:var(--gold-deep);font-size:1.65rem;font-weight:700;line-height:.9}
.card-photo .ivl-outof{color:var(--gold-deep);font-size:.78rem;font-weight:700}
.card-photo .ivl-kicker{font-size:.72rem;letter-spacing:.12em;color:var(--gold-deep);margin-top:.12rem}
.card-photo .ivl .ivl-stars{font-size:.95rem;letter-spacing:.04rem;margin-top:.15rem}
.card-photo .ivl-meaning{max-width:16rem;margin-top:.2rem;font-size:.78rem;font-weight:650;line-height:1.2;letter-spacing:0;text-transform:none;color:var(--ink)}
.grid .card{grid-template-columns:1fr;align-items:start;height:auto;overflow:visible}
.grid .card-photo{height:auto;align-self:start;overflow:visible;background:#fff}
.grid .card-photo img{width:100%;height:auto;max-height:none;min-height:0;aspect-ratio:auto;object-fit:contain;object-position:center center}
.grid .card:hover .card-photo img{transform:none}
@media (min-width:980px){.grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1.5rem}}

.grid .card-actions{justify-content:flex-start;align-items:center;gap:.4rem .45rem;padding-top:.75rem}
.grid .card-actions .btn{flex:0 1 auto}
.grid .card-actions .btn-sm{padding:.42rem .8rem;font-size:.84rem}
.grid .card-actions .btn-sms{flex:0 1 auto;max-width:100%;color:#14110c;border-color:#e4d3a8;background:#fffdf9}
.grid .card-actions .btn-sms:hover{color:#14110c;border-color:#14110c}

.card-territory{display:inline-block;max-width:100%;margin:.2rem 0 .15rem;padding:.16rem .48rem;font-size:.8rem;font-weight:800;letter-spacing:.04em;line-height:1.05;text-transform:uppercase;color:#fff;background:#14110c;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:top}
@media (max-width:760px){
  .grid{gap:.5rem}
    .grid .card-body{padding:.55rem .6rem .6rem;gap:.12rem}
  .grid .card-name{font-size:1.02rem}
  .grid .card-territory{font-size:.72rem;letter-spacing:.03em;margin:.08rem 0;padding:.12rem .38rem}
  .grid .card-title,.grid .card-loc{font-size:.78rem;margin:.1rem 0 0}
  .grid .card-bio{margin:.28rem 0 0;font-size:.8rem;line-height:1.35}
  .grid .ivl-criteria-note{margin:.22rem 0 0;font-size:.68rem;line-height:1.3}
  .grid .card-actions{padding-top:.45rem;gap:.35rem .4rem}
  .grid .card-actions .btn-sm{padding:.38rem .7rem;font-size:.8rem}
  .grid .secteur-ferme{margin:.28rem 0 0;font-size:.75rem}
  .grid .secteur-ferme-note{font-size:.7rem}
}

.profile-contacts{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;margin:.85rem 0 .2rem;width:100%}
.profile-contact-row{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.35rem .4rem;width:100%}
.profile-contacts .btn-solid,.profile-contacts .btn-solid:hover{background:#f3f0ea;color:#14110c;border-color:#d7d0c4}
.profile-contacts .btn-sms,.profile-contacts .btn-sms:hover{color:#14110c;border-color:#d7d0c4}
.profile-contacts .ivl-activate{margin:.1rem 0 0}
.card-actions .ivl-activate{flex:1 1 100%;display:flex;justify-content:flex-start;margin:.35rem 0 0}

.ivl.ivl--score{position:absolute;top:auto;bottom:.4rem;right:.4rem;left:auto;z-index:8;display:flex;flex-direction:row;align-items:baseline;width:auto;max-width:none;margin:0;padding:.34rem .62rem .36rem;border:1px solid rgba(122,90,30,.4);border-radius:8px;background:rgba(255,253,249,.96);color:#7a5a1e;box-shadow:0 2px 8px rgba(20,17,12,.18);pointer-events:none}
.ivl.ivl--score .ivl-score{color:#7a5a1e;font-size:1.25rem;font-weight:800;line-height:1}
.ivl.ivl--score .ivl-outof{color:#f3e2b8;font-size:.68rem;font-weight:700}
.tile-photo .ivl--score{z-index:6}
.ivl-activate .btn,.card-actions .ivl-activate .btn{padding:.75rem 1.6rem;font-size:1.05rem;line-height:1.2;min-width:11.5rem}

.tile-photo .ivl.ivl--score{top:auto;bottom:.28rem;right:.28rem;left:auto;width:auto;height:auto;min-width:2.8rem;padding:.28rem .48rem .3rem;border-radius:8px;display:flex;align-items:center;justify-content:center;background:rgba(255,253,249,.96);color:#7a5a1e;border:1px solid rgba(122,90,30,.45);box-shadow:0 2px 8px rgba(20,17,12,.2)}
.tile-photo .ivl.ivl--score .ivl-score{font-size:1.05rem;font-weight:800;letter-spacing:0;color:#7a5a1e;line-height:1}

.card-photo .ivl.ivl--score{position:absolute;top:auto;bottom:.42rem;right:.42rem;left:auto;z-index:4;width:auto;height:auto;min-width:2.7rem;margin:0;padding:.28rem .58rem .3rem;border-radius:4px;display:flex;align-items:center;justify-content:center;background:#fff;color:#7a5a1e;border:1px solid rgba(122,90,30,.38);box-shadow:0 2px 6px rgba(20,17,12,.14)}
.card-photo .ivl.ivl--score .ivl-score{font-size:.98rem;font-weight:700;letter-spacing:.03em;color:#7a5a1e;line-height:1}
.card-photo .ivl.ivl--score.is-cap{min-width:3.15rem;padding:.32rem .64rem .34rem}
.card-photo .ivl.ivl--score.is-cap .ivl-score{font-size:1.08rem;letter-spacing:.02em}

.ivl-grade--card .ivl-grade-label{font-size:.95rem;font-weight:650;line-height:1.3;color:var(--ink)}
.ivl-grade--card .ivl-stars{font-size:.95rem;letter-spacing:.08rem}
.card-body{text-align:left}
.card-name{font-size:1.35rem}
.card-bio{margin:.35rem 0 0}

.grid .card-photo .ivl.ivl--score{position:absolute;top:auto;bottom:.4rem;right:.4rem;left:auto;z-index:6;width:auto;height:auto;min-width:3.2rem;margin:0;padding:.34rem .66rem .36rem;border-radius:4px;background:#fff;color:#7a5a1e;border:1px solid rgba(122,90,30,.5);box-shadow:0 2px 8px rgba(20,17,12,.16)}
.grid .card-photo .ivl.ivl--score .ivl-score{color:#7a5a1e;font-size:1.35rem;font-weight:800;letter-spacing:.02em;line-height:1}
.ivl-board{padding:1.2rem 1.3rem 1.35rem}
.ivl-grade-label{font-size:1.15rem}
.ivl-stars{font-size:1.35rem;letter-spacing:.12rem}
.ivl-grade li{padding:.72rem 0}
.ivl-grade--card .ivl-grade-label{font-size:1.12rem}
.ivl-grade--card .ivl-kicker{font-size:1.2rem;letter-spacing:.14em;color:#7a5a1e;margin-right:.35rem}
.ivl-grade--card .ivl-stars{font-size:1.4rem;letter-spacing:.14rem}
.agent-page .grid .card-name{font-size:1.55rem}
.agent-page .grid .card-title,.agent-page .grid .card-bio,.agent-page .grid .card-loc,.agent-page .grid .ivl-criteria-note{font-size:1.05rem;line-height:1.45}
.agent-page .container.page .grid{gap:1.4rem}

/* Test, Isabelle Naud only: one tight line */
.city-line{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin:.15rem 0 .45rem;padding:.22rem .7rem;font-family:var(--sans);font-size:.95rem;font-weight:500;letter-spacing:0;line-height:1.15;text-transform:none;white-space:nowrap;color:#14110c;background:#fbf6ea;border:1px solid #e4d3a8;border-radius:999px}
.page-hero .city-line{margin:.35rem 0 0;color:#14110c}

/* Boutons de contact, cartes moyennes */
.card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .45rem}
.card-actions .btn{border-radius:999px;min-height:2.15rem;padding:.42rem .8rem;font-weight:600;box-shadow:none}
.card-actions .btn-solid{background:#14110c;color:#fbf6ea;border-color:#14110c}
.card-actions .btn-solid:hover{background:#2a241c;color:#fff}
.card-actions .btn-outline{background:#fffdf9;border-color:#e4d3a8;color:#14110c}
.card-actions .btn-outline:hover{border-color:#14110c;color:#14110c}
.profile-info .card-actions{margin:.35rem 0 .2rem}

.ivl-grade-short{display:flex;flex-direction:row;align-items:center;justify-content:center;flex-wrap:nowrap;gap:.45rem;width:100%;font-size:clamp(1.05rem,5vw,1.32rem);font-weight:750;line-height:1.15;color:var(--ink);white-space:nowrap}
.ivl-grade-glance{white-space:nowrap}
.ivl-grade-num{display:inline;width:auto;height:auto;margin:0;padding:0;border:0;border-radius:0;background:none;color:#222;font-weight:500;font-size:.95rem;font-variant-numeric:tabular-nums;vertical-align:baseline;flex:none}
.ivl-grade-line{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:.15rem .55rem;min-width:0}
.ivl-grade-row{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;gap:.12rem;text-align:center}
.ivl-grade-label{flex:none;width:100%;min-width:0;text-align:center}
.ivl-grade-detail{display:block;width:100%;margin:.02rem 0 0;font-size:.62rem;font-weight:400;line-height:1.25;color:var(--muted);text-align:center}
.ivl-grade-value{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.15rem .7rem;width:100%;flex:none;position:static}
.ivl-grade li{flex-direction:column;align-items:center;gap:.08rem;padding:.16rem 0}
.ivl-grade li .ivl-stars{margin:.04rem 0 0;font-size:1.35rem;letter-spacing:.12rem;line-height:1;align-self:center}
.ivl-grade-value .ivl-nd{position:static;z-index:auto;margin:0;font-weight:700;color:var(--ink);text-decoration:underline;text-underline-offset:.12rem;white-space:nowrap}
.ivl-grade-detail strong{font-weight:650;color:#5c5144}

.ivl-lock-score{font-size:2rem;font-weight:750;letter-spacing:.03em;color:#7a5a1e}

/* Board: left aligned, ND under the stars, light 10% shade on rows 3-10. */
.ivl-board .ivl-grade-row{display:flex;flex-direction:column;align-items:flex-start;width:100%}
.ivl-board .ivl-grade-short{justify-content:flex-start;width:auto}
.ivl-board .ivl-grade-line{justify-content:flex-start}
.ivl-board .ivl-grade-label{order:1;width:100%;text-align:left}
.ivl-board .ivl-grade-detail{text-align:left}
.ivl-board .ivl-grade li{align-items:flex-start;text-align:left}
.ivl-board .ivl-grade li .ivl-stars{order:2;align-self:flex-start}
.ivl-board .ivl-grade-value{order:3;justify-content:flex-start;width:100%;margin-top:.08rem;font-size:.72rem}
.ivl-board .ivl-grade-value .ivl-nd{font-size:.72rem;font-weight:650}
/* Criteria 3 to 10 are one faded block. */

.ivl-board .ivl-grade li.is-shaded{opacity:.62;background:#f3ead6;border:0;box-shadow:none;border-radius:0;margin:0}
.ivl-board .ivl-grade li.is-shaded + li.is-shaded{border-top:0;margin-top:0}
.ivl-board .ivl-grade li:nth-child(3).is-shaded{margin-top:.4rem;border-top-left-radius:12px;border-top-right-radius:12px}
.ivl-board .ivl-grade li:nth-child(10).is-shaded{border-bottom-left-radius:12px;border-bottom-right-radius:12px}

/* Board reads as a statistic, not a promotion. */
.ivl-board{background:#fafafa;border:1px solid #e3e3e3;border-radius:8px}
.ivl-board.is-inactive{background:#fafafa}
.ivl-inactive-label{font-size:.95rem;font-weight:500;color:#3a3a3a}
.ivl-lock{width:.95rem;height:.95rem;flex:none;color:#444;fill:none;stroke:currentColor;stroke-width:1.75}
.ivl-boost{font-weight:600;font-size:1.25rem;color:#1c1c1c}
.ivl-board .ivl-grade-title{font-family:inherit;font-size:1.02rem;font-weight:600;letter-spacing:0;color:#222}
.ivl-board .ivl-grade-title span{color:#222;font-weight:600}
.ivl-board .ivl-grade-short{font-size:1rem;font-weight:600;color:#222}
.ivl-board .ivl-grade-num{width:1.1rem;height:auto;border-radius:0;background:transparent;color:#222;font-size:1rem;font-weight:600}
.ivl-board .ivl-grade li{border-top-color:#ececec}
.ivl-board .ivl-grade li .ivl-stars{font-size:.95rem;letter-spacing:.02rem;color:#c8c8c8}
.ivl-board .ivl-star.is-on{color:#5c5c5c}
.ivl-board .ivl-grade-value .ivl-nd{font-weight:500;color:#444;text-decoration:none}
.ivl-board .ivl-grade li.is-shaded{background:#f0f0f0}

.ivl-board .ivl-grade-num{display:inline;width:auto;height:auto;min-width:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:#1c1c1c;font-weight:500}
.ivl-board .ivl-grade-num::after{content:"."}
.ivl-board{font-variant-numeric:tabular-nums}

/* IVL figure before the criteria: left, twice the previous size. */
.ivl-grade--card{text-align:left}
.ivl-grade--card li{flex-direction:row;align-items:baseline;justify-content:flex-start;text-align:left;width:100%}
.ivl-grade--card .ivl-grade-label{flex:none;width:auto;text-align:left;font-size:2.24rem;font-weight:600;font-variant-numeric:tabular-nums;line-height:1;color:#1c1c1c}
.ivl-grade--card .ivl-kicker{font-size:2.4rem;font-weight:600;letter-spacing:0;color:#1c1c1c;margin-right:.4rem}

/* Board and faded rows: brown and beige. The word IVL stays smaller than the figure. */
.ivl-board{background:#f6efe2;border:1px solid #e4d3a8}
.ivl-board.is-inactive{background:#f6efe2}
.ivl-board .ivl-grade-title{color:#3a2e1c}
.ivl-board .ivl-grade-title span{color:#7a5a1e}
.ivl-board .ivl-grade-short{color:#3a2e1c}
.ivl-board .ivl-grade-num{color:#7a5a1e}
.ivl-board .ivl-grade li{border-top-color:#e4d3a8}
.ivl-board .ivl-grade li .ivl-stars{color:#e4d3a8}
.ivl-board .ivl-star.is-on{color:#7a5a1e}
.ivl-board .ivl-grade li.is-shaded{background:#efe2c8;opacity:.72}
.ivl-grade--card .ivl-kicker{font-size:.95rem;font-weight:600;letter-spacing:.08em;color:#7a5a1e}
.ivl-grade--card .ivl-grade-label{font-size:2.24rem;color:#3a2e1c}

/* Spacing polish only. Sizes and the brown-beige colors stay. */
.ivl-board{padding:1.05rem 1.15rem 1.2rem;border-radius:12px}
.ivl-board .ivl-grade-title{margin:0 0 .55rem;line-height:1.3}
.ivl-inactive-label{align-items:center;gap:.35rem .5rem;margin:0 0 .5rem;color:#3a2e1c}
.ivl-lock{color:#7a5a1e}
.ivl-board .ivl-grade li{padding:.2rem 0;gap:.1rem}
.ivl-board .ivl-grade-detail{margin-top:.06rem;color:#6d5c45}
.ivl-board .ivl-grade li .ivl-stars{margin-top:.12rem}
.ivl-board .ivl-grade-value{margin-top:.04rem;gap:.1rem .55rem}
.ivl-board .ivl-grade li.is-shaded{padding:.18rem .65rem}
.ivl-board .ivl-grade li:nth-child(3).is-shaded{margin-top:.35rem;padding-top:.4rem;border-top-left-radius:10px;border-top-right-radius:10px}
.ivl-board .ivl-grade li:nth-child(10).is-shaded{padding-bottom:.45rem;border-bottom-left-radius:10px;border-bottom-right-radius:10px}
.ivl-grade--card{margin:.15rem 0 .25rem}

/* Title, criteria heading, and stars in beige. */
.ivl-board .ivl-grade-title{color:#c4b08a}
.ivl-board .ivl-grade-title span{color:#c4b08a}
.ivl-board .ivl-grade-short{color:#c4b08a}
.ivl-board .ivl-grade li .ivl-stars{color:#e6d7bc}
.ivl-board .ivl-star.is-on{color:#c4b08a}

/* Revert beige type. Title, heading, and stars go back. Underlined link a bit smaller. */
.ivl-board .ivl-grade-title{color:#3a2e1c}
.ivl-board .ivl-grade-title span{color:#7a5a1e}
.ivl-board .ivl-grade-short{color:#3a2e1c}
.ivl-board .ivl-grade li .ivl-stars{color:#e4d3a8}
.ivl-board .ivl-star.is-on{color:#7a5a1e}
.ivl-boost{font-size:1rem}

/* Swap: the section line takes the link's old size, the link takes the section's. */
.ivl-inactive-label{font-size:1.25rem}
.ivl-boost{font-size:.95rem}

/* Statistical blue board. Stars stay beige. Title and heading keep their previous colors. */
.ivl-board{background:#e7f0f8;border:1px solid #b7cbe0}
.ivl-board.is-inactive{background:#e7f0f8}
.ivl-inactive-label{color:#1d4e79}
.ivl-lock{color:#1d4e79}
.ivl-boost{color:#1d4e79}
.ivl-board .ivl-grade-num{color:#1d4e79}
.ivl-board .ivl-grade-detail{color:#3d6284}
.ivl-board .ivl-grade-value .ivl-nd{color:#1d4e79}
.ivl-board .ivl-grade li{border-top-color:#d3e2f0}
.ivl-board .ivl-grade li.is-shaded{background:#d5e4f2}
.ivl-board .ivl-grade li .ivl-stars{color:#d5e0ea}
.ivl-board .ivl-star.is-on{color:#c4b08a}
.ivl-board .ivl-grade-title{color:#3a2e1c}
.ivl-board .ivl-grade-title span{color:#7a5a1e}
.ivl-board .ivl-grade-short{color:#3a2e1c}

/* Size note: section line larger, boost is a small side note. */
.ivl-inactive-label{font-size:1.7rem;line-height:1.2}
.ivl-boost{font-size:.68rem;font-weight:500;text-underline-offset:.08rem}

/* Medium card names doubled (Josiane Côté size). */
.card-name{font-size:2.7rem;line-height:1.12}
.agent-page .grid .card-name{font-size:3.1rem;line-height:1.12}
@media (max-width:760px){
  .grid .card-name{font-size:2.04rem;line-height:1.15}
}

/* Sourced Centris row, Annabelle test only. Space before it, not in the faded block. */
.ivl-board .ivl-grade li.is-sourced{margin-top:1.6rem;padding-top:1.05rem;background:transparent;opacity:1;border-top:1px solid #b7cbe0}
/* Smaller section line, lock inline at the start of that line. */
.ivl-inactive-label{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .75rem;font-size:1rem;font-weight:500;line-height:1.2}
.ivl-lock-unit{display:inline-flex;align-items:center;gap:.32rem;line-height:1}
.ivl-lock{width:.9em;height:.9em;flex:none;display:block;position:static;transform:none}
.ivl-board .ivl-grade li.is-filled{opacity:1;background:transparent}
.ivl-board .ivl-grade li.is-filled .ivl-grade-short{width:100%;justify-content:flex-start}
.ivl-board .ivl-grade li.is-filled .ivl-sourced{margin-left:1.35rem;font-weight:650;color:#1d4e79;font-variant-numeric:tabular-nums}
.ivl-board .ivl-grade li.is-filled .ivl-grade-value{display:none}

/* Clickable réseau rating. The number sits at the end of the line. */
.ivl-board .ivl-grade li.is-filled .ivl-sourced-tip{margin-left:auto;display:inline-flex;flex-direction:column;align-items:flex-end}
.ivl-sourced-tip summary{cursor:pointer;list-style:none}
.ivl-sourced-tip summary::-webkit-details-marker{display:none}
.ivl-board .ivl-grade li.is-filled .ivl-sourced-tip .ivl-sourced{margin-left:0}
.ivl-sourced-where{display:block;margin-top:.28rem;max-width:18rem;font-size:.72rem;font-weight:500;line-height:1.35;color:#3d6284;text-align:right}

/* Official badge for the section line. Size stays 1rem. */
.ivl-lock-unit{display:inline-flex;align-items:center;gap:.38rem;margin:0;padding:.22rem .62rem .24rem;border:1px solid #1d4e79;border-radius:3px;background:#d5e6f5;color:#1d4e79;font-weight:650;letter-spacing:.02em;line-height:1.15;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}
.ivl-lock-unit .ivl-lock{width:.85em;height:.85em}

/* Réseau actif rating sits in a square field. */
.ivl-board .ivl-sourced-tip summary.ivl-sourced{display:inline-flex;align-items:center;justify-content:center;min-width:1.65rem;height:1.65rem;padding:0;border:1px solid #1d4e79;border-radius:2px;background:#f7fbfe;box-sizing:border-box;font-variant-numeric:tabular-nums}

/* Avis count is its own square field so it cannot sit clipped at the end of the line. */
.ivl-board .ivl-grade li.is-filled .ivl-count{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:1.7rem;height:1.7rem;margin-left:.75rem;padding:0 .2rem;border:1px solid #1d4e79;border-radius:2px;background:#f7fbfe;color:#1d4e79;font-weight:650;line-height:1}

/* IVL leads the page. Sourced numbers sit in matching squares at the end of the line. */
.ivl-board .ivl-grade li.is-filled .ivl-grade-short{display:flex;width:100%;justify-content:flex-start;align-items:center}
.ivl-board .ivl-grade li.is-filled .ivl-sourced,
.ivl-board .ivl-grade li.is-filled .ivl-sourced-tip{margin-left:auto;flex:none}
.ivl-board .ivl-grade li.is-filled .ivl-sourced-tip .ivl-sourced{margin-left:0}
.ivl-board .ivl-grade li.is-filled .ivl-sourced,
.ivl-board .ivl-count{display:inline-flex;align-items:center;justify-content:center;min-width:2.15rem;height:1.7rem;padding:0 .15rem;border:1px solid #1d4e79;border-radius:2px;background:#f7fbfe;color:#1d4e79;font-weight:650;line-height:1;box-sizing:border-box}

/* Accounting line: IVL, the score, and the score square, one brown line. */
.ivl-ledger{display:flex;align-items:center;gap:.7rem;margin:0 0 .65rem;color:#7a5a1e;font-size:1.35rem;font-weight:650;line-height:1;font-variant-numeric:tabular-nums}
.ivl-ledger-kicker,.ivl-ledger-score{color:#7a5a1e;font-size:1.35rem;font-weight:650;line-height:1}
.ivl-ledger .ivl-count{margin-left:auto;color:#7a5a1e;border-color:#7a5a1e;background:#fbf7f0;font-size:1.35rem;font-weight:650;min-width:3.4rem;height:1.9rem}

/* Every board number uses the same square as the 17 and the 4. The brown IVL line is unchanged. */
.ivl-board .ivl-grade .ivl-grade-num{display:inline-flex;align-items:center;justify-content:center;min-width:1.7rem;height:1.7rem;margin:0 .4rem 0 0;padding:0 .2rem;border:1px solid #1d4e79;border-radius:2px;background:#f7fbfe;color:#1d4e79;font-size:.95rem;font-weight:650;line-height:1;box-sizing:border-box;box-shadow:none}
.ivl-board .ivl-grade .ivl-grade-num::after{content:none}
.ivl-board .ivl-grade li.is-filled .ivl-count,
.ivl-board .ivl-sourced-tip summary.ivl-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.7rem;height:1.7rem;margin-left:auto;padding:0 .2rem;border:1px solid #1d4e79;border-radius:2px;background:#f7fbfe;color:#1d4e79;font-weight:650;line-height:1;box-sizing:border-box;font-variant-numeric:tabular-nums}
.ivl-ledger .ivl-count{margin-left:auto;color:#7a5a1e;border-color:#7a5a1e;background:#fbf7f0;font-size:1.35rem;font-weight:650;min-width:3.4rem;height:1.9rem}

/* Sourced report. Count squares sit immediately after the title. Criterion numbers stay plain. */
.ivl-board{background:#f7fafc;border:1px solid #c5d4e4;border-radius:2px;padding:.9rem 1rem 1rem}
.ivl-board.is-inactive{background:#f7fafc}
.ivl-board .ivl-grade-title{margin:0 0 .15rem;padding:0 0 .4rem;border-bottom:1px solid #c5d4e4;font-size:.98rem;font-weight:650;letter-spacing:.01em;line-height:1.3}
.ivl-board .ivl-grade{margin:0}
.ivl-board .ivl-grade li{width:100%;align-items:flex-start;gap:.06rem;margin:0;padding:.42rem 0;border-top:1px solid #d7e3ee;border-radius:0;background:transparent;opacity:1}
.ivl-board .ivl-grade li.is-shaded,
.ivl-board .ivl-grade li:nth-child(3).is-shaded,
.ivl-board .ivl-grade li:nth-child(10).is-shaded{margin:0;padding:.42rem 0;border-radius:0;background:transparent;opacity:1}
.ivl-board .ivl-grade li .ivl-grade-num{display:inline-block;width:1.25rem;min-width:1.25rem;height:auto;margin:0 .45rem 0 0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:#1d4e79;font-size:.92rem;font-weight:650;line-height:1.7rem;text-align:right;vertical-align:baseline}
.ivl-board .ivl-grade li .ivl-grade-num::after{content:"."}
.ivl-board .ivl-grade-short,
.ivl-board .ivl-grade li.is-filled .ivl-grade-short{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:0;width:auto;max-width:100%;font-size:.98rem;font-weight:600;line-height:1.2;white-space:nowrap}
.ivl-board .ivl-grade-glance{font-weight:600}
.ivl-board .ivl-grade li.is-filled .ivl-grade-short > .ivl-sourced,
.ivl-board .ivl-grade li.is-filled .ivl-grade-short > .ivl-sourced-tip,
.ivl-board .ivl-grade li.is-filled .ivl-grade-short > .ivl-count{margin-left:.45rem;flex:none}
.ivl-board .ivl-grade li.is-filled .ivl-sourced-tip{display:inline-flex;flex-direction:column;align-items:flex-start}
.ivl-board .ivl-grade li.is-filled .ivl-count,
.ivl-board .ivl-grade li.is-filled .ivl-sourced,
.ivl-board .ivl-sourced-tip summary.ivl-count,
.ivl-board .ivl-sourced-tip summary.ivl-sourced{display:inline-flex;align-items:center;justify-content:center;min-width:1.7rem;height:1.7rem;margin-left:0;padding:0 .2rem;border:1px solid #1d4e79;border-radius:2px;background:#f7fbfe;color:#1d4e79;font-weight:650;line-height:1;box-sizing:border-box;font-variant-numeric:tabular-nums}
.ivl-board .ivl-grade-detail{display:block;width:auto;margin:.08rem 0 0 1.7rem;font-size:.75rem;font-weight:450;line-height:1.35;color:#3d6284;text-align:left}
.ivl-board .ivl-grade li .ivl-stars{order:2;align-self:flex-start;margin:.1rem 0 0 1.7rem;font-size:.82rem;letter-spacing:.04rem;line-height:1}
.ivl-board .ivl-grade-value{margin:.04rem 0 0 1.7rem;font-size:.75rem}
.ivl-sourced-where{margin-top:.2rem;max-width:32rem;text-align:left}
.ivl-ledger{gap:.55rem;margin:0 0 .5rem;padding:0 0 .45rem;border-bottom:1px solid #e4d3a8}
.ivl-ledger .ivl-count{margin-left:auto;color:#7a5a1e;border-color:#7a5a1e;background:#fbf7f0;font-size:1.35rem;font-weight:650;min-width:3.4rem;height:1.9rem}

/* Every criterion, filled or not, is the same report row. The figure sits in the square right after the title. */
.ivl-board .ivl-grade li .ivl-grade-short{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:0;width:auto;max-width:100%;white-space:nowrap}
.ivl-board .ivl-grade li .ivl-grade-short > .ivl-sourced,
.ivl-board .ivl-grade li .ivl-grade-short > .ivl-sourced-tip,
.ivl-board .ivl-grade li .ivl-grade-short > .ivl-count{margin-left:.45rem;flex:none}
.ivl-board .ivl-grade li .ivl-count,
.ivl-board .ivl-grade li .ivl-sourced,
.ivl-board .ivl-sourced-tip summary.ivl-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.7rem;height:1.7rem;padding:0 .2rem;border:1px solid #1d4e79;border-radius:2px;background:#f7fbfe;color:#1d4e79;font-weight:650;line-height:1;box-sizing:border-box;font-variant-numeric:tabular-nums}
.ivl-board .ivl-grade .ivl-count .ivl-nd{color:#1d4e79;font-weight:650;text-decoration:none}
.ivl-ledger .ivl-count{margin-left:auto;color:#7a5a1e;border-color:#7a5a1e;background:#fbf7f0;font-size:1.35rem;font-weight:650;min-width:3.4rem;height:1.9rem}

/* Keep the criteria in normal flow. display:contents on the row hid the titles in WebKit once the title line became a flex row. */
.ivl-board .ivl-grade-row{display:flex;flex-direction:column;align-items:flex-start;width:100%}
.ivl-board .ivl-grade li{display:flex;flex-direction:column;align-items:flex-start;width:100%;min-width:0}
.ivl-board .ivl-grade-short,
.ivl-board .ivl-grade li .ivl-grade-short{flex-wrap:wrap;white-space:normal;min-width:0;max-width:100%}

/* Compact actuarial mark for the partial section. Smaller than the old badge. */
.ivl-inactive-label{align-items:center;gap:.28rem .45rem;margin:0 0 .4rem;font-size:.72rem;font-weight:500;line-height:1.2;color:#3a2e1c}
.ivl-lock-unit{display:inline-flex;align-items:center;gap:.22rem;margin:0;padding:.02rem .32rem .04rem;border:1px solid #c5b48a;border-radius:2px;background:#fbf7f0;color:#7a5a1e;font-size:.68rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;line-height:1.15;box-shadow:none}
.ivl-lock-unit .ivl-lock{width:.62rem;height:.62rem;color:#7a5a1e;stroke-width:1.6}
.ivl-boost{font-size:.68rem;font-weight:500}

/* Digits sit in their own element so WebKit paints them. The ledger keeps one score, not a second square. */
.ivl-board .ivl-figure{color:#1d4e79;font-size:.98rem;font-weight:650;line-height:1;font-variant-numeric:tabular-nums}
.ivl-ledger .ivl-count{display:none}


/* Profile stack, 29 sept 2026: photo first, name and description directly under it.
   The criteria board stays after the profile block. One column at every width.
   The old 58% photo column plus .profile{align-items:center} and
   .card-actions{margin-top:auto} anchored the name to the bottom of a tall photo. */
.agent-page .profile{display:grid;grid-template-columns:1fr;grid-auto-flow:row;gap:0;align-items:start;align-content:start;justify-items:stretch}
.agent-page .profile-photo,
.agent-page .profile-info{grid-column:1;align-self:start;justify-self:start;height:auto;min-height:0}
.agent-page .profile-photo{width:min(100%,28rem);max-width:100%}
.agent-page .profile-photo img{width:100%;height:auto;max-height:none;object-fit:contain;object-position:center top}
.agent-page .profile-info{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;width:100%;max-width:42rem;padding:1.15rem 0 0}
.agent-page .profile-name{margin-top:0;order:0}
.agent-page .profile .card-actions{margin-top:0}
@media (max-width:860px){
  .agent-page .profile{grid-template-columns:1fr;padding:0}
  .agent-page .profile-photo{width:min(100%,28rem)}
}

/* The contact line stays visible on every criterion, including rows that already show a number. */
.ivl-board .ivl-grade li.is-filled .ivl-grade-value{display:flex}

/* Figure (number or ND) stays on the criterion title line. Smaller type, no wrap. */
.ivl-board .ivl-grade-short,
.ivl-board .ivl-grade li .ivl-grade-short{
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-start;
  gap:0;
  width:100%;
  max-width:100%;
  min-width:0;
  font-size:.68rem;
  line-height:1.15;
  white-space:nowrap;
}
.ivl-board .ivl-grade-glance{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  flex:1 1 auto;
}
.ivl-board .ivl-grade li .ivl-grade-num{
  flex:none;
  font-size:.68rem;
  line-height:1.15;
}
.ivl-board .ivl-figure{font-size:.68rem;white-space:nowrap}
.ivl-board .ivl-grade li .ivl-grade-short > .ivl-sourced,
.ivl-board .ivl-grade li .ivl-grade-short > .ivl-sourced-tip,
.ivl-board .ivl-grade li .ivl-grade-short > .ivl-count{
  flex:none;
  white-space:nowrap;
}

/* Questionnaire stays hidden until "pour augmenter IVL" is on screen. */
form.nous-contacter:not(.is-open){
  display:none !important;
  position:absolute !important;
  width:0 !important;
  height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  border:0 !important;
}
form.nous-contacter.is-open{
  display:block !important;
  position:fixed !important;
  z-index:40;
  left:50%;
  bottom:.75rem;
  transform:translateX(-50%);
  width:min(34rem,calc(100vw - 1.25rem));
  max-height:min(70vh,36rem);
  overflow:auto;
  margin:0;
  padding:1rem 1.1rem 1.15rem;
  background:#fbf6ea;
  border:1px solid #e4d3a8;
  border-radius:12px;
  box-shadow:0 12px 40px rgba(20,17,12,.18);
}
form.nous-contacter .form-close{
  float:right;
  border:0;
  background:transparent;
  color:#3a2e1c;
  font:inherit;
  cursor:pointer;
}

/* Every criteria label matches row 2: .98rem, weight 600. The figure square stays at the end of the row, as on row 2. */
.ivl-board .ivl-grade li .ivl-grade-short,
.ivl-board .ivl-grade li.is-live .ivl-grade-short,
.ivl-board .ivl-grade li.is-shaded .ivl-grade-short,
.ivl-board .ivl-grade li.is-filled .ivl-grade-short{
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  max-width:100%;
  min-width:0;
  font-size:.98rem;
  font-weight:600;
  line-height:1.2;
  white-space:nowrap;
}
.ivl-board .ivl-grade li .ivl-grade-glance,
.ivl-board .ivl-grade li.is-filled .ivl-grade-glance,
.ivl-board .ivl-grade li.is-shaded .ivl-grade-glance{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:.98rem;
  font-weight:600;
  line-height:1.2;
  white-space:nowrap;
}
.ivl-board .ivl-grade li .ivl-grade-short > .ivl-sourced,
.ivl-board .ivl-grade li .ivl-grade-short > .ivl-sourced-tip,
.ivl-board .ivl-grade li .ivl-grade-short > .ivl-count,
.ivl-board .ivl-grade li.is-filled .ivl-grade-short > .ivl-sourced,
.ivl-board .ivl-grade li.is-filled .ivl-grade-short > .ivl-sourced-tip,
.ivl-board .ivl-grade li.is-filled .ivl-grade-short > .ivl-count,
.ivl-board .ivl-grade li.is-filled .ivl-sourced,
.ivl-board .ivl-grade li.is-filled .ivl-sourced-tip{
  margin-left:auto;
  flex:none;
}

/* Criterion 1 detail stays on one line. */
.ivl-board .ivl-grade-detail--share{white-space:nowrap;font-size:.68rem;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* ND is lighter, smaller, and thinner than a numeric figure. The square and the row stay put. */
.ivl-board .ivl-grade .ivl-count .ivl-nd,
.ivl-board .ivl-grade li .ivl-count .ivl-nd,
.ivl-board .ivl-grade li.is-shaded .ivl-count .ivl-nd,
.ivl-board .ivl-sourced.ivl-count .ivl-nd{
  font-weight:100;
  font-size:.48rem;
  letter-spacing:.02em;
  color:#c5c9ce;
}

.ivl-board .ivl-grade li .ivl-count a.ivl-nd{font-weight:100;font-size:.48rem;color:#c5c9ce;}

/* Compact board. Labels match row 2. The 2.24rem card label must not win. */
.ivl-board .ivl-grade .ivl-grade-label,
.ivl-board .ivl-grade--card .ivl-grade-label,
.ivl-grade.ivl-grade--card .ivl-grade-label,
.ivl-grade--card .ivl-grade-label{
  font-size:.98rem !important;
  font-weight:600 !important;
  line-height:1.2 !important;
}
.ivl-board .ivl-grade li .ivl-grade-short,
.ivl-board .ivl-grade li .ivl-grade-glance,
.ivl-board .ivl-grade li .ivl-grade-num{
  font-size:.98rem !important;
  font-weight:600 !important;
  line-height:1.2 !important;
}
.ivl-board .ivl-grade .ivl-figure{
  font-size:.98rem;
  font-weight:600;
  white-space:nowrap;
}

/* Phone layout. Nothing wider than the screen, two cards per row, photo with side margins. */
html,body{max-width:100%;overflow-x:clip}
.ivl-board,.ivl-board .ivl-grade,.ivl-board .ivl-grade li,.ivl-board .ivl-grade-row,.ivl-board .ivl-grade-label,.ivl-board .ivl-grade-short,.ivl-board .ivl-grade-detail{min-width:0;max-width:100%}
.profile-bio,.card-bio,.agent-page .profile-info{max-width:100%;overflow-wrap:anywhere}
.brand,.brand-name,.header-inner,nav{min-width:0}
.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}

/* Profile: compact portrait with side margins, whole photo, badge not clipped. */
.agent-page .profile-photo{width:calc(100% - 2rem);max-width:22rem;margin:0 auto;justify-self:center;overflow:visible}
.agent-page .profile-photo img{width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center center}
/* The photo file is ~400px. The card column is half the phone. Shrink the card to the column, then the photo to the card, or the file spills and gets cut. */
.grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.grid > .card{width:100% !important;min-width:0 !important;max-width:100% !important;overflow:hidden;grid-template-columns:minmax(0,1fr) !important}
.grid .card-photo,
.feature-photo{position:relative;display:block;width:100% !important;max-width:100% !important;min-width:0 !important;height:auto !important;overflow:hidden;background:#f4f0e8}
.grid .card-photo img,
.feature-photo img{position:static !important;display:block !important;width:100% !important;max-width:100% !important;min-width:0 !important;height:auto !important;object-fit:contain !important;object-position:center center !important;transform:none !important}

/* Every small description line: same face, same size. */
.ivl-board .ivl-grade-detail,
.ivl-board .ivl-grade-detail--share{font-family:var(--sans);font-size:.72rem;font-weight:450;line-height:1.3;color:#3d6284;white-space:normal;overflow-wrap:anywhere;text-overflow:unset;max-width:100%}

/* ND stays inside the small count box, same weight as the digits, a step lighter. */
.ivl-board .ivl-grade .ivl-count .ivl-nd,
.ivl-board .ivl-grade li .ivl-count .ivl-nd,
.ivl-board .ivl-grade li.is-shaded .ivl-count .ivl-nd,
.ivl-board .ivl-sourced.ivl-count .ivl-nd,
.ivl-board .ivl-grade li .ivl-count a.ivl-nd{font-weight:600;font-size:.72rem;letter-spacing:0;color:#6d8299;text-decoration:none}

form.nous-contacter{display:none}
form.nous-contacter.is-open{display:block !important;position:fixed !important;z-index:40;left:50%;bottom:.75rem;transform:translateX(-50%);width:min(34rem,calc(100vw - 1.25rem));max-height:min(70vh,36rem);overflow:auto;margin:0}

@media (max-width:640px){
  .header-inner{flex-direction:row;align-items:center;justify-content:space-between;gap:.45rem;padding:.45rem 0}
  .brand{gap:.4rem}
  .brand-mark{width:32px;height:32px}
  .brand-name{font-size:1.02rem;gap:.25rem;flex-wrap:wrap}
  .brand-script{font-size:1.15rem}
  nav{gap:.4rem;flex-wrap:nowrap}
  nav a{font-size:.78rem}
  .nav-cta{padding:.28rem .5rem}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .grid .card-name{font-size:1.12rem;line-height:1.15;overflow-wrap:anywhere}
  .grid .card-bio,.grid .card{min-width:0;max-width:100%}
  .ivl-board .ivl-grade .ivl-count .ivl-nd,
  .ivl-board .ivl-grade li .ivl-count .ivl-nd,
  .ivl-board .ivl-grade li .ivl-count a.ivl-nd,
  .ivl-board .ivl-figure{font-size:.7rem;font-weight:600}
  .ivl-board .ivl-grade-detail,
  .ivl-board .ivl-grade-detail--share{font-size:.72rem;white-space:normal;overflow:visible;text-overflow:unset}
}

/* Board on a phone: wrap every line, stay inside the screen, big enough to read without pinching. */
.ivl-board,
.ivl-grade,
.ivl-grade li,
.ivl-grade-row,
.ivl-grade-label,
.ivl-grade-short,
.ivl-grade-glance,
.ivl-grade-detail{min-width:0;max-width:100%}
@media (max-width:640px){
  .ivl-board{width:100%;max-width:100%}
  .ivl-board .ivl-grade-title{font-size:1.15rem;line-height:1.25}
  .ivl-board .ivl-grade li .ivl-grade-short,
  .ivl-board .ivl-grade li.is-live .ivl-grade-short,
  .ivl-board .ivl-grade li.is-shaded .ivl-grade-short,
  .ivl-board .ivl-grade li.is-filled .ivl-grade-short,
  .ivl-grade--card .ivl-grade-short,
  .ivl-grade .ivl-grade-short{
    flex-wrap:wrap !important;
    white-space:normal !important;
    font-size:1rem !important;
    line-height:1.25 !important;
  }
  .ivl-board .ivl-grade li .ivl-grade-glance,
  .ivl-board .ivl-grade li.is-filled .ivl-grade-glance,
  .ivl-board .ivl-grade li.is-shaded .ivl-grade-glance,
  .ivl-grade--card .ivl-grade-glance,
  .ivl-grade .ivl-grade-glance{
    overflow:visible !important;
    text-overflow:unset !important;
    white-space:normal !important;
    flex:1 1 8rem !important;
    font-size:1rem !important;
    font-weight:600 !important;
    line-height:1.25 !important;
  }
  .ivl-board .ivl-grade-num,
  .ivl-board .ivl-figure,
  .ivl-board .ivl-count .ivl-nd,
  .ivl-grade--card .ivl-figure,
  .ivl-grade--card .ivl-count .ivl-nd,
  .ivl-grade .ivl-figure{
    font-size:1rem !important;
    font-weight:600 !important;
    line-height:1.25 !important;
  }
  .ivl-board .ivl-grade-detail,
  .ivl-board .ivl-grade-detail--share,
  .ivl-grade--card .ivl-grade-detail,
  .ivl-grade--card .ivl-grade-detail--share,
  .ivl-grade .ivl-grade-detail,
  .ivl-grade .ivl-grade-detail--share{
    font-size:.9rem !important;
    line-height:1.35 !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:unset !important;
  }
  .ivl-grade--card .ivl-grade-label,
  .ivl-grade.ivl-grade--card .ivl-grade-label{
    font-size:1rem !important;
    font-weight:600 !important;
    line-height:1.25 !important;
    white-space:normal !important;
    max-width:100%;
  }
  .ivl-grade--card li{flex-wrap:wrap;min-width:0;align-items:flex-start}
  .ivl-grade--card .ivl-stars,
  .ivl-board .ivl-grade li .ivl-stars{font-size:1rem !important;letter-spacing:.04rem}
  .ivl-board .ivl-grade li{padding:.55rem 0}
}

/* Display frame, 18:20 EDT. One card on a phone, full photo, badge on the photo, large header. Newer criteria text stays. */
@media (max-width:979px){
  .grid{grid-template-columns:1fr !important;gap:1.4rem}
}
@media (max-width:640px){
  .header-inner{flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.13rem 0}
  .brand{gap:.93rem}
  .brand-mark{width:51px;height:51px}
  .brand-name{font-size:1.87rem}
  .brand-script{font-size:2.07rem}
  nav{gap:1rem;flex-wrap:wrap}
  nav a{font-size:1.27rem}
  .nav-cta{padding:.56rem 1.27rem}
  .grid{grid-template-columns:1fr !important;gap:1.4rem}
  .grid .card-name{font-size:2.04rem;line-height:1.15}
}
.agent-page .profile-photo{width:min(100%,28rem);max-width:100%;margin:0;justify-self:start;overflow:hidden}
.agent-page .profile-photo img{width:100% !important;height:auto !important;max-height:none !important;object-fit:contain !important;object-position:center top !important}
.grid > .card{overflow:visible !important;grid-template-columns:1fr !important}
.grid .card-photo,.feature-photo{overflow:visible !important;background:#fff;height:auto !important}
.grid .card-photo img,.feature-photo img{height:auto !important;object-fit:contain !important;object-position:center center !important}

/* Places, accueil seulement. N'affecte pas les fiches. */
.tier-menu{padding:2.4rem 0 1.2rem;background:
  radial-gradient(700px 220px at 50% 0%,rgba(201,164,92,.16),transparent 70%),
  linear-gradient(180deg,#0e1a2b 0%,#14243d 100%)}
.tier-menu .container{max-width:52rem}
.tier-tabs{position:relative;text-align:center;border:1px solid rgba(201,164,92,.55);background:
  linear-gradient(180deg,rgba(255,253,249,.04),rgba(255,253,249,.02));
  border-radius:22px;overflow:hidden;padding:2.1rem 1.6rem 1.7rem;
  box-shadow:0 24px 60px rgba(0,0,0,.28), inset 0 1px 0 rgba(226,200,143,.35)}
.tier-tabs::before{content:"";display:block;width:3.2rem;height:2px;margin:0 auto 1.15rem;background:linear-gradient(90deg,transparent,#e2c88f,transparent)}
.tier-lines{display:block;margin:0;padding:0 0 1.15rem;text-align:center}
.tier-lines strong{font-family:var(--serif);font-weight:600;font-size:clamp(1.7rem,3.2vw,2.45rem);line-height:1.18;letter-spacing:-.015em;color:#f6eedc}
.tier-contact{display:block;margin:1.15rem 0 0;padding:0;font-size:.95rem;line-height:1.45}
.tier-contact a{color:#e2c88f;text-decoration:none;border-bottom:1px solid rgba(226,200,143,.45)}
.tier-contact a:hover{color:#fff}
.tier-cascade{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.15rem 0 0;border-top:1px solid rgba(201,164,92,.28)}
.tier-cascade p{margin:0;padding-top:.85rem;font-family:var(--serif);color:#f3efe6;line-height:1.2;letter-spacing:.01em}
.tier-cascade .champ-qc{font-size:clamp(1.35rem,2.4vw,1.85rem);font-weight:600;color:#e2c88f}
.tier-cascade .champ-reg{font-size:clamp(1.05rem,1.8vw,1.35rem);font-weight:500;color:#f6eedc}
.tier-cascade .champ-ville{font-size:clamp(.95rem,1.5vw,1.12rem);font-weight:500;color:#d9c79a}
@media (max-width:720px){
  .tier-menu{padding:1.6rem 0 .4rem}
  .tier-tabs{padding:1.5rem 1rem 1.25rem;border-radius:16px}
}

@media (max-width:979px){
  /* Every courtier card, including cards added later, must keep the same padding from the screen edge so text and photo are not flush against the phone border, and the last card must match the cards before it. */
  .agent-page .profile{
    padding-left:1rem;
    padding-right:1rem;
  }
  .grid > .card,
  .grid > .card:last-child{
    box-sizing:border-box;
    max-width:100%;
    margin-left:0;
    margin-right:0;
    padding-left:0;
    padding-right:0;
  }
}

/* Avis sourcés, sous le tableau IVL du profil. N'affecte pas les cartes. */
.sourced-reviews{margin:1.4rem 0 1.6rem}
.sourced-reviews-title{margin:0 0 .8rem;font-family:var(--serif);font-size:1.35rem;font-weight:600;color:var(--ink)}
.sourced-review{margin:0 0 .75rem;padding:.85rem 1rem;background:#fff;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:12px}
.sourced-review p{margin:0;font-size:.98rem;line-height:1.45;color:var(--text)}
.sourced-review footer{margin-top:.45rem;font-size:.82rem}
.sourced-review a{color:var(--gold-deep);font-weight:650}


/* Essai: restaurants avec recharges cellulaires. */
.resto-card{position:relative;margin:0 0 1.4rem;padding:1rem 1rem 1.15rem;background:#fff;border:1px solid var(--line);border-radius:16px}
.resto-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.resto-card h2{margin:.35rem 0 .4rem;font-family:var(--serif);font-size:1.45rem}
.resto-photos{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:1rem 0}
.resto-photos img{width:100%;height:auto;border-radius:12px;display:block}
.resto-toggle{display:inline-flex;align-items:center;gap:.45rem;border:0;background:transparent;cursor:pointer;padding:0}
.resto-toggle-knob{width:2.4rem;height:1.35rem;border-radius:999px;background:#1f8a4c;position:relative;flex:none}
.resto-toggle-knob:after{content:"";position:absolute;top:.15rem;left:1.2rem;width:1.05rem;height:1.05rem;border-radius:50%;background:#fff}
.resto-toggle[data-state="unavailable"] .resto-toggle-knob{background:#c0392b}
.resto-toggle[data-state="unavailable"] .resto-toggle-knob:after{left:.15rem}
.resto-toggle-label{font-size:.82rem;font-weight:700}
.resto-toggle[data-state="available"] .resto-toggle-label{color:#1f8a4c}
.resto-toggle[data-state="unavailable"] .resto-toggle-label{color:#c0392b}
@media (max-width:700px){.resto-photos{grid-template-columns:1fr}}

/* v218 : « Le préféré de [ville] » — classe réutilisable .courtier--prefere (carte .card ou section .profile) */
.courtier--prefere.card{border:1.5px solid var(--gold);box-shadow:0 0 0 3px rgba(201,164,92,.16),var(--shadow)}
.courtier--prefere .profile-photo{box-shadow:0 0 0 1.5px var(--gold),0 0 0 5px rgba(201,164,92,.16)}
.prefere-label{display:inline-flex;align-items:center;gap:.35rem;align-self:flex-start;width:max-content;max-width:100%;margin:0 0 .45rem;padding:.28rem .75rem .28rem .6rem;background:var(--gold-soft);color:var(--gold-deep);border:1px solid var(--gold);border-radius:999px;font-size:.74rem;font-weight:700;letter-spacing:.03em;line-height:1.2}
.prefere-label .ico{width:.9rem;height:.9rem;color:var(--gold);fill:currentColor;flex:0 0 auto}
.profile-info .prefere-label{font-size:.8rem;margin-bottom:.6rem}

/* v220a : « Le préféré » — ruban signet (réutilisable : .courtier--prefere + .prefere-ribbon) */
.courtier--prefere.card{background:#fff;border:2px solid var(--gold);box-shadow:0 0 0 4px rgba(201,164,92,.13),0 16px 36px rgba(14,26,43,.12)}
.courtier--prefere .profile-photo{box-shadow:0 0 0 2px var(--gold),0 0 0 6px rgba(201,164,92,.14),0 16px 36px rgba(14,26,43,.14)}
.courtier--prefere .card-photo,.courtier--prefere .profile-photo{position:relative;overflow:hidden}
.prefere-ribbon{position:absolute;top:0;left:1.1rem;z-index:3;width:5.5rem;filter:drop-shadow(0 6px 10px rgba(14,26,43,.32));pointer-events:none}
.pr-body{position:relative;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1rem .45rem 1.75rem;background:linear-gradient(180deg,#26324a 0%,#1b2433 55%,#151c29 100%);clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - .95rem),0 100%);text-align:center}
.pr-body::before{content:"";position:absolute;inset:0 .3rem;border-left:1px solid rgba(226,200,143,.55);border-right:1px solid rgba(226,200,143,.55);pointer-events:none}
.pr-seal{display:flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;border-radius:50%;background:radial-gradient(circle at 35% 28%,#f6e3ae 0%,#d8b46a 45%,#a8833f 100%);box-shadow:0 0 0 2px #1b2433,0 0 0 3px rgba(226,200,143,.8)}
.pr-seal svg{width:1.3rem;height:1.3rem;fill:#1b2433}
.pr-main{font-family:var(--serif);font-weight:700;font-size:1rem;line-height:1.05;letter-spacing:.02em;color:#f1d996}
.pr-rule{width:1.6rem;height:1px;background:rgba(226,200,143,.7)}
.pr-city{font-size:.56rem;font-weight:700;letter-spacing:.12em;line-height:1.35;text-transform:uppercase;color:#e2c88f;overflow-wrap:anywhere}
.profile .prefere-ribbon{left:1.6rem;width:6.4rem}
.profile .pr-main{font-size:1.18rem}
.profile .pr-seal{width:2.7rem;height:2.7rem}
.profile .pr-city{font-size:.62rem}

/* v224 : ruban préféré — cartes grille accueil + miniatures city-tile */
.grid .card.courtier--prefere .card-photo{position:relative;overflow:hidden}
.grid .card .prefere-ribbon,
.card.courtier--prefere .prefere-ribbon{z-index:8;left:0.85rem;width:5.2rem}
.grid .card .prefere-ribbon .pr-main{font-size:0.95rem}
.city-tile.courtier--prefere .tile-photo{overflow:hidden}
.city-tile .prefere-ribbon{left:0.7rem;width:3.8rem;z-index:7}
.city-tile .prefere-ribbon .pr-body{gap:0.28rem;padding:0.7rem 0.32rem 1.35rem}
.city-tile .prefere-ribbon .pr-seal{width:1.7rem;height:1.7rem}
.city-tile .prefere-ribbon .pr-seal svg{width:0.95rem;height:0.95rem}
.city-tile .prefere-ribbon .pr-main{font-size:0.72rem;line-height:1.05}
.city-tile .prefere-ribbon .pr-rule{width:1.15rem}
.city-tile .prefere-ribbon .pr-city{font-size:0.48rem;letter-spacing:0.1em}
.city-tile .prefere-ribbon .pr-body::before{inset:0 0.22rem}

/* v225 : ruban préféré plus court — ne masque plus les visages en miniature */
.grid .card .prefere-ribbon,
.card.courtier--prefere .prefere-ribbon{left:0.4rem;width:3.55rem;z-index:8}
.grid .card .prefere-ribbon .pr-body,
.card.courtier--prefere .prefere-ribbon .pr-body{gap:0.2rem;padding:0.5rem 0.26rem 1.05rem;clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - .7rem),0 100%)}
.grid .card .prefere-ribbon .pr-seal,
.card.courtier--prefere .prefere-ribbon .pr-seal{width:1.45rem;height:1.45rem}
.grid .card .prefere-ribbon .pr-seal svg,
.card.courtier--prefere .prefere-ribbon .pr-seal svg{width:0.8rem;height:0.8rem}
.grid .card .prefere-ribbon .pr-main,
.card.courtier--prefere .prefere-ribbon .pr-main{font-size:0.7rem;line-height:1.05}
.grid .card .prefere-ribbon .pr-rule,
.card.courtier--prefere .prefere-ribbon .pr-rule{width:1rem}
.grid .card .prefere-ribbon .pr-city,
.card.courtier--prefere .prefere-ribbon .pr-city{font-size:0.4rem;letter-spacing:0.08em}
.grid .card .prefere-ribbon .pr-body::before,
.card.courtier--prefere .prefere-ribbon .pr-body::before{inset:0 0.16rem}
.city-tile .prefere-ribbon{left:0.35rem;width:2.7rem;z-index:7}
.city-tile .prefere-ribbon .pr-body{gap:0.14rem;padding:0.4rem 0.18rem 0.9rem;clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - .55rem),0 100%)}
.city-tile .prefere-ribbon .pr-seal{width:1.15rem;height:1.15rem}
.city-tile .prefere-ribbon .pr-seal svg{width:0.65rem;height:0.65rem}
.city-tile .prefere-ribbon .pr-main{font-size:0.52rem;line-height:1.05}
.city-tile .prefere-ribbon .pr-rule{width:0.85rem}
.city-tile .prefere-ribbon .pr-city{font-size:0.36rem;letter-spacing:0.06em}
.city-tile .prefere-ribbon .pr-body::before{inset:0 0.12rem}
.card-photo img[src*="annabelle-bouchard"],
.tile-photo img[src*="annabelle-bouchard"]{object-position:70% 30%;}

/* v234 : gabarit standard du ruban « préféré » sur la page ville (taille = page profil). Ajouter la classe prefere-ribbon--full au ruban des cartes de page ville. */
.prefere-ribbon.prefere-ribbon--full,
.card.courtier--prefere .prefere-ribbon.prefere-ribbon--full,
.grid .card .prefere-ribbon.prefere-ribbon--full{left:1.6rem;width:6.4rem;z-index:8}
.prefere-ribbon.prefere-ribbon--full .pr-body,
.card.courtier--prefere .prefere-ribbon.prefere-ribbon--full .pr-body,
.grid .card .prefere-ribbon.prefere-ribbon--full .pr-body{gap:.4rem;padding:1rem .45rem 1.75rem;clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - .95rem),0 100%)}
.prefere-ribbon.prefere-ribbon--full .pr-body::before,
.card.courtier--prefere .prefere-ribbon.prefere-ribbon--full .pr-body::before,
.grid .card .prefere-ribbon.prefere-ribbon--full .pr-body::before{inset:0 .3rem}
.prefere-ribbon.prefere-ribbon--full .pr-seal,
.card.courtier--prefere .prefere-ribbon.prefere-ribbon--full .pr-seal,
.grid .card .prefere-ribbon.prefere-ribbon--full .pr-seal{width:2.7rem;height:2.7rem}
.prefere-ribbon.prefere-ribbon--full .pr-seal svg,
.card.courtier--prefere .prefere-ribbon.prefere-ribbon--full .pr-seal svg,
.grid .card .prefere-ribbon.prefere-ribbon--full .pr-seal svg{width:1.3rem;height:1.3rem}
.prefere-ribbon.prefere-ribbon--full .pr-main,
.card.courtier--prefere .prefere-ribbon.prefere-ribbon--full .pr-main,
.grid .card .prefere-ribbon.prefere-ribbon--full .pr-main{font-size:1.18rem;line-height:1.05}
.prefere-ribbon.prefere-ribbon--full .pr-rule,
.card.courtier--prefere .prefere-ribbon.prefere-ribbon--full .pr-rule,
.grid .card .prefere-ribbon.prefere-ribbon--full .pr-rule{width:1.6rem}
.prefere-ribbon.prefere-ribbon--full .pr-city,
.card.courtier--prefere .prefere-ribbon.prefere-ribbon--full .pr-city,
.grid .card .prefere-ribbon.prefere-ribbon--full .pr-city{font-size:.62rem;letter-spacing:.12em}
/* v239: carte « Place disponible » complétant une rangée impaire (même visuel que .tile-empty) */
.grid .card--place .card-photo{position:relative !important;aspect-ratio:4/5;height:auto !important;overflow:hidden !important;background:var(--ink)}
.grid .card--place .tile-empty{position:absolute;inset:0}
.grid .card--place .card-bio{font-style:italic}

/* v253: règles deux-par-rangée et réduction limitées à l’accueil et aux pages régions (body.page-list). Les pages ville et profil gardent le style v250. */
@media (min-width:641px) and (max-width:979px){body.page-list .grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:1rem}
body.page-list .grid > .card,body.page-list .grid > .card:last-child{max-width:none;width:auto}}
@media (max-width:640px){body.page-list .grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:.6rem}
body.page-list .grid > .card,body.page-list .grid > .card:last-child{min-width:0;max-width:none;width:auto}
body.page-list .grid .card-body{padding:.5rem .5rem .6rem;gap:.1rem;min-width:0}
body.page-list .grid .card-name{font-size:1rem !important;line-height:1.2;overflow-wrap:anywhere}
body.page-list .grid .card-title,body.page-list .grid .card-loc,body.page-list .grid .agency{font-size:.72rem;margin:.08rem 0 0;overflow-wrap:anywhere}
body.page-list .grid .agency-badge{font-size:.68rem;white-space:normal}
body.page-list .grid .card-territory{font-size:.64rem;letter-spacing:.02em;padding:.1rem .3rem;overflow-wrap:anywhere}
body.page-list .grid .card-bio{font-size:.74rem;line-height:1.32;margin:.25rem 0 0;overflow-wrap:anywhere}
body.page-list .grid .ivl-blurb,body.page-list .grid .ivl-criteria-note{font-size:.64rem;line-height:1.3;overflow-wrap:anywhere}
body.page-list .grid .card-actions{flex-direction:column;align-items:stretch;gap:.3rem;padding-top:.45rem}
body.page-list .grid .card-actions .btn,body.page-list .grid .card-actions .btn-sm{width:100%;justify-content:center;padding:.36rem .4rem;font-size:.72rem;white-space:normal;text-align:center}
body.page-list .grid .ivl{transform-origin:top right}
body.page-list .grid .ivl-score{font-size:1.15rem}
body.page-list .grid .ivl-stars{font-size:.62rem;letter-spacing:0}
body.page-list .grid .card *{max-width:100%}}
body.page-list .city-tiles,body.page-list .city-tiles--compact{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
@media (min-width:980px){body.page-list .city-tiles,body.page-list .city-tiles--compact{max-width:860px}}
body.page-list .city-tile--place .tile-photo{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--ink)}
body.page-list .city-tile--place[hidden]{display:none !important}
body.page-list .grid{align-items:stretch !important}
body.page-list .grid > .card{height:auto !important;align-self:stretch !important}
@media (max-width:640px){body.page-list .grid > .card .card-photo p.ivl{left:.3rem !important;right:.3rem !important;width:auto !important;max-width:none !important;padding:.35rem .4rem !important;box-sizing:border-box}
body.page-list .grid > .card .card-photo p.ivl .ivl-score{font-size:1.05rem !important}
body.page-list .grid > .card .card-photo p.ivl .ivl-stars{font-size:.58rem !important;letter-spacing:0 !important;white-space:nowrap}
body.page-list .grid > .card .card-photo p.ivl .ivl-kicker{font-size:.58rem !important}}
body.page-list .grid > .card{align-content:start}
@media (max-width:979px){body.page-list .grid > .card{grid-template-columns:minmax(0,1fr) !important;min-width:0}
body.page-list .grid > .card .card-photo{width:100% !important;max-width:100% !important;min-width:0;box-sizing:border-box}
body.page-list .grid > .card .card-photo img{width:100% !important;max-width:100% !important}}
@media (max-width:640px){body.page-list .grid > .card .ivl-panel,body.page-list .grid > .card .ivl-panel *{min-width:0 !important;max-width:100% !important;box-sizing:border-box;overflow-wrap:anywhere}
body.page-list .grid > .card .ivl-grade li{flex-wrap:wrap !important;gap:.15rem .3rem}
body.page-list .grid > .card .ivl-grade-value,body.page-list .grid > .card .ivl-ledger-score{font-size:.85rem !important;white-space:normal !important}
body.page-list .grid > .card .ivl-panel .ivl-stars,body.page-list .grid > .card .ivl-grade .ivl-stars{font-size:.5rem !important;letter-spacing:0 !important;white-space:nowrap}
body.page-list .grid > .card .ivl-panel .ivl-ledger-kicker,body.page-list .grid > .card .ivl-panel .ivl-kicker{font-size:.7rem !important}}
@media (max-width:640px){body.page-list .grid > .card .ivl-grade-row{flex-wrap:wrap !important}
body.page-list .grid > .card .ivl-grade-value{margin-left:0 !important;padding-left:0 !important;width:auto !important;flex:1 1 100% !important}}
@media (min-width:980px){body.page-list .city-tiles,body.page-list .city-tiles--compact{margin-left:auto;margin-right:auto}}
@media (max-width:640px){body.page-list .city-tiles .tile-agent,body.page-list .city-tiles .tile-agency{padding-right:2.9rem;overflow-wrap:anywhere;white-space:normal}
body.page-list .city-tiles .tile-city{overflow-wrap:anywhere}}
/* tc256: Beloeil — callbar, évaluation, lien carte */
.callbar{display:none}
@media (max-width:640px){
body.has-callbar{padding-bottom:calc(4.25rem + env(safe-area-inset-bottom))}
body.has-callbar .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;gap:.4rem;padding:.5rem .5rem calc(.5rem + env(safe-area-inset-bottom));background:var(--ink);border-top:2px solid var(--gold);box-shadow:0 -6px 20px rgba(14,26,43,.18)}
.callbar-btn{flex:1;display:flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.4rem .3rem;border-radius:999px;border:1px solid var(--gold);color:#fff;font-weight:600;font-size:.9rem;text-decoration:none;text-align:center;line-height:1.15}
.callbar-btn--call{background:var(--gold);color:#1b1407}
.callbar-btn--eval{color:var(--gold-2)}
}
.card-seo{margin:.15rem 0 0;font-size:.8rem;line-height:1.3}
.card-seo a{color:var(--gold-deep);position:relative;z-index:2}
.city-about p{max-width:52rem;line-height:1.65}
.eval-form{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1rem;max-width:52rem;padding:1.2rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.eval-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:600;color:var(--ink)}
.eval-form input,.eval-form select,.eval-form textarea{font:inherit;font-weight:400;padding:.55rem .7rem;border-radius:10px;border:1px solid #c9c1b0;background:#fff;color:var(--text)}
.eval-form .eval-full,.eval-form .eval-consent,.eval-form button{grid-column:1 / -1}
.eval-form .eval-consent{flex-direction:row;align-items:flex-start;gap:.5rem;font-weight:400;font-size:.82rem;color:var(--muted)}
.eval-form .eval-consent input{margin-top:.2rem}
.eval-form button{justify-self:start;padding:.7rem 1.3rem}
.eval-honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.eval-merci{margin:0 0 .8rem;padding:.6rem .9rem;border-radius:10px;background:var(--gold-soft);border:1px solid var(--gold);color:var(--ink);font-weight:600}
@media (max-width:640px){.eval-form{grid-template-columns:1fr}}
/* tc256: pages à cartes complètes sans « Place disponible » — une carte seule en fin de rangée est centrée (pas de case vide). */
@media (min-width:980px){body:not(.page-list):not(.home) .grid>.card:last-child:nth-child(odd){grid-column:1 / -1 !important;justify-self:center !important;width:calc((100% - 1.5rem) / 2) !important;max-width:calc((100% - 1.5rem) / 2) !important}}
picture{display:contents}picture>source{display:none}
/* empty city tile: keep "Place disponible" clear of the text block */
.city-tile:has(.tile-empty) .tile-empty{padding-top:10%;gap:.35rem}
.city-tile:has(.tile-empty) .tile-body{padding-top:1.5rem}
.city-tile:has(.tile-empty) .tile-region{letter-spacing:.08em}
.city-tile:has(.tile-empty) .tile-agent{font-size:.9em;line-height:1.3}
@media (max-width:640px){
 .city-tile:has(.tile-empty) .tile-empty{padding-top:8%;font-size:1rem}
 .city-tile:has(.tile-empty) .tile-empty .ico{font-size:1.5rem}
 .city-tile:has(.tile-empty) .tile-region{font-size:.6rem;letter-spacing:.04em}
 .city-tile:has(.tile-empty) .tile-agent{font-size:.78rem}
}
/* v269 recherche par municipalité */
.muni-note{margin:0 0 1rem;padding:.8rem 1rem;border-left:4px solid var(--accent,#b8860b);background:rgba(0,0,0,.03);border-radius:6px}
.muni-note p{margin:0}
.card-distance{margin:.15rem 0 .3rem;font-size:.85rem;font-weight:600;color:var(--ink,#222)}

/* tc295: fiche courtier centrée dans le conteneur, deux colonnes sur bureau; fil d'Ariane lisible */
.agent-page>.profile{box-sizing:border-box;width:min(1200px,92%) !important;max-width:1200px;margin:0 auto 1rem !important;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-lg);overflow:hidden}
@media (min-width:880px){
  .agent-page>.profile{grid-template-columns:minmax(300px,420px) minmax(0,1fr) !important;gap:clamp(2rem,4vw,3.5rem) !important;padding:clamp(1.4rem,2.5vw,2.2rem) !important;align-items:center !important}
  .agent-page>.profile>.profile-photo{grid-column:1 !important;width:100% !important;max-width:420px;margin:0 !important;justify-self:stretch !important;align-self:center !important;border-radius:16px}
  .agent-page>.profile>.profile-info{grid-column:2 !important;grid-row:1;padding:.5rem 0 !important;max-width:42rem;align-self:center !important}
}
@media (max-width:879px){
  .agent-page>.profile{padding:1rem !important;border-radius:18px;grid-template-columns:minmax(0,1fr) !important}
  .agent-page>.profile>*{min-width:0;max-width:100%}
  .agent-page>.profile>.profile-photo{width:100% !important;max-width:28rem;margin:0 auto !important;justify-self:center !important;overflow:hidden}
  .agent-page>.profile>.profile-info{padding:1.2rem .2rem .4rem !important}
}
.agent-page .breadcrumbs ol{color:#4a5160;align-items:baseline;font-size:.9rem;line-height:1.5}
.agent-page .breadcrumbs li,.agent-page .breadcrumbs a{font-size:.9rem;line-height:1.5;vertical-align:baseline}
.agent-page .breadcrumbs a{color:#6b4e17;text-decoration:underline;text-decoration-color:rgba(107,78,23,.35);text-underline-offset:2px}
.agent-page .breadcrumbs a:hover{color:var(--ink)}
.agent-page .breadcrumbs li[aria-current]{color:#1d2330;font-weight:600}
.breadcrumbs ol{align-items:baseline;line-height:1.5}
nav.breadcrumbs a,.breadcrumbs li{font-size:inherit !important;line-height:inherit;padding:0}
.agent-page .profile .city-line{white-space:normal !important;width:auto !important;max-width:100% !important;box-sizing:border-box}
/* v312: nav à 5 items sur une seule ligne au bureau. */
@media (min-width:980px){nav{flex-wrap:nowrap;gap:1.2rem}nav a{white-space:nowrap;font-size:1.1rem}.nav-cta{padding:.5rem 1rem}}
@media (min-width:980px) and (max-width:1199px){.header-inner{gap:.8rem}nav{gap:.6rem}nav a{font-size:.84rem}.nav-cta{padding:.4rem .65rem}}
@media (min-width:1200px){nav{gap:.95rem}nav a{font-size:1rem}.nav-cta{padding:.45rem .85rem}}
@media (min-width:1200px) and (max-width:1439px){.header-inner{gap:1rem}nav{gap:.7rem}nav a{font-size:.92rem}.nav-cta{padding:.4rem .75rem}}
@media (min-width:980px) and (max-width:1199px){nav{gap:.45rem}nav a{font-size:.78rem}.nav-cta{padding:.35rem .55rem}.brand-script{font-size:.9em}}
/* ===== City profile kit (shared by all towns) ===== */
.cp{max-width:1100px;margin:24px auto;--cp-navy:#0e1a2b;--cp-gold:#c9a45c;--cp-deep:#7a5a1e;--cp-soft:#f6eedc;--cp-line:#e8e0d0}
.cp-card{background:#fff;border:1px solid var(--cp-line);border-radius:16px;padding:20px 22px;margin:0 0 16px;box-shadow:0 1px 0 rgba(14,26,43,.04)}
.cp .section-title{display:flex;align-items:center;gap:10px}
.cp-src{font-size:.82rem;color:#5d6472;margin:.8em 0 0}
.cp-pill{display:inline-block;border:1px solid var(--cp-gold);color:var(--cp-deep);background:var(--cp-soft);border-radius:999px;padding:1px 9px;font-size:.8rem;font-weight:600;white-space:nowrap}
.cp-global{border-radius:12px;padding:12px 16px;margin:0 0 14px;background:var(--cp-soft);border:1px solid var(--cp-line)}
.cp-global.cp-t3{border-color:var(--cp-gold)}
.cp-global.cp-t4{border-color:#c98a24;background:linear-gradient(135deg,#fbf2dd,#f6e4bd)}
.cp-global.cp-t5{border-color:#b8741a;background:linear-gradient(135deg,#fbecc8,#f1d394)}
.cp-global-lab{margin:0;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--cp-deep);font-weight:700}
.cp-miss{text-transform:none;letter-spacing:0;font-weight:400}
.cp-global-val{margin:2px 0;font-size:2rem;font-weight:800;color:var(--cp-navy);line-height:1.1}
.cp small{font-size:.5em;font-weight:600;color:#5d6472}
.cp-stars-row{display:flex;align-items:center;gap:8px;margin:2px 0 0;font-size:.85rem;color:#5d6472}
.cp-neutral{color:#5d6472;font-style:italic}
.cp-happy-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.cp-score{margin:0;font-size:1.7rem;font-weight:800;color:var(--cp-navy)}
.cp-score small{font-size:.55em}
.cp-rank{margin:4px 0 0;font-size:.9rem}
.cp-bars{margin:12px 0 0;display:grid;gap:6px}
.cp-bar{display:grid;grid-template-columns:minmax(120px,210px) 1fr 3.2em;align-items:center;gap:10px;font-size:.85rem}
.cp-bar-label{color:#3a4252}
.cp-bar.is-town .cp-bar-label{font-weight:700;color:var(--cp-navy)}
.cp-bar-track{position:relative;height:10px;background:var(--cp-line);border-radius:6px}
.cp-bar-fill{display:block;height:100%;border-radius:6px;background:#9aa3b2;transition:width 1.1s cubic-bezier(.2,.7,.2,1)}
.cp-bar.is-town .cp-bar-fill,.cp-bar.is-school .cp-bar-fill{background:linear-gradient(90deg,var(--cp-gold),#c98a24)}
.cp-tick{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--cp-navy)}
.cp-bar-val{font-weight:700;text-align:right}
.cp-arc{transition:stroke-dasharray 1.1s cubic-bezier(.2,.7,.2,1)}
.cp-anim .cp-spark{animation:cp-tw 2.4s ease-in-out 1}
@keyframes cp-tw{0%,100%{opacity:1}50%{opacity:.25}}
.cp-unique{background:linear-gradient(135deg,#fffdf9,var(--cp-soft));border-color:var(--cp-gold)}
.cp-unique-row{display:flex;gap:18px;align-items:center}
.cp-unique-row p{margin:0}
.cp-medal{flex:none}
.cp-school-list,.cp-grid{list-style:none;margin:0;padding:0}
.cp-school{display:flex;gap:14px;align-items:center;border:1px solid var(--cp-line);border-radius:12px;padding:10px 14px;margin:0 0 10px}
.cp-ring{flex:none}
.cp-school-body{flex:1;min-width:0}
.cp-school-name{margin:0 0 4px;font-weight:700;color:var(--cp-navy)}
.cp-school-meta{margin:6px 0 0;display:flex;gap:10px;align-items:center;font-size:.85rem}
.cp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cp-mini{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--cp-line);border-radius:12px;padding:12px 14px;background:#fffdf9;transition:transform .2s}
.cp-mini:hover{transform:translateY(-2px);border-color:var(--cp-gold)}
.cp-mini-ico{flex:none;background:var(--cp-soft);border-radius:50%;padding:6px;box-sizing:content-box}
.cp-mini p{margin:2px 0 0;font-size:.9rem}
.cp-how{margin:12px 0 0;font-size:.82rem;color:#5d6472}
.cp-how p{margin:.3em 0 0}.cp-how .cp-how-t{color:var(--cp-deep);font-weight:700}
@media (max-width:640px){.cp-grid{grid-template-columns:1fr}.cp-bar{grid-template-columns:1fr 3em}.cp-bar-label{grid-column:1/-1}.cp-unique-row{align-items:flex-start}.cp-medal{width:56px;height:56px}.cp-card{padding:16px}}
@media (prefers-reduced-motion:reduce){.cp-arc,.cp-bar-fill,.cp-mini{transition:none}.cp-anim .cp-spark{animation:none}}
/* Villes list tag (reusable) */
.city-profile-tag{display:inline-block;margin-left:6px;padding:0 8px;border:1px solid #c9a45c;border-radius:999px;color:#7a5a1e;font-size:.72rem;font-weight:600;line-height:1.6;text-decoration:none;vertical-align:middle;white-space:nowrap}
.city-profile-tag:hover,.city-profile-tag:focus{background:#f6eedc;color:#0e1a2b}
.cp-more{font-size:.85rem;margin:.2em 0 0;color:#3a4252}

/* ===== Key-data collapse (collapse_keydata.py) */
.kd-chips{display:flex;flex-wrap:wrap;gap:8px;margin:.6rem 0 .8rem;padding:0;list-style:none}
.kd-chip{flex:1 1 150px;min-width:0;border:1px solid #d9dee6;border-radius:10px;padding:8px 12px;background:#fff;line-height:1.25}
.kd-chip span{display:block;font-size:.75rem;color:#5d6472}.kd-chip strong{font-size:1rem;color:#0e1a2b}
.kd-more>summary{cursor:pointer;font-weight:600;color:#7a5a1e;padding:4px 0}.kd-more>summary:focus-visible{outline:2px solid #7a5a1e;outline-offset:2px}
.kd-more[open]>summary{margin-bottom:.5rem}
:root{interpolate-size:allow-keywords}
.kd-more>summary{transition:color .2s}.kd-more>summary:hover{color:#5c4314}
.kd-more::details-content{block-size:0;opacity:0;overflow:hidden;transition:block-size .35s cubic-bezier(.2,.7,.2,1),opacity .3s ease,content-visibility .35s allow-discrete}
.kd-more[open]::details-content{block-size:auto;opacity:1}
@media (prefers-reduced-motion:reduce){.kd-more::details-content{transition:none}}
@media (max-width:640px){.kd-chip{flex:1 1 calc(50% - 8px)}}

/* ===== IVL compact (compact_ivl.py) */
.ivl-wrap{position:relative;z-index:3;max-width:100%;scroll-margin-top:380px}
@media (min-width:900px){.ivl-wrap{scroll-margin-top:110px}}
.ivl-wrap .ivl-board.ivl-c{padding:.6rem .75rem .65rem !important}
.ivl-wrap .ivl-board.ivl-c .ivl-grade-title{font-size:.95rem !important;margin:0 0 .25rem !important;padding:0 0 .3rem !important;line-height:1.25 !important}
.ivl-wrap .ivl-board.ivl-c .ivl-sum{margin:0 0 .35rem;font-size:.78rem;line-height:1.35;color:var(--muted)}
.ivl-wrap .ivl-board.ivl-c .ivl-grade li,.ivl-wrap .ivl-board.ivl-c .ivl-grade li.is-shaded,.ivl-wrap .ivl-board.ivl-c .ivl-grade li.is-filled,.ivl-wrap .ivl-board.ivl-c .ivl-grade li.is-sourced{display:flex !important;flex-direction:row !important;flex-wrap:wrap !important;align-items:center !important;gap:0 .5rem !important;margin:0 !important;padding:.22rem 0 !important;border-radius:0 !important;box-shadow:none !important}
.ivl-wrap .ivl-board.ivl-c .ivl-grade-row{flex:1 1 100% !important;gap:0 !important}
.ivl-wrap .ivl-board.ivl-c .ivl-grade li .ivl-grade-short{font-size:.84rem !important;line-height:1.25 !important;font-weight:650}
.ivl-wrap .ivl-board.ivl-c .ivl-grade li .ivl-grade-glance{font-size:.84rem !important;line-height:1.25 !important;white-space:normal !important}
.ivl-wrap .ivl-board.ivl-c .ivl-grade li .ivl-grade-num{font-size:.78rem !important}
.ivl-wrap .ivl-board.ivl-c .ivl-grade li .ivl-count{min-width:1.35rem !important;height:1.35rem !important;font-size:.75rem !important}
.ivl-wrap .ivl-board.ivl-c .ivl-grade li .ivl-grade-detail{font-size:.68rem !important;line-height:1.22 !important;margin:0 !important}
.ivl-wrap .ivl-board.ivl-c .ivl-grade li .ivl-grade-value{display:inline-flex !important;width:auto !important;font-size:.7rem !important;line-height:1.2 !important;gap:0 .4rem !important}
.ivl-wrap .ivl-board.ivl-c .ivl-grade li .ivl-grade-value a{font-size:.7rem !important}
.ivl-wrap .ivl-board.ivl-c .ivl-grade li .ivl-stars{order:0 !important;margin:0 !important;font-size:.68rem !important;letter-spacing:0 !important;line-height:1 !important}
.ivl-wrap .ivl-board.ivl-c .ivl-grade-row,.ivl-wrap .ivl-board.ivl-c .ivl-grade-label{min-width:0;overflow-wrap:anywhere}
.ivl-wrap.ivl-js .ivl-board{overflow:hidden;transition:max-height .35s cubic-bezier(.2,.7,.2,1),opacity .3s ease,padding .35s cubic-bezier(.2,.7,.2,1)}
.ivl-wrap.is-collapsed .ivl-board{max-height:0 !important;opacity:0;padding-top:0 !important;padding-bottom:0 !important;border-width:0 !important}
.ivl-wrap.ivl-js .ivl-board .ivl-grade li{transition:opacity .15s ease,transform .15s cubic-bezier(.2,.7,.2,1)}
.ivl-wrap.is-collapsed .ivl-board .ivl-grade li{opacity:0;transform:translateY(6px);transition-delay:0s !important}
.ivl-wrap .ivl-board.ivl-c .ivl-grade li:nth-child(1){transition-delay:0ms}.ivl-wrap .ivl-board.ivl-c .ivl-grade li:nth-child(2){transition-delay:25ms}.ivl-wrap .ivl-board.ivl-c .ivl-grade li:nth-child(3){transition-delay:50ms}.ivl-wrap .ivl-board.ivl-c .ivl-grade li:nth-child(4){transition-delay:75ms}.ivl-wrap .ivl-board.ivl-c .ivl-grade li:nth-child(5){transition-delay:100ms}.ivl-wrap .ivl-board.ivl-c .ivl-grade li:nth-child(6){transition-delay:125ms}.ivl-wrap .ivl-board.ivl-c .ivl-grade li:nth-child(7){transition-delay:150ms}.ivl-wrap .ivl-board.ivl-c .ivl-grade li:nth-child(8){transition-delay:175ms}.ivl-wrap .ivl-board.ivl-c .ivl-grade li:nth-child(9){transition-delay:200ms}.ivl-wrap .ivl-board.ivl-c .ivl-grade li:nth-child(10){transition-delay:225ms}.ivl-wrap .ivl-board.ivl-c .ivl-grade li:nth-child(11){transition-delay:250ms}.ivl-wrap .ivl-board.ivl-c .ivl-grade li:nth-child(12){transition-delay:275ms}
.ivl-toggle{transition:box-shadow .25s ease,transform .2s ease,border-color .25s ease}
.ivl-toggle:hover,.ivl-toggle:focus-visible,.ivl-toggle:active{border-color:#c9a45c;box-shadow:0 0 0 1px rgba(201,164,92,.25),0 4px 14px rgba(201,164,92,.28);transform:translateY(-1px)}
.ivl-wrap.is-collapsed .ivl-toggle{box-shadow:0 0 0 1px rgba(201,164,92,.15),0 2px 10px rgba(201,164,92,.16)}
.ivl-toggle-lab::after{transition:transform .3s ease}
@media (prefers-reduced-motion:reduce){.ivl-wrap .ivl-board,.ivl-wrap .ivl-board .ivl-grade li,.ivl-toggle,.ivl-toggle-lab::after{transition:none !important;transform:none !important}}
.ivl-toggle{display:none;position:relative;z-index:3;width:100%;margin:.4rem 0 0;padding:.45rem .7rem;border:1px solid #e4d3a8;border-radius:12px;background:#fffdf7;color:#3a2e1c;font:inherit;font-size:.85rem;line-height:1.25;cursor:pointer;text-align:left;align-items:center;gap:.5rem;flex-wrap:wrap}
.ivl-js .ivl-toggle{display:flex}
.ivl-toggle-score{font-weight:750;color:#0e1a2b}.ivl-toggle-score small{font-weight:600;color:#7a5a1e;margin-right:.2rem}
.ivl-toggle-stars{color:#c9a45c;letter-spacing:.02rem;font-size:.8rem}.ivl-toggle-stars .off{color:#e4d3a8}
.ivl-toggle-lab{margin-left:auto;font-weight:650;color:#7a5a1e;display:inline-flex;align-items:center;gap:.3rem}
.ivl-toggle-lab::after{content:"";width:.42rem;height:.42rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.ivl-toggle[aria-expanded="true"] .ivl-toggle-lab::after{transform:translateY(2px) rotate(-135deg)}
.ivl-toggle:focus-visible{outline:2px solid #7a5a1e;outline-offset:2px}

/* ===== Neutral footnote (neutral_footnote.py) */
.cp-foot{margin:.9rem 0 0}
.cp-foot p{display:flex;align-items:flex-start;gap:7px;margin:.3rem 0 0;padding:.4rem .65rem;background:#FFF6D6;border-left:3px solid #FF7A59;border-radius:8px;font-size:.78rem;line-height:1.4;color:#3a2e1c}
.cp-foot .cp-neutral-ico{flex:none;margin-top:0}
.cp-ast{color:#FF7A59;font-weight:700}

/* ===== Review rows (collapse_reviews.py) */
.rv-js .sourced-review.rv{padding:0;overflow:hidden;transition:box-shadow .3s,border-color .3s}
.rv-js .sourced-review.rv.is-closed{box-shadow:0 0 0 1px rgba(201,164,92,.18),0 2px 10px rgba(201,164,92,.18)}
.rv-head{display:none;width:100%;align-items:center;gap:.5rem;padding:.55rem .8rem .2rem;border:0;background:none;font:inherit;text-align:left;color:var(--ink);cursor:pointer}
.rv-js .rv-head{display:flex}
.rv-head:focus-visible{outline:2px solid #7a5a1e;outline-offset:-2px;border-radius:10px}
.rv-ini{flex:none;width:1.7rem;height:1.7rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#f6efe2;color:#7a5a1e;font-weight:700;font-size:.8rem}
.rv-who{min-width:0;flex:1 1 auto;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .45rem;font-size:.85rem;line-height:1.3}
.rv-name{font-weight:650}.rv-stars{color:#c9a45c;letter-spacing:.02rem;font-size:.78rem}.rv-src{color:var(--muted);font-size:.75rem}
.rv-more{flex:none;display:inline-flex;align-items:center;gap:.3rem;color:var(--gold-deep,#7a5a1e);font-weight:650;font-size:.8rem}
.rv-more::after{content:"";width:.4rem;height:.4rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .3s ease}
.rv-head[aria-expanded="true"] .rv-more::after{transform:translateY(2px) rotate(-135deg)}
.rv-js .rv-body{padding:.15rem .8rem .6rem 3.0rem;overflow:hidden;transition:max-height .38s cubic-bezier(.2,.7,.2,1),opacity .38s ease}
.rv-js .rv.is-closed .rv-body{max-height:1.9em;opacity:.8}
.rv-js .rv.is-closed .rv-body > p:first-child{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}
.rv-js .rv.is-closed .rv-body > p:not(:first-child),.rv-js .rv.is-closed .rv-body > footer{visibility:hidden}
.rv-js .rv-body p{font-size:.92rem}
@media (max-width:640px){.rv-js .rv-body{padding-left:.8rem}}
@media (prefers-reduced-motion:reduce){.rv-js .rv-body,.rv-more::after,.rv-js .sourced-review.rv{transition:none}}
.tcx--reviews.is-collapsed > .tcx-body > .sourced-review:nth-child(n+4){display:none}

/* ===== TCX toggle (tcx_common.py) */
.tcx-btn{display:flex;align-items:center;justify-content:center;gap:.35rem;margin:.35rem auto .2rem;padding:.3rem .95rem;border:1px solid #e4d3a8;border-radius:999px;background:#fff;color:#7a5a1e;font:inherit;font-size:.85rem;font-weight:600;line-height:1.3;cursor:pointer;position:relative;z-index:2}
.tcx-btn[hidden]{display:none}
.tcx-btn::after{content:"";width:.45rem;height:.45rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.tcx-btn[aria-expanded="true"]::after{transform:translateY(2px) rotate(-135deg)}
.tcx-btn:focus-visible{outline:2px solid #7a5a1e;outline-offset:2px}
.tcx--text .tcx-btn{margin:.2rem 0 .3rem;padding:.15rem .7rem;font-size:.8rem}
@property --tcxf{syntax:"<percentage>";inherits:false;initial-value:100%}
.tcx--text > .tcx-body{--tcxf:100%;-webkit-mask-image:linear-gradient(#000 var(--tcxf),transparent);mask-image:linear-gradient(#000 var(--tcxf),transparent)}
.tcx--text.tcx-on > .tcx-body{overflow:hidden;transition:max-height .35s cubic-bezier(.2,.7,.2,1),--tcxf .35s ease}
.tcx--text.is-collapsed > .tcx-body{max-height:4.35em;--tcxf:55%}
.tcx-btn{transition:box-shadow .25s ease,transform .2s ease,border-color .25s}.tcx-btn:hover,.tcx-btn:focus-visible,.tcx-btn:active{border-color:#c9a45c;box-shadow:0 3px 12px rgba(201,164,92,.25);transform:translateY(-1px)}
.tcx-btn::after{transition:transform .3s ease}
@media (prefers-reduced-motion:reduce){.tcx--text > .tcx-body,.tcx-btn,.tcx-btn::after{transition:none !important;transform:none !important}}
.tcx--reviews.is-collapsed > .tcx-body > .sourced-review:nth-child(n+4){display:none}

/* ===== Profile up (move_profile_up.py) */
@media (max-width:759px){.site-header{position:static}.ivl-wrap{scroll-margin-top:12px}}
.cp-top{margin:0 0 1.2rem}.cp-top .city-data{margin-top:.6rem}
/* city_links_v2 */
h2 .town-link,h3 .town-link,h4 .town-link{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}
.card .town-link{position:relative;z-index:2}
/* heading_links */
h1 .town-link,h5 .town-link,h6 .town-link{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}

/* ===== RVBOX: single immersive review carousel (rv_box.py) */
.rvbox{--rx:0deg;--ry:0deg;position:relative;isolation:isolate;margin:.2rem 0 .4rem;padding:1.5rem 1.25rem 1rem;border-radius:22px;color:#f3ead6;background:radial-gradient(120% 90% at 85% -10%,rgba(201,162,74,.22),transparent 55%),radial-gradient(90% 70% at 0% 110%,rgba(58,92,150,.35),transparent 60%),linear-gradient(160deg,#10243f 0%,#0b1830 55%,#070f1f 100%);box-shadow:0 18px 40px -18px rgba(7,15,31,.75),inset 0 1px 0 rgba(255,255,255,.06);transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .5s cubic-bezier(.2,.7,.2,1);overflow:hidden}
.rvbox::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;padding:1.5px;background:conic-gradient(from var(--rva,0deg),rgba(201,162,74,.15),#c9a24a,rgba(255,236,190,.9),#c9a24a,rgba(201,162,74,.15) 60%,rgba(201,162,74,.15));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:rvspin 9s linear infinite}
@property --rva{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes rvspin{to{--rva:360deg}}
.rvbox-fx{position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(1.5px 1.5px at 12% 22%,rgba(255,230,170,.9),transparent),radial-gradient(1px 1px at 78% 18%,rgba(255,230,170,.8),transparent),radial-gradient(1.5px 1.5px at 62% 74%,rgba(255,230,170,.7),transparent),radial-gradient(1px 1px at 28% 82%,rgba(255,230,170,.8),transparent),radial-gradient(1.2px 1.2px at 90% 58%,rgba(255,230,170,.7),transparent),radial-gradient(1px 1px at 44% 40%,rgba(255,230,170,.5),transparent);animation:rvspark 6s ease-in-out infinite alternate}
@keyframes rvspark{0%{opacity:.35;transform:translateY(0)}100%{opacity:.9;transform:translateY(-6px)}}
.rvbox-q{position:absolute;top:-.35rem;right:.9rem;font:700 6.5rem/1 Georgia,serif;color:#c9a24a;opacity:.28;pointer-events:none;text-shadow:0 0 24px rgba(201,162,74,.6)}
.rvbox .sourced-review.rvs{margin:0;padding:0;background:none;border:0;border-radius:0}
.rvbox .rvs + .rvs{margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid rgba(201,162,74,.25)}
.rvbox.rv-on .rvs + .rvs{margin:0;padding:0;border:0}
.rvbox .rvs[hidden]{display:none}
.rvbox.rv-on .rvs{animation:rvin .55s cubic-bezier(.2,.7,.2,1) both}
.rvbox.rv-on .rvs.from-l{animation-name:rvinl}
@keyframes rvin{from{opacity:0;transform:translateX(18px) scale(.96);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes rvinl{from{opacity:0;transform:translateX(-18px) scale(.96);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
.rvs-head{display:flex;align-items:center;gap:.6rem;margin:0 3rem .65rem 0}
.rvbox .rv-ini{width:2rem;height:2rem;font-size:.9rem;background:linear-gradient(135deg,#e7c97a,#c9a24a);color:#10243f;box-shadow:0 0 0 3px rgba(201,162,74,.2),0 0 14px rgba(201,162,74,.45)}
.rvbox .rv-who{font-size:.9rem}.rvbox .rv-name{color:#fff}.rvbox .rv-stars{color:#e7c97a;font-size:.85rem}.rvbox .rv-src{color:#c6cfdd}
.rvbox .rvs-text p{margin:0 0 .45rem;font-size:1.02rem;line-height:1.55;color:#f3ead6}
.rvbox .rvs-text p:last-child{margin-bottom:0}
.rvbox.rv-on .rvs-text.is-clamp{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.rvbox.rv-on .rvs-text.is-clamp p{display:inline}.rvbox.rv-on .rvs-text.is-clamp p+p::before{content:" "}
.rvs-more{margin:.3rem 0 0;padding:0;border:0;background:none;font:inherit;font-size:.85rem;font-weight:650;color:#e7c97a;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.rvbox .sourced-review footer{margin-top:.6rem;font-size:.8rem}
.rvbox .sourced-review footer a,.rvbox .rvs-text a{color:#e7c97a}
.rvbox-nav{display:flex;align-items:center;gap:.6rem;margin-top:1rem;padding-top:.8rem;border-top:1px solid rgba(201,162,74,.22)}
.rvbox-nav[hidden]{display:none}
.rvbox-arw{flex:none;width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid rgba(201,162,74,.6);background:rgba(16,36,63,.6);color:#e7c97a;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:box-shadow .25s,background .25s}
.rvbox-arw::before{content:"";width:.5rem;height:.5rem;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateX(2px) rotate(45deg)}
.rvbox-next::before{transform:translateX(-2px) rotate(-135deg)}
.rvbox-arw:hover,.rvbox-arw:focus-visible{background:#c9a24a;color:#10243f;box-shadow:0 0 16px rgba(201,162,74,.6);outline:none}
.rvbox-dots{flex:1;display:flex;justify-content:center;flex-wrap:wrap;gap:.1rem}
.rvbox-dot{width:24px;height:24px;padding:0;border:0;background:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.rvbox-dot::before{content:"";width:7px;height:7px;border-radius:99px;background:rgba(231,201,122,.35);transition:width .3s,background .3s}
.rvbox-dot[aria-current="true"]::before{width:20px;background:#e7c97a;box-shadow:0 0 8px rgba(231,201,122,.7)}
.rvbox-dot:focus-visible{outline:2px solid #e7c97a;border-radius:6px}
.rvbox-count{flex:none;font-size:.8rem;color:#c6cfdd;font-variant-numeric:tabular-nums}
.rvbox :focus-visible{outline-color:#e7c97a}
@media (max-width:640px){.rvbox{padding:1.25rem 1rem .9rem}.rvbox-q{font-size:5rem}}
@media (prefers-reduced-motion:reduce){.rvbox,.rvbox::before,.rvbox-fx,.rvbox.rv-on .rvs,.rvbox-dot::before,.rvbox-arw{animation:none !important;transition:none !important;transform:none !important}.rvbox-fx{opacity:.5}}
/* related brokers separator */
.related-brokers{margin-top:3rem;padding-top:2rem;border-top:1px solid rgba(0,0,0,.12)}
.related-brokers>.section-title{margin-top:0}

/* TCV chips clamp */
.chips.tcv-on{overflow:hidden;transition:max-height .38s cubic-bezier(.2,.7,.2,1);margin-bottom:.4rem;padding:2px;margin-left:-2px;margin-right:-2px}
.tcv-btn{margin:.4rem auto 2rem}
@media (prefers-reduced-motion:reduce){.chips.tcv-on{transition:none}}
/* /TCV */
/* ===== TC1P one-paragraph collapse (collapse1p.py) */
.tc1p-btn{margin:.5rem 0 .6rem}
.tc1p-on > .tc1p-more,.tc1p-on.tc1p-more{overflow:hidden}
.tc1p-more{transition:height .38s cubic-bezier(.2,.7,.2,1),opacity .3s ease}
.tc1p-more.is-closed{height:0;opacity:0;visibility:hidden;overflow:hidden}
.tc1p-more.is-anim{overflow:hidden;visibility:visible}
.art .tc1p-btn,.page.narrow .tc1p-btn{font-size:.95rem}
.rv-dark .tc1p-btn{background:transparent}
@media (prefers-reduced-motion:reduce){.tc1p-more{transition:none !important}}
/* ===== /TC1P */

/* tc415-nav: organized mobile header nav (grid of equal links + full-width CTA) */
@media (max-width:759px){
  .header-inner{flex-direction:column;align-items:stretch;gap:.85rem}
  .site-header nav{display:grid;grid-template-columns:repeat(6,1fr);gap:0;width:100%;flex-wrap:nowrap;border-top:1px solid rgba(201,164,92,.35)}
  .site-header nav a{grid-column:span 2;display:flex;align-items:center;justify-content:center;text-align:center;font-size:1rem;line-height:1.2;padding:.7rem .25rem;border-bottom:1px solid rgba(201,164,92,.2);white-space:normal;min-width:0}
  .site-header nav a:nth-child(2),.site-header nav a:nth-child(3){border-left:1px solid rgba(201,164,92,.2)}
  .site-header nav a[href*="calculatrice"]{grid-column:span 3;order:4}
  .site-header nav a[href*="a-propos"]{grid-column:span 3;order:5;border-left:1px solid rgba(201,164,92,.2)}
  .site-header nav a[href*="agences-immobilieres"]{grid-column:1/-1;order:6}
  .site-header nav a.nav-cta{grid-column:1/-1;order:7;margin-top:.75rem;padding:.75rem 1rem;border:1px solid var(--gold);border-bottom:1px solid var(--gold);border-radius:999px;background:var(--gold);color:var(--ink)!important;font-weight:600}
}
@media (min-width:760px){.site-header nav{display:flex;align-items:center}.site-header nav a.nav-cta{order:99;margin-left:.4rem}}

/* tc416: Pierre Grégoire, top tab « Félicitations première année » (scoped to .tc-1re only) */
.card-photo,.profile-photo{position:relative}
.tc-1re{position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:.22rem;
  padding:.4rem .9rem .45rem;background:linear-gradient(180deg,#0e1a2b,#16263d);border:1px solid var(--gold,#c9a45c);border-top:0;
  border-radius:0 0 10px 10px;box-shadow:0 4px 12px rgba(0,0,0,.35);pointer-events:none;line-height:1;white-space:nowrap}
.tc-1re-a{font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:.8rem;color:#e6c98a;letter-spacing:.02em}
.tc-1re::before{content:"";width:18px;height:1px;background:var(--gold,#c9a45c);order:1}
.tc-1re-b{order:2;font-size:.55rem;text-transform:uppercase;letter-spacing:.16em;color:#f5efe3;font-weight:600}
.profile-photo.has-1re .tc-1re{padding:.55rem 1.3rem .6rem;gap:.3rem}
.profile-photo.has-1re .tc-1re-a{font-size:1.05rem}
.profile-photo.has-1re .tc-1re-b{font-size:.68rem}
.tc-1re{width:64%;box-sizing:border-box;padding-left:1rem;padding-right:1rem}
.profile-photo.has-1re .tc-1re{width:64%;padding-left:1.5rem;padding-right:1.5rem}
.tc-1re{z-index:3}
.tc-1re-cut{position:absolute;left:0;top:0;width:100% !important;height:auto !important;max-height:none !important;z-index:4;pointer-events:none;object-fit:contain !important;border-radius:inherit}
.card-photo .ivl,.profile-photo .photo-overlay{z-index:5}
.card-photo img.tc-1re-cut,.profile-photo img.tc-1re-cut{position:absolute !important;left:0 !important;top:0 !important;margin:0 !important}
.card:hover .card-photo img.tc-1re-cut{transform:scale(1.03)}
.grid .card:hover .card-photo img.tc-1re-cut{transform:none}
/* one-line tab so the hair overlaps only its lower edge */
.tc-1re{flex-direction:row;justify-content:center;gap:.45rem;padding-top:.32rem;padding-bottom:.36rem}
.tc-1re::before{width:1px;height:10px}
.profile-photo.has-1re .tc-1re{gap:.6rem;padding-top:.42rem;padding-bottom:.46rem}
.tc-1re,.profile-photo.has-1re .tc-1re{width:auto;min-width:64%;max-width:96%}
@media (max-width:480px){.profile-photo.has-1re .tc-1re-a{font-size:.92rem}.profile-photo.has-1re .tc-1re-b{font-size:.6rem;letter-spacing:.12em}.profile-photo.has-1re .tc-1re{padding-left:1rem;padding-right:1rem}}
.card-photo:has(.tc-1re){container-type:inline-size}
@container (max-width:260px){
  .card-photo .tc-1re{flex-direction:column;gap:.12rem;padding:.22rem .6rem .26rem;min-width:70%}
  .card-photo .tc-1re::before{width:14px;height:1px}
  .card-photo .tc-1re-a{font-size:.66rem}
  .card-photo .tc-1re-b{font-size:.46rem;letter-spacing:.12em}
}
@container (max-width:260px){
  .card-photo .tc-1re{flex-direction:row;gap:.25rem;padding:.2rem .45rem .22rem;min-width:0;max-width:96%}
  .card-photo .tc-1re::before{width:1px;height:7px}
  .card-photo .tc-1re-a{font-size:.6rem}
  .card-photo .tc-1re-b{font-size:.42rem;letter-spacing:.06em}
}

/* tc417: tab + cutout are hidden in markup; only shown when this stylesheet loads */
.tc-1re[hidden]{display:flex !important}
img.tc-1re-cut[hidden]{display:block !important}

/* tc418: home page only, compact broker cards in "La sélection" (#grid). Other pages unchanged. */
body.home #grid .card .card-title,
body.home #grid .card .card-bio,
body.home #grid .card .ivl-criteria-note,
body.home #grid .card .card-actions .btn:not(.btn-solid){display:none !important}
body.home #grid .card .card-body{gap:.35rem}
body.home #grid .card .card-actions{margin-top:.35rem}
body.home #resultats{padding-bottom:2.5rem}

/* tc420: city-strip text readable on dark strip (links inside were navy) */
.card-territory a,.card-territory .town-link{color:#f5efe3 !important;text-decoration-color:rgba(201,164,92,.6)}
/* tc420: Pierre's miniature tile (.tc-1re-tile): tab + hair cutout aligned with tile photo (cover, center 18%) */
.tile-photo img.tc-1re-cut{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;object-fit:cover !important;object-position:center 18% !important;border-radius:0}
.city-tile:hover .tile-photo img.tc-1re-cut{transform:scale(1.04)}
.tile-photo:has(.tc-1re){container-type:inline-size}
.tile-photo .tc-1re{min-width:0;max-width:96%;flex-direction:row;gap:.3rem;padding:.24rem .6rem .26rem}
.tile-photo .tc-1re::before{width:1px;height:8px}
.tile-photo .tc-1re-a{font-size:.68rem}
.tile-photo .tc-1re-b{font-size:.48rem;letter-spacing:.08em}
@container (max-width:200px){
  .tile-photo .tc-1re{gap:.22rem;padding:.18rem .42rem .2rem}
  .tile-photo .tc-1re-a{font-size:.58rem}
  .tile-photo .tc-1re-b{font-size:.4rem;letter-spacing:.05em}
}
.tc-1re-tile .tile-body{z-index:5}

/* tc421: header CTA pill removed from markup; discreet footnote link on home above the Champions tiles */
.tc-courtier-note{text-align:center;margin-top:1.4rem;margin-bottom:-.4rem;font-size:.82rem;line-height:1.4}
.tc-courtier-note a{color:rgba(230,201,138,.85);text-decoration:underline;text-decoration-color:rgba(201,164,92,.45);text-underline-offset:3px;letter-spacing:.01em}
.tc-courtier-note a:hover{color:#e6c98a;text-decoration-color:#e6c98a}

/* tc428: tc422 footnote override removed -> Retour back to the original data-tc404 pill (pre-tc422); Radar is a sibling pill */
.tc-back-wrap>.container{flex-wrap:nowrap}

/* tc423: "Courtiers" (home) as first menu item; phone grid 3+3+1 */
@media (max-width:759px){
  .site-header nav a[href*="calculatrice"],.site-header nav a[href*="a-propos"]{grid-column:span 2;order:0}
  .site-header nav a[href*="calculatrice"]{border-left:1px solid rgba(201,164,92,.2)}
}

/* tc427: Radar link opposite Retour, styled exactly like .tc-back */
.tc-back-wrap>.container{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:nowrap}
.tc-radar{flex:0 0 auto;white-space:nowrap}

/* tc430: everywhere incl. homepage (Retour + Radar on home): Retour is plain text, no pill */
.tc-back-wrap{padding:.5rem 0 .1rem;min-height:0}
.tc-back-wrap .tc-back{display:inline-flex;align-items:center;gap:.35rem;min-height:40px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;
  font-family:inherit;font-size:15px;font-weight:500;line-height:1;color:rgba(255,255,255,.85);text-decoration:none}
.tc-back-wrap .tc-back:hover,.tc-back-wrap .tc-back:focus-visible{background:none;border:0;color:#fff;text-decoration:underline;text-underline-offset:4px}
/* tc436 glow + double ring */
html body .brand .brand-mark{border:1px solid #c9a45c!important;background:#0e1a2b;box-shadow:0 0 0 2px #0e1a2b,0 0 0 3px #c9a45c,0 0 16px 3px rgba(201,164,92,.4);text-shadow:0 0 6px rgba(226,200,143,.55)}
html body .brand .brand-mark::after{content:none!important;display:none!important;animation:none!important}
html body .brand .brand-mark{position:relative;isolation:isolate;animation:tc437-breathe 3s ease-in-out infinite}
html body .brand .brand-mark::before{content:""!important;display:block!important;position:absolute;inset:-4.5px;border-radius:50%;pointer-events:none;background:conic-gradient(from 0deg,rgba(255,244,214,0) 0deg,rgba(255,244,214,0) 290deg,rgba(226,200,143,.5) 325deg,#fff7e0 350deg,rgba(255,244,214,0) 360deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#000 calc(100% - 2px));filter:drop-shadow(0 0 3px rgba(255,236,190,.8));animation:tc437-sweep 5s linear infinite!important}
@keyframes tc437-sweep{to{transform:rotate(360deg)}}
@keyframes tc437-breathe{0%,100%{box-shadow:0 0 0 2px #0e1a2b,0 0 0 3px #c9a45c,0 0 14px 2px rgba(201,164,92,.32)}50%{box-shadow:0 0 0 2px #0e1a2b,0 0 0 3px #c9a45c,0 0 20px 4px rgba(201,164,92,.48)}}
@media (prefers-reduced-motion:reduce){html body .brand .brand-mark{animation:none!important}html body .brand .brand-mark::before{animation:none!important;display:none!important}}

/* tc441: 8e lien de navigation (Hypothécaires) — grille mobile 3 + 2 + 2 + 1 */
@media (max-width:759px){
  .site-header nav a[href*="restaurants"],.site-header nav a[href*="courtiers-hypothecaires"],.site-header nav a[href*="calculatrice"],.site-header nav a[href*="a-propos"]{grid-column:span 3;order:0}
  .site-header nav a[href*="courtiers-hypothecaires"],.site-header nav a[href*="a-propos"]{border-left:1px solid rgba(201,164,92,.2)}
  .site-header nav a[href*="calculatrice"]{border-left:0}
}
/* tc441: carrefour local (hub) — or/marine = courtiers immobiliers, sarcelle = courtiers hypothécaires, cuivre = entrepreneurs */
.tc-hub{--hub-gold:#c9a45c;--hub-navy:#0e1a2b;--hub-teal:#2f6f73;--hub-copper:#9a5b3c;margin:0 0 2rem}
.tc-hub-intro{max-width:62ch;margin:0 0 1.25rem;color:var(--text)}
.tc-hub-jump{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.5rem;padding:0;list-style:none}
.tc-hub-jump a{display:inline-flex;align-items:center;min-height:44px;padding:.35rem .95rem;border-radius:999px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:600;font-size:.95rem;background:#fff}
.tc-hub-jump a[href="#hub-courtiers"]{border-color:var(--hub-gold)}
.tc-hub-jump a[href="#hub-hypothecaires"]{border-color:var(--hub-teal)}
.tc-hub-jump a[href="#hub-entrepreneurs"]{border-color:var(--hub-copper)}
.tc-hub-sec{border-left:4px solid var(--hub-gold);padding:.25rem 0 .25rem 1rem;margin:0 0 1.75rem;scroll-margin-top:16px}
.tc-hub-sec h2{margin:0 0 .35rem;font-family:var(--serif)}
.tc-hub-sec .tc-hub-kicker{margin:0 0 .75rem;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--gold-deep)}
.tc-hub-sec--hyp{border-left-color:var(--hub-teal)}
.tc-hub-sec--hyp .tc-hub-kicker{color:var(--hub-teal)}
.tc-hub-sec--ent{border-left-color:var(--hub-copper)}
.tc-hub-sec--ent .tc-hub-kicker{color:#9a5b3c}
.tc-hub-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin:0;padding:0;list-style:none}
.tc-hub-person a{display:flex;gap:.8rem;align-items:center;padding:.6rem;border:1px solid var(--line);border-radius:14px;background:#fff;text-decoration:none;color:var(--ink);min-height:44px}
.tc-hub-person a:hover,.tc-hub-person a:focus-visible{border-color:var(--hub-gold)}
.tc-hub-person img{width:64px;height:80px;object-fit:cover;object-position:center 18%;border-radius:10px;flex:0 0 auto}
.tc-hub-person strong{display:block;font-size:1rem;line-height:1.25}
.tc-hub-person span{display:block;font-size:.88rem;color:var(--muted);line-height:1.35}
.tc-hub-empty{margin:0;padding:.85rem 1rem;border:1px dashed var(--line);border-radius:12px;background:#fffdf9;color:var(--muted)}
.tc-hub-empty a{font-weight:600}
.tc-seealso{margin:2rem 0 1rem}
.tc-seealso-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0;padding:0;list-style:none}
@media (min-width:760px){.tc-seealso-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tc-seealso-grid a{display:flex;align-items:center;gap:.7rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:12px;background:#fff;text-decoration:none;color:var(--ink);min-height:56px}
.tc-seealso-grid a:hover,.tc-seealso-grid a:focus-visible{border-color:var(--gold)}
.tc-seealso-thumb{flex:0 0 44px;width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#17294a,#0e1a2b);color:#e2c88f;font-family:var(--serif);font-weight:700;font-size:1rem;letter-spacing:.02em;border:1px solid rgba(201,164,92,.55)}
.tc-seealso-grid strong{display:block;font-size:.95rem;line-height:1.2}
.tc-seealso-grid span.l{display:block;font-size:.82rem;color:var(--muted);line-height:1.3}
.tc-hub-links{margin:.75rem 0 0}
.tc-hub-links a{color:#e2c88f}
/* page catégorie courtiers hypothécaires */
.tc-cat-hyp .eyebrow{color:#9fd0cf}
@media (max-width:560px){.tc-hub-person a{flex-direction:column;align-items:flex-start;gap:.5rem}.tc-hub-person a>span{min-width:0;overflow-wrap:anywhere}}
.tc-seealso-grid a>span:last-child{min-width:0;overflow-wrap:break-word;hyphens:manual}
@media (max-width:560px){.tc-seealso-grid strong{font-size:.85rem!important}.tc-seealso-grid a{gap:.5rem;padding:.5rem}.tc-seealso-thumb{flex-basis:36px;width:36px;height:36px;font-size:.85rem}.tc-seealso-grid strong{font-size:.9rem}}
/* tc441: CLS fix — immersive.css passe tous les enfants de body en position:relative, ce qui remet le lien d'évitement (left:-999px) dans le flux et pousse l'en-tête de ~25 px après le chargement. On le garde hors flux. */
html.imm body>a.skip-link{position:absolute;z-index:20}
/* tc441 v2: héros photo local (style maquette « photos locales ») */
.page-hero--photo{position:relative;min-height:min(68vh,560px);display:flex;align-items:flex-end;padding:5.5rem 0 2.2rem;background:#0e1a2b}
.page-hero--photo::before{display:none}
.page-hero--photo .photo-hero-pic,.page-hero--photo .photo-hero-img{position:absolute;inset:0;width:100%;height:100%}
.page-hero--photo .photo-hero-img{object-fit:cover;object-position:center 40%}
.page-hero--photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,26,43,.35) 0%,rgba(14,26,43,.45) 40%,rgba(10,18,32,.92) 100%);pointer-events:none}
.page-hero--photo>.container{position:relative;z-index:1;width:min(1200px,92%)}
.page-hero--photo h1,.page-hero--photo .city-answer,.page-hero--photo .eyebrow,.page-hero--photo .photo-caption,.page-hero--photo .breadcrumbs{text-shadow:0 2px 16px rgba(10,18,32,.7)}
.page-hero--photo .city-answer{color:#ece6da}
.photo-caption{margin:.8rem 0 0;font-size:.8rem;color:#d4ccbe;max-width:70ch}
.photo-caption a{color:#e2c88f}
@media (max-width:700px){.page-hero--photo{min-height:420px;padding-top:4rem}}
/* onglets à côté des statistiques de la ville */
.tc-ctabs{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 .75rem}
.tc-ctab{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.45rem 1rem;border-radius:999px;border:1px solid #c9a45c;background:#fff;color:#0e1a2b;font-weight:600;text-decoration:none;font-size:.95rem}
.tc-ctab.is-on{background:#0e1a2b;color:#f3e7c8;border-color:#0e1a2b}
.tc-ctab--map svg{color:#c9a45c}
/* carte */
.tc-map-block{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,.8fr);gap:1.2rem;margin:0 0 1.5rem;align-items:stretch}
.tc-map-block[hidden]{display:none}
.tc-map-frame{position:relative;background:#e8efe6;border:1px solid #c9a45c;border-radius:16px;overflow:hidden;min-height:420px}
#carte-leaflet{width:100%;height:100%;min-height:420px}
.tc-map-caption{position:absolute;left:.8rem;bottom:.8rem;z-index:500;background:rgba(250,247,241,.94);border:1px solid var(--line);border-radius:10px;padding:.4rem .7rem;font-size:.75rem;color:var(--muted);max-width:min(90%,28rem);pointer-events:none;margin:0}
.tc-map-fallback{position:absolute;top:1rem;left:1rem;z-index:501;margin:0;background:#fff;padding:.5rem .8rem;border-radius:10px}
.tc-map-legend{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.2rem 1.3rem}
.tc-map-legend .eyebrow{color:var(--gold-deep);margin:0 0 .3rem}
.tc-map-legend h2{margin:0 0 .4rem;font-size:1.35rem}
.tc-map-legend p{margin:0 0 1rem;font-size:.9rem;color:var(--muted)}
.tc-map-key{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.7rem}
.tc-map-key li{display:flex;align-items:flex-start;gap:.7rem;font-size:.92rem}
.tc-swatch{width:1.15rem;height:1.15rem;flex:none;margin-top:.15rem;background:#c9a45c;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);box-shadow:none}
.tc-swatch--copper{background:transparent;border:0;border-radius:0;clip-path:none;box-shadow:none;width:1.15rem;height:1.5rem;display:grid;place-items:center;margin-top:.05rem}
.tc-swatch--copper svg{display:block;width:100%;height:100%;filter:drop-shadow(0 1px 2px rgba(14,26,43,.25))}
.tc-map-legend .tc-map-credit{font-size:.78rem;margin:0}
.tc-pin{background:transparent;border:0}
.tc-pin-dot{display:grid;place-items:center;width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--pin,#c9a45c);border:2px solid #fff;box-shadow:0 4px 10px rgba(14,26,43,.28);color:#0e1a2b;font:700 11px/1 Inter,system-ui,sans-serif}
.tc-pin-dot>span{transform:rotate(45deg);display:block}
/* tc446 — keep Leaflet from painting a white 28px box over pins (leaflet.css loads after this file), and draw a clear letter on copper/silver drops */
.leaflet-div-icon.tc-pin,.leaflet-marker-icon.tc-pin{background:transparent!important;border:0!important;overflow:visible!important;box-shadow:none}
.tc-pin-drop{display:block;filter:drop-shadow(0 3px 6px rgba(14,26,43,.28))}

.tc-pin-note{font-size:.8rem;color:#5d6472;margin-top:.2rem}
@media (max-width:860px){.tc-map-block{grid-template-columns:1fr}.tc-map-frame,#carte-leaflet{min-height:320px}}
/* voir aussi sur les fiches */
.tc-seealso-photo{flex:0 0 44px;width:44px;height:55px;object-fit:cover;object-position:center 18%;border-radius:10px;border:1px solid rgba(201,164,92,.55)}
.tc-seealso-thumb--ent{background:linear-gradient(160deg,#3a2117,#2a1812);color:#e8c4ad;border-color:#9a5b3c}
.tc-seealso-slot--ent a{border-color:rgba(154,91,60,.45)}
.tc-seealso-slot--ent a:hover,.tc-seealso-slot--ent a:focus-visible{border-color:#9a5b3c}
.tc-hub-empty--ent{border-color:rgba(154,91,60,.5)}

/* tc442 villes tiles */
.vt{margin:0 0 2rem}
.vt-intro{max-width:72ch;color:var(--muted);margin:.2rem 0 1rem;font-size:.95rem}
.vt-grid{list-style:none;margin:0;padding:.35rem .35rem .6rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem;max-height:34rem;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line,#e6dfd1);border-radius:16px;background:#fbf8f2}
.vt-grid>li{margin:0}
.vt-grid>li[hidden]{display:none}
.vt-grid .city-tile{aspect-ratio:4/3;border-radius:12px;box-shadow:0 2px 8px rgba(14,26,43,.12)}
.vt-grid .city-tile:hover{transform:translateY(-2px)}
.vt-grid .city-tile::after{inset:5px;border-radius:9px}
.vt-grid .tile-photo,.vt-grid .tile-photo picture,.vt-grid .tile-photo img{position:absolute;inset:0;width:100%;height:100%;display:block}
.vt-grid .tile-photo img{object-fit:cover}
.vt-grid .tile-empty{padding:0;justify-content:center}
.vt-grid .tile-empty::before{content:"\2605";color:var(--gold-2,#e2c88f);font-size:1.3rem;opacity:.8;margin-top:-1.6rem}
.vt-grid .tile-body{display:block;padding:1.6rem .6rem .5rem}
.vt-grid .tile-region{display:block;font-size:.58rem;letter-spacing:.12em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vt-grid .tile-city{display:block;margin:.1rem 0 0;font-family:var(--serif);font-size:.98rem;line-height:1.15;color:#fff;overflow-wrap:anywhere}
.vt-vide{color:var(--muted);margin:.6rem 0 0}
.vt-credits{margin:.8rem 0 0;font-size:.8rem;color:var(--muted)}
.vt-credits summary{cursor:pointer;display:inline;font-weight:500;color:var(--ink,#0e1a2b);text-decoration:underline;text-underline-offset:3px;list-style:none}
.vt-credits summary::-webkit-details-marker{display:none}
.vt-credits summary::marker{content:""}
.vt-credits summary:hover,.vt-credits summary:focus-visible{color:var(--gold,#c9a45c)}
.vt-credits-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.vt-credits ul{margin:.4rem 0 .3rem;padding-left:1.1rem;columns:2 22rem;column-gap:2rem}
.vt-credits li{break-inside:avoid;margin:0 0 .15rem}
.vt-credits p{margin:0}
@media (max-width:560px){.vt-grid{grid-template-columns:repeat(2,1fr);max-height:28rem}.vt-grid .tile-city{font-size:.9rem}}
/* tc443 — onglet Quartier hypothécaire (sarcelle = hypothécaires ; or = courtiers immobiliers ; cuivre = entrepreneurs) */
.tc-ctab--hyp{border-color:var(--hub-teal,#2f6f73)}
.tc-ctab--hyp svg{color:var(--hub-teal,#2f6f73)}
.tc-ctab--hyp.is-on{background:var(--hub-teal,#2f6f73);border-color:var(--hub-teal,#2f6f73);color:#fff}
.tc-ctab--hyp.is-on svg{color:#fff}
.tc-hyp-block{margin:0 0 1.5rem;padding:1.1rem 1.25rem;border:1px solid rgba(47,111,115,.35);border-left:4px solid var(--hub-teal,#2f6f73);border-radius:14px;background:#f3f8f8}
.tc-hyp-block[hidden]{display:none}
.tc-hyp-block .eyebrow{color:var(--hub-teal,#2f6f73)}
.tc-hyp-block h2{margin:.2rem 0 .5rem}
.tc-hyp-note{font-size:.9rem;color:var(--muted)}
.tc-hyp-block a{color:var(--hub-teal,#2f6f73)}
/* tc443 — vignettes « Voir aussi » avec photo locale de la ville voisine */
.tc-seealso-cityphoto{flex:0 0 44px;width:44px;height:44px;object-fit:cover;border-radius:10px;border:1px solid rgba(201,164,92,.55)}
@media (max-width:759px){.tc-seealso-cityphoto{flex-basis:36px;width:36px;height:36px}}
.tc-seealso-credit{margin:.5rem 0 0;font-size:.75rem;color:var(--muted)}
.tc-seealso-credit a{color:inherit}
/* tc443 — fiches entrepreneurs (cuivre) et courtiers hypothécaires (sarcelle) */
.tc-hub-person .tc-seealso-thumb{display:flex;flex:0 0 44px;width:44px;height:44px;font-size:.95rem;color:#e2c88f}
.tc-hub-person .tc-seealso-thumb--ent{color:#e8c4ad}
.tc-seealso-thumb--hyp,.tc-hub-person .tc-seealso-thumb--hyp{background:linear-gradient(160deg,#1d4a4d,#12302f);color:#cfe7e6;border-color:var(--hub-teal,#2f6f73)}
.tc-hub-sec--ent .tc-hub-person a:hover,.tc-hub-sec--ent .tc-hub-person a:focus-visible{border-color:var(--hub-copper,#9a5b3c)}
.tc-hub-sec--hyp .tc-hub-person a:hover,.tc-hub-sec--hyp .tc-hub-person a:focus-visible{border-color:var(--hub-teal,#2f6f73)}
.tc-cat-ent .eyebrow{color:#e8c4ad}
.tc-ent-fiche{margin:0 0 2rem}
.tc-ent-card{display:flex;gap:1.2rem;align-items:flex-start;padding:1.2rem 1.3rem;background:#fff;border:1px solid var(--line,#e6dfd1);border-left:4px solid var(--hub-copper,#9a5b3c);border-radius:16px}
.tc-hyp-card{border-left-color:var(--hub-teal,#2f6f73)}
.tc-ent-avatar{flex:0 0 72px;width:72px;height:72px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#17294a,#0e1a2b);color:#e8c4ad;font-family:var(--serif);font-weight:700;font-size:1.4rem;border:2px solid var(--hub-copper,#9a5b3c)}
.tc-hyp-avatar{color:#cfe7e6;border-color:var(--hub-teal,#2f6f73);background:linear-gradient(160deg,#1d4a4d,#12302f)}
.tc-ent-card .tc-hub-kicker{color:var(--hub-copper,#9a5b3c)}
.tc-hyp-card .tc-hub-kicker{color:var(--hub-teal,#2f6f73)}
.tc-ent-card h2{margin:.15rem 0 .7rem}
.tc-ent-dl{display:grid;grid-template-columns:minmax(9rem,max-content) 1fr;gap:.45rem 1rem;margin:0}
.tc-ent-dl dt{font-weight:600;color:var(--ink,#0e1a2b)}
.tc-ent-dl dd{margin:0;overflow-wrap:anywhere;color:var(--ink,#0e1a2b)}
.tc-ent-dl a{color:var(--hub-copper,#9a5b3c)}
.tc-hyp-card .tc-ent-dl a{color:var(--hub-teal,#2f6f73)}
.tc-ent-src{font-size:.85rem;color:var(--muted);max-width:75ch;margin:.8rem 0 0}
@media (max-width:640px){.tc-ent-card{flex-direction:column}.tc-ent-dl{grid-template-columns:1fr}.tc-ent-dl dt{margin-top:.3rem}}

/* tc443-plus-credits */
.vt-photo-plus,.hub-photo-plus{margin:.22rem 0 0;font-size:.72rem;line-height:1.4;color:var(--muted,#6b6458)}
.vt-photo-plus summary,.hub-photo-plus summary{cursor:pointer;display:inline;font-weight:500;letter-spacing:.02em;color:rgba(14,26,43,.55);text-decoration:underline;text-underline-offset:2px;list-style:none}
.vt-photo-plus summary::-webkit-details-marker,.hub-photo-plus summary::-webkit-details-marker{display:none}
.vt-photo-plus summary::marker,.hub-photo-plus summary::marker{content:""}
.vt-photo-plus summary:hover,.vt-photo-plus summary:focus-visible,
.hub-photo-plus summary:hover,.hub-photo-plus summary:focus-visible{color:var(--gold,#c9a45c)}
.vt-photo-plus .vt-photo-credit,.hub-photo-plus .photo-caption{margin:.3rem 0 0;font-size:.72rem}
.page-hero--photo .hub-photo-plus{margin:.45rem 0 0}
.page-hero--photo .hub-photo-plus summary{color:rgba(255,253,249,.82);text-shadow:0 2px 16px rgba(10,18,32,.7)}
.page-hero--photo .hub-photo-plus summary:hover,
.page-hero--photo .hub-photo-plus summary:focus-visible{color:#e2c88f}
.vt-credits-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* tc444-agent-fiche-first : courtier en premier, barre identitaire au défilement */
.agent-page .profile{scroll-margin-top:5.5rem}
.agent-sticky{position:fixed;top:0;left:0;right:0;z-index:45;display:flex;align-items:center;gap:.7rem;padding:.4rem .8rem;padding-top:calc(.4rem + env(safe-area-inset-top));background:rgba(14,26,43,.96);color:#fff;border-bottom:1px solid var(--gold,#c9a45c);box-shadow:0 6px 18px rgba(14,26,43,.2);transform:translateY(-110%);transition:transform .22s ease;pointer-events:none}
.agent-sticky.is-on{transform:translateY(0);pointer-events:auto}
.agent-sticky img{width:2.2rem;height:2.75rem;object-fit:cover;border-radius:5px;border:1px solid rgba(201,164,92,.7);flex:none}
.agent-sticky .agent-sticky-name{font-family:var(--serif,Georgia,serif);font-size:1.05rem;line-height:1.15;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agent-sticky .agent-sticky-sub{display:block;font-size:.7rem;letter-spacing:.04em;opacity:.8;text-transform:uppercase}
.agent-sticky a.agent-sticky-call{margin-left:auto;flex:none;border:1px solid var(--gold,#c9a45c);background:var(--gold,#c9a45c);color:#1b1407;font-weight:650;font-size:.82rem;text-decoration:none;border-radius:999px;padding:.35rem .75rem}
.agent-sticky a.agent-sticky-call:hover{color:#1b1407}
body.has-callbar .agent-sticky{/* header overlap ok */}

/* tc445-fiche-fold */
.fiche-more{margin:1.1rem auto 0;max-width:52rem;padding:0 1.25rem}
.fiche-more + .fiche-more{margin-top:.55rem}
.fiche-more summary{cursor:pointer;display:inline-flex;align-items:center;font-weight:600;color:var(--ink,#0e1a2b);border-bottom:1px solid rgba(201,164,92,.7);padding:.35rem 0;list-style:none}
.fiche-more summary::-webkit-details-marker{display:none}
.fiche-more summary::marker{content:""}
.fiche-more summary:hover,.fiche-more summary:focus-visible{color:var(--gold,#c9a45c)}
.fiche-more[open] summary{margin-bottom:.7rem}
.fiche-more .related-brokers,.fiche-more .sourced-reviews,.fiche-more .eval-section,
.fiche-more .faq,.fiche-more .tc-seealso,.fiche-more .areas,.fiche-more .contact-box,
.fiche-more .ivl-panel,.fiche-more .container{margin-top:.4rem}
#carte-ville[hidden],#quartier-hypothecaire[hidden]{display:block !important}

/* tc445-gold-star */
.tc-pin--star{background:transparent;border:0}
.tc-pin-star{display:block;filter:drop-shadow(0 3px 6px rgba(14,26,43,.35)) drop-shadow(0 0 4px rgba(201,164,92,.55));overflow:visible}
/* tc448 — courtiers hypothécaires : épingle argent H, liste repliable */
.tc-swatch--silver{background:transparent;border:0;border-radius:0;clip-path:none;box-shadow:none;width:1.15rem;height:1.5rem;display:grid;place-items:center;margin-top:.05rem}
.tc-swatch--silver svg{display:block;width:100%;height:100%;filter:drop-shadow(0 1px 2px rgba(14,26,43,.25))}
.tc-hyp-more{margin-top:.75rem}
.tc-hyp-more>summary{cursor:pointer;font-weight:700;color:#5d6875;padding:.35rem 0}
.tc-hyp-more[open]>summary{margin-bottom:.5rem}
