/*
 * DDS Real Estate v3 — Design carré & élégant
 * Palette : ardoise + pierre dorée + crème
 */

/* ── Variables ─────────────────────────────────────── */
.dds-property-single {
    --slate:     #0c1a29;
    --slate2:    #152538;
    --stone:     #c4a06a;
    --stone-lt:  #d9ba8a;
    --cream:     #f5efe3;
    --cream-dk:  #ece4d2;
    --white:     #ffffff;
    --text:      #1e1a17;
    --text-mid:  #4a4540;
    --muted:     #8a857f;
    --border:    #e0d8cb;
    --ease:      cubic-bezier(.16,1,.3,1);
    font-family: 'Jost', -apple-system, sans-serif;
    color: var(--text);
    background: var(--cream);
    -webkit-font-smoothing: antialiased;
}

.dds-property-single *,
.dds-property-single *::before,
.dds-property-single *::after { box-sizing: border-box; }

.dds-property-single img { max-width:100%; display:block; }

/* ── Full-width breakout ─────────────────────────── */
.dds-property-single .dds-fw {
    position: relative;
    left:         50%;
    right:        50%;
    margin-left:  -50vw;
    margin-right: -50vw;
    width:        100vw;
    max-width:    100vw;
}

/* Empêcher le débordement horizontal causé par 100vw + scrollbar */
.dds-property-single {
    overflow-x: clip;
}

/* ── Reveal ──────────────────────────────────────── */
.dds-reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity .85s var(--ease), transform .85s var(--ease);
}
.dds-reveal.visible { opacity:1; transform:translateY(0); }
.dds-delay-1 { transition-delay:.15s; }
.dds-delay-2 { transition-delay:.3s; }

/* ── Section tag & title ─────────────────────────── */
.dds-section-tag {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: .62rem;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--stone);
    font-weight: 500;
    margin-bottom: 16px;
}
.dds-section-tag::before {
    content:'';
    display:block;
    width:32px; height:1px;
    background:var(--stone);
    flex-shrink:0;
}
.dds-section-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.8rem, 3.5vw, 3rem);
    font-weight: 300;
    line-height: 1.15;
    color: var(--slate);
    margin: 0 0 28px;
}
.dds-section-title.light { color: var(--white); }

/* ════════════════════════════════════════════════════
   LANGUE
   ════════════════════════════════════════════════════ */
.dds-lang-bar {
    background: var(--slate);
    border-bottom: 1px solid rgba(196,160,106,.15);
    z-index: 50;
    position: sticky;
    top: 0;
}
.dds-lang-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 40px;
    max-width: 1400px;
    margin: 0 auto;
}
.dds-lang-logo {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: .08em;
    color: var(--stone);
}
.dds-lang-btns { display:flex; gap:6px; }
.dds-lang {
    background: none;
    border: 1px solid rgba(255,255,255,.15);
    color: rgba(255,255,255,.5);
    font-family: 'Jost', sans-serif;
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .1em;
    padding: 5px 11px;
    cursor: pointer;
    transition: all .2s;
}
.dds-lang:hover { border-color:var(--stone); color:var(--stone); }
.dds-lang.active { background:rgba(196,160,106,.15); border-color:var(--stone); color:var(--stone); }

/* ════════════════════════════════════════════════════
   HÉRO
   ════════════════════════════════════════════════════ */
.dds-hero {
    height: 100vh;
    min-height: 580px;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    background: var(--slate);
}

.dds-hero-slides { position:absolute; inset:0; z-index:0; }
.dds-slide {
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    opacity:0;
    transform:scale(1.05);
    transition: opacity 1.6s var(--ease), transform 8s ease-out;
}
.dds-slide.active { opacity:1; transform:scale(1); }

.dds-hero-overlay {
    position:absolute; inset:0; z-index:1;
    background: linear-gradient(to top,
        rgba(12,26,41,.88) 0%,
        rgba(12,26,41,.35) 50%,
        transparent 100%);
}

/* Badge prix */
.dds-hero-badge {
    position:absolute; top:50%; right:48px;
    transform:translateY(-50%);
    z-index:3;
    background:rgba(12,26,41,.5);
    border:1px solid rgba(196,160,106,.45);
    backdrop-filter:blur(12px);
    padding:22px 30px;
    text-align:center;
    min-width:160px;
}
.dds-badge-label {
    font-size:.6rem; letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--stone);
    margin-bottom:8px; display:block;
}
.dds-badge-price {
    font-family:'Cormorant Garamond',serif;
    font-size:2rem; font-weight:600;
    color:var(--white); line-height:1;
    white-space:nowrap;
}

