/**
Theme Name: Absolut Immobilier
Author: Absolut Immobilier
Author URI: http://wpastra.com/about/
Description: Thème enfant du site immobilier Absolut SA 
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: absolut-immobilier
Template: astra
*/
/* ==================================================
   FICHE D'UN BIEN — ABSOLUT IMMOBILIER
   ================================================== */

.single-biens .site-content {
	min-height: 70vh;
	background: #f4f6fb;
}

.absolut-property {
	padding: 70px 24px 90px;
}

.absolut-property__container {
	width: min(1180px, 100%);
	margin: 0 auto;
}

.absolut-property__header {
	margin-bottom: 36px;
}

.absolut-property__header h1 {
	max-width: 950px;
	margin: 0 0 18px;
	font-size: clamp(36px, 5vw, 64px);
	line-height: 1.08;
	font-weight: 500;
	letter-spacing: -0.03em;
	color: #111827;
}

.absolut-property__price {
	margin: 0 0 28px;
	font-size: clamp(25px, 3vw, 38px);
	line-height: 1.2;
	font-weight: 600;
	color: #096bd8;
}

.absolut-property__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.absolut-property__stats span {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 10px 18px;
	border: 1px solid #dce2ec;
	border-radius: 999px;
	background: #ffffff;
	font-size: 16px;
	color: #334155;
}

.absolut-property__stats strong {
	margin-right: 5px;
	font-size: 18px;
	color: #111827;
}

.absolut-property__hero {
	overflow: hidden;
	margin: 0 0 55px;
	border-radius: 8px;
	background: #e5e7eb;
}

.absolut-property__hero img {
	display: block;
	width: 100%;
	height: clamp(360px, 56vw, 680px);
	object-fit: cover;
}

.absolut-property__description {
	max-width: 900px;
	padding: 50px;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 18px 55px rgba(15, 23, 42, 0.07);
}

.absolut-property__description h2 {
	margin: 0 0 24px;
	font-size: clamp(28px, 4vw, 42px);
	line-height: 1.15;
	font-weight: 500;
	color: #111827;
}

.absolut-property__description p {
	margin-bottom: 22px;
	font-size: 17px;
	line-height: 1.8;
	color: #475569;
}

.absolut-property__description p:last-child {
	margin-bottom: 0;
}

@media (max-width: 768px) {
	.absolut-property {
		padding: 45px 18px 65px;
	}

	.absolut-property__description {
		padding: 28px 22px;
	}

	.absolut-property__stats {
		gap: 8px;
	}

	.absolut-property__stats span {
		padding: 8px 13px;
		font-size: 14px;
	}
}
/* ==================================================
   GALERIE DU BIEN
   ================================================== */

.absolut-property__gallery {
    margin: 0 0 55px;
}

.absolut-property__gallery .wp-block-gallery {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: repeat(2, minmax(190px, 280px));
    gap: 10px;
    margin: 0;
}

.absolut-property__gallery .wp-block-image {
    overflow: hidden;
    margin: 0 !important;
    border-radius: 10px;
}

.absolut-property__gallery .wp-block-image:first-child {
    grid-row: 1 / 3;
}

.absolut-property__gallery img {
    width: 100%;
    height: 100% !important;
    object-fit: cover;
    display: block;
    transition: transform .35s ease;
}

.absolut-property__gallery .wp-block-image:hover img {
    transform: scale(1.03);
}

@media (max-width: 768px) {

    .absolut-property__gallery .wp-block-gallery {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
    }

    .absolut-property__gallery .wp-block-image:first-child {
        grid-column: 1 / 3;
        grid-row: auto;
        min-height: 260px;
    }

    .absolut-property__gallery .wp-block-image {
        min-height: 150px;
    }

}

/* Correction de la galerie WordPress */
.absolut-property__gallery .wp-block-gallery {
	display: grid !important;
	grid-template-columns: 2fr 1fr 1fr !important;
	grid-template-rows: repeat(2, 280px) !important;
	gap: 14px !important;
	align-items: stretch !important;
}

.absolut-property__gallery .wp-block-gallery > .wp-block-image {
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	flex-basis: auto !important;
	align-self: stretch !important;
}

