@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@1,600&family=Great+Vibes&display=swap');
:root{--ink:#102f2a;--ink2:#071c19;--paper:#f3eee4;--white:#fffdf7;--tile:#b54f31;--sun:#e2b13d;--sea:#4e9fa3;--line:rgba(16,47,42,.18);--shell:min(92vw,1400px);--display:'Barlow Condensed',Impact,sans-serif;--body:'DM Sans',Arial,sans-serif;--accent:'Playfair Display',Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden;width:100%;max-width:100%}body{margin:0;overflow-x:hidden;width:100%;max-width:100%;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{width:var(--shell);max-width:100%;margin:auto}.section{padding:120px 0}.site-header{position:absolute;z-index:50;top:0;left:0;width:100%;max-width:100vw;color:var(--white);border-bottom:1px solid rgba(255,255,255,.25)}main,section,footer{max-width:100%;overflow-x:clip}.nav{height:92px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border:1px solid currentColor;font:800 18px var(--display);letter-spacing:-1px}.brand-text{display:flex;flex-direction:column;line-height:1}.brand-text strong{font:700 25px var(--display);text-transform:uppercase;letter-spacing:.03em}.brand-text span{font-size:10px;letter-spacing:.24em;text-transform:uppercase;margin-top:5px}.nav nav{display:flex;align-items:center;gap:26px;font-size:12px;text-transform:uppercase;letter-spacing:.12em}.nav nav a{opacity:.82}.nav nav a:hover,.nav nav a.active{opacity:1}.nav-cta{border:1px solid currentColor;padding:12px 17px}.menu{display:none;background:none;border:0;color:inherit}.home-hero{position:relative;min-height:100svh;background:var(--ink2);color:var(--white);overflow:hidden}.hero-bg{position:absolute;inset:0}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,20,18,.88) 0%,rgba(3,20,18,.38) 55%,rgba(3,20,18,.15) 100%),linear-gradient(0deg,rgba(3,20,18,.85),transparent 45%)}.hero-content{position:relative;z-index:2;padding-top:205px}.signal,.section-no{font:600 12px var(--body);letter-spacing:.22em;text-transform:uppercase}.signal:before,.section-no:before{content:'';display:inline-block;width:44px;height:2px;background:var(--tile);vertical-align:middle;margin-right:14px}.home-hero h1{font:900 clamp(100px,17vw,260px)/.7 var(--display);letter-spacing:-.055em;margin:64px 0 45px;text-transform:uppercase}.home-hero h1 span{display:block}.home-hero h1 .outline{color:transparent;-webkit-text-stroke:2px var(--white);margin-left:11vw}.hero-bottom{display:grid;grid-template-columns:420px 1fr;gap:70px;align-items:end;border-top:1px solid rgba(255,255,255,.35);padding-top:28px}.hero-bottom p{font-size:18px;margin:0}.actions{display:flex;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;border:1px solid currentColor;text-transform:uppercase;font:600 12px var(--body);letter-spacing:.12em;transition:.25s}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--tile);border-color:var(--tile);color:white}.button.ghost{color:white}.button.dark{background:var(--ink);color:white;border-color:var(--ink)}.button.light{color:white}.hero-rail{position:absolute;z-index:3;right:0;top:92px;height:calc(100% - 92px);width:54px;border-left:1px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:space-around;writing-mode:vertical-rl;font-size:9px;letter-spacing:.18em}.hero-stamp{position:absolute;z-index:3;right:8vw;top:145px;width:128px;height:128px;border-radius:50%;background:var(--sun);color:var(--ink2);display:flex;flex-direction:column;justify-content:center;align-items:center;transform:rotate(8deg);text-align:center}.hero-stamp strong{font:800 27px/.8 var(--display)}.hero-stamp span{font-size:8px;letter-spacing:.12em;margin-top:10px}.hero-facts{position:absolute;z-index:3;bottom:0;right:0;width:min(720px,50vw);display:grid;grid-template-columns:repeat(4,1fr);background:var(--paper);color:var(--ink)}.hero-facts div{padding:20px;border-left:1px solid var(--line)}.hero-facts b{display:block;font:800 25px var(--display);color:var(--tile)}.hero-facts span{font-size:10px;text-transform:uppercase;letter-spacing:.09em}.statement-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:10vw}.statement h2,.section-heading h2,.stay-intro h2,.groups-grid h2,.route-grid h2{font:800 clamp(60px,7vw,116px)/.88 var(--display);letter-spacing:-.035em;text-transform:uppercase;margin:26px 0}.statement h2 em{font:600 .75em var(--accent);text-transform:none}.lead{font-size:20px}.text-link{display:inline-block;border-bottom:1px solid currentColor;padding-bottom:5px;margin-top:22px;font-size:13px;text-transform:uppercase;letter-spacing:.12em}.map-section{background:var(--white)}.section-heading{max-width:900px;margin-bottom:55px}.property-map{position:relative;height:72vh;min-height:650px;overflow:hidden;background:var(--ink)}.property-map:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,28,25,.7),transparent 60%)}.map-pin{position:absolute;z-index:2;background:var(--paper);padding:13px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 12px 30px rgba(0,0,0,.18)}.map-pin b{font:800 24px var(--display);color:var(--tile)}.map-pin span{font-size:11px;text-transform:uppercase;letter-spacing:.1em}.p1{left:13%;top:28%}.p2{right:18%;top:22%}.p3{left:42%;top:57%}.p4{right:11%;bottom:19%}.map-caption{position:absolute;z-index:2;left:28px;bottom:24px;color:white;font:700 31px var(--display);text-transform:uppercase}.stay-switch{background:var(--paper)}.stay-feature{display:grid;grid-template-columns:240px 1fr 330px;min-height:620px;background:var(--white)}.stay-index{display:flex;flex-direction:column;border-right:1px solid var(--line)}.stay-index button{flex:1;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:25px;color:var(--ink);text-transform:uppercase;font:600 13px var(--body);cursor:pointer}.stay-index button b{display:block;font:800 32px var(--display);color:var(--tile);margin-bottom:5px}.stay-index button.active{background:var(--ink);color:white}.stay-image{overflow:hidden}.stay-image img{transition:.35s}.stay-copy{padding:55px 35px;display:flex;flex-direction:column;justify-content:center}.stay-copy>span{font-size:11px;letter-spacing:.16em}.stay-copy h3{font:800 49px/.95 var(--display);text-transform:uppercase;margin:22px 0}.murud-band{position:relative;background:var(--sea);color:white;padding:150px 0;overflow:hidden}.murud-word{position:absolute;left:-1vw;top:-90px;font:900 35vw/.8 var(--display);color:rgba(255,255,255,.1);letter-spacing:-.06em}.murud-grid{position:relative;display:grid;grid-template-columns:.8fr 1.1fr .7fr;gap:50px;align-items:center}.murud-grid h2{font:800 clamp(55px,6vw,92px)/.88 var(--display);text-transform:uppercase}.murud-image{height:650px;transform:rotate(2deg)}.murud-notes div{padding:24px 0;border-bottom:1px solid rgba(255,255,255,.35)}.murud-notes b,.murud-notes span{display:block}.murud-notes b{font:700 23px var(--display)}.murud-notes span{font-size:13px;margin-top:7px}.groups-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;align-items:center}.group-image{height:680px;position:relative}.group-image span{position:absolute;left:-30px;bottom:38px;background:var(--sun);padding:12px 18px;font-size:10px;letter-spacing:.15em}.booking-panel{background:var(--ink2);color:white}.booking-shell{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw}.booking-shell h2{font:800 clamp(55px,6vw,90px)/.9 var(--display);text-transform:uppercase;margin:24px 0}.booking-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.booking-form label,.contact-form label{display:flex;flex-direction:column;gap:7px;font-size:10px;letter-spacing:.13em;text-transform:uppercase}.booking-form input,.booking-form select,.contact-form input,.contact-form select,.contact-form textarea{border:0;border-bottom:1px solid rgba(255,255,255,.4);background:transparent;color:inherit;padding:13px 0;outline:none}.booking-form option{color:#111}.booking-form .wide{grid-column:1/-1}.booking-form button,.contact-form button{border:0;background:var(--tile);color:white;min-height:56px;text-transform:uppercase;letter-spacing:.13em;cursor:pointer}.inner-hero{height:92vh;min-height:720px;position:relative;color:white;display:flex;align-items:end}.inner-hero>img{position:absolute;inset:0}.inner-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,20,18,.87),rgba(3,20,18,.15)),linear-gradient(0deg,rgba(3,20,18,.65),transparent)}.inner-content{position:relative;padding-bottom:95px}.inner-content h1{font:900 clamp(82px,11vw,175px)/.78 var(--display);letter-spacing:-.045em;margin:40px 0 25px;text-transform:uppercase}.inner-content h1 span{color:transparent;-webkit-text-stroke:1.5px white;margin-left:8vw}.inner-content p{max-width:570px;font-size:18px}.page-number{position:absolute;right:6vw;bottom:45px;font:900 170px/.8 var(--display);color:rgba(255,255,255,.18)}.room-row{display:grid;grid-template-columns:90px 1.2fr .8fr;gap:50px;align-items:center;padding:75px 0;border-bottom:1px solid var(--line)}.room-row.reverse{grid-template-columns:90px .8fr 1.2fr}.room-row.reverse .room-photo{order:3}.room-row.reverse .room-info{order:2}.room-num{font:900 68px var(--display);color:var(--tile)}.room-photo{height:540px}.room-info span,.story-copy span{font-size:11px;letter-spacing:.17em}.room-info h2,.story-copy h2{font:800 clamp(48px,5vw,78px)/.92 var(--display);text-transform:uppercase;margin:20px 0}.wide-cta{background:var(--ink);color:white;padding:110px 0}.wide-cta.tile{background:var(--tile)}.wide-cta h2{font:800 clamp(65px,8vw,120px)/.85 var(--display);text-transform:uppercase;margin:25px 0 40px}.wide-cta span{font-size:11px;letter-spacing:.18em}.story-block{display:grid;grid-template-columns:.65fr 1.35fr;gap:7vw;align-items:center;margin-bottom:150px}.story-block.split{grid-template-columns:1fr .75fr .7fr}.story-image.large{height:690px}.story-image{height:560px}.story-image.offset{height:420px;transform:translateY(120px)}.itinerary{background:var(--white)}.timeline{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:60px}.timeline article{padding:35px 28px;border-right:1px solid var(--line)}.timeline b{font:900 60px var(--display);color:var(--tile)}.timeline h3{font:700 31px/.95 var(--display);text-transform:uppercase}.route-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;align-items:center}.route-map{height:670px}.use-grid{display:grid;grid-template-columns:1fr 1fr}.use-grid article{padding:55px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.use-grid span{font:900 50px var(--display);color:var(--tile)}.use-grid h2{font:800 48px/.95 var(--display);text-transform:uppercase}.conference-feature{background:var(--tile);color:white;padding:120px 0}.conference-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:7vw;align-items:center}.conference-image{height:620px}.conference-grid h2{font:800 clamp(55px,6vw,90px)/.9 var(--display);text-transform:uppercase}.gallery-head{padding-top:180px}.gallery-head h1{font:900 clamp(100px,15vw,220px)/.75 var(--display);letter-spacing:-.05em;margin:50px 0;text-transform:uppercase}.gallery-head h1 em{font:.55em var(--accent);text-transform:none}.gallery-head p{max-width:520px}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:22px;padding-bottom:120px}.gallery-grid figure{margin:0;position:relative}.gallery-grid figcaption{padding-top:10px;font-size:10px;letter-spacing:.14em}.g1{grid-column:1/8;height:690px}.g2{grid-column:9/13;height:520px;margin-top:140px!important}.g3{grid-column:2/6;height:480px}.g4{grid-column:7/13;height:660px}.g5{grid-column:1/5;height:580px;margin-top:120px!important}.g6{grid-column:5/9;height:430px}.g7{grid-column:9/13;height:560px;margin-top:100px!important}.contact-hero{background:var(--ink2);color:white;padding:200px 0 120px}.contact-grid{display:grid;grid-template-columns:1fr .85fr;gap:10vw}.contact-grid h1{font:900 clamp(85px,10vw,155px)/.8 var(--display);letter-spacing:-.04em;text-transform:uppercase}.contact-grid h1 span{color:transparent;-webkit-text-stroke:1.5px white}.contact-grid>div>p{max-width:540px}.contact-data{margin-top:70px;display:grid;gap:22px}.contact-data div{display:grid;grid-template-columns:90px 1fr;border-top:1px solid rgba(255,255,255,.22);padding-top:14px}.contact-data b{font-size:10px;letter-spacing:.15em}.contact-form{background:var(--paper);color:var(--ink);padding:45px;display:grid;gap:22px}.contact-form input,.contact-form select,.contact-form textarea{border-color:var(--line)}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}.location-strip{background:var(--sea);color:white;padding:110px 0}.location-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw;align-items:center}.location-grid h2{font:800 clamp(60px,7vw,100px)/.9 var(--display);text-transform:uppercase}.location-grid img{height:590px}.footer-grid{display:grid;grid-template-columns:1fr .4fr .55fr;gap:7vw;padding:90px 0}.footer-kicker{font-size:11px;letter-spacing:.15em}.footer-grid h2{font:800 clamp(45px,5vw,78px)/.9 var(--display);text-transform:uppercase}.footer-links{display:flex;flex-direction:column;gap:9px;text-transform:uppercase;font-size:12px;letter-spacing:.1em}.footer-contact{font-size:13px}.footer-bottom{border-top:1px solid var(--line);padding:20px 0;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.13em;text-transform:uppercase}.reveal{opacity:0;transform:translateY(24px);transition:.7s ease}.reveal.show{opacity:1;transform:none}@media(max-width:950px){.section{padding:80px 0}.nav nav{position:fixed;inset:0;background:var(--ink2);display:flex;flex-direction:column;justify-content:center;gap:25px;font-size:18px;transform:translateX(100%);transition:.3s}.nav nav.open{transform:none}.menu{display:flex;flex-direction:column;gap:7px;z-index:2}.menu span{width:28px;height:1px;background:currentColor}.home-hero h1{font-size:26vw;margin-top:85px}.home-hero h1 .outline{margin-left:0}.hero-bottom,.statement-grid,.booking-shell,.groups-grid,.murud-grid,.route-grid,.conference-grid,.contact-grid,.location-grid{grid-template-columns:1fr}.hero-facts{width:100%;grid-template-columns:repeat(2,1fr)}.hero-rail,.hero-stamp{display:none}.hero-bottom{gap:25px;padding-bottom:160px}.stay-feature{grid-template-columns:1fr}.stay-index{display:grid;grid-template-columns:1fr 1fr}.stay-index button{min-height:100px}.stay-image{height:450px}.murud-image{height:500px}.room-row,.room-row.reverse{grid-template-columns:55px 1fr;gap:20px}.room-row .room-photo,.room-row.reverse .room-photo{grid-column:2;order:initial}.room-row .room-info,.room-row.reverse .room-info{grid-column:2;order:initial}.story-block,.story-block.split{grid-template-columns:1fr}.story-image.offset{transform:none}.timeline{grid-template-columns:1fr 1fr}.gallery-grid{display:block}.gallery-grid figure{height:500px!important;margin:0 0 35px!important}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}@media(max-width:600px){.nav{height:76px}.brand-text strong{font-size:20px}.home-hero h1{font-size:27vw;line-height:.76}.home-hero{min-height:900px}.hero-content{padding-top:150px}.hero-bottom{grid-template-columns:1fr}.actions{flex-direction:column}.hero-facts div{padding:14px}.statement h2,.section-heading h2,.stay-intro h2,.groups-grid h2,.route-grid h2{font-size:15vw}.property-map{height:620px;min-height:0}.map-pin{padding:9px}.map-pin span{display:none}.stay-index button{font-size:10px}.stay-copy{padding:35px 25px}.murud-band{padding:95px 0}.murud-grid{gap:30px}.murud-image{height:420px}.group-image{height:500px}.inner-hero{min-height:680px}.inner-content h1{font-size:22vw}.page-number{font-size:110px}.room-row,.room-row.reverse{display:block}.room-num{margin-top:20px}.room-photo{height:430px}.story-image,.story-image.large{height:480px}.timeline{grid-template-columns:1fr}.use-grid{grid-template-columns:1fr}.conference-image{height:450px}.gallery-head h1{font-size:25vw}.contact-form{padding:25px}.form-pair{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}}

/* --- Micro refinement pass ------------------------------------------------ */
/* The complete resort identity is a single replaceable image. */
.brand{display:block;flex:0 0 auto;line-height:0;color:inherit}
.brand-logo{width:clamp(150px,15vw,245px);height:auto;max-height:58px;aspect-ratio:693/360;object-fit:contain;object-position:left center;color:inherit}
.brand-mark,.brand-text{display:none!important}

/* Eyebrow labels remain typographic only; no decorative dash anywhere. */
.signal:before,.section-no:before{content:none!important;display:none!important}
.signal,.section-no{display:inline-block}

/* Gallery is the only light hero/header pairing. */
.page-gallery .site-header{color:var(--ink);border-bottom-color:var(--line);background:rgba(243,238,228,.94);backdrop-filter:blur(12px)}
.page-gallery .nav-cta{border-color:currentColor}
.page-gallery .menu span{background:currentColor}

/* Native controls now follow the platform's graphic language. */
.booking-form input,.booking-form select,.contact-form input,.contact-form select,.contact-form textarea{
  width:100%;min-height:52px;border:1px solid rgba(255,255,255,.3);border-radius:0;
  background-color:rgba(255,255,255,.035);padding:13px 46px 13px 15px;color:inherit;
  transition:border-color .2s,background-color .2s,box-shadow .2s;
}
.contact-form input,.contact-form select,.contact-form textarea{border-color:var(--line);background-color:rgba(16,47,42,.025)}
.booking-form select,.contact-form select{
  appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;
}
.booking-form input:focus,.booking-form select:focus,.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{
  border-color:var(--tile);background-color:rgba(255,255,255,.075);box-shadow:0 0 0 3px rgba(181,79,49,.16);outline:none
}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{background-color:rgba(181,79,49,.045)}
.booking-form select option{background:var(--ink2);color:var(--white)}
.contact-form select option{background:var(--paper);color:var(--ink)}
input[type="date"]{color-scheme:dark}.contact-form input[type="date"]{color-scheme:light}

/* Hero typography scales against both width and available height to prevent clipping. */
.home-hero{min-height:max(720px,100svh);display:flex;flex-direction:column}
.hero-content{width:var(--shell);padding-top:clamp(150px,21vh,205px);padding-bottom:clamp(185px,23vh,250px)}
.home-hero h1{font-size:clamp(94px,min(16.5vw,24vh),250px);line-height:.76;margin:clamp(35px,6vh,64px) 0 clamp(30px,5vh,45px)}
.home-hero h1 .outline{margin-left:clamp(0px,10vw,155px)}
.home-hero h1.resort-title{font-size:clamp(94px,min(16.5vw,24vh),250px);line-height:.76;max-width:9ch}
.home-hero h1.resort-title .resort-line{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin-top:clamp(14px,2.6vh,30px);
  margin-left:clamp(0px,11vw,155px);
  padding:9px 18px 11px;
  background:var(--sun);
  color:var(--ink2);
  font:800 clamp(22px,3.3vw,54px)/.88 var(--display);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hero-bottom{grid-template-columns:minmax(280px,420px) minmax(360px,1fr)}
.hero-bottom .actions{justify-self:start;flex-wrap:wrap}
.hero-facts{max-width:720px}

/* Placeholder images should preserve the intended crop without stretching SVG text. */
img[src*="placeholder.svg"]{object-fit:cover}

/* Better intermediate widths, including tablets in landscape. */
@media(max-width:1180px){
  .nav nav{gap:17px;font-size:10px}.nav-cta{padding:10px 13px}.brand-logo{width:175px}
  .home-hero h1{font-size:clamp(92px,min(17vw,22vh),190px)}
  .home-hero h1.resort-title{font-size:clamp(92px,min(17vw,22vh),190px)}
  .home-hero h1.resort-title .resort-line{font-size:clamp(20px,3vw,42px)}
  .hero-bottom{grid-template-columns:minmax(260px,380px) 1fr;gap:35px}
  .hero-stamp{right:5vw;width:108px;height:108px}.hero-stamp strong{font-size:23px}
  .stay-feature{grid-template-columns:205px 1fr 290px}.stay-copy{padding:42px 28px}.stay-copy h3{font-size:42px}
}
@media(max-height:760px) and (min-width:951px){
  .nav{height:78px}.hero-rail{top:78px;height:calc(100% - 78px)}
  .hero-content{padding-top:118px;padding-bottom:145px}
  .home-hero h1{font-size:min(15vw,124px);line-height:.78;margin:24px 0 24px}
  .home-hero h1.resort-title{font-size:min(15vw,124px)}
  .home-hero h1.resort-title .resort-line{font-size:24px;margin-top:10px}
  .hero-bottom{padding-top:20px}.hero-bottom p{font-size:15px}
  .hero-facts div{padding:12px 16px}.hero-stamp{top:105px}
}
@media(max-width:950px){
  body.menu-open{overflow:hidden}
  .site-header{position:absolute}.brand-logo{width:170px;max-height:50px}
  .nav nav{z-index:1;padding:110px 8vw 55px;align-items:flex-start}
  .nav nav a{font:700 clamp(28px,7vw,48px)/1 var(--display);letter-spacing:.04em}
  .nav nav .nav-cta{font:600 13px var(--body);margin-top:15px;padding:15px 20px}
  .menu{position:relative;z-index:2;padding:12px;margin-right:-12px}
  .home-hero{min-height:900px}.hero-content{padding-top:145px;padding-bottom:250px}
  .home-hero h1{font-size:clamp(88px,25vw,220px);line-height:.76;margin:52px 0 36px}
  .home-hero h1.resort-title{font-size:clamp(88px,25vw,220px);max-width:8ch}
  .home-hero h1.resort-title .resort-line{margin-left:0}
  .home-hero h1 .outline{margin-left:0}
  .hero-bottom{grid-template-columns:1fr;gap:24px}.hero-bottom .actions{justify-self:stretch}
  .hero-facts{width:100%;max-width:none}
}
@media(max-width:600px){
  :root{--shell:min(89vw,1400px)}
  .nav{height:72px}.brand-logo{width:clamp(132px,42vw,170px);max-height:42px}
  .hero-content{padding-top:125px;padding-bottom:235px}
  .home-hero{min-height:830px}
  .home-hero h1{font-size:clamp(82px,27vw,145px);line-height:.78;margin:42px 0 28px;letter-spacing:-.045em}
  .home-hero h1.resort-title{font-size:clamp(78px,25vw,132px);max-width:8ch}
  .hero-bottom{padding-top:20px}.hero-bottom p{font-size:16px}
  .hero-bottom .actions{display:grid;grid-template-columns:1fr}.button{width:100%}
  .hero-facts div{min-height:76px;padding:12px}.hero-facts b{font-size:21px}.hero-facts span{font-size:8px}
  .gallery-head{padding-top:135px}.gallery-head h1{margin-top:38px}
  .booking-form{grid-template-columns:1fr}.booking-form .wide{grid-column:auto}
  .booking-form input,.booking-form select,.contact-form input,.contact-form select,.contact-form textarea{font-size:16px}
  .footer-bottom{gap:15px;flex-direction:column}
}
@media(max-width:390px){
  .brand-logo{width:132px}.home-hero h1{font-size:25.5vw}.home-hero h1.resort-title{font-size:24vw}.hero-facts span{letter-spacing:.04em}
  .stay-index{grid-template-columns:1fr}.stay-index button{min-height:78px}
  .property-map{height:540px}.map-caption{font-size:23px;max-width:80%}
}

/* Phone-first corrections. Keep this last so small screens are not pulled back
   into the desktop/tablet composition above. */
@media(max-width:700px){
  :root{--shell:calc(100vw - 44px)}
  body{overflow-x:hidden}
  .section{padding:64px 0}
  .site-header{border-bottom:0}
  .nav{height:74px}
  .brand-logo{width:clamp(116px,34vw,150px);max-height:38px}
  .menu{padding:10px;margin-right:-10px}

  .home-hero{
    min-height:0;
    display:grid;
    grid-template-rows:minmax(590px,calc(100svh - 132px)) auto;
    background:var(--paper);
    color:var(--white);
  }
  .hero-bg,.hero-shade{grid-row:1;position:absolute;inset:0 0 auto;height:100%}
  .hero-bg{object-position:46% center}
  .hero-shade{
    background:linear-gradient(180deg,rgba(3,20,18,.76) 0%,rgba(3,20,18,.52) 42%,rgba(3,20,18,.8) 100%),
      linear-gradient(90deg,rgba(3,20,18,.42),rgba(3,20,18,.06));
  }
  .hero-content{
    grid-row:1;
    align-self:end;
    width:var(--shell);
    padding:112px 0 34px;
    opacity:1;
    transform:none;
  }
  .signal,.section-no{font-size:9px;letter-spacing:.18em}
  .home-hero h1{
    font-size:clamp(64px,22vw,96px);
    line-height:.78;
    letter-spacing:-.035em;
    margin:28px 0 24px;
    max-width:8ch;
  }
  .home-hero h1.resort-title{
    font-size:clamp(64px,22vw,96px);
    line-height:.78;
    max-width:8ch;
  }
  .home-hero h1.resort-title .resort-line{
    margin-left:0;
    margin-top:14px;
    padding:7px 12px 8px;
    font-size:clamp(18px,5.8vw,28px);
    letter-spacing:.06em;
  }
  .home-hero h1 .outline{-webkit-text-stroke:1.25px var(--white)}
  .hero-bottom{
    border-top:1px solid rgba(255,255,255,.38);
    padding-top:18px;
    padding-bottom:0;
    gap:18px;
  }
  .hero-bottom p{font-size:13px;line-height:1.55;max-width:31ch}
  .hero-bottom .actions{gap:10px}
  .button{min-height:46px;padding:0 18px;font-size:10px;letter-spacing:.1em}
  .hero-facts{
    position:relative;
    grid-row:2;
    right:auto;
    bottom:auto;
    width:100%;
    max-width:none;
    grid-template-columns:repeat(2,1fr);
    z-index:4;
    border-bottom:1px solid var(--line);
  }
  .hero-facts div{
    min-height:86px;
    padding:15px 22px;
    border-left:0;
    border-top:1px solid var(--line);
  }
  .hero-facts div:nth-child(2n){border-left:1px solid var(--line)}
  .hero-facts b{font-size:22px}
  .hero-facts span{font-size:8px;letter-spacing:.06em}

  .statement.section{padding-top:70px}
  .statement h2,.section-heading h2,.stay-intro h2,.groups-grid h2,.route-grid h2{
    font-size:clamp(42px,15vw,64px);
    line-height:.92;
    letter-spacing:-.02em;
  }
  .lead{font-size:16px}
  .property-map{height:460px}

  .stay-switch{overflow:hidden}
  .stay-feature{
    display:flex;
    flex-direction:column;
    min-height:0;
    background:var(--white);
  }
  .stay-index{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .stay-index button{
    min-height:86px;
    padding:16px;
    border-right:1px solid var(--line);
    font-size:9px;
    letter-spacing:.04em;
  }
  .stay-index button:nth-child(2n){border-right:0}
  .stay-index button b{font-size:25px;margin-bottom:2px}
  .stay-image{
    display:block;
    order:2;
    height:min(68vw,270px);
    min-height:210px;
    background:var(--ink2);
  }
  .stay-copy{
    order:3;
    padding:30px 22px 34px;
    display:block;
  }
  .stay-copy h3{
    font-size:clamp(34px,12vw,48px);
    line-height:.95;
    margin:16px 0;
  }
  .stay-copy p{font-size:14px}
  .stay-copy .button{width:100%;margin-top:8px}

  .murud-band{padding:74px 0}
  .murud-word{top:-28px;font-size:40vw}
  .murud-grid{gap:26px}
  .murud-image{height:min(105vw,430px);transform:rotate(1.5deg)}
  .group-image,.conference-image,.room-photo,.story-image,.story-image.large{height:min(110vw,430px)}
  .booking-shell h2,.wide-cta h2,.location-grid h2{font-size:clamp(42px,14vw,62px)}
}

@media(max-width:420px){
  :root{--shell:calc(100vw - 36px)}
  .home-hero{grid-template-rows:minmax(560px,calc(100svh - 126px)) auto}
  .home-hero h1{font-size:clamp(62px,21vw,84px)}
  .home-hero h1.resort-title{font-size:clamp(60px,20vw,78px)}
  .home-hero h1.resort-title .resort-line{font-size:clamp(17px,5.4vw,22px)}
  .hero-content{padding-top:104px}
  .hero-facts div{padding-inline:18px}
  .stay-index{grid-template-columns:1fr}
  .stay-index button{min-height:72px;border-right:0}
}

/* Mobile overflow lock: keep the closed menu inside the viewport instead of
   translating it off-canvas, which some mobile browsers expose as scrollable. */
@media(max-width:950px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  body{position:relative}
  .site-header,.shell,main,section,footer{max-width:100vw}
  .nav nav{
    inset:0;
    width:100vw;
    max-width:100vw;
    transform:none;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    clip-path:inset(0 0 0 100%);
    overflow:hidden;
  }
  .nav nav.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    clip-path:inset(0);
  }
  .map-section,.property-map,.stay-switch,.murud-band,.groups-preview,.booking-panel{overflow-x:clip}
  .map-pin{max-width:calc(100vw - 44px)}
}

/* Text containment and mobile polish pass. */
h1,h2,h3,p,a,span,b,strong,em,figcaption,label,button{
  max-width:100%;
  overflow-wrap:break-word;
  word-break:normal;
}
.home-hero h1,.inner-content h1,.statement h2,.section-heading h2,.stay-intro h2,
.groups-grid h2,.route-grid h2,.stay-copy h3,.room-info h2,.story-copy h2,
.use-grid h2,.conference-grid h2,.booking-shell h2,.wide-cta h2,
.gallery-head h1,.contact-grid h1,.location-grid h2,.footer-grid h2{
  text-wrap:balance;
}
.footer-bottom a{border-bottom:0;text-decoration:none}
.studio-credit{display:inline-flex;align-items:baseline;gap:.45em;flex-wrap:wrap}
.studio-credit .studio-name{
  color:var(--tile);
  font:400 2.1em 'Great Vibes', cursive;
  letter-spacing:.01em;
  text-transform:none;
}
.studio-credit .studio-name:hover{color:var(--sea)}

@media(max-width:700px){
  .use-grid article{padding:40px 22px}
  .use-grid h2{
    font-size:clamp(34px,10.5vw,46px);
    line-height:.96;
    letter-spacing:-.01em;
    max-width:100%;
    overflow-wrap:normal;
    word-break:keep-all;
  }
  .use-grid p{font-size:16px;line-height:1.65}
  .conference-grid h2,.booking-shell h2,.wide-cta h2,.location-grid h2{
    font-size:clamp(40px,13vw,58px);
    line-height:.94;
  }
  .group-image span{
    left:0;
    right:auto;
    max-width:calc(100% - 22px);
    white-space:normal;
    line-height:1.35;
  }
  .inner-content h1,.contact-grid h1,.gallery-head h1{
    font-size:clamp(58px,18vw,86px);
    line-height:.84;
  }
  .footer-bottom{
    align-items:flex-start;
    line-height:1.6;
  }
  .studio-credit{gap:.35em}
}

@media(max-width:420px){
  .use-grid article{padding:36px 18px}
  .use-grid h2{font-size:clamp(32px,10vw,42px)}
  .group-image span{font-size:9px;letter-spacing:.12em}
}

/* Distinct mobile menu control. */
@media(max-width:950px){
  .menu{
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    padding:0;
    margin-right:-8px;
    border:1px solid rgba(255,255,255,.48);
    border-radius:50%;
    background:rgba(7,28,25,.22);
    backdrop-filter:blur(10px);
    box-shadow:inset 0 0 0 6px rgba(255,255,255,.045);
    cursor:pointer;
    transition:background-color .25s,border-color .25s,transform .25s;
  }
  .menu:hover{transform:rotate(8deg);background:rgba(181,79,49,.42)}
  .menu:before{
    content:'';
    position:absolute;
    width:5px;
    height:5px;
    border-radius:50%;
    background:currentColor;
    opacity:.9;
    transform:translateY(-1px);
  }
  .menu span{
    position:absolute;
    width:22px;
    height:2px;
    background:currentColor;
    border-radius:999px;
    transition:transform .28s ease,opacity .2s ease,width .28s ease;
  }
  .menu span:first-child{transform:translateY(-8px) rotate(-12deg)}
  .menu span:last-child{transform:translateY(8px) rotate(-12deg);width:16px}
  body.menu-open .menu{
    border-color:var(--sun);
    background:var(--tile);
    color:var(--white);
    transform:rotate(0deg);
  }
  body.menu-open .menu:before{opacity:0}
  body.menu-open .menu span:first-child{width:24px;transform:rotate(45deg)}
  body.menu-open .menu span:last-child{width:24px;transform:rotate(-45deg)}
  .page-gallery .menu{border-color:rgba(16,47,42,.35);background:rgba(255,253,247,.62)}
}

@media(max-width:420px){
  .menu{width:44px;height:44px}
  .menu span{width:20px}
  .menu span:last-child{width:15px}
}

/* Sticky navigation and refined menu toggle. */
.site-header{
  position:fixed;
  background:linear-gradient(180deg,rgba(7,28,25,.72),rgba(7,28,25,.18));
  backdrop-filter:blur(12px);
}
.page-gallery .site-header{background:rgba(243,238,228,.94)}
@media(max-width:950px){
  .site-header{position:fixed!important}
  .menu{
    display:grid;
    width:64px;
    height:38px;
    padding:0 10px;
    margin-right:0;
    border:1px solid rgba(255,255,255,.55);
    border-radius:4px;
    background:rgba(255,253,247,.08);
    box-shadow:none;
    backdrop-filter:blur(12px);
    color:currentColor;
    place-items:center end;
    overflow:hidden;
    transform:none;
  }
  .menu:before{
    content:'MENU';
    position:absolute;
    left:9px;
    top:50%;
    width:auto;
    height:auto;
    border-radius:0;
    background:transparent;
    opacity:1;
    transform:translateY(-50%);
    font:700 9px var(--body);
    letter-spacing:.12em;
  }
  .menu span{
    position:absolute;
    right:9px;
    width:19px;
    height:2px;
    border-radius:0;
    background:currentColor;
    transition:transform .24s ease,width .24s ease,top .24s ease;
  }
  .menu span:first-child{top:13px;transform:none}
  .menu span:last-child{top:22px;width:13px;transform:none}
  .menu:hover{transform:none;background:rgba(181,79,49,.35)}
  body.menu-open .menu{
    border-color:var(--sun);
    background:var(--tile);
    color:var(--white);
    transform:none;
  }
  body.menu-open .menu:before{content:'CLOSE';opacity:1}
  body.menu-open .menu span:first-child{top:18px;width:20px;transform:rotate(45deg)}
  body.menu-open .menu span:last-child{top:18px;width:20px;transform:rotate(-45deg)}
  .page-gallery .menu{border-color:rgba(16,47,42,.35);background:rgba(255,253,247,.68)}
}
@media(max-width:420px){
  .menu{width:58px;height:36px}
  .menu:before{font-size:8px;left:8px}
  .menu span{right:8px;width:17px}
  .menu span:last-child{width:12px}
}

/* Final compact hamburger: icon-only, no overlapping label. */
@media(max-width:950px){
  .menu{
    display:grid;
    place-items:center;
    width:48px;
    height:40px;
    padding:0;
    margin-right:0;
    border:1px solid rgba(255,255,255,.58);
    border-radius:5px;
    background:rgba(255,253,247,.1);
    box-shadow:none;
    color:currentColor;
    overflow:hidden;
  }
  .menu:before{
    content:'';
    position:absolute;
    inset:auto;
    width:4px;
    height:4px;
    border-radius:50%;
    background:currentColor;
    opacity:.8;
    transform:translate(14px,-1px);
  }
  .menu span{
    position:absolute;
    left:12px;
    right:auto;
    width:24px;
    height:2px;
    border-radius:999px;
    background:currentColor;
    transform:none;
    transition:transform .24s ease,top .24s ease,width .24s ease,opacity .2s ease;
  }
  .menu span:first-child{top:14px;transform:none}
  .menu span:last-child{top:24px;width:18px;transform:none}
  .menu:hover{background:rgba(181,79,49,.32);transform:none}
  body.menu-open .menu{
    background:var(--tile);
    border-color:var(--sun);
    color:var(--white);
  }
  body.menu-open .menu:before{opacity:0}
  body.menu-open .menu span:first-child{top:19px;width:24px;transform:rotate(45deg)}
  body.menu-open .menu span:last-child{top:19px;width:24px;transform:rotate(-45deg)}
  .page-gallery .menu{border-color:rgba(16,47,42,.35);background:rgba(255,253,247,.68)}
}
@media(max-width:420px){
  .menu{width:46px;height:38px}
  .menu span{left:11px;width:23px}
  .menu span:last-child{width:17px}
}

/* Final stable hamburger reset. This intentionally overrides every earlier
   menu experiment so the mobile nav stays clean and predictable. */
@media(max-width:950px){
  .menu,
  .menu:hover,
  body.menu-open .menu{
    display:block;
    position:relative;
    z-index:60;
    width:44px;
    height:44px;
    margin:0 -8px 0 0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    color:currentColor;
    transform:none;
    cursor:pointer;
    overflow:visible;
  }
  .menu:before,
  .menu span{
    content:'';
    position:absolute;
    left:8px;
    width:28px;
    height:2px;
    border-radius:999px;
    background:currentColor;
    opacity:1;
    transform:none;
    transition:top .22s ease,transform .22s ease,opacity .18s ease;
  }
  .menu:before{top:12px}
  .menu span:first-child{top:21px}
  .menu span:last-child{top:30px}
  body.menu-open .menu:before{opacity:0}
  body.menu-open .menu span:first-child{top:21px;transform:rotate(45deg)}
  body.menu-open .menu span:last-child{top:21px;transform:rotate(-45deg)}
  .page-gallery .menu{background:transparent;border:0}
}
@media(max-width:420px){
  .menu,
  .menu:hover,
  body.menu-open .menu{width:40px;height:40px;margin-right:-6px}
  .menu:before,
  .menu span{left:7px;width:26px}
  .menu:before{top:11px}
  .menu span:first-child{top:20px}
  .menu span:last-child{top:29px}
  body.menu-open .menu span:first-child,
  body.menu-open .menu span:last-child{top:20px}
}

@media(max-width:950px){
  .nav nav{
    z-index:55;
    min-height:100dvh;
    padding:112px 8vw 56px;
    background:var(--ink2);
    align-items:flex-start;
    justify-content:flex-start;
    overflow-y:auto;
  }
  .nav nav.open{display:flex}
  .nav nav a:first-child{margin-top:0}
}

/* Final spacing and gallery corrections. */
.hero-facts div{padding:14px 18px}
.stay-index button{padding:18px 22px}
.stay-index button b{font-size:28px;margin-bottom:2px}

.gallery-grid{
  align-items:start;
  gap:18px;
}
.gallery-grid figure{
  overflow:visible;
  background:var(--ink2);
}
.gallery-grid figcaption{background:var(--paper)}
.gallery-grid img{
  height:auto;
  object-fit:cover;
}
.g1,.g2,.g3,.g4,.g5,.g6,.g7{height:auto}
.g1 img{aspect-ratio:7/5}
.g2{margin-top:70px!important}.g2 img{aspect-ratio:4/5}
.g3 img{aspect-ratio:4/3}
.g4 img{aspect-ratio:3/2}
.g5{margin-top:70px!important}.g5 img{aspect-ratio:1/1}
.g6 img{aspect-ratio:4/3}
.g7{margin-top:70px!important}.g7 img{aspect-ratio:4/5}

@media(max-width:950px){
  .page-gallery.menu-open .site-header{
    color:var(--white);
    background:var(--ink2);
    border-bottom-color:transparent;
    backdrop-filter:none;
  }
  .page-gallery .nav nav{
    color:var(--white);
    background:var(--ink2);
  }
  .page-gallery .nav nav a{
    color:var(--white);
    opacity:1;
    text-shadow:none;
  }
  .page-gallery .nav nav .nav-cta{border-color:rgba(255,255,255,.55)}
  .page-gallery.menu-open .brand-logo{filter:brightness(0) invert(1)}
  .page-gallery.menu-open .menu{color:var(--white)}
}

@media(max-width:700px){
  .hero-facts div{
    min-height:auto;
    padding:10px 18px 12px;
  }
  .stay-index button{
    min-height:auto;
    padding:12px 16px;
  }
  .stay-index button b{font-size:22px}
  .gallery-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    padding-bottom:70px;
  }
  .gallery-grid figure{
    height:auto!important;
    margin:0!important;
  }
  .gallery-grid figcaption{
    padding-top:7px;
    font-size:8px;
    letter-spacing:.1em;
  }
  .gallery-grid .g1,
  .gallery-grid .g4{
    grid-column:1/-1;
  }
  .gallery-grid .g1 img,
  .gallery-grid .g4 img{
    aspect-ratio:4/3;
  }
  .gallery-grid .g2,
  .gallery-grid .g3,
  .gallery-grid .g5,
  .gallery-grid .g6,
  .gallery-grid .g7{
    grid-column:auto;
  }
  .gallery-grid .g2 img,
  .gallery-grid .g3 img,
  .gallery-grid .g5 img,
  .gallery-grid .g6 img,
  .gallery-grid .g7 img{
    aspect-ratio:1/1;
  }
}

/* Gallery puzzle: shared grid lines, no overlaps, gentler crops. */
.gallery-grid{
  width:min(96vw,1520px);
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-template-rows:repeat(12,minmax(72px,6vw));
  align-items:stretch;
  gap:0;
  padding-bottom:80px;
}
.gallery-grid figcaption{display:none}
.gallery-grid figure{
  height:auto!important;
  min-height:0;
  align-self:stretch;
  overflow:hidden;
  background:transparent;
}
.gallery-grid img{
  width:100%;
  height:100%!important;
  aspect-ratio:auto!important;
  display:block;
  object-fit:cover;
}
.gallery-grid .g1{grid-column:1/7;grid-row:1/7;margin:0!important}
.gallery-grid .g2{grid-column:7/10;grid-row:1/7;margin:0!important}
.gallery-grid .g3{grid-column:10/13;grid-row:1/5;margin:0!important}
.gallery-grid .g4{grid-column:1/7;grid-row:7/13;margin:0!important}
.gallery-grid .g5{grid-column:7/10;grid-row:7/13;margin:0!important}
.gallery-grid .g6{grid-column:10/13;grid-row:5/9;margin:0!important}
.gallery-grid .g7{grid-column:10/13;grid-row:9/13;margin:0!important}

@media(max-width:950px){
  .gallery-grid{
    width:calc(100vw - 20px);
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-template-rows:repeat(15,minmax(68px,18vw));
    gap:0;
    padding-bottom:64px;
  }
  .gallery-grid figure{height:auto!important}
  .gallery-grid .g1{grid-column:1/5;grid-row:1/4}
  .gallery-grid .g2{grid-column:1/3;grid-row:4/7}
  .gallery-grid .g3{grid-column:3/5;grid-row:4/7}
  .gallery-grid .g4{grid-column:1/5;grid-row:7/10}
  .gallery-grid .g5{grid-column:1/3;grid-row:10/13}
  .gallery-grid .g6{grid-column:3/5;grid-row:10/13}
  .gallery-grid .g7{grid-column:1/5;grid-row:13/16}
}

@media(max-width:600px){
  .gallery-grid{
    width:calc(100vw - 12px);
    grid-template-rows:repeat(15,minmax(60px,18vw));
    padding-bottom:54px;
  }
}

@media(max-width:950px){
  .page-gallery.menu-open .nav nav,
  .page-gallery.menu-open .nav nav.open{
    background:var(--ink2);
    opacity:1;
    filter:none;
    backdrop-filter:none;
  }
  .page-gallery.menu-open .nav nav a,
  .page-gallery.menu-open .nav nav .nav-cta{
    color:var(--white);
    opacity:1;
    filter:none;
  }
}
