/* LEVORA Hospitality v0.4.7 — SINGLE STAY COMPACT REBUILD
   All individual stays. Gallery/lightbox layout preserved from approved v0.2.0. */
:root{
    --lvh27-ink:#1b1d18;
    --lvh27-forest:#485047;
    --lvh27-olive:#777d69;
    --lvh27-sand:#d8c49a;
    --lvh27-ivory:#f8f5ee;
    --lvh27-paper:#fffdf8;
    --lvh27-muted:#77766d;
    --lvh27-line:rgba(27,29,24,.14);
    --lvh27-soft:rgba(27,29,24,.08);
    --lvh27-shell:min(1240px,calc(100vw - 64px));
    --lvh27-serif:'Bodoni 72','Didot','Bodoni MT',Georgia,'Times New Roman',serif;
}
.lvh27-single{background:var(--lvh27-ivory);color:var(--lvh27-ink);font-family:Arial,Helvetica,sans-serif;overflow:clip}
.lvh27-single *{box-sizing:border-box}
.lvh27-shell{width:var(--lvh27-shell);margin-inline:auto}
.lvh27-single a{color:inherit}
.lvh27-kicker{display:block;color:var(--lvh27-muted);font:700 7.5px/1 Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase}

/* INTRO — compact, factual, no duplicated marketing copy */
.lvh27-intro{padding:34px 0 25px;background:var(--lvh27-ivory)}
.lvh27-back{
    display:inline-flex;align-items:center;gap:8px;margin-bottom:23px;
    color:var(--lvh27-muted)!important;text-decoration:none!important;
    font:600 8px/1 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase
}
.lvh27-back span{font-size:12px;font-weight:400}
.lvh27-heading{
    display:grid;grid-template-columns:minmax(0,1fr) auto;
    align-items:end;gap:34px
}
.lvh27-heading h1{
    margin:10px 0 0;
    font:400 clamp(43px,4.1vw,58px)/.95 var(--lvh27-serif);
    letter-spacing:-.048em
}
.lvh27-heading__cta{
    display:inline-flex;align-items:center;gap:13px;padding-bottom:6px;
    border-bottom:1px solid rgba(27,29,24,.38);
    color:var(--lvh27-ink)!important;text-decoration:none!important;
    font:700 8px/1 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;
    white-space:nowrap
}
.lvh27-specs{
    display:flex;align-items:stretch;gap:0;
    margin-top:24px;border-top:1px solid var(--lvh27-line);border-bottom:1px solid var(--lvh27-line)
}
.lvh27-specs>div{
    min-width:96px;padding:11px 18px 11px 0;margin-right:18px;
    border-right:1px solid var(--lvh27-soft)
}
.lvh27-specs>div:last-child{border-right:0;margin-right:0}
.lvh27-specs span{
    display:block;margin-bottom:5px;color:var(--lvh27-muted);
    font:700 6.5px/1 Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase
}
.lvh27-specs strong{font:400 17px/1 var(--lvh27-serif);letter-spacing:-.02em}
.lvh27-specs__price{margin-left:auto!important;padding-left:18px!important}
.lvh27-specs__price strong{display:inline}
.lvh27-specs__price small{margin-left:4px;color:var(--lvh27-muted);font:500 7.5px/1 Arial,sans-serif}