.absolut-property__gallery .wp-block-gallery > .wp-block-image:first-child {
	grid-row: 1 / 3 !important;
}

.absolut-property__gallery .wp-block-gallery > .wp-block-image img {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	aspect-ratio: auto !important;
	object-fit: cover !important;
}

@media (max-width: 768px) {
	.absolut-property__gallery .wp-block-gallery {
		grid-template-columns: 1fr 1fr !important;
		grid-template-rows: 280px 170px 170px !important;
	}

	.absolut-property__gallery .wp-block-gallery > .wp-block-image:first-child {
		grid-column: 1 / 3 !important;
		grid-row: 1 !important;
	}
}

/* ==================================================
   CARROUSEL DU BIEN
   ================================================== */

.absolut-property__carousel {
	margin: 0 0 55px;
}

.absolut-carousel__viewport {
	position: relative;
	overflow: hidden;
	border-radius: 12px;
	background: #e5e7eb;
}

.absolut-property__carousel .wp-block-gallery {
	display: block !important;
	margin: 0 !important;
}

.absolut-property__carousel .wp-block-gallery > .wp-block-image {
	display: none !important;
	width: 100% !important;
	height: clamp(420px, 58vw, 680px) !important;
	margin: 0 !important;
}

.absolut-property__carousel .wp-block-gallery > .wp-block-image.is-active {
	display: block !important;
}

.absolut-property__carousel .wp-block-gallery img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

.absolut-carousel__arrow {
	position: absolute;
	top: 50%;
	z-index: 5;
	width: 52px;
	height: 52px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	color: #111827;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
	box-shadow: 0 8px 25px rgba(15, 23, 42, 0.18);
}

.absolut-carousel__arrow--previous {
	left: 22px;
}

.absolut-carousel__arrow--next {
	right: 22px;
}

.absolut-carousel__counter {
	position: absolute;
	right: 22px;
	bottom: 20px;
	z-index: 5;
	padding: 8px 13px;
	border-radius: 999px;
	background: rgba(15, 23, 42, 0.72);
	color: #ffffff;
	font-size: 14px;
}

.absolut-carousel__thumbnails {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	margin-top: 12px;
	padding-bottom: 4px;
}

.absolut-carousel__thumbnail {
	flex: 0 0 110px;
	height: 74px;
	padding: 0;
	overflow: hidden;
	border: 2px solid transparent;
	border-radius: 8px;
	background: none;
	cursor: pointer;
	opacity: 0.72;
}

.absolut-carousel__thumbnail.is-active {
	border-color: #096bd8;
	opacity: 1;
}

.absolut-carousel__thumbnail img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 768px) {
	.absolut-property__carousel .wp-block-gallery > .wp-block-image {
		height: 340px !important;
	}

	.absolut-carousel__arrow {
		width: 42px;
		height: 42px;
		font-size: 22px;
	}

	.absolut-carousel__arrow--previous {
		left: 12px;
	}

	.absolut-carousel__arrow--next {
		right: 12px;
	}

	.absolut-carousel__thumbnail {
		flex-basis: 82px;
		height: 58px;
	}
}

/* ==================================================
   CARACTÉRISTIQUES DU BIEN
   ================================================== */

.absolut-property__features {
	margin-top: 42px;
	padding: 42px;
	border-radius: 12px;
	background: #ffffff;
	box-shadow: 0 18px 55px rgba(15, 23, 42, 0.07);
}

.absolut-property__features h2 {
	margin: 0 0 28px;
	font-size: clamp(28px, 4vw, 42px);
	line-height: 1.15;
	font-weight: 500;
	color: #111827;
}

.absolut-property__features-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 36px;
}

.absolut-property__feature {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 58px;
	padding: 14px 0;
	border-bottom: 1px solid #e5e7eb;
}

.absolut-property__feature span {
	color: #64748b;
}

.absolut-property__feature strong {
	color: #111827;
	text-align: right;
}

@media (max-width: 768px) {
	.absolut-property__features {
		padding: 28px 22px;
	}

	.absolut-property__features-grid {
		grid-template-columns: 1fr;
	}

	.absolut-property__feature {
		min-height: 54px;
	}
}
/* =======================================================
   CONTACT
======================================================= */

