
/* ===== Lasenza inner pages — locked master design system ===== */
.inner-hero{height:330px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#22191a;background-size:cover;background-position:center}.inner-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,12,14,.72),rgba(24,12,14,.46),rgba(24,12,14,.56))}.inner-hero .container-xl{position:relative;z-index:2;text-align:center;color:#fff}.inner-hero h1{font-family:var(--serif);font-size:clamp(44px,5vw,66px);line-height:1;margin:0 0 13px;font-weight:600;letter-spacing:-.025em}.inner-hero .crumbs{display:flex;gap:8px;justify-content:center;align-items:center;font-size:10px;color:rgba(255,255,255,.78)}.inner-hero .crumbs a:hover{color:#fff}.inner-hero .crumbs i{font-size:7px;color:#efb8bf}.page-intro{padding:78px 0 44px;background:#fff}.page-intro .intro-copy{max-width:760px;margin:0 auto;text-align:center}.page-intro p{font-size:13px;color:var(--muted);line-height:1.9}.page-intro .section-kicker{justify-content:center}
.inner-search-wrap{background:#fff;position:relative;z-index:5;margin-top:-44px}.inner-search-card{display:grid;grid-template-columns:repeat(4,1fr) auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.inner-search-card .booking-field{min-height:92px}.inner-search-card .btn{border-radius:0;min-width:160px}.small-note{font-size:9px;color:#968d87}.soft-section{background:var(--cream)}.white-section{background:#fff}
.room-list{display:grid;gap:26px}.room-list-card{display:grid;grid-template-columns:44% 56%;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;min-height:330px;transition:.25s ease}.room-list-card:hover{transform:translateY(-3px);box-shadow:0 22px 60px rgba(50,34,26,.08)}.room-list-media{position:relative;min-height:330px;overflow:hidden}.room-list-media img{width:100%;height:100%;object-fit:cover;transition:.45s}.room-list-card:hover .room-list-media img{transform:scale(1.035)}.room-list-media .room-badge{z-index:2}.room-list-body{padding:34px 36px;display:flex;flex-direction:column}.room-list-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.room-list-top h2{font-family:var(--serif);font-size:36px;margin:3px 0 6px;line-height:1}.room-list-top .rate{text-align:right;white-space:nowrap}.rate small,.rate strong{display:block}.rate small{font-size:8px;color:#958b85;text-transform:uppercase;letter-spacing:.08em}.rate strong{font-family:var(--serif);font-size:26px;color:var(--wine);line-height:1.2}.rate em{font-style:normal;font-size:9px;color:#918985}.room-list-body>p{font-size:11px;color:var(--muted);line-height:1.8;max-width:620px}.room-facts{display:flex;flex-wrap:wrap;gap:12px 22px;margin:12px 0 18px;color:#766d67;font-size:9px}.room-facts i{color:var(--red);margin-right:6px}.room-list-actions{margin-top:auto;padding-top:20px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.room-list-actions .room-amenities{margin:0}.filter-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}.filter-pills button{border:1px solid var(--line);background:#fff;border-radius:999px;font-size:9px;font-weight:700;padding:9px 14px;color:#756c66}.filter-pills button.active,.filter-pills button:hover{background:var(--wine);color:#fff;border-color:var(--wine)}
/* Room detail, close to uploaded competitor composition */
.room-gallery-section{padding:62px 0 24px;background:#fff}.room-gallery-layout{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:stretch}.room-thumb-stack{display:grid;grid-template-rows:repeat(4,1fr);gap:12px}.room-thumb{border:2px solid transparent;padding:0;background:#fff;border-radius:12px;overflow:hidden;position:relative;cursor:pointer}.room-thumb.active{border-color:var(--wine)}.room-thumb img{width:100%;height:100%;object-fit:cover;min-height:88px}.room-thumb.more:after{content:"View all photos";position:absolute;inset:0;background:rgba(48,22,25,.58);display:grid;place-items:center;color:#fff;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:8px;text-align:center}.room-main-image{height:535px;border-radius:17px;overflow:hidden;position:relative;background:#eee}.room-main-image img{width:100%;height:100%;object-fit:cover;transition:.3s}.room-main-image .expand-room{position:absolute;right:18px;bottom:18px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.93);color:var(--wine);box-shadow:0 8px 24px rgba(0,0,0,.12)}
.room-detail-section{padding:0 0 105px}.room-info-card{border:1px solid var(--line);border-radius:14px;padding:24px 28px;background:#fff;margin:22px 0 32px}.room-info-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.room-info-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.room-info-title h2{font-family:var(--serif);font-size:34px;margin:0}.availability-pill{font-size:8px;text-transform:uppercase;letter-spacing:.06em;padding:6px 9px;border-radius:999px;background:#eaf7f0;color:#217c55;font-weight:700}.room-location{font-size:9px;color:#918985;margin-top:6px}.room-location i{color:var(--red);margin-right:6px}.room-rate strong{font-family:var(--serif);font-size:27px;color:var(--wine)}.room-rate span{font-size:9px;color:#8c837e}.room-fact-bar{border-top:1px solid var(--line);margin-top:20px;padding-top:17px;display:grid;grid-template-columns:repeat(4,1fr)}.room-fact-bar div{border-right:1px solid var(--line);padding:0 16px}.room-fact-bar div:first-child{padding-left:0}.room-fact-bar div:last-child{border-right:0}.room-fact-bar i{color:var(--red);margin-right:7px}.room-fact-bar strong{font-size:9px}.content-block{padding:6px 0 24px}.content-block h3{font-family:var(--serif);font-size:27px;margin:0 0 10px}.content-block p{font-size:11px;color:var(--muted);line-height:1.9}.detail-amenities{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:13px;overflow:hidden;margin-top:15px}.detail-amenities div{min-height:74px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:16px}.detail-amenities div:nth-child(3n){border-right:0}.detail-amenities div:nth-last-child(-n+3){border-bottom:0}.detail-amenities i{width:31px;height:31px;border-radius:50%;background:#f9edef;color:var(--red);display:grid;place-items:center;font-size:11px}.detail-amenities span{font-size:9px;font-weight:600}.booking-rules{display:grid;grid-template-columns:1fr 1fr;gap:18px}.rule-card{border:1px solid var(--line);border-radius:13px;padding:20px}.rule-card h4{font-family:var(--serif);font-size:21px}.rule-card ul{list-style:none;padding:0;margin:10px 0 0}.rule-card li{font-size:9px;color:var(--muted);margin:8px 0}.rule-card li i{color:#c98a31;margin-right:7px}.detail-map{border-radius:15px;overflow:hidden;border:1px solid var(--line);height:320px;margin-top:12px}.detail-map iframe{width:100%;height:100%;border:0;filter:grayscale(.65) contrast(.9)}
.sticky-book-card{position:sticky;top:112px;border:1px solid var(--line);border-radius:15px;background:#fff;padding:24px;box-shadow:0 16px 52px rgba(45,29,25,.07);margin-top:22px}.sticky-book-card h3{font-family:var(--serif);font-size:26px;margin:0 0 4px}.sticky-book-card .book-price{font-size:9px;color:var(--muted);margin-bottom:18px}.sticky-book-card .book-price strong{font-family:var(--serif);font-size:24px;color:var(--wine);margin-right:4px}.stack-field{display:block;margin-bottom:13px}.stack-field>span{display:block;font-size:8px;font-weight:700;margin-bottom:6px;color:#5f5752}.stack-field input,.stack-field select,.stack-field textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:11px 12px;font-size:9px;outline:none;background:#fff;color:#302a27}.stack-field input:focus,.stack-field select:focus,.stack-field textarea:focus{border-color:#cba5aa;box-shadow:0 0 0 3px rgba(112,17,29,.06)}.dual-field{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sticky-book-card .btn{width:100%;border-radius:9px;margin-top:4px}.book-safe{display:flex;gap:8px;margin-top:12px;font-size:8px;color:#8b827d;line-height:1.5}.book-safe i{color:#4e9b73;margin-top:2px}.related-rooms{border-top:1px solid var(--line);padding-top:75px}
/* editorial/service pages */
.editorial-split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.editorial-image{position:relative}.editorial-image img{width:100%;height:510px;object-fit:cover;border-radius:17px}.editorial-image .floating-note{position:absolute;right:-28px;bottom:28px;background:#fff;border-radius:12px;box-shadow:0 18px 50px rgba(40,25,21,.12);padding:15px 18px;font-family:var(--serif);font-size:18px;max-width:220px}.service-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-feature{border:1px solid var(--line);border-radius:14px;padding:25px;background:#fff}.service-feature i{width:43px;height:43px;background:#f8ebed;color:var(--red);border-radius:50%;display:grid;place-items:center;margin-bottom:18px}.service-feature h3{font-family:var(--serif);font-size:23px}.service-feature p{font-size:10px;color:var(--muted);line-height:1.8}.menu-showcase{display:grid;grid-template-columns:1.3fr .7fr .7fr;grid-template-rows:250px 250px;gap:14px}.menu-showcase img{width:100%;height:100%;object-fit:cover;border-radius:14px}.menu-showcase .big{grid-row:1/3}.gym-feature{background:#201719;color:#fff;border-radius:18px;overflow:hidden;display:grid;grid-template-columns:1.05fr .95fr}.gym-feature img{width:100%;height:100%;object-fit:cover;min-height:460px}.gym-feature .copy{padding:55px}.gym-feature .copy p{color:rgba(255,255,255,.72);font-size:11px}.gym-feature .copy .display-heading{font-size:52px}.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:15px;overflow:hidden}.step-box{padding:28px;border-right:1px solid var(--line);background:#fff}.step-box:last-child{border-right:0}.step-box span{font-family:var(--serif);font-size:34px;color:#d6c2c4}.step-box h3{font-family:var(--serif);font-size:22px}.step-box p{font-size:9px;color:var(--muted)}
.story-line{position:relative;margin-top:38px}.story-line:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--line)}.story-row{display:grid;grid-template-columns:1fr 72px 1fr;align-items:center;margin:22px 0 55px}.story-row .dot{width:12px;height:12px;border:3px solid #fff;background:var(--red);box-shadow:0 0 0 1px #cfa3aa;border-radius:50%;margin:auto;z-index:2}.story-card{border:1px solid var(--line);border-radius:15px;padding:28px;background:#fff}.story-card h3{font-family:var(--serif);font-size:27px}.story-card p{font-size:10px;color:var(--muted);margin:0}.story-row:nth-child(even) .story-card:first-child{visibility:hidden}.story-row:nth-child(odd) .story-card:last-child{visibility:hidden}
/* gallery */
.full-gallery-grid{columns:3 320px;column-gap:14px}.full-gallery-item{width:100%;border:0;background:none;padding:0;margin:0 0 14px;break-inside:avoid;border-radius:13px;overflow:hidden;position:relative}.full-gallery-item img{width:100%;height:auto;transition:.35s}.full-gallery-item:after{content:"";position:absolute;inset:0;background:rgba(55,20,25,.22);opacity:0;transition:.25s}.full-gallery-item:hover:after{opacity:1}.full-gallery-item:hover img{transform:scale(1.025)}
/* contact and forms */
.contact-panel{border:1px solid var(--line);border-radius:17px;padding:34px;background:#fff;height:100%}.contact-panel h2{font-family:var(--serif);font-size:37px}.contact-panel p{font-size:10px;color:var(--muted)}.contact-form .row{--bs-gutter-x:14px}.contact-form textarea{min-height:125px;resize:vertical}.contact-form .btn{border-radius:9px}.contact-map{height:520px;border-radius:17px;overflow:hidden;border:1px solid var(--line)}.contact-map iframe{width:100%;height:100%;border:0;filter:grayscale(.6)}
/* booking */
.booking-shell{display:grid;grid-template-columns:1.2fr .8fr;gap:30px;align-items:start}.booking-card,.summary-card{border:1px solid var(--line);border-radius:16px;background:#fff;padding:28px}.booking-card h2,.summary-card h2{font-family:var(--serif);font-size:31px}.booking-stepper{display:flex;gap:8px;margin-bottom:28px}.booking-stepper span{height:4px;flex:1;background:#eadfe0;border-radius:5px}.booking-stepper span.active{background:var(--wine)}.summary-card{position:sticky;top:112px}.summary-room{display:flex;gap:14px;padding-bottom:18px;border-bottom:1px solid var(--line)}.summary-room img{width:115px;height:88px;border-radius:10px;object-fit:cover}.summary-room h3{font-family:var(--serif);font-size:22px;margin:0}.summary-lines{margin-top:17px}.summary-lines div{display:flex;justify-content:space-between;gap:15px;font-size:9px;padding:7px 0;color:#756c66}.summary-lines .total{border-top:1px solid var(--line);margin-top:9px;padding-top:15px;color:var(--ink);font-weight:700}.summary-lines .total strong{font-family:var(--serif);font-size:21px;color:var(--wine)}.booking-success{display:none;border:1px solid #cfe6da;background:#f0fbf5;border-radius:14px;padding:22px;margin-top:20px}.booking-success.show{display:block}.booking-success i{color:#2a9868}.lookup-card{max-width:640px;margin:0 auto;border:1px solid var(--line);border-radius:17px;padding:36px;background:#fff;box-shadow:0 20px 70px rgba(45,30,26,.06)}.lookup-result{display:none;margin-top:24px;border-top:1px solid var(--line);padding-top:22px}.lookup-result.show{display:block}.policy-content{max-width:850px;margin:auto}.policy-content h2{font-family:var(--serif);font-size:31px;margin-top:38px}.policy-content p,.policy-content li{font-size:11px;color:var(--muted);line-height:1.9}
.demo-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,120px);opacity:0;z-index:1900;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 55px rgba(35,24,20,.15);padding:13px 18px;font-size:9px;transition:.3s}.demo-toast.show{transform:translate(-50%,0);opacity:1}
@media(max-width:991.98px){.inner-search-card{grid-template-columns:1fr 1fr}.inner-search-card .btn{grid-column:1/3;min-height:58px}.room-list-card{grid-template-columns:1fr}.room-list-media{min-height:360px}.room-gallery-layout{grid-template-columns:1fr}.room-thumb-stack{grid-template-columns:repeat(4,1fr);grid-template-rows:auto;order:2}.room-main-image{height:500px}.room-thumb img{height:95px;min-height:0}.sticky-book-card{position:relative;top:auto}.editorial-split{grid-template-columns:1fr;gap:38px}.editorial-image img{height:470px}.service-feature-grid{grid-template-columns:1fr 1fr}.gym-feature{grid-template-columns:1fr}.gym-feature img{min-height:400px}.steps-grid{grid-template-columns:1fr 1fr}.step-box:nth-child(2){border-right:0}.step-box:nth-child(-n+2){border-bottom:1px solid var(--line)}.story-line:before{left:20px}.story-row{grid-template-columns:40px 1fr}.story-row .dot{grid-column:1;grid-row:1}.story-row .story-card{grid-column:2!important;grid-row:1;visibility:visible!important}.story-row .story-card:empty{display:none}.booking-shell{grid-template-columns:1fr}.summary-card{position:relative;top:auto}}
@media(max-width:767.98px){.inner-hero{height:250px}.inner-hero h1{font-size:43px}.inner-search-wrap{margin-top:-28px}.inner-search-card{grid-template-columns:1fr}.inner-search-card .booking-field{border-right:0;min-height:72px}.inner-search-card .btn{grid-column:auto}.page-intro{padding:62px 0 35px}.room-list-body{padding:25px}.room-list-top{display:block}.room-list-top .rate{text-align:left;margin:10px 0}.room-list-media{min-height:300px}.room-list-actions{align-items:flex-start;flex-direction:column}.room-main-image{height:390px}.room-thumb img{height:72px}.room-info-card{padding:20px}.room-info-head{display:block}.room-rate{margin-top:12px}.room-fact-bar{grid-template-columns:1fr 1fr;gap:0}.room-fact-bar div{padding:10px 0;border-right:0;border-bottom:1px solid var(--line)}.room-fact-bar div:nth-child(odd){border-right:1px solid var(--line)}.room-fact-bar div:nth-last-child(-n+2){border-bottom:0}.detail-amenities{grid-template-columns:1fr 1fr}.detail-amenities div:nth-child(3n){border-right:1px solid var(--line)}.detail-amenities div:nth-child(2n){border-right:0}.detail-amenities div:nth-last-child(-n+3){border-bottom:1px solid var(--line)}.detail-amenities div:nth-last-child(-n+2){border-bottom:0}.booking-rules{grid-template-columns:1fr}.dual-field{grid-template-columns:1fr}.editorial-image img{height:390px}.editorial-image .floating-note{right:12px;left:12px}.service-feature-grid{grid-template-columns:1fr}.menu-showcase{grid-template-columns:1fr 1fr;grid-template-rows:250px 180px}.menu-showcase .big{grid-column:1/3;grid-row:auto}.gym-feature .copy{padding:32px}.gym-feature .copy .display-heading{font-size:42px}.steps-grid{grid-template-columns:1fr}.step-box,.step-box:nth-child(2){border-right:0;border-bottom:1px solid var(--line)}.step-box:last-child{border-bottom:0}.story-line:before{left:16px}.story-row{grid-template-columns:32px 1fr;margin-bottom:30px}.full-gallery-grid{columns:2 180px}.contact-panel{padding:26px}.contact-map{height:390px}.booking-card,.summary-card,.lookup-card{padding:23px}.summary-room img{width:95px;height:78px}}
@media(max-width:479.98px){.room-gallery-section{padding-top:42px}.room-main-image{height:310px}.room-thumb-stack{gap:7px}.room-thumb img{height:58px}.detail-amenities{grid-template-columns:1fr}.detail-amenities div,.detail-amenities div:nth-child(3n),.detail-amenities div:nth-child(2n){border-right:0;border-bottom:1px solid var(--line)}.detail-amenities div:last-child{border-bottom:0}.full-gallery-grid{columns:1}.menu-showcase{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(3,230px)}.menu-showcase .big{grid-column:auto}.room-list-top h2{font-size:31px}}

/* ---- QA fixes -------------------------------------------------------- */
/* .room-list-media has min-height but no resolved height, so the image's
   height:100% fell back to its natural height and stretched the card. */
.room-list-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* The rooms search bar has three fields + a button, not four. Scoped to the
   desktop breakpoint so the existing tablet/mobile stacking still wins. */
@media(min-width:992px){.inner-search-card{grid-template-columns:repeat(3,1fr) auto}}
.intro-copy{max-width:860px}

/* .detail-list / .detail-item were only styled in portal.css, which public pages
   never load — restaurant pricing and the booking summary rendered as raw text. */
.detail-list{border-top:1px solid var(--line)}
.detail-item{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.detail-item>span{font-size:11px;color:var(--muted);font-weight:500}
.detail-item>strong{font-size:12px;font-weight:700;text-align:right;white-space:nowrap}
.content-block .detail-item:first-of-type{border-top:1px solid var(--line)}

/* Bootstrap g-4/g-5 rows use negative margins larger than .container-xl's 12px
   padding, which pushed ~12px off each edge and created a horizontal scrollbar
   on phones. Match the gutter to the container padding below the lg breakpoint. */
@media(max-width:991.98px){
  .container-xl > .row,
  .container-xl .row{--bs-gutter-x:1.5rem}
}