/* GALLERY — preserved from approved v0.2.0 */
.lvh20-gallery{position:relative;padding:0 0 42px}.lvh20-gallery>.lvh27-shell{position:relative}.lvh20-gallery__grid{height:500px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.55fr) minmax(0,.55fr);grid-template-rows:1fr 1fr;gap:7px;overflow:hidden;background:#dedbd2}.lvh20-gallery__tile{position:relative;min-width:0;min-height:0;margin:0;padding:0;border:0;background:#ddd9cf;overflow:hidden;cursor:zoom-in}.lvh20-gallery__tile img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease,filter .5s ease}.lvh20-gallery__tile:hover img{transform:scale(1.016);filter:brightness(.96)}.lvh20-gallery__tile--1{grid-column:1;grid-row:1/3}.lvh20-gallery__tile--2{grid-column:2;grid-row:1}.lvh20-gallery__tile--3{grid-column:3;grid-row:1}.lvh20-gallery__tile--4{grid-column:2;grid-row:2}.lvh20-gallery__tile--5{grid-column:3;grid-row:2}.lvh20-gallery__grid--1{grid-template-columns:1fr}.lvh20-gallery__grid--1 .lvh20-gallery__tile--1{grid-column:1;grid-row:1/3}.lvh20-gallery__grid--2,.lvh20-gallery__grid--3{grid-template-columns:1.5fr .8fr}.lvh20-gallery__grid--2 .lvh20-gallery__tile--2,.lvh20-gallery__grid--3 .lvh20-gallery__tile--2{grid-column:2;grid-row:1/3}.lvh20-gallery__grid--3 .lvh20-gallery__tile--2{grid-row:1}.lvh20-gallery__grid--3 .lvh20-gallery__tile--3{grid-column:2;grid-row:2}.lvh20-gallery__grid--4{grid-template-columns:1.5fr .8fr}.lvh20-gallery__grid--4 .lvh20-gallery__tile--2{grid-column:2;grid-row:1}.lvh20-gallery__grid--4 .lvh20-gallery__tile--3{grid-column:2;grid-row:2}.lvh20-gallery__grid--4 .lvh20-gallery__tile--4{display:none}.lvh20-gallery__count{position:absolute;right:15px;bottom:57px;z-index:2;display:flex;align-items:center;gap:9px;min-height:38px;padding:0 12px;border:1px solid rgba(27,29,24,.12);background:rgba(248,245,238,.95);backdrop-filter:blur(10px);color:var(--lvh27-ink);cursor:pointer;font:700 8px/1 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.lvh20-gallery__icon{font-size:14px;font-weight:400}.lvh20-gallery__count small{display:grid;place-items:center;min-width:22px;height:22px;background:rgba(27,29,24,.06);font:700 8px/1 Arial,sans-serif}

/* CONTENT + BOOKING */
.lvh27-overview{padding:2px 0 64px}
.lvh27-overview__grid{
    display:grid;grid-template-columns:minmax(0,1fr) 300px;
    gap:46px;align-items:start
}
.lvh27-content{min-width:0}
.lvh27-description{
    display:grid;grid-template-columns:118px minmax(0,1fr);
    gap:28px;align-items:start
}
.lvh27-description>.lvh27-kicker{padding-top:5px}
.lvh27-description__body{min-width:0;max-width:700px}
.lvh27-description h2{
    margin:0 0 15px;
    font:400 clamp(29px,2.65vw,38px)/1 var(--lvh27-serif);
    letter-spacing:-.038em
}
.lvh27-description p{
    max-width:660px;margin:0;color:var(--lvh27-muted);
    font:400 12.5px/1.72 Arial,sans-serif
}

/* COMMON SECTIONS */
.lvh27-section{margin-top:44px;padding-top:30px;border-top:1px solid var(--lvh27-line)}
.lvh27-section__head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:19px}
.lvh27-section__head h2{
    margin:8px 0 0;
    font:400 30px/1 var(--lvh27-serif);
    letter-spacing:-.035em
}

/* AMENITIES */
.lvh27-amenities ul{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 26px;margin:0;padding:0;list-style:none;
    border-top:1px solid var(--lvh27-soft)
}
.lvh27-amenities li{
    display:flex;align-items:center;gap:9px;
    min-height:41px;padding:8px 0;
    border-bottom:1px solid var(--lvh27-soft);
    color:#4b4d45;font:400 10.8px/1.35 Arial,sans-serif
}
.lvh27-amenities li>span{
    display:grid;place-items:center;width:19px;height:19px;flex:0 0 auto;
    border:1px solid rgba(72,80,71,.23);
    color:var(--lvh27-forest);font:400 11px/1 Arial,sans-serif
}

/* STAY INFO */
.lvh27-info__grid{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
    border-top:1px solid var(--lvh27-soft)
}
.lvh27-info__grid>div{padding:15px 18px 15px 0}
.lvh27-info__grid span{
    display:block;margin-bottom:7px;color:var(--lvh27-muted);
    font:700 6.5px/1 Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase
}
.lvh27-info__grid strong{
    display:block;font:400 15px/1.28 var(--lvh27-serif);
    letter-spacing:-.015em
}
.lvh27-info__note{
    margin:9px 0 0;color:var(--lvh27-muted);
    font:400 9.5px/1.5 Arial,sans-serif
}

