@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--cream:#fbf6ef;--paper:#fffdf9;--plum:#3a2639;--plum-deep:#2b1c2b;--rose:#bd7376;--rose-light:#efd9d2;--sage:#829584;--sage-dark:#596d5c;--gold:#c59b5b;--ink:#332e31;--muted:#817679;--line:#e8ded5;--shadow:0 20px 60px rgba(58,38,57,.10);--radius:26px;--radius-sm:16px;--max:1220px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.7;overflow-x:hidden}body.nav-open{overflow-x:clip}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}::selection{background:#efd4d1;color:var(--plum)}
.skip-link{position:absolute;left:-10000px;top:auto}.skip-link:focus{left:12px;top:12px;z-index:999;background:white;padding:10px 14px;border-radius:9px}.announcement{background:var(--plum);color:#f8e9e3;display:flex;justify-content:space-between;gap:20px;padding:8px max(calc((100vw - var(--max))/2),5%);font-size:9px;letter-spacing:1.8px;text-transform:uppercase}.announcement .right{opacity:.75;letter-spacing:.8px;text-transform:none;font-size:10px}
.site-header{position:sticky;top:0;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:13px max(calc((100vw - var(--max))/2),5%);background:rgba(255,253,249,.93);backdrop-filter:blur(16px);border-bottom:1px solid rgba(232,222,213,.8);min-height:82px}.brand{display:inline-flex;align-items:center;gap:12px;flex-shrink:0}.brand-logo{width:55px;height:55px;object-fit:contain}.brand-copy{display:flex;flex-direction:column;line-height:1.25}.brand-copy b{font-size:13px;letter-spacing:2.1px;color:var(--plum);font-weight:700}.brand-copy small{font-size:9px;letter-spacing:2px;color:var(--rose);margin-top:5px}.main-nav{display:flex;align-items:center;gap:clamp(12px,1.7vw,24px)}.main-nav>a{position:relative;font-size:11px;font-weight:600;color:#62575f;white-space:nowrap;transition:color .2s}.main-nav>a:not(.nav-cta):after{content:'';position:absolute;bottom:-8px;left:0;width:0;height:2px;background:var(--rose);transition:width .25s}.main-nav>a:hover,.main-nav>a.active{color:var(--plum)}.main-nav>a:hover:after,.main-nav>a.active:after{width:100%}.main-nav .nav-cta{background:var(--plum);color:#fff9f4;padding:13px 18px;border-radius:999px;box-shadow:0 8px 20px #3a26391c}.main-nav .nav-cta:hover{background:var(--rose);transform:translateY(-1px)}.nav-cta span{color:#f2c9ad;padding-left:8px}.menu-toggle{display:none;background:var(--plum);border:0;color:white;border-radius:50%;width:45px;height:45px;align-items:center;justify-content:center;flex-direction:column;gap:6px}.menu-toggle i{display:block;width:18px;height:2px;background:white;border-radius:3px;transition:.2s}
.hero{min-height:730px;height:min(84vh,850px);position:relative;display:flex;align-items:center;background:var(--plum);isolation:isolate;overflow:hidden;color:white}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 44%;z-index:-2;animation:heroBreath 24s ease-in-out infinite alternate}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(37,24,37,.88) 0%,rgba(50,31,46,.71) 42%,rgba(49,37,45,.27) 100%),linear-gradient(0deg,rgba(35,21,33,.53),transparent 30%);z-index:-1}.hero-inner{width:min(var(--max),90%);margin:0 auto;padding:80px 0 120px;position:relative;animation:rise .85s ease both}.eyebrow{display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:2px;font-weight:700;font-size:10px;color:var(--rose);margin:0 0 16px}.eyebrow:before{content:'';height:1px;width:26px;background:currentColor}.eyebrow.light{color:#f2c7b5}.hero h1,.inner-hero h1{font:500 clamp(50px,6vw,88px)/1.04 'Playfair Display',serif;letter-spacing:-1.7px;max-width:780px;margin:0 0 24px}.hero h1 em,.inner-hero h1 em,.section-title em,.welcome-copy h2 em,.feature-content h2 em{font-weight:500;color:#f0c7b2}.hero-copy{max-width:515px;color:#f7eae7;font-size:15px;line-height:1.85;margin:0 0 24px}.hero-pills{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:28px}.hero-pill{border:1px solid #ffffff48;border-radius:999px;padding:7px 13px;font-size:10px;letter-spacing:.4px;color:#fff8f3;background:#ffffff0d;backdrop-filter:blur(5px)}.hero-pill b{color:#efc59f;margin-right:5px}.hero-actions{display:flex;flex-wrap:wrap;gap:13px;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:15px 21px;border-radius:999px;border:1px solid transparent;font-size:11px;font-weight:700;letter-spacing:.2px;transition:transform .25s,box-shadow .25s,background .25s,color .25s}.btn:hover{transform:translateY(-3px);box-shadow:0 12px 28px #22162728}.btn-rose{background:var(--rose);color:white}.btn-rose:hover{background:#a45c63}.btn-light{background:var(--paper);color:var(--plum)}.btn-outline{border-color:#ffffff7a;color:white;background:#ffffff0b}.btn-plum{background:var(--plum);color:white}.btn-sage{background:var(--sage);color:white}.btn-outline-plum{border-color:#3a263953;color:var(--plum)}.hero-note{position:absolute;right:max(calc((100vw - var(--max))/2),5%);bottom:38px;color:#fff7f1;text-align:right;font:italic 18px 'Playfair Display',serif;opacity:.9}.hero-note small{display:block;font:700 9px 'DM Sans',sans-serif;letter-spacing:2px;text-transform:uppercase;color:#f0c7b2;margin-bottom:4px}
.quick-bar{position:relative;z-index:4;width:min(1100px,90%);margin:-45px auto 0;background:var(--paper);border-radius:21px;padding:19px 23px;box-shadow:var(--shadow);display:grid;grid-template-columns:1.1fr 3fr;gap:18px;align-items:center;border:1px solid #ffffff}.quick-intro{display:flex;align-items:center;gap:13px}.icon-circle{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;background:var(--rose-light);color:var(--plum);font-size:18px;flex-shrink:0}.quick-intro b{display:block;font:500 19px 'Playfair Display',serif;color:var(--plum)}.quick-intro small{font-size:10px;color:var(--muted)}.quick-form{display:grid;grid-template-columns:1fr 1fr .9fr auto;gap:10px;align-items:end}.field-label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:1.4px;font-weight:700;color:var(--muted);margin-bottom:5px}.quick-form input,.quick-form select,.contact-form input,.contact-form select,.contact-form textarea,.table-form input,.table-form select,.table-form textarea{width:100%;border:1px solid var(--line);background:#fffdf9;color:var(--ink);padding:12px 12px;border-radius:12px;outline:0;font-size:12px;min-width:0}.quick-form input:focus,.quick-form select:focus,.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus,.table-form input:focus,.table-form select:focus,.table-form textarea:focus{border-color:var(--rose);box-shadow:0 0 0 3px #bd73761e}.quick-form .btn{height:43px;padding:12px 17px;white-space:nowrap}
.section{padding:100px max(calc((100vw - var(--max))/2),5%)}.section.alt{background:var(--cream)}.welcome-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(50px,8vw,120px);align-items:center}.welcome-visual{position:relative;min-height:580px}.welcome-main-photo{position:absolute;top:0;left:0;width:75%;height:82%;object-fit:cover;border-radius:var(--radius) 90px var(--radius) var(--radius)}.welcome-small-photo{position:absolute;right:0;bottom:0;width:49%;height:45%;object-fit:cover;border:10px solid var(--paper);border-radius:65px var(--radius) var(--radius) var(--radius);box-shadow:var(--shadow)}.image-sticker{position:absolute;left:7%;bottom:7%;z-index:3;background:var(--sage);color:#fff9f1;padding:18px 22px;border-radius:15px 15px 15px 0;box-shadow:var(--shadow);font-size:10px;letter-spacing:1.1px;text-transform:uppercase}.image-sticker strong{display:block;font:500 22px 'Playfair Display',serif;letter-spacing:0;text-transform:none;margin-top:3px}.welcome-copy h2,.section-title{font:500 clamp(36px,4vw,56px)/1.12 'Playfair Display',serif;letter-spacing:-.8px;color:var(--plum);margin:0 0 20px}.welcome-copy h2 em,.section-title em{color:var(--rose);font-weight:500}.welcome-copy p:not(.eyebrow){color:#736a6d;font-size:13px;line-height:1.9}.welcome-copy .lead{font:500 20px/1.55 'Playfair Display',serif;color:var(--plum)!important}.signature{display:flex;align-items:center;gap:13px;margin:26px 0 27px}.signature-line{width:32px;height:1px;background:var(--gold)}.signature b{display:block;font:italic 19px 'Playfair Display',serif;color:var(--rose)}.signature small{display:block;font-size:9px;color:var(--muted);letter-spacing:.8px}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:35px}.section-heading .eyebrow{margin-bottom:12px}.section-heading .section-title{margin-bottom:0}.section-heading>p{max-width:390px;font-size:12px;color:var(--muted);margin:0 0 5px}.text-link{display:inline-flex;align-items:center;gap:10px;color:var(--plum);font-weight:700;font-size:11px;border-bottom:1px solid #bd73766b;padding:0 0 6px;transition:gap .2s,color .2s}.text-link:hover{gap:16px;color:var(--rose)}.room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.room-card{position:relative;display:flex;flex-direction:column;border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);overflow:hidden;box-shadow:0 9px 30px #3a263908;transition:transform .3s,box-shadow .3s,border-color .3s;cursor:pointer}.room-card:hover{transform:translateY(-7px);box-shadow:var(--shadow);border-color:#dcb7aa}.room-image{height:260px;overflow:hidden;position:relative;background:var(--rose-light)}.room-image img{width:100%;height:100%;object-fit:cover;transition:transform .65s}.room-card:hover .room-image img{transform:scale(1.06)}.room-badge{position:absolute;left:15px;top:15px;background:#fffaf2ec;color:var(--plum);padding:7px 11px;border-radius:999px;font-size:9px;text-transform:uppercase;letter-spacing:1px;font-weight:700;backdrop-filter:blur(8px)}.room-body{padding:23px 22px 21px;display:flex;flex-direction:column;flex:1}.room-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.room-head h3{font:500 26px/1.15 'Playfair Display',serif;color:var(--plum);margin:0}.room-no{font:italic 19px 'Playfair Display',serif;color:#d3b0a6}.room-body p{font-size:11px;color:var(--muted);line-height:1.8;margin:14px 0 15px}.room-amenities{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;margin-bottom:18px}.amenity-chip{display:inline-flex;gap:5px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:6px 9px;font-size:9px;color:#70666a;background:white}.room-footer{padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:var(--rose);font-size:11px;font-weight:700}.room-footer span:last-child{font-size:17px;transition:transform .2s}.room-card:hover .room-footer span:last-child{transform:translateX(4px)}.notice{padding:13px 17px;border-radius:12px;background:#f3eee7;color:#786c69;font-size:10px;line-height:1.75;margin-top:22px;border:1px solid #e8ddd3}.notice strong{color:var(--plum)}
.restaurant-band{display:grid;grid-template-columns:1.02fr .98fr;background:var(--plum);color:#fff7f1;border-radius:32px;overflow:hidden;min-height:470px}.restaurant-band-photo{min-height:440px;position:relative;overflow:hidden}.restaurant-band-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .7s}.restaurant-band:hover .restaurant-band-photo img{transform:scale(1.035)}.restaurant-band-copy{padding:clamp(32px,5vw,70px);align-self:center}.restaurant-band-copy .eyebrow{color:#f1c7b5}.restaurant-band-copy h2{font:500 clamp(36px,4vw,55px)/1.12 'Playfair Display',serif;margin:0 0 18px}.restaurant-band-copy h2 em{color:#e8b8a6}.restaurant-band-copy p:not(.eyebrow){font-size:12px;color:#dfd0d2;line-height:1.9}.restaurant-tags{display:flex;flex-wrap:wrap;gap:9px;margin:23px 0 27px}.restaurant-tags span{border:1px solid #ffffff35;border-radius:999px;padding:7px 11px;color:#f5dfd5;font-size:9px}.restaurant-band-copy .btn{margin-top:3px}
.amenity-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper)}.amenity-card{padding:28px 23px;min-height:200px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .2s}.amenity-card:nth-child(4n){border-right:0}.amenity-card:nth-child(n+5){border-bottom:0}.amenity-card:hover{background:#fbf0eb}.amenity-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:50%;background:var(--rose-light);color:var(--plum);font-size:19px;margin-bottom:20px}.amenity-card h3{font:500 22px 'Playfair Display',serif;color:var(--plum);margin:0 0 8px}.amenity-card p{font-size:10px;color:var(--muted);line-height:1.75;margin:0}
.gallery-preview{display:grid;grid-template-columns:1.22fr .78fr .78fr;grid-template-rows:230px 230px;gap:14px}.gallery-item{position:relative;overflow:hidden;border-radius:var(--radius-sm);background:var(--rose-light);cursor:pointer}.gallery-item.tall{grid-row:span 2}.gallery-item.wide{grid-column:span 1}.gallery-item img{height:100%;width:100%;object-fit:cover;transition:transform .5s}.gallery-item:hover img{transform:scale(1.06)}.gallery-item:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#271a2c96)}.gallery-caption{position:absolute;z-index:2;left:20px;bottom:16px;color:white;font-size:10px;letter-spacing:1px;text-transform:uppercase}.gallery-caption strong{display:block;font:500 24px 'Playfair Display',serif;letter-spacing:0;text-transform:none}
.location-home{display:grid;grid-template-columns:.85fr 1.15fr;gap:42px;align-items:stretch;background:var(--cream);padding:76px max(calc((100vw - var(--max))/2),5%)}.location-home-copy{align-self:center}.location-home-copy h2{font:500 clamp(37px,4vw,55px)/1.12 'Playfair Display',serif;color:var(--plum);margin:0 0 20px}.location-home-copy h2 em{color:var(--rose)}.location-home-copy p{font-size:12px;line-height:1.9;color:var(--muted)}.location-lines{display:grid;gap:11px;margin:22px 0 27px}.location-line{display:flex;gap:12px;align-items:flex-start;font-size:11px;color:#60565d}.location-line>span{flex-shrink:0;color:var(--rose);font-size:17px}.map-frame{width:100%;min-height:420px;border:0;border-radius:var(--radius);box-shadow:var(--shadow);background:#e7e0d8}.quote-band{text-align:center;padding:78px 6%;background:var(--rose-light);position:relative;overflow:hidden}.quote-band:before,.quote-band:after{content:'✿';position:absolute;font-size:125px;color:#bd73761a;line-height:1}.quote-band:before{left:7%;top:0}.quote-band:after{right:8%;bottom:-24px}.quote-band .eyebrow{justify-content:center;color:var(--rose)}.quote-band p{max-width:760px;margin:0 auto;color:var(--plum);font:500 clamp(27px,3.7vw,43px)/1.3 'Playfair Display',serif}.quote-band p em{color:var(--rose)}.quote-band small{display:block;margin-top:20px;color:var(--muted);font-size:9px;letter-spacing:1.8px;text-transform:uppercase}
.cta-section{background:var(--plum);color:white;padding:62px max(calc((100vw - var(--max))/2),5%);display:flex;align-items:center;justify-content:space-between;gap:35px;position:relative;overflow:hidden}.cta-section:after{content:'✿';position:absolute;right:24%;top:-70px;color:#ffffff06;font-size:240px;pointer-events:none}.cta-section h2{font:500 clamp(35px,4.3vw,55px)/1.14 'Playfair Display',serif;margin:0}.cta-section h2 em{color:#efc3b1}.cta-actions{display:flex;gap:12px;flex-wrap:wrap;z-index:1}.site-footer{background:#281b29;color:#e9dbd8;padding:56px max(calc((100vw - var(--max))/2),5%) 0}.footer-main{display:grid;grid-template-columns:1.4fr .75fr 1.05fr .8fr;gap:35px;padding-bottom:45px}.brand-light .brand-copy b{color:#fff8f1}.brand-light .brand-copy small{color:#e2b6a9}.footer-brand>p{max-width:265px;color:#bfaeb9;font-size:10px;line-height:1.9;margin:18px 0}.footer-main h4{font-size:9px;letter-spacing:2px;color:#d99c8d;margin:6px 0 19px}.footer-main>div:not(.footer-brand):not(.footer-note){display:flex;flex-direction:column;gap:10px}.footer-main>div:not(.footer-brand):not(.footer-note)>a,.footer-main>div:not(.footer-brand):not(.footer-note)>span{font-size:10px;color:#d8c8cf;line-height:1.8;overflow-wrap:anywhere}.footer-main a:hover{color:#e8bba9}.footer-note{text-align:center;align-self:center}.footer-flower{font-size:44px;color:#d89a8c}.footer-note p{font:italic 21px/1.4 'Playfair Display',serif;color:#f1d4ca}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0 22px;border-top:1px solid #ffffff20;color:#aa9ca9;font-size:9px}.footer-bottom a{margin-left:17px}.mobile-contact{display:none}.back-top{position:fixed;right:25px;bottom:25px;z-index:70;width:44px;height:44px;border:0;border-radius:50%;background:var(--rose);color:white;box-shadow:var(--shadow);font-size:20px;opacity:0;pointer-events:none;transform:translateY(8px);transition:.25s}.back-top.show{opacity:1;pointer-events:auto;transform:translateY(0)}
/* Inner pages */
.inner-hero{position:relative;min-height:440px;height:52vh;max-height:590px;display:flex;align-items:center;overflow:hidden;background:var(--plum);color:white}.inner-hero>img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;z-index:0;opacity:.58}.inner-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#2b1c2be8,#2b1c2b79 62%,#2b1c2b20)}.inner-hero-content{position:relative;z-index:2;width:min(var(--max),90%);margin:0 auto;padding:45px 0}.inner-hero h1{font-size:clamp(43px,5vw,72px);margin-bottom:18px;max-width:760px}.inner-hero-content>p:not(.eyebrow){max-width:620px;color:#f1e2e0;font-size:13px;line-height:1.85;margin:0}.inner-hero-bottom{position:absolute;z-index:2;right:max(calc((100vw - var(--max))/2),5%);bottom:25px;font-size:9px;letter-spacing:2px;color:#f8ded5;text-transform:uppercase}.page-intro{max-width:790px;margin:0 auto;padding:75px 5% 30px;text-align:center}.page-intro h2{font:500 clamp(32px,4vw,51px)/1.15 'Playfair Display',serif;color:var(--plum);margin:0 0 17px}.page-intro h2 em{color:var(--rose)}.page-intro p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.9}.page-intro .eyebrow{justify-content:center}
.room-detail-list{padding-top:26px}.room-detail{display:grid;grid-template-columns:1fr 1fr;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:26px;min-height:420px;scroll-margin-top:115px}.room-detail:nth-child(even) .room-detail-photo{order:2}.room-detail-photo{position:relative;min-height:420px;background:var(--rose-light)}.room-detail-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.room-detail-copy{padding:clamp(30px,4vw,57px);align-self:center}.room-detail-copy h2{font:500 clamp(30px,3vw,43px)/1.12 'Playfair Display',serif;color:var(--plum);margin:0 0 14px}.room-detail-copy p{font-size:12px;color:var(--muted);line-height:1.9}.room-detail-copy .room-amenities{margin-top:20px}.room-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.room-price-note{font-size:10px;background:white;border-left:3px solid var(--rose);padding:11px 14px;color:var(--muted);margin-top:20px}
.menu-tabs{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;margin:28px auto 35px}.menu-tab{border:1px solid var(--line);background:white;color:var(--plum);border-radius:999px;padding:11px 17px;font-weight:700;font-size:10px;transition:.2s}.menu-tab:hover,.menu-tab.active{background:var(--plum);color:white;border-color:var(--plum)}.menu-section{padding-top:15px}.menu-section[hidden]{display:none}.menu-section h2{font:500 34px 'Playfair Display',serif;color:var(--plum);margin:0 0 20px}.menu-section h2 span{display:block;font:700 9px 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:2px;color:var(--rose);margin-bottom:7px}.menu-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.menu-item{padding:18px 20px;border:1px solid var(--line);background:#fffdfa;border-radius:16px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start;transition:.2s}.menu-item:hover{border-color:#d8b1a5;transform:translateY(-2px)}.menu-item h3{font:500 19px 'Playfair Display',serif;color:var(--plum);margin:0 0 4px}.menu-item p{font-size:10px;color:var(--muted);margin:0}.menu-item strong{font-size:12px;color:var(--rose);white-space:nowrap}.menu-banner{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:center;background:var(--cream);border-radius:var(--radius);overflow:hidden;margin-bottom:20px}.menu-banner img{width:100%;height:300px;object-fit:cover}.menu-banner-copy{padding:30px 38px 30px 0}.menu-banner-copy h2{font:500 34px/1.12 'Playfair Display',serif;color:var(--plum);margin:0 0 13px}.menu-banner-copy p{font-size:12px;color:var(--muted)}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:230px;gap:14px}.gallery-tile{border:0;padding:0;position:relative;overflow:hidden;border-radius:19px;background:var(--rose-light);cursor:pointer;text-align:left}.gallery-tile:nth-child(1){grid-column:span 2;grid-row:span 2}.gallery-tile:nth-child(4){grid-column:span 2}.gallery-tile img{height:100%;width:100%;object-fit:cover;transition:transform .5s}.gallery-tile:hover img{transform:scale(1.06)}.gallery-tile:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#251a26a6)}.gallery-tile span{position:absolute;z-index:2;left:16px;bottom:14px;color:white;font:500 21px 'Playfair Display',serif}.lightbox{display:none;position:fixed;inset:0;z-index:200;background:#160f19ed;align-items:center;justify-content:center;padding:35px}.lightbox.open{display:flex}.lightbox img{max-height:85vh;max-width:min(1100px,92vw);object-fit:contain;border-radius:15px}.lightbox button{position:absolute;top:20px;right:25px;border:1px solid #ffffff50;border-radius:50%;width:45px;height:45px;background:#ffffff15;color:white;font-size:25px}
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.story-image{height:580px;border-radius:30px 110px 30px 30px;overflow:hidden}.story-image img{height:100%;width:100%;object-fit:cover}.story-copy h2{font:500 clamp(35px,4vw,53px)/1.15 'Playfair Display',serif;color:var(--plum);margin:0 0 22px}.story-copy h2 em{color:var(--rose)}.story-copy p{font-size:12px;line-height:1.95;color:var(--muted)}.story-values{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:25px}.value-card{border:1px solid var(--line);border-radius:14px;padding:15px;background:var(--cream)}.value-card b{display:block;color:var(--plum);font:500 19px 'Playfair Display',serif}.value-card small{font-size:10px;color:var(--muted)}
.location-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:start}.location-detail-card{border:1px solid var(--line);border-radius:var(--radius);padding:29px;background:var(--cream);margin-bottom:15px}.location-detail-card h3{font:500 23px 'Playfair Display',serif;color:var(--plum);margin:0 0 9px}.location-detail-card p{font-size:11px;line-height:1.8;color:var(--muted);margin:0 0 12px}.location-detail-card a{color:var(--rose);font-size:11px;font-weight:700}.location-map{height:560px;width:100%;border:0;border-radius:var(--radius);box-shadow:var(--shadow);background:#e6ddd4}.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:55px;align-items:start}.contact-intro h2{font:500 clamp(35px,4vw,50px)/1.1 'Playfair Display',serif;color:var(--plum);margin:0 0 17px}.contact-intro h2 em{color:var(--rose)}.contact-intro>p{font-size:12px;color:var(--muted);line-height:1.9}.contact-action{display:flex;gap:14px;align-items:center;padding:17px 0;border-bottom:1px solid var(--line)}.contact-action-icon{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:var(--rose-light);color:var(--plum);font-size:18px}.contact-action b{display:block;color:var(--plum);font-size:12px}.contact-action small{display:block;font-size:10px;color:var(--muted)}.contact-action>a:last-child{margin-left:auto;color:var(--rose);font-size:11px;font-weight:700}.contact-form,.table-form{padding:clamp(25px,4vw,43px);background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 15px 45px #3a26390a}.contact-form h3,.table-form h3{font:500 31px 'Playfair Display',serif;color:var(--plum);margin:0 0 5px}.contact-form>p,.table-form>p{font-size:11px;color:var(--muted);margin:0 0 25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-field{min-width:0}.form-field.full{grid-column:1/-1}.form-field label{display:block;font-size:9px;letter-spacing:1.3px;text-transform:uppercase;font-weight:700;color:#75686e;margin-bottom:6px}.form-field textarea{resize:vertical;min-height:100px}.contact-form .btn,.table-form .btn{width:100%;margin-top:17px}.form-hint{margin-top:13px;font-size:9px;line-height:1.7;color:var(--muted)}
.faq-layout{display:grid;grid-template-columns:.65fr 1.35fr;gap:55px}.faq-aside h2{font:500 42px/1.1 'Playfair Display',serif;color:var(--plum);margin:0 0 18px}.faq-aside h2 em{color:var(--rose)}.faq-aside p{font-size:12px;color:var(--muted);line-height:1.9}.faq-list{display:grid;gap:11px}.faq-item{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:white}.faq-question{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;width:100%;border:0;background:transparent;text-align:left;color:var(--plum);font-weight:700;font-size:12px}.faq-question span:last-child{font-size:20px;color:var(--rose);transition:transform .2s}.faq-question[aria-expanded="true"] span:last-child{transform:rotate(45deg)}.faq-answer{padding:0 20px 18px;color:var(--muted);font-size:11px;line-height:1.9}.faq-answer[hidden]{display:none}.legal{max-width:850px;margin:0 auto}.legal h2{font:500 24px 'Playfair Display',serif;color:var(--plum);margin:31px 0 10px}.legal p,.legal li{color:var(--muted);font-size:12px;line-height:1.95}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes heroBreath{from{transform:scale(1)}to{transform:scale(1.07)}}@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media(max-width:1080px){.site-header{gap:15px}.main-nav{gap:13px}.main-nav>a{font-size:10px}.brand-logo{width:48px;height:48px}.brand-copy b{font-size:11px;letter-spacing:1.6px}.main-nav .nav-cta{padding:11px 14px}.quick-bar{grid-template-columns:1fr}.quick-form{grid-template-columns:1fr 1fr .8fr auto}.room-image{height:220px}.room-body{padding:20px 17px}.room-head h3{font-size:23px}.amenity-card{padding:24px 17px}.footer-main{grid-template-columns:1.2fr .75fr 1fr;gap:28px}.footer-note{display:none}}
@media(max-width:780px){.announcement{padding:8px 5%;font-size:8px;letter-spacing:1.1px}.announcement .right{font-size:9px}.site-header{padding:11px 5%;min-height:72px}.brand-logo{width:48px;height:48px}.brand-copy b{font-size:11px}.menu-toggle{display:flex}.main-nav{position:fixed;top:72px;right:0;bottom:0;width:min(340px,88vw);background:var(--paper);padding:30px 25px;display:flex;align-items:stretch;flex-direction:column;gap:0;box-shadow:-20px 20px 45px #251a261c;transform:translateX(110%);transition:transform .28s ease;overflow:auto}.main-nav.open{transform:translateX(0)}.main-nav>a{font-size:14px;padding:15px 0;border-bottom:1px solid var(--line)}.main-nav>a:after{display:none}.main-nav .nav-cta{margin-top:20px;padding:15px 18px;text-align:center;border-bottom:0}.hero{min-height:690px;height:80svh;max-height:840px;align-items:flex-end}.hero:before{background:linear-gradient(0deg,rgba(35,22,35,.94) 0%,rgba(48,29,43,.72) 48%,rgba(49,37,45,.25) 100%)}.hero-photo{object-position:47% center}.hero-inner{width:90%;padding:80px 0 115px}.hero h1{font-size:clamp(44px,10.5vw,68px);letter-spacing:-1.1px;margin-bottom:18px}.hero-copy{font-size:12px;max-width:460px}.hero-note{display:none}.hero-pills{gap:7px;margin-bottom:20px}.hero-pill{font-size:9px;padding:7px 10px}.hero-actions .btn{padding:13px 16px;font-size:10px}.quick-bar{margin-top:-31px;padding:19px 17px;width:90%;border-radius:18px}.quick-intro{margin-bottom:3px}.quick-form{grid-template-columns:1fr 1fr;gap:11px}.quick-form .btn{grid-column:1/-1;width:100%}.section{padding:72px 5%}.welcome-grid{grid-template-columns:1fr;gap:37px}.welcome-visual{min-height:400px}.welcome-main-photo{width:79%;height:83%;border-radius:22px 65px 22px 22px}.welcome-small-photo{width:48%;height:41%;border-width:7px;border-radius:42px 16px 16px 16px}.image-sticker{left:4%;bottom:5%;padding:13px 16px;font-size:8px}.image-sticker strong{font-size:19px}.welcome-copy h2,.section-title{font-size:clamp(35px,9vw,46px)}.welcome-copy .lead{font-size:18px!important}.section-heading{align-items:flex-start;flex-direction:column;gap:15px;margin-bottom:25px}.section-heading .section-title{font-size:37px}.room-grid{grid-template-columns:1fr;gap:16px}.room-card{display:grid;grid-template-columns:.86fr 1.14fr;min-height:0}.room-image{height:100%;min-height:255px}.room-body{padding:20px 17px}.room-head h3{font-size:23px}.room-body p{font-size:10px;margin:10px 0}.room-amenities{gap:6px;margin-bottom:12px}.amenity-chip{font-size:8px;padding:5px 7px}.room-footer{font-size:9px}.room-footer span:last-child{font-size:15px}.restaurant-band{grid-template-columns:1fr;border-radius:23px}.restaurant-band-photo{min-height:300px}.restaurant-band-copy{padding:31px 26px 34px}.restaurant-band-copy h2{font-size:39px}.restaurant-band-copy p:not(.eyebrow){font-size:11px}.amenity-grid{grid-template-columns:1fr 1fr}.amenity-card{min-height:165px;padding:20px 15px}.amenity-card:nth-child(2n){border-right:0}.amenity-card:nth-child(4n){border-right:0}.amenity-card:nth-child(5){border-bottom:0}.amenity-card:nth-child(n+5){border-bottom:0}.amenity-icon{width:39px;height:39px;margin-bottom:13px}.amenity-card h3{font-size:19px}.gallery-preview{grid-template-columns:1fr 1fr;grid-template-rows:230px 175px 175px;gap:9px}.gallery-item.tall{grid-row:span 2}.gallery-item:last-child{display:none}.gallery-caption{left:12px;bottom:12px;font-size:8px}.gallery-caption strong{font-size:19px}.location-home{grid-template-columns:1fr;gap:27px;padding:67px 5%}.location-home-copy h2{font-size:40px}.map-frame{min-height:340px}.quote-band{padding:62px 7%}.quote-band p{font-size:29px}.quote-band:before{left:-20px;font-size:80px}.quote-band:after{right:-20px;font-size:80px}.cta-section{padding:50px 5%;display:block}.cta-section h2{font-size:38px}.cta-actions{margin-top:25px}.site-footer{padding:42px 5% 0}.footer-main{grid-template-columns:1fr 1fr;gap:28px 20px;padding-bottom:33px}.footer-brand{grid-column:1/-1}.footer-brand>p{max-width:340px}.footer-bottom{align-items:flex-start;flex-direction:column;gap:8px;padding-bottom:20px}.mobile-contact{position:fixed;bottom:0;left:0;right:0;z-index:91;display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:#fffdf9f2;backdrop-filter:blur(10px);border-top:1px solid var(--line)}.mobile-contact a{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 10px;border-radius:999px;font-size:11px;font-weight:700}.mobile-call{background:var(--plum);color:white}.mobile-wa{background:var(--rose-light);color:var(--plum)}.back-top{bottom:82px;right:14px}.inner-hero{height:435px;min-height:400px}.inner-hero-content{width:90%;padding:32px 0 58px}.inner-hero h1{font-size:clamp(42px,9.5vw,58px)}.inner-hero-content>p:not(.eyebrow){font-size:11px;max-width:360px}.inner-hero-bottom{font-size:7px;right:5%;letter-spacing:1.2px;bottom:19px}.page-intro{padding-top:62px}.page-intro h2{font-size:35px}.room-detail{grid-template-columns:1fr;margin-bottom:18px}.room-detail:nth-child(even) .room-detail-photo{order:0}.room-detail-photo{min-height:275px;height:275px}.room-detail-copy{padding:25px 22px}.room-detail-copy h2{font-size:34px}.room-detail-copy p{font-size:11px}.room-price-note{font-size:9px}.menu-tabs{justify-content:flex-start;overflow-x:auto;padding-bottom:8px;flex-wrap:nowrap}.menu-tab{white-space:nowrap}.menu-items{grid-template-columns:1fr}.menu-item{padding:16px 17px}.menu-banner{grid-template-columns:1fr;gap:0}.menu-banner img{height:240px}.menu-banner-copy{padding:25px 22px 29px}.menu-banner-copy h2{font-size:30px}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:180px;gap:8px}.gallery-tile:nth-child(1){grid-row:span 2}.gallery-tile:nth-child(4){grid-column:span 1}.gallery-tile span{font-size:17px;left:11px;bottom:10px}.story-grid{grid-template-columns:1fr;gap:30px}.story-image{height:355px;border-radius:23px 80px 23px 23px}.story-copy h2{font-size:37px}.story-values{gap:9px}.location-layout{grid-template-columns:1fr;gap:25px}.location-map{height:390px}.location-detail-card{padding:22px}.contact-layout{grid-template-columns:1fr;gap:30px}.contact-intro h2{font-size:39px}.contact-form,.table-form{padding:25px 19px}.contact-form h3,.table-form h3{font-size:27px}.form-grid{gap:12px}.faq-layout{grid-template-columns:1fr;gap:28px}.faq-aside h2{font-size:35px}.faq-question{font-size:11px;padding:16px}.faq-answer{padding:0 16px 17px;font-size:10px}.legal h2{font-size:22px}}
@media(max-width:430px){.announcement .right{display:none}.brand{gap:8px}.brand-logo{width:43px;height:43px}.brand-copy b{font-size:10px;letter-spacing:1.4px}.brand-copy small{font-size:8px;letter-spacing:1.5px}.room-card{grid-template-columns:1fr}.room-image{height:230px;min-height:0}.room-body{padding:20px}.room-body p{font-size:11px}.room-head h3{font-size:25px}.room-footer{font-size:10px}.hero h1{font-size:46px}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.footer-main{grid-template-columns:1fr 1fr;gap:25px 15px}.footer-main h4{font-size:8px}.footer-main>div:not(.footer-brand):not(.footer-note)>a,.footer-main>div:not(.footer-brand):not(.footer-note)>span{font-size:9px}.gallery-grid{grid-auto-rows:150px}.gallery-tile:nth-child(1){grid-row:span 2}.gallery-preview{grid-template-rows:210px 150px 150px}.mobile-contact a{font-size:10px}.map-frame{min-height:300px}}


/* ===== RESPONSIVE REPAIR: HERO IMAGE + TRUE MOBILE WIDTH ===== */
@media (max-width: 780px) {
  html, body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip !important;
  }
  body { min-width: 0; }
  #main-content { width: 100%; max-width: 100%; overflow-x: clip; }
  .announcement, .site-header, .hero, .site-footer { width: 100%; max-width: 100%; min-width: 0; }

  /* Keep the mobile menu inside the header's width so it cannot create
     an invisible horizontal page that users can accidentally swipe to. */
  .site-header { position: sticky; }
  .main-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    bottom: auto;
    width: 100%;
    max-width: 100%;
    max-height: calc(100svh - 125px);
    overflow-x: hidden;
    overflow-y: auto;
    padding: 12px 6% 22px;
    border-radius: 0 0 20px 20px;
    box-shadow: 0 18px 38px rgba(43, 28, 43, .18);
    transform: translateY(-8px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
  }
  .main-nav.open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  /* The owner's original photo is landscape. Show it in its natural shape
     on phones instead of stretching it to cover a very tall viewport. */
  .hero {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    height: auto;
    min-height: 0;
    max-height: none;
    overflow: hidden;
  }
  .hero-photo {
    position: relative;
    inset: auto;
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: center 35%;
    z-index: 0;
    transform: none !important;
    animation: none !important;
  }
  .hero::before { display: none; }
  .hero-inner {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 27px 6% 32px;
    background: linear-gradient(145deg, var(--plum), var(--plum-deep));
    animation: none;
  }
  .hero h1 {
    max-width: 100%;
    font-size: clamp(34px, 8.5vw, 39px);
    line-height: 1.08;
    letter-spacing: -.65px;
    margin-bottom: 15px;
  }
  .hero-copy { max-width: 100%; font-size: 12px; line-height: 1.75; margin-bottom: 18px; }
  .hero-pills { gap: 7px; margin-bottom: 18px; }
  .hero-pill { font-size: 9px; padding: 6px 9px; }
  .hero-actions { gap: 9px; }
  .hero-actions .btn { padding: 12px 14px; font-size: 10px; }
  .hero-note { display: none; }
}
@media (max-width: 430px) {
  .hero h1 { font-size: clamp(32px, 8.5vw, 36px); }
  .hero-inner { padding: 24px 5.5% 29px; }
  .hero-actions .btn { padding: 11px 12px; }
}


/* ===== MOBILE NAV: KEEP STICKY HEADER VISIBLE WHILE MENU IS OPEN ===== */
@media (max-width: 780px) {
  .site-header {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 1000 !important;
  }
  .main-nav {
    z-index: 1001 !important;
  }
  /* Opening the navigation must not lock the page scroll, because that
     can break sticky positioning on some mobile browsers. */
  body.nav-open {
    overflow-y: auto !important;
    overflow-x: clip !important;
  }
}


/* ===== MOBILE HERO: TEXT OVER BACKGROUND IMAGE ===== */
@media (max-width: 780px) {
  .hero {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    height: auto;
    min-height: clamp(620px, 82svh, 760px);
    max-height: none;
    overflow: hidden;
    isolation: isolate;
    background: var(--plum);
  }

  /* Photo stays behind the entire hero */
  .hero-photo {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center 38%;
    z-index: -2 !important;
    animation: none !important;
    transform: none !important;
  }

  /* Dark overlay keeps text readable */
  .hero::before {
    content: "";
    display: block !important;
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
      0deg,
      rgba(35, 22, 35, 0.92) 0%,
      rgba(48, 29, 43, 0.68) 52%,
      rgba(49, 37, 45, 0.18) 100%
    ) !important;
  }

  /* Content sits directly on the photo */
  .hero-inner {
    position: relative;
    z-index: 1;
    width: 90%;
    max-width: var(--max);
    margin: 0 auto;
    padding: 65px 0 90px;
    background: transparent !important;
    animation: none;
  }

  /* Smaller headline for mobile */
  .hero h1 {
    font-size: clamp(32px, 8.5vw, 39px);
    line-height: 1.08;
    letter-spacing: -0.65px;
    margin-bottom: 15px;
  }

  .hero-copy {
    max-width: 100%;
    font-size: 12px;
    line-height: 1.75;
    margin-bottom: 18px;
  }

  .hero-note {
    display: none;
  }
}

@media (max-width: 430px) {
  .hero-inner {
    padding: 55px 0 85px;
  }

  .hero h1 {
    font-size: clamp(31px, 8.3vw, 36px);
  }

  .hero-actions {
    gap: 8px;
  }

  .hero-actions .btn {
    padding: 11px 12px;
    font-size: 10px;
  }
}
