/* Static, photograph-referenced island. No camera controls or motion. */
.header,body.evening .header{border-bottom:0}
.header .header-book{gap:22px;padding:8px 9px 8px 23px;min-height:49px;border:1px solid #ffffff26;border-radius:999px;background:#294739;box-shadow:0 5px 16px #253f3512;font-size:12px;letter-spacing:.015em;transition:background .2s,box-shadow .2s,transform .2s}
.header .header-book span{display:flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:50%;background:#ffffff16;font-size:20px;transition:background .2s,transform .2s}
.header .header-book:hover{background:#355644;box-shadow:0 7px 20px #253f3525;transform:translateY(-1px)}
.header .header-book:hover span{background:#ffffff26;transform:rotate(6deg)}
body.evening .header .header-book{background:#e1e8d4;color:#253f35;box-shadow:0 5px 16px #0002}
body.evening .header .header-book span{background:#253f3510}
@media(max-width:520px){.header .header-book{gap:11px;padding:6px 7px 6px 16px;min-height:40px;font-size:10px}.header .header-book span{width:27px;height:27px;font-size:17px}}
.hero{height:auto;min-height:850px;background:#f0f0e8}
.hero:before{background:radial-gradient(ellipse at 77% 43%,#fffdf5 0,transparent 68%)}
.hero .contour{display:none}
.hero-copy{top:205px;left:6%;max-width:43%}
.hero h1{font-size:clamp(52px,4.8vw,76px);line-height:1.13;letter-spacing:-.048em;color:#294336;text-wrap:balance}
.hero h1>span{display:block;white-space:nowrap}
.hero-description{margin:26px 0 25px;line-height:1.9}
.hero[data-season=evening] h1{color:#edf1e6}
.scene{left:auto;right:2%;top:140px;width:min(62vw,780px);height:auto;aspect-ratio:3/2;perspective:none;cursor:default;touch-action:auto}
.island{position:relative;inset:auto;aspect-ratio:3/2;transform:none;will-change:auto}
.island-image{transition:opacity .65s ease}
.island-shadow{left:17%;bottom:0;width:70%;height:32px;filter:blur(20px);transform:none;background:#34442b20}
.atmosphere{bottom:164px;left:6%}
.hero-copy .atmosphere{position:relative;inset:auto;width:max-content;max-width:100%;margin:34px auto 0;pointer-events:auto}
.scene-caption{left:36%;right:2%;bottom:165px;text-align:center;font-size:9px;letter-spacing:.035em}
@media(min-width:1600px){
  .hero{min-height:1000px}
  .hero-copy{left:7%;top:245px}
  .scene{top:140px;left:auto;right:3%;width:min(61vw,1000px)}
  .atmosphere{left:7%}
}
@media(min-width:1101px) and (max-height:800px){
  .hero{min-height:760px}
  .hero-copy{top:200px}
  .hero h1{font-size:clamp(51px,4.8vw,72px)}
  .scene{top:110px;left:auto;right:3%;width:min(61vw,735px)}
  .atmosphere{bottom:149px}
  .scene-caption{left:39%;right:3%;bottom:144px}
}
@media(min-width:801px) and (max-width:1100px){
  .hero{min-height:790px}
  .hero-copy{top:175px;left:5%}
  .hero h1{font-size:clamp(40px,4.8vw,52px)}
  .scene{left:37%;right:1%;top:205px;width:auto}
  .scene-caption{left:40%;bottom:165px}
}
@media(max-width:800px){
  .hero{display:flex;flex-direction:column;min-height:0;height:auto;padding:125px 0 25px}
  .hero-copy{position:relative;top:auto;left:auto;margin:0 6%;max-width:none}
  .hero h1{font-size:clamp(44px,7.8vw,62px)}
  .hero h1 br:first-of-type{display:none}
  .hero-description{margin:20px 0 0}
  .hero-copy .text-link{display:none}
  .hero-copy .atmosphere{margin-top:27px;margin-bottom:10px}
  .scene{position:relative;top:auto;left:auto;right:auto;width:94%;margin:20px auto 0}
  .atmosphere{position:relative;bottom:auto;left:auto;margin:16px auto 28px}
  .atmosphere>.eyebrow{display:none}
  .scene-caption{position:relative;left:auto;right:auto;bottom:auto;margin:12px 5% 25px;font-size:8px}
  .hero-booking{position:relative;bottom:auto;left:auto;right:auto;margin:0 5%}
}
@media(max-width:520px){
  .hero{padding-top:111px;padding-bottom:20px}
  .hero-copy{margin:0 7%}
  .hero h1{font-size:clamp(40px,12.4vw,54px);line-height:1.14}
  .hero h1 em{font-size:.92em;margin-top:5px}
  .hero-description{font-size:12px;margin-top:16px}
  .scene{width:100%;margin-top:23px}
  .island-shadow{height:16px;filter:blur(12px)}
  .atmosphere{margin-top:19px}
  .season-switch button{font-size:10px;padding:10px 17px;min-height:42px}
  .scene-caption{margin-top:13px;margin-bottom:23px;font-size:7px}
}

/* Realistic island refresh; retain original composition and booking flow. */
.hero-copy{pointer-events:auto}
.hero .hero-description{font-size:15px;line-height:1.8;margin:24px 0 0}
.hero-copy .eyebrow{font-size:11px}
.header nav a{font-size:14px}
.header .header-book{font-size:14px;padding:12px 24px;min-height:49px}
.hero-copy .atmosphere{margin-top:26px;margin-left:0}
.season-switch button{font-size:14px;min-height:44px;padding:10px 18px}
.hero-booking-action{display:flex;flex-direction:column;align-items:center;gap:9px}
.hero .hero-booking .button{font-size:15px;justify-content:center;padding:14px 24px}
.hero-booking-action>a{font-size:12px;text-decoration:underline;text-underline-offset:4px}
@media(min-width:801px) and (max-width:1100px){.header nav a{font-size:12px}.header .header-book{font-size:12px}.hero .hero-booking .button{font-size:13px}}
@media(max-width:800px),(max-width:1000px) and (max-height:500px){
 .hero{display:flex;flex-direction:column;min-height:0;height:auto;padding:30px 0 26px}
 .hero-copy{position:relative;top:auto;left:auto;max-width:none;margin:0 22px;text-align:center}
 .hero h1{font-size:clamp(42px,8.5vw,68px)}
 .hero-copy .eyebrow{font-size:11px;margin-bottom:20px}
 .hero .hero-description{font-size:15px;margin:20px 0 0}
 .hero-copy .atmosphere{margin:23px auto 0}
 .scene{position:relative;inset:auto;width:100%;height:auto;margin:16px auto 20px}
 .hero .hero-booking{position:relative;inset:auto;margin:0 20px;grid-template-columns:1fr 1fr;padding:24px;gap:22px 16px;border-radius:25px}
 .hero .booking-intro{display:none}
 .hero .mini-fact b{font-size:18px}.hero .mini-fact small{font-size:12px}
 .hero-booking-action{grid-column:1/-1;width:100%;gap:11px}
 .hero .hero-booking .button{width:100%;font-size:16px;min-height:54px}
 .hero-booking-action>a{font-size:13px;min-height:36px;display:flex;align-items:center}
 .header nav a{font-size:16px}.header .header-book{font-size:12px;min-height:44px;padding:10px 16px}
}
@media(max-width:360px){.hero h1{font-size:36px}.hero-copy{margin:0 18px}.season-switch button{font-size:13px;padding:10px 14px}.hero .mini-fact small{font-size:11px}}
/* Client update: jasmine mark and current photographs. */
.brand .jasmine-mark{width:44px;height:44px;stroke-width:1.25;flex:none}
.brand .brand-name{font-family:Fraunces,Georgia,serif;font-size:32px;line-height:1.05}
.brand .brand-name small{display:block;font-family:Outfit,Arial,sans-serif;font-size:10px;line-height:1.2;letter-spacing:.16em;margin:0 0 4px;font-weight:500}
.gallery-grid{grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:230px 230px}
.gallery-large{grid-column:auto;grid-row:span 2}
.wellness-image img{object-position:center 47%}
@media(max-width:1100px){.brand .brand-name{font-size:30px}.brand .jasmine-mark{width:38px;height:38px}.gallery-grid{grid-template-rows:190px 190px}}
@media(max-width:800px){.brand .brand-name{font-size:27px}.brand .brand-name small{font-size:9px;margin-bottom:3px}.brand .jasmine-mark{width:31px;height:38px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:12px}.gallery-large{grid-column:span 2;grid-row:span 1;aspect-ratio:4/3}.gallery-item:not(.gallery-large){aspect-ratio:4/5}.footer .brand .brand-name{font-size:32px}.footer .brand .jasmine-mark{width:40px;height:45px}}
@media(max-width:360px){.header .brand .brand-name{font-size:24px}.header .brand .jasmine-mark{width:26px}.header .brand{gap:5px}.header .header-book{font-size:11px;padding:10px 12px}}

/* Client photographs — 8 October 2026 */
.photo-story>img{object-position:center 52%}
.interior{padding-top:0}
.interior-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.interior-grid figure{margin:0;min-width:0}
.interior-photo{display:block;width:100%;aspect-ratio:4/3;padding:0;overflow:hidden;border-radius:8px;background:var(--sage)}
.interior-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.interior-grid figcaption{padding:20px 0 0}
.interior-grid h3{font-family:var(--serif);font-size:24px;font-weight:400;letter-spacing:-.03em;line-height:1.25}
.interior-grid figcaption p{font-size:13px;margin-top:7px}
.wellness-image{height:auto;aspect-ratio:1/1.05;margin-right:26px;margin-bottom:26px}
.wellness-main-photo{display:block;position:relative;width:100%;height:100%;padding:0;border-radius:8px;overflow:hidden;background:var(--pine)}
.wellness-main-photo img{object-position:center}
.wellness-inset{position:absolute;right:-26px;bottom:-26px;width:58%;aspect-ratio:4/3;border:6px solid var(--sage);border-radius:8px;overflow:hidden;padding:0;background:var(--pine);box-shadow:0 12px 30px #23372f1a}
.wellness-inset img{object-position:center}
.wellness-photo-label{position:absolute;bottom:0;left:0;right:0;padding:28px 15px 14px;text-align:left;font-size:12px;line-height:1.3;color:#fff;background:linear-gradient(transparent,#14251ad9);pointer-events:none}
.gallery-item:after{content:'';background:linear-gradient(transparent 62%,#162a20a8)}
.gallery-note{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:25px;font-size:13px}
.gallery-note .text-link{flex:none;font-size:13px}
.lightbox figcaption{color:#eeeede;font-size:13px;line-height:1.4;margin-top:14px;padding:0 20px;text-align:center;max-width:760px}
@media(hover:hover){.interior-photo:hover img{transform:scale(1.035)}}
@media(max-width:800px){
  .interior{padding-top:10px;padding-bottom:55px}
  .interior-grid{grid-template-columns:1fr;gap:30px}
  .interior-photo{aspect-ratio:4/3;border-radius:14px}
  .interior-grid figcaption{padding-top:14px}
  .interior-grid h3{font-size:26px}
  .interior-grid figcaption p{font-size:15px}
  .wellness-image{width:calc(100% - 18px);margin-right:18px;margin-bottom:18px;aspect-ratio:1/1.1}
  .wellness-inset{right:-18px;bottom:-18px;border-width:5px;border-radius:12px}
  .wellness-main-photo{border-radius:14px}
  .wellness-photo-label{font-size:12px;padding:25px 12px 12px}
  .wellness-main-photo .wellness-photo-label{bottom:auto;top:0;padding:15px 14px 30px;background:linear-gradient(#14251aa0,transparent)}
  .gallery-note{display:block;line-height:1.8;font-size:14px}
  .gallery-note .text-link{display:flex;max-width:max-content;margin-top:10px;font-size:14px}
  .lightbox figcaption{font-size:12px;margin-top:10px;padding:0 25px}
  .lightbox figure img{max-height:calc(100dvh - 220px)}
}
@media(prefers-reduced-motion:reduce){.interior-photo img{transition:none}}

/* Prominent availability access */
.availability-card{display:block;max-width:none;padding:34px;margin-top:35px;border:1px solid #d5dfcc;border-radius:20px;background:#e9eee1;box-shadow:0 10px 30px #29433705}
.availability-icon{display:flex;width:48px;height:48px;align-items:center;justify-content:center;border:1px solid #c8d4bf;border-radius:12px;background:#f7f9ef;color:var(--pine);margin-bottom:23px}
.availability-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.availability-card .availability-label{font-size:11px;font-weight:500;letter-spacing:.13em;margin:0 0 12px;color:#576953}
.availability-card h3{font-size:32px;line-height:1.2;font-weight:500;letter-spacing:-.035em}
.availability-card p:not(.availability-label){font-size:16px;line-height:1.7;margin:16px 0 24px;color:#56624f}
.availability-card .availability-button,.calendar-dialog .availability-button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:64px;padding:17px 24px;border-radius:999px;background:var(--pine);color:#fff;font-size:18px;font-weight:500;text-decoration:none;line-height:1.4}
.availability-button span{margin:0!important;font-size:25px;flex:none}
.availability-card small{display:block;font-size:12px;line-height:1.6;margin-top:15px;color:#607059}
.calendar-dialog{width:min(580px,calc(100vw - 32px));padding:40px;border-radius:20px}
.calendar-dialog>p:not(.eyebrow){font-size:16px;line-height:1.8;margin:20px 0 28px}
@media(max-width:800px){.availability-card{padding:26px;border-radius:20px}.availability-card h3{font-size:30px}.availability-card .availability-button,.calendar-dialog .availability-button{font-size:17px;min-height:62px;padding:16px 21px}.availability-card small{font-size:13px}.calendar-dialog{padding:38px 25px 28px}}
@media(max-width:360px){.availability-card{padding:23px 20px}.availability-card h3{font-size:28px}.availability-card .availability-button,.calendar-dialog .availability-button{font-size:16px;padding:15px 18px}}

/* Editorial photograph composition */
.hero.hero-photograph{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:38px 70px;min-height:0;height:auto;padding:155px 6% 40px;background:#f0f0e8}
.hero-photograph .hero-copy{position:relative;inset:auto;margin:0;max-width:none;width:100%;text-align:left}
.hero-photograph h1{font-size:clamp(49px,5.4vw,82px);line-height:1.17}
.hero-photograph h1>span:last-child{font-family:var(--sans);font-style:normal;font-size:1em;letter-spacing:inherit;margin-top:0;font-weight:inherit}
.hero-photograph .hero-copy .atmosphere{margin:30px 0 0}
.hero-photograph .season-switch{background:none;box-shadow:none;border:0;padding:0;gap:22px;border-radius:0}
.hero-photograph .season-switch button{background:none;color:#61715e;padding:9px 0;border-radius:0;border-bottom:1px solid transparent;min-height:44px;box-shadow:none;font-size:13px}
.hero-photograph .season-switch button[aria-pressed=true]{color:var(--pine);border-bottom-color:var(--pine)}
.hero-photo-frame{position:relative;isolation:isolate;width:100%;min-width:0;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;transform:none}
.hero-photo-frame:before{content:'';position:absolute;top:-14px;left:-14px;right:14px;aspect-ratio:4/3;z-index:-1;border:1px solid #8c99786b;border-radius:160px 18px 130px 18px;pointer-events:none}
.hero-photo-window{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:160px 18px 130px 18px;background:#e5e9de}
.hero-photo-image{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .45s}
.hero-photo-image.active{opacity:1}
.hero-photo-frame figcaption{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:24px 0 0;color:#314a3b;line-height:1.4}
.hero-photo-frame figcaption span:first-child{font-family:Fraunces,Georgia,serif;font-size:27px}
.hero-photo-frame figcaption span:last-child{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#6a765f}
.hero-photograph .hero-booking{grid-column:1/-1;position:relative;inset:auto;width:100%;margin:14px 0 0}
.hero.hero-photograph[data-season=evening]{background:#263b33}
.hero-photograph[data-season=evening] .hero-photo-frame:before{border-color:#83947b}
.hero-photograph[data-season=evening] .hero-photo-frame figcaption{color:#eaf0df}
.hero-photograph[data-season=evening] .hero-photo-frame figcaption span:last-child{color:#b8c4aa}
.hero-photograph[data-season=evening] .season-switch button{color:#b8c4aa}
.hero-photograph[data-season=evening] .season-switch button[aria-pressed=true]{color:#f2f4ea;border-color:#c8d5ba}
@media(min-width:1600px){.hero.hero-photograph{padding:170px 7% 45px;gap:50px 90px}.hero-photograph h1{font-size:clamp(83px,5.4vw,102px)}}
@media(min-width:801px) and (max-width:1100px){.hero.hero-photograph{padding:145px 5% 35px;gap:38px}.hero-photograph h1{font-size:clamp(44px,5.4vw,60px)}.hero-photo-window,.hero-photo-frame:before{border-radius:115px 14px 90px 14px}.hero-photo-frame figcaption span:first-child{font-size:23px}.hero-photo-frame figcaption span:last-child{font-size:9px;letter-spacing:.04em}}
@media(max-width:800px),(max-width:1000px) and (max-height:500px){
 .hero.hero-photograph{display:flex;flex-direction:column;gap:0;padding:35px 24px 26px}
 .hero-photograph .hero-copy{text-align:center;margin:0}
 .hero-photograph h1{font-size:clamp(42px,8.5vw,68px)}
 .hero-photograph h1>span:last-child{font-size:1em;margin-top:0}
 .hero-photograph .hero-copy .atmosphere{margin:24px auto 0}
 .hero-photo-frame{margin:42px 0 32px;padding:0;transform:none}
 .hero-photo-frame:before{top:-9px;left:-9px;right:9px;border-radius:95px 10px 80px 10px}
 .hero-photo-window{border-radius:95px 10px 80px 10px}
 .hero-photo-frame figcaption{padding:20px 0 0}
 .hero-photo-frame figcaption span:first-child{font-size:23px}
 .hero-photo-frame figcaption span:last-child{font-size:9px;letter-spacing:.02em}
 .hero.hero-photograph .hero-booking{width:100%;margin:0;padding:24px 20px}
}
@media(max-width:360px){.hero.hero-photograph{padding-left:20px;padding-right:20px}.hero-photograph h1{font-size:38px}.hero-photo-frame figcaption{gap:8px}.hero-photo-frame figcaption span:first-child{font-size:20px}.hero-photo-frame figcaption span:last-child{font-size:8px}.hero-photograph .season-switch{gap:20px}}
@media(prefers-reduced-motion:reduce){.hero-photo-image{transition:none}}

/* Client's original colour logo */
.brand .client-logo{display:block;width:158px;height:auto}
.header{height:auto;min-height:126px;padding-top:10px;padding-bottom:10px}
.footer .brand .client-logo{width:240px}
body.evening .header .client-logo{background:#fff;border-radius:6px;padding:4px}
@media(max-width:1100px){.brand .client-logo{width:150px}}
@media(max-width:800px){.header{min-height:0;padding-top:6px;padding-bottom:6px}.header .brand .client-logo{width:125px}.footer .brand .client-logo{width:220px}}
@media(max-width:360px){.header .brand .client-logo{width:110px}}

/* Clear lettering for the photograph caption */
.hero-photo-frame figcaption span:first-child{font-family:Outfit,Arial,sans-serif;font-weight:500;letter-spacing:-.025em}

.photo-story>img{object-position:center top}
