@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600&display=swap');
:root{--paper:#f8f6f1;--ink:#242521;--muted:#77776d;--gold:#9d7e43;--gold-light:#c3aa77;--line:#dedbd2;--dark:#232923;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.75 var(--sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,summary{ -webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}img{display:block;width:100%;object-fit:cover}svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15;letter-spacing:-.035em}h1{font-size:clamp(44px,5.2vw,78px)}h2{font-size:clamp(32px,3.4vw,49px)}h3{font-size:25px}p{color:var(--muted)}.wrap{width:min(1240px,calc(100% - 96px));margin-inline:auto}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:.23em;font-weight:650;color:var(--gold);display:block;margin-bottom:18px}.topbar{height:33px;background:var(--dark);color:#e6e6db;font-size:10px;letter-spacing:.13em}.topbar .wrap{height:100%;display:flex;justify-content:space-between;align-items:center}.topbar a{display:flex;align-items:center;gap:9px}.topbar svg{width:12px;height:12px}.topbar-right{display:flex;gap:26px;align-items:center}.site-header{height:91px;border-bottom:1px solid #ffffff20;background:var(--paper);position:sticky;top:0;z-index:40;box-shadow:0 4px 25px #24252104}.navrow{display:flex;align-items:center;justify-content:space-between;height:100%;gap:25px}.brand{display:flex;align-items:center;gap:12px}.brand img{width:53px;height:55px;object-fit:contain}.brand span{font-family:var(--serif);font-size:25px;letter-spacing:-1px;color:var(--gold)}.brand small{display:block;font:8px var(--sans);letter-spacing:.34em;margin-top:5px;color:var(--muted)}:where(.site-header) nav{display:flex;align-items:center;gap:27px}:where(.site-header) nav a{font-size:12px;position:relative;padding-block:12px}:where(.site-header) nav a:after{content:'';position:absolute;bottom:6px;left:0;height:1px;width:0;background:var(--gold);transition:width .25s}:where(.site-header) nav a:hover:after,:where(.site-header) nav a.active:after{width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:20px;background:var(--gold);color:white;border:1px solid var(--gold);padding:15px 24px;font-size:12px;font-weight:550;line-height:1.5;transition:background .25s,transform .25s;min-height:48px}.btn:hover{background:#846735;transform:translateY(-2px)}.btn svg{width:20px}.btn.outline{background:transparent;color:var(--ink);border-color:#b4aa95}.btn.outline:hover{background:#ece7dd}.btn.light{border-color:#ffffff70;color:white;background:#ffffff08}.btn.light:hover{background:#ffffff20}.text-link{display:inline-flex;align-items:center;gap:25px;font-size:12px;border-bottom:1px solid #b7ac94;padding-bottom:7px;font-weight:500}.text-link svg{width:19px}.mobile-toggle{display:none;background:none;border:0}.hero{height:620px;position:relative;color:white;isolation:isolate}.hero>img{height:100%;position:absolute;inset:0;z-index:-2;object-position:center 58%}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(17,22,17,.78),rgba(17,22,17,.32) 50%,rgba(17,22,17,.06))}.hero .wrap{height:100%;display:flex;align-items:center}.hero-copy{max-width:660px;padding-bottom:25px}.hero .eyebrow{color:#ddd0ad}.hero h1{margin-bottom:24px}.hero p{color:#f4f1e7;max-width:440px;font-size:14px;margin-bottom:32px}.hero-bottom{position:absolute;bottom:34px;right:48px;font-size:10px;letter-spacing:.16em;display:flex;align-items:center;gap:15px}.hero-bottom:before{content:'';height:1px;width:50px;background:#ffffff70}.booking-wrap{position:relative;z-index:4;margin-top:-37px}.booking{display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:center;background:#fffefa;padding:19px 24px;box-shadow:0 12px 35px #24252114;border:1px solid #e5dfd3;gap:18px}.booking-field{display:flex;align-items:center;gap:14px;min-width:0;border-right:1px solid var(--line);padding-right:18px}.booking-field svg{color:var(--gold);width:23px}.booking-field label{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.booking-field input,.booking-field select{width:100%;border:0;background:none;color:var(--ink);font-size:13px;min-height:25px;outline-offset:2px}.booking-field>div{width:100%;min-width:0}.booking-note{font-size:10px;color:var(--muted);text-align:right;margin-top:10px}.benefits{display:grid;grid-template-columns:repeat(4,1fr);padding:35px 0 45px;border-bottom:1px solid var(--line)}.benefits div{display:flex;justify-content:center;align-items:center;gap:13px;font-size:12px;border-right:1px solid var(--line)}.benefits div:last-child{border:0}.benefits svg{color:var(--gold)}.section{padding:100px 0}.intro{display:grid;grid-template-columns:1.05fr .95fr;gap:100px;align-items:center}.intro-art{position:relative;padding:0 52px 48px 0}.intro-art .main-photo{height:460px}.intro-art .small-photo{position:absolute;right:0;bottom:0;width:45%;height:240px;border:8px solid var(--paper)}.intro-art:before{content:'';position:absolute;left:-20px;top:28px;width:80%;height:90%;border:1px solid #bca77c;z-index:-1}.intro p{max-width:450px;font-size:14px}.intro .text-link{margin-top:18px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:36px}.section-heading h2{margin:0}.section-heading .eyebrow{margin-bottom:12px}.section-heading p{max-width:450px;margin:0}.rooms-section{background:linear-gradient(180deg,#eeebe3 0%,#f8f6f1 100%);position:relative}.room-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.room-image{overflow:hidden;position:relative;display:block}.room-image img{height:270px}.room-number{position:absolute;top:13px;left:13px;background:#f8f6f1e6;font-size:9px;letter-spacing:.15em;padding:5px 10px}.room-card h3{font-size:23px;margin:22px 0 10px}.room-card .room-meta{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:8px;margin-bottom:20px}.room-meta svg{width:16px;height:16px}.room-card .text-link{font-size:11px}.room-card p{font-size:13px}.amenities{background:var(--dark);color:var(--paper);position:relative;overflow:hidden}.amenities:after{content:'777';font-family:var(--serif);font-size:420px;line-height:1;position:absolute;right:-35px;bottom:-110px;color:#ffffff03;pointer-events:none}.amenities-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:65px;align-items:center;position:relative;z-index:1}.amenities-image{height:440px}.amenities h2{font-size:43px}.amenities .eyebrow{color:#c8b487}.amenity-list{display:grid;grid-template-columns:1fr 1fr;gap:24px}.amenity{display:flex;gap:15px;border-top:1px solid #ffffff20;padding-top:22px}.amenity svg{color:var(--gold-light);width:26px;height:26px}.amenity b{font-size:12px;font-weight:500}.amenity p{color:#b9bfb4;font-size:11px;margin:6px 0 0}.gallery-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:18px}.photo-button{border:0;padding:0;display:block;background:none;overflow:hidden;position:relative;width:100%}.photo-button img{height:280px}.photo-button:after{content:'↗';position:absolute;right:15px;bottom:15px;border:1px solid #ffffff80;color:white;width:33px;height:33px;display:grid;place-items:center;background:#0002}.reviews-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:48px 0;background:#eeeae1}.reviews-head{display:flex;align-items:center;justify-content:space-between;gap:35px}.reviews-head h2{font-size:33px;margin:0}.reviews-intro{font-size:13px;color:var(--muted);margin:8px 0 0}.review-score{display:flex;align-items:center;gap:18px}.review-score strong{font:44px var(--serif)}.review-score svg{color:var(--gold);fill:var(--gold);width:26px;height:26px}.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}.review-card{background:var(--paper);padding:25px}.review-card p{color:var(--ink);font-size:13px}.review-card a{font-size:12px;color:var(--gold)}.location-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:75px;align-items:center}.location-visual{height:430px;position:relative;background:#e9e6dc;overflow:hidden}.location-visual img{height:100%;filter:brightness(.83)}.location-overlay{position:absolute;bottom:25px;left:25px;color:white;font:27px var(--serif)}.place-list{margin:25px 0}.place-list a{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.place-list span{display:flex;align-items:center;gap:13px}.place-list svg{color:var(--gold);width:19px}.place-list small{color:var(--muted)}.address{font-size:12px;display:flex;align-items:start;gap:12px;margin:24px 0}.guide-section{background:#eeeae1}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:27px}.guide-card img{height:225px}.guide-category{font-size:9px;letter-spacing:.16em;color:var(--gold);display:block;margin:20px 0 10px}.guide-card h3{font-size:25px}.guide-card p{font-size:13px}.faq-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:80px}.faq-grid h2{max-width:280px}.faq details{border-bottom:1px solid var(--line);padding:19px 0}.faq details:first-child{border-top:1px solid var(--line)}summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:500;gap:20px}summary::-webkit-details-marker{display:none}summary:after{content:'+';font-size:20px;color:var(--gold);font-weight:400}details[open] summary:after{content:'−'}details p{font-size:13px;margin:15px 25px 0 0}.cta{background:linear-gradient(115deg,#a78b55,#88703e);color:white;padding:45px 0}.cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px}.cta h2{font-size:36px;max-width:650px;margin:0}.cta .btn{background:var(--paper);color:var(--ink);border:0}.footer{background:var(--dark);color:#e3e3d9;padding:62px 0 20px}.footer-grid{display:grid;grid-template-columns:1.3fr .8fr 1fr 1.4fr;gap:50px}.footer-brand{font:29px var(--serif);color:#d5be8c}.footer p{font-size:12px;color:#aeb4a8;margin:18px 0}.footer h3{font:500 12px var(--sans);letter-spacing:.04em;color:#fff;margin:0 0 20px}.footer a:not(.footer-brand){font-size:11px;display:block;color:#b9c0b3;margin:7px 0}.footer a:hover{color:#fff}.footer .contact-item{display:flex!important;align-items:start;gap:10px}.contact-item svg{width:15px;height:18px;color:#bda875}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #ffffff18;margin-top:45px;padding-top:20px;font-size:9px;color:#9da594;gap:20px}.footer-bottom div{display:flex;gap:20px}.footer-bottom a{font-size:9px!important;margin:0!important}.floating-contact{position:fixed;right:23px;bottom:23px;z-index:32;width:49px;height:49px;background:var(--dark);color:var(--gold-light);border:1px solid #b29b69;display:grid;place-items:center;border-radius:50%;box-shadow:0 4px 20px #0002}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:15px}.skip:focus{top:10px}.page-hero{height:340px;position:relative;isolation:isolate;color:white;display:flex;align-items:center}.page-hero>img{position:absolute;inset:0;height:100%;z-index:-2}.page-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#192019dd,#19201960);z-index:-1}.page-hero h1{font-size:58px;max-width:850px;margin-bottom:15px}.page-hero p{color:#ecece1;max-width:650px;font-size:14px}.breadcrumb{font-size:10px;letter-spacing:.09em;color:#ddd0b4;margin-bottom:24px}.prose{max-width:800px;margin:auto}.prose h2{font-size:35px;margin-top:45px}.prose p,.prose li{font-size:15px;color:#666b61}.prose ul{padding-left:22px}.prose .eyebrow{margin-top:30px}.prose img{max-height:460px;margin:35px 0}.detail-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:70px}.detail-photo{height:500px}.detail-panel{padding:35px;border:1px solid var(--line);background:#eeebe3;height:max-content}.detail-panel h2{font-size:30px}.detail-panel ul{list-style:none;margin:25px 0;padding:0}.detail-panel li{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0;font-size:13px}.detail-panel li svg{color:var(--gold)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.contact-box{background:#eeeae1;padding:40px}.contact-box h2{font-size:35px}.contact-box a{display:flex;align-items:center;gap:13px;margin:22px 0;font-size:15px}.map-frame{width:100%;height:390px;border:0;filter:grayscale(.6)}.all-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.all-gallery img{height:320px}.all-gallery .photo-button:first-child{grid-column:span 2}.dialog{padding:0;border:0;width:min(920px,calc(100% - 30px));max-height:90dvh;overflow:auto;background:var(--paper);box-shadow:0 20px 100px #0006;color:var(--ink)}.dialog::backdrop{background:#131a16b8;backdrop-filter:blur(7px)}.dialog-header{padding:25px 32px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--paper);z-index:3}.dialog-header h2{font-size:28px;margin:0}.icon-btn{border:1px solid var(--line);background:transparent;width:36px;height:36px;display:grid;place-items:center}.dialog-body{padding:28px 32px}.steps{display:flex;gap:20px;font-size:10px;color:var(--muted);padding-bottom:25px;border-bottom:1px solid var(--line);margin-bottom:25px}.steps .current{color:var(--gold);font-weight:700}.dialog .booking{box-shadow:none;padding:18px 0;background:none;border:0;gap:12px}.notice{font-size:12px;color:#6c624f;background:#eee8db;padding:15px 18px;border-left:2px solid var(--gold);margin:16px 0}.result-room{display:grid;grid-template-columns:120px 1fr auto;gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.result-room img{height:95px}.result-room h3{font-size:22px;margin:0 0 7px}.result-room p{font-size:11px;margin:0}.result-room .btn{padding:10px 15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label{font-size:11px;color:var(--muted);display:block}.form-grid input,.form-grid textarea{display:block;width:100%;padding:12px;background:#fffefa;border:1px solid var(--line);color:var(--ink);margin-top:6px;border-radius:0}.form-grid .full{grid-column:1/-1}.form-consent{display:flex;gap:10px;align-items:start;font-size:11px;margin:22px 0}.form-consent input{margin-top:5px}.status{font-size:13px}.error{color:#aa342e}.success-panel{padding:30px;background:#eeeae1}.success-panel h3{font-size:30px}.lightbox{width:min(1100px,calc(100% - 30px));background:#111}.lightbox img{max-height:80vh;object-fit:contain}.lightbox .icon-btn{position:absolute;right:15px;top:15px;background:var(--paper);z-index:2}.page-transition{opacity:0;transition:opacity .18s}.reveal{animation:fadeup .7s both}@keyframes fadeup{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.loading{display:flex;align-items:center;gap:12px;padding:25px;color:var(--muted);font-size:13px}.loading:before{content:'';width:17px;height:17px;border:1px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1500px){.hero{height:700px}}@media(max-width:1100px){.wrap{width:calc(100% - 56px)}:where(.site-header) nav{gap:17px}.brand span{font-size:21px}.brand img{width:40px;height:44px}.navrow{gap:15px}:where(.site-header) nav a{font-size:11px}.navrow>.btn{padding:12px 16px}.intro{gap:55px}.amenities-grid{gap:35px}.amenities h2{font-size:35px}.room-grid{gap:16px}.room-card h3{font-size:20px}.room-image img{height:230px}.footer-grid{gap:30px}.booking{gap:10px;padding:18px}.booking .btn{gap:10px;padding:15px}.location-grid{gap:40px}}
@media(max-width:800px){.wrap{width:calc(100% - 40px)}.site-header{height:76px}.navrow{gap:10px}.navrow>.btn{margin-left:auto;font-size:10px;min-height:42px;padding:10px 14px;gap:10px}.brand span{font-size:23px}.brand img{width:37px;height:42px}.brand small{font-size:7px}.mobile-toggle{display:block;padding:8px;color:var(--ink)}:where(.site-header) nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--paper);padding:20px 30px;box-shadow:0 15px 20px #0001;border-top:1px solid var(--line)}:where(.site-header) nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}:where(.site-header) nav a{font-size:15px;padding:13px;border-bottom:1px solid var(--line)}.hero{height:600px}.hero-copy{max-width:510px;padding-bottom:80px}.hero h1{font-size:53px}.hero:after{background:linear-gradient(90deg,#111b16c9,#111b1640)}.hero-bottom{right:20px;bottom:65px}.booking-wrap{margin-top:-50px}.booking{grid-template-columns:1fr 1fr;padding:20px;gap:20px}.booking-field{padding-right:10px}.booking-field:nth-child(2){border:0}.booking .btn{width:100%}.booking-note{text-align:left;font-size:9px}.benefits{padding:28px 0;gap:18px;grid-template-columns:1fr 1fr}.benefits div{justify-content:start;font-size:11px}.benefits div:nth-child(2){border:0}.section{padding:65px 0}.intro{grid-template-columns:1fr;gap:45px}.intro-art{padding-right:55px;max-width:580px}.intro-art .main-photo{height:350px}.intro-art .small-photo{height:200px}.intro-art:before{left:-10px}.intro h2{max-width:530px}.intro p{max-width:none}.room-grid{grid-template-columns:1fr 1fr;gap:35px 18px}.room-image img{height:260px}.room-card h3{font-size:24px}.section-heading{align-items:start}.section-heading .text-link{white-space:nowrap;margin-top:20px}.amenities-grid{grid-template-columns:1fr;gap:35px}.amenities-image{height:350px}.amenities h2{max-width:530px}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-grid .photo-button:first-child{grid-column:1/-1}.gallery-grid img{height:220px}.gallery-grid .photo-button:first-child img{height:300px}.reviews-head{align-items:start;flex-direction:column;gap:20px}.reviews-grid{grid-template-columns:1fr}.location-grid{grid-template-columns:1fr;gap:35px}.location-visual{height:350px}.guide-grid{gap:35px;grid-template-columns:1fr}.guide-card{display:grid;grid-template-columns:.9fr 1.1fr;gap:20px}.guide-card img{height:220px}.guide-category{margin:0 0 10px}.guide-card h3{font-size:25px}.faq-grid{grid-template-columns:1fr;gap:15px}.faq-grid h2{max-width:none}.cta h2{font-size:30px}.footer-grid{grid-template-columns:1fr 1fr;gap:35px}.footer-bottom{flex-direction:column}.page-hero{height:300px}.page-hero h1{font-size:44px}.detail-grid,.contact-grid{grid-template-columns:1fr;gap:35px}.detail-photo{height:380px}.all-gallery{grid-template-columns:1fr 1fr}.all-gallery img{height:240px}.dialog-body{padding:20px}.dialog-header{padding:20px}.dialog .booking{grid-template-columns:1fr 1fr}.result-room{grid-template-columns:85px 1fr;gap:15px}.result-room .btn{grid-column:2;justify-self:start}.result-room img{grid-row:span 2;height:115px}.form-grid{gap:15px}.floating-contact{width:44px;height:44px;right:14px;bottom:14px}}
@media(max-width:480px){.topbar{font-size:8px}.topbar-right{gap:8px}.topbar-right span{display:none}.brand{gap:6px}.brand span{font-size:20px}.hero{height:545px}.hero h1{font-size:44px;line-height:1.12}.hero p{font-size:12px;max-width:300px}.hero-copy{padding-bottom:55px}.hero-bottom{display:none}.booking{gap:17px 10px;padding:17px 12px}.booking-field{gap:7px}.booking-field svg{width:19px}.booking-field input,.booking-field select{font-size:11px}.booking-field label{font-size:9px}.booking .btn{font-size:11px;padding:13px 10px}.benefits svg{width:20px}.intro-art .main-photo{height:295px}.intro-art .small-photo{height:175px}.section-heading{gap:15px}.section-heading h2{font-size:32px}.section-heading .text-link{gap:10px;font-size:10px}.room-image img{height:205px}.room-card h3{font-size:20px}.room-card .room-meta{font-size:10px}.amenities h2{font-size:34px}.amenities-image{height:270px}.amenity-list{gap:22px 15px}.amenity{gap:10px}.amenity b{font-size:11px}.amenity svg{width:22px}.gallery-grid{gap:10px}.gallery-grid img{height:160px}.gallery-grid .photo-button:first-child img{height:240px}.location-visual{height:290px}.guide-card{display:block}.guide-card img{height:220px}.guide-category{margin-top:18px}.cta .wrap{align-items:start;flex-direction:column;gap:25px}.footer-grid{gap:30px 20px}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid>div:last-child{grid-column:1/-1}.footer p{max-width:290px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.dialog-header h2{font-size:24px}.steps{gap:14px;font-size:9px}.page-hero h1{font-size:38px}.all-gallery img{height:190px}.detail-photo{height:300px}.contact-box{padding:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.room-price{display:flex;align-items:baseline;gap:8px;margin:0 0 18px}.room-price strong{font-size:22px;font-weight:500;color:var(--gold)}.room-price span{font-size:10px;color:var(--muted)}.rate-summary{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:25px 0;padding:25px;border:1px solid var(--line)}.rate-summary span{display:block;font-size:11px;color:var(--muted)}.rate-summary b{font-weight:500;font-size:15px}.price-disclaimer{font-size:11px;max-width:720px;margin:25px 0 0}
@media(max-width:480px){.room-price{display:block}.room-price strong{display:block;font-size:21px}.room-price span{font-size:9px}.rate-summary{padding:18px;gap:15px}}

/* Hotel 777 editorial layout */
:root {
  --paper: #f8f5ee;
  --gold: #8b6b36;
  --ink: #252a24;
  --muted: #605f55;
  --line: #dbd1bd;
  --easing: cubic-bezier(.2,.7,.25,1);
}
.site-header { border-bottom: 1px solid #b79a6259; }
.hero { overflow: hidden; }
.hero::before {
  content: ''; position: absolute; inset: 25px; pointer-events: none; z-index: 0;
  border: 1px solid #fff2cd42; border-bottom: 0;
  background: linear-gradient(90deg,#e7cc93,#e7cc93) left top / 38px 2px no-repeat,
              linear-gradient(180deg,#e7cc93,#e7cc93) left top / 2px 38px no-repeat;
}
.hero-copy { position: relative; }
.hero-copy .eyebrow { display: flex; align-items: center; gap: 14px; }
.hero-copy .eyebrow::before { content: ''; width: 34px; height: 1px; background: #ddc18a; }
.hero-bottom { bottom: 53px; }
.booking { border: 1px solid #b99f71; border-top: 3px solid #a88649; }
.booking-field > svg { width: 30px; height: 30px; stroke-width: 1.25; }
.booking-note { font-size: 11px; }
.section-heading { border-bottom: 1px solid var(--line); padding-bottom: 22px; position: relative; }
.section-heading::after { content: ''; position: absolute; bottom: -1px; left: 0; width: 74px; height: 2px; background: var(--gold); }
.benefit-section { padding: 33px 0 0; }
.feature-grid, .journey-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(16px, 2vw, 26px); }
.feature-card, .journey-card { position: relative; padding: clamp(22px,3vw,38px); background: #fffcf5; min-width: 0;
  border: 1px solid #d9cbb0; border-radius: 5px;
  box-shadow: 0 5px 18px #3d2c1309;
  transition: transform .42s var(--easing), box-shadow .42s var(--easing), border-color .42s var(--easing);
}
.feature-card::after, .journey-card::after {
  content: ''; position: absolute; inset: 0 22px auto; height: 2px; pointer-events: none;
  background: linear-gradient(90deg, transparent, #b99a61, transparent);
  transform: scaleX(.35); opacity: .45;
  transition: transform .5s var(--easing), opacity .5s var(--easing);
}
.feature-card h3, .journey-card h3 { margin: 18px 0 9px; font-size: clamp(21px,2vw,28px); }
.feature-card p, .journey-card p { margin: 0; font-size: 13px; line-height: 1.7; }
.feature-icon { width: 63px; height: 63px; display: grid; place-items: center; border: 1px solid #b69b6c80; color: var(--gold); background: #f5eee0; }
.feature-icon svg { width: 34px; height: 34px; stroke-width: 1.2; transition: transform .5s var(--easing); }
.feature-index { position: absolute; top: 23px; right: 23px; font: 400 24px var(--serif); color: #8b6b3690; }
.journey-section { background: #eee8dc; }
.journey-grid, .room-features { grid-template-columns: repeat(3,minmax(0,1fr)); }
.journey-card { min-height: 266px; display: flex; flex-direction: column; align-items: flex-start; }
.journey-card .feature-icon { width: 76px; height: 76px; background: #f5eee0; color: var(--gold); border: 1px solid #d5c29c; }
.journey-card .feature-icon svg { width: 42px; height: 42px; }
.journey-card p { margin-bottom: 22px; }
.journey-card .text-link { margin-top: auto; }
.room-card, .guide-card { border: 1px solid var(--line); background: #fffcf5; overflow: hidden; transition: box-shadow .4s var(--easing), border-color .4s var(--easing); }
.room-card { padding: 9px 9px 20px; }
.room-card > :not(.room-image) { margin-inline: 13px; }
.room-card .room-image { position: relative; isolation: isolate; }
.room-card .room-image::after { content: ''; position: absolute; inset: 8px; border: 1px solid #fff2cf78; pointer-events: none; }
.room-card h3 { font-size: clamp(18px,1.6vw,24px); }
.room-card .room-price { border-top: 1px solid var(--line); padding-top: 12px; }
.guide-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.guide-card { display: flex; flex-direction: column; gap: 0; }
.guide-card > a { overflow: hidden; }
.guide-card > div { padding: 20px 23px 24px; display: flex; flex-direction: column; align-items: flex-start; flex: 1; }
.guide-card .text-link { margin-top: auto; }
.guide-card h3 { font-size: clamp(22px,2vw,28px); }
.guide-card img { filter: none; }
.amenities .amenity svg { width: 38px; height: 38px; stroke-width: 1.2; }
.amenities .amenity { border-top: 1px solid #c6ac7660; padding-top: 19px; }
.editorial-links { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 25px; }
.prose ul { padding-left: 22px; }
.prose li { margin: 8px 0; }
.prose p a:not(.text-link), .prose li a:not(.text-link) { text-decoration: underline; text-underline-offset: .2em; color: var(--gold); }
[hidden] { display: none !important; }
@media (hover: hover) {
  .feature-card:hover, .journey-card:hover, .journey-card:focus-within {
    transform: translateY(-5px); border-color: #b99a61; box-shadow: 0 16px 34px #3d2c1317;
  }
  .feature-card:hover::after, .journey-card:hover::after, .journey-card:focus-within::after {
    transform: scaleX(1); opacity: 1;
  }
  .feature-card:hover svg, .journey-card:hover svg { transform: translateY(-2px) scale(1.08); }
  .room-card:hover, .guide-card:hover { border-color: #ad925b; box-shadow: 0 14px 38px #261e1018; }
}
 .footer-bottom .footer-credit {
  color: #f1dfb3; font-size: 16px; font-weight: 700;
  letter-spacing: -.035em; white-space: nowrap; align-self: flex-start;
}
.footer-credit span { color: #d1ac66; }
.review-stars { color: var(--gold); letter-spacing: .1em; }
.review-meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.review-meta small { color: var(--muted); }
.review-card p { overflow-wrap: anywhere; }
.review-attribution { grid-column: 1 / -1; font-size: 12px; margin: 0; }
@media (prefers-reduced-motion: reduce) {
  .feature-card, .journey-card, .feature-card::after, .journey-card::after, .feature-icon svg {
    transition: none !important; transform: none !important;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .entry-motion { animation: editorial-enter .68s var(--easing) both; animation-delay: var(--entry-delay,0ms); }
  @keyframes editorial-enter { from { opacity: .5; translate: 0 22px; } to { opacity: 1; translate: 0 0; } }
}
@media (max-width: 900px) {
  .stay-features, .guide-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .journey-card { padding: 22px; }
}
@media (max-width: 620px) {
  .hero::before { inset: 12px; }
  .feature-card { padding: 17px; }
  .feature-index { top: 15px; right: 14px; font-size: 20px; }
  .feature-icon { width: 52px; height: 52px; }
  .feature-icon svg { width: 28px; height: 28px; }
  .journey-grid, .room-features, .guide-grid { grid-template-columns: minmax(0,1fr); }
  .journey-card { min-height: 0; }
  .booking-field > svg { width: 22px; height: 22px; }
  .room-card { padding: 6px 6px 16px; }
  .room-card > :not(.room-image) { margin-inline: 6px; }
  .room-card h3 { overflow-wrap: anywhere; }
  .section-heading { flex-wrap: wrap; }
  .section-heading > .text-link { margin-top: 0; }
}

/* Google Maps guest reviews */
.reviews-section {
  padding: clamp(54px, 6vw, 92px) 0;
  background: radial-gradient(ellipse at top right, #f8f1e3 0, transparent 55%), #ede8df;
}
.reviews-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(310px, 420px);
  align-items: center;
  gap: clamp(24px, 5vw, 66px);
}
.reviews-copy { border-left: 2px solid #b99a61; padding-left: clamp(18px, 3vw, 34px); }
.reviews-head h2 { font-size: clamp(32px, 4vw, 54px); }
.reviews-intro { margin-top: 12px; max-width: 48ch; font-size: 15px; line-height: 1.7; }
.review-panel {
  border: 1px solid #d9cbb0; border-top: 2px solid #ad8c4e; border-radius: 6px;
  background: #fffcf5; padding: clamp(18px, 2.7vw, 31px); box-shadow: 0 10px 26px #3d2c1310;
}
.review-source { display: block; font-weight: 700; font-size: 15px; color: var(--ink); }
.review-panel [data-review-score] { margin: 11px 0 16px; }
.review-score { flex-wrap: wrap; gap: 8px 20px; align-items: center; }
.review-number { white-space: nowrap; }
.review-number strong { font: clamp(44px, 5vw, 64px)/1 var(--serif); }
.review-number > span { font-size: 14px; color: var(--muted); }
.review-score-info { display: grid; gap: 2px; }
.review-score-info small { color: var(--muted); font-size: 13px; }
.review-score-stars { position: relative; width: max-content; color: #d9cebb; white-space: nowrap; font-size: 20px; letter-spacing: .08em; }
.review-score-stars > span { position: absolute; inset: 0 auto 0 0; overflow: hidden; color: #936f32; }
.review-maps-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 13px; color: #775725; font-weight: 700; font-size: 13px; }
.review-maps-link svg { width: 17px; height: 17px; }
.review-maps-link:hover, .review-permalink:hover { text-decoration: underline; text-underline-offset: 4px; }
.reviews-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 26px); margin-top: clamp(22px, 3vw, 38px); }
.review-card {
  display: flex; flex-direction: column; min-width: 0; padding: clamp(18px, 2.3vw, 29px);
  border: 1px solid #d9cbb0; border-radius: 6px; background: #fffcf5; box-shadow: 0 8px 20px #3d2c130b;
}
.review-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.review-card .review-meta { margin: 0; }
.review-quote { font: 56px/.72 var(--serif); color: #b39662; }
.review-card .review-body { flex: 1; margin: 14px 0 20px; font-size: 14px; line-height: 1.75; white-space: pre-line; }
.review-author { display: flex; align-items: center; gap: 10px; padding-top: 14px; border-top: 1px solid #e9dfce; overflow-wrap: anywhere; }
.review-avatar { display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 36px; border-radius: 50%; background: #f2e7d1; color: #775725; font-weight: 700; font-size: 12px; }
.review-author strong, .review-author a { font-size: 13px; color: var(--ink); font-weight: 700; }
.review-author small { display: block; color: var(--muted); font-size: 11px; }
.review-permalink { align-self: flex-start; margin-top: 12px; }
.reviews-section .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 850px) {
  .reviews-head { grid-template-columns: minmax(0, 1fr); }
  .review-panel { width: min(100%, 460px); }
  .reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 580px) {
  .reviews-grid { grid-template-columns: minmax(0, 1fr); }
}

.booking-guest { display:grid; gap:14px; max-width:520px; margin:18px 0; }
.booking-guest label { display:grid; gap:5px; font-size:13px; font-weight:600; }
.booking-guest input:not([type=checkbox]) { width:100%; min-height:42px; border:1px solid #d9cbb0; background:#fffcf5; padding:9px 12px; font:inherit; }
.booking-guest .booking-consent { grid-template-columns:auto 1fr; align-items:start; font-weight:400; }
.booking-guest .booking-consent a { text-decoration:underline; }
.booking-guest .btn { justify-self:start; }
.booking-back { margin-top:12px; }
.amenity-list .amenity p { line-height:1.55; }

.booking-field > .booking-occupancy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.booking-occupancy label { margin: 0; font-size: 12px; }
.booking-occupancy select { display: block; min-height: 32px; margin-top: 3px; padding: 0 5px; border: 1px solid var(--line); background: #fffdf8; }
.booking-limits { margin: 0 0 20px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.results-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 6px 14px; border-top: 1px solid var(--line); padding-top: 18px; }
.results-heading h3 { font: 25px/1.15 var(--serif); margin: 0; }
.results-heading span, .results-count { font-size: 13px; color: var(--muted); }
.results-count { margin: 8px 0 14px; }
.result-room-inactive { background: #faf7ef; }
.result-room .room-state { display: inline-block; margin-top: 6px; padding: 4px 8px; border-radius: 3px; color: #674e2d; background: #f0e8d9; }
.result-room .result-detail { white-space: nowrap; }
.room-price { flex-wrap: wrap; }
.room-price span { font-size: 12px; }
.room-price strong { font-size: clamp(20px, 2vw, 25px); }

.footer { padding-bottom: 27px; }
.footer h3 { font-size: 15px; font-weight: 650; margin-bottom: 14px; }
.footer p, .footer a:not(.footer-brand) { font-size: 14px; line-height: 1.55; }
.footer a:not(.footer-brand) { overflow-wrap: anywhere; }
.footer-bottom { align-items: center; flex-wrap: wrap; gap: 14px 24px; font-size: 13px; }
.footer-bottom div { flex-wrap: wrap; gap: 8px 18px; }
.footer .footer-bottom a { font-size: 13px !important; }
.footer .footer-bottom .footer-credit { color: #e5d6bb; padding: 0; letter-spacing: normal; }
.footer-credit strong { font-size: 16px; white-space: nowrap; }
.floating-contact.footer-in-view { visibility: hidden; }
@media (max-width: 720px) {
  .booking-field:has(.booking-occupancy) { border: 0; }
  .booking-occupancy select { font-size: 14px; }
  .footer-bottom { align-items: flex-start; }
}

@media (max-width: 580px) {
  .result-room .result-detail { grid-column: 2; justify-self: start; }
}

/* Language navigation and direct booking */
.navrow { gap: clamp(8px, 1.45vw, 24px); }
.navrow nav { gap: clamp(10px, 1.25vw, 20px); }
.navrow nav a { text-align: center; }
.language-switch { position: relative; margin-inline-start: auto; flex: 0 0 auto; color: var(--ink); }
.language-switch summary { display: flex; align-items: center; gap: 7px; cursor: pointer; list-style: none; padding: 9px; border: 1px solid var(--line); font-size: 12px; font-weight: 650; }
.language-switch summary::-webkit-details-marker { display: none; }
.language-switch svg { width: 17px; height: 17px; color: var(--gold); }
.language-switch ul { position: absolute; inset-inline-end: 0; top: calc(100% + 7px); z-index: 30; min-width: 150px; list-style: none; margin: 0; padding: 6px; background: var(--paper); border: 1px solid var(--line); box-shadow: 0 12px 36px #24252122; }
.language-switch li a { display: block; padding: 8px 10px; font-size: 14px; }
.language-switch li a:is(:hover,[aria-current]) { background: #eee7d9; }
.footer .footer-bottom .footer-credit { font-weight: 400; }
.footer-credit strong { font-weight: 700; }
.booking-wrap { margin-top: -64px; }
.booking-shell { background: #fffdf8; border: 1px solid #c3ad86; border-top: 3px solid #a88649; padding: clamp(16px, 2.5vw, 33px); box-shadow: 0 22px 50px #2d251d18; }
.booking-mast { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px 22px; margin-bottom: 18px; }
.booking-mast h2 { font: clamp(25px, 3vw, 35px)/1.1 var(--serif); margin: 4px 0 0; }
.booking-assurance { display: inline-flex; align-items: center; gap: 7px; color: #62502e; font-size: 12px; padding: 7px 11px; background: #f2ecdf; }
.booking-assurance svg, .date-option svg { width: 16px; height: 16px; }
.booking-shell .booking { padding: 0; border: 0; background: transparent; box-shadow: none; gap: 10px; }
.booking-shell .booking-field, #modal-book .booking-field { min-height: 68px; padding: 10px; gap: 9px; border: 1px solid #e0d4bf; background: #faf7f0; }
.booking-shell .booking-field label, #modal-book .booking-field label { font-size: 12px; font-weight: 600; }
.booking-shell .booking-field input, #modal-book .booking-field input { min-height: 32px; font-size: 14px; }
.booking-shell .booking-field svg { flex: 0 0 20px; }
.booking-shell .booking .btn { min-height: 68px; justify-content: space-between; white-space: normal; }
.booking-shell .booking-note { text-align: start; margin: 13px 0 0; font-size: 12px; }
.booking-empty p { margin: 0 0 7px; }
.date-alternatives { padding: 14px 0 20px; }
.date-alternatives h3 { font: 23px var(--serif); margin: 0 0 11px; }
.date-alternatives > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 175px), 1fr)); gap: 10px; }
.date-option { display: grid; gap: 5px; text-align: start; padding: 13px; cursor: pointer; border: 1px solid #d7c29c; background: #fffdf8; color: var(--ink); font: inherit; }
.date-option:hover { background: #f4eddf; }
.date-option small { display: flex; align-items: center; gap: 7px; color: #6e502a; }
.policy-links { margin: 0; }
.policy-links a { text-decoration: underline; }

/* Editorial detail layouts */
html[dir=rtl] { --sans: Tahoma, Arial, sans-serif; --serif: Georgia, Tahoma, serif; }
html[dir=rtl] .hero::after, html[dir=rtl] .page-hero::after { transform: scaleX(-1); }
html[dir=rtl] .btn svg, html[dir=rtl] .text-link svg, html[dir=rtl] .date-option svg { transform: scaleX(-1); }
html[dir=rtl] .booking input[type=date] { direction: ltr; text-align: right; }
html[dir=rtl] .site-header nav { text-align: start; }
@media (max-width: 1080px) {
  .site-header nav:not(.open) { display: none; }
  .site-header .mobile-toggle { display: grid; place-items: center; }
  .site-header nav.open { display: grid; position: absolute; top: 100%; inset-inline: 0; padding: 12px 22px; background: var(--paper); border-bottom: 1px solid var(--line); gap: 0; z-index: 18; }
  .site-header nav.open a { display: block; text-align: start; padding: 10px; }
  .booking-shell .booking-field > svg { display: none; }
}
@media (max-width: 760px) {
  .booking-shell .booking, #modal-book { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-shell .booking-field, #modal-book .booking-field { min-height: 63px; padding: 7px; }
  .booking-shell .booking .btn { min-height: 63px; padding: 10px; font-size: 13px; }
  .booking-wrap { margin-top: -40px; }
}
@media (max-width: 480px) {
  .site-header .navrow { gap: 6px; }
  .site-header .navrow > [data-book] { display: none; }
  .booking-shell .booking .btn svg { display: none; }
}

/* Editorial room and guide detail pages */
.location-visual img[src*="hotel777-dis-cephe"] { width: 100%; height: 100%; object-fit: cover; object-position: 48% 52%; filter: none; }
.location-visual:has(.location-overlay)::after { content: ""; position: absolute; inset: 53% 0 0; background: linear-gradient(transparent, #1e1b16b5); pointer-events: none; }
.location-overlay { z-index: 1; inset-inline-start: clamp(16px, 3vw, 28px); font-size: clamp(21px, 3vw, 31px); }
.arrival-photo { margin: 0; }
.arrival-copy h2 { max-width: 17ch; }
.arrival-copy address { margin: 20px 0 12px; color: var(--muted); font: inherit; }
.room-opening { padding-block: clamp(32px, 6vw, 86px) clamp(37px, 6vw, 80px); }
.editorial-spread { display: flex; gap: clamp(32px, 6vw, 96px); align-items: center; }
.room-editorial-photo { flex: 1.55; min-width: 0; margin: 0; }
.room-editorial-photo .photo-button { display: block; width: 100%; }
.room-editorial-photo img { display: block; width: 100%; height: auto; aspect-ratio: 5/4; object-fit: cover; }
.room-editorial-photo figcaption { margin-top: 10px; color: var(--muted); font-size: 12px; max-width: 68ch; }
.room-opening-copy { flex: 1; min-width: 0; }
.room-opening-copy h1, .guide-opening h1 { color: var(--ink); font-size: clamp(39px, 5.5vw, 74px); line-height: 1.04; margin: 10px 0 18px; text-wrap: balance; }
.room-opening-copy .breadcrumb, .guide-opening .breadcrumb { margin: 0 0 22px; color: var(--muted); }
.room-opening-copy .breadcrumb .text-link, .guide-opening .breadcrumb .text-link { color: var(--ink); }
.room-opening-copy .detail-lead, .guide-opening .detail-lead { color: var(--muted); font-size: clamp(15px, 1.45vw, 19px); line-height: 1.7; margin: 0 0 24px; }
.room-capacity-line { display: flex; align-items: center; gap: 9px; margin: 0 0 17px; }
.room-capacity-line svg, .room-inline-facts svg { color: var(--gold); width: 17px; height: 17px; flex: 0 0 auto; }
.room-opening-copy .room-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 12px; margin-bottom: 20px; }
.room-detail-narrative { padding-block: clamp(34px, 5.5vw, 76px); border-block: 1px solid var(--line); }
.reading-spread { display: flex; gap: clamp(30px, 6vw, 80px); align-items: start; }
.reading-spread > :first-child { flex: 1; min-width: 0; }
.reading-spread > :last-child { flex: 1.55; min-width: 0; }
.reading-spread h2 { margin: 0; font-size: clamp(28px, 4vw, 50px); }
.reading-copy > p { margin: 0; font-size: clamp(15px, 1.35vw, 18px); line-height: 1.8; color: var(--muted); max-width: 67ch; }
.reading-copy h3 { margin: 28px 0 12px; font: 23px var(--serif); }
.room-inline-facts { display: flex; flex-wrap: wrap; gap: 10px 23px; margin: 0; padding: 0; list-style: none; }
.room-inline-facts li { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.room-practical { background: #ebe4d5; padding-block: clamp(25px, 4.5vw, 56px); }
.room-practical-line { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px 32px; }
.room-practical-line h2 { font-size: clamp(23px, 3vw, 39px); margin: 0; }
.room-practical-line p { margin: 7px 0 0; color: var(--muted); }
.detail-link-list { list-style: none; margin: 0; padding: 0; }
.detail-link-list li { border-top: 1px solid var(--line); }
.detail-link-list li:last-child { border-bottom: 1px solid var(--line); }
.detail-link-list .text-link { display: flex; justify-content: space-between; align-items: center; gap: 12px; border: 0; width: 100%; padding-block: 13px; margin: 0; font-size: 15px; }
.detail-link-list .text-link:hover { color: #775c33; text-decoration: underline; text-underline-offset: 3px; }
.room-opening ~ .reviews-section .review-card { border: 0; border-top: 1px solid var(--line); background: transparent; box-shadow: none; border-radius: 0; padding: 16px 0 0; }
.guide-opening { padding-block: clamp(32px, 6vw, 83px) clamp(16px, 3vw, 37px); }
.guide-opening .wrap { max-width: 1060px; }
.guide-opening h1 { max-width: 22ch; }
.guide-opening .detail-lead { max-width: 65ch; margin: 0; }
.guide-feature-image img { display: block; width: 100%; height: clamp(205px, 32vw, 430px); object-fit: cover; }
.guide-reading { display: flex; align-items: start; gap: clamp(32px, 7vw, 96px); padding-block: clamp(28px, 5vw, 72px); max-width: 1060px; }
.guide-contents { flex: 0 0 25%; position: sticky; top: 116px; border-top: 1px solid var(--line); padding-top: 14px; }
.guide-contents p { margin: 0; }
.guide-contents ol { padding-inline-start: 20px; margin: 12px 0 0; }
.guide-contents li { padding-block: 5px; color: var(--muted); font-size: 13px; }
.guide-contents a:hover { color: var(--ink); text-decoration: underline; }
.guide-article { flex: 1; min-width: 0; max-width: 68ch; }
.guide-article h2 { font-size: clamp(24px, 3.3vw, 39px); margin: 1.15em 0 .4em; scroll-margin-top: 125px; }
.guide-article h2:first-child { margin-top: 0; }
.guide-article p, .guide-article li { color: var(--muted); font-size: clamp(15px, 1.4vw, 17px); line-height: 1.8; }
.guide-article ul, .guide-article ol { padding-inline-start: 23px; }
.guide-article a:not(.text-link) { text-decoration: underline; text-underline-offset: 3px; }
.guide-article a { overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .editorial-spread, .reading-spread, .guide-reading { flex-direction: column; gap: 23px; }
  .room-editorial-photo, .room-opening-copy, .reading-spread > :last-child { width: 100%; }
  .room-editorial-photo img { aspect-ratio: 3/2; }
  .room-opening-copy .breadcrumb { margin-bottom: 14px; }
  .guide-contents { position: static; width: 100%; }
  .guide-article h2 { scroll-margin-top: 96px; }
}

/* Centered desktop navigation, independent of the brand and actions. */
.site-header .navrow { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: clamp(12px, 1.65vw, 26px); }
.site-header .brand { justify-self: start; }
.site-header #main-nav { justify-self: center; }
.site-header .nav-actions { display: flex; align-items: center; justify-content: end; gap: clamp(7px, 1.3vw, 16px); }
.nav-actions .language-switch { margin-inline-start: 0; }
.nav-actions > .btn { min-height: 46px; padding-inline: clamp(10px, 1.2vw, 17px); gap: 8px; }
.nav-actions > .btn svg { width: 16px; flex-shrink: 0; }
.mobile-actions { display: none; }
.mobile-drawer { position: fixed; inset: 0 0 0 auto; width: min(90vw, 420px); max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: var(--paper); color: var(--ink); overscroll-behavior: contain; }
[dir=rtl] .mobile-drawer { inset: 0 auto 0 0; }
.mobile-drawer::backdrop { background: #171b16b8; }
.mobile-drawer[open] { animation: drawer-in .2s ease-out; }
@keyframes drawer-in { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: translateX(0); } }
.mobile-drawer-content { display: flex; flex-direction: column; min-height: 100%; padding: max(20px, env(safe-area-inset-top)) 23px max(24px, env(safe-area-inset-bottom)); }
.mobile-drawer-head { display: flex; align-items: start; justify-content: space-between; gap: 10px; padding-block: 10px 16px; }
.mobile-drawer-head span { font-size: 11px; letter-spacing: .12em; color: var(--gold); }
.mobile-drawer-head h2 { font-size: 36px; margin: 3px 0 0; }
.mobile-drawer .icon-btn { width: 44px; height: 44px; display: grid; place-items: center; }
.mobile-links { display: flex; flex-direction: column; margin-bottom: 22px; }
.mobile-links a { display: flex; align-items: center; justify-content: space-between; min-height: 49px; padding: 7px 9px; border-top: 1px solid var(--line); font-size: 16px; gap: 12px; }
.mobile-links a:last-child { border-bottom: 1px solid var(--line); }
.mobile-links a[aria-current] { background: #ede6d8; color: #604725; font-weight: 650; }
.mobile-links svg { width: 17px; color: var(--gold); flex-shrink: 0; }
[dir=rtl] .mobile-links svg { transform: scaleX(-1); }
.mobile-drawer-content > .btn { justify-content: space-between; margin-top: auto; }

/* Contact page and editorial tables. */
.contact-opening { padding-block: clamp(28px, 5.3vw, 76px); }
.contact-intro, .contact-photo { flex: 1; min-width: 0; }
.contact-intro h1 { font-size: clamp(35px, 5.5vw, 71px); line-height: 1.05; margin: 8px 0 16px; text-wrap: balance; }
.contact-intro .breadcrumb { margin-bottom: 20px; }
.contact-intro .detail-lead { max-width: 52ch; color: var(--muted); font-size: clamp(15px, 1.5vw, 19px); line-height: 1.65; }
.contact-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 23px; }
.contact-actions .btn { min-height: 46px; gap: 8px; }
.contact-actions svg { width: 17px; }
.contact-photo { margin: 0; }
.contact-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; }
.contact-photo figcaption { color: var(--muted); letter-spacing: .12em; font-size: 11px; margin-top: 8px; }
.contact-location { background: #ece6da; }
.contact-location-heading { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: end; gap: 10px 24px; margin-bottom: 23px; }
.contact-location-heading h2 { margin: 0; }
.contact-map-layout { display: flex; align-items: stretch; gap: clamp(20px, 4vw, 58px); }
.contact-map-layout .map-frame { flex: 1.7; min-width: 0; height: clamp(320px, 38vw, 470px); filter: none; background: var(--paper); }
.contact-info { flex: 1; min-width: 0; padding-block: 9px; overflow-wrap: anywhere; }
.contact-info address { font-style: normal; }
.contact-details { margin: 12px 0 19px; }
.contact-details > div { padding: 11px 0; border-top: 1px solid #a190704f; }
.contact-details dt { color: #6d562f; font-size: 12px; font-weight: 650; }
.contact-details dd { margin: 4px 0 0; font-size: 15px; }
.guide-table { width: 100%; border-collapse: collapse; table-layout: fixed; margin-block: 18px 25px; text-align: start; line-height: 1.55; background: #fffdf7; border: 1px solid var(--line); }
.guide-table th, .guide-table td { text-align: start; vertical-align: top; padding: clamp(9px, 1.5vw, 15px); border-bottom: 1px solid var(--line); overflow-wrap: anywhere; font-size: clamp(13px, 1.3vw, 15px); }
.guide-table thead th { background: #e9dfcd; color: #413521; }
.guide-table thead th:first-child { width: 34%; }
.guide-table tbody th { color: var(--ink); font-weight: 650; }
.guide-table tbody td { color: var(--muted); }
.guide-table tbody tr:nth-child(even) { background: #f5efe4; }

/* Gallery navigation */
#photo-dialog { max-height: 94dvh; width: min(1100px, calc(100% - 24px)); color: #fff9ec; border: 1px solid #ffffff26; background: #171815; }
#photo-dialog figure { margin: 0; touch-action: pan-y pinch-zoom; }
#photo-dialog img { display: block; width: 100%; height: min(69dvh, 720px); object-fit: contain; }
#photo-dialog figcaption { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 18px; border-top: 1px solid #ffffff24; font-size: 13px; }
#photo-dialog [data-photo-count] { white-space: nowrap; color: #eddbb6; }
#photo-dialog .lightbox-close, .photo-control { display: grid; place-items: center; width: 46px; height: 46px; background: #211f19e8; color: #fff8ea; border: 1px solid #f5e1b990; border-radius: 50%; cursor: pointer; }
#photo-dialog .lightbox-close { inset-inline-start: auto; inset-inline-end: 12px; top: 12px; }
.photo-control { position: absolute; top: calc(min(69dvh, 720px) / 2); transform: translateY(-50%); }
.photo-control[hidden] { display: none; }
.photo-control:hover, #photo-dialog .lightbox-close:hover { background: #725631; }
.photo-control svg, #photo-dialog .lightbox-close svg { width: 19px; height: 19px; }
.photo-prev { inset-inline-start: 12px; }
.photo-next { inset-inline-end: 12px; }
.photo-prev svg, [dir=rtl] .photo-next svg { transform: scaleX(-1); }
[dir=rtl] .photo-prev svg { transform: none; }

@media (max-width: 1160px) {
  .site-header .navrow { grid-template-columns: minmax(0, 1fr) auto; }
  .site-header #main-nav { display: none; }
  .site-header .mobile-toggle { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--line); color: var(--ink); background: #fffdf7; padding: 0; }
  .site-header .mobile-toggle svg { width: 20px; height: 20px; }
}
@media (max-width: 760px) {
  body { padding-bottom: calc(66px + env(safe-area-inset-bottom)); }
  .site-header { height: 69px; }
  .site-header .nav-actions > .btn, .floating-contact { display: none; }
  .site-header .brand img { width: 43px; height: 45px; }
  .site-header .brand { gap: 7px; }
  .mobile-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); position: fixed; inset: auto 0 0; z-index: 39; padding: 5px max(8px, env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); gap: 3px; background: #222820; color: #fff6e4; box-shadow: 0 -7px 26px #22282030; }
  .mobile-actions a, .mobile-actions button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: 54px; padding: 4px; border: 0; border-radius: 5px; font: 600 12px/1.15 var(--sans); color: inherit; background: transparent; text-align: center; }
  .mobile-actions svg { width: 21px; height: 21px; color: #edcf95; }
  .mobile-actions a[href*="wa.me"] svg { color: #a5ddb0; }
  .mobile-actions button { background: #ebd4aa; color: #241e15; }
  .mobile-actions button svg { color: #604725; }
  .mobile-actions :focus-visible { outline: 2px solid #fff8e8; outline-offset: -2px; }
  .booking-field input, .booking-field select, .booking-shell .booking-field input, #modal-book .booking-field input, .booking-guest input:not([type=checkbox]) { font-size: 16px; }
  .contact-photo, .contact-map-layout .map-frame { width: 100%; }
  .contact-map-layout { flex-direction: column; }
  .contact-map-layout .map-frame { flex: none; height: clamp(270px, 74vw, 375px); }
  .contact-info { padding: 0; }
  #photo-dialog img { height: min(63dvh, 570px); }
  .photo-control { top: calc(min(63dvh, 570px) / 2); }
  #photo-dialog .lightbox-close { inset-inline-end: 8px; top: 8px; }
  .photo-prev { inset-inline-start: 7px; }
  .photo-next { inset-inline-end: 7px; }
}
@media (prefers-reduced-motion: reduce) {
  .mobile-drawer[open] { animation: none; }
}

/* Shared media behavior across the localized templates. */
.room-image img, .guide-card > a img, .photo-button img {
  display: block;
  transform-origin: center;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .room-image img, .guide-card > a img, .photo-button img {
    transition: transform 440ms var(--easing);
  }
  .room-image:is(:hover, :focus-visible) img,
  .guide-card > a:is(:hover, :focus-visible) img,
  .photo-button:is(:hover, :focus-visible) img { transform: scale(1.035); }
}
.amenity > svg, .room-meta svg, .place-list svg, .booking-field > svg,
.contact-actions svg, .review-maps-link svg, .text-link svg, .btn svg {
  flex-shrink: 0;
}
.amenity > div, .room-meta, .place-list a > span { min-width: 0; }
.place-list a > span { overflow-wrap: anywhere; }
.room-meta, .booking-assurance { flex-wrap: wrap; }
.hero h1 { max-width: 14ch; text-wrap: balance; }
.hero .eyebrow::before { flex: 0 0 34px; }
.hero-bottom, .feature-index, .photo-button::after { right: auto; }
.hero-bottom { inset-inline-end: 56px; }
.feature-index { inset-inline-end: 23px; }
.photo-button::after { inset-inline-end: 15px; }
html[dir=rtl] .section-heading::after { left: auto; right: 0; }
@media (max-width: 620px) {
  .feature-index { inset-inline-end: 14px; }
  .hero h1 { font-size: clamp(31px, 9.3vw, 44px); max-width: 17ch; }
  .amenity-list .amenity svg { width: 26px; height: 26px; }
}

/* Room albums */
.album-opening { padding-block: clamp(29px, 4.5vw, 62px) clamp(23px, 3vw, 38px); }
.album-opening .breadcrumb { margin-bottom: 15px; }
.album-opening .breadcrumb .text-link { color: var(--ink); }
.album-opening h1 { margin: 6px 0 12px; font-size: clamp(36px, 5.6vw, 74px); line-height: 1.04; text-wrap: balance; }
.album-opening p { margin: 0; color: var(--muted); max-width: 62ch; font-size: clamp(15px, 1.5vw, 19px); }
.album-directory { padding-bottom: clamp(36px, 6vw, 80px); }
.album-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: clamp(17px, 3vw, 33px); }
.album-nav a { min-width: 0; min-height: 48px; display: flex; align-items: center; gap: 9px; padding: 10px 12px; border: 1px solid var(--line); background: #fffdf7; font-size: 13px; font-weight: 650; line-height: 1.3; }
.album-nav a:hover { background: #ece4d5; }
.album-nav bdi { flex: 0 0 auto; font: 16px var(--serif); color: var(--gold); }
.room-albums { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(15px, 2.7vw, 34px); }
.room-album { display: flex; flex-direction: column; background: #fffdf7; border: 1px solid var(--line); scroll-margin-block-start: 104px; }
.room-album:target { border-color: var(--gold); }
.album-media, .hotel-photo-pair { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3px; }
.album-media-pair { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.album-media .album-photo { min-width: 0; height: clamp(210px, 27vw, 365px); }
.album-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 59%; }
.album-photo::after { background: #252a24bd; }
.album-copy { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: clamp(17px, 2.65vw, 31px); }
.album-meta { width: 100%; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px; color: #6b5736; font-size: 13px; }
.album-meta > span:first-child { display: inline-flex; align-items: center; gap: 7px; }
.album-meta svg { width: 18px; height: 18px; flex-shrink: 0; }
.album-header { padding: clamp(13px, 2vw, 24px); }
.album-header h2 { font-size: clamp(22px, 2.65vw, 37px); line-height: 1.13; margin: 0 0 7px; }
.album-copy p { margin: 0 0 17px; color: var(--muted); }
.album-copy .text-link { margin-top: auto; }
.hotel-photo-album { background: #eee8dc; }
.hotel-photo-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 2.5vw, 30px); }
.hotel-photo-pair figure { min-width: 0; margin: 0; }
.hotel-photo-pair .album-photo { height: clamp(210px, 28vw, 360px); }
.hotel-photo-pair figcaption { margin-top: 8px; color: var(--muted); font-size: 13px; }
@media (max-width: 800px) {
  .album-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .room-albums, .hotel-photo-pair { grid-template-columns: minmax(0, 1fr); }
  .album-media .album-photo { height: clamp(190px, 65vw, 355px); }
  .hotel-photo-pair .album-photo { height: clamp(190px, 62vw, 330px); }
  .room-album { scroll-margin-block-start: 80px; }
}
