/* The story leads; the open, horizontal details row follows underneath. */
.villa-overview{display:block}
.villa-story{max-width:1020px}
.villa-facts{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  align-items:start;
  gap:clamp(30px,4vw,64px);
  margin-top:clamp(38px,5vw,68px);
  padding:clamp(26px,3vw,38px) 0 0;
  border:0;
  border-top:1px solid rgba(35,75,58,.2);
  border-radius:0;
  background:transparent;
  color:var(--ink);
  box-shadow:none;
}
.villa-facts .fact-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 22px;
}
.villa-facts .fact{
  min-height:54px;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  gap:14px;
  padding:0;
  border:0;
  background:transparent;
}
.villa-facts .fact .fact-icon{
  flex:0 0 32px;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--leaf);
}
.fact-icon svg{
  width:27px;
  height:27px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.villa-facts .fact strong{
  color:var(--ink);
  font-size:clamp(15px,1.35vw,18px);
  font-weight:600;
  line-height:1.4;
}
.villa-facts .amenities-list{
  margin:0;
  padding:0 0 0 clamp(28px,3vw,48px);
  border-top:0;
  border-left:1px solid rgba(35,75,58,.2);
}
.villa-facts .amenities-list h3{
  margin:0 0 20px;
  font-family:'Higuen Serif',serif;
  font-size:clamp(30px,3.2vw,42px);
  font-weight:400;
  line-height:1;
  color:var(--ink);
}
.villa-facts .amenities-list ul{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 18px;
  margin:0;
}
.villa-facts .amenities-list li{
  padding-left:25px;
  color:var(--muted);
  font-size:14px;
  line-height:1.5;
}
.villa-facts .amenities-list li::before{
  top:.22em;
  width:15px;
  height:15px;
  border:1px solid rgba(35,75,58,.5);
  border-radius:50%;
  background:transparent;
}
.villa-facts .amenities-list li::after{
  content:'✓';
  position:absolute;
  top:.2em;
  left:3px;
  color:var(--leaf);
  font-size:11px;
  line-height:17px;
}
.gallery-lightbox-trigger:focus-visible,
.villa-lightbox button:focus-visible,
.mobile-gallery-arrow:focus-visible{
  outline:2px solid #ead9b9;
  outline-offset:3px;
}
.villa-lightbox img{
  max-width:min(1280px,calc(100vw - 190px));
  max-height:84vh;
}
.villa-lightbox-arrow{
  z-index:2;
  background:rgba(20,35,28,.72);
  backdrop-filter:blur(8px);
  border-color:rgba(255,253,248,.64);
}
.villa-lightbox-arrow[data-lightbox-prev]{left:clamp(12px,2vw,30px)}
.villa-lightbox-arrow[data-lightbox-next]{right:clamp(12px,2vw,30px)}
.villa-lightbox-close{z-index:3}
.villa-lightbox-counter{
  position:absolute;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  color:#fffdf8;
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
}
@media(max-width:900px){
  .villa-facts{grid-template-columns:1fr;gap:28px;padding:28px 0 0}
  .villa-facts .fact{min-height:48px}
  .villa-facts .fact strong{font-size:16px}
  .villa-facts .amenities-list{padding:26px 0 0;border-left:0;border-top:1px solid rgba(35,75,58,.2)}
  .mobile-gallery-heading{margin-bottom:28px}
  .mobile-gallery-heading h2{margin-bottom:0}
  .mobile-gallery-carousel{position:relative;margin-left:-20px;margin-right:-20px}
  .mobile-gallery-carousel .mobile-gallery-row{
    width:100%;
    margin:0;
    overflow-x:auto;
    scrollbar-width:none;
    scroll-padding-inline:0;
  }
  .mobile-gallery-carousel .mobile-gallery-row::-webkit-scrollbar{display:none}
  .mobile-gallery-arrow{
    z-index:4;
    display:grid;
    width:48px;
    height:48px;
    background:rgba(20,35,28,.72);
    backdrop-filter:blur(8px);
    border-color:rgba(255,253,248,.7);
  }
  .mobile-gallery-arrow[data-villa-prev]{left:12px}
  .mobile-gallery-arrow[data-villa-next]{right:12px}
}
@media(max-width:520px){
  .villa-facts .fact-grid{grid-template-columns:1fr;gap:10px}
  .villa-facts .fact{min-height:42px}
  .villa-facts .fact strong{font-size:15px}
  .villa-facts .amenities-list ul{grid-template-columns:1fr}
  .mobile-gallery-arrow{width:44px;height:44px}
}