/* STICKY BOOKING — smaller and more operational */
.lvh27-booking{position:relative}
.lvh27-booking__card{
    position:sticky;top:112px;padding:19px;
    background:#fff;border:1px solid var(--lvh27-line);
    box-shadow:0 14px 38px rgba(27,29,24,.055)
}
.lvh27-booking__head{padding-bottom:14px;border-bottom:1px solid var(--lvh27-line)}
.lvh27-booking__head>div{display:flex;align-items:baseline;gap:6px;margin-top:9px}
.lvh27-booking__head strong{
    font:400 27px/1 var(--lvh27-serif);
    letter-spacing:-.035em
}
.lvh27-booking__head small{
    color:var(--lvh27-muted);font:400 8.5px/1 Arial,sans-serif
}
.lvh27-booking__form{display:grid;gap:8px;padding-top:13px}
.lvh27-booking__dates{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.lvh27-booking__form label{
    display:grid;gap:5px;padding:8px 9px;
    border:1px solid var(--lvh27-line);background:var(--lvh27-ivory)
}
.lvh27-booking__form label>span{
    color:var(--lvh27-muted);
    font:700 6.3px/1 Arial,sans-serif;letter-spacing:.11em;text-transform:uppercase
}
.lvh27-booking__form input,.lvh27-booking__form select{
    width:100%;min-width:0;padding:0;border:0;background:transparent;outline:0;
    color:var(--lvh27-ink);font:400 10.5px/1.4 Arial,sans-serif
}
.lvh27-total{
    display:flex;align-items:end;justify-content:space-between;gap:14px;
    padding:10px 0;border-top:1px solid var(--lvh27-soft);border-bottom:1px solid var(--lvh27-soft)
}
.lvh27-total>div>span{
    display:block;margin-bottom:4px;
    font:700 6.3px/1 Arial,sans-serif;letter-spacing:.11em;text-transform:uppercase
}
.lvh27-total small{display:block;color:var(--lvh27-muted);font:400 8.5px/1.35 Arial,sans-serif}
.lvh27-total strong{font:400 20px/1 var(--lvh27-serif)}
.lvh27-booking__form button{
    display:flex;align-items:center;justify-content:space-between;
    min-height:39px;padding:0 13px;border:1px solid var(--lvh27-forest);
    background:var(--lvh27-forest);color:#fff;cursor:pointer;
    font:700 7.2px/1 Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase
}
.lvh27-booking__form button span{font-size:11px;font-weight:400}
.lvh27-booking__note{
    margin:9px 2px 0;color:var(--lvh27-muted);
    text-align:center;font:400 7.8px/1.45 Arial,sans-serif
}

/* RELATED STAYS */
.lvh27-related{padding:48px 0 58px;background:#eeebe3;border-top:1px solid var(--lvh27-line)}
.lvh27-related__head{
    display:flex;align-items:end;justify-content:space-between;
    gap:28px;margin-bottom:24px
}
.lvh27-related__head h2{
    margin:8px 0 0;
    font:400 32px/1 var(--lvh27-serif);letter-spacing:-.035em
}
.lvh27-related__head>a{
    display:inline-flex;gap:10px;padding-bottom:5px;
    border-bottom:1px solid rgba(27,29,24,.35);
    text-decoration:none!important;
    font:700 7.2px/1 Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase
}
.lvh27-related__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.lvh27-related-card{min-width:0}
.lvh27-related-card__media{
    position:relative;display:block;aspect-ratio:1.5/1;
    overflow:hidden;background:#d9d6cd
}
.lvh27-related-card__media img{
    display:block;width:100%;height:100%;object-fit:cover;
    transition:transform .5s ease
}
.lvh27-related-card:hover .lvh27-related-card__media img{transform:scale(1.015)}
.lvh27-related-card__media>span{
    position:absolute;right:9px;bottom:9px;display:grid;place-items:center;
    width:29px;height:29px;background:rgba(248,245,238,.94);
    font:400 11px/1 Arial,sans-serif
}
.lvh27-related-card__body{padding:11px 1px 0}
.lvh27-related-card__body small{
    color:var(--lvh27-muted);
    font:700 6.5px/1 Arial,sans-serif;letter-spacing:.11em;text-transform:uppercase
}
.lvh27-related-card__body h3{
    margin:6px 0 9px;
    font:400 22px/1 var(--lvh27-serif);letter-spacing:-.03em
}
.lvh27-related-card__body h3 a{text-decoration:none!important}
.lvh27-related-card__body>div{
    display:flex;align-items:center;justify-content:space-between;gap:14px;
    padding-top:8px;border-top:1px solid var(--lvh27-line)
}
.lvh27-related-card__body>div span{color:var(--lvh27-muted);font:400 8px/1 Arial,sans-serif}
.lvh27-related-card__body>div strong{font:700 8px/1 Arial,sans-serif}

/* MOBILE BOOKBAR */
.lvh27-mobile-bookbar{display:none}

/* LIGHTBOX — mechanics/visual treatment kept */
html.lvh-lightbox-open,html.lvh-lightbox-open body{overflow:hidden}
.lvh-lightbox{z-index:100000!important;background:rgba(18,20,17,.97)!important}
.lvh-lightbox__topbar{font-family:Arial,sans-serif!important}
.lvh-lightbox__figure img{box-shadow:0 18px 60px rgba(0,0,0,.22)}

/* LAPTOP 13–15" — key refinement */
@media(max-width:1440px) and (min-width:1101px){
    :root{--lvh27-shell:min(1160px,calc(100vw - 54px))}
    .lvh27-intro{padding:27px 0 20px}
    .lvh27-back{margin-bottom:18px}
    .lvh27-heading h1{font-size:44px}
    .lvh27-specs{margin-top:19px}
    .lvh27-specs>div{min-width:84px;padding-top:9px;padding-bottom:9px;margin-right:14px;padding-right:14px}
    .lvh20-gallery__grid{height:450px}
    .lvh27-overview{padding-top:0;padding-bottom:54px}
    .lvh27-overview__grid{grid-template-columns:minmax(0,1fr) 278px;gap:36px}
    .lvh27-description{grid-template-columns:92px minmax(0,1fr);gap:18px}
    .lvh27-description>.lvh27-kicker{padding-top:4px}
    .lvh27-description__body{max-width:620px}
    .lvh27-description h2{font-size:31px}
    .lvh27-description p{max-width:600px;font-size:11.6px;line-height:1.66}
    .lvh27-section{margin-top:36px;padding-top:25px}
    .lvh27-section__head{margin-bottom:16px}
    .lvh27-section__head h2{font-size:27px}
    .lvh27-amenities li{min-height:37px;font-size:10px}
    .lvh27-info__grid strong{font-size:14px}
    .lvh27-booking__card{top:108px;padding:17px}
    .lvh27-booking__head strong{font-size:25px}
    .lvh27-related{padding-top:42px;padding-bottom:50px}
    .lvh27-related__head h2{font-size:29px}
    .lvh27-related-card__body h3{font-size:20px}
}

/* TABLET */
@media(max-width:1100px){
    :root{--lvh27-shell:calc(100vw - 44px)}
    .lvh27-heading h1{font-size:46px}
    .lvh27-specs{overflow-x:auto;scrollbar-width:none}
    .lvh27-specs::-webkit-scrollbar{display:none}
    .lvh27-specs>div{flex:0 0 auto}
    .lvh20-gallery__grid{height:430px}
    .lvh27-overview__grid{grid-template-columns:minmax(0,1fr) 270px;gap:30px}
    .lvh27-description{grid-template-columns:88px minmax(0,1fr);gap:17px}
    .lvh27-booking__card{top:88px}
}

/* MOBILE / SMALL TABLET */
@media(max-width:820px){
    :root{--lvh27-shell:calc(100vw - 34px)}
    .lvh27-single{padding-bottom:70px}
    .lvh27-intro{padding:25px 0 20px}
    .lvh27-back{margin-bottom:18px}
    .lvh27-heading{grid-template-columns:1fr;gap:15px}
    .lvh27-heading h1{font-size:41px}
    .lvh27-heading__cta{justify-self:start}
    .lvh27-specs{margin-top:19px}
    .lvh27-specs__price{margin-left:0!important;padding-left:0!important}

    .lvh20-gallery{padding-bottom:30px}
    .lvh20-gallery__grid{
        height:390px;
        grid-template-columns:minmax(0,1.55fr) minmax(0,.8fr);
        grid-template-rows:1fr 1fr
    }
    .lvh20-gallery__tile--1{grid-column:1;grid-row:1/3}
    .lvh20-gallery__tile--2{grid-column:2;grid-row:1}
    .lvh20-gallery__tile--3{grid-column:2;grid-row:2}
    .lvh20-gallery__tile--4,.lvh20-gallery__tile--5{display:none}
    .lvh20-gallery__count{bottom:42px}

    .lvh27-overview{padding-top:4px;padding-bottom:54px}
    .lvh27-overview__grid{grid-template-columns:1fr}
    .lvh27-booking{display:none}
    .lvh27-description{grid-template-columns:1fr;gap:9px}
    .lvh27-description>.lvh27-kicker{padding-top:0}
    .lvh27-description__body{max-width:none}
    .lvh27-description h2{font-size:34px;margin-bottom:15px}
    .lvh27-section{margin-top:38px;padding-top:27px}
    .lvh27-info__grid{grid-template-columns:1fr 1fr}
    .lvh27-info__grid>div:last-child{grid-column:1/-1}

    .lvh27-related__grid{grid-template-columns:1fr 1fr}
    .lvh27-related-card:last-child{display:none}

    .lvh27-mobile-bookbar{
        position:fixed;left:0;right:0;bottom:0;z-index:99980;
        display:flex;align-items:center;justify-content:space-between;gap:14px;
        padding:9px 14px max(9px,env(safe-area-inset-bottom));
        background:rgba(248,245,238,.97);backdrop-filter:blur(14px);
        border-top:1px solid var(--lvh27-line);
        box-shadow:0 -10px 30px rgba(27,29,24,.08)
    }
    .lvh27-mobile-bookbar>div{display:flex;align-items:baseline;gap:4px;min-width:0}
    .lvh27-mobile-bookbar small{
        margin-right:3px;color:var(--lvh27-muted);
        font:700 6.5px/1 Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase
    }
    .lvh27-mobile-bookbar strong{white-space:nowrap;font:400 20px/1 var(--lvh27-serif)}
    .lvh27-mobile-bookbar span{white-space:nowrap;color:var(--lvh27-muted);font:400 8px/1 Arial,sans-serif}
    .lvh27-mobile-bookbar a{
        flex:0 0 auto;display:grid;place-items:center;min-height:38px;padding:0 16px;
        background:var(--lvh27-forest);color:#fff!important;text-decoration:none!important;
        font:700 7.2px/1 Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase
    }
    .lv-site-footer{padding-bottom:0}
}

/* PHONE */
@media(max-width:600px){
    :root{--lvh27-shell:calc(100vw - 28px)}
    .lvh27-intro{padding-top:22px}
    .lvh27-heading h1{font-size:36px}
    .lvh27-specs>div{min-width:77px;margin-right:11px;padding-right:11px}
    .lvh27-specs strong{font-size:15px}

    .lvh20-gallery__grid{height:auto;display:block;aspect-ratio:1.18/1}
    .lvh20-gallery__tile{display:none!important;width:100%;height:100%}
    .lvh20-gallery__tile--1{display:block!important}
    .lvh20-gallery__count{left:10px;right:auto;bottom:40px}

    .lvh27-overview{padding-bottom:46px}
    .lvh27-description h2{font-size:30px}
    .lvh27-description p{font-size:12.5px;line-height:1.68}
    .lvh27-section__head h2{font-size:28px}
    .lvh27-amenities ul{grid-template-columns:1fr}
    .lvh27-amenities li{min-height:39px}
    .lvh27-info__grid{grid-template-columns:1fr}
    .lvh27-info__grid>div,.lvh27-info__grid>div:last-child{
        grid-column:1;padding:13px 0;border-bottom:1px solid var(--lvh27-soft)
    }

    .lvh27-related{padding:40px 0 48px}
    .lvh27-related__head{align-items:flex-start}
    .lvh27-related__head>a{display:none}
    .lvh27-related__head h2{font-size:28px}
    .lvh27-related__grid{grid-template-columns:1fr}
    .lvh27-related-card:last-child{display:block}
    .lvh27-related-card__media{aspect-ratio:1.5/1}
}

@media(max-width:380px){
    .lvh27-heading h1{font-size:33px}
    .lvh27-mobile-bookbar span{display:none}
    .lvh27-mobile-bookbar a{padding-inline:13px}
}

@media(prefers-reduced-motion:reduce){
    .lvh20-gallery__tile img,.lvh27-related-card__media img{transition:none!important}
}


/* ==========================================================
   v0.4.9 — COMPLETE LOWER PAGE REBUILD
   Everything below approved gallery.
   ========================================================== */

.lvh29-detail{
    padding:4px 0 64px;
    background:var(--lvh27-ivory)
}
.lvh29-detail__grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) 300px;
    gap:46px;
    align-items:start
}
.lvh29-main{min-width:0}

