/* ==========================================================
   IndaloCasa — Page d'un bien (préfixe .pd-)
   Complète home-editorial.css (.ed-wrap, .ed-specs, .ed-btn)
   ========================================================== */

.pd-head { padding: clamp(28px, 5vw, 52px) 0 22px; }
.pd-back {
    display: inline-block; margin-bottom: 22px;
    font-size: .72rem; letter-spacing: .14em; text-transform: uppercase;
    color: var(--muted-foreground, #6d6a63); text-decoration: none; font-weight: 600;
    transition: color .2s;
}
.pd-back:hover { color: var(--primary, #12667a); }
.pd-head-row {
    display: flex; align-items: flex-end; justify-content: space-between;
    gap: 26px; flex-wrap: wrap;
    padding-bottom: 20px; border-bottom: 1px solid var(--border, #e2d9ca);
}
.pd-loc {
    font-size: .72rem; letter-spacing: .16em; text-transform: uppercase;
    color: var(--ochre, #c98b32); font-weight: 600; margin: 0 0 8px;
}
.pd-head-txt h1 {
    font-family: 'Playfair Display', Georgia, serif; font-weight: 600;
    font-size: clamp(1.9rem, 4.2vw, 3rem); margin: 0; line-height: 1.1;
    letter-spacing: -.02em; text-wrap: balance;
}
.pd-head-price { text-align: right; line-height: 1.15; }
.pd-head-price .lbl {
    display: block; font-size: .64rem; letter-spacing: .16em; text-transform: uppercase;
    color: var(--muted-foreground, #6d6a63); font-weight: 600; margin-bottom: 3px;
}
.pd-head-price .val {
    font-family: 'Playfair Display', Georgia, serif; font-size: 1.9rem;
    font-variant-numeric: tabular-nums; color: var(--foreground, #22282b);
}
.pd-head-price .unit { font-size: .82rem; color: var(--muted-foreground, #6d6a63); }

/* ---------- galerie ---------- */
.pd-gallery-wrap { padding-bottom: clamp(30px, 5vw, 48px); }
.pd-gallery {
    position: relative;
    display: grid; grid-template-columns: 1.5fr 1fr; gap: 10px;
    height: clamp(320px, 46vw, 520px);
}
.pd-gallery.is-single { grid-template-columns: 1fr; }
.pd-g-main, .pd-g-thumb {
    padding: 0; border: 0; cursor: pointer; overflow: hidden;
    border-radius: 3px; background: var(--muted, #efe7d9); position: relative;
    display: block;
}
.pd-g-main { height: 100%; }
.pd-g-main img, .pd-g-thumb img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform .7s cubic-bezier(.2, .6, .2, 1);
}
.pd-g-main:hover img, .pd-g-thumb:hover img { transform: scale(1.04); }
.pd-g-side { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; height: 100%; }
.pd-g-more {
    position: absolute; inset: 0; background: rgba(9, 26, 29, .62); color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.15rem; font-weight: 600;
}
.pd-g-all {
    position: absolute; right: 16px; bottom: 16px;
    background: var(--panel, #fbf8f3); color: var(--foreground, #22282b);
    border: 1px solid var(--border, #e2d9ca); border-radius: 3px;
    padding: 10px 18px; cursor: pointer; font-family: inherit;
    font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600;
    box-shadow: 0 6px 18px rgba(9, 26, 29, .28);
    transition: background .2s, transform .2s;
}
.pd-g-all:hover { background: #fff; transform: translateY(-1px); }

@media (max-width: 760px) {
    .pd-gallery { grid-template-columns: 1fr; height: auto; }
    .pd-g-main { height: 260px; }
    .pd-g-side { grid-template-columns: repeat(4, 1fr); height: 76px; }
}

/* ---------- corps ---------- */
.pd-body { padding-bottom: clamp(60px, 9vw, 110px); }
.pd-grid {
    display: grid; grid-template-columns: 1fr 370px;
    gap: clamp(32px, 5vw, 64px); align-items: start;
}
@media (max-width: 940px) { .pd-grid { grid-template-columns: 1fr; } }

.pd-specs { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 40px; }
@media (max-width: 620px) { .pd-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.pd-block { margin-bottom: 40px; }
.pd-block h2 {
    font-family: 'Playfair Display', Georgia, serif; font-weight: 600;
    font-size: clamp(1.3rem, 2.4vw, 1.7rem); margin: 0 0 16px;
    padding-bottom: 12px; border-bottom: 1px solid var(--border, #e2d9ca);
    letter-spacing: -.01em;
}
.pd-desc {
    white-space: pre-line; color: var(--muted-foreground, #6d6a63);
    font-size: 1rem; line-height: 1.75; margin: 0; max-width: 68ch;
}
.pd-tiers { list-style: none; margin: 0; padding: 0; max-width: 520px; }
.pd-tiers li {
    display: flex; justify-content: space-between; gap: 16px;
    padding: 11px 0; border-bottom: 1px dashed var(--border, #e2d9ca);
    font-size: .94rem; color: var(--muted-foreground, #6d6a63);
}
.pd-tiers li:last-child { border-bottom: 0; }
.pd-tiers strong {
    color: var(--foreground, #22282b); font-variant-numeric: tabular-nums; white-space: nowrap;
}

/* ---------- carte de réservation ---------- */
.pd-aside { position: sticky; top: 92px; }
@media (max-width: 940px) { .pd-aside { position: static; } }
.pd-book {
    background: var(--panel, #fbf8f3);
    border: 1px solid var(--border, #e2d9ca);
    border-radius: 4px;
    padding: 24px;
    box-shadow: 0 26px 56px -34px rgba(15, 42, 46, .5);
}
.pd-book-price {
    display: flex; align-items: baseline; gap: 7px;
    padding-bottom: 18px; margin-bottom: 18px;
    border-bottom: 1px solid var(--border, #e2d9ca);
}
.pd-book-price .p {
    font-family: 'Playfair Display', Georgia, serif; font-size: 2rem;
    font-variant-numeric: tabular-nums;
}
.pd-book-price .u { color: var(--muted-foreground, #6d6a63); font-size: .86rem; }
.pd-book-label {
    display: block; font-size: .64rem; letter-spacing: .16em; text-transform: uppercase;
    color: var(--primary, #12667a); font-weight: 600; margin-bottom: 7px;
}
.pd-book-field {
    display: flex; align-items: center; gap: 10px;
    border: 1px solid var(--border, #e2d9ca); border-radius: 3px;
    padding: 12px 14px; background: #fff; margin-bottom: 16px;
    transition: border-color .2s;
}
.pd-book-field:focus-within { border-color: var(--primary, #12667a); }
.pd-book-field svg {
    width: 17px; height: 17px; flex: none; fill: none;
    stroke: var(--muted-foreground, #6d6a63); stroke-width: 1.4;
    stroke-linecap: round; stroke-linejoin: round;
}
.pd-book-field input {
    flex: 1; min-width: 0; border: 0; background: transparent; padding: 0;
    font-family: inherit; font-size: .95rem; font-weight: 500;
    color: var(--foreground, #22282b); outline: none; box-shadow: none; cursor: pointer;
}
.pd-quote {
    background: rgba(18, 102, 122, .05);
    border: 1px solid var(--border, #e2d9ca);
    border-radius: 3px; padding: 13px 15px; margin-bottom: 16px;
}
.pd-quote .row {
    display: flex; justify-content: space-between; gap: 12px;
    font-size: .88rem; color: var(--muted-foreground, #6d6a63); padding: 3px 0;
}
.pd-quote .row.total {
    margin-top: 7px; padding-top: 10px;
    border-top: 1px solid var(--border, #e2d9ca);
    color: var(--foreground, #22282b);
}
.pd-quote .row.total strong {
    font-family: 'Playfair Display', Georgia, serif; font-size: 1.2rem;
    font-variant-numeric: tabular-nums;
}
.pd-unavail {
    background: rgba(192, 86, 60, .1);
    border: 1px solid rgba(192, 86, 60, .3);
    color: var(--destructive, #c0563c);
    border-radius: 3px; padding: 11px 14px; margin-bottom: 16px; font-size: .88rem;
}
.pd-book-cta, .pd-book-alt { display: block; width: 100%; text-align: center; }
.pd-book-cta { border: 0; font-family: inherit; cursor: pointer; }
.pd-book-alt { margin-top: 10px; }
.pd-book-notes {
    list-style: none; margin: 18px 0 0; padding: 16px 0 0;
    border-top: 1px solid var(--border, #e2d9ca);
}
.pd-book-notes li {
    display: flex; justify-content: space-between; gap: 12px;
    font-size: .86rem; color: var(--muted-foreground, #6d6a63); padding: 4px 0;
}

/* ---------- visionneuse ---------- */
.pd-lightbox {
    position: fixed; inset: 0; z-index: 1080;
    background: rgba(8, 18, 20, .94);
    display: flex; align-items: center; justify-content: center;
    padding: 5vh 5vw;
}
.pd-lightbox[hidden] { display: none; }
.pd-lightbox img { max-width: 100%; max-height: 84vh; object-fit: contain; border-radius: 3px; }
.pd-lb-close, .pd-lb-nav {
    position: absolute; background: rgba(255, 255, 255, .1); color: #fff;
    border: 1px solid rgba(255, 255, 255, .28); cursor: pointer;
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    transition: background .2s;
}
.pd-lb-close:hover, .pd-lb-nav:hover { background: rgba(255, 255, 255, .24); }
.pd-lb-close { top: 22px; right: 24px; width: 42px; height: 42px; border-radius: 50%; font-size: 1rem; }
.pd-lb-nav {
    top: 50%; transform: translateY(-50%);
    width: 46px; height: 62px; border-radius: 3px; font-size: 1.9rem; line-height: 1;
}
.pd-lb-nav.prev { left: 16px; }
.pd-lb-nav.next { right: 16px; }
.pd-lb-cap {
    position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%);
    color: rgba(255, 255, 255, .82); font-size: .88rem; margin: 0; text-align: center;
    max-width: 80%;
}

@media (prefers-reduced-motion: reduce) {
    .pd-g-main img, .pd-g-thumb img { transition: none; }
}
