:root { --ink:#253d38; --accent:#9a7445; --paper:#faf8f4; }
.rooms-preview { background:var(--paper); color:#343a37; font-family:Arial,sans-serif; }
a { color:var(--ink); }
a:focus-visible, summary:focus-visible { outline:3px solid #9a7445; outline-offset:4px; }
.grid-container { max-width:78rem; }
.preview-notice { background:#eae4d9; padding:.5rem 1rem; text-align:center; font-size:.75rem; }
.preview-notice a { margin-left:1rem; text-decoration:underline; }
.site-header { background:#fff; border-bottom:1px solid #e9e5dc; }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding-top:1.25rem; padding-bottom:1.25rem; }
.hotel-brand { font:1.45rem Georgia,serif; white-space:nowrap; }
.site-header .menu { align-items:center; flex-wrap:wrap; gap:.1rem; font-size:.85rem; }
.site-header .menu a { padding:.7rem .6rem; }
.site-header [aria-current] { box-shadow:inset 0 -2px var(--accent); }
.language-menu { position:relative; padding:.7rem .6rem; }
.language-menu summary { cursor:pointer; }
.language-menu ul { position:absolute; right:0; top:100%; z-index:5; background:white; box-shadow:0 8px 30px #0002; list-style:none; margin:0; min-width:10rem; padding:.5rem; }
.rooms-hero { max-height:330px; overflow:hidden; background:#e9e3d8; }
.rooms-hero img { width:100%; height:330px; object-fit:cover; }
.booking-strip { background:#fff; border-bottom:1px solid #e9e5dc; }
.booking-panel { padding-top:1.5rem; padding-bottom:1rem; }
.booking-panel form { align-items:end; }
.booking-panel label { color:#4c5650; font-size:.75rem; font-weight:bold; }
.booking-panel input,.booking-panel select { margin-top:.4rem; margin-bottom:.5rem; height:2.8rem; border:1px solid #d9ddd8; box-shadow:none; border-radius:3px; background:#fff; font-size:.85rem; }
.booking-panel .button { background:var(--ink); color:white; font-weight:bold; border:0; }
.booking-label-icon { width:15px; height:15px; vertical-align:middle; margin-right:.3rem; color:var(--accent); }
.page-intro { padding:3.5rem 0 2.5rem; max-width:64rem; }
.eyebrow { color:#7c664b; font-size:.72rem; text-transform:uppercase; letter-spacing:.18em; margin-bottom:.8rem; }
h1,h2,h3 { font-family:Georgia,serif; color:var(--ink); font-weight:normal; }
h1 { font-size:clamp(2rem,3vw,3rem); line-height:1.15; margin:0; }
.rooms-layout { padding-bottom:4rem; }
.room-story { padding-right:2rem; }
.room-story p,.room-story li { font-size:1rem; line-height:1.8; color:#5a605a; }
.room-story h2 { font-size:1.6rem; line-height:1.3; margin:0 0 1rem; }
.room-story h3 { font-size:1.3rem; margin-top:1.6rem; }
.room-card { border:1px solid #e3ded4; border-radius:5px; background:#fff; margin-bottom:1.75rem; height:calc(100% - 1.75rem); box-shadow:0 3px 15px #27352f06; }
.room-card .room-photo { display:block; background:#e8e3da; overflow:hidden; }
.room-card img { display:block; width:100%; height:auto; }
.room-card .card-section { padding:1.4rem; }
.room-card h2 { font-size:1.5rem; margin:0 0 .65rem; }
.room-card p { font-size:.85rem; color:#687069; line-height:1.6; }
.room-link { font-size:.8rem; font-weight:bold; border-bottom:1px solid #b69c77; padding-bottom:.25rem; display:inline-block; }
.room-link span { margin-left:.6rem; }
.room-card a:hover { color:#856239; }
.photo-placeholder { min-height:12rem; display:grid; place-items:center; font-family:Georgia,serif; }
.preview-footer { background:var(--ink); color:#fff; padding:2rem 0; }
.preview-footer .grid-container { display:flex; flex-wrap:wrap; gap:1rem 2rem; align-items:center; }
.preview-footer strong { font:1.25rem Georgia,serif; margin-right:auto; }
.preview-footer a { color:#eee7dc; font-size:.85rem; }
@media(max-width:1023px) { .header-inner { flex-direction:column; align-items:flex-start; gap:.6rem; } .room-story { padding-right:0; margin-bottom:2rem; } .rooms-hero img { height:240px; } }
@media(max-width:639px) { .site-header .menu { gap:0; } .site-header .menu a { padding:.6rem .5rem; } .page-intro { padding:2rem 0; } .preview-notice a { display:block; margin:0; } .rooms-hero img { height:180px; } .booking-panel { padding-top:1rem; } }
.room-review { margin-top:2.5rem; padding:1.75rem; background:#f0ebe2; border-top:2px solid #aa8961; border-radius:0 0 4px 4px; }
.room-review .eyebrow { margin-bottom:.75rem; }
.review-quote { display:block; height:2.6rem; font:4rem/1 Georgia,serif; color:#9a7445; }
.room-review blockquote { border:0; margin:0 0 1.25rem; padding:0; }
.room-review blockquote p { font:italic 1.1rem/1.7 Georgia,serif; color:#3c4e45; }
.room-review cite { color:#6f6252; font-style:normal; font-size:.8rem; margin-top:1rem; }
.home-hero { position:relative; background:#253d38; color:#fff; isolation:isolate; }
.home-hero > picture { display:block; }
.home-hero > picture img { width:100%; height:510px; object-fit:cover; }
.home-hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,#14251edb,#14251e22); z-index:1; pointer-events:none; }
.home-hero-copy { position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; width:100%; }
.home-hero h1 { color:#fff; max-width:44rem; font-size:clamp(2rem,3.8vw,3.7rem); text-wrap:balance; }
.home-hero .eyebrow { color:#efe1c9; }
.home-hero .hero-button { margin-top:1.5rem; margin-bottom:0; background:#f5eee3; color:#253d38; border-radius:3px; padding:1rem 1.5rem; font-weight:bold; }
.home-discover { padding:3.5rem 0 1.5rem; }
.section-heading { display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center; margin-bottom:1.75rem; }
.section-heading h2 { font-size:2rem; margin:0; }
.home-cards h3 { font-size:1.25rem; margin:0; }
.home-cards .card-section { padding:1rem; }
.home-welcome { border-top:1px solid #e3ded4; padding-top:3rem; padding-bottom:4rem; }
.home-aside .room-review { margin-top:0; }
.home-contact { padding:2rem 0; }
.home-contact h2 { font-size:1.6rem; }
.home-contact p { color:#5a605a; }
@media(max-width:639px) { .home-hero > picture img { height:380px; } .home-hero h1 { font-size:2rem; } .home-discover { padding-top:2rem; } .home-welcome { padding-top:2rem; } }
.hotel-page-layout { padding-bottom:4rem; }
.hotel-section-menu { background:#f0ebe2; border:1px solid #e3ded4; border-radius:4px; overflow:hidden; }
.hotel-section-menu a { display:flex; justify-content:space-between; gap:1rem; padding:1rem; font-size:.9rem; border-bottom:1px solid #e3ded4; }
.hotel-section-menu li:last-child a { border:0; }
.hotel-section-menu a[aria-current] { background:#253d38; color:white; }
.hotel-section-menu a:hover { background:#e4ddcf; color:#253d38; }
.hotel-page-sidebar .room-review { padding:1.25rem; }
.hotel-page-sidebar .room-review blockquote p { font-size:1rem; }
.hotel-page-content { padding-right:0; }
.hotel-page-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-bottom:2rem; }
.hotel-page-gallery figure { margin:0; }
.hotel-page-gallery figure:first-child { grid-column:1/-1; }
.hotel-page-gallery img { width:100%; height:auto; border-radius:4px; display:block; }
.hotel-page-body iframe { max-width:100%; border-radius:4px; }
.hotel-page-cta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem; margin-top:2.5rem; padding:1.5rem; background:#f0ebe2; border-radius:4px; }
.hotel-page-cta .eyebrow { margin-bottom:.5rem; }
.hotel-page-cta h2 { margin:0; font-size:1.7rem; }
.hotel-page-cta .button { margin:0; background:#253d38; border-radius:3px; }
@media(max-width:1023px) { .hotel-page-sidebar { margin-bottom:2rem; } .hotel-page-sidebar .room-review { display:none; } .hotel-section-menu { flex-direction:row; flex-wrap:wrap; } .hotel-section-menu li { flex:1 0 45%; } }
.room-detail-layout { padding-bottom:3rem; }
.room-detail-subtitle { font-family:Georgia,serif; font-size:1.2rem!important; }
.room-detail-book { background:#253d38; border-radius:3px; margin-top:1rem; }
.room-detail-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.room-detail-gallery figure { margin:0; }
.room-detail-gallery figure:first-child { grid-column:1/-1; }
.room-detail-gallery img { width:100%; height:auto; display:block; border-radius:4px; }
.room-detail-other { padding:3rem 0; border-top:1px solid #e3ded4; }
.room-detail-other h3 { font-size:1.4rem; margin:0; }
.room-detail-layout iframe { max-width:100%; }
.location-overview { margin-bottom:3rem; }
.location-map iframe { width:100%; height:400px; border-radius:5px; }
.location-map > p { margin:.75rem 0 0; font-size:.85rem; }
.location-map > p a { text-decoration:underline; }
.location-details { background:#f0ebe2; border-radius:5px; padding:1.75rem; }
.location-details h2 { font-size:1.6rem; margin-bottom:1.25rem; }
.location-details address { font-style:normal; }
.location-details address span { display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:#75684f; margin-bottom:.25rem; }
.location-details address a { overflow-wrap:anywhere; }
.location-details .button { margin-bottom:0; margin-top:.5rem; background:#253d38; border-radius:3px; }
@media(max-width:1023px) { .location-details { margin-top:1.5rem; } .location-map iframe { height:330px; } }
.gallery-intro { margin-top:1.5rem; max-width:52rem; padding:0; }
.photo-gallery { padding-bottom:3rem; }
.gallery-photo { margin:0 0 1.75rem; }
.gallery-photo a { display:block; position:relative; background:#e9e3d8; border-radius:4px; overflow:hidden; }
.gallery-photo img { width:100%; height:auto; display:block; }
.gallery-enlarge { position:absolute; right:.75rem; bottom:.75rem; background:#253d38ed; color:#fff; border-radius:50%; width:2rem; height:2rem; text-align:center; line-height:2rem; }
.gallery-photo figcaption { margin-top:.75rem; font:1.1rem Georgia,serif; color:#253d38; }
.gallery-dialog { padding:3.5rem 1rem 1rem; border:0; border-radius:5px; background:#faf8f4; width:min(1100px,95vw); max-width:95vw; max-height:95vh; }
.gallery-dialog::backdrop { background:#102018dc; }
.gallery-dialog-stage { display:flex; align-items:center; justify-content:center; gap:.75rem; }
.gallery-dialog-stage img { display:block; max-height:72vh; max-width:calc(100% - 6rem); width:auto; height:auto; object-fit:contain; }
.gallery-dialog button { background:#253d38; color:white; border-radius:50%; width:2.5rem; height:2.5rem; flex-shrink:0; cursor:pointer; }
.gallery-close { position:absolute; right:1rem; top:.5rem; font-size:1.6rem; }
#gallery-dialog-caption { text-align:center; margin:1rem 0 0; font-size:.85rem; }
.gallery-empty { padding-bottom:3rem; }
.offers-layout { padding-bottom:4rem; }
.offers-intro .hotel-section-menu { margin-top:2rem; }
.offer-card { border:1px solid #e3ded4; border-radius:5px; margin-bottom:1.5rem; }
.offer-card h2 { font-size:1.5rem; }
.offer-card .card-section { padding:1.5rem; }
.offer-photo { background:#f0ebe2; display:flex; align-items:center; }
.offer-photo img { width:100%; height:auto; }
.offer-price { margin:1rem 0; }
.offer-price strong { display:block; font:1.8rem Georgia,serif; color:#253d38; }
.offer-price span { font-size:.8rem; color:#656a63; }
.offer-card .button,.offers-empty .button { background:#253d38; border-radius:3px; margin-bottom:0; }
.offers-empty { background:#f0ebe2; border-radius:5px; padding:2rem; }
.offers-empty h2 { font-size:2rem; }
@media(max-width:1023px) { .offers-intro { margin-bottom:2rem; } }
.contact-layout { padding-bottom:3rem; }
.contact-message h2 { font-size:2rem; }
.contact-message input,.contact-message textarea { border:1px solid #d9ddd8; border-radius:3px; background:white; box-shadow:none; }
.contact-message label { font-size:.85rem; color:#4c5650; margin-bottom:.4rem; }
.contact-message textarea { min-height:180px; }
.contact-submit { background:#253d38; border-radius:3px; }
.contact-required { font-size:.75rem; color:#687069; margin-top:1rem; }
.contact-location { padding-bottom:3rem; }
@media(max-width:1023px) { .contact-message { margin-top:2rem; } .g-recaptcha { max-width:100%; overflow-x:auto; } }
.reviews-grid { align-items:stretch; }
.review-card { height:calc(100% - 1.5rem); margin-bottom:1.5rem; padding:1.75rem; background:#fff; border:1px solid #e3ded4; border-radius:5px; }
.review-card h2 { font-size:1.35rem; line-height:1.4; margin-bottom:1rem; }
.review-card blockquote { margin:0; border:0; padding:0; }
.review-card blockquote p { color:#5a605a; font:1rem/1.8 Georgia,serif; overflow-wrap:anywhere; }
.review-card cite { font-size:.8rem; color:#7c664b; margin-top:1rem; }
.reviews-cta { margin-bottom:3rem; }
.reviews-empty { padding-bottom:2rem; }
.blog-card { border:1px solid #e3ded4; border-radius:5px; height:calc(100% - 1.5rem); margin-bottom:1.5rem; }
.blog-card .card-section { padding:1.5rem; }
.blog-card h2 { font-size:1.4rem; line-height:1.35; }
.blog-card p { font-size:.9rem; color:#5a605a; line-height:1.7; }
.blog-photo img { width:100%; height:auto; display:block; }
.blog-card .blog-subtitle { color:#7c664b; }
.blog-section-title { font-size:1.7rem; margin-bottom:1.5rem; }
.blog-archive { padding-bottom:3rem; }
.blog-archive summary { cursor:pointer; font:1.5rem Georgia,serif; color:#253d38; padding:1rem 0 1.5rem; }
.article-hotel { margin-top:1.5rem; }
.article-date { font-size:.85rem; color:#75684f; margin-top:1rem; }
.article-layout { padding-bottom:4rem; }
.article-body { padding-right:0; }
.article-lead-photo { display:block; width:100%; height:auto; margin-bottom:2rem; border-radius:4px; }
.article-inline-photo { max-width:45%; height:auto; float:left; margin:0 1.5rem 1rem 0; border-radius:4px; }
.article-text::after { content:""; display:block; clear:both; }
.article-body iframe,.article-body img { max-width:100%; }
@media(max-width:1023px) { .article-layout aside { margin-top:2rem; } }
.site-header { position:relative; z-index:10; }
.header-inner { flex-wrap:wrap; }
.header-dropdown { position:relative; padding:.7rem .6rem; font-size:.85rem; }
.header-dropdown summary { cursor:pointer; color:#253d38; }
.header-dropdown.current-section > summary { text-decoration:underline; text-underline-offset:.5rem; text-decoration-color:#9a7445; }
.site-header .header-submenu { position:absolute; top:100%; left:0; z-index:20; display:block; margin:0; padding:.5rem; min-width:14rem; max-width:20rem; max-height:65vh; overflow-y:auto; list-style:none; background:#fff; border:1px solid #e3ded4; border-radius:4px; box-shadow:0 8px 30px #0002; }
.site-header .header-submenu a { display:block; line-height:1.4; padding:.65rem .75rem; }
.site-header .header-submenu a:hover { background:#f0ebe2; }
.site-header .language-menu { padding:.7rem .6rem; }
.site-header .language-menu .header-submenu { left:auto; right:0; min-width:10rem; }
@media(max-width:1023px) {
 .public-main-menu > li:has(> details[open]) { flex-basis:100%; }
 .site-header .header-submenu,.site-header .language-menu .header-submenu { position:static; width:100%; max-width:none; min-width:0; margin-top:.75rem; box-shadow:none; }
 .header-dropdown { padding:.6rem .5rem; }
}
.preview-footer .footer-container { display:block; }
.footer-columns { padding-bottom:2rem; }
.footer-columns section { margin-bottom:1.5rem; }
.preview-footer h2 { color:#fff; font-size:1.2rem; margin-bottom:1.25rem; }
.preview-footer .footer-brand { font-size:1.6rem; }
.preview-footer address { font-style:normal; font-size:.85rem; line-height:1.7; color:#e0e6df; margin-bottom:.6rem; }
.footer-details { margin:0; padding:0; list-style:none; color:#e0e6df; font-size:.85rem; line-height:1.9; }
.footer-details li { overflow-wrap:anywhere; }
.footer-details a { text-decoration:underline; text-underline-offset:3px; }
.preview-footer .footer-contact { background:#f5eee3; color:#253d38; border-radius:3px; }
.preview-footer .footer-reservation { background:transparent; color:#fff; border:1px solid #9bafa2; border-radius:3px; }
.footer-useful,.footer-social { display:flex; gap:.5rem 1rem; flex-wrap:wrap; margin-top:1rem; }
.footer-bottom { border-top:1px solid #60766b; padding-top:1.25rem; display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; font-size:.8rem; }
.footer-panels { background:#f0ebe2; padding:2rem 0; }
.footer-panels h2 { font-size:1.5rem; }
.footer-newsletter p { font-size:.85rem; line-height:1.6; color:#5a605a; }
.footer-promo { text-align:center; }
.footer-promo a { display:flex; flex-direction:column; align-items:center; gap:.8rem; padding:1rem; color:#253d38; border-radius:4px; }
.footer-promo .footer-promo-icon { display:flex; align-items:center; justify-content:center; width:88px; height:88px; background:#faf8f3; border:1px solid #d9d0bf; border-radius:50%; color:#80613a; }
.footer-promo a:hover .footer-promo-icon,.footer-promo a:focus-visible .footer-promo-icon { background:#253d38; border-color:#253d38; color:#fff; }
.footer-promo a:focus-visible { outline:2px solid #80613a; outline-offset:3px; }
.footer-promo span { font-size:.85rem; }
@media(max-width:639px) { .footer-panels .cell { margin-bottom:1.5rem; } }

.room-cards-track { display:flex; gap:1.5rem; overflow-x:auto; scroll-snap-type:x mandatory; padding:4px 4px 1rem; }
.room-cards-track > .cell { flex:0 0 calc((100% - 3rem)/3); min-width:0; scroll-snap-align:start; }
.room-cards-track .room-card { height:100%; margin-bottom:0; }
.room-cards-controls { display:flex; justify-content:flex-end; gap:.5rem; margin-bottom:.8rem; }
.room-cards-controls[hidden] { display:none; }
.room-cards-controls button { width:44px; height:44px; background:#253d38; color:#fff; border-radius:3px; cursor:pointer; font-size:1.3rem; }
.room-cards-controls button:disabled { opacity:.35; cursor:default; }
.room-cards-controls button:focus-visible,.room-cards-track:focus-visible { outline:2px solid #80613a; outline-offset:3px; }
@media(max-width:1023px) { .room-cards-track > .cell { flex-basis:calc((100% - 1.5rem)/2); } }
@media(max-width:639px) { .room-cards-track > .cell { flex-basis:85%; } }

.room-reviews-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; margin-top:2rem; }
.room-reviews-row .room-review { margin:0; min-width:0; }
@media(max-width:639px) { .room-reviews-row { grid-template-columns:1fr; } }
.public-breadcrumbs { padding-top:.7rem; padding-bottom:.7rem; font-size:.8rem; color:#53635b; }
.public-breadcrumbs ol { display:flex; flex-wrap:wrap; gap:.4rem; margin:0; list-style:none; }
.public-breadcrumbs li + li::before { content:'/'; padding-right:.4rem; color:#80613a; }
.public-breadcrumbs a { color:#253d38; text-decoration:underline; text-underline-offset:3px; }

.room-story p a:not(.button),.room-story li a:not(.button),.article-text a:not(.button) { text-decoration:underline; text-underline-offset:.18em; text-decoration-thickness:1px; }
.room-story a:not(.button):hover,.article-text a:not(.button):hover { color:#705030; }

.sibling-navigation { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; padding-top:1rem; padding-bottom:2rem; }
.sibling-link { display:flex; flex-direction:column; align-items:flex-start; gap:.3rem; padding:.7rem 0; color:#253d38; font-size:.85rem; }
.sibling-next { align-items:flex-end; text-align:right; }
.sibling-direction { font-size:.72rem; color:#62685f; }
.sibling-link:hover > span:last-child { text-decoration:underline; text-underline-offset:.2em; }