/* STORY */
.lvh29-story{
    max-width:760px;
    padding:0 0 34px
}
.lvh29-story h2{
    margin:9px 0 15px;
    font:400 clamp(31px,2.65vw,39px)/1 var(--lvh27-serif);
    letter-spacing:-.04em
}
.lvh29-story__text{
    max-width:690px
}
.lvh29-story__text p{
    margin:0;
    color:var(--lvh27-muted);
    font:400 12.5px/1.72 Arial,sans-serif
}

/* GENERIC LOWER BLOCK */
.lvh29-block{
    max-width:760px;
    padding:27px 0 0;
    margin-top:0;
    border-top:1px solid var(--lvh27-line)
}
.lvh29-block + .lvh29-block{
    margin-top:34px
}
.lvh29-block__head{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(220px,.62fr);
    gap:30px;
    align-items:end;
    margin-bottom:17px
}
.lvh29-block__head h2{
    margin:8px 0 0;
    font:400 29px/1 var(--lvh27-serif);
    letter-spacing:-.035em
}
.lvh29-block__head>p{
    margin:0;
    max-width:300px;
    color:var(--lvh27-muted);
    font:400 10px/1.55 Arial,sans-serif
}

/* AMENITIES */
.lvh29-amenities ul{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    margin:0;
    padding:0;
    list-style:none;
    border-top:1px solid var(--lvh27-soft)
}
.lvh29-amenities li{
    display:flex;
    align-items:center;
    gap:8px;
    min-height:42px;
    padding:9px 12px 9px 0;
    border-bottom:1px solid var(--lvh27-soft)
}
.lvh29-amenities li span{
    width:5px;height:5px;
    flex:0 0 auto;
    background:var(--lvh27-olive);
    border-radius:50%
}
.lvh29-amenities li strong{
    color:#4d5048;
    font:500 10px/1.35 Arial,sans-serif
}

