:root{--navy:#0b1e35;--navy-mid:#162d47;--navy-light:#1e3a56;--gold:#c4922a;--gold-light:#e8b84b;--gold-pale:#f5e8cc;--cream:#faf7f2;--cream-dark:#f0eae0;--text:#1a1a2e;--text-mid:#3d4a5c;--text-light:#6b7a8d;--white:#fff;--red-acc:#c0392b;--green-acc:#1a6b3c;--orange-acc:#e07b39;--page-w:210mm;--page-h:297mm}.page{width:var(--page-w);min-height:var(--page-h);background:var(--white);page-break-after:always;margin:12mm auto;position:relative;overflow:hidden;box-shadow:0 8px 40px #0000002e}.page-cover{background-color:var(--navy);flex-direction:column;display:flex;overflow:hidden}.cover-top-bar{background:linear-gradient(90deg,var(--gold)0%,var(--gold-light)60%,transparent 100%);height:2.5mm}.cover-header{justify-content:space-between;align-items:flex-start;padding:8mm 12mm 0;display:flex}.cover-logo{flex-direction:column;display:flex}.logo-mark{font-family:var(--font-cormorant),serif;color:var(--gold-light);letter-spacing:.15em;text-transform:uppercase;font-size:11pt;font-weight:300}.logo-name{font-family:var(--font-cormorant),serif;color:var(--white);letter-spacing:.02em;font-size:18pt;font-weight:700;line-height:1}.logo-name span{color:var(--gold-light)}.cover-badge{text-align:right;background:#c4922a26;border:1px solid #c4922a66;border-radius:2px;padding:3mm 5mm}.cover-badge .quarter{font-family:var(--font-dm-mono),monospace;color:var(--gold-light);letter-spacing:.2em;font-size:8pt;display:block}.cover-badge .year{font-family:var(--font-cormorant),serif;color:var(--white);font-size:22pt;font-weight:700;line-height:1}.cover-hero{flex-direction:column;flex:1;justify-content:center;padding:12mm 12mm 8mm;display:flex;position:relative}.cover-eyebrow{font-family:var(--font-dm-mono),monospace;letter-spacing:.3em;color:var(--gold);text-transform:uppercase;margin-bottom:5mm;font-size:7pt}.cover-title{font-family:var(--font-cormorant),serif;color:var(--white);margin-bottom:6mm;font-size:38pt;font-weight:700;line-height:1.05}.cover-title em{color:var(--gold-light);font-style:italic;font-weight:300}.cover-subtitle{font-family:var(--font-cormorant),serif;color:#ffffffbf;border-left:.5mm solid var(--gold);max-width:140mm;margin-bottom:10mm;padding-left:5mm;font-size:14pt;font-style:italic;font-weight:300;line-height:1.5}.cover-date-line{color:#fff9;font-size:8pt;font-family:var(--font-dm-mono),monospace;letter-spacing:.1em}.cover-kpi-strip{background:#ffffff0a;border-top:1px solid #c4922a33;grid-template-columns:repeat(3,1fr);gap:3mm;padding:6mm 12mm;display:grid}.cover-kpi{padding:4mm 5mm}.cover-kpi .kpi-val{font-family:var(--font-cormorant),serif;color:var(--gold-light);font-size:28pt;font-weight:700;line-height:1}.cover-kpi .kpi-unit{font-size:12pt;font-weight:300}.cover-kpi .kpi-label{color:#ffffffd9;margin-top:1mm;font-size:7.5pt;line-height:1.3}.cover-footer{border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:4mm 12mm;display:flex}.cover-footer-text{color:#ffffffd9;letter-spacing:.05em;font-size:7pt}.cover-geo-decoration{border:.3mm solid #c4922a26;border-radius:50%;justify-content:center;align-items:center;width:70mm;max-width:calc(100% + 5mm);height:70mm;display:flex;position:absolute;top:50%;right:-5mm;overflow:hidden;transform:translateY(-50%);box-shadow:0 0 0 8mm #c4922a0d,0 0 0 16mm #c4922a08}.cover-geo-decoration img{object-fit:contain;opacity:.85;width:55mm;height:55mm}.page-inner{flex-direction:column;display:flex}.page-topbar{background:linear-gradient(90deg,var(--gold)0%,var(--gold-light)40%,#c4922a33 100%);height:1mm}.page-header{border-bottom:.3mm solid var(--cream-dark);justify-content:space-between;align-items:center;padding:5mm 12mm 4mm;display:flex}.page-header .brand{font-family:var(--font-cormorant),serif;color:var(--navy);letter-spacing:.1em;font-size:9pt;font-weight:600}.page-header .brand span{color:var(--gold)}.page-header .nav-info{font-family:var(--font-dm-mono),monospace;color:var(--text-light);letter-spacing:.15em;font-size:7pt}.page-content{flex:1;padding:6mm 12mm 5mm}.section-eyebrow{font-family:var(--font-dm-mono),monospace;letter-spacing:.3em;color:var(--gold);text-transform:uppercase;margin-bottom:2mm;font-size:6.5pt}.section-title{font-family:var(--font-cormorant),serif;color:var(--navy);margin-bottom:4mm;font-size:22pt;font-weight:700;line-height:1.1}.section-title em{color:var(--gold);font-style:italic;font-weight:300}.divider{background:linear-gradient(90deg,var(--gold),transparent);width:15mm;height:.5mm;margin:3mm 0}.photo-bandeau{border-radius:2mm;width:100%;height:40mm;margin:3mm 0;overflow:hidden}.photo-bandeau img{object-fit:cover;width:100%;height:100%}.photo-bandeau--tall{height:45mm}.photo-bandeau--fallback-cream{background:linear-gradient(135deg,var(--cream-dark)0%,var(--cream)100%)}.photo-bandeau--fallback-navy{background:linear-gradient(135deg,var(--navy-light)0%,var(--navy-mid)100%)}.photo-colonne{border-radius:2mm;width:100%;height:50mm;margin:3mm 0;overflow:hidden}.photo-colonne img{object-fit:cover;width:100%;height:100%}.photo-colonne--fallback-cream{background:var(--cream)}.kpi-grid{grid-template-columns:repeat(3,1fr);gap:3mm;margin:4mm 0;display:grid}.kpi-card{background:var(--cream);border:.3mm solid var(--cream-dark);border-top:1mm solid var(--gold);padding:4mm;position:relative}.kpi-card .val{font-family:var(--font-cormorant),serif;color:var(--navy);font-size:26pt;font-weight:700;line-height:1}.kpi-card .unit{color:var(--gold);font-size:13pt;font-weight:300}.kpi-card .label{color:var(--text-mid);margin-top:1mm;font-size:7.5pt;line-height:1.3}.kpi-card .trend{font-family:var(--font-dm-mono),monospace;border-radius:1px;padding:.5mm 2mm;font-size:7pt;position:absolute;top:3mm;right:3mm}.trend-up{color:var(--green-acc);background:#1a6b3c1a}.trend-down{color:var(--red-acc);background:#c0392b1a}.trend-neutral{color:var(--text-light);background:#6b7a8d1a}.highlight-box{background:var(--navy);margin:4mm 0;padding:5mm 6mm;position:relative;overflow:hidden}.highlight-box:before{content:"";background:var(--gold);width:1mm;position:absolute;top:0;bottom:0;left:0}.highlight-box p{font-family:var(--font-cormorant),serif;color:var(--white);font-size:12pt;font-style:italic;font-weight:400;line-height:1.5}.highlight-box strong{color:var(--gold-light);font-style:normal}.callout{border:.3mm solid var(--gold);border-left:1.5mm solid var(--gold);background:var(--gold-pale);margin:3mm 0;padding:4mm 5mm}.callout .callout-title{font-family:var(--font-dm-mono),monospace;letter-spacing:.2em;color:var(--gold);text-transform:uppercase;margin-bottom:1.5mm;font-size:6.5pt}.callout p{color:var(--text);font-size:8.5pt;line-height:1.5}.data-table{border-collapse:collapse;width:100%;margin:3mm 0;font-size:8pt}.data-table thead tr{background:var(--navy)}.data-table thead th{color:var(--white);letter-spacing:.05em;text-align:left;padding:2.5mm 3mm;font-size:7.5pt;font-weight:500}.data-table thead th:not(:first-child){text-align:right}.data-table tbody tr:nth-child(2n){background:var(--cream)}.data-table tbody tr:hover{background:var(--gold-pale)}.data-table tbody td{border-bottom:.2mm solid var(--cream-dark);color:var(--text);padding:2mm 3mm}.data-table tbody td:not(:first-child){text-align:right;font-family:var(--font-dm-mono),monospace;font-size:7.5pt}.badge-zone{font-family:var(--font-dm-mono),monospace;border-radius:1px;padding:.5mm 2mm;font-size:7pt;font-weight:500;display:inline-block}.zone-a{color:var(--green-acc);background:#1a6b3c1f}.zone-b1{color:#9a6b10;background:#c4922a26}.zone-b2{color:#b05a1a;background:#e07b3926}.zone-c{color:var(--red-acc);background:#c0392b1a}.profile-grid{grid-template-columns:repeat(auto-fit,minmax(55mm,1fr));gap:3mm;margin:3mm 0;display:grid}.profile-card{border:.3mm solid var(--cream-dark);overflow:hidden}.profile-card-header{background:var(--navy-light);padding:3mm 4mm}.profile-icon{margin-bottom:1mm;font-size:12pt}.profile-name{font-family:var(--font-cormorant),serif;color:var(--white);font-size:11pt;font-weight:700;line-height:1.2}.profile-desc{color:#ffffffd9;font-size:7pt}.profile-card-body{background:var(--cream);padding:3mm 4mm}.profile-row{border-bottom:.2mm solid var(--cream-dark);justify-content:space-between;padding:1mm 0;font-size:7.5pt;display:flex}.profile-row:last-child{border-bottom:none}.profile-row .key{color:var(--text-light)}.profile-row .value{color:var(--navy);font-weight:500;font-family:var(--font-dm-mono),monospace;font-size:7pt}.profile-card-footer{background:var(--navy);justify-content:space-between;align-items:center;padding:3mm 4mm;display:flex}.profile-saving{font-family:var(--font-cormorant),serif;color:var(--gold-light);font-size:13pt;font-weight:700}.profile-saving-label{color:#ffffffd9;margin-top:.5mm;font-size:6.5pt}.profile-economie-label{color:#ffffffd9;font-size:7pt}.profile-economie-value{font-family:var(--font-cormorant),serif;color:var(--gold-light);font-size:11pt;font-weight:700}.zone-legend{flex-wrap:wrap;gap:4mm;margin:3mm 0;display:flex}.legend-item{color:var(--text-mid);align-items:center;gap:2mm;font-size:8pt;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:3mm;height:3mm}.dot-green{background:var(--green-acc)}.dot-orange{background:var(--orange-acc)}.dot-red{background:var(--red-acc)}.commune-grid{grid-template-columns:repeat(4,1fr);gap:2mm;margin:3mm 0;display:grid}.commune-card{border:.3mm solid var(--cream-dark);padding:3mm;position:relative;overflow:hidden}.commune-card:after{content:"";height:.8mm;position:absolute;bottom:0;left:0;right:0}.commune-card.acc-vert:after{background:var(--green-acc)}.commune-card.acc-orange:after{background:var(--orange-acc)}.commune-card.acc-rouge:after{background:var(--red-acc)}.commune-name{color:var(--navy);margin-bottom:1mm;font-size:7.5pt;font-weight:600}.commune-price{font-family:var(--font-cormorant),serif;color:var(--text);font-size:13pt;font-weight:700;line-height:1}.commune-price-unit{color:var(--text-light);font-size:7pt}.commune-acc-label{margin-top:1mm;font-size:6.5pt;font-weight:600}.quote-block{background:var(--cream);border-left:1.5mm solid var(--gold);margin:3mm 0;padding:4mm 5mm}.quote-text{font-family:var(--font-cormorant),serif;color:var(--navy);font-size:11pt;font-style:italic;line-height:1.5}.quote-attr{color:var(--text-light);margin-top:2mm;font-size:7.5pt}.qa-block{margin:3mm 0}.qa-item{border-bottom:.2mm solid var(--cream-dark);padding:3mm 0}.qa-q{font-family:var(--font-cormorant),serif;color:var(--navy);margin-top:0;margin-bottom:1.5mm;font-size:10pt;font-weight:700}.qa-q:before{content:"Q. ";color:var(--gold);font-weight:400}.qa-a{color:var(--text-mid);font-size:8pt;line-height:1.5}.source-grid{grid-template-columns:repeat(2,1fr);gap:3mm;margin:3mm 0;display:grid}.source-card{background:var(--cream);border:.3mm solid var(--cream-dark);padding:3mm 4mm}.source-cat{font-family:var(--font-dm-mono),monospace;letter-spacing:.2em;color:var(--gold);text-transform:uppercase;margin-bottom:1.5mm;font-size:6.5pt}.source-list{color:var(--text-mid);padding:0;font-size:7.5pt;line-height:1.6;list-style:none}.source-list li:before{content:"—  ";color:var(--gold)}.page-footer{border-top:.3mm solid var(--cream-dark);justify-content:space-between;align-items:center;margin-top:auto;padding:2.5mm 12mm;display:flex}.page-footer .footer-left{font-family:var(--font-dm-mono),monospace;color:var(--text-light);letter-spacing:.1em;font-size:6.5pt}.page-footer .footer-right{color:var(--text-light);font-size:6.5pt}.page-num{font-family:var(--font-cormorant),serif;color:var(--navy);font-size:9pt;font-weight:700}.page-footer--navy{border-top:.3mm solid var(--cream-dark);background:var(--navy);justify-content:space-between;align-items:center;margin-top:auto;padding:3mm 12mm;display:flex}.page-footer--navy .footer-brand{font-family:var(--font-cormorant),serif;color:var(--white);font-size:10pt;font-weight:700}.page-footer--navy .footer-brand span{color:var(--gold-light)}.page-footer--navy .footer-info{font-family:var(--font-dm-mono),monospace;color:#fff9;letter-spacing:.1em;font-size:6.5pt}.page-footer--navy .footer-page{font-family:var(--font-cormorant),serif;color:var(--gold-light);font-size:10pt;font-weight:700}.col-2{grid-template-columns:1fr 1fr;gap:6mm;display:grid}.col-3-2{grid-template-columns:3fr 2fr;gap:6mm;display:grid}.col-2-3{grid-template-columns:2fr 3fr;gap:6mm;display:grid}.chart-wrap{margin:3mm 0;position:relative}.chart-title{font-family:var(--font-dm-mono),monospace;letter-spacing:.15em;color:var(--text-light);text-transform:uppercase;margin-bottom:2mm;font-size:6.5pt}.top5-list{margin:3mm 0}.top5-item{border-bottom:.2mm solid var(--cream-dark);align-items:center;gap:3mm;padding:2.5mm 0;display:flex}.top5-rank{font-family:var(--font-cormorant),serif;color:var(--gold);flex-shrink:0;width:6mm;font-size:16pt;font-weight:700;line-height:1}.top5-info{flex:1}.top5-commune{color:var(--navy);font-size:8.5pt;font-weight:600}.top5-detail{color:var(--text-light);margin-top:.5mm;font-size:7pt}.top5-score{font-family:var(--font-dm-mono),monospace;color:var(--green-acc);font-size:8pt;font-weight:500}.method-table{border-collapse:collapse;width:100%;margin:2mm 0;font-size:7.5pt}.method-table tr:nth-child(2n) td{background:var(--cream)}.method-table td{border:.2mm solid var(--cream-dark);vertical-align:top;color:var(--text-mid);padding:1.5mm 3mm}.method-table td:first-child{color:var(--navy);background:#0b1e350a;width:35%;font-weight:600}p.body-text{color:var(--text-mid);margin:2mm 0;font-size:9pt;line-height:1.55}.text-small{color:var(--text-light);font-size:7.5pt;line-height:1.4}.rapport-h3{font-family:var(--font-cormorant),serif;color:var(--navy);margin:4mm 0 2mm;font-size:13pt;font-weight:700}.rapport-h4{font-family:var(--font-dm-sans),sans-serif;color:var(--navy);letter-spacing:.05em;text-transform:uppercase;margin:3mm 0 1.5mm;font-size:8.5pt;font-weight:600}.table-responsive{width:100%}.css-bar-chart{margin:2mm 0}.css-bar-row{align-items:center;gap:2mm;margin-bottom:1.5mm;display:flex}.css-bar-label{color:var(--text);text-align:right;flex-shrink:0;width:28mm;font-size:9pt}.css-bar{border-radius:0;height:4mm;transition:width .3s}.css-bar--navy{background:#0b1e35d9}.css-bar--gold{background:#c4922ab3}.css-bar--red{background:#c0392bb3}.css-bar--green{background:#1a6b3cbf}.css-bar-value{font-family:var(--font-dm-mono),monospace;color:var(--text-mid);white-space:nowrap;font-size:9pt}.css-chart-legend{color:var(--text-mid);gap:4mm;margin-top:2mm;font-size:9pt;display:flex}.css-chart-legend-item{align-items:center;gap:1.5mm;display:flex}.css-chart-legend-dot{flex-shrink:0;width:2.5mm;height:2.5mm}.rapport-print-btn{z-index:50;background:var(--navy);color:var(--white);cursor:pointer;border:none;align-items:center;gap:2mm;min-height:44px;padding:2.5mm 4mm;font-size:9pt;font-weight:600;display:flex;position:fixed;bottom:20mm;right:6mm;box-shadow:0 4px 12px #0003}.rapport-print-btn:hover{background:var(--navy-mid)}@media screen and (max-width:639px){.page{width:100%;max-width:100%;min-height:auto;box-shadow:none;margin:0;overflow:visible}.page-cover{min-height:100vh}.page-content{padding:4mm}.cover-title{font-size:28pt}.section-title{font-size:18pt}.col-2,.col-3-2,.col-2-3{grid-template-columns:1fr}.commune-grid{grid-template-columns:repeat(2,1fr)}.profile-grid,.kpi-grid{grid-template-columns:1fr}.cover-kpi-strip{flex-direction:column;display:flex}.cover-geo-decoration{width:50mm;height:50mm;right:-2mm}.cover-geo-decoration img{width:40mm;height:40mm}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}.photo-bandeau{height:30mm}.photo-bandeau--tall{height:35mm}.source-grid{grid-template-columns:1fr}.page-header{padding:3mm 4mm}.page-header .brand{font-size:8pt}.page-header .nav-info{font-size:6pt}.cover-header{padding:4mm 4mm 0}.cover-hero{padding:6mm 4mm 4mm}.cover-kpi-strip{padding:4mm}.cover-footer{flex-wrap:wrap;gap:1mm;padding:3mm 4mm}.page-footer{padding:2mm 4mm}}@media screen and (min-width:640px) and (max-width:1024px){.page{width:100%;max-width:210mm;margin:4mm auto}.commune-grid{grid-template-columns:repeat(3,1fr)}.profile-grid{grid-template-columns:repeat(2,1fr)}}@media print{body{background:#fff}.page{box-shadow:none;width:100%;min-height:100vh;margin:0}.page-cover{min-height:100vh}.page-inner{overflow:hidden}.profile-card,.kpi-card,.commune-card,.source-card,.callout,.highlight-box,.data-table{page-break-inside:avoid}.data-table tbody tr:hover,.commune-card:hover{background:inherit}.chart-wrap,.qa-block,.top5-list,.method-table{page-break-inside:avoid}body,.photo-bandeau,.photo-colonne{print-color-adjust:exact;-webkit-print-color-adjust:exact}.rapport-print-btn{display:none}}