/* Contenu héro */
.dds-hero-content {
    position:relative; z-index:2;
    padding:0 48px 80px;
    max-width:calc(100% - 260px);
}
.dds-hero-tag {
    display:block;
    font-size:.65rem; letter-spacing:.26em;
    text-transform:uppercase;
    color:var(--stone); font-weight:400;
    margin-bottom:14px;
    opacity:0; transform:translateY(18px);
    animation: dds-up .8s 1.2s var(--ease) forwards;
}
.dds-hero-title {
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(2.4rem,5.5vw,4.8rem);
    font-weight:300; color:var(--white);
    line-height:1.1; margin:0 0 22px;
    opacity:0; transform:translateY(24px);
    animation: dds-up 1s 1.4s var(--ease) forwards;
}
.dds-hero-meta {
    display:flex; align-items:center; gap:24px; flex-wrap:wrap;
    opacity:0; transform:translateY(18px);
    animation: dds-up .8s 1.7s var(--ease) forwards;
}
.dds-hero-loc {
    display:flex; align-items:center; gap:7px;
    color:rgba(255,255,255,.7); font-size:.85rem;
}
.dds-hero-loc svg { color:var(--stone); flex-shrink:0; }
.dds-hero-sep { width:1px; height:22px; background:rgba(255,255,255,.2); }
.dds-hero-price {
    font-family:'Cormorant Garamond',serif;
    font-size:1.9rem; font-weight:600; color:var(--white);
    line-height:1; display:flex; flex-direction:column; gap:2px;
}
.dds-hero-price small {
    font-family:'Jost',sans-serif;
    font-size:.6rem; letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--stone); font-weight:400;
}

/* Navigation héro */
.dds-hero-prev, .dds-hero-next {
    position:absolute; top:50%; transform:translateY(-50%);
    z-index:3; width:44px; height:44px;
    display:flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.2);
    cursor:pointer;
    transition:all .2s;
}
.dds-hero-prev { left:16px; }
.dds-hero-next { right:16px; }
.dds-hero-prev:hover,.dds-hero-next:hover {
    background:rgba(196,160,106,.25); border-color:var(--stone);
}
.dds-hero-prev svg,.dds-hero-next svg { width:20px; height:20px; color:var(--white); }

/* Dots */
.dds-hero-dots {
    position:absolute; bottom:24px; left:48px; right:48px;
    z-index:3; display:flex; gap:5px;
}
.dds-dot {
    flex:1; height:2px; background:rgba(255,255,255,.2);
    border:none; padding:0; cursor:pointer; position:relative; overflow:hidden;
}
.dds-dot.active::after {
    content:''; position:absolute; inset:0;
    background:var(--stone);
    animation:dds-prog var(--hero-interval, 5000ms) linear forwards;
}

/* Counter + scroll */
.dds-hero-counter {
    position:absolute; bottom:44px; right:48px; z-index:3;
    font-size:.7rem; color:rgba(255,255,255,.55);
    background:rgba(12,26,41,.55); backdrop-filter:blur(6px);
    padding:4px 11px;
}
.dds-hero-scroll {
    position:absolute; bottom:30px; left:50%; transform:translateX(-50%);
    z-index:3; display:flex; flex-direction:column; align-items:center; gap:5px;
    color:rgba(255,255,255,.4); font-size:.58rem; letter-spacing:.2em;
    text-transform:uppercase; cursor:pointer;
    animation:dds-bounce 2.5s 3s infinite;
}
.dds-hero-scroll svg { width:18px; height:18px; }

@keyframes dds-up     { to { opacity:1; transform:translateY(0); } }
@keyframes dds-prog   { to { width:100%; } }
@keyframes dds-bounce { 0%,100%{transform:translateX(-50%)}  50%{transform:translateX(-50%) translateY(6px)} }

/* ════════════════════════════════════════════════════
   STATS BAR
   ════════════════════════════════════════════════════ */
.dds-stats {
    background:var(--slate);
    display:flex; justify-content:center;
    border-bottom:1px solid rgba(196,160,106,.1);
}
.dds-stat {
    flex:1; display:flex; flex-direction:column; align-items:center;
    padding:28px 16px; text-align:center;
    border-right:1px solid rgba(255,255,255,.07);
}
.dds-stat:last-child { border-right:none; }
.dds-stat-v {
    font-family:'Cormorant Garamond',serif;
    font-size:2rem; font-weight:600;
    color:var(--stone); line-height:1; margin-bottom:6px;
}
.dds-stat-l {
    font-size:.6rem; letter-spacing:.18em;
    text-transform:uppercase; color:rgba(255,255,255,.38);
}