/* PRACTICAL */
.lvh29-practical__grid{
    display:grid;
    grid-template-columns:.72fr .72fr 1.25fr;
    border-top:1px solid var(--lvh27-soft);
    border-bottom:1px solid var(--lvh27-soft)
}
.lvh29-practical__grid>div{
    min-width:0;
    padding:14px 15px 14px 0
}
.lvh29-practical__grid>div+div{
    padding-left:15px;
    border-left:1px solid var(--lvh27-soft)
}
.lvh29-practical__grid small{
    display:block;
    margin-bottom:7px;
    color:var(--lvh27-muted);
    font:700 6.4px/1 Arial,sans-serif;
    letter-spacing:.12em;
    text-transform:uppercase
}
.lvh29-practical__grid strong{
    display:block;
    color:var(--lvh27-ink);
    font:400 14.5px/1.3 var(--lvh27-serif);
    letter-spacing:-.015em
}

/* BOOKING */
.lvh29-booking{position:relative}
.lvh29-booking__card{
    position:sticky;
    top:108px;
    padding:17px;
    background:#fff;
    border:1px solid var(--lvh27-line);
    box-shadow:0 14px 36px rgba(27,29,24,.055)
}
.lvh29-booking__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    padding-bottom:13px;
    border-bottom:1px solid var(--lvh27-line)
}
.lvh29-booking__head p{
    margin:6px 0 0;
    max-width:135px;
    color:var(--lvh27-muted);
    font:400 7.7px/1.4 Arial,sans-serif
}
.lvh29-booking__price{text-align:right}
.lvh29-booking__price strong{
    display:block;
    font:400 24px/1 var(--lvh27-serif);
    letter-spacing:-.035em
}
.lvh29-booking__price small{
    display:block;
    margin-top:4px;
    color:var(--lvh27-muted);
    font:400 7.4px/1 Arial,sans-serif
}
.lvh29-booking__form{
    display:grid;
    gap:7px;
    padding-top:12px
}
.lvh29-booking__dates{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px
}
.lvh29-booking__form label{
    display:grid;
    gap:5px;
    min-width:0;
    padding:8px 9px;
    border:1px solid var(--lvh27-line);
    background:var(--lvh27-ivory)
}
.lvh29-booking__form label>span{
    color:var(--lvh27-muted);
    font:700 6.1px/1 Arial,sans-serif;
    letter-spacing:.1em;
    text-transform:uppercase
}
.lvh29-booking__form input,
.lvh29-booking__form select{
    width:100%;
    min-width:0;
    padding:0;
    border:0;
    outline:0;
    background:transparent;
    color:var(--lvh27-ink);
    font:400 10px/1.35 Arial,sans-serif
}
.lvh29-total{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:13px;
    padding:9px 0;
    border-top:1px solid var(--lvh27-soft);
    border-bottom:1px solid var(--lvh27-soft)
}
.lvh29-total span{
    display:block;
    margin-bottom:4px;
    font:700 6.1px/1 Arial,sans-serif;
    letter-spacing:.1em;
    text-transform:uppercase
}
.lvh29-total small{
    display:block;
    color:var(--lvh27-muted);
    font:400 8px/1.35 Arial,sans-serif
}
.lvh29-total strong{
    font:400 19px/1 var(--lvh27-serif)
}
.lvh29-booking__form button{
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:38px;
    padding:0 12px;
    border:0;
    background:var(--lvh27-forest);
    color:#fff;
    cursor:pointer;
    font:700 7px/1 Arial,sans-serif;
    letter-spacing:.085em;
    text-transform:uppercase
}
.lvh29-booking__form button span{font-size:10px}
.lvh29-booking__foot{
    display:flex;
    flex-wrap:wrap;
    gap:5px 10px;
    margin-top:9px;
    color:var(--lvh27-muted);
    font:500 6.5px/1.35 Arial,sans-serif
}
.lvh29-booking__foot span{
    position:relative;
    padding-left:8px
}
.lvh29-booking__foot span:before{
    content:'';
    position:absolute;
    left:0;top:3px;
    width:3px;height:3px;
    border-radius:50%;
    background:var(--lvh27-olive)
}

