
:root{--ink:#07366c;--green:#064c8d;--paper:#faf7f1;--muted:#69717a;--line:#d9dfe5;--sand:#f0e8df;--accent:#e7eff8}.review,.design-index,.footer-bottom{display:none!important}.btn{border-radius:30px}.btn:hover{background:#003769}.brand svg{display:none}.brand-name{font-size:24px}.wide-hero{margin-top:0;height:650px}.wide-hero>img{filter:brightness(.95)}.wide-hero .overlay{background:linear-gradient(90deg,#faf7f1fa 0%,#faf7f1d9 30%,transparent 75%);color:var(--ink);padding:55px}.wide-hero p{color:var(--ink)}.wide-hero h1{font-size:74px;max-width:650px}.searchbar{position:relative;margin-top:-35px;box-shadow:0 8px 30px #432a1110;border:0;border-radius:5px;z-index:2}.tinted{background:#f1e9df}.cta{background:linear-gradient(110deg,#07366c,#106bab)}.room-card{background:#fff}.room-card h3,.room-card>p,.room-bottom{margin-left:18px;margin-right:18px}.room-bottom{padding-bottom:18px}.editorial-image,.hero-visual>img{border-radius:0}.message-text{min-height:150px;resize:vertical;line-height:1.6}.messengers{display:flex;gap:14px;flex-wrap:wrap;margin:24px 0}.disabled{opacity:.55;cursor:not-allowed}.integration-note{font-size:12px;margin-top:15px}.wide-hero .btn.light{background:var(--green);color:white}@media(max-width:800px){.brand-name{font-size:18px}.wide-hero{height:570px}.wide-hero h1{font-size:46px}.wide-hero .overlay{padding:26px}.searchbar{margin-top:18px}.messengers .btn{width:100%}}

.footer-links{flex-wrap:wrap;max-width:650px}.contact-actions{gap:10px}

/* Summer direction */
:root{--paper:#fffbf4;--ink:#103b68;--muted:#586c7b;--line:#e3e8e7;--accent:#ffe3a0}body{background:var(--paper)}.header{background:#fffcf7f2;backdrop-filter:blur(16px)}.header-inner{height:88px}.wide-hero{margin-top:24px;height:620px;border-radius:36px;overflow:hidden;background:#fff0ce;isolation:isolate}.wide-hero>img{position:absolute;right:0;top:0;width:59%;height:100%;object-fit:cover;object-position:65% center;filter:none;animation:sea-in 1.3s ease-out both}.wide-hero .overlay{width:53%;padding:58px 48px;background:linear-gradient(90deg,#fff1d4 85%,#fff1d400);z-index:2}.wide-hero h1{font-size:clamp(48px,5.4vw,78px);line-height:1.16;letter-spacing:-2px}.wide-hero h1 em{font-style:normal;color:#df7247}.wide-hero p{font-size:16px;line-height:1.8;max-width:320px}.wide-hero .eyebrow{max-width:280px;line-height:1.8;color:#9d642e}.holiday-stamp{position:absolute;z-index:3;right:36px;top:20px;font-size:94px;color:#ffe19b;line-height:1;filter:drop-shadow(0 3px 8px #133e6c22);animation:sun-sway 9s ease-in-out infinite}.sea-caption{position:absolute;right:26px;bottom:72px;z-index:3;padding:12px 20px;border-radius:30px;background:#ffffffeb;color:var(--ink);font-size:12px;box-shadow:0 8px 30px #16385419}.searchbar{margin:-38px 22px 0;padding:26px 30px;border-radius:24px;box-shadow:0 14px 40px #745d2720;position:relative;z-index:5}.btn{font-size:13px;transition:transform .25s,box-shadow .25s,background .25s;box-shadow:0 5px 14px #07448213}.btn:hover{transform:translateY(-3px);box-shadow:0 9px 20px #07448222}.wide-hero .btn.light,.searchbar .btn{background:#e77d4d;border-color:#e77d4d;color:#fff}.wide-hero .btn.light:hover,.searchbar .btn:hover{background:#cf6237;border-color:#cf6237}.room-card{border-radius:25px;overflow:hidden;border:1px solid #e7e9e2;box-shadow:0 8px 26px #173d6010;transition:transform .3s,box-shadow .3s}.room-card:hover{transform:translateY(-7px);box-shadow:0 18px 35px #173d6020}.room-photo img{height:265px}.room-photo .badge{border-radius:20px;background:#fff9ebf2}.room-card h3{margin-top:22px}.icon-button{background:#fff0cb;border:0;color:#825222}.room-bottom{border-color:#edf0ee}.section-head .eyebrow,.split .eyebrow{color:#b9663c}.tinted{background:#f2f5e9}.split>img,.infra-grid img,.contact-grid .map-photo,.service-row img{border-radius:28px}.infra-grid article{background:#fff;border-radius:28px;padding:12px 12px 24px;box-shadow:0 8px 25px #133d5f0a}.infra-grid article h3,.infra-grid article p{margin-left:12px;margin-right:12px}.infra-grid img{border-radius:20px}.cta{border-radius:32px;background:radial-gradient(circle at 90% 0%,#2189a2,transparent 50%),#074782;overflow:hidden}.cta .btn.light{background:#ffe1a0;border-color:#ffe1a0}.stats{border:0;gap:16px;padding-top:36px}.stat{border:0;background:#f5eddc;border-radius:20px;padding:22px!important}.stat:nth-child(2){background:#e6f2f0}.stat:nth-child(3){background:#ffeadf}.stat:nth-child(4){background:#eaf0f8}.stat strong{font-size:26px}.modal{border-radius:28px}.modal-top{background:#fff5df;padding:20px 26px}.booking-shell{border-radius:26px;box-shadow:0 12px 45px #103b6809}.modal .booking-shell{border-radius:0;box-shadow:none}.booking-card{border-radius:24px;background:#fff0d5}.summary-box{border-radius:18px;background:#edf5f7}.booking-choice{padding:15px 10px;border-radius:14px}.booking-choice:has(input:checked){background:#fff0d0}.booking-choice img{border-radius:12px}input,select,textarea{border-radius:12px;padding:13px;background:#fff}.message-text{border:1px solid #d4e3e9;padding:18px;font-size:14px;background:#f8fbfc}.copy-button{background:#fff0d0;color:#754c19;border:1px solid #edd8aa;box-shadow:none}.copy-button:hover{background:#ffe3ac}.max-button{background:#1458b2;border-color:#1458b2}.room-gallery{border-radius:28px;overflow:hidden}.gallery-grid img{border-radius:18px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease var(--delay,0ms),transform .75s ease var(--delay,0ms)}.reveal.in-view{opacity:1;transform:none}.reveal.in-view.room-card:hover{transform:translateY(-7px)}.modal[open]{animation:modal-in .25s ease-out}.wide-hero .overlay>*{animation:copy-in .8s ease-out both}.wide-hero .overlay p{animation-delay:.12s}.wide-hero .overlay .btn{animation-delay:.22s}@keyframes sea-in{from{transform:scale(1.05);opacity:.6}to{transform:scale(1);opacity:1}}@keyframes sun-sway{50%{transform:rotate(15deg)}}@keyframes copy-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:800px){.wide-hero{height:760px;border-radius:25px;margin-top:16px}.wide-hero>img{top:auto;bottom:0;width:100%;height:350px;object-position:center 40%}.wide-hero .overlay{width:100%;height:420px;padding:30px;background:linear-gradient(#fff0d0 92%,#fff0d000);justify-content:flex-start}.wide-hero h1{font-size:53px}.wide-hero .eyebrow{margin-bottom:16px;max-width:240px;font-size:9px}.wide-hero p{font-size:14px;margin:18px 0}.holiday-stamp{font-size:65px;right:18px;top:18px}.sea-caption{bottom:24px;right:16px;font-size:10px}.searchbar{margin:16px 0 0;padding:20px;border-radius:20px}.stat{padding:17px!important}.stat strong{font-size:22px}.modal{border-radius:20px}.room-photo img{height:250px}.booking-shell{padding:22px}.cta{border-radius:24px}.header-inner{height:76px}.section{padding-top:65px;padding-bottom:65px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

/* Slow sunlight in the margins; decorative sea contours inside the CTA. */
body{isolation:isolate}
.ambient-light{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.ambient-light::before,.ambient-light::after{content:"";position:absolute;width:65vw;height:85vh;border-radius:50%;background:radial-gradient(ellipse,#f5d79245,transparent 68%);animation:light-drift 28s ease-in-out infinite alternate}
.ambient-light::before{left:-38vw;top:10vh}
.ambient-light::after{right:-35vw;bottom:-15vh;background:radial-gradient(ellipse,#83c9cf30,transparent 68%);animation-delay:-14s}
.cta{position:relative;isolation:isolate}
.cta::before,.cta::after{content:"";position:absolute;z-index:-1;pointer-events:none;width:720px;height:420px;border:1px solid #d0f5f522;border-radius:46% 54% 58% 42%;right:-150px;top:-250px;box-shadow:0 0 0 22px #d0f5f508,0 0 0 45px #d0f5f508,0 0 0 68px #d0f5f508;animation:sea-contours 24s ease-in-out infinite alternate}
.cta::after{top:auto;bottom:-340px;right:10%;animation-delay:-12s;opacity:.65}
@keyframes light-drift{to{transform:translate(7vw,-5vh) scale(1.12)}}
@keyframes sea-contours{to{transform:translate(-35px,24px) rotate(12deg)}}
.motion-paused::before,.motion-paused::after,.motion-paused *{animation-play-state:paused!important}
@media(max-width:800px){.ambient-light::before,.ambient-light::after{width:100vw;opacity:.65}.cta::before,.cta::after{opacity:.5}}
@media(prefers-reduced-motion:reduce){.ambient-light{display:none}.cta::before,.cta::after{animation:none!important}}

/* Location card: native, sharp map with its attribution intact. */
.location-card{min-width:0;background:#fff;border:1px solid #e6ece8;border-radius:30px;overflow:hidden;box-shadow:0 16px 45px #123d6810}
.location-heading{display:flex;align-items:center;gap:15px;padding:23px 26px;background:#f2f5e9}
.location-heading .eyebrow{font-size:9px;letter-spacing:2px;margin-bottom:6px}
.location-heading h3{margin:0;font-family:inherit;font-size:22px}
.location-icon{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;border-radius:16px;background:#fff;color:#d87943;font-size:32px}
.location-map{display:block;width:100%;height:390px;border:0;background:#edf3e9}
.location-details{padding:23px 26px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.location-details>div{flex:1 1 200px}
.location-details strong{font-size:16px;line-height:1.5}
.location-details p{margin:5px 0 0;font-size:13px;color:var(--muted)}
.location-details .btn{font-size:12px;white-space:nowrap}
.location-link{font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:4px}
@media(max-width:800px){.location-card{border-radius:24px}.location-heading,.location-details{padding:20px}.location-map{height:340px}.location-details .btn{width:100%;justify-content:center}}
.location-details>div{flex-basis:100%}.location-details .location-link{margin-left:auto}@media(max-width:800px){.location-details .location-link{margin-left:0}}

/* Remove the illustrative sun and contour rings. */
.holiday-stamp,.ambient-light{display:none!important}
.cta::before,.cta::after{content:none!important;animation:none!important}
.location-map-link{display:block;position:relative;background:#edf2ed}
.location-guide{display:block;width:100%;height:auto}
.location-map-link>span{display:block;padding:12px 20px;text-align:right;font-size:12px;color:#103b68;background:#f3f6f3}

/* Atmospheric motion lives in the backgrounds, never over photos or text. */
body{
 background-color:#fffbf4;
 background-image:radial-gradient(ellipse at 8% 22%,#efd49d65 0%,transparent 42%),radial-gradient(ellipse at 92% 70%,#a8d7d44d 0%,transparent 43%);
 background-size:160% 160%;
 background-attachment:fixed;
 animation:daylight-flow 18s ease-in-out infinite alternate;
}
.cta{
 background-image:linear-gradient(115deg,#073c72 0%,#105a86 32%,#247f91 58%,#0b497d 82%,#073c72 100%);
 background-size:250% 200%;
 animation:tide-flow 14s ease-in-out infinite alternate;
}
.tinted{
 background-image:linear-gradient(115deg,#f2f5e9,#edf4ec,#e3efea,#f2f5e9);
 background-size:250% 100%;
 animation:tide-flow 20s ease-in-out infinite alternate;
}
@keyframes daylight-flow{from{background-position:0% 15%,100% 85%}to{background-position:100% 80%,0% 15%}}
@keyframes tide-flow{from{background-position:0% 50%}to{background-position:100% 50%}}
body.motion-paused,.motion-paused .cta,.motion-paused .tinted{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){body,.cta,.tinted{animation:none!important;background-attachment:scroll}}

/* Visible sunlight: broad feathered rays and soft optical highlights. */
.ambient-light{display:block!important;z-index:-1;inset:-12%;opacity:1}
.ambient-light::before{
 content:"";position:absolute;inset:-25%;width:auto;height:auto;border-radius:0;
 background:conic-gradient(from 125deg at 12% -8%,transparent 0deg,#ffe3a57a 8deg,transparent 17deg,#fff8dfcc 24deg,transparent 31deg,#f5cf7770 40deg,transparent 49deg,#fff9dfaa 58deg,transparent 67deg);
 filter:blur(18px);transform-origin:12% 0%;
 animation:sunrays-sweep 12s ease-in-out infinite alternate;
}
.ambient-light::after{
 content:"";position:absolute;inset:0;width:100%;height:100%;border-radius:0;
 background:radial-gradient(ellipse 16% 24% at 24% 38%,#fff6cee0,transparent 75%),radial-gradient(ellipse 12% 18% at 72% 68%,#ffe0a685,transparent 75%),radial-gradient(ellipse 7% 11% at 50% 48%,#ffffffc4,transparent 75%);
 filter:blur(12px);animation:sunlight-glide 10s ease-in-out infinite alternate;
}
body{animation:none;background-image:linear-gradient(120deg,#fff9ee,#faf7ed 50%,#eff6f1)}
@keyframes sunrays-sweep{0%{transform:rotate(-9deg) translateX(-4%);opacity:.4}100%{transform:rotate(10deg) translateX(7%);opacity:.95}}
@keyframes sunlight-glide{0%{transform:translate(-9%,-5%);opacity:.35}100%{transform:translate(11%,8%);opacity:.9}}
@media(max-width:800px){.ambient-light::before{opacity:.8;filter:blur(12px)}.ambient-light::after{opacity:.8}}
@media(prefers-reduced-motion:reduce){.ambient-light{display:none!important}}

/* Booking UI: contained scrolling, spacious room photos, shared calendar. */
#booking-dialog{overflow:hidden;max-height:92dvh;width:min(920px,calc(100vw - 32px))}
#booking-dialog[open]{display:flex;flex-direction:column}
#booking-dialog .modal-top{flex-shrink:0}
#booking-modal-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bccbc9 transparent}
#booking-modal-content::-webkit-scrollbar{width:6px}
#booking-modal-content::-webkit-scrollbar-thumb{background:#bccbc9;border-radius:8px}
#booking-form:has(.booking-room-card){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
#booking-form:has(.booking-room-card)>.form-actions{grid-column:1/-1;position:sticky;bottom:-38px;background:#fffdf8f5;padding:18px 0;margin:0;z-index:2}
.booking-room-card{min-width:0;border:1px solid #dfe7e4;border-radius:22px;background:#fff;overflow:hidden}
.booking-room-card:has(input:checked){border-color:#1a5c88;box-shadow:0 0 0 2px #1a5c88}
.booking-room-card .booking-choice{position:relative;display:flex;flex-direction:column;gap:0;padding:0;border:0;border-radius:0;align-items:stretch;cursor:pointer}
.booking-room-card .booking-choice input{position:absolute;z-index:1;top:14px;left:14px;width:24px;height:24px;margin:0;box-shadow:0 0 0 5px #fff;border-radius:50%}
.booking-room-card .booking-choice img{width:100%;height:230px;object-fit:cover;border-radius:0}
.booking-room-card .booking-choice span{padding:18px 18px 8px;font-size:15px;line-height:1.5}
.booking-room-card .booking-choice small{font-size:12px;line-height:1.5}
.room-preview{background:none;border:0;text-align:left;padding:8px 18px 20px;font:inherit;font-size:12px;color:#125486;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.date-trigger{width:100%;min-height:48px;border:1px solid #d8e2df;background:#fff;border-radius:12px;padding:12px 16px;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.date-trigger::after{content:"⌄";float:right;margin-left:8px}
.date-trigger:focus-visible,.calendar-day:focus-visible,.room-preview:focus-visible{outline:3px solid #dd9258;outline-offset:3px}
.date-picker{width:min(390px,calc(100vw - 24px));padding:24px;border:0;border-radius:26px;background:#fffcf5;color:#103b68;box-shadow:0 24px 90px #14364c40;max-height:90dvh;overflow-y:auto}
.date-picker::backdrop{background:#153b4c70;backdrop-filter:blur(4px)}
.calendar-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}
.calendar-heading small{font-size:10px;letter-spacing:1.5px;color:#a4683f}
.calendar-heading h2{font-size:28px;margin:8px 0 0}
.calendar-close,.calendar-nav button{border:0;border-radius:50%;width:40px;height:40px;background:#f5ead6;color:#16466d;font-size:26px;cursor:pointer}
.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.calendar-nav strong{font-size:15px;text-transform:capitalize}
.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.calendar-week{font-size:12px;color:#7c8990;margin-bottom:8px}
.calendar-day{aspect-ratio:1;border:0;border-radius:50%;font:inherit;font-size:14px;color:#174668;background:transparent;cursor:pointer;min-height:38px}
.calendar-day:hover:not(:disabled){background:#f9e6c0}
.calendar-day[aria-current]{box-shadow:inset 0 0 0 1px #9fb4c1}
.calendar-day[aria-pressed="true"]{background:#155587!important;color:white}
.calendar-day:disabled,.calendar-nav button:disabled{opacity:.3;cursor:default}
.calendar-note{font-size:12px;color:#74828b;margin:18px 0 0}
@media(max-width:600px){
 #booking-dialog{width:calc(100vw - 20px);max-height:94dvh;border-radius:24px}
 #booking-dialog .modal-top{padding:18px;font-size:9px;letter-spacing:.5px}
 #booking-dialog .booking-shell{padding:22px 16px}
 .booking-steps{display:flex;gap:10px;font-size:10px;flex-wrap:wrap}
 #booking-form:has(.booking-room-card){grid-template-columns:1fr;gap:18px}
 .booking-room-card .booking-choice img{height:auto;aspect-ratio:4/3}
 .booking-room-card .booking-choice span{font-size:16px}
 #booking-form:has(.booking-room-card)>.form-actions{bottom:-22px;gap:10px}
 .date-picker{padding:20px}
}
@media(max-width:600px){#booking-form:has(.booking-room-card)>.form-actions{flex-direction:row;align-items:center;padding:12px 0;background:#fffdf8}#booking-form:has(.booking-room-card)>.form-actions .btn{flex:1;width:auto;min-width:0;padding:14px 10px}}

/* Consistent radio controls without native rectangular backgrounds. */
.booking-room-card .booking-choice input[type="radio"]{
 -webkit-appearance:none;appearance:none;
 display:block;box-sizing:border-box;padding:0!important;
 width:26px;height:26px;min-width:26px;
 border:2px solid #8c9da8;border-radius:50%!important;
 background:#fff;box-shadow:0 0 0 4px #fff;
 cursor:pointer;
}
.booking-room-card .booking-choice input[type="radio"]:checked{
 border-color:#155587;
 background:radial-gradient(circle,#155587 0 5px,#fff 6px);
}
.booking-room-card .booking-choice input[type="radio"]:focus-visible{
 outline:3px solid #df9656;outline-offset:6px;
}
@media(forced-colors:active){.booking-room-card .booking-choice input[type="radio"]{-webkit-appearance:auto;appearance:auto}}
