/* Rib's 1.3 — a restrained type scale and shared UI refinements. */
body.ribs-site{
 --ribs-type-display:clamp(2.5rem,3.6vw,3.375rem);
 --ribs-type-h1:clamp(2.25rem,3.15vw,3rem);
 --ribs-type-h2:clamp(1.75rem,2.4vw,2.25rem);
 --ribs-type-h3:clamp(1.25rem,1.6vw,1.5rem);
 --ribs-content-width:1180px;
 font-size:1rem;line-height:1.65;
}
body.ribs-site h1{font-size:var(--ribs-type-h1)!important;line-height:1.15!important;letter-spacing:-.025em!important;font-weight:400}
body.ribs-site h2{font-size:var(--ribs-type-h2)!important;line-height:1.22!important;letter-spacing:-.025em!important;font-weight:400}
body.ribs-site h3{font-size:var(--ribs-type-h3)!important;line-height:1.27!important;letter-spacing:-.015em!important;font-weight:400}
body.ribs-site .ribs.hero h1{font-size:var(--ribs-type-display)!important;line-height:1.1!important;max-width:620px}
body.ribs-site .ribs.hero{min-height:540px;padding-top:64px;padding-bottom:48px}
body.ribs-site .ribs.hero-copy{max-width:650px;gap:20px}
body.ribs-site .ribs.hero-subtitle{font-size:1.0625rem;line-height:1.65;max-width:52ch}
body.ribs-site .ribs.photo-hero{min-height:370px;padding-top:50px;padding-bottom:44px}
body.ribs-site .ribs.photo-hero h1{max-width:820px}
body.ribs-site .ribs.photo-hero-copy{gap:20px}
body.ribs-site .ribs.article-cover{min-height:410px;padding-top:50px;padding-bottom:46px}
body.ribs-site .ribs.article-cover h1{font-size:clamp(2.15rem,3vw,2.875rem)!important;line-height:1.17!important;max-width:940px}
body.ribs-site .ribs.wrap{max-width:var(--ribs-content-width)}
body.ribs-site .ribs.section{padding-top:64px;padding-bottom:64px}
body.ribs-site .ribs.hero{padding-top:64px;padding-bottom:48px}
body.ribs-site .ribs.photo-hero{padding-top:50px;padding-bottom:44px}
body.ribs-site .ribs.article-cover{padding-top:50px;padding-bottom:46px}
body.ribs-site .ribs.proof{padding-top:26px;padding-bottom:24px}
body.ribs-site .ribs.breakfast,body.ribs-site .ribs.location-section{padding:0}
body.ribs-site .ribs.reference-cta{padding-top:30px;padding-bottom:30px;min-height:132px}
body.ribs-site .ribs.lede,body.ribs-site .ribs.editorial-copy p,body.ribs-site .ribs.feature-suite-copy p{font-size:1rem;line-height:1.75;max-width:65ch}
body.ribs-site .ribs.eyebrow{font-size:.6875rem!important;letter-spacing:.145em;line-height:1.6}
body.ribs-site .ribs.eyebrow p:before{content:'';display:inline-block;width:28px;height:1px;background:currentColor;vertical-align:middle;margin-right:10px;opacity:.65}
body.ribs-site .ribs.section-heading{margin-bottom:12px;gap:13px}
body.ribs-site .ribs.section-heading .lede{max-width:65ch}
body.ribs-site .ribs.number-item .elementor-heading-title{font-size:2.5rem!important;line-height:1.15;letter-spacing:-.035em}
body.ribs-site .ribs.number-item p{font-size:.8125rem;line-height:1.65}
body.ribs-site .ribs.breadcrumbs{font-size:.75rem;line-height:1.6}
/* A compact, readable header. The logo only overlaps before scrolling. */
body.ribs-site .ribs.site-header,body.ribs-site .ribs.header-inner{height:76px;min-height:76px}
body.ribs-site .ribs.header-inner{max-width:1240px;gap:20px}
body.ribs-site .header-inner .ribs.logo{width:124px;max-width:124px;flex-basis:124px;height:96px;transform:translateY(13px);transition:width .2s,height .2s,transform .2s}
body.ribs-site .header-inner .ribs.logo img{width:124px!important;height:96px!important;transition:width .2s,height .2s}
body.ribs-site .ribs-nav-links{gap:23px}
body.ribs-site .ribs-nav-links a{font-size:.875rem;font-weight:500;line-height:1.5;padding:14px 0}
body.ribs-site .ribs-nav-links a[aria-current=page]{color:#006a9c}
body.ribs-site .ribs-nav-links a[aria-current=page]:after{width:100%}
body.ribs-site .ribs.header-cta .elementor-button{font-size:.875rem;padding:13px 21px;min-height:48px}
body.ribs-site .ribs-header-shell.is-scrolled{box-shadow:0 5px 22px #082d480c}
body.ribs-site .ribs-header-shell.is-scrolled .header-inner .ribs.logo{width:96px;max-width:96px;flex-basis:96px;height:74px;transform:none}
body.ribs-site .ribs-header-shell.is-scrolled .header-inner .ribs.logo img{width:96px!important;height:74px!important}
/* Cards and small controls share the same rhythm. */
body.ribs-site .ribs.room-card{border:1px solid #e2e7e6;box-shadow:0 5px 24px #082d4804;border-radius:10px}
body.ribs-site .ribs.card-body{padding:24px;gap:11px}
body.ribs-site .ribs.card-body h3{font-size:1.5rem!important;line-height:1.25!important}
body.ribs-site .ribs.card-body p{font-size:.9375rem;line-height:1.65}
body.ribs-site .ribs.card-body .bed p{font-size:.8125rem;color:#526571}
body.ribs-site .ribs.room-icons .elementor-icon-list-items{display:flex;flex-wrap:wrap;gap:9px 13px}
body.ribs-site .ribs.room-icons .elementor-icon-list-item{font-size:.75rem;line-height:1.5;white-space:normal}
body.ribs-site .ribs.btn .elementor-button{font-size:.875rem;line-height:1.4;min-height:48px;padding:14px 22px}
body.ribs-site .ribs.btn.small .elementor-button{font-size:.8125rem;min-height:44px;padding:12px 16px}
body.ribs-site .ribs.btn.link .elementor-button{font-size:.875rem;min-height:36px;padding:7px 0}
body.ribs-site .ribs.room-carousel .elementor-swiper-button{width:44px;height:44px}
body.ribs-site .ribs.room-carousel .elementor-swiper-button:focus-visible{outline:3px solid #082d48;outline-offset:3px}
body.ribs-site .ribs.room-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px #082d480d}
body.ribs-site .ribs.service-card{padding-top:24px;padding-bottom:24px;gap:12px;border-color:#dce5df}
body.ribs-site .ribs.service-icon{width:44px;height:44px;background:#edf2ee;border:1px solid #dfe7e0;border-radius:12px;padding:10px}
body.ribs-site .ribs.service-icon img{width:22px!important;height:22px!important;object-fit:contain}
body.ribs-site .ribs.service-card h3{font-size:1.375rem!important}
body.ribs-site .ribs.service-card p{font-size:.875rem;line-height:1.7}
body.ribs-site .ribs.breakfast-copy{padding:44px 54px;gap:17px}
body.ribs-site .ribs.breakfast-copy h2{white-space:normal;max-width:23ch}
body.ribs-site .ribs.leaves-ornament{width:180px;right:-52px;opacity:.48}
body.ribs-site .ribs.mountain-ornament{opacity:.55}
body.ribs-site .ribs.breakfast-gallery{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:22px;align-items:center}
body.ribs-site .ribs.breakfast-gallery>.photo{overflow:hidden;border-radius:10px}
body.ribs-site .ribs.breakfast-gallery>.photo img{height:260px;object-fit:cover}
body.ribs-site .ribs.breakfast-gallery>.photo:first-child img{height:310px}
body.ribs-site .ribs.destination-card{border-radius:10px;overflow:hidden}
body.ribs-site .ribs.destination-copy h3{font-size:1.25rem!important;line-height:1.3!important}
body.ribs-site .ribs.destination-copy p{font-size:.9375rem;line-height:1.6}
body.ribs-site .ribs.rating-note{font-size:.6875rem;line-height:1.6}
body.ribs-site .ribs.amenity p{font-size:.875rem}
/* Reviews retain the evidence, while giving the quotes less visual weight. */
body.ribs-site .ribs.booking-summary{padding:24px 28px;border:1px solid #dfe6e6;box-shadow:none}
body.ribs-site .ribs.booking-score-number{font-size:2.25rem;line-height:1.1}
body.ribs-site .ribs.booking-card{padding:25px;gap:20px;border:1px solid #e1e7e5;box-shadow:none;background:linear-gradient(145deg,#fff,#fcfdfa)}
body.ribs-site .ribs.booking-quote{font-size:1.25rem;line-height:1.55;letter-spacing:-.015em}
body.ribs-site .ribs.review-author{font-size:.875rem}
body.ribs-site .ribs.review-date,body.ribs-site .ribs.booking-disclosure{font-size:.6875rem;line-height:1.65}
/* Editorial blog composition: one feature and two compact stories. */
body.ribs-site .journal .ribs-post-grid{grid-template-columns:1.08fr 1fr;gap:22px 30px;align-items:stretch}
body.ribs-site .journal .ribs-post-card{border:1px solid #e0e6e3;border-radius:10px;box-shadow:none}
body.ribs-site .journal .ribs-post-card:first-child{grid-row:span 2}
body.ribs-site .journal .ribs-post-card:first-child img{height:300px}
body.ribs-site .journal .ribs-post-card:not(:first-child){display:grid;grid-template-columns:minmax(130px,.7fr) minmax(0,1.3fr);align-items:stretch}
body.ribs-site .journal .ribs-post-card:not(:first-child)>a{height:100%}
body.ribs-site .journal .ribs-post-card:not(:first-child) img{height:100%;min-height:200px}
body.ribs-site .ribs-post-info{padding:24px}
body.ribs-site .ribs-post-info h3{font-size:1.5rem!important;line-height:1.3!important;margin-top:9px!important;margin-bottom:12px!important}
body.ribs-site .journal .ribs-post-card:not(:first-child) .ribs-post-info{padding:22px}
body.ribs-site .journal .ribs-post-card:not(:first-child) h3{font-size:1.25rem!important}
body.ribs-site .ribs-post-info p{font-size:.9375rem;line-height:1.65}
body.ribs-site .ribs-post-read{font-size:.875rem;min-height:36px;padding-top:9px;padding-bottom:5px}
body.ribs-site .ribs-featured-article h3{font-size:1.5rem!important;line-height:1.25!important}
/* Long-form reading and persistent UI no longer compete for the same space. */
body.ribs-site .ribs.article-paper{padding:40px;gap:25px}
body.ribs-site .ribs.article-paper .article-body{font-size:1.0625rem;line-height:1.85}
body.ribs-site .ribs.article-paper .article-body h2{font-size:1.875rem!important;line-height:1.3!important;margin-top:32px;margin-bottom:16px}
body.ribs-site .ribs.article-paper .article-body>.elementor-widget-container>p:first-of-type{font-size:1.125rem;line-height:1.8}
body.ribs-site .ribs.article-paper p,body.ribs-site .ribs.article-paper li{max-width:67ch}
body.ribs-site .ribs.premium-aside,body.ribs-site .ribs.article-aside{top:100px}
body.ribs-site .ribs-toc h3{font-size:1.375rem!important;line-height:1.3!important}
body.ribs-site .ribs-toc li{font-size:.875rem;line-height:1.65}
body.ribs-site .ribs-toc a{display:inline-block;padding:4px 0}
body.ribs-site .ribs.article-stay-card h3{font-size:1.5rem!important}
body.ribs-site .ribs.reference-cta h2{font-size:2rem!important;line-height:1.25!important}
body.ribs-site .ribs.reference-cta .cta-copy p{font-size:1rem;line-height:1.7}
body.ribs-site .ribs.reference-footer .footer-bottom .micro{font-size:.8125rem}
body.ribs-site .ribs.footer-contact-text{font-size:.9375rem;line-height:1.65}
body.ribs-site .ribs-reading-progress{position:absolute;bottom:0;left:0;width:100%;height:2px;background:#e4ebed;pointer-events:none}
body.ribs-site .ribs-reading-progress>span{display:block;height:100%;width:0;background:#0078b6}
body.ribs-site :is(h2,h3)[id],body.ribs-site [id^=ribs-]{scroll-margin-top:102px}
@media(max-width:1100px){
 body.ribs-site .ribs-nav-links a{font-size:.9375rem;padding:12px}
 body.ribs-site .ribs-nav-toggle{font-size:.875rem;min-height:44px}
 body.ribs-site .journal .ribs-post-grid{grid-template-columns:1fr 1fr}
 body.ribs-site .journal .ribs-post-card:first-child{grid-column:1/-1;grid-row:auto;display:grid;grid-template-columns:1fr 1fr}
 body.ribs-site .journal .ribs-post-card:first-child img{height:100%;min-height:260px}
 body.ribs-site .journal .ribs-post-card:not(:first-child){display:block}
 body.ribs-site .journal .ribs-post-card:not(:first-child) img{height:210px;min-height:0}
 body.ribs-site .ribs.breakfast-copy{padding:34px;gap:16px}
 body.ribs-site .ribs.service-grid{gap:12px 22px}
}
@media(max-width:900px){body.ribs-site .ribs.hero-copy{max-width:580px}body.ribs-site .ribs.premium-aside,body.ribs-site .ribs.article-aside{position:static}body.ribs-site .ribs.article-paper{padding:30px}}
@media(max-width:640px){
 body.ribs-site{--ribs-type-display:2.25rem;--ribs-type-h1:2.125rem;--ribs-type-h2:1.75rem;--ribs-type-h3:1.375rem}
 body.ribs-site .ribs.site-header,body.ribs-site .ribs.header-inner{height:64px;min-height:64px}
 body.ribs-site .header-inner .ribs.logo{width:90px;max-width:90px;flex-basis:90px;height:70px;transform:translateY(8px)}
 body.ribs-site .header-inner .ribs.logo img{width:90px!important;height:70px!important}
 body.ribs-site .ribs-header-shell.is-scrolled .header-inner .ribs.logo{width:78px;max-width:78px;flex-basis:78px;height:60px;transform:none}
 body.ribs-site .ribs-header-shell.is-scrolled .header-inner .ribs.logo img{width:78px!important;height:60px!important}
 body.ribs-site .ribs.section{padding:44px 20px}
 body.ribs-site .ribs.hero{min-height:510px;padding-top:50px;padding-bottom:38px}
 body.ribs-site .ribs.hero-copy{max-width:100%;gap:18px}
 body.ribs-site .ribs.hero-subtitle{font-size:1rem;line-height:1.65}
 body.ribs-site .ribs.photo-hero{min-height:350px;padding-top:42px;padding-bottom:34px}
 body.ribs-site .ribs.photo-hero h1{font-size:2.125rem!important}
 body.ribs-site .ribs.article-cover{min-height:390px;padding-top:42px;padding-bottom:36px}
 body.ribs-site .ribs.article-cover h1{font-size:2rem!important}
 body.ribs-site .ribs.proof{padding:24px 20px}
 body.ribs-site .ribs.amenity p{font-size:.8125rem}
 body.ribs-site .ribs.card-body{padding:22px}
 body.ribs-site .ribs.card-body h3{font-size:1.375rem!important}
 body.ribs-site .ribs.breakfast,body.ribs-site .ribs.location-section{padding:0}
 body.ribs-site .ribs.breakfast-copy{padding:36px 20px;gap:17px}
 body.ribs-site .ribs.breakfast-copy h2{white-space:normal;max-width:22ch}
 body.ribs-site .ribs.leaves-ornament{width:145px;right:-48px;opacity:.38}
 body.ribs-site .ribs.breakfast-gallery{grid-template-columns:1fr 1fr;gap:14px}
 body.ribs-site .ribs.breakfast-gallery>.photo:first-child{grid-column:1/-1}
 body.ribs-site .ribs.breakfast-gallery>.photo img{height:180px}
 body.ribs-site .ribs.breakfast-gallery>.photo:first-child img{height:260px}
 body.ribs-site .ribs.service-card h3{font-size:1.25rem!important}
 body.ribs-site .ribs.booking-summary{padding:21px}
 body.ribs-site .ribs.booking-card{padding:23px;gap:18px}
 body.ribs-site .ribs.booking-quote{font-size:1.1875rem;line-height:1.6}
 body.ribs-site .journal .ribs-post-grid{grid-template-columns:1fr;gap:22px}
 body.ribs-site .journal .ribs-post-card:first-child{grid-column:auto;display:block}
 body.ribs-site .journal .ribs-post-card:first-child img,body.ribs-site .journal .ribs-post-card:not(:first-child) img{height:230px;min-height:0}
 body.ribs-site .ribs-post-info h3,body.ribs-site .journal .ribs-post-card:not(:first-child) h3{font-size:1.375rem!important}
 body.ribs-site .ribs-featured-article h3{font-size:1.5rem!important}
 body.ribs-site .ribs.article-paper{padding:25px 21px}
 body.ribs-site .ribs.article-paper .article-body{font-size:1rem;line-height:1.85}
 body.ribs-site .ribs.article-paper .article-body h2{font-size:1.625rem!important}
 body.ribs-site .ribs.reference-cta{padding:28px 20px}
 body.ribs-site .ribs.reference-cta h2{font-size:1.75rem!important}
 body.ribs-site .ribs.cta-whatsapp-button .elementor-button{font-size:.875rem}
 body.ribs-site :is(h2,h3)[id],body.ribs-site [id^=ribs-]{scroll-margin-top:86px}
}
@media(prefers-reduced-motion:reduce){body.ribs-site .header-inner .ribs.logo,body.ribs-site .header-inner .ribs.logo img{transition:none}}
/* 1.4: the shortcode's inner wrapper must fill the cover, too. */
body.ribs-site .ribs.article-cover{overflow:hidden}
body.ribs-site .ribs.article-cover-image,
body.ribs-site .ribs.article-cover-image>.elementor-widget-container,
body.ribs-site .ribs.article-cover-image .elementor-shortcode,
body.ribs-site .ribs.article-cover-image .ribs-article-cover-media,
body.ribs-site .ribs.article-cover-image picture{width:100%;height:100%;min-height:0;display:block;margin:0;padding:0}
body.ribs-site .ribs.article-cover-image .ribs-article-cover-media{position:relative}
body.ribs-site .ribs.article-cover-image img{position:absolute;inset:0;display:block;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;object-position:var(--ribs-cover-desktop,50% 55%)}
body.ribs-site .ribs.leaves-ornament{width:205px;opacity:.7}
body.ribs-site .ribs.mountain-ornament{opacity:.8}
body.ribs-site .ribs.reference-cta{background-position:center 70%;background-size:cover}
body.ribs-site .ribs.reference-cta:before{background:linear-gradient(90deg,rgba(0,47,75,.77),rgba(0,55,85,.65),rgba(0,39,65,.77))}
@media(max-width:640px){body.ribs-site .ribs.article-cover-image img{object-position:var(--ribs-cover-mobile,50% 50%)}body.ribs-site .ribs.leaves-ornament{width:150px;opacity:.5}}