/* ════════════════════════════════════════════════════
   DESCRIPTION
   ════════════════════════════════════════════════════ */
.dds-desc { background:var(--white); }
.dds-desc-inner {
    display:grid; grid-template-columns:1fr 1fr;
    gap:72px; align-items:center;
    padding:96px 60px; max-width:1400px; margin:0 auto;
}
.dds-desc-text .dds-section-title { margin-bottom:20px; }
.dds-lang-content { font-size:1rem; line-height:1.9; color:var(--text-mid); font-weight:300; }
.dds-lang-content p { margin:0 0 1.1em; }
.dds-lang-content strong { font-weight:500; color:var(--slate); }

.dds-desc-img {
    position:relative; aspect-ratio:3/4; overflow:hidden;
}
.dds-desc-img img { width:100%; height:100%; object-fit:cover; transition:transform 8s ease-out; }
.dds-desc-img:hover img { transform:scale(1.04); }
.dds-desc-img::after {
    content:''; position:absolute;
    bottom:-18px; left:-18px;
    width:140px; height:140px;
    border:1.5px solid rgba(196,160,106,.3);
    pointer-events:none;
}

/* ════════════════════════════════════════════════════
   GALERIE
   ════════════════════════════════════════════════════ */
.dds-gallery { background:var(--cream-dk); padding:80px 0 0; }
.dds-gallery-header { padding:0 60px; margin-bottom:36px; }

.dds-gallery-main {
    position:relative; aspect-ratio:16/9;
    background:var(--slate); overflow:hidden;
}
.dds-main-img {
    width:100%; height:100%; object-fit:cover;
    transition:transform .7s var(--ease);
}
.dds-gallery-main:hover .dds-main-img { transform:scale(1.02); }

.dds-gprev,.dds-gnext {
    position:absolute; top:50%; transform:translateY(-50%);
    z-index:2; width:44px; height:44px;
    display:flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,.9);
    border:none; cursor:pointer;
    transition:all .2s; box-shadow:0 2px 12px rgba(0,0,0,.15);
}
.dds-gprev { left:14px; }
.dds-gnext { right:14px; }
.dds-gprev:hover,.dds-gnext:hover { background:var(--white); }
.dds-gprev svg,.dds-gnext svg { width:20px; height:20px; color:var(--slate); }

.dds-gcounter {
    position:absolute; bottom:14px; right:14px; z-index:2;
    font-size:.72rem; color:rgba(255,255,255,.8);
    background:rgba(12,26,41,.6); backdrop-filter:blur(4px);
    padding:4px 11px;
}

.dds-thumbs-row {
    display:flex; gap:3px; overflow-x:auto;
    padding:3px 3px 0;
    scrollbar-width:thin; scrollbar-color:rgba(196,160,106,.3) transparent;
}
.dds-thumbs-row::-webkit-scrollbar { height:4px; }
.dds-thumbs-row::-webkit-scrollbar-thumb { background:rgba(196,160,106,.3); }

.dds-gthumb {
    flex-shrink:0; width:96px; height:66px;
    border:2px solid transparent; overflow:hidden;
    cursor:pointer; background:none; padding:0;
    transition:border-color .2s;
}
.dds-gthumb img { width:100%; height:100%; object-fit:cover; }
.dds-gthumb.active { border-color:var(--stone); }
.dds-gthumb:hover { border-color:rgba(196,160,106,.5); }

/* ════════════════════════════════════════════════════
   CARACTÉRISTIQUES
   ════════════════════════════════════════════════════ */
.dds-features { background:var(--slate); }
.dds-features-inner {
    padding:96px 60px; max-width:1400px; margin:0 auto;
}
.dds-features-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
    gap:1px; background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.07);
    margin-top:56px;
}
.dds-feat {
    background:var(--slate); padding:44px 30px;
    display:flex; flex-direction:column; align-items:flex-start; gap:10px;
    transition:background .25s;
}
.dds-feat:hover { background:var(--slate2); }
.dds-feat-icon { width:34px; height:34px; color:var(--stone); }
.dds-feat-icon svg { width:100%; height:100%; }
.dds-feat-val {
    font-family:'Cormorant Garamond',serif;
    font-size:2.1rem; font-weight:600; color:var(--white); line-height:1;
}
.dds-feat-lbl {
    font-size:.6rem; letter-spacing:.18em;
    text-transform:uppercase; color:rgba(255,255,255,.38);
}

