/* Refinements for the original Juan Domingo site; original sections, video and branding remain. */
:root{--jdh-navy:#0f3254;--jdh-gold:#c99c20;--jdh-soft:#f4f8fc}
/* Give long portfolio titles a real grid boundary so they never occupy the fact column. */
.project-cover__content{grid-template-columns:minmax(0,1.35fr) minmax(190px,.48fr) auto;gap:clamp(18px,2.6vw,48px)}
.project-cover__content>div{min-width:0;max-width:100%}
.project-cover__content h3{max-width:100%;font-size:clamp(54px,4.55vw,88px);line-height:.86;overflow-wrap:normal}
.project-cover__content dl{min-width:0}
/* The map gets a complete searchable panel within the original home placement. */
.jdh-map-home{padding:clamp(90px,9vw,145px) 0;background:var(--jdh-soft)!important}
.jdh-map-home__intro{display:flex;justify-content:space-between;align-items:end;gap:clamp(25px,6vw,120px);margin-bottom:clamp(26px,3vw,48px)}
.jdh-map-home__intro .display{line-height:.85;max-width:800px}
.jdh-map-home__intro>p{color:#647587;font-size:clamp(15px,1.2vw,18px);line-height:1.6;max-width:440px;margin:0}
.jdh-map-home__frame{width:100%;height:clamp(670px,55vw,770px);min-height:0!important;padding:0!important;border:1px solid #dbe4ed!important;border-radius:24px!important;box-shadow:0 25px 75px rgba(15,50,84,.12);background:#f2f7fb!important}
.jdh-map-home__frame .property-live-map{display:block;width:100%;height:100%;min-height:0;border:0}
.jdh-map-home__foot{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:22px;color:#617484;font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.jdh-map-home__foot a{color:var(--jdh-navy);border-bottom:1px solid var(--jdh-gold);padding-bottom:6px;transition:padding .25s}
.jdh-map-home__foot a:hover{padding-right:12px}
/* A concise selection drawn from the same 20 verified property cards. */
.jdh-featured{background:#fff!important;padding-top:clamp(110px,11vw,180px)}
.jdh-featured__heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:clamp(40px,5vw,75px)}
.jdh-featured__heading .display{font-size:clamp(50px,6vw,106px);line-height:.8;max-width:900px}
.jdh-featured__all{flex:none;font-size:10px;letter-spacing:.11em;text-transform:uppercase;border:1px solid var(--jdh-navy);padding:15px 17px;transition:background .28s,color .28s,transform .28s}
.jdh-featured__all:hover{background:var(--jdh-navy);color:#fff;transform:translateY(-3px)}
.jdh-featured__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.jdh-featured__card{position:relative;min-width:0;aspect-ratio:1.12/1;display:block;overflow:hidden;background:var(--jdh-navy);color:white;isolation:isolate}
.jdh-featured__image,.jdh-featured__image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.jdh-featured__image img{transition:transform .9s var(--ease),filter .9s var(--ease)}
.jdh-featured__card:hover .jdh-featured__image img{transform:scale(1.055);filter:saturate(1.08)}
.jdh-featured__card:before{content:'';position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(15,50,84,.02) 12%,rgba(15,50,84,.38) 48%,rgba(15,50,84,.96) 100%)}
.jdh-featured__card:after{content:'';position:absolute;z-index:3;inset:12px;border:1px solid rgba(255,255,255,.32);opacity:0;transform:scale(.97);transition:opacity .4s,transform .4s;pointer-events:none}
.jdh-featured__card:hover:after{opacity:1;transform:scale(1)}
.jdh-featured__overlay{position:absolute;z-index:2;left:clamp(18px,2.4vw,35px);right:clamp(18px,2.4vw,35px);bottom:clamp(17px,2.5vw,36px)}
.jdh-featured__overlay>span{font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#f1d88f}
.jdh-featured__overlay h3{font:500 clamp(30px,2.6vw,48px)/.98 Genos,Arial,sans-serif;text-transform:uppercase;letter-spacing:-.03em;margin:13px 0 18px;overflow-wrap:normal;text-wrap:balance;text-shadow:0 2px 16px rgba(15,50,84,.8)}
.jdh-featured__overlay>div{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid rgba(255,255,255,.4);padding-top:10px}
.jdh-featured__overlay b{font-size:10px;font-weight:600;letter-spacing:.06em}
.jdh-featured__overlay i{font-size:25px;font-style:normal;line-height:1;color:#f3ca54;transition:transform .3s}
.jdh-featured__card:hover i{transform:translate(4px,-4px)}
/* Filter shortcuts and stronger focus states while retaining the existing filter grid. */
.jdh-filter-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 18px;border-bottom:1px solid var(--line-light)}
.jdh-filter-heading>div{display:grid;gap:3px}.jdh-filter-kicker{color:#9b7e3c;font-size:9px;letter-spacing:.14em;text-transform:uppercase}.jdh-filter-heading strong{font:500 27px/1 Genos,Arial,sans-serif;text-transform:uppercase}
.jdh-filter-heading>span{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#798899;white-space:nowrap}
.jdh-quick-filters{display:flex;gap:7px;flex-wrap:wrap;padding:15px 18px;border-bottom:1px solid var(--line-light)}
.jdh-quick-filters button{padding:8px 12px;border:1px solid rgba(15,50,84,.18);background:#fff;color:var(--jdh-navy);font-size:9px;text-transform:uppercase;letter-spacing:.09em;cursor:pointer;transition:background .22s,color .22s,transform .22s}
.jdh-quick-filters button:hover{transform:translateY(-2px)}
.jdh-quick-filters button.is-active{background:var(--jdh-navy);border-color:var(--jdh-navy);color:#fff}
.realestate-filter input:focus-visible,.realestate-filter select:focus-visible{outline:2px solid var(--jdh-gold);outline-offset:4px}
.property-card h3{overflow-wrap:anywhere}
/* Spacious footer with a dark invitation and a clear white information grid. */
.site-footer.jdh-footer{padding:0!important;background:#fff!important;color:var(--jdh-navy)!important}
.jdh-footer__cta{background:var(--jdh-navy);color:#fff;position:relative;overflow:hidden}
.jdh-footer__cta:after{content:'';position:absolute;right:-8%;top:-100%;width:55%;aspect-ratio:1;border:1px solid rgba(201,156,32,.22);border-radius:50%;box-shadow:0 0 0 85px rgba(201,156,32,.03),0 0 0 170px rgba(201,156,32,.025);pointer-events:none}
.jdh-footer__cta-inner{position:relative;z-index:1;width:min(100%,1600px);margin:auto;padding:clamp(62px,8vw,125px) var(--pad);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.55fr);align-items:end;gap:clamp(35px,7vw,110px)}
.jdh-footer__cta .eyebrow{color:#d8be74}.jdh-footer__cta h2{font:500 clamp(56px,5.9vw,101px)/.96 Genos,Arial,sans-serif;text-transform:uppercase;letter-spacing:-.05em;margin:0;overflow-wrap:anywhere}
.jdh-footer__cta-action p{max-width:340px;font-size:clamp(15px,1.25vw,19px);color:rgba(255,255,255,.75);line-height:1.5;margin:0 0 27px}
.jdh-footer__cta-action a{display:inline-flex;gap:30px;align-items:center;justify-content:space-between;padding:17px 20px;background:var(--jdh-gold);color:var(--jdh-navy);font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;transition:transform .3s,background .3s}
.jdh-footer__cta-action a:hover{background:#efd276;transform:translateY(-4px)}
.jdh-footer__cta-action span{font-size:20px;line-height:0}
.jdh-footer__main{width:min(100%,1600px);margin:0 auto;padding:clamp(66px,7vw,115px) var(--pad) clamp(60px,7vw,105px);display:grid;grid-template-columns:minmax(260px,1.35fr) minmax(100px,.46fr) minmax(100px,.46fr) minmax(190px,.8fr);gap:clamp(30px,4vw,76px)}
.jdh-footer__brand img{width:clamp(190px,22vw,285px);max-width:100%;height:auto}
.jdh-footer__brand p{font:500 clamp(27px,2.5vw,44px)/.88 Genos,Arial,sans-serif;text-transform:uppercase;margin:38px 0 16px;max-width:360px}
.jdh-footer__brand>span{color:#657c8d;font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.jdh-footer__links,.jdh-footer__contact{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.jdh-footer__links h3,.jdh-footer__contact h3{font-size:10px;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:#a07826;margin:2px 0 25px}
.jdh-footer__links a{font-size:13px;line-height:1.6;margin-bottom:10px;transition:transform .25s,color .25s}
.jdh-footer__links a:hover{transform:translateX(5px);color:#9b791d}
.jdh-footer__contact p{font-size:13px;color:#607588;line-height:1.55;margin:0 0 20px}
.jdh-footer__phone{font:500 clamp(26px,2vw,35px)/1 Genos,Arial,sans-serif;white-space:nowrap;margin-bottom:20px}
.jdh-footer__whatsapp{font-size:11px;text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--jdh-gold);padding-bottom:7px}
.jdh-footer__bottom{width:min(100%,1600px);margin:0 auto;padding:22px var(--pad) 28px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(15,50,84,.14);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#7b8b99}
.jdh-footer__bottom a{color:var(--jdh-navy)}
@media(max-width:1100px){.jdh-footer__main{grid-template-columns:repeat(3,minmax(0,1fr))}.jdh-footer__brand{grid-column:1/-1}.jdh-featured__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-cover__content{grid-template-columns:minmax(0,1fr) minmax(180px,.4fr) auto}.project-cover__content h3{font-size:clamp(54px,6.5vw,88px)}}
@media(max-width:980px){.jdh-map-home__intro{display:block}.jdh-map-home__intro>p{margin:20px 0 0}.jdh-map-home__frame{height:710px}.project-cover__content{grid-template-columns:1fr}.project-cover__content dl,.project-cover__cta{display:none}.jdh-footer__cta-inner{grid-template-columns:1fr}.jdh-footer__cta-action{max-width:520px}}
@media(max-width:720px){.jdh-map-home{padding:78px 0}.jdh-map-home__intro .display{font-size:clamp(49px,12vw,72px)}.jdh-map-home__frame{height:1290px;border-radius:18px!important}.jdh-map-home__foot{align-items:flex-start;flex-direction:column;gap:12px}.jdh-featured{padding:85px 0}.jdh-featured__heading{align-items:flex-start;flex-direction:column}.jdh-featured__grid{grid-template-columns:1fr;gap:13px}.jdh-featured__card{aspect-ratio:1.1/1}.jdh-featured__overlay h3{font-size:clamp(31px,7.5vw,47px)}.jdh-footer__main{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px}.jdh-footer__brand{grid-column:1/-1}.jdh-footer__contact{grid-column:1/-1}.jdh-footer__bottom{flex-direction:column;gap:9px}.jdh-footer__cta-inner{padding:75px var(--pad)}.jdh-footer__cta h2{font-size:clamp(49px,11.8vw,71px);line-height:1}.project-cover__content h3{font-size:clamp(42px,11.5vw,68px)}.jdh-filter-heading>span{display:none}}
@media(max-width:430px){.jdh-map-home__frame{height:1290px}.jdh-featured__overlay{left:20px;right:20px;bottom:20px}.jdh-featured__overlay h3{font-size:32px}.jdh-footer__main{gap:25px}.jdh-footer__links a{font-size:12px}.jdh-footer__cta-action a{width:100%}.project-cover__content h3{font-size:clamp(40px,11vw,58px)}}
@media(prefers-reduced-motion:reduce){.jdh-featured__image img,.jdh-featured__card:after,.jdh-footer__cta-action a{transition:none!important}}

@media(max-width:640px){.property-hero--scroll .property-hero__content h1{font-size:clamp(42px,11vw,62px);line-height:.88;overflow-wrap:anywhere}}
@media(min-width:981px){
  .projects-horizontal .projects-track>.project-card.project-cover:first-child .project-cover__content>div:first-child{padding-left:0}
  .projects-horizontal .projects-track>.project-card.project-cover:first-child .project-cover__content h3{font-size:clamp(50px,4.45vw,78px);white-space:normal;text-wrap:balance}
}

/* Property photos stay unobstructed; navigation belongs below the gallery. */
.property-gallery .gallery-caption{display:none!important}
.property-gallery .gallery-controls{display:flex;align-items:center;justify-content:flex-end;gap:13px;padding:16px var(--pad) 0}
.property-gallery .gallery-controls button{flex:none;width:52px;height:52px;border:1px solid rgba(255,255,255,.52);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font:400 23px/1 Manrope,Arial,sans-serif;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.12);transition:background .25s,color .25s,border-color .25s,transform .25s}
.property-gallery .gallery-controls button:hover:not(:disabled),.property-gallery .gallery-controls button:focus-visible{background:#c99c20;color:#0f3254;border-color:#c99c20;transform:translateY(-2px)}
.property-gallery .gallery-controls .gallery-bar{flex:0 0 clamp(95px,14vw,190px);margin:0 5px;height:2px;background:rgba(255,255,255,.28)}
.property-gallery .gallery-controls .gallery-bar span{background:#d9ae38}

/* Each thumbnail browses the same local images as its own detail page. */
.property-card__visual,.jdh-featured__tile{position:relative;min-width:0}
.property-card__image-link{display:block}
.property-card__image-link:focus-visible{outline:2px solid #c99c20;outline-offset:3px}
.jdh-card-gallery-controls{position:absolute;right:14px;bottom:15px;z-index:4;display:flex;align-items:center;gap:7px;padding:5px 6px;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:rgba(15,50,84,.82);box-shadow:0 8px 26px rgba(15,50,84,.22);color:white;backdrop-filter:blur(9px)}
.jdh-card-gallery-controls button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.15);color:white;font:400 19px/1 Manrope,Arial,sans-serif;transition:background .25s,color .25s,transform .25s}
.jdh-card-gallery-controls button:hover,.jdh-card-gallery-controls button:focus-visible{background:#c99c20;color:#0f3254;transform:scale(1.05)}
.jdh-card-gallery-controls span{min-width:45px;text-align:center;font-size:9px;letter-spacing:.08em;font-variant-numeric:tabular-nums;white-space:nowrap}
.jdh-featured__tile .jdh-card-gallery-controls{top:14px;right:14px;bottom:auto}
.jdh-featured__tile .jdh-featured__card{height:100%}
.property-card__visual img,.jdh-featured__tile img{transition:transform .8s var(--ease),opacity .2s ease}
.is-changing-photo .property-card__media img,.is-changing-photo .jdh-featured__image img{opacity:.72}

/* The white footer uses the available width without a tall empty column. */
.jdh-footer__cta-inner{padding-top:clamp(48px,5.4vw,82px);padding-bottom:clamp(48px,5.4vw,82px)}
.jdh-footer__cta h2{font-size:clamp(52px,4.5vw,75px);line-height:.92}
.jdh-footer__main{padding-top:clamp(38px,4vw,60px);padding-bottom:clamp(40px,4vw,62px);grid-template-columns:minmax(210px,1.08fr) minmax(100px,.48fr) minmax(100px,.48fr) minmax(205px,.82fr);gap:clamp(24px,3vw,55px);align-items:start}
.jdh-footer__brand{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:center;gap:3px 18px}
.jdh-footer__brand img{grid-row:1/3;width:140px}
.jdh-footer__brand p{grid-column:2;font-size:clamp(25px,2vw,32px);line-height:.94;max-width:310px;margin:0}
.jdh-footer__brand>span{grid-column:2}
.jdh-footer__links h3,.jdh-footer__contact h3{margin-bottom:17px}
.jdh-footer__links a{margin-bottom:7px}
.jdh-footer__bottom{padding-top:17px;padding-bottom:19px}
@media (min-width:721px) and (max-width:1100px){.jdh-footer__main{grid-template-columns:minmax(200px,1.08fr) minmax(95px,.48fr) minmax(95px,.48fr) minmax(185px,.82fr)}.jdh-footer__brand{grid-column:auto;display:block}.jdh-footer__brand img{width:115px}.jdh-footer__brand p{font-size:27px;margin:8px 0}}
@media (max-width:720px){.jdh-footer__main{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:40px;padding-bottom:42px;gap:24px}.jdh-footer__brand{grid-column:1/-1;grid-template-columns:110px minmax(0,1fr);gap:3px 12px}.jdh-footer__brand img{width:110px}.jdh-footer__brand p{font-size:27px;max-width:240px;margin:0}.jdh-footer__contact{grid-column:1/-1}.jdh-footer__cta-inner{padding-top:52px;padding-bottom:54px}.jdh-footer__cta h2{font-size:clamp(49px,11.8vw,71px);line-height:1}.property-gallery .gallery-controls{justify-content:center}.property-gallery .gallery-controls button{width:46px;height:46px}.property-gallery .gallery-controls .gallery-bar{flex-basis:110px}.jdh-card-gallery-controls{right:10px;bottom:10px}}
@media (prefers-reduced-motion:reduce){.jdh-card-gallery-controls button,.property-gallery .gallery-controls button{transition:none}}
