@charset "UTF-8";
@font-face {
	/*font-family: 'Open Sans';*/
	font-family: OpenSans;
	font-style: normal;
	font-weight: 10pt;
	src: local('OpenSans'), url('OpenSans.woff') format('woff');
}
@font-face {
	/*font-family: 'Open Sans Semibold';*/
	font-family: 'OpenSansSemibold';
	font-style: normal;
	font-weight: 11pt;
	src: local('OpenSansSemibold'), url('OpenSansBold.woff') format('woff');
}

body{
	font-family: "OpenSans", "DejaVu Sans", "Century Gothic", "Verdana", "Arial", "Helvetica", "sans-serif" !important;
	padding-top: 60px;
}
#topmenu {
	font-family: "OpenSans", "DejaVu Sans", "Century Gothic", "Verdana", "Arial", "Helvetica", "sans-serif" !important;
	background-color: #00970E; position: fixed; top: 0px; width: 100%; z-index:300;
}
div.top-bar-left ul {background-color: #00970E;}
div.top-bar-left ul li a {color: white;}
div.top-bar-right ul {background-color: #00970E !important;}
div.top-bar-right ul li a {color: white;}
.dropdown.menu li.is-active >  a {color: white;}
.dropdown.menu li.is-dropdown-submenu-parent > a:after{
	border-color: white transparent transparent; 
}

.dropdown .is-dropdown-submenu a {
	padding: 0.5rem 1.2rem;
	margin-right: 1em;
}


h1 {
	font-size: 1em;
	font-weight: bold;
}
.menu .is-active > a {
	background: transparent;
}

span.footer{
	color: #C0C0C0;
	font-size:8pt;
}

/* Styles pour les séparateurs horizontaux */
hr {
	margin: 1.5rem 0;
	border: none;
	border-top: 2px solid #e0e0e0;
	opacity: 0.7;
}

a.add_participant{
	font-size: 8pt;
}

/* Button normal blue*/
.button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus { background-color: #00970E; }
.button:hover{ background-color: #00970E; }


/************* jQquery UI ************/
.ui-autocomplete-loading {
	background: white url('../images/ui-anim_basic_16x16.gif') right center no-repeat;
}
.ui-progressbar .ui-progressbar-value {
	background-image: url('../images/pbar-ani.gif');
}

.bar {
    height: 18px;
    background: green;
}

.mandatory{
	font-size: 9pt;
	color: red;
}
.hint{
	font-size: 8pt;
	color: grey;
}
.error{
	font-size: 9pt;
	color: #cd0a0a;
}
.orbit-container .orbit-slides-container > * .orbit-caption {
	width: 85%;
}

.debug{
	border: dashed;
}

ul.checklist li:before{
	list-style-type: square;
	content: url('../images/true.png');
	padding-right:3px;
}

div.features_and_numbers{
	padding-bottom: 150px;
	min-height: 700px;
	/*height: 700px;*/
}

div.areas{
	text-align: right;
	display: block;
	white-space: nowrap;
}
input.areas{
	width: 100px;
	display: inline;
}
.delchk{
	vertical-align: sub;
}
/*
input.areas:after{
	content: ' ';
	display: inline;
	white-space: nowrap;
}
*/
fieldset.large-features{
	min-height: 700px;
}
fieldset legend:hover{
	cursor: pointer;
}
.ui-autocomplete-loading {
	background: white url('../images/ui-anim_basic_16x16.gif') right center no-repeat;
}
.ui-autocomplete {
	max-height: 150px;
	overflow-y: auto;
	/* prevent horizontal scrollbar */
	overflow-x: hidden;
	z-index:9050 !important;
	text-align: right;
}
div.locations{
	text-align: left;
	display: block;
	white-space: nowrap;
}
div_country{
	text-align: left;
	display: block;
	white-space: nowrap;
}
input.locations{
	text-align: left;
	display: block;
	white-space: nowrap;
}
textarea.locations{
	text-align: left;
	display: block;
	white-space: nowrap;
}
/*
#locations_zipcode { width: 25em; }
#locations_city { width: 25em; }
*/

.fileinput-button{
	position: relative;
	top: -10px;
}

div.message_ok{
	width:60%;
	font-size:10pt;
	color: green;
	font-family: Arial;
	border: dashed 1px green;
	text-align:center;
	background-color:#F5DEB3;
	background-image:url('../images/action_valid.png');
	background-position:left+5px center;
	background-repeat:no-repeat;
	padding-left: 35px;
	margin-left:auto;
	margin-right:auto;
}
div.message_ko{
	width:60%;
	font-size:10pt;
	color: red;
	font-family: Arial;
	border: dashed 1px red;
	background-color:#F5DEB3;
	background-image:url('../images/action_attention.png');
	background-position:left+5px center;
	background-repeat:no-repeat;
	text-align:center;
	padding-left: 35px;
	margin-left:auto;
	margin-right:auto;
}
/*
div #dropzone{
	padding-top: -100px;
	padding-right: 100px;
	min-width: 75%;
	min-height: 75%;
}
*/

.animated_dots{
	background-image: url('../images/selection.gif');
	background-position: inherit;
	background-repeat: repeat;
}
.media_upload_default{
	background-image: url('../images/mime_photo_48x48_greyed.png');
	background-position: center;
	background-repeat: no-repeat;
}
div.div_drag_and_drop{
	background-color: #F9F9F9;
	background-image: url('../images/mime_photo_48x48_greyed.png');
	background-position: center;
	background-repeat: no-repeat;
	border: 1px dashed black;
	display: block;
	min-width: 50px;
	min-height: 50px;
	z-index: 100;
	/*padding-left: 30%;*/
	/*Solution for centering the images inside a div :*/
	width: 100%;
	display: inline-block;
	text-align: -webkit-center;
}
div.div_drag_and_drop_animated{
	background: url('../images/selection.gif');
	padding: 1px;
}
.ui-widget{
	font-size: 0.90em !important;
}
div.periodlist{
	border: 1px solid black;
}
span.season-high{background: #FFC9C9;}
span.season-mid{background: #FFF7CE;}
span.season-low{background: #DEFFD0;}

fieldset.auto{
	border: 2px solid #00970E;
	padding: 1em;
}

fieldset.filters{
	margin: 20px;
	padding: 1em;
	/*padding: 0 10px 10px;*/
	border: 2px solid #00970E;
	border-radius: 8px;
	box-shadow: 0 0 10px #666;
	padding-top: 10px;
}
fieldset.filters > legend{
	padding: 1em;
	float: left;
	margin-top: -20px;
	clear: both;
}

fieldset.fieldset-centered legend {
	text-align: centered;
}
.bold{
	font-weight: bold;
}
.centered{
	text-align: center;
}
.boldtext{
	font-weight: bold;
}
span.media_numbering{
	text-align: center;
	padding-left: 3.30em;
}
table.noborder, table.noborder tr.even, table.noborder tr.alt, table tr:nth-of-type(even) {
    background: transparent;
    border: 1px solid #f0f0f0;
    /*line-height: 1em;*/
    background-color: transparent;
}

.ui-effects-transfer {
    border: 1px dotted #00970E; /*green*/
}
td.nowrap{
	white-space: nowrap;
}
div.media_picture{
	width: 130px;
	height: 130px;
	text-align: center;
	display: table-cell;
	vertical-align: middle;
}
div.media_tools{
	white-space: nowrap;
	/*line-height: 0.60em;*/
	text-align: center;
	/*width: 30px;*/
}
span.media_number{
	text-align: left !important;
	color: #00970E;
	font-size: 1em;
	font-weight: bold;
	border: #00970E solid 2px;
	border-radius: 25%;
}
table.table_picture{
	border:0em;
}
td.picture_tools{
	/*border: #00970E solid 2px;*/
	border-bottom: 1px solid #808080;
	text-align: center;
	/*padding-left: 20px; */
	/*line-height: 0.05em;*/
}
td.media_room_type_selector{
	line-height: 0.8em;
	text-align: center;
	padding-left: 0em;
	padding-right: 0em;
	padding-top: 0em;
	padding-bottom: 0em;
}
td.media_room_type_selector > select{
	margin-bottom: 0.1em;
}
.tabs-content.vertical{
	width: 100%;
}
.selectionIndicator:hover {
    border-image: image-url('../images/ants.gif') 8 repeat repeat;
    -moz-border-image: image-url('../images/ants.gif') 1 repeat repeat;
    -webkit-border-image: image-url('../images/ants.gif') 1 repeat repeat;
}
.submit-delete{
	background:url('../images/red_cross.png');
	border:none;
	width: 43px; /* largeur à spécifier */
	height: 33px; /* longueur à spécifier */
	cursor: pointer;
}
.cell_grey_img{
	width: 85px;
	height: 85px;
	border:none;
	background-color: #F2F2F2;
}
.cell_blank_img{
	width: 85px;
	height: 85px;
	border:none;
	background-color: #FFFFFF;
	text-align: center;
	display: table-cell;
	vertical-align: middle;
}
table.listing_pics{
	width: 100%;
	height: 100%;
	border: 0px;
	background-color: #FFFFFF;
	text-align: center;
	display: table-cell;
	vertical-align: middle;
	border-spacing: 0px;
	/*border-collapse: collapse;*/
	padding: 0px;
	margin: 0px;
}
table.listing_pics tr td{
	border-collapse: collapse;
	border: 0px;
	padding: 0px;
	margin: 0px;
}
.cell_images{
	width: 200px;
	height: 200px;
	border: none;
	background-color: #FFFFFF;
	text-align: center;
	display: table-cell;
	vertical-align: middle;
}
.cell_desc{
	border: 1px solid #808080;;
	text-align: justify;
	display: table-cell;
	vertical-align: middle;
}
.listing_header{
	font-weight: bold;
	font-size: 10pt;
}
table.table_no_margin_bottom{
	margin-bottom: 0px;
}
.btnRecord{
	background-image:url('../images/save.png');
	background-position: center left 15px;
	background-repeat: no-repeat;
	padding-left: 32px;
	padding-right: 32px;
	/*padding: 10px 10px 10px 25px;*/
	cursor: pointer;
}
.btnRecord{
	background-image:url('../images/save.png');
	background-position: center left 17px;
	background-repeat: no-repeat;
	padding-left: 45px;
	padding-right: 35px;
	cursor: pointer;
}
.btnAdd{
	background-image:url('../images/add.png');
	background-position: center left 17px;
	background-repeat: no-repeat;
	padding-left: 45px;
	padding-right: 35px;
	cursor: pointer;
}
.btnReset{
	background-image:url('../images/cancel.png');
	background-position: center left 17px;
	background-repeat: no-repeat;
	padding-left: 45px;
	padding-right: 35px;
	cursor: pointer;
}
span.span_hide{
	display: none;
}
span.span_verif{
	font-size: 9pt;
	font-style: italic;
	color: gray;
}
/*
.hasDatepicker{
	height: 310px;
}
*/
.ChristmasHolidays{}
.NewYearHolidays{}
.SpringHolidays{}
.SummerHolidays{}
.WinterHolidays{}

input.uppercase{
	text-transform: uppercase;
}
table.af_list tr{
	/*Corrige l'adaptivité de la ligne dans les grands tableau comme rr_history*/
	line-height: 1.3em;
}
table.af_list tr th {
	text-align: center;
	padding: 0.70em;
}
/*Corrige l'effet petite image dans ListForm*/
table.af_list tr td img{
	max-width: none;
	height: auto;
}

a.link_detail{
	text-align: center;
	font-weight: bold;
	font-style: italic;
}

/*InfoBulle DIV CSS pour les détails*/
.table_detail{
	background-color: #D1FFEA;/*very light green*/
	border: #00970E 2px solid;/*dark green like top menu*/
	display: none;
	color: #000000;/*black*/
	width: 300px;
}
.table_detail:hover{
	display: block;
	position: relative;
	overflow: auto;
}
.table_detail tr{
	background-color: #D1FFEA;/*very light green*/
}
.table_detail td{
	background-color: #D1FFEA;/*very light green*/
}
.revision{
	background-color: #FFD8DA;/*rose-orange pastel*/
}
a.action{
	border: 1px dotted #21971F;/*top nav green*/
	margin-left: 1px;
	margin-right: 1px;
}
a.next_action{
	border: 2px dashed #21971F;
	margin-left: 1px;
	margin-right: 1px;
}
.numbers{
	text-align: right;
}
.va-center{
	vertical-align: middle;
}
.va-top{
	vertical-align: top;
}
div #div_dialog_wizard{
	display: none;
}
table.property_details{
        background: #E8E9EA;
}
table.property_details tr{
        line-height: 1em;
}
.responsive-card-table td:before{
	text-align: left !important;
}

.responsive-card-table td:after {
	width: 42% !important;
}

@media screen and (max-width: 640px){
	.responsive-card-table td:after {
	    content: attr(data-label);
	    display: inline-block;
	    font-weight: bold;
	    margin-left: auto;
	    z-index: 1;
	    padding-top: 0.8em;
	    padding-left: 0.6em;
	}
	.responsive-card-table td:before{
		text-align: center !important;
	}
}
.rr_summary_pics{
	width: 100%;
	height: 100%;
	border: 0px;
	background-color: transparent;
	text-align: center;
	display: table-cell;
	vertical-align: middle;
	border-spacing: 0px;
	border-collapse: collapse;
	padding: 0px;
	margin: 0px;
	padding-left: 25%;
	padding-right: 25%;
}
#div_filters select{
	/*width: 45%;*/
}
td.header_cols{
	background-color: #e6e6e6;
	font-weight: bold;
}
img.image-16{
	width: 16px;
	height: 16px;
}

fieldset.dashlink{
	border: 1px solid #00970E;
	margin: 1em;
	padding: 0.8em;
}
div.dashlink > div.cell{
	padding: 0.5em 0.5em 0.5em 0.5em;
	text-align: center;
}
a.dashlink{
	font-weight: bold;
	padding: 1em 0.8em 0.9em 0.6em;
	margin: 1em;
	background-color: white;
	color: black;
	border: 1px solid #00970E;
	/*
	//Boutons Arrondis
	border-bottom-right-radius:2em;
	border-bottom-left-radius: 2em;
	border-top-left-radius:2em;
	border-top-right-radius:2em;
	*/
	width: 100%;
	/*height: 100%;*/
	text-align: center;
	line-height: 1.6em;
	white-space: nowrap;
	display: table-cell;
	table-layout: auto;
}
a.dashlink:hover{
	cursor: pointer;
	background-color: #00970E;
	color: white;
	border: 1px solid black;
}
div.body{
	padding: 1em;
}
.blue{
	background-color: cyan;
	border: 1px solid black;
}
/*Permet de mettre des signes dans les ALT des images*/
.wd1{font-family: Wingdings;}
.wd2{font-family: 'Wingdings 2';}
.wd3{font-family: 'Wingdings 3';}
.webd{font-family: Webdings;}

th.header{
	background-color: #00970E;
	border: 1px solid black;
	text-align: center;
	word-spacing: nowrap;
	color: white;
}

table.auto th.header{
	background-color: #00970E;
	border: 1px solid black;
	text-align: center !important;
	word-spacing: nowrap;
	color: white;
}
td.several_lines{
	word-wrap: break-word;
	font-size: 0.70em;
}
td.people{
	font-size: 0.70em;
}
tr.even{
	background-color: #EFF7F0 !important;
	line-height: 1em !important;
	border: 1px solid black !important;
}
tr.odd{
	background-color: white !important;
	line-height: 1em !important;
	border: 1px solid black !important;
}
span.tt_title{
	font-weight: bold;
	text-decoration: underline;
}
.span_balance_ko{
	color: red;
	font-weight: bold;
}
.span_balance_ok{
	color: darkgreen;
	font-weight: bold;	
}
.span_bold{
	color: black;
	font-weight: bold;	
}
tr.more_details_hidden{
    display: none;
}
table.entity th{
	text-align:center;
	color: white;
	background-color: #1EA227;
	font-family: Arial, Verdana, Heletica;
	font-weight: normal;
	font-size: 10pt;
	border-radius: 15px;
	-moz-border-radius: 15px;
}
table.entity tr{
	border: 1px solid black;
}
.cadre{
	text-align: center;
	border: 1px solid black;
}
td.tr_content{
	text-align: center;
	border: 1px solid black;
}
A.sectionheader:active{
	color: black;
	background:transparent;
	text-decoration:none;
	/*border-left: solid black 2px;*/
}
A.sectionheader:hover{
	color: white;
	background:transparent;
	text-decoration:none;
}
A.sectionheader:link{
	color: white;
	background:transparent;
	text-decoration:none;
}
A.sectionheader:visited{
	color: white;
	background:transparent;
	text-decoration:none;
}
.div_rr_history_balance_due{
	margin-top: 0.1em;
	margin-bottom: 0.2em;
}
.span_rr_history_balance_due{
	font-size: 0.8em;
}
.hidden{display: none;}

table.delivery{
	border-width:1px;
	border-style:solid;
	border-color:#1EA227;
}
table.delivery tr{
	border-width:1px;
	border-style: solid;
	border-color:#1EA227;
}
table.delivery td{
	text-align: left;
	border-width:0px;
	border-style: none;
	border-color:transparent;
}

td.boldcell{
	color: black;
	/*font-family: Verdana, Arial, Helvetica;*/
	font-weight: bold;
	font-size: 10pt;
	border-left:black 1px solid;
}
.flag{
	padding-top: 1.5em;
	padding-left: 2.5em;
	align-content: center;
}
.term_title{
	font-weight: bold;
	text-decoration: underline;
}
.term{
	font-style: italic;
	font-weight: bold;
}
.legal_title{font-weight: bold;}
.legal_content{font-weight: normal;}

/*Landing pages*/
table.lp .responsive-card-table td{
	height: 110% !important;
	line-height: 2.5em !important;
}

table.lp .responsive-card-table td:before{
	width: 60% !important;
}
table.lp .responsive-card-table td:after{
	width: 0% !important;
	background: transparent !important;
}
div.div_pub{
	padding: 1em;
}

section.lp_sec{
	border: 1px solid grey;

	margin-top: 1em;
	margin-bottom: 1em;
	margin-left: 1em;
	margin-right: 1em;
	
	padding-left: 2em;
	padding-right: 2em;
}
.lp_img{
	margin: 1em;
	padding-left: 1.7em;
	padding-right: 1.7em;
	text-align: center;
}
.lp_content{
	margin-top: 1.5em;
	padding-left: 2em;
	padding-right: 2em;
	text-align: justify;
}
.lp_pdf{
	border: 1px dashed lightgrey;
}
.graphs_bg{
	background: top no-repeat url('../images/ajax-3d-loader.png');
}
h1.big-h1{
	text-align: center;
	font-size: 2.5em;
}
h2.big-h2{
	text-align: center;
	font-size: 2.5em;
}

/* ================================================================ */
/* PROPERTY DETAILS PAGE STYLES (Préfixe pd_)                      */
/* ================================================================ */

/* ============================================================== */
/* HERO HEADER RESTRUCTURÉ : 3 lignes informatif et compact        */
/* ============================================================== */

.pd_property-hero {
	/* Dégradé vert moderne pastel à foncé */
	background: linear-gradient(135deg, 
		#2D9E60 0%, 
		#1E8E52 50%, 
		#0D7A42 100%);
	color: white;
	padding: 2.5rem;
	border-radius: 16px;
	margin-bottom: 2rem;
	position: relative;
	overflow: hidden;
	
	/* Ombre moderne avec blur */
	box-shadow: 
		0 20px 60px rgba(13, 122, 66, 0.3),
		0 0 60px rgba(13, 122, 66, 0.1) inset;
	
	/* Backdrop filter pour effet de verre moderne */
	backdrop-filter: blur(10px);
	
	/* Animation d'apparition */
	animation: pd_heroFadeIn 0.8s ease-out;
}

/* Pseudo-élément pour effets de lumière animée */
.pd_property-hero::before {
	content: '';
	position: absolute;
	top: -50%;
	right: -20%;
	width: 600px;
	height: 600px;
	background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 70%);
	border-radius: 50%;
	animation: pd_heroPulse 6s ease-in-out infinite;
	pointer-events: none;
}

/* Pseudo-élément pour effet de reflet supplémentaire */
.pd_property-hero::after {
	content: '';
	position: absolute;
	bottom: -30%;
	left: -10%;
	width: 400px;
	height: 400px;
	background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 70%);
	border-radius: 50%;
	animation: pd_heroPulseReverse 8s ease-in-out infinite;
	pointer-events: none;
}

/* Animation de pulsation pour l'effet de lumière principal */
@keyframes pd_heroPulse {
	0%, 100% { transform: translate(0, 0) scale(1); }
	50% { transform: translate(-20px, -20px) scale(1.1); }
}

/* Animation inverse pour le second reflet */
@keyframes pd_heroPulseReverse {
	0%, 100% { transform: translate(0, 0) scale(1); }
	50% { transform: translate(15px, 15px) scale(0.95); }
}

/* Animation d'entrée : fondu + translation verticale */
@keyframes pd_heroFadeIn {
	from {
		opacity: 0;
		transform: translateY(-20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.pd_hero-info-row {
	display: flex;
	gap: 1.5rem;
	align-items: center;
	margin-bottom: 1.2rem;
	flex-wrap: wrap;
	position: relative;
	z-index: 1;
}

.pd_hero-info-column {
	flex: 1;
	min-width: 150px;
	background: rgba(255,255,255,0.12);
	backdrop-filter: blur(15px);
	padding: 0.8rem 1.2rem;
	border-radius: 12px;
	border: 1px solid rgba(255,255,255,0.25);
	transition: all 0.3s ease;
	box-shadow: 0 8px 32px rgba(0,0,0,0.1);
}

.pd_hero-info-column:hover {
	background: rgba(255,255,255,0.18);
	border-color: rgba(255,255,255,0.35);
	transform: translateY(-2px);
	box-shadow: 0 12px 40px rgba(0,0,0,0.15);
}

.pd_hero-info-column-label {
	font-size: 0.8rem;
	opacity: 0.85;
	margin-bottom: 0.3rem;
	font-weight: 600;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}

.pd_hero-info-column-value {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.4;
}

.pd_hero-characteristics {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	align-items: center;
}

.pd_hero-characteristic-item {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	background: rgba(255,255,255,0.12);
	backdrop-filter: blur(10px);
	padding: 0.5rem 0.8rem;
	border-radius: 8px;
	font-size: 0.95rem;
	font-weight: 600;
	border: 1px solid rgba(255,255,255,0.2);
	transition: all 0.2s ease;
}

.pd_hero-characteristic-item:hover {
	background: rgba(255,255,255,0.18);
	transform: scale(1.05);
}

.pd_hero-price-section {
	display: flex;
	gap: 1.5rem;
	align-items: center;
	justify-content: space-between;
	position: relative;
	z-index: 1;
    width: 100%;
    flex-wrap: wrap;
}

.pd_hero-price-main {
    font-size: 2.8rem;
    font-weight: 800;
    letter-spacing: -1px;
    text-shadow: 0 2px 8px rgba(0,0,0,0.2);
    flex: 0 0 auto;
}

.pd_hero-price-sqm {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1 0 auto;
    justify-content: flex-end;
	align-items: center;
	justify-content: center;
}

/* ===== Styles pour diagnostics DPE/GES dans le hero (6+6 colonnes) ===== */
.dpe-ges-hero-badge {
	padding: 1.5rem;
	border-radius: 12px;
	color: #fff;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 200px;
	width: 100%;
	max-width: 280px;
}

.dpe-ges-hero-header {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1rem;
	font-weight: 600;
}

.dpe-ges-hero-icon {
	font-size: 1.5rem;
	line-height: 1;
}

.dpe-ges-hero-label {
	font-size: 0.9rem;
	opacity: 0.95;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.dpe-ges-hero-content {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.dpe-ges-hero-class {
	font-size: 2.5rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 1px;
}

.dpe-ges-hero-value {
	font-size: 0.9rem;
	opacity: 0.95;
	font-weight: 500;
}

.dpe-ges-hero-year {
	font-size: 0.85rem;
	opacity: 0.85;
}

.dpe-ges-hero-validity {
	font-size: 0.85rem;
	opacity: 0.9;
	font-weight: 600;
	margin-top: 0.5rem;
}

/* Couleurs officielles pour le hero */
.dpe-ges-hero-badge.dpe-ges-class-a { background: #319834; }
.dpe-ges-hero-badge.dpe-ges-class-b { background: #34A037; }
.dpe-ges-hero-badge.dpe-ges-class-c { background: #CADB2C; color: #000; }
.dpe-ges-hero-badge.dpe-ges-class-d { background: #FEED00; color: #000; }
.dpe-ges-hero-badge.dpe-ges-class-e { background: #F6B411; color: #000; }
.dpe-ges-hero-badge.dpe-ges-class-f { background: #EE7A22; }
.dpe-ges-hero-badge.dpe-ges-class-g { background: #E5262E; }

/* ===== Styles pour prix au m² et prix principal dans le hero ===== */
.pd_hero-price-sqm-hero {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	min-height: 160px;
	flex: 1;
}

.pd_hero-price-main-hero {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	min-height: 160px;
	font-size: 2.5rem;
	font-weight: 800;
	letter-spacing: -1px;
	color: #fff;
	position: relative;
	border-radius: 8px;
	padding: 1rem;
	border-spacing: 1rem;
	background: linear-gradient(90deg, #00970E 0%, #116f2ab5 100%);
	box-shadow: 0 8px 24px rgba(31, 41, 55, 0.3);
	border-left: 4px solid #00970f88;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	flex: 1;
}

.pd_hero-price-main-hero:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(31, 41, 55, 0.4);
}

.pd_hero-price-main-hero > * {
	position: relative;
	z-index: 1;
	text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.pd_orbit-slide img {
	width: 100%;
	height: 500px;
	object-fit: contain;
	max-width: 100%;
	cursor: pointer;
}

.pd_orbit-container {
	background: #000;
	height: 500px;
	border-radius: 8px;
	overflow: hidden;
}

.pd_orbit-bullets {
	margin-top: 0.8rem;
	position: relative;
	z-index: 10;
}

.pd_orbit-caption {
	background-color: rgba(10, 10, 10, 0.8);
	padding: 0.8rem;
	position: absolute;
	bottom: 0;
	width: 100%;
	color: white;
	font-size: 1rem;
}

.pd_orbit-controls {
	position: absolute;
	z-index: 10;
	width: 100%;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	justify-content: space-between;
	padding: 0 10px;
}

.pd_orbit-previous, .pd_orbit-next {
	background-color: rgba(255, 255, 255, 0.3);
	color: white;
	padding: 1rem 1.5rem;
	transition: all 0.3s ease;
	border-radius: 50%;
	font-size: 1.5rem;
	line-height: 1;
}

.pd_orbit-previous:hover, .pd_orbit-next:hover {
	background-color: rgba(255, 255, 255, 0.9);
	color: #333;
}

.pd_orbit-wrapper {
	position: relative;
	margin-bottom: 2rem;
}

/* Info Cards */
.pd_info-card {
	background: white;
	border-radius: 8px;
	padding: 1.5rem;
	box-shadow: 0 2px 8px rgba(0,0,0,0.08);
	margin-bottom: 1.5rem;
}

.pd_info-card h3 {
	color: #00970E;
	margin-bottom: 1rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid #f0f0f0;
}

.pd_info-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1rem;
	margin-top: 1rem;
}

.pd_info-item {
	display: flex;
	align-items: center;
	padding: 0.75rem;
	background: #f8f9fa;
	border-radius: 6px;
}

.pd_info-item i {
	font-size: 1.5rem;
	margin-right: 0.75rem;
	color: #00970E;
}

.pd_info-label {
	font-size: 0.85rem;
	color: #666;
	display: block;
}

.pd_info-value {
	font-size: 1.1rem;
	font-weight: bold;
	color: #333;
}

/* Map */
.pd_map-container {
	position: relative;
	width: 100%;
	height: 400px;
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 1rem;
}

.pd_map-container iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Location info */
.pd_location-info {
	background: white;
	padding: 1.5rem;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.pd_location-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.75rem 0;
	border-bottom: 1px solid #f0f0f0;
}

.pd_location-item:last-child {
	border-bottom: none;
}

.pd_sticky-cta {
	position: sticky;
	top: 20px;
}

/* Links in hero should be white */
.pd_property-hero a {
	color: white;
	text-decoration: underline;
}

.pd_property-hero a:hover {
	color: #f0f0f0;
}

/* Contact form styling */
.pd_contact-form-container {
	display: none;
	background: #f9f9f9;
	padding: 1.5rem;
	border-radius: 8px;
	margin-bottom: 1.5rem;
	border: 2px solid #00970E;
	overflow: hidden;
}

.pd_toggle-contact-form:hover {
	background-color: #008a0d !important;
}

/* Responsive */
@media screen and (max-width: 640px) {
	.pd_property-hero h1 {
		font-size: 1.5rem;
	}
	.pd_property-price-hero {
		font-size: 2rem;
	}
	.pd_orbit-slide, .pd_orbit-container, .pd_orbit-slide img {
		height: 300px;
	}
}

/* ================================================================ */
/* PROPERTIES LIST PAGE STYLES (Préfixe pl_)                       */
/* ================================================================ */

.pl_photo-container {
	position: relative;
	width: 100%;
	height: 250px;
	overflow: hidden;
	background: #f5f5f5;
	border-radius: 8px 8px 0 0;
}

.pl_photo-container img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: none;
	transition: opacity 0.3s ease-in-out;
}

.pl_photo-container img.active {
	display: block;
}

.pl_property-card {
	height: 100%;
	display: flex;
	flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	border-radius: 8px;
	overflow: hidden;
}

.pl_property-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 16px rgba(0,0,0,0.15);
}

.pl_property-card .card-section {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.pl_property-info {
	flex: 1;
}

.pl_property-price {
	font-size: 1.5rem;
	font-weight: bold;
	color: #2c3e50;
	margin: 0.5rem 0;
}

.pl_property-location {
	color: #7f8c8d;
	margin-bottom: 1rem;
}

.pl_property-features {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 1rem 0;
}

.pl_feature-badge {
	background: #ecf0f1;
	padding: 0.3rem 0.6rem;
	border-radius: 4px;
	font-size: 0.875rem;
}

.pl_photo-caption {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	background: rgba(0,0,0,0.7);
	color: white;
	padding: 0.5rem;
	font-size: 0.875rem;
	text-align: center;
}

/* ========================================================================= */
/* STYLES DPE / GES - Diagnostics de Performance Énergétique                */
/* ========================================================================= */

/* Container pour badges listing */
.dpe-ges-listing-container {
	display: flex;
	flex-wrap: nowrap;
	gap: 12px;
	margin-top: 10px;
	align-items: stretch;
}

/* Badge individuel dans le listing - Proposition 1 (horizontal) */
.dpe-ges-badge {
	flex: 1;
	min-width: 130px;
	padding: 8px 10px;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 6px;
	text-align: center;
	font-size: 0.8rem;
	font-weight: 600;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	cursor: help;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 4px;
}

.dpe-ges-badge:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.18);
}

.dpe-ges-badge-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	width: 100%;
}

.dpe-ges-badge-icon {
	font-size: 1.3rem;
	line-height: 1;
}

.dpe-ges-badge-abbrev {
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	opacity: 0.85;
}

.dpe-ges-badge-class {
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: 0.5px;
}

.dpe-ges-badge-value {
	font-size: 0.65rem;
	font-weight: 500;
	opacity: 0.9;
	line-height: 1.2;
}

/* Couleurs officielles DPE/GES par classe */
.dpe-ges-class-a { background: #319834; color: #fff; }
.dpe-ges-class-b { background: #34A037; color: #fff; }
.dpe-ges-class-c { background: #CADB2C; color: #000; }
.dpe-ges-class-d { background: #FEED00; color: #000; }
.dpe-ges-class-e { background: #F6B411; color: #000; }
.dpe-ges-class-f { background: #EE7A22; color: #fff; }
.dpe-ges-class-g { background: #E5262E; color: #fff; }

/* Spécifiques DPE vs GES - ajuste la couleur du texte si besoin */
.dpe-ges-badge-dpe.dpe-ges-class-c,
.dpe-ges-badge-dpe.dpe-ges-class-d,
.dpe-ges-badge-dpe.dpe-ges-class-e {
	color: #000;
}

.dpe-ges-badge-ges.dpe-ges-class-c,
.dpe-ges-badge-ges.dpe-ges-class-d,
.dpe-ges-badge-ges.dpe-ges-class-e {
	color: #000;
}

/* Container pour diagnostic détaillé */
.dpe-ges-detail-container {
	background: #fff;
	border-radius: 12px;
	padding: 1.5rem;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	margin-bottom: 1.5rem;
}

.dpe-ges-detail-container h4 {
	margin-top: 0;
	margin-bottom: 1rem;
	color: #333;
	font-size: 1.1rem;
	font-weight: 700;
}

/* Table du diagnostic détaillé */
.dpe-ges-table {
	width: 100%;
	border-collapse: collapse;
	margin: 1rem 0;
	background: white;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
	font-size: 0.9rem;
}

.dpe-ges-table thead {
	background: #f8f8f8;
	font-weight: 600;
	font-size: 0.75rem;
	text-transform: uppercase;
	color: #555;
	letter-spacing: 0.3px;
}

.dpe-ges-table th,
.dpe-ges-table td {
	padding: 10px 6px;
	text-align: left;
	border-bottom: 1px solid #e5e5e5;
}

.dpe-ges-table tbody tr {
	transition: background 0.2s ease;
}

.dpe-ges-table tbody tr:hover:not(.active) {
	background: rgba(0, 0, 0, 0.02);
}

/* Colonne classe (lettre) */
.dpe-ges-table .class-letter {
	font-weight: bold;
	font-size: 1rem;
	text-align: center;
	width: 12%;
	color: #333;
}

/* Colonne plage avec barre comme background */
.dpe-ges-table .class-range-bar {
	width: 60%;
	padding: 8px 6px;
	position: relative;
}

.dpe-ges-table .class-range-bar > div {
	font-size: 0.85rem;
	color: #333;
	font-weight: 500;
	position: relative;
	z-index: 2;
}

/* Colonne marqueur */
.dpe-ges-table .class-marker {
	font-weight: bold;
	color: #000;
	text-align: right;
	width: 28%;
	font-size: 0.85rem;
	padding-right: 12px;
}

.dpe-ges-table .class-marker span {
	display: inline-block;
	padding: 4px 8px;
	background: #f0f0f0;
	border-radius: 3px;
	font-size: 0.75rem;
	font-weight: 700;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
	white-space: nowrap;
}

/* Ligne active (classe du bien) */
.dpe-ges-table tr.active {
	position: relative;
	border: 2px solid #333 !important;
	box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
	font-weight: 700;
	transition: all 0.2s ease;
}

.dpe-ges-table tr.active:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
	transform: scale(1.02);
}

.dpe-ges-table tr.active td {
	border-top: 2px solid #333;
	border-bottom: 2px solid #333;
}

.dpe-ges-table tr.active td:first-child {
	border-left: 2px solid #333;
}

.dpe-ges-table tr.active td:last-child {
	border-right: 2px solid #333;
}

/* Fond coloré selon la classe pour la ligne active */
.dpe-ges-table tr.active.dpe-class-a,
.dpe-ges-table tr.active.ges-class-a {
	background: rgba(49, 152, 52, 0.1);
}

.dpe-ges-table tr.active.dpe-class-b,
.dpe-ges-table tr.active.ges-class-b {
	background: rgba(52, 160, 55, 0.1);
}

.dpe-ges-table tr.active.dpe-class-c,
.dpe-ges-table tr.active.ges-class-c {
	background: rgba(202, 219, 44, 0.1);
}

.dpe-ges-table tr.active.dpe-class-d,
.dpe-ges-table tr.active.ges-class-d {
	background: rgba(254, 237, 0, 0.1);
}

.dpe-ges-table tr.active.dpe-class-e,
.dpe-ges-table tr.active.ges-class-e {
	background: rgba(246, 180, 17, 0.1);
}

.dpe-ges-table tr.active.dpe-class-f,
.dpe-ges-table tr.active.ges-class-f {
	background: rgba(238, 122, 34, 0.1);
}

.dpe-ges-table tr.active.dpe-class-g,
.dpe-ges-table tr.active.ges-class-g {
	background: rgba(229, 38, 46, 0.1);
}

/* Informations sous le tableau */
.dpe-ges-info {
	padding: 0.8rem;
	background: rgba(0, 0, 0, 0.02);
	border-radius: 6px;
	margin-top: 0.8rem;
}

.dpe-ges-info p {
	margin: 0.3rem 0;
	font-size: 0.85rem;
	line-height: 1.4;
}

/* Responsive mobile */
@media (max-width: 640px) {
	.dpe-ges-table {
		font-size: 0.8rem;
	}
	
	.dpe-ges-table th,
	.dpe-ges-table td {
		padding: 6px 4px;
	}
	
	.dpe-ges-table .class-letter {
		font-size: 0.9rem;
	}
	
	.dpe-ges-table .class-range-bar > div {
		font-size: 0.7rem;
	}
	
	.dpe-ges-table .class-marker {
		font-size: 0.75rem;
	}
	
	.dpe-ges-table .class-marker span {
		font-size: 0.65rem;
		padding: 3px 6px;
	}
}

/* ========================================== */
/* Property Pricing Display Styles (Rental HC + Charges) */
/* ========================================== */

/**
 * Property price display container
 * Used for multi-line price rendering with HC (Hors Charges) and expense provisions
 * Example display:
 *   1200 €/mois HC
 *   + 150 €/mois Charges
 *   = 1350 €/mois TTC
 */
.property-price-display {
	font-family: 'Courier New', 'Courier', monospace;
	line-height: 1.4;
	padding: 0.5rem 0;
}

/**
 * Individual price line container
 * Flexbox layout to align amounts right and labels left
 */
.price-line {
	display: flex;
	justify-content: flex-end;
	align-items: baseline;
	gap: 0.5rem;
	margin-bottom: 0.25rem;
}

/**
 * Price amount (number + currency + period)
 * Right-aligned for easy comparison and column alignment
 */
.price-amount {
	font-weight: bold;
	font-size: 1.1rem;
	text-align: right;
	min-width: 120px;
	color: #00970E;
	letter-spacing: 0.02em;
	flex-shrink: 0;
}

/**
 * Price label (HC, Charges, TTC, or period like "€/mois")
 * Left-aligned, smaller font for secondary information
 * Includes cursor:help for interactive tooltips
 */
.price-label {
	font-size: 0.8rem;
	color: #999;
	text-align: left;
	min-width: 80px;
	flex-grow: 1;
	cursor: help;
	text-transform: capitalize;
}

/**
 * TTC (Total with Charges) line styling
 * Visually separated from rent+charges lines with top border
 * Indicates calculated total
 */
.price-ttc {
	font-weight: bold;
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px solid #eee;
	color: #00970E;
}

/**
 * HC label with tooltip support
 * Provides visual distinction for "Hors Charges" (without expenses)
 */
.price-label.hc-abbreviation {
	cursor: help;
	text-decoration: dotted underline;
	text-decoration-color: #999;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

/**
 * Charges addition prefix (+)
 * Visual indicator that charge is additive
 */
.price-label.charges-prefix {
	font-weight: bold;
	color: #d9534f;
}

/**
 * TTC calculation prefix (=)
 * Visual indicator of sum/total
 */
.price-label.ttc-prefix {
	font-weight: bold;
	color: #00970E;
}

/**
 * Responsive adjustments for small screens
 * Maintain readability on mobile devices
 */
@media (max-width: 640px) {
	.property-price-display {
		font-size: 0.95rem;
	}
	
	/* Price display with HC + Charges + CC */
	.property-price-display {
		font-family: 'Courier New', monospace;
		font-size: 0.95em;
		margin: 0.5rem 0;
	}
	
	.property-price-display .price-line {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 0.3rem 0;
		gap: 1rem;
	}
	
	.property-price-display .price-left {
		flex-shrink: 0;
		font-weight: bold;
		color: #2d5f8d;
		text-align: right;
		min-width: 70px;
		font-size: 1em;
	}
	
	.property-price-display .price-right {
		flex-grow: 1;
		text-align: left;
		color: #666;
		font-size: 0.85em;
	}
	
	/* Abbreviations styling */
	.property-price-display dfn {
		font-style: normal;
		font-weight: 500;
		border-bottom: 1px dotted #999;
		cursor: help;
	}
	
	.property-price-display abbr {
		font-weight: 600;
		letter-spacing: 0.05em;
		text-transform: uppercase;
	}
	
	/* Total line styling */
	.property-price-display .price-total {
		font-weight: bold;
		padding-top: 0.5rem;
		border-top: 2px solid #ddd;
		margin-top: 0.3rem;
	}
	
	.property-price-display .price-total .price-left {
		color: #1a7f2e;
		font-size: 1.1em;
	}
	
	.property-price-display .price-total .price-right {
		color: #1a7f2e;
		font-weight: bold;
	}
	
	/* Smaller version for property details page */
	.property-price-display-detail {
		font-size: 0.6em !important;
	}
	
	.property-price-display-detail .price-line {
		padding: 0.15rem 0;
		gap: 0.5rem;
	}
	
	.property-price-display-detail .price-left {
		min-width: 50px;
	}
	
	.property-price-display-detail .price-amount {
		min-width: 50px !important;
		font-size: 0.6em;
	}
	
	.property-price-display-detail .price-label {
		font-size: 0.6em;
	}
	
	.property-price-display-detail dfn {
		border-bottom-width: 1px;
	}
	
	.property-price-display-detail .price-cc {
		padding-top: 0.3rem !important;
	}
	
	.property-price-display-detail .price-cc .price-amount {
		font-size: 0.6em;
	}
}