/* ════════════════════════════════════════════════════
   LOCALISATION
   ════════════════════════════════════════════════════ */
.dds-location { display:grid; grid-template-columns:1fr 1fr; }
.dds-location-map { position:relative; min-height:440px; }
.dds-location-map iframe {
    position:absolute; inset:0; width:100%; height:100%;
    border:none; filter:sepia(10%) contrast(.95);
}
.dds-location-info {
    background:var(--cream); padding:72px 52px;
    display:flex; flex-direction:column; justify-content:center;
}
.dds-location-addr {
    font-size:.9rem; color:var(--text-mid);
    font-weight:300; margin-top:-12px;
}

/* ════════════════════════════════════════════════════
   CONTACT
   ════════════════════════════════════════════════════ */
.dds-contact { background:var(--slate); }
.dds-contact-inner {
    display:grid; grid-template-columns:1fr 1.6fr;
    gap:88px; align-items:start;
    padding:96px 60px; max-width:1400px; margin:0 auto;
}
.dds-contact-intro {
    font-size:.95rem; color:rgba(255,255,255,.45);
    line-height:1.8; font-weight:300; margin:0 0 36px;
}
.dds-contact-deets { display:flex; flex-direction:column; gap:14px; }
.dds-contact-det {
    display:flex; align-items:center; gap:13px;
    font-size:.85rem; color:rgba(255,255,255,.4);
    text-decoration:none; letter-spacing:.04em;
    transition:color .2s;
}
.dds-contact-det:hover { color:var(--stone); }
.dds-contact-det svg { width:17px; height:17px; color:var(--stone); flex-shrink:0; }

/* ── CF7 dans la section contact ─────────────────── */
.dds-contact-form .wpcf7-form,
.dds-contact-form form {
    display:flex; flex-direction:column; gap:0;
}
.dds-contact-form .cf7-row {
    display:grid; grid-template-columns:1fr 1fr; gap:18px;
}
.dds-contact-form label {
    display:flex; flex-direction:column; gap:7px;
    font-size:.62rem; letter-spacing:.16em; text-transform:uppercase;
    color:rgba(255,255,255,.4); font-weight:500; margin-bottom:18px;
    cursor:default;
}
.dds-contact-form input[type=text],
.dds-contact-form input[type=email],
.dds-contact-form input[type=tel],
.dds-contact-form .wpcf7-text,
.dds-contact-form .wpcf7-email {
    width:100%; height:50px;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(196,160,106,.22);
    color:var(--white);
    font-family:'Jost',sans-serif; font-size:.92rem; font-weight:300;
    padding:0 16px; outline:none;
    transition:border-color .2s,background .2s;
}
.dds-contact-form input::placeholder { color:rgba(255,255,255,.2); }
.dds-contact-form input:focus {
    border-color:var(--stone);
    background:rgba(196,160,106,.06);
    box-shadow:0 0 0 3px rgba(196,160,106,.08);
}
.dds-contact-form textarea,
.dds-contact-form .wpcf7-textarea {
    width:100%;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(196,160,106,.22);
    color:var(--white);
    font-family:'Jost',sans-serif; font-size:.92rem; font-weight:300;
    padding:14px 16px; min-height:130px; resize:vertical; outline:none;
    display:block;
    transition:border-color .2s,background .2s;
}
.dds-contact-form textarea::placeholder { color:rgba(255,255,255,.2); }
.dds-contact-form textarea:focus {
    border-color:var(--stone);
    background:rgba(196,160,106,.06);
    box-shadow:0 0 0 3px rgba(196,160,106,.08);
}
.dds-contact-form input[type=submit],
.dds-contact-form .wpcf7-submit {
    height:52px; padding:0 48px;
    background:var(--stone); border:none;
    color:var(--slate);
    font-family:'Jost',sans-serif; font-size:.72rem;
    font-weight:600; letter-spacing:.2em; text-transform:uppercase;
    cursor:pointer; margin-top:8px;
    transition:background .25s,transform .2s,box-shadow .25s;
    -webkit-appearance:none;
}
.dds-contact-form input[type=submit]:hover,
.dds-contact-form .wpcf7-submit:hover {
    background:var(--stone-lt); transform:translateY(-2px);
    box-shadow:0 10px 32px rgba(196,160,106,.25);
}
.dds-contact-form .wpcf7-not-valid-tip {
    color:#e09090; font-size:.72rem; margin-top:4px; display:block;
}
.dds-contact-form .wpcf7-response-output {
    margin-top:16px; padding:12px 18px;
    border-left:2px solid var(--stone);
    background:rgba(196,160,106,.08);
    color:rgba(255,255,255,.6); font-size:.83rem;
}
.dds-contact-form .wpcf7.sent .wpcf7-response-output {
    border-color:#5aad7a; background:rgba(90,173,122,.08); color:#a0d4b4;
}
.dds-contact-form .wpcf7.invalid .wpcf7-response-output {
    border-color:#e07878; background:rgba(224,120,120,.08); color:#e8a0a0;
}
.dds-contact-form .wpcf7-spinner {
    border-top-color:var(--stone)!important;
}

