:root{
  --bg:#f5f2ec;--paper:#fbfaf7;--ink:#172126;--muted:#667278;--line:#dcdedb;
  --teal:#0d575c;--teal2:#0b6d73;--dark:#11191c;--warm:#d5c4b0;--white:#fff;
  --shadow:0 24px 70px rgba(18,30,34,.12);--serif:"Cormorant Garamond","Baskerville","Times New Roman",serif;
  --sans:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;--container:min(1220px,calc(100% - 40px));
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.55;overflow-x:hidden}body.modal-open{overflow:hidden}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{width:var(--container);margin:0 auto}.section{padding:110px 0}.kicker{margin:0 0 14px;text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:700;color:var(--teal)}.kicker.light{color:#c8dddd}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:.96;margin:0}h1{font-size:clamp(64px,7.5vw,118px);letter-spacing:-.035em}h1 em{font-style:italic;color:#d5eeee}h2{font-size:clamp(46px,5vw,76px);letter-spacing:-.03em}h3{font-size:clamp(34px,3vw,50px);letter-spacing:-.02em}p{margin:0 0 18px;color:var(--muted)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:none}
.site-header{position:fixed;left:0;right:0;top:0;z-index:40;color:white;transition:.25s}.site-header.scrolled{background:rgba(251,250,247,.94);color:var(--ink);box-shadow:0 1px 0 rgba(17,25,28,.08);backdrop-filter:blur(14px)}.header-inner{height:86px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:inline-flex;align-items:center;gap:12px}.brand-mark{font:600 42px/.8 var(--serif);letter-spacing:-.06em}.brand-text{display:flex;flex-direction:column;font-size:10px;letter-spacing:.16em}.brand-text small{font-size:9px;opacity:.72}.main-nav{display:flex;align-items:center;gap:28px;font-size:13px}.main-nav a:not(.header-cta){opacity:.88}.main-nav a:hover{opacity:1}.header-cta{padding:11px 17px;border:1px solid currentColor;border-radius:999px}.site-header.scrolled .header-cta{background:var(--teal);border-color:var(--teal);color:white}.menu-toggle{display:none;background:none;border:0;padding:10px}.menu-toggle span{display:block;width:24px;height:2px;background:currentColor;margin:5px}
.hero{position:relative;min-height:930px;color:#fff;display:flex;align-items:flex-end;overflow:visible}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,18,20,.86) 0%,rgba(8,18,20,.58) 38%,rgba(8,18,20,.15) 78%),linear-gradient(0deg,rgba(8,18,20,.4),transparent 45%)}.hero-layout{position:relative;z-index:2;display:grid;grid-template-columns:1fr 340px;gap:70px;align-items:end;padding:190px 0 180px}.hero-copy{max-width:780px}.hero-lead{font-size:18px;max-width:610px;color:rgba(255,255,255,.78);margin:28px 0 32px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.btn{border:0;border-radius:12px;padding:15px 22px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:.2s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--teal);color:white}.btn-primary:hover{background:var(--teal2)}.btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--ink)}.btn-light{background:white;color:var(--teal)}.btn-ghost-light{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.34);color:white}.full{width:100%}.hero-index{display:grid;border-top:1px solid rgba(255,255,255,.35)}.hero-index div{display:grid;grid-template-columns:42px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.2)}.hero-index span{font-size:11px;letter-spacing:.18em;color:#c5dddd}.hero-index strong{font:500 22px/1.2 var(--serif)}
.ring-motif{position:absolute;border:1px solid rgba(205,240,239,.26);border-radius:50%;pointer-events:none}.ring-a{width:410px;height:410px;right:-120px;top:85px}.ring-b{width:280px;height:280px;right:70px;top:200px}.ring-c{width:145px;height:145px;right:230px;top:125px}.search-dock{position:absolute;z-index:4;left:50%;bottom:-46px;transform:translateX(-50%);width:var(--container)}.search-panel{background:rgba(255,255,255,.97);border-radius:18px;box-shadow:0 28px 65px rgba(0,0,0,.2);display:grid;grid-template-columns:1fr 1fr .8fr auto;align-items:end;padding:17px}.search-panel label{padding:0 18px;border-right:1px solid #e5e5e2}.search-panel label span,label>span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:#737e82;margin-bottom:7px}.search-panel input,.search-panel select{width:100%;border:0;background:transparent;color:var(--ink);font-weight:600;outline:none;padding:4px 0}.search-btn{height:54px;min-width:190px}.form-error{position:absolute;top:calc(100% + 8px);left:18px;color:#a33434;font-size:12px}
.contrast-strip{padding:82px 0 28px;background:var(--paper)}.contrast-inner{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center}.contrast-inner p{font:500 clamp(30px,4vw,56px)/1 var(--serif);margin:0;color:#737b79}.contrast-inner .accent{color:var(--teal)}.contrast-line{height:1px;background:#cfd5d1}
.section-head{display:grid;grid-template-columns:1fr .72fr;gap:80px;align-items:end;margin-bottom:50px}.section-copy{max-width:520px;font-size:17px}.journey-section{background:var(--paper)}.journey-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.journey-card{text-align:left;background:#f1eee8;border:1px solid transparent;border-radius:18px;padding:28px;min-height:310px;display:flex;flex-direction:column;color:var(--ink);transition:.25s}.journey-card:hover,.journey-card.active{background:var(--dark);color:white;transform:translateY(-4px);box-shadow:var(--shadow)}.journey-no{font-size:11px;letter-spacing:.18em;color:var(--teal);margin-bottom:auto}.journey-card.active .journey-no,.journey-card:hover .journey-no{color:#9bd0d0}.journey-title{font:500 38px/1 var(--serif);margin-bottom:18px}.journey-text{font-size:14px;color:var(--muted)}.journey-card.active .journey-text,.journey-card:hover .journey-text{color:rgba(255,255,255,.65)}.journey-arrow{font-size:26px;margin-top:24px}.recommendation{margin-top:18px;border:1px solid #cfd6d1;border-radius:18px;padding:26px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:white}.recommendation h3{font-size:42px}.recommendation p{margin-bottom:0}.recommendation-actions{display:flex;gap:10px;flex-shrink:0}
.editorial-rooms{background:#ece8e1}.search-context{display:inline-flex;align-items:center;gap:12px;padding:10px 14px;background:#fff;border-radius:999px;font-size:13px}.room-story{display:grid;grid-template-columns:1.2fr .8fr;min-height:650px;background:var(--paper);margin-bottom:28px;overflow:hidden;border-radius:22px}.room-story.reverse{grid-template-columns:.8fr 1.2fr}.room-story.reverse .room-story-image{order:2}.room-story-image{position:relative;min-height:650px;overflow:hidden}.room-story-image img{width:100%;height:100%;object-fit:cover}.image-label{position:absolute;left:24px;top:24px;background:rgba(251,250,247,.92);padding:9px 12px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.16em}.room-story-copy{padding:68px;display:flex;flex-direction:column;justify-content:center}.story-index{font-size:11px;letter-spacing:.18em;color:var(--teal);margin-bottom:32px}.room-story-copy h3{margin-bottom:24px}.room-story-copy p{font-size:16px}.story-facts{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 30px}.story-facts span{padding:8px 11px;background:#e7efed;border-radius:999px;font-size:12px;color:#31575a}.muted-facts span{background:#eee9e1;color:#6a6259}.story-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.text-link{background:none;border:0;padding:8px 0;color:var(--teal);font-weight:700}.text-link-light{color:#d4eeee;font-weight:700}
.city-bridge{position:relative;background:var(--dark);color:white;padding:120px 0;overflow:hidden}.city-word{position:absolute;left:-1vw;right:-1vw;top:18px;font:600 clamp(90px,16vw,270px)/.8 var(--serif);white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(176,220,218,.11);letter-spacing:-.05em}.city-bridge-grid{position:relative;display:grid;grid-template-columns:1.2fr .8fr;gap:100px;align-items:end}.city-bridge h2{max-width:760px}.city-bridge p{color:rgba(255,255,255,.66);font-size:18px}.city-bridge .kicker{color:#a7d7d6}
.day-section{background:var(--paper)}.day-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}.day-photo{height:680px;border-radius:22px;overflow:hidden}.day-photo img{width:100%;height:100%;object-fit:cover;transition:opacity .2s}.day-content h2{margin-bottom:42px}.day-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:30px}.day-tab{background:none;border:0;padding:12px 18px 14px;color:var(--muted);font-weight:700;border-bottom:2px solid transparent}.day-tab.active{color:var(--teal);border-color:var(--teal)}.day-time{font-size:11px;letter-spacing:.18em;color:var(--teal);font-weight:700}.day-copy h3{font-size:42px;margin:8px 0 16px}.day-copy p{max-width:560px;font-size:17px}
.gallery-section{background:#ece8e1}.editorial-gallery{display:grid;grid-template-columns:1.35fr .65fr .65fr;grid-auto-rows:260px;gap:12px}.gallery-tile{border:0;padding:0;position:relative;overflow:hidden;border-radius:16px;background:#ccc}.gallery-tile:first-child{grid-row:span 2}.gallery-tile:nth-child(4){grid-column:span 2}.gallery-tile img{width:100%;height:100%;object-fit:cover;transition:.3s}.gallery-tile:hover img{transform:scale(1.025)}.gallery-tile span{position:absolute;left:16px;bottom:14px;color:white;font-size:12px;background:rgba(13,30,32,.72);padding:7px 9px;border-radius:999px}
.location-section{background:var(--teal);color:white;padding:110px 0}.location-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:80px;align-items:center}.location-copy h2{margin-bottom:22px}.location-copy p{color:rgba(255,255,255,.66)}.location-copy address{font-style:normal;font:500 30px/1.25 var(--serif);margin:28px 0}.location-visual{height:520px;position:relative;border-radius:22px;overflow:hidden}.location-visual img{width:100%;height:100%;object-fit:cover}.map-badge{position:absolute;right:18px;bottom:18px;background:white;color:var(--ink);padding:14px 18px;border-radius:14px;display:flex;gap:12px;align-items:center;box-shadow:var(--shadow)}.map-badge strong{font:600 36px/.8 var(--serif);color:var(--teal)}.map-badge span{font-size:12px}
.final-cta{position:relative;background:#0b1518;color:white;padding:120px 0;overflow:hidden}.final-cta-inner{text-align:center;position:relative;z-index:2}.final-cta h2{max-width:900px;margin:0 auto 34px}.ring-final{width:780px;height:780px;left:50%;top:50%;transform:translate(-50%,-50%);border-color:rgba(160,222,220,.12)}
.site-footer{background:#080e10;color:white;padding:60px 0 28px}.footer-grid{display:grid;grid-template-columns:1.3fr .7fr 1fr;gap:60px}.site-footer p,.site-footer address{color:rgba(255,255,255,.56);font-style:normal}.site-footer a:not(.brand){display:block;color:rgba(255,255,255,.7);margin:9px 0}.footer-label{display:block;color:white;font-size:11px;text-transform:uppercase;letter-spacing:.16em;margin-bottom:15px}.brand-light{color:white}.brand-light .brand-text small{color:rgba(255,255,255,.55)}
.mobile-sticky{display:none}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px}.modal-backdrop{position:absolute;inset:0;background:rgba(5,12,14,.72);backdrop-filter:blur(8px)}.modal-card{position:relative;z-index:2;width:min(980px,100%);max-height:calc(100vh - 36px);overflow:auto;background:var(--paper);border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.35);outline:none}.modal-close{position:sticky;float:right;right:16px;top:16px;z-index:8;width:42px;height:42px;border-radius:50%;border:0;background:#fff;font-size:28px;box-shadow:var(--shadow)}.room-modal-card{display:grid;grid-template-columns:1.15fr .85fr}.room-modal-gallery{position:relative;min-height:650px}.room-modal-gallery>img{width:100%;height:100%;object-fit:cover}.room-modal-copy{padding:70px 52px}.room-modal-copy h2{font-size:56px;margin-bottom:20px}.room-context{background:#e5efed;padding:10px 12px;border-radius:10px;font-size:13px;margin:18px 0}.amenity-list{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.amenity-list span{background:#ebe7df;padding:8px 10px;border-radius:999px;font-size:12px}.image-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.9);font-size:28px}.image-nav.prev{left:14px}.image-nav.next{right:14px}.image-counter{position:absolute;left:18px;bottom:18px;background:rgba(9,18,20,.7);color:white;padding:8px 10px;border-radius:999px;font-size:12px}.gallery-modal-card{width:min(1180px,100%);background:#081012;color:white;padding:18px}.modal-close-light{background:rgba(255,255,255,.12);color:white}.gallery-stage{position:relative;height:min(70vh,720px)}.gallery-stage img{width:100%;height:100%;object-fit:contain}.gallery-info{display:flex;justify-content:space-between;padding:12px 4px;color:rgba(255,255,255,.68)}.gallery-thumbs{display:flex;gap:8px;overflow:auto}.gallery-thumb{flex:0 0 100px;height:70px;padding:0;border:2px solid transparent;border-radius:9px;overflow:hidden;background:none}.gallery-thumb.active{border-color:#7fc0be}.gallery-thumb img{width:100%;height:100%;object-fit:cover}.booking-modal-card{width:min(640px,100%);padding:34px}.booking-progress{display:flex;gap:10px;margin:8px 0 34px}.booking-progress span{flex:1;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#9aa2a4;border-bottom:2px solid #dcdedb;padding-bottom:8px}.booking-progress span.active{color:var(--teal);border-color:var(--teal)}.booking-step h2{font-size:46px;margin-bottom:24px}.booking-choice{display:flex;justify-content:space-between;gap:16px;background:#e6efed;border-radius:12px;padding:13px 15px;margin-bottom:22px}.booking-choice span{color:#557074;font-size:13px}.booking-step label{display:block;margin:14px 0}.booking-step input,.booking-step select,.booking-step textarea{width:100%;border:1px solid #d6d9d5;background:white;border-radius:11px;padding:13px 14px;color:var(--ink)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;gap:10px}.booking-success{text-align:center}.success-ring{width:72px;height:72px;border-radius:50%;border:1px solid var(--teal);display:grid;place-items:center;margin:0 auto 22px;color:var(--teal);font-size:28px}.booking-summary{text-align:left;background:#ebe8e1;border-radius:12px;padding:16px;margin:22px 0}.summary-row{display:flex;justify-content:space-between;gap:18px;padding:8px 0;border-bottom:1px solid #d9d5cd}.summary-row:last-child{border-bottom:0}
@media(max-width:980px){.main-nav{display:none;position:absolute;left:20px;right:20px;top:74px;background:var(--paper);color:var(--ink);padding:18px;border-radius:16px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.menu-toggle{display:block;color:inherit}.hero{min-height:860px}.hero-layout{grid-template-columns:1fr;padding-top:150px;padding-bottom:190px}.hero-index{display:none}.search-panel{grid-template-columns:1fr 1fr}.search-panel .search-btn{grid-column:1/-1}.search-panel label:nth-child(2){border-right:0}.search-panel label:nth-child(3){border-top:1px solid #eee;padding-top:12px}.journey-grid{grid-template-columns:1fr}.journey-card{min-height:220px}.recommendation{align-items:flex-start;flex-direction:column}.room-story,.room-story.reverse,.city-bridge-grid,.day-grid,.location-grid,.room-modal-card,.section-head{grid-template-columns:1fr}.room-story.reverse .room-story-image{order:0}.room-story-image{min-height:480px}.room-story-copy{padding:42px}.day-photo{height:520px}.editorial-gallery{grid-template-columns:1fr 1fr}.gallery-tile:first-child{grid-row:span 1;grid-column:span 2}.gallery-tile:nth-child(4){grid-column:span 1}.location-visual{height:420px}.footer-grid{grid-template-columns:1fr 1fr}.hero h1{font-size:clamp(60px,11vw,94px)}}
@media(max-width:640px){:root{--container:min(100% - 28px,1220px)}.section{padding:76px 0}.site-header .header-inner{height:70px}.brand-mark{font-size:36px}.hero{min-height:820px}.hero-layout{padding-top:120px;padding-bottom:230px}.hero-lead{font-size:16px}.hero-actions{display:grid}.hero-actions .btn{width:100%}.ring-a{width:250px;height:250px}.ring-b{width:170px;height:170px}.ring-c{display:none}.search-dock{bottom:-135px}.search-panel{grid-template-columns:1fr;padding:12px}.search-panel label{border-right:0!important;border-bottom:1px solid #ecece8;padding:10px 8px}.search-panel label:nth-child(3){border-top:0}.search-btn{width:100%;min-width:0}.contrast-strip{padding-top:178px}.contrast-inner{grid-template-columns:1fr;gap:12px}.contrast-line{width:100%}.section-head{gap:20px;margin-bottom:32px}.section-copy{font-size:15px}.journey-card{padding:22px}.journey-title{font-size:34px}.recommendation-actions{display:grid;width:100%}.recommendation-actions .btn{width:100%}.room-story-image{min-height:340px}.room-story-copy{padding:30px 22px}.story-actions{align-items:stretch;display:grid}.story-actions .btn{width:100%}.city-bridge{padding:90px 0}.city-word{font-size:26vw;top:38px}.city-bridge-grid{gap:28px}.day-photo{height:380px}.day-tabs{overflow:auto}.editorial-gallery{grid-template-columns:1fr;grid-auto-rows:240px}.gallery-tile:first-child{grid-column:auto}.location-section{padding:80px 0}.location-grid{gap:38px}.location-visual{height:320px}.footer-grid{grid-template-columns:1fr;gap:28px}.mobile-sticky{display:block;position:fixed;left:12px;right:12px;bottom:12px;z-index:35}.mobile-sticky .btn{width:100%;box-shadow:0 14px 40px rgba(0,0,0,.22)}.site-footer{padding-bottom:90px}.room-modal-card{display:block}.room-modal-gallery{min-height:360px}.room-modal-copy{padding:30px 22px}.booking-modal-card{padding:22px}.booking-progress{gap:4px}.booking-progress span{font-size:8px}.form-grid{grid-template-columns:1fr}.booking-choice{flex-direction:column}.modal-actions{display:grid}.gallery-stage{height:55vh}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* Room modal layout fix: keep close button out of CSS grid flow. */
.room-modal-card {
  position: relative;
  overflow: hidden;
  grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr);
  align-items: stretch;
}
.room-modal-card > .modal-close {
  position: absolute;
  top: 16px;
  right: 16px;
  float: none;
  margin: 0;
  z-index: 20;
}
.room-modal-gallery {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
}
.room-modal-copy {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  min-width: 0;
}

@media (max-width: 980px) {
  .room-modal-card {
    grid-template-columns: 1fr;
    overflow: auto;
  }
  .room-modal-gallery {
    grid-column: 1;
    grid-row: 1;
  }
  .room-modal-copy {
    grid-column: 1;
    grid-row: 2;
  }
}
