/* Editorial property detail, coordinated with Home2. */
.detail2 .h2-nav { position:relative; background:#242b29; border-bottom:0; }
.d2-breadcrumb { display:flex; justify-content:space-between; gap:20px; padding:20px 5vw; font-size:11px; color:#81775f; }
.d2-breadcrumb a { color:#4169e1; }
.d2-gallery { position:relative; }
.d2-gallery .carousel-item { height:68svh; min-height:380px; max-height:850px; background:#e9e5dc; }
.d2-gallery .carousel-item img { height:100%; width:100%; object-fit:contain; padding:15px 80px 80px; }
.d2-gallery .carousel-control-prev, .d2-gallery .carousel-control-next { width:65px; height:65px; top:50%; transform:translateY(-50%); background:#171d1d50; opacity:1; -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); border:0; }
.d2-gallery .carousel-control-prev { left:3vw; }.d2-gallery .carousel-control-next { right:3vw; }
.d2-gallery .carousel-control-prev > span:first-child, .d2-gallery .carousel-control-next > span:first-child { font-size:30px; font-weight:300; }
.d2-gallery-toolbar { position:absolute; bottom:0; inset-inline:0; padding:20px 5vw; display:flex; justify-content:space-between; align-items:center; gap:20px; background:#171d1d55; color:#fff; -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); font-size:11px; letter-spacing:.08em; }
.d2-gallery-toolbar > div { display:flex; align-items:center; gap:25px; }
.d2-gallery-toolbar button { background:none; color:#fff; border:0; padding:0; cursor:pointer; }
.d2-intro { padding:65px 7vw 55px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:70px; align-items:center; }
.home2 .d2-intro h1 { font-size:clamp(32px,3.4vw,52px); line-height:1.15; margin:0; color:#282821; max-width:950px; }
.d2-price { display:flex; flex-direction:column; gap:12px; align-items:end; }
.d2-price > span { text-transform:uppercase; letter-spacing:.15em; font-size:10px; color:#a18a5b; }
.d2-price strong { font:400 28px Georgia,serif; color:#274cbb; }
.home2 .d2-price button { padding:16px 25px; background:#4169e1; color:#fff; border:0; font-size:11px; cursor:pointer; margin-top:5px; }
.home2 .d2-price button:hover { background:#274cbb; }
.d2-section-nav { display:flex; justify-content:center; gap:55px; padding:22px 5vw; border-block:1px solid #e2ddcf; font-size:10px; text-transform:uppercase; letter-spacing:.16em; }
.d2-section-nav a:hover { color:#4169e1; }
.d2-content { max-width:1500px; margin:0 auto; padding:80px 7vw; display:grid; grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr); gap:80px; }
.home2.detail2 h2 { font-size:clamp(28px,3vw,38px); color:#282821; margin:0 0 25px; }
.d2-description-text { white-space:pre-line; font-size:15px; line-height:1.95; color:#68685f; }
.d2-summary { background:#f0ede5; padding:35px; align-self:start; }
.d2-summary dl { margin:0 0 25px; }
.d2-summary dl > div { display:flex; justify-content:space-between; gap:20px; border-bottom:1px solid #dcd6c7; padding:16px 0; }
.detail2 dt { font-size:12px; font-weight:400; color:#777469; }
.detail2 dd { font-size:14px; margin:0; color:#282821; }
.d2-summary > a { font-size:11px; color:#4169e1; line-height:1.7; }
.d2-photo-strip { padding:0 5vw 70px; display:flex; gap:20px; }
.d2-photo-preview { padding:0; border:0; flex:1; min-width:0; cursor:pointer; background:#e9e5dc; overflow:hidden; }
.d2-photo-preview img { width:100%; height:300px; object-fit:cover; transition:transform .4s ease; }
.d2-photo-preview:hover img { transform:scale(1.04); }
.d2-features { padding:65px 7vw; background:#f0ede5; }
.d2-features dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:50px; margin:0; }
.d2-features dl > div { display:flex; justify-content:space-between; gap:15px; padding:22px 0; border-bottom:1px solid #dcd6c7; }
.d2-contacts { padding:80px 7vw; }
.detail2 section[id] { scroll-margin-top:30px; }
.detail2 .contact-main-card { border:1px solid #e2ddcf; border-radius:0; box-shadow:none; background:#fff; }
.detail2 .contact-main-card > .card-body { padding:40px; }
.detail2 .contact-main-card .card-title { font:400 28px Georgia,serif; color:#282821; }
.detail2 .contact-main-card .card-title-desc { color:#777469; }
.detail2 .contact-box { background:#f8f6f0; border:1px solid #e7e1d4; border-radius:0; box-shadow:none; }
.detail2 .contact-icon, .detail2 .contact-arrow { color:#4169e1; background:transparent; }
.detail2 .contact-label, .detail2 .contact-value { color:#282821; }
.detail2 .contact-form-box { border-top:1px solid #e2ddcf; background:none; }
.detail2 .contact-form-intro { border-radius:0; background:#f0ede5; }
.detail2 .contact-form-intro h5 { font:400 24px Georgia,serif; color:#274cbb; }
.detail2 .contact-form-icon { color:#4169e1; background:none; }
body:has(.detail2) #exampleModal .modal-content { border:0; border-radius:0; background:#faf9f6; color:#282821; }
body:has(.detail2) #exampleModal .modal-header, body:has(.detail2) #exampleModal .modal-footer { border-color:#e2ddcf; padding:24px; }
body:has(.detail2) #exampleModal .modal-title { font:400 28px Georgia,serif; }
body:has(.detail2) #exampleModal .modal-body { padding:24px; }
body:has(.detail2) #exampleModal .form-control { border-radius:0; background:#fff; border-color:#ded8c9; padding:12px; }
body:has(.detail2) #exampleModal .btn { border-radius:0; padding:12px 22px; }
body:has(.detail2) #exampleModal .btn-primary { background:#4169e1; border-color:#4169e1; }
body:has(.detail2) #exampleModal a { color:#4169e1; }
.d2-photo-modal .modal-content { background:#171d1d; color:#fff; }
.d2-photo-modal .modal-header { border-color:#ffffff25; }
.d2-photo-modal h2 { color:#fff; font:400 22px Georgia,serif; margin:0; }
.d2-photo-modal .modal-body { padding:0; overflow:hidden; }
.d2-photo-modal .carousel, .d2-photo-modal .carousel-inner, .d2-photo-modal .carousel-item { height:100%; }
.d2-photo-modal img { height:100%; width:100%; object-fit:contain; }
@media(max-width:1000px) {
    .d2-intro { gap:35px; padding:45px 6vw; }.d2-content { gap:35px; padding:55px 6vw; }.d2-features dl { grid-template-columns:repeat(2,minmax(0,1fr)); }.d2-photo-preview img { height:220px; }
}
@media(max-width:767px) {
    .d2-gallery .carousel-item { height:55svh; min-height:300px; }.d2-gallery .carousel-control-prev, .d2-gallery .carousel-control-next { width:42px; height:42px; }.d2-gallery-toolbar { padding:16px 6vw; letter-spacing:0; font-size:10px; }.d2-gallery-toolbar > div { gap:12px; }
    .d2-intro, .d2-content { grid-template-columns:1fr; }.d2-price { align-items:start; }.d2-section-nav { gap:25px; font-size:9px; }.d2-content { padding:50px 6vw; }.d2-summary { padding:28px; }
    .d2-photo-strip { overflow-x:auto; padding:0 6vw 45px; gap:12px; }.d2-photo-preview { flex:0 0 80%; }.d2-photo-preview img { height:240px; }.d2-features { padding:45px 6vw; }.d2-features dl { grid-template-columns:1fr; }.d2-contacts { padding:50px 6vw; }.detail2 .contact-main-card > .card-body { padding:24px; }
}
@media(prefers-reduced-motion:reduce) { .d2-photo-preview img { transition:none; } }

.detail2 .d2-tour-shortcut { position:absolute; top:25px; right:5vw; z-index:2; background:#171d1d70; color:#fff; padding:14px 20px; -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); font-size:12px; }
.d2-tour-section { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:40px 7vw; background:#f0ede5; }
.home2 .d2-tour-section h2 { margin-bottom:0; font-size:30px; }
.d2-tour-links { display:flex; flex-wrap:wrap; gap:12px; }
.detail2 .d2-tour-links a { padding:16px 22px; background:#4169e1; color:#fff; font-size:12px; }
.detail2 .d2-tour-links a:hover { background:#274cbb; }
@media(max-width:767px) { .d2-tour-section { flex-direction:column; align-items:flex-start; padding:30px 6vw; } .detail2 .d2-tour-shortcut { top:16px; right:6vw; } }

/* Progressive, uncropped property photo gallery. */
.d2-photo-section { padding:0 5vw 70px; }
.d2-photo-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:25px; }
.d2-photo-heading > span { color:#81775f; font-size:12px; white-space:nowrap; }
.d2-photo-section .d2-photo-strip { display:block; columns:3; column-gap:20px; padding:0; overflow:visible; }
.d2-photo-section .d2-photo-preview { display:block; width:100%; margin:0 0 20px; break-inside:avoid; background:transparent; animation:d2-photo-appear .35s ease-out both; }
@keyframes d2-photo-appear { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
.d2-photo-section .d2-photo-preview[hidden], .d2-more-photos[hidden] { display:none; }
.d2-photo-section .d2-photo-preview img { display:block; width:100%; height:auto; object-fit:contain; }
.d2-photo-section .d2-photo-preview:hover img { transform:none; }
.d2-more-photos { display:flex; align-items:center; gap:25px; margin:30px auto 0; padding:16px 25px; border:1px solid #a18a5b; background:none; color:#274cbb; font-size:12px; cursor:pointer; }
.d2-more-photos:hover { background:#f0ede5; }
@media(max-width:1000px) { .d2-photo-section .d2-photo-strip { columns:2; } }
@media(max-width:767px) {
    .d2-gallery .carousel-item img { padding:10px 48px 75px; }
    .d2-photo-section { padding:0 6vw 45px; }
    .d2-photo-heading { align-items:flex-start; flex-direction:column; gap:0; }
    .d2-photo-section .d2-photo-strip { columns:1; column-gap:12px; }
    .d2-photo-section .d2-photo-preview { margin-bottom:12px; }
}

@media(prefers-reduced-motion:reduce) { .d2-photo-section .d2-photo-preview { animation:none; } }

/* Show the complete mosaic at 80% width for an overall view. */
.d2-photo-section .d2-photo-strip { width:80%; margin-inline:auto; }