/* ════════════════════════════════════════════════════
   LISTE D'ANNONCES
   ════════════════════════════════════════════════════ */
.dds-list {
    display:grid; gap:24px; padding:20px;
}
.dds-cols-2 { grid-template-columns:repeat(2,1fr); }
.dds-cols-3 { grid-template-columns:repeat(3,1fr); }
.dds-cols-4 { grid-template-columns:repeat(4,1fr); }

.dds-card { background:var(--white); border:1px solid var(--border); transition:transform .35s var(--ease),box-shadow .35s; }
.dds-card:hover { transform:translateY(-6px); box-shadow:0 16px 40px rgba(0,0,0,.12); }
.dds-card-link { display:block; text-decoration:none; color:inherit; }
.dds-card-img { position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--slate2); }
.dds-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.dds-card:hover .dds-card-img img { transform:scale(1.06); }
.dds-card-badge {
    position:absolute; top:12px; left:12px; z-index:1;
    font-size:.62rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
    padding:4px 10px;
}
.dds-badge-sale { background:var(--slate); color:var(--white); }
.dds-badge-rent { background:var(--stone); color:var(--slate); }
.dds-card-body { padding:18px 20px 22px; }
.dds-card-title {
    font-family:'Cormorant Garamond',serif;
    font-size:1.1rem; font-weight:600; color:var(--slate);
    margin:0 0 5px; line-height:1.3;
}
.dds-card-loc { font-size:.82rem; color:var(--muted); margin:0 0 10px; }
.dds-card-price {
    font-family:'Cormorant Garamond',serif;
    font-size:1.3rem; font-weight:700; color:var(--slate); margin:0;
}
.dds-card-price small { font-size:.82rem; color:var(--muted); font-weight:400; }

/* ════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
    .dds-hero-badge { display:none; }
    .dds-hero-content { max-width:100%; padding:0 36px 72px; }
    .dds-hero-dots { left:36px; right:36px; }
    .dds-hero-counter { right:36px; bottom:40px; }
    .dds-desc-inner { padding:72px 36px; gap:48px; }
    .dds-features-inner, .dds-contact-inner { padding:72px 36px; }
    .dds-gallery-header { padding:0 36px; }
    .dds-location-info { padding:56px 36px; }
    .dds-lang-inner { padding:10px 24px; }
}
@media (max-width: 860px) {
    .dds-desc-inner { grid-template-columns:1fr; }
    .dds-desc-img { aspect-ratio:16/9; }
    .dds-location { grid-template-columns:1fr; }
    .dds-location-map { min-height:300px; }
    .dds-contact-inner { grid-template-columns:1fr; gap:48px; }
    .dds-cols-3,.dds-cols-4 { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 580px) {
    .dds-hero { height:85vh; min-height:480px; }
    .dds-hero-title { font-size:2.1rem; }
    .dds-hero-content { padding:0 22px 64px; max-width:100%; }
    .dds-hero-dots { left:22px; right:22px; bottom:18px; }
    .dds-hero-counter { right:22px; bottom:36px; }
    .dds-stats { flex-wrap:wrap; }
    .dds-stat { min-width:50%; border-right:none; border-bottom:1px solid rgba(255,255,255,.07); }
    .dds-features-grid { grid-template-columns:1fr 1fr; }
    .dds-contact-form .cf7-row { grid-template-columns:1fr; }
    .dds-contact-form input[type=submit],.dds-contact-form .wpcf7-submit { width:100%; }
    .dds-cols-2,.dds-cols-3,.dds-cols-4 { grid-template-columns:1fr; }
    .dds-gthumb { width:72px; height:50px; }
}
@media (prefers-reduced-motion:reduce) {
    .dds-reveal,.dds-slide,.dds-main-img { transition:none!important; animation:none!important; }
    .dds-reveal { opacity:1; transform:none; }
}
