@font-face { font-family:"Montserrat"; src:url("../assets/fonts/montserrat-latin-300-normal.woff2") format("woff2"); font-style:normal; font-weight:300; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("../assets/fonts/montserrat-latin-400-normal.woff2") format("woff2"); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("../assets/fonts/montserrat-latin-500-normal.woff2") format("woff2"); font-style:normal; font-weight:500; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("../assets/fonts/montserrat-latin-600-normal.woff2") format("woff2"); font-style:normal; font-weight:600; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("../assets/fonts/montserrat-latin-700-normal.woff2") format("woff2"); font-style:normal; font-weight:700; font-display:swap; }
:root { --ink:#20201f; --paper:#f2eee6; --cream:#ddd0bc; --gold:#b7a080; --line:rgba(32,32,31,.18); --serif:"Montserrat","Century Gothic","Avenir Next",sans-serif; --sans:"Montserrat","Century Gothic","Avenir Next",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-weight:400; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; }
img { display:block; width:100%; }
.site-header { position:absolute; z-index:20; top:0; left:0; width:100%; height:106px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(28px,5vw,78px); border-bottom:1px solid rgba(255,255,255,.2); color:white; }
.brand { width:178px; height:76px; display:flex; align-items:center; }
.brand img { width:100%; height:64px; object-fit:contain; }
nav { display:flex; align-items:center; gap:34px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.14em; }
nav a { opacity:.82; transition:.2s ease; }
nav a:hover { opacity:1; }
.nav-cta { border:1px solid rgba(255,255,255,.5); padding:14px 23px; opacity:1; }
.menu-toggle { display:none; background:none; border:0; }
.hero { min-height:780px; display:grid; grid-template-columns:46% 54%; background:var(--ink); color:white; }
.hero-copy { padding:190px clamp(32px,6.5vw,110px) 115px clamp(32px,5vw,80px); display:flex; flex-direction:column; justify-content:center; position:relative; }
.eyebrow { margin:0 0 27px; color:#d8c8b1; font-size:11px; text-transform:uppercase; letter-spacing:.23em; font-weight:600; }
.eyebrow.dark { color:#7d6c56; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; }
h1,h2 { letter-spacing:-.045em; margin:0; }
h1 { font-size:clamp(55px,5.8vw,92px); line-height:.98; max-width:730px; }
h1 em { color:#c6b49b; font-style:normal; font-weight:300; }
.hero-lead { margin:36px 0 0; max-width:490px; color:rgba(255,255,255,.68); font-size:16px; line-height:1.8; }
.hero-actions { display:flex; align-items:center; gap:30px; margin-top:42px; }
.button { display:inline-flex; align-items:center; justify-content:center; padding:17px 25px; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; transition:transform .2s ease,background .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-light { background:#eee6d8; color:#232321; }
.button-dark { background:var(--ink); color:white; }
.text-link { font-size:12px; text-transform:uppercase; letter-spacing:.12em; border-bottom:1px solid rgba(255,255,255,.3); padding:12px 0; }
.text-link span { padding-left:12px; }
.hero-meta { position:absolute; bottom:34px; left:clamp(32px,5vw,80px); display:flex; gap:28px; color:rgba(255,255,255,.45); font-size:10px; text-transform:uppercase; letter-spacing:.15em; }
.hero-visual { min-height:780px; position:relative; overflow:hidden; }
.hero-visual:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(32,32,31,.14),transparent 35%),linear-gradient(0deg,rgba(32,32,31,.22),transparent 40%); }
.hero-visual>img { height:100%; object-fit:cover; object-position:center 57%; }
.hero-stamp { position:absolute; z-index:2; right:40px; bottom:42px; width:124px; height:124px; border:1px solid rgba(255,255,255,.6); border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; text-transform:uppercase; letter-spacing:.12em; backdrop-filter:blur(5px); }
.hero-stamp span { font-size:8px; }.hero-stamp strong { font:400 20px/1.05 var(--serif); text-transform:none; letter-spacing:0; }
.photo-count { position:absolute; z-index:2; top:132px; right:40px; font-size:10px; letter-spacing:.2em; }
.availability-wrap { position:relative; z-index:4; padding:0 clamp(24px,5vw,78px); margin-top:-37px; }
.availability { min-height:128px; max-width:1310px; margin:auto; background:white; box-shadow:0 20px 60px rgba(24,21,18,.12); display:grid; grid-template-columns:1.55fr 1fr 1fr .8fr 1.25fr; align-items:stretch; }
.availability>div,.availability>label { padding:28px 30px; border-right:1px solid #e7e1d8; display:flex; flex-direction:column; justify-content:center; gap:10px; }
.tiny-label,.availability label span { font-size:9px; text-transform:uppercase; letter-spacing:.18em; color:#8d806e; }
.availability-title strong { font:500 21px var(--serif); }
.availability input,.availability select { border:0; outline:0; background:transparent; color:#242422; font-size:13px; width:100%; }
.availability button { border:0; background:#ad9778; color:white; text-transform:uppercase; letter-spacing:.12em; font-size:10px; font-weight:700; cursor:pointer; }
.availability button span { margin-left:9px; }
.home-facts { padding:88px clamp(28px,7vw,110px) 18px; display:grid; grid-template-columns:repeat(4,1fr); background:var(--paper); }
.home-facts article { min-height:110px; padding:4px 32px 18px; display:flex; flex-direction:column; justify-content:flex-end; gap:10px; border-left:1px solid var(--line); }
.home-facts article:last-child { border-right:1px solid var(--line); }
.home-facts strong { color:#967f61; font:400 47px/1 var(--serif); }
.home-facts span { color:#514d47; font-size:10px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.section-pad { padding:130px clamp(28px,7vw,110px); }
.section-number { font:400 22px var(--serif); color:#8e7a60; }
.intro { display:grid; grid-template-columns:80px minmax(0,1.25fr) minmax(280px,.75fr); gap:45px; align-items:start; }
.intro h2,.room-content h2,.breakfast h2,.gallery h2,.room-gallery h2,.location h2,.final-cta h2,.rooms-page-cta h2 { font-size:clamp(45px,5vw,76px); line-height:1.03; }
.intro-copy { padding-top:47px; max-width:510px; }
.intro-copy p,.room-content>p,.breakfast-copy>p,.location-copy>p { color:#68635b; line-height:1.8; font-size:14px; }
.large-copy { font:400 26px/1.4 var(--serif)!important; color:#282824!important; }
.rooms-feature { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(70px,10vw,160px); align-items:center; background:#e8e1d5; }
.room-collage { height:720px; position:relative; }
.room-main { width:72%; height:88%; object-fit:cover; }
.room-detail { position:absolute; width:43%; height:48%; object-fit:cover; right:0; bottom:0; border:12px solid #e8e1d5; }
.vertical-note { position:absolute; writing-mode:vertical-rl; transform:rotate(180deg); right:-27px; top:0; font-size:8px; letter-spacing:.28em; }
.room-content { max-width:520px; }
.room-content>p { margin:30px 0; }
.feature-list { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); margin:35px 0; }
.feature-list span { border-bottom:1px solid var(--line); padding:16px 0; font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
.amenities { background:var(--ink); color:white; }
.amenities-heading { display:grid; grid-template-columns:80px 1fr; gap:45px; margin-bottom:75px; }
.section-number.light { color:#d1b994; }
.amenities h2 { font-size:clamp(46px,5vw,73px); line-height:1; }
.amenities-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.18); border-left:1px solid rgba(255,255,255,.18); }
.amenities article { min-height:240px; padding:31px; border-right:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); }
.amenity-top { display:flex; justify-content:space-between; align-items:flex-start; }
.amenity-icon { width:54px; height:54px; border:1px solid rgba(216,200,177,.6); border-radius:50%; display:grid; place-items:center; color:#dbc7aa; }
.amenity-icon svg { width:24px; height:24px; }
.amenity-index { color:rgba(255,255,255,.3); font-size:9px; letter-spacing:.18em; }
.amenities h3 { margin:48px 0 12px; font:500 26px var(--serif); }
.amenities article p { margin:0; color:rgba(255,255,255,.48); font-size:12px; line-height:1.6; }
.amenities article { transition:background .25s ease; }
.amenities article:hover { background:#2b2a28; }
.breakfast { display:grid; grid-template-columns:1fr .85fr; gap:clamp(70px,10vw,160px); align-items:center; }
.breakfast-image { height:740px; position:relative; }
.breakfast-image img { height:100%; object-fit:cover; }
.breakfast-image span { position:absolute; right:-50px; bottom:50px; background:var(--gold); color:white; width:125px; height:125px; border-radius:50%; display:grid; place-items:center; text-align:center; font:400 13px/1.5 var(--serif); letter-spacing:.04em; }
.breakfast-copy { max-width:520px; }
.breakfast-copy .large-copy { margin-top:35px; }
.breakfast-copy blockquote { margin:50px 0 0; padding:26px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font:300 20px/1.55 var(--serif); color:#756550; }
.home-services { background:var(--ink); color:white; }
.home-services-heading { display:grid; grid-template-columns:80px minmax(0,1fr) minmax(300px,.62fr); gap:45px; align-items:start; margin-bottom:70px; }
.home-services-heading h2 { font-size:clamp(46px,5vw,73px); line-height:1; }
.home-services-intro { max-width:390px; padding-top:45px; }
.home-services-intro>p { margin:0 0 24px; color:rgba(255,255,255,.56); font-size:13px; line-height:1.8; }
.home-services-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.16); border-left:1px solid rgba(255,255,255,.16); }
.home-services-grid article { min-height:275px; padding:32px; border-right:1px solid rgba(255,255,255,.16); border-bottom:1px solid rgba(255,255,255,.16); transition:background .25s ease; }
.home-services-grid article:hover { background:#2b2a28; }
.home-service-top { display:flex; align-items:flex-start; justify-content:space-between; color:rgba(255,255,255,.32); font-size:9px; letter-spacing:.18em; }
.home-service-icon { width:56px; height:56px; display:grid; place-items:center; border:1px solid rgba(216,200,177,.55); border-radius:50%; color:#dbc7aa; }
.home-service-icon svg { width:25px; height:25px; }
.home-services-grid h3 { margin:48px 0 12px; color:white; font:500 27px/1.15 var(--serif); }
.home-services-grid article>p { margin:0; color:rgba(255,255,255,.5); font-size:12px; line-height:1.7; }
.subpage-hero { min-height:680px; display:grid; grid-template-columns:44% 56%; background:var(--ink); color:white; }
.subpage-hero-copy { padding:180px clamp(32px,7vw,110px) 100px clamp(32px,5vw,80px); display:flex; flex-direction:column; justify-content:center; }
.subpage-hero-copy h1 { font-size:clamp(58px,6.2vw,94px); line-height:.94; }
.subpage-hero-copy>p:not(.eyebrow) { max-width:470px; margin:32px 0 28px; color:rgba(255,255,255,.68); font-size:16px; line-height:1.8; }
.subpage-hero-copy .text-link { width:max-content; }
.subpage-hero-image { min-height:680px; position:relative; overflow:hidden; }
.subpage-hero-image:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(32,32,31,.2),transparent 42%),linear-gradient(0deg,rgba(32,32,31,.18),transparent 38%); }
.subpage-hero-image img { height:100%; object-fit:cover; object-position:center 48%; }
.subpage-hero-image>span { position:absolute; z-index:2; right:34px; bottom:30px; color:rgba(255,255,255,.72); font-size:9px; letter-spacing:.28em; }
.room-profile { background:#e8e1d5; }
.room-profile-heading { display:grid; grid-template-columns:80px minmax(0,1.2fr) minmax(280px,.7fr); gap:45px; align-items:start; margin-bottom:70px; }
.room-profile-heading h2 { font-size:clamp(46px,5vw,73px); line-height:1; }
.room-profile-heading>p { max-width:430px; margin:46px 0 0; color:#68635b; font-size:14px; line-height:1.8; }
.room-facts { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(32,32,31,.2); border-left:1px solid rgba(32,32,31,.2); }
.room-facts article { min-height:285px; padding:34px; display:flex; flex-direction:column; justify-content:flex-end; border-right:1px solid rgba(32,32,31,.2); border-bottom:1px solid rgba(32,32,31,.2); transition:background .25s ease,color .25s ease; }
.room-facts article:hover { background:var(--ink); color:white; }
.room-facts strong { margin-bottom:auto; color:#9d8667; font:400 62px/1 var(--serif); letter-spacing:-.04em; }
.room-facts h3 { margin:42px 0 12px; font:500 25px/1.15 var(--serif); }
.room-facts p { margin:0; color:#716b62; font-size:12px; line-height:1.65; transition:color .25s ease; }
.room-facts article:hover p { color:rgba(255,255,255,.58); }
.room-gallery { background:#f8f5ef; }
.room-gallery-heading { display:flex; justify-content:flex-start; align-items:flex-end; gap:50px; margin-bottom:55px; }
.room-gallery-heading>p { max-width:340px; margin:0; color:#777168; font-size:14px; line-height:1.75; }
.room-gallery-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.room-gallery-item { aspect-ratio:3/4; border:0; padding:0; background:#e8e1d5; cursor:zoom-in; position:relative; overflow:hidden; }
.room-gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.room-gallery-item:hover img { transform:scale(1.035); }
.room-gallery-item span { position:absolute; right:10px; bottom:10px; min-width:30px; padding:7px; background:rgba(32,32,31,.78); color:white; font-size:9px; text-align:center; }
.rooms-page-cta { min-height:540px; position:relative; display:grid; place-items:center; overflow:hidden; color:white; text-align:center; }
.rooms-page-cta>img { position:absolute; inset:0; height:100%; object-fit:cover; object-position:center 55%; }
.rooms-page-cta:after { content:""; position:absolute; inset:0; background:rgba(23,22,20,.64); }
.rooms-page-cta>div { position:relative; z-index:2; max-width:720px; padding:70px 25px; }
.rooms-page-cta>div>p:not(.eyebrow) { max-width:520px; margin:24px auto 34px; color:rgba(255,255,255,.72); line-height:1.75; }
.gallery { padding-top:90px; background:#f8f5ef; }
.gallery-heading { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:60px; }
.gallery-summary { width:min(100%,390px); display:flex; align-items:flex-end; justify-content:space-between; gap:28px; }
.gallery-summary p { max-width:280px; margin:0; color:#777168; line-height:1.7; font-size:14px; }
.gallery-controls { display:flex; gap:8px; flex:0 0 auto; }
.gallery-controls button { width:48px; height:48px; border:1px solid #cfc5b7; background:transparent; color:var(--ink); cursor:pointer; font-size:20px; transition:background .2s ease,color .2s ease; }
.gallery-controls button:hover { background:var(--ink); color:white; }
.gallery-carousel { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 48px)/4); gap:16px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:inline mandatory; scrollbar-width:none; padding-bottom:4px; }
.gallery-carousel::-webkit-scrollbar { display:none; }
.gallery-item { aspect-ratio:3/4; border:0; padding:0; background:none; cursor:zoom-in; position:relative; overflow:hidden; scroll-snap-align:start; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }.gallery-item:hover img{transform:scale(1.035)}
.gallery-item span { position:absolute; bottom:14px; right:14px; background:rgba(32,32,31,.8); color:white; padding:9px 11px; font-size:10px; }
.location { background:#aa9476; color:white; display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.location-copy { max-width:560px; }.location-copy>p { color:rgba(255,255,255,.72); max-width:430px; margin:30px 0; }.location .eyebrow{color:#f1e8db}
.location-card { min-height:390px; padding:45px; border:1px solid rgba(255,255,255,.35); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; position:relative; background:rgba(255,255,255,.05); transition:background .25s ease,color .25s ease,transform .25s ease; }
.location-card:hover { background:#f0e8db; color:var(--ink); transform:translateY(-4px); }
.map-mark { width:72px; height:72px; display:grid; place-items:center; margin-bottom:28px; border:1px solid currentColor; border-radius:50%; }
.map-mark svg { width:31px; height:31px; }
.location-card p,.location-card>span:last-child { margin:0; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.2em; }
.location-card strong { max-width:440px; margin:25px 0; font:500 47px/1.05 var(--serif); }
.final-cta { height:680px; position:relative; overflow:hidden; color:white; }
.final-cta>img { height:100%; object-fit:cover; object-position:center 55%; }
.final-cta:after { content:""; position:absolute; inset:0; background:rgba(23,22,20,.57); }
.final-overlay { position:absolute; z-index:2; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:30px; }
.final-overlay p:not(.eyebrow) { max-width:480px; color:rgba(255,255,255,.68); line-height:1.7; margin:25px 0 35px; }
footer { padding:78px clamp(28px,7vw,110px) 38px; background:var(--ink); color:white; display:grid; grid-template-columns:1.8fr 1fr 1fr; gap:clamp(42px,7vw,100px); }
.footer-brand img { width:230px; }.footer-brand { display:flex; flex-direction:column; align-items:flex-start; gap:25px; }
.footer-brand p { max-width:410px; margin:0; color:rgba(255,255,255,.62); font:400 21px/1.45 var(--serif); }
footer>div>span { color:#c2aa88; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.18em; } footer p { color:rgba(255,255,255,.76); font-size:15px; line-height:1.9; }
.footer-codes strong { color:rgba(255,255,255,.82); font-size:10px; letter-spacing:.08em; }
.footer-bottom { grid-column:1/-1; border-top:1px solid rgba(255,255,255,.15); margin-top:25px; padding-top:25px; display:flex; justify-content:space-between; gap:30px; }
.footer-bottom span { color:rgba(255,255,255,.68); font-size:12px; line-height:1.8; letter-spacing:.08em; }.footer-bottom span a { color:#ead7b8; }.footer-bottom>a { font-size:14px; }
.lightbox { position:fixed; z-index:100; inset:0; background:rgba(15,15,14,.96); display:flex; align-items:center; justify-content:center; padding:50px; }
.lightbox[hidden] { display:none; }
.lightbox img { max-width:min(78vw,850px); max-height:82vh; width:auto; object-fit:contain; }.lightbox button { position:absolute; border:1px solid rgba(255,255,255,.35); background:rgba(0,0,0,.25); color:white; width:48px; height:48px; border-radius:50%; cursor:pointer; }.lightbox-close{top:25px;right:25px;font-size:27px}.lightbox-prev{left:30px;font-size:20px}.lightbox-next{right:30px;font-size:20px}.lightbox-counter{position:absolute;bottom:25px;color:white;font-size:10px;letter-spacing:.2em}
@media (max-width:1000px){
  .hero{grid-template-columns:1fr 1fr}.hero-copy{padding-right:40px}.availability{grid-template-columns:1fr 1fr 1fr}.availability-title{grid-column:1/-1}.availability button{min-height:78px}.intro{grid-template-columns:60px 1fr}.intro-copy{grid-column:2}.room-profile-heading{grid-template-columns:60px 1fr}.room-profile-heading>p{grid-column:2;margin:0}.room-facts{grid-template-columns:repeat(2,1fr)}.amenities-grid{grid-template-columns:repeat(2,1fr)}.gallery-carousel{grid-auto-columns:calc((100% - 32px)/3)}.rooms-feature,.breakfast{gap:60px}.room-collage{height:620px}.subpage-hero{grid-template-columns:1fr 1fr}.room-gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}footer{grid-template-columns:1.5fr 1fr 1fr}
  .home-facts{grid-template-columns:repeat(2,1fr);gap:0;padding-top:78px}.home-facts article{border-bottom:1px solid var(--line)}.home-services-heading{grid-template-columns:60px 1fr}.home-services-intro{grid-column:2;padding-top:0}.home-services-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .site-header{height:82px;padding:0 20px}.brand{width:145px}.brand img{height:53px}.menu-toggle{display:flex;z-index:22;width:42px;height:42px;flex-direction:column;align-items:center;justify-content:center;gap:5px}.menu-toggle span{width:21px;height:1px;background:white}nav{display:none;position:absolute;top:0;left:0;width:100%;min-height:100vh;background:var(--ink);padding:125px 28px 50px;flex-direction:column;align-items:flex-start;font:400 31px var(--serif);text-transform:none;letter-spacing:0}.nav-open{display:flex}.nav-cta{font:600 11px var(--sans);text-transform:uppercase;letter-spacing:.15em;margin-top:20px}
  .hero{display:flex;flex-direction:column;min-height:0}.hero-copy{min-height:660px;padding:150px 25px 100px}.hero-copy h1{font-size:58px}.hero-lead{font-size:14px}.hero-actions{align-items:flex-start;flex-direction:column;gap:8px}.hero-meta{left:25px;bottom:25px}.hero-visual{min-height:620px}.hero-stamp{width:105px;height:105px;right:20px;bottom:25px}.photo-count{top:25px;right:20px}
  .availability-wrap{margin-top:0;padding:0}.availability{display:grid;grid-template-columns:1fr 1fr;box-shadow:none}.availability>div,.availability>label{padding:22px}.availability-title{grid-column:1/-1}.availability label:nth-of-type(3){grid-column:1/-1}.availability button{grid-column:1/-1;min-height:75px}
  .home-facts{grid-template-columns:1fr 1fr;padding:62px 25px 0}.home-facts article{min-height:125px;padding:20px 17px}.home-facts strong{font-size:42px}.home-facts span{font-size:9px;line-height:1.5}.home-services-heading{grid-template-columns:1fr;gap:22px;margin-bottom:45px}.home-services-intro{grid-column:auto;padding:0}.home-services-grid{grid-template-columns:1fr}.home-services-grid article{min-height:230px;padding:28px}.home-services-grid h3{margin-top:38px}
  .section-pad{padding:90px 25px}.intro{grid-template-columns:1fr;gap:25px}.intro-copy{grid-column:auto;padding:0}.section-number{margin-bottom:10px}.intro h2,.room-content h2,.breakfast h2,.gallery h2,.room-gallery h2,.location h2,.final-cta h2,.rooms-page-cta h2{font-size:46px}
  .rooms-feature,.breakfast,.location{grid-template-columns:1fr;gap:65px}.room-collage{height:570px}.room-main{width:78%}.room-detail{width:48%;height:42%;}.room-content{max-width:none}
  .room-profile-heading{grid-template-columns:1fr;gap:22px;margin-bottom:45px}.room-profile-heading>p{grid-column:auto;margin:0}.room-facts{grid-template-columns:1fr}.room-facts article{min-height:230px;padding:28px}.room-facts strong{font-size:49px}.room-facts h3{margin-top:36px}.amenities-heading{grid-template-columns:1fr;gap:20px}.amenities-grid{grid-template-columns:1fr}.amenities article{min-height:205px}.amenities h3{margin-top:32px}.breakfast-image{height:580px;margin-right:22px}.breakfast-image span{right:-20px;width:105px;height:105px}.breakfast-copy{max-width:none}
  .gallery-heading{align-items:flex-start;flex-direction:column;gap:28px;margin-bottom:38px}.gallery-summary{width:100%;align-items:center}.gallery-summary p{font-size:13px}.gallery-controls button{width:46px;height:46px}.gallery-carousel{grid-auto-columns:min(76vw,310px);gap:10px;margin-right:-25px;padding-right:25px}.subpage-hero{display:flex;flex-direction:column;min-height:0}.subpage-hero-copy{min-height:530px;padding:145px 25px 75px}.subpage-hero-copy h1{font-size:58px}.subpage-hero-copy>p:not(.eyebrow){font-size:14px}.subpage-hero-image{min-height:520px}.room-gallery-heading{align-items:flex-start;flex-direction:column;gap:24px;margin-bottom:38px}.room-gallery-heading>p{font-size:13px}.room-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.rooms-page-cta{min-height:500px}
  .location{gap:50px}.location-card{min-height:340px;padding:35px 22px}.location-card strong{font-size:39px}.map-mark{width:64px;height:64px}.final-cta{height:630px}.final-overlay{padding:25px}footer{grid-template-columns:1fr;gap:34px;padding-top:58px}.footer-brand img{width:220px}.footer-brand p{font-size:20px}.footer-bottom{flex-direction:column;gap:16px;margin-top:8px}.footer-bottom span{font-size:11px;letter-spacing:.06em}.lightbox{padding:25px}.lightbox img{max-width:88vw}.lightbox-prev{left:12px}.lightbox-next{right:12px}
}
@media (max-width:390px){.hero-copy h1{font-size:50px}.availability{grid-template-columns:1fr}.availability-title,.availability label:nth-of-type(3),.availability button{grid-column:1}.gallery-carousel{grid-auto-columns:82vw}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery-item img,.button{transition:none}}
