:root{--ink:#12383d;--teal:#0f777d;--sand:#f6f2eb;--paper:#fff;--muted:#6d7d7e;--line:#dde5e2;--shadow:0 18px 50px rgba(21,55,55,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:#fbfaf7}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.site-header{height:78px;padding:0 max(5vw,24px);display:flex;align-items:center;gap:34px;background:rgba(255,255,255,.96);position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(18,56,61,.08)}.brand{display:flex;flex-direction:column;font-family:Georgia,serif;font-size:31px;line-height:.75;font-weight:700}.brand small{font-family:Inter,sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:.26em;margin-top:10px}.site-header nav{display:flex;gap:28px;margin-left:auto;font-size:14px}.button,.search-bar button{background:var(--teal);color:#fff;border:0;border-radius:999px;padding:14px 22px;font-weight:750;cursor:pointer}.button.small{padding:11px 18px;font-size:13px}.hero{
  min-height:650px;
  display:grid;
  place-items:center;
  position:relative;
  background-image:url('/images/ballena-hero.jpg');
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,37,42,.84),rgba(5,51,58,.34),rgba(0,0,0,.06))}.hero-content{position:relative;width:min(1180px,90vw);color:#fff}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:12px;font-weight:800;color:#3aa0a4}.hero .eyebrow{color:#8ee2df}.hero h1{font-family:Georgia,serif;font-size:clamp(48px,7vw,84px);max-width:800px;line-height:.98;margin:14px 0 20px}.hero-content>p:not(.eyebrow){font-size:20px;max-width:680px;line-height:1.6}.search-bar{margin-top:36px;display:grid;grid-template-columns:1.2fr 1.2fr 1fr auto;background:#fff;color:var(--ink);padding:12px;border-radius:18px;box-shadow:var(--shadow);max-width:960px}.search-bar label{display:flex;flex-direction:column;gap:5px;padding:3px 17px;border-right:1px solid var(--line);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.search-bar input,.search-bar select{border:0;outline:0;background:transparent;color:var(--ink);font-size:15px;text-transform:none;font-weight:500}.section{padding:90px max(5vw,24px)}.section-head{display:flex;justify-content:space-between;gap:50px;align-items:end;max-width:1180px;margin:0 auto 36px}.section-head h2{font-family:Georgia,serif;font-size:46px;margin:8px 0}.section-head>p{max-width:440px;color:var(--muted);line-height:1.7}.property-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.property-card{background:#fff;border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:0 12px 35px rgba(20,55,55,.08);transition:.25s;cursor:pointer}.property-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.card-image{height:255px;background:#dfe7e5 center/cover;position:relative}.card-badge{position:absolute;left:16px;top:16px;background:#fff;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800}.card-body{padding:24px}.card-title-row{display:flex;justify-content:space-between;gap:15px}.card-title-row h3{font-size:22px;margin:0}.card-title-row span{color:var(--muted);white-space:nowrap}.card-body p{color:var(--muted);line-height:1.6;min-height:52px}.card-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;margin:18px 0}.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.price strong{font-size:21px}.card-link{color:var(--teal);font-weight:800}.nature{background:#133e42;color:#fff}.section-head.light .eyebrow{color:#8ee2df}.section-head.light>p{color:#c4d4d2}.nature-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:1180px;margin:auto;gap:24px}.nature-grid article{background:rgba(255,255,255,.08);padding:14px 14px 25px;border-radius:20px}.nature-img{height:235px;border-radius:14px;background-position:center;background-size:cover}.whale{background-image:url('https://images.unsplash.com/photo-1568430462989-44163eb1752f?auto=format&fit=crop&w=1000&q=82')}.penguin{background-image:url('https://images.unsplash.com/photo-1551986782-d0169b3f8fa7?auto=format&fit=crop&w=1000&q=82')}.orca{background-image:url('https://images.unsplash.com/photo-1560275619-4662e36fa65c?auto=format&fit=crop&w=1000&q=82')}.nature-grid h3{font-size:20px;margin:18px 8px 7px}.nature-grid p{color:#c4d4d2;margin:0 8px}.contact{display:flex;justify-content:space-between;align-items:center;gap:30px;max-width:1180px;margin:auto}.contact h2{font-family:Georgia,serif;font-size:44px;margin:8px 0}.contact p{color:var(--muted)}footer{background:#092d31;color:#fff;padding:36px max(5vw,24px);display:flex;justify-content:space-between;align-items:center;gap:20px}footer p,footer a{color:#a9c2c1}.inverse{font-size:25px}.loading{text-align:center;padding:50px;color:var(--muted);grid-column:1/-1}
/* property */.property-page{background:#fff}.property-shell{max-width:1180px;margin:0 auto;padding:38px 24px 90px}.property-heading{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:26px}.property-heading h1{font-family:Georgia,serif;font-size:52px;margin:8px 0}.property-heading p{color:var(--muted)}.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:220px 220px;gap:10px;border-radius:22px;overflow:hidden}.gallery button{border:0;background:#ddd center/cover;cursor:pointer;position:relative}.gallery button:first-child{grid-row:1/3}.gallery button::after{content:'';position:absolute;inset:0;background:transparent;transition:.2s}.gallery button:hover::after{background:rgba(0,0,0,.08)}.gallery-more{position:absolute;right:14px;bottom:14px;background:#fff!important;padding:9px 13px;border-radius:10px;font-weight:800}.property-layout{display:grid;grid-template-columns:minmax(0,1.5fr) 390px;gap:58px;margin-top:46px}.property-info h2{font-family:Georgia,serif;font-size:34px}.summary-row{display:flex;gap:20px;flex-wrap:wrap;padding-bottom:30px;border-bottom:1px solid var(--line)}.description{font-size:17px;line-height:1.8;color:#465b5d}.amenities{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.amenity{padding:14px;border:1px solid var(--line);border-radius:12px}.map-wrap{margin-top:45px}.map-wrap h2{font-family:Georgia,serif;font-size:32px}.map-address{color:var(--muted)}#map{height:370px;border-radius:20px;margin:16px 0}.reservation-card{position:sticky;top:105px;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:var(--shadow);height:max-content}.reservation-card h3{margin:0 0 18px}.reservation-price{font-size:26px;margin-bottom:20px}.reservation-card label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:750;margin-bottom:12px}.reservation-card input,.reservation-card select,.reservation-card textarea{border:1px solid var(--line);border-radius:10px;padding:12px}.reservation-card button{width:100%;margin-top:8px}.availability-note{padding:13px;border-radius:10px;background:#edf8f4;color:#185e4b;margin:12px 0}.availability-note.busy{background:#fff0ed;color:#943a2e}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.94);z-index:100;display:grid;place-items:center}.lightbox.hidden{display:none}.lightbox img{max-width:88vw;max-height:84vh;object-fit:contain}.lightbox>button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;cursor:pointer}.lightbox #closeLightbox{right:25px;top:20px;font-size:40px;background:none}.lightbox-nav{top:50%;font-size:55px;border-radius:50%;width:62px;height:62px}.prev{left:25px}.next{right:25px}#photoCount{position:absolute;bottom:18px;color:#fff}.back{margin-left:auto;color:var(--teal);font-weight:800}
@media(max-width:900px){.site-header nav{display:none}.search-bar{grid-template-columns:1fr 1fr}.search-bar button{grid-column:1/-1}.property-grid,.nature-grid{grid-template-columns:1fr 1fr}.property-layout{grid-template-columns:1fr}.reservation-card{position:static}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:280px 160px}.gallery button:first-child{grid-column:1/3;grid-row:auto}.section-head{align-items:start;flex-direction:column;gap:5px}}@media(max-width:620px){.site-header .button{display:none}.hero{min-height:720px}.hero h1{font-size:50px}.search-bar{grid-template-columns:1fr}.search-bar label{border-right:0;border-bottom:1px solid var(--line)}.property-grid,.nature-grid{grid-template-columns:1fr}.section{padding:65px 20px}.section-head h2{font-size:38px}.contact,footer{align-items:flex-start;flex-direction:column}.gallery{display:block}.gallery button{display:none;width:100%;height:330px}.gallery button:first-child{display:block}.property-heading{align-items:start;flex-direction:column}.property-heading h1{font-size:40px}.amenities{grid-template-columns:1fr}}

.whatsapp-float{position:fixed;right:20px;bottom:20px;z-index:9999;background:#25D366;color:#fff;border-radius:999px;padding:14px 18px;display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;box-shadow:0 10px 24px rgba(0,0,0,.25)}
.whatsapp-float svg{width:26px;height:26px}
@media(max-width:640px){.whatsapp-float{padding:14px}.whatsapp-float span{display:none}}


/* v5.7.1 — estabilidad visual de la portada */
.property-grid.is-loading {
  min-height: 610px;
}

.property-skeleton {
  pointer-events: none;
  cursor: default;
  transform: none !important;
}

.skeleton-block {
  position: relative;
  overflow: hidden;
  background: #e7ecea;
}

.skeleton-block::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.72),
    transparent
  );
  animation: madryn-skeleton 1.35s infinite;
}

.skeleton-image {
  height: 255px;
}

.skeleton-title {
  width: 68%;
  height: 24px;
  border-radius: 8px;
  margin-bottom: 24px;
}

.skeleton-line {
  width: 100%;
  height: 14px;
  border-radius: 7px;
  margin-bottom: 12px;
}

.skeleton-line-short {
  width: 72%;
}

.skeleton-footer {
  width: 48%;
  height: 20px;
  border-radius: 8px;
  margin-top: 30px;
}

.property-grid.is-ready {
  min-height: 0;
}

.loading-error {
  padding: 70px 30px;
}

@keyframes madryn-skeleton {
  to { transform: translateX(100%); }
}

@media (max-width: 900px) {
  .property-grid.is-loading {
    min-height: 1040px;
  }
}

@media (max-width: 620px) {
  .property-grid.is-loading {
    min-height: 1640px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .skeleton-block::after {
    animation: none;
  }
}