.absolut-property__contact{
    margin:70px 0;
    padding:60px;
    background:#0f172a;
    border-radius:18px;

    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:50px;
}

.absolut-property__contact-content{
    max-width:700px;
}

.absolut-property__contact-label{
    color:#60a5fa;
    font-size:14px;
    font-weight:600;
    letter-spacing:2px;
    text-transform:uppercase;
    margin-bottom:15px;
}

.absolut-property__contact h2{
    color:#fff;
    font-size:46px;
    margin:0 0 20px;
}

.absolut-property__contact-content p:last-child{
    color:#cbd5e1;
    font-size:18px;
    line-height:1.8;
}

.absolut-property__contact-button{

    display:inline-block;

    padding:18px 34px;

    border-radius:8px;

    background:#1685e5;

    color:#fff;

    font-weight:600;

    text-decoration:none;

    transition:.25s;
}

.absolut-property__contact-button:hover{

    background:#0d6cc3;

    color:#fff;

    transform:translateY(-3px);

}

/* ==========================================================
   HERO PAGE ACHETER
========================================================== */

.absolut-listing-hero{

    position:relative;

    min-height:760px;

    display:flex;

    align-items:center;

    justify-content:center;

    background-size:cover;

    background-position:center;

    background-repeat:no-repeat;

}

.absolut-listing-hero__overlay{

    position:absolute;

    inset:0;

    background:rgba(10,18,35,.40);

}

.absolut-listing-hero__content{

    position:relative;

    z-index:2;

    max-width:900px;

    width:100%;

    text-align:center;

    color:#fff;

    padding:0 30px;

}

.absolut-listing-hero__label{

    color:#9dc8ff;

    text-transform:uppercase;

    letter-spacing:3px;

    font-size:14px;

    font-weight:700;

    margin-bottom:20px;

}

.absolut-listing-hero h1{

    color:#fff;

    font-size:72px;

    line-height:1.1;

    margin-bottom:24px;

}

.absolut-listing-hero__text{

    color:#ffffffdd;

    font-size:22px;

    max-width:720px;

    margin:0 auto 45px;

}

.absolut-listing-switch{

    display:inline-flex;

    border-radius:999px;

    overflow:hidden;

    background:#ffffff22;

    backdrop-filter:blur(15px);

}

.absolut-listing-switch__button{

    border:none;

    padding:18px 42px;

    cursor:pointer;

    background:transparent;

    color:#fff;

    font-size:16px;

    font-weight:600;

}

.absolut-listing-switch__button.is-active{

    background:#2d87e6;

}

/* Page Acheter en pleine largeur */

.page-template-page-acheter .site-content,
.page-template-page-acheter .ast-container,
.page-template-page-acheter .ast-container-fluid,
.page-template-page-acheter .content-area,
.page-template-page-acheter .site-main{
    max-width:100% !important;
    width:100% !important;
    padding:0 !important;
    margin:0 !important;
}

.absolut-listing-page{
    width:100%;
}

.absolut-listing-hero{
    width:100%;
}
.absolut-property__location {
    margin: 8px 0 24px;
    color: #6b7280;
    font-size: 17px;
    font-weight: 500;
}
.absolut-property__map-section {
    margin: 64px 0;
    padding: 48px;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 14px 40px rgba(16, 26, 61, 0.08);
}

.absolut-property__map-header {
    margin-bottom: 28px;
}

.absolut-property__map-label {
    margin: 0 0 8px;
    color: #2340e8;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
}

.absolut-property__map-header h2 {
    margin: 0 0 12px;
}

.absolut-property__map-address {
    margin: 0;
    color: #6b7280;
    font-size: 16px;
}

.absolut-property__map {
    overflow: hidden;
    border-radius: 14px;
}

.absolut-property__map iframe {
    display: block;
}

@media (max-width: 700px) {
    .absolut-property__map-section {
        padding: 24px;
    }

    .absolut-property__map iframe {
        height: 340px;
    }
}
.absolut-property__back {
    display: inline-block;
    margin-bottom: 24px;
    color: #2340e8;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: transform .25s ease, color .25s ease;
}

.absolut-property__back:hover {
    color: #101a3d;
    transform: translateX(-4px);
}