/* LAPTOP */
@media(max-width:1440px) and (min-width:1101px){
    .lvh29-detail{padding-top:0;padding-bottom:54px}
    .lvh29-detail__grid{
        grid-template-columns:minmax(0,1fr) 276px;
        gap:34px
    }
    .lvh29-story{max-width:680px;padding-bottom:29px}
    .lvh29-story h2{font-size:31px}
    .lvh29-story__text{max-width:610px}
    .lvh29-story__text p{font-size:11.5px;line-height:1.68}
    .lvh29-block{max-width:680px;padding-top:23px}
    .lvh29-block + .lvh29-block{margin-top:29px}
    .lvh29-block__head{grid-template-columns:1fr 240px;gap:24px;margin-bottom:14px}
    .lvh29-block__head h2{font-size:26px}
    .lvh29-block__head>p{font-size:9.3px}
    .lvh29-amenities li{min-height:38px}
    .lvh29-amenities li strong{font-size:9.4px}
    .lvh29-practical__grid strong{font-size:13.5px}
    .lvh29-booking__card{top:106px;padding:15px}
    .lvh29-booking__price strong{font-size:22px}
}

/* TABLET */
@media(max-width:1100px){
    .lvh29-detail__grid{
        grid-template-columns:minmax(0,1fr) 264px;
        gap:28px
    }
    .lvh29-block__head{
        grid-template-columns:1fr;
        gap:10px
    }
    .lvh29-block__head>p{max-width:520px}
    .lvh29-amenities ul{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* SMALL TABLET / MOBILE */
@media(max-width:820px){
    .lvh29-detail{padding:0 0 48px}
    .lvh29-detail__grid{grid-template-columns:1fr}
    .lvh29-booking{display:none}
    .lvh29-story,.lvh29-block{max-width:none}
    .lvh29-story h2{font-size:32px}
    .lvh29-story__text{max-width:680px}
    .lvh29-block__head{grid-template-columns:1fr;gap:10px}
    .lvh29-practical__grid{grid-template-columns:1fr 1fr}
    .lvh29-practical__grid>div:last-child{
        grid-column:1/-1;
        padding-left:0;
        border-left:0;
        border-top:1px solid var(--lvh27-soft)
    }
}

/* PHONE */
@media(max-width:600px){
    .lvh29-detail{padding-bottom:43px}
    .lvh29-story{padding-bottom:25px}
    .lvh29-story h2{font-size:29px}
    .lvh29-story__text p{font-size:12.3px;line-height:1.68}
    .lvh29-block{padding-top:22px}
    .lvh29-block + .lvh29-block{margin-top:26px}
    .lvh29-block__head h2{font-size:27px}
    .lvh29-amenities ul{grid-template-columns:1fr}
    .lvh29-amenities li{min-height:39px}
    .lvh29-practical__grid{grid-template-columns:1fr}
    .lvh29-practical__grid>div,
    .lvh29-practical__grid>div+div,
    .lvh29-practical__grid>div:last-child{
        grid-column:1;
        padding:12px 0;
        border-left:0;
        border-top:0;
        border-bottom:1px solid var(--lvh27-soft)
    }
}


/* ==========================================================
   v0.5.0 — SINGLE MOBILE PARITY
   Same responsive ruler as approved Villa Gonçalo pages.
   ========================================================== */

/* Small tablet / mobile: 17px each side */
@media(max-width:820px){
    :root{--lvh27-shell:calc(100vw - 34px)}

    .lvh27-intro{
        padding-top:24px;
        padding-bottom:18px
    }
    .lvh27-back{margin-bottom:16px}
    .lvh27-heading{gap:13px}
    .lvh27-heading h1{
        font-size:38px;
        line-height:.98;
        letter-spacing:-.043em
    }
    .lvh27-heading__cta{
        font-size:7.5px;
        gap:10px
    }

    /* Keep specs readable without squeezing */
    .lvh27-specs{
        width:100%;
        margin-top:17px;
        padding-bottom:2px;
        overflow-x:auto;
        overscroll-behavior-x:contain;
        scroll-snap-type:x proximity;
        scrollbar-width:none
    }
    .lvh27-specs::-webkit-scrollbar{display:none}
    .lvh27-specs>div{
        flex:0 0 auto;
        min-width:82px;
        margin-right:12px;
        padding:9px 12px 9px 0;
        scroll-snap-align:start
    }
    .lvh27-specs span{font-size:6.2px}
    .lvh27-specs strong{font-size:15px}

    /* Approved gallery keeps same composition, only respects global gutter */
    .lvh20-gallery{padding-bottom:28px}
    .lvh20-gallery__count{
        right:10px;
        bottom:40px;
        min-height:36px;
        padding-inline:10px
    }

    /* Lower content */
    .lvh29-detail{padding-bottom:46px}
    .lvh29-story{padding-bottom:24px}
    .lvh29-story h2{
        margin-top:8px;
        font-size:31px
    }
    .lvh29-story__text p{
        font-size:12.2px;
        line-height:1.67
    }
    .lvh29-block{padding-top:22px}
    .lvh29-block + .lvh29-block{margin-top:27px}
    .lvh29-block__head{margin-bottom:14px}
    .lvh29-block__head h2{font-size:27px}
    .lvh29-block__head>p{
        max-width:520px;
        font-size:9.5px;
        line-height:1.5
    }

    .lvh29-amenities ul{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:0 18px
    }
    .lvh29-amenities li{
        min-height:39px;
        padding-block:8px
    }
    .lvh29-amenities li strong{font-size:9.8px}

    .lvh29-practical__grid{grid-template-columns:1fr 1fr}
    .lvh29-practical__grid>div{padding-block:13px}
    .lvh29-practical__grid strong{font-size:13.8px}

    /* Related stays */
    .lvh27-related{
        padding-top:39px;
        padding-bottom:46px
    }
    .lvh27-related__head{margin-bottom:20px}
    .lvh27-related__head h2{font-size:28px}
    .lvh27-related__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:12px
    }
    .lvh27-related-card__body h3{font-size:20px}

    /* Bottom reservation bar: compact, safe-area aware */
    .lvh27-mobile-bookbar{
        padding-left:17px;
        padding-right:17px;
        min-height:58px
    }
    .lvh27-mobile-bookbar a{
        min-height:37px;
        padding-inline:15px
    }
}

/* Phone: same 17px gutters, single-column content */
@media(max-width:600px){
    :root{--lvh27-shell:calc(100vw - 34px)}

    .lvh27-intro{padding-top:21px}
    .lvh27-heading h1{font-size:35px}
    .lvh27-heading__cta{font-size:7.2px}

    /* Gallery remains dominant but no longer touches screen edges */
    .lvh20-gallery__grid{
        aspect-ratio:1.22/1
    }
    .lvh20-gallery__count{
        left:10px;
        right:auto;
        bottom:38px
    }

    .lvh29-story h2{font-size:29px}
    .lvh29-story__text p{font-size:12.2px}

    .lvh29-amenities ul{
        grid-template-columns:1fr;
        gap:0
    }

    .lvh29-practical__grid{grid-template-columns:1fr}
    .lvh29-practical__grid>div,
    .lvh29-practical__grid>div+div,
    .lvh29-practical__grid>div:last-child{
        padding:12px 0;
        border-left:0;
        border-top:0;
        border-bottom:1px solid var(--lvh27-soft)
    }

    .lvh27-related__grid{grid-template-columns:1fr}
    .lvh27-related-card__media{aspect-ratio:1.48/1}
    .lvh27-related-card__body h3{font-size:21px}

    .lvh27-mobile-bookbar{
        padding-left:17px;
        padding-right:17px
    }
}

/* Very small phones: 15px each side, matching approved <=390 ruler */
@media(max-width:390px){
    :root{--lvh27-shell:calc(100vw - 30px)}

    .lvh27-heading h1{font-size:33px}
    .lvh27-specs>div{
        min-width:76px;
        margin-right:10px;
        padding-right:10px
    }

    .lvh29-story h2{font-size:27px}
    .lvh29-block__head h2{font-size:26px}

    .lvh27-mobile-bookbar{
        padding-left:15px;
        padding-right:15px
    }
    .lvh27-mobile-bookbar strong{font-size:19px}
    .lvh27-mobile-bookbar a{padding-inline:13px}
}
