/* Shared design tokens. Page files describe composition; this file owns the UI scale. */
:root{
 --color-ink:#19151f;--color-muted:#625c68;--color-surface:#f6f5f7;--color-border:#d5d0da;
 --color-lime:#c4f512;--color-lime-hover:#d3ff42;--color-green-text:#547000;
 --font-body:Arial,Helvetica,sans-serif;
 --text-xs:.75rem;--text-sm:.875rem;--text-body:1rem;--text-lead:1.125rem;
 --title-hero:clamp(2.5rem,4.2vw,3.75rem);--title-page:clamp(2rem,3.1vw,2.75rem);
 --title-section:clamp(1.625rem,2.35vw,2.125rem);--title-panel:clamp(1.25rem,1.65vw,1.5rem);
 --title-card:clamp(1.0625rem,1.5vw,1.25rem);
 --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:40px;--space-8:56px;--space-9:72px;
 --section-space:clamp(32px,3.9vw,56px);--grid-gap:clamp(16px,1.7vw,24px);
 --gutter:clamp(18px,3.5vw,64px);--content-width:1360px;
 --radius-sm:10px;--radius-card:16px;--radius-panel:20px;--radius-pill:999px;
 --shadow-soft:0 8px 30px #19151f0b;--shadow-header:0 6px 28px #100b1826;
 --ease-out:cubic-bezier(.22,1,.36,1);--motion-fast:180ms;--motion-ui:350ms;--motion-reveal:850ms;--ease-reveal:cubic-bezier(.25,.1,.25,1);
 --header-full:86px;--header-compact:68px;
 --green:var(--color-green-text);--ink:var(--color-ink);--lime:var(--color-lime);--soft:var(--color-surface);
}
html{background:var(--color-surface);scrollbar-gutter:stable;scroll-padding-top:calc(var(--header-compact) + 24px)}
body.site-ui{background:#fff;font-family:var(--font-body);font-size:var(--text-body);line-height:1.55;color:var(--color-ink);padding-top:var(--header-full);text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%}
body.site-ui :is(.wrap,.detail-wrap,.hotel-wrap,.hotel-wide,.services-wrap,.destination-wrap,.contact-wrap,.catalog){width:min(var(--content-width),calc(100% - 2 * var(--gutter)));max-width:var(--content-width);margin-inline:auto}
body.site-ui :is(h1,h2,h3){font-family:var(--font-body);font-weight:700;text-wrap:balance;overflow-wrap:break-word}
body.site-ui h1{font-size:var(--title-page);line-height:1.08;letter-spacing:-.04em}
body.site-ui h2{font-size:var(--title-section);line-height:1.12;letter-spacing:-.035em;margin:0 0 var(--space-4)}
body.site-ui h3{font-size:var(--title-panel);line-height:1.2;letter-spacing:-.025em}
body.site-ui p{line-height:1.55}
body.site-ui :is(.eyebrow,.hero .eyebrow){font-size:var(--text-xs);font-weight:700;letter-spacing:.065em;line-height:1.4;margin:0 0 var(--space-3);color:var(--color-green-text)}
body.site-ui .eyebrow.light{color:#fff;letter-spacing:.14em}
body.site-ui :is(.hero,.cta,.lounge-section) .eyebrow:not(.light){color:var(--color-lime)}
body.site-ui :is(.section-intro,.service-content,.hotel-concept,.hotel-life,.breakfast-copy,.destination-life,.stay-beziers,.story-copy,.form-panel)>p:not(.eyebrow){font-size:var(--text-body);line-height:1.55;margin:0 0 var(--space-5);max-width:65ch}
body.site-ui :is(.source-note,.destination-credits){font-size:var(--text-xs);line-height:1.5;color:var(--color-muted)}
/* One button scale; icons and labels keep their proportions at every breakpoint. */
body.site-ui .button{min-height:48px;max-width:100%;padding:12px 24px;gap:var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:700;line-height:1.25;white-space:normal;text-align:center;transition:background-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-ui) var(--ease-out)}
body.site-ui .button.outline{border-color:#729700;background:#fff}
body.site-ui .button>svg{width:22px;height:22px}
body.site-ui .button>span{font-size:20px;line-height:1;flex-shrink:0}
body.site-ui :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #547000;outline-offset:4px}
body.site-ui :is(.hero,.cta,.lounge-section) :is(a,button):focus-visible{outline-color:var(--color-lime)}
@media(hover:hover){body.site-ui .button:hover{background:var(--color-lime-hover);transform:translateY(-2px);box-shadow:0 5px 16px #19151f14}body.site-ui .outline:hover{background:#f4ffdb}}
body.site-ui .button:active{transform:translateY(0);box-shadow:none}
body.site-ui .video-button{min-height:48px;font-size:var(--text-sm);line-height:1.3;gap:var(--space-3)}
body.site-ui .play{width:44px;height:44px;flex-shrink:0;transition:background-color var(--motion-fast)}
body.site-ui .video-button:hover .play{background:#ffffff20}
body.site-ui .hero-actions{gap:var(--space-5);flex-wrap:wrap}
/* Header is outside the hero and fixed over a reserved space: compaction never moves the page. */
#site-header{position:fixed;inset:0 0 auto;z-index:100;height:var(--header-full);min-height:0;background:#201b24;transition:height var(--motion-ui) var(--ease-out),transform var(--motion-ui) var(--ease-out),box-shadow var(--motion-ui)}
#site-header .site-header-inner{height:100%;width:min(var(--content-width),calc(100% - 2 * var(--gutter)));max-width:var(--content-width)}
#site-header .brand img{transition:transform var(--motion-ui) var(--ease-out);transform-origin:left center}
#site-header.is-compact{height:var(--header-compact);box-shadow:var(--shadow-header)}
#site-header.is-compact .brand img{transform:scale(.84)}
#site-header.is-hidden{transform:translateY(-105%)}
#site-header:focus-within,#site-header.menu-is-open{transform:translateY(0)}
#site-header .booking{min-height:44px;padding:10px 18px;white-space:nowrap;font-size:12px;line-height:1.25}
#site-header .booking:hover{transform:none}
#site-header nav a{min-height:44px;display:flex;align-items:center}
#site-header :is(a,button):focus-visible,#site-footer a:focus-visible{outline-color:var(--color-lime)}
#site-header .menu-toggle{width:44px;height:44px}
#site-header nav a:after,#site-footer nav a:after{transition:width var(--motion-ui) var(--ease-out)}
#site-footer .site-footer-inner{width:min(var(--content-width),calc(100% - 2 * var(--gutter)));max-width:var(--content-width)}
#site-footer{padding-block:var(--space-6) var(--space-4)}
#site-footer nav a{min-height:44px;display:flex;align-items:center}
#site-footer .address{min-height:44px}
#site-footer .demo-note{color:#bdb6c5;font-size:10px;line-height:1.5}
.skip-link{position:fixed;top:10px;left:var(--gutter);z-index:200;transform:translateY(-160%);padding:12px 20px;background:var(--color-lime);color:var(--color-ink);font-weight:700;border-radius:var(--radius-sm)}
.skip-link:focus{transform:translateY(0)}
html.menu-open{overflow:hidden}
/* Hero media is now responsive HTML, with explicit dimensions and high priority. */
body.site-ui .hero{min-height:0;isolation:isolate}
body.site-ui .hero:before{display:none}
body.site-ui .hero-media{position:absolute;inset:0 0 0 25%;width:75%;height:100%;object-fit:cover;object-position:center 50%;z-index:-2;display:block}
body.site-ui .hero:after{background:linear-gradient(90deg,#1c1920 0%,#1c1920f5 23%,#1c19208c 43%,#1c19200a 76%);z-index:-1}
body.site-ui .hero .hero-content{padding:var(--space-8) 0 var(--space-8);min-height:390px}
body.site-ui .hero h1{font-size:var(--title-hero);line-height:1.04;letter-spacing:-.045em;margin:var(--space-4) 0 var(--space-5);max-width:720px}
body.site-ui .hero h1 em{font-size:inherit;font-style:normal;white-space:normal}
body.site-ui .hero .hero-description{font-size:var(--text-lead);line-height:1.5;max-width:42ch;margin:0 0 var(--space-5)}
body.site-ui .hotel-breadcrumb{padding-block:var(--space-4) 0;font-size:var(--text-xs)}
body.site-ui .hotel-hero .hero-content{padding-top:var(--space-6)}
body.site-ui .destination-hero .hero-media{inset-inline-start:0;width:100%;object-position:center 33%}
body.site-ui .contact-hero .hero-content{min-height:350px}
body.site-ui .detail-heading{padding:var(--space-5) 0 var(--space-6)}
body.site-ui .detail-heading h1{font-size:var(--title-page);margin:var(--space-2) 0 var(--space-4);line-height:1.1}
body.site-ui .detail-heading>p:last-of-type{font-size:var(--text-body);max-width:85ch;line-height:1.5}
/* Reusable spacing rhythm and card surfaces. */
body.site-ui .section{padding-block:var(--section-space)}
body.site-ui :is(.catalog,.sights,.experiences,.additional-photos,.other-rooms,.arrival,.faq-section,.room-story){padding-top:var(--section-space)}
body.site-ui :is(.hotel-concept,.hotel-highlights,.breakfast-section){padding-block:var(--section-space)}
body.site-ui :is(.all-services,.other-rooms,.faq-section){padding-bottom:var(--section-space)}
body.site-ui :is(.destination-life,.stay-beziers){padding-top:var(--section-space);padding-bottom:0}
body.site-ui .stay-beziers{padding-inline:0;margin-bottom:var(--space-5)}
body.site-ui :is(.catalog-heading,.destination-heading){padding-inline:0;margin-bottom:var(--space-5)}
body.site-ui .catalog-heading{padding-bottom:0}
body.site-ui :is(.cards,.catalog-grid,.destination-cards,.sight-grid,.experience-grid,.services-grid,.access-grid,.concept-photos,.additional-photos>div){gap:var(--grid-gap)}
body.site-ui :is(.room-card,.catalog-card,.place,.sight-card,.experience-card,.hotel-photo,.hotel-tour,.breakfast-photo,.life-photo,.additional-photos button,.other-card,.access-card,.service-card,.hotel-map){border-radius:var(--radius-card)}
body.site-ui :is(.room-facts,.equipment,.comfort,.hotel-life,.hotel-benefits,.form-panel,.practical-panel,.contact-strip,.map-panel,.lounge-section){border-radius:var(--radius-panel)}
body.site-ui :is(.room-card,.catalog-card,.place,.sight-card,.experience-card,.hotel-photo,.hotel-tour,.breakfast-photo,.life-photo,.additional-photos button,.other-card)>img{object-fit:cover;display:block;transition:transform var(--motion-reveal) var(--ease-out)}
body.site-ui :is(.room-card,.catalog-card,.place,.sight-card,.experience-card,.other-card):after{background:linear-gradient(transparent,#17131dca 64%,#17131df5)}
body.site-ui :is(.room-caption strong,.catalog-title strong,.sight-caption>strong,.experience-caption strong,.other-card strong){font-size:var(--title-card);line-height:1.18;letter-spacing:-.025em}
body.site-ui :is(.room-caption small,.catalog-meta,.experience-caption small,.other-card small){font-size:var(--text-xs);line-height:1.4}
body.site-ui :is(.room-caption,.catalog-caption,.sight-caption,.experience-caption){left:var(--space-5);right:var(--space-5);bottom:var(--space-5)}
body.site-ui .catalog-card{height:clamp(250px,24vw,330px)}
body.site-ui .room-card{height:clamp(260px,24vw,330px)}
body.site-ui .room-caption{gap:10px}
body.site-ui .room-caption svg{width:24px;height:24px}
body.site-ui .place{min-height:260px;height:clamp(260px,23vw,315px)}
body.site-ui .sight-card{height:clamp(260px,24vw,320px)}
body.site-ui .experience-card{height:clamp(240px,22vw,290px)}
body.site-ui .experience-caption{gap:var(--space-3)}
body.site-ui .experience-caption>span:not(.experience-arrow){min-width:0}
body.site-ui .experience-caption small br{display:none}
body.site-ui :is(.circle-arrow,.catalog-arrow,.experience-arrow){width:30px;height:30px;flex-shrink:0;font-size:22px}
body.site-ui .sight-caption>span:last-child{display:inline-flex;align-items:center;min-height:32px;font-size:var(--text-sm)}
body.site-ui .other-card{height:210px}
body.site-ui .other-card strong{font-size:var(--text-sm)}
body.site-ui .other-card>span{left:var(--space-4);right:var(--space-4);bottom:var(--space-4)}
body.site-ui .other-card b{display:none}
body.site-ui :is(.photo-arrow,.expand-photo,.carousel-prev,.carousel-next,.gallery-prev,.gallery-next,.lightbox-controls button,.round,.close-dialog){min-width:44px;min-height:44px;width:44px;height:44px;flex-shrink:0}
body.site-ui .photo-arrow{top:calc(50% - 22px)}
body.site-ui :is(.carousel-prev,.carousel-next){top:calc(50% - 22px)}
body.site-ui .carousel-prev{left:-18px}body.site-ui .carousel-next{right:-18px}
body.site-ui .round.previous{color:#63566f;border-color:#a397af}
body.site-ui .dots{gap:0;margin-top:var(--space-2)}
body.site-ui .dots button{position:relative;width:40px;height:44px;border-radius:0;background:transparent}
body.site-ui .dots button:before{content:'';display:block;position:absolute;left:15px;top:17px;width:9px;height:9px;background:#d8d4dd;border-radius:50%}
body.site-ui .dots button.selected:before{background:#789b00}
body.site-ui :is(.benefits-inner,.room-benefits>.wrap,.services-benefits>.services-wrap,.destination-benefits>.destination-wrap){padding-block:var(--space-5)}
body.site-ui :is(.benefits-inner>div,.room-benefits .wrap>div,.services-benefits .services-wrap>div,.destination-benefits .destination-wrap>div,.hotel-benefits>div){font-size:var(--text-sm);line-height:1.3;gap:var(--space-4)}
body.site-ui :is(.benefits,.room-benefits,.services-benefits,.destination-benefits) svg{width:36px;height:36px}
body.site-ui .hotel-benefits{padding:var(--space-5) var(--space-4)}
body.site-ui .service-content{padding:var(--space-6) max(var(--gutter),var(--space-5))}
body.site-ui .breakfast{max-height:none;min-height:310px;object-fit:cover}
body.site-ui .service-features>div{font-size:var(--text-xs);line-height:1.4}
body.site-ui .review-heading h2{font-size:var(--title-panel)}
body.site-ui .reviews{padding-block:var(--space-6)}
body.site-ui .review p{font-size:var(--text-sm);line-height:1.5}
body.site-ui .review-bottom{flex-wrap:wrap;gap:var(--space-2) var(--space-4)}
body.site-ui .review{padding:var(--space-5);box-shadow:var(--shadow-soft)}
body.site-ui .stars{color:#5e7900}
body.site-ui :is(.comfort-title h2,.equipment h2,.room-facts h2,.practical-panel h2){font-size:var(--title-panel);line-height:1.2;letter-spacing:-.025em}
body.site-ui :is(.fact,.check-list,.story-copy p,.equipment details,.equipment-grid>div){font-size:var(--text-sm);line-height:1.5}
body.site-ui .gallery-layout{gap:var(--grid-gap);grid-template-columns:minmax(0,2.35fr) minmax(280px,1fr)}
body.site-ui .main-photo{height:auto;aspect-ratio:16/10;border-radius:var(--radius-panel)}
body.site-ui .main-photo>img{object-position:center 58%}
body.site-ui .thumbnail{min-width:70px;height:76px;border-radius:var(--radius-sm)}
body.site-ui .room-facts{padding:var(--space-5)}
body.site-ui .room-story{grid-template-columns:42% 1fr;gap:var(--grid-gap)}
body.site-ui .lined-title{padding-left:var(--space-7)}
body.site-ui .lined-title:before{width:28px;top:.6em;background:#85aa00}
body.site-ui .equipment{padding:var(--space-5)}
body.site-ui .equipment-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}
body.site-ui .equipment-grid>div{font-size:var(--text-xs)}
body.site-ui .check-list li{padding-left:24px;margin-bottom:var(--space-3)}
body.site-ui .check-list li:before{background:#608000;top:4px}
body.site-ui .additional-photos button{height:auto;aspect-ratio:4/3}
body.site-ui .other-rooms h2{font-size:var(--title-section)}
body.site-ui .source-note{padding-bottom:var(--space-6)}
body.site-ui .hotel-concept{gap:var(--grid-gap)}
body.site-ui .concept-photos .hotel-photo{height:clamp(200px,20vw,270px)}
body.site-ui .hotel-tour{height:auto;aspect-ratio:16/10}
body.site-ui .hotel-highlights{gap:var(--space-6)}
body.site-ui .highlights-copy li{font-size:var(--text-body);line-height:1.5;margin-bottom:var(--space-3)}
body.site-ui .highlights-copy li:before{background:#608000}
body.site-ui .highlights-copy li:first-child{max-width:100%}
body.site-ui .hotel-alien{top:-12px;right:0;opacity:.65}
body.site-ui .hotel-alien svg{width:66px;height:52px}
body.site-ui .highlights-copy h2{padding-right:75px}
body.site-ui .hotel-life{padding:var(--space-5);gap:var(--space-6);margin-bottom:var(--section-space)}
body.site-ui .hotel-life .hotel-photo{height:100%;min-height:300px}
body.site-ui .breakfast-photo{height:auto;aspect-ratio:16/10}
body.site-ui .breakfast-section{align-items:center;gap:var(--space-6)}
body.site-ui .breakfast-copy{padding:0 0 60px}
body.site-ui .services-alien{bottom:0;right:10px}
body.site-ui .services-alien svg{width:70px;height:55px}
body.site-ui .service-card{min-height:170px;padding:var(--space-5)}
body.site-ui .service-card h3,body.site-ui .service-card:nth-child(5) h3{font-size:var(--title-card);line-height:1.2;gap:var(--space-3);max-width:100%}
body.site-ui .service-card h3 svg{width:32px;height:32px}
body.site-ui .service-card p{font-size:var(--text-sm);line-height:1.5;max-width:60%}
body.site-ui .service-card>img{width:44%}
body.site-ui .lounge-section{margin-bottom:var(--section-space)}
body.site-ui .lounge-section>button{height:100%;min-height:245px}
body.site-ui .lounge-section>div{padding:var(--space-6)}
body.site-ui .lounge-section h2{padding-right:35px}
body.site-ui .lounge-section p:not(.eyebrow){font-size:var(--text-body);line-height:1.55}
body.site-ui .life-photo{height:auto;aspect-ratio:16/9}
body.site-ui .stay-beziers{gap:var(--space-7)}
body.site-ui .hotel-map img{height:auto;aspect-ratio:2/1}
body.site-ui .stay-features>div{font-size:var(--text-xs);line-height:1.4}
body.site-ui .destination-alien{opacity:.65}
body.site-ui .contact-strip{margin-block:var(--space-5);padding-block:var(--space-4)}
body.site-ui .contact-strip>a{font-size:var(--text-sm);line-height:1.4}
body.site-ui .contact-main{gap:var(--grid-gap);align-items:start}
body.site-ui .form-panel,body.site-ui .practical-panel{padding:var(--space-5)}
body.site-ui .contact-lined{padding-left:var(--space-8)}
body.site-ui .contact-lined:before{width:var(--space-7);top:.6em}
body.site-ui .form-panel>p{font-size:var(--text-sm)}
body.site-ui .contact-field :is(input,select,textarea){font-size:16px;line-height:1.4;min-height:48px;border-radius:var(--radius-sm);background:#fff}
body.site-ui .contact-field>svg{top:14px;width:20px;height:20px}
body.site-ui .consent{font-size:var(--text-xs);line-height:1.5;align-items:flex-start}
body.site-ui .consent input{width:22px;height:22px;min-width:22px;margin-top:1px;accent-color:#638300}
body.site-ui :is(.form-help,.form-status){font-size:var(--text-xs);line-height:1.5;color:var(--color-muted)}
body.site-ui .map-panel{min-height:330px}
body.site-ui .practical-panel p{font-size:var(--text-sm);line-height:1.5}
body.site-ui .practical-panel h2{padding-left:var(--space-7)}
body.site-ui .practical-panel h2:before{width:28px}
body.site-ui .access-card{padding:var(--space-5);min-height:230px}
body.site-ui .access-card>div{max-width:66%}
body.site-ui .access-card h3{font-size:var(--title-card);gap:var(--space-3);line-height:1.25}
body.site-ui .access-card h3 svg{width:30px;height:30px}
body.site-ui .access-card p{font-size:var(--text-sm);line-height:1.5}
body.site-ui .access-link{font-size:var(--text-xs);line-height:1.5;display:inline-block;margin-top:var(--space-3)}
body.site-ui .faq-heading{padding-left:0}
body.site-ui .faq-item summary{min-height:64px;font-size:var(--text-body);line-height:1.35;padding-block:var(--space-4)}
body.site-ui .faq-item>div{font-size:var(--text-sm);line-height:1.5}
body.site-ui .faq-item summary>svg{width:32px;height:32px}
body.site-ui .faq-item summary>span{transition:transform var(--motion-ui) var(--ease-out)}
body.site-ui .faq-item[open] summary>span{transform:rotate(180deg)}
/* Shared end-of-page invitation scale. */
body.site-ui :is(.cta,.services-cta,.destination-cta){min-height:0;padding-block:var(--space-7)}
body.site-ui :is(.cta,.services-cta,.destination-cta) h2{font-size:var(--title-section);line-height:1.12;margin-bottom:var(--space-4)}
body.site-ui :is(.cta,.services-cta,.destination-cta) p{font-size:var(--text-body);line-height:1.5;margin-bottom:var(--space-5)}
body.site-ui :is(.cta,.services-cta,.destination-cta) .button{font-size:var(--text-sm);min-width:0;padding:12px 24px}
body.site-ui .cta-content{margin-block:0;margin-left:30%;max-width:650px;padding-right:var(--gutter)}
body.site-ui .services-cta>div{max-width:900px}
body.site-ui .services-cta>img{opacity:.7;width:120px;height:110px}
body.site-ui .destination-cta{padding-inline:max(var(--gutter),calc((100% - var(--content-width))/2));justify-content:space-between;gap:var(--space-7)}
body.site-ui .destination-cta p{margin-bottom:0}
/* Dialogues remain native, keyboard-accessible, and visually quiet. */
body.site-ui dialog{border-radius:var(--radius-panel);max-height:calc(100dvh - 32px);overscroll-behavior:contain}
body.site-ui dialog[open]{animation:dialog-in var(--motion-ui) var(--ease-out)}
body.site-ui dialog .dialog-content{padding:var(--space-6)}
body.site-ui dialog h2{font-size:var(--title-section)}
body.site-ui dialog p{font-size:var(--text-body);line-height:1.55}
body.site-ui dialog .close-dialog{top:12px;right:12px;background:white;color:var(--color-ink);border:1px solid #d4ceda}
body.site-ui :is(.lightbox,.hotel-lightbox) .close-dialog{position:sticky;float:right;top:12px;margin:12px 12px -56px 0}
body.site-ui :is(.lightbox,.hotel-lightbox)>img{min-height:180px;height:auto;max-height:75dvh;object-fit:contain}
@keyframes dialog-in{from{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
/* Content is swapped only after preparation; the shell stays in the same document. */
@view-transition{navigation:none}
@media(min-width:1600px){body.site-ui .hero-media{inset-inline-start:30%;width:70%}body.site-ui .hero .hero-content{padding-block:var(--space-9)}}
@media(max-width:1199px){
 body.site-ui .hero .hero-content{min-height:365px;padding-block:var(--space-7)}
 body.site-ui :is(.room-caption,.catalog-caption,.sight-caption,.experience-caption){left:var(--space-4);right:var(--space-4);bottom:var(--space-4)}
 body.site-ui .service-card{padding:var(--space-4)}
 body.site-ui .service-card h3,body.site-ui .service-card:nth-child(5) h3{font-size:17px;gap:10px}
 body.site-ui .access-card{padding:var(--space-4)}
 body.site-ui .access-card p{font-size:13px}
 body.site-ui .reviews-inner{flex-wrap:wrap}
 body.site-ui .review-heading{width:100%}
}
@media(max-width:959px){
 :root{--header-full:80px;--header-compact:64px;--title-hero:clamp(2.5rem,5.4vw,3rem)}
 #site-header nav{top:100%;left:0;right:0;max-height:calc(100dvh - var(--header-full) - 16px);overflow-y:auto;padding:var(--space-4) var(--space-5)}
 #site-header.is-compact nav{max-height:calc(100dvh - var(--header-compact) - 16px)}
 #site-header nav a{min-height:48px}
 #site-header.is-hidden{transform:none}
 body.site-ui .gallery-layout{grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr)}
 body.site-ui .gallery-layout .main-photo{aspect-ratio:4/3}
 body.site-ui .room-story{grid-template-columns:1fr}
 body.site-ui .equipment-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-3)}
 body.site-ui .hotel-highlights{grid-template-columns:1fr;gap:var(--space-6)}
 body.site-ui .hotel-tour{max-height:400px}
 body.site-ui .hotel-alien{display:none}body.site-ui .highlights-copy h2{padding:0}
 body.site-ui .service-features{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
 body.site-ui .experience-grid{grid-template-columns:1fr 1fr}
 body.site-ui .experience-card:last-child{grid-column:1/-1}
 body.site-ui .sight-grid{grid-template-columns:1fr 1fr}
 body.site-ui .sight-card{height:300px}
 body.site-ui .stay-beziers{gap:var(--space-5)}
 body.site-ui .stay-features{grid-template-columns:1fr;gap:var(--space-3)}
 body.site-ui .stay-features>div{justify-content:flex-start;border:0;padding:0;gap:var(--space-3)}
 body.site-ui .stay-features br{display:none}
 body.site-ui .contact-main{grid-template-columns:1fr 1fr}
 body.site-ui .practical-address .route{margin-left:0}
 body.site-ui .access-grid{grid-template-columns:1fr}
 body.site-ui .access-card{min-height:180px;padding:var(--space-5)}
 body.site-ui .access-card>img{width:33%;opacity:1;clip-path:polygon(24% 0,100% 0,100% 100%,0 100%)}
 body.site-ui .access-card>div{max-width:64%}
 body.site-ui .access-card p{font-size:var(--text-sm)}
 body.site-ui .destination-cta{flex-direction:column;align-items:flex-start;gap:var(--space-5)}
 body.site-ui .services-cta>img{opacity:.18}
}
@media(max-width:767px){
 body.site-ui .gallery-layout,body.site-ui .contact-main{grid-template-columns:1fr}
 body.site-ui .gallery-layout .main-photo{aspect-ratio:16/10}
 body.site-ui .room-facts{max-width:100%}
 body.site-ui .contact-main .name-fields{grid-template-columns:1fr 1fr}
 body.site-ui .services-grid{grid-template-columns:1fr}
 body.site-ui .service-card{min-height:155px;padding:var(--space-5)}
 body.site-ui .hotel-life{grid-template-columns:1fr}
 body.site-ui .breakfast-section,body.site-ui .destination-life{grid-template-columns:1fr}
 body.site-ui .breakfast-copy{padding-bottom:0}
 body.site-ui .services-alien{display:none}
 body.site-ui .lounge-section{grid-template-columns:1fr}
 body.site-ui .lounge-section>button{height:auto;min-height:0;aspect-ratio:16/9}
 body.site-ui .stay-beziers{grid-template-columns:1fr}
 body.site-ui .hotel-map{max-width:480px;width:100%}
 body.site-ui .equipment-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}
}
@media(max-width:600px){
 :root{--title-hero:clamp(2.125rem,9.7vw,2.625rem);--title-page:clamp(1.875rem,8vw,2.25rem);--title-section:clamp(1.625rem,7.2vw,1.875rem);--title-card:1.125rem;--text-lead:1rem;--section-space:40px;--grid-gap:16px}
 #site-header .site-header-inner{gap:12px}
 #site-header .brand img{width:50px;height:50px}
 #site-header .booking{min-height:44px;font-size:11px;padding:10px 14px;gap:8px}
 #site-header .menu-toggle{width:44px;height:44px}
 #site-footer nav{gap:var(--space-2) var(--space-5)}
 #site-footer .brand img{width:48px;height:48px}
 body.site-ui .hero .hero-content{padding:var(--space-7) 0;min-height:0}
 body.site-ui .hero .hero-media{inset:0;width:100%;opacity:.8;object-position:58% center}
 body.site-ui .hero:after{background:linear-gradient(90deg,#19151fec,#19151f96),linear-gradient(0deg,#19151f9c,transparent 80%)}
 body.site-ui .hero h1{line-height:1.08;letter-spacing:-.04em;margin:var(--space-4) 0 var(--space-5);max-width:100%}
 body.site-ui .hero h1 br{display:none}
 body.site-ui .hero h1 em{white-space:normal}
 body.site-ui .hero .hero-description{font-size:var(--text-body);line-height:1.55;max-width:35ch;margin:0 0 var(--space-5)}
 body.site-ui .hero .hero-description br{display:none}
 body.site-ui .hero-actions{align-items:flex-start;gap:var(--space-4)}
 body.site-ui .hero-actions .button{min-height:48px;font-size:var(--text-sm);padding:12px 22px}
 body.site-ui .hotel-hero .hero-content{padding-top:var(--space-5)}
 body.site-ui .detail-heading{padding-top:var(--space-4);padding-bottom:var(--space-5)}
 body.site-ui .breadcrumb{font-size:var(--text-xs);line-height:1.5;gap:8px}
 body.site-ui .breadcrumb span:last-child{max-width:none}
 body.site-ui .detail-heading h1{font-size:var(--title-page)}
 body.site-ui :is(.benefits-inner>div,.room-benefits .wrap>div,.services-benefits .services-wrap>div,.destination-benefits .destination-wrap>div,.hotel-benefits>div){font-size:var(--text-xs);gap:var(--space-3);padding-left:0;border:0;justify-content:flex-start;line-height:1.4}
 body.site-ui :is(.benefits,.room-benefits,.services-benefits,.destination-benefits) svg{width:30px;height:30px}
 body.site-ui :is(.benefits-inner,.room-benefits>.wrap,.services-benefits>.services-wrap,.destination-benefits>.destination-wrap){gap:var(--space-5) var(--space-4);padding:var(--space-5) 0}
 body.site-ui .room-card{height:290px;flex-basis:88%}
 body.site-ui .room-caption{left:18px;right:18px;bottom:20px}
 body.site-ui .catalog-card{height:auto;aspect-ratio:4/3}
 body.site-ui .catalog-title{gap:var(--space-3)}
 body.site-ui .catalog-title svg{width:28px;height:28px}
 body.site-ui .catalog-caption{left:18px;right:18px;bottom:20px}
 body.site-ui .catalog-title strong{font-size:var(--title-card)}
 body.site-ui .catalog-meta{font-size:var(--text-xs);gap:var(--space-3)}
 body.site-ui .place{height:265px;flex-basis:88%}
 body.site-ui .main-photo,body.site-ui .gallery-layout .main-photo{aspect-ratio:4/3}
 body.site-ui .thumbnail{height:64px;min-width:72px}
 body.site-ui .room-facts .button{font-size:var(--text-sm)}
 body.site-ui .room-facts{padding:var(--space-5)}
 body.site-ui .story-copy .lined-title{font-size:var(--title-section);max-width:100%}
 body.site-ui .lined-title{padding-left:32px}
 body.site-ui .lined-title:before{width:20px}
 body.site-ui .other-card{flex-basis:88%;height:220px}
 body.site-ui .other-card strong{font-size:var(--title-card)}
 body.site-ui .carousel-prev{left:-10px}body.site-ui .carousel-next{right:-10px}
 body.site-ui .service-content{padding:var(--space-6) var(--gutter)}
 body.site-ui .breakfast{height:auto;min-height:0;aspect-ratio:16/10}
 body.site-ui .reviews-inner{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px}
 body.site-ui .review-heading{grid-column:1/-1;margin-bottom:var(--space-3)}
 body.site-ui .review{padding:var(--space-4);min-height:190px}
 body.site-ui .review p{font-size:var(--text-sm)}
 body.site-ui .review-heading h2{font-size:var(--title-section)}
 body.site-ui .concept-photos .hotel-photo{height:220px;flex-basis:78%}
 body.site-ui .hotel-benefits{gap:var(--space-5) var(--space-4);padding:var(--space-5)}
 body.site-ui .hotel-benefits>div:last-child{justify-content:flex-start}
 body.site-ui .hotel-tour{aspect-ratio:4/3}
 body.site-ui .hotel-life .hotel-photo{height:auto;min-height:0;aspect-ratio:4/3}
 body.site-ui .service-card h3,body.site-ui .service-card:nth-child(5) h3{font-size:var(--title-card)}
 body.site-ui .service-card p{max-width:60%;font-size:var(--text-sm)}
 body.site-ui .lounge-section>div{padding:var(--space-5)}
 body.site-ui .lounge-section h2{max-width:none}
 body.site-ui .sight-grid{grid-template-columns:1fr 1fr}
 body.site-ui .sight-card{height:265px}
 body.site-ui .sight-caption{left:12px;right:12px;bottom:16px}
 body.site-ui .sight-caption>strong{font-size:16px;line-height:1.2}
 body.site-ui .sight-caption>strong br{display:none}
 body.site-ui .sight-caption>span:last-child{font-size:12px}
 body.site-ui .destination-heading h2{max-width:100%;padding-right:0}
 body.site-ui .destination-alien{display:none}
 body.site-ui .experience-grid{grid-template-columns:1fr}
 body.site-ui .experience-card{height:255px}
 body.site-ui .experience-caption{bottom:22px;left:20px;right:20px}
 body.site-ui .experience-caption strong{font-size:var(--title-card)}
 body.site-ui .experience-caption small{font-size:var(--text-sm);line-height:1.4}
 body.site-ui .experience-caption>svg{width:28px;height:28px}
 body.site-ui .experience-arrow{width:32px;height:32px}
 body.site-ui .hotel-map{max-width:100%}
 body.site-ui .stay-features{grid-template-columns:1fr 1fr;gap:var(--space-5)}
 body.site-ui .stay-features>div:last-child{grid-column:1/-1}
 body.site-ui .contact-strip{padding:var(--space-5);gap:var(--space-4)}
 body.site-ui .contact-strip>a{font-size:var(--text-sm)}
 body.site-ui .contact-field{margin-bottom:var(--space-3)}
 body.site-ui .contact-lined{padding-left:32px}
 body.site-ui .contact-lined:before{width:20px}
 body.site-ui .form-panel>p{margin-block:var(--space-4) var(--space-5)}
 body.site-ui .map-panel{min-height:280px;height:280px}
 body.site-ui .map-and-access{grid-template-rows:280px auto;gap:var(--space-5)}
 body.site-ui .practical-panel h2{padding-left:0}
 body.site-ui .practical-panel h2:before{display:none}
 body.site-ui .access-card{min-height:235px;padding:var(--space-5)}
 body.site-ui .access-card>div{max-width:68%}
 body.site-ui .access-card>img{width:35%}
 body.site-ui .access-card h3{font-size:var(--title-card)}
 body.site-ui .access-card p{font-size:var(--text-sm)}
 body.site-ui .faq-item{padding-inline:var(--space-4)}
 body.site-ui .faq-item summary{font-size:var(--text-sm);gap:var(--space-3)}
 body.site-ui .faq-item summary>svg{width:26px;height:26px}
 body.site-ui .faq-item>div{font-size:var(--text-sm);padding-left:38px}
 body.site-ui :is(.cta,.services-cta,.destination-cta){padding-block:var(--space-7)}
 body.site-ui .cta-content,body.site-ui .detail-page .cta-content{margin:0;padding-inline:var(--gutter);max-width:100%}
 body.site-ui :is(.cta,.services-cta,.destination-cta) h2{font-size:var(--title-section);max-width:none}
 body.site-ui :is(.cta,.services-cta,.destination-cta) p{font-size:var(--text-body);max-width:38ch}
 body.site-ui .cta :is(h2,p) br{display:none}
 body.site-ui .services-cta>div{max-width:100%}
 body.site-ui .services-cta>img{opacity:.13}
 body.site-ui dialog .dialog-content{padding:var(--space-5)}
 body.site-ui dialog h2{font-size:var(--title-section)}
 body.site-ui dialog .button{font-size:var(--text-sm)}
}
@media(max-width:359px){
 :root{--gutter:16px;--title-card:1rem}
 #site-header .site-header-inner{gap:8px}
 #site-header .brand img{width:44px;height:44px}
 #site-header .booking{font-size:10px;padding:10px 11px}
 body.site-ui .sight-grid{grid-template-columns:1fr}
 body.site-ui .sight-card{height:260px}
 body.site-ui .sight-caption>strong{font-size:var(--title-card)}
 body.site-ui .contact-main .name-fields{grid-template-columns:1fr}
 body.site-ui .review{padding:14px}
 body.site-ui .access-card{padding:var(--space-4)}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 @view-transition{navigation:none}
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}
html.dialog-open{overflow:hidden}
/* Decorative art never competes with room titles on a narrow canvas. */
@media(max-width:959px){body.site-ui .detail-alien{display:none}}
body.site-ui .catalog-card>img{object-position:center 60%}
body.site-ui .dots button{width:44px}
body.site-ui .dots button:before{left:17px}
/* The map row reserves its actual height, including at the tablet breakpoint. */
body.site-ui .map-and-access{grid-template-rows:minmax(330px,auto) auto;gap:var(--space-5)}
body.site-ui .experience-card:last-child>img{object-position:center 68%}
@media(max-width:600px){body.site-ui .map-and-access{grid-template-rows:280px auto}}
/* Readable navigation and focus rings that stay inside scrolling image cards. */
@media(min-width:1200px){#site-header nav{font-size:var(--text-sm)}#site-header .brand strong{font-size:var(--text-body)}#site-footer nav{font-size:var(--text-xs)}#site-footer .address{font-size:var(--text-xs)}}
body.site-ui :is(.room-card,.catalog-card,.sight-card,.experience-card,.place,.other-card,.hotel-photo,.hotel-tour,.breakfast-photo,.life-photo,.thumbnail,.additional-photos button):focus-visible{outline:3px solid var(--color-lime);outline-offset:-5px}
/* The skip target is a structural region, not an interactive control. */
body.site-ui main[tabindex="-1"]:focus-visible{outline:none}

/* Shared mobile action dock. Hidden at the full desktop-navigation breakpoint. */
#mobile-actions{display:none}
@media(max-width:959px){
 :root{--mobile-actions-height:80px;--mobile-safe-bottom:env(safe-area-inset-bottom,0px)}
 body.site-ui{padding-bottom:calc(var(--mobile-actions-height) + var(--mobile-safe-bottom))}
 html{scroll-padding-bottom:calc(var(--mobile-actions-height) + var(--mobile-safe-bottom) + 20px)}
 #site-header .booking{display:none}
 #site-header .brand{gap:12px}
 #site-header .brand>span{display:block}
 #site-header .brand strong{font-size:14px}
 #site-header .brand small{font-size:10px}
 #site-header .menu-toggle{margin-left:auto}
 #site-header nav{max-height:calc(100dvh - var(--header-full) - var(--mobile-actions-height) - var(--mobile-safe-bottom) - 16px)}
 #site-header.is-compact nav{max-height:calc(100dvh - var(--header-compact) - var(--mobile-actions-height) - var(--mobile-safe-bottom) - 16px)}
 #mobile-actions{position:fixed;z-index:95;inset:auto 0 0;display:block;height:calc(var(--mobile-actions-height) + var(--mobile-safe-bottom));margin:0;padding:12px max(16px,env(safe-area-inset-right,0px)) calc(12px + var(--mobile-safe-bottom)) max(16px,env(safe-area-inset-left,0px));background:#fff;border-top:1px solid #e5e0e9;box-shadow:0 -6px 28px #19151f12;color:#19151f;font-family:Arial,Helvetica,sans-serif;line-height:1.2}
 #mobile-actions .mobile-actions-inner{display:grid;grid-template-columns:1fr 1fr 1.55fr;align-items:stretch;gap:8px;width:100%;max-width:650px;height:56px;margin:0 auto;padding:0}
 #mobile-actions .mobile-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:56px;margin:0;padding:4px 5px;border:0;border-radius:14px;color:#19151f;background:transparent;text-decoration:none;text-align:center;font-size:11px;font-weight:600;letter-spacing:0;line-height:1.2;white-space:nowrap;transition:background-color 180ms ease}
 #mobile-actions svg{display:block;flex-shrink:0;width:22px;height:22px;margin:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
 #mobile-actions .mobile-action-book{flex-direction:row;gap:8px;padding:10px 12px;border-radius:999px;background:#c4f512;font-size:14px;font-weight:700}
 #mobile-actions .mobile-action-book svg{width:20px;height:20px}
 #mobile-actions .mobile-action:hover{background:#f3f1f5}
 #mobile-actions .mobile-action-book:hover{background:#d3ff42}
 #mobile-actions .mobile-action:focus-visible{outline:3px solid #547000;outline-offset:2px}
 #mobile-actions .mobile-action:active{background:#eae6ef}
 #mobile-actions .mobile-action-book:active{background:#b9e600}
}
@media(max-width:359px){#site-header .brand strong{font-size:13px}#site-header .brand small{font-size:10px}#mobile-actions .mobile-action-book{font-size:13px;gap:6px;padding-inline:10px}}
@media print{#mobile-actions{display:none!important}body.site-ui{padding-bottom:0!important}}
@media(max-width:959px){
 :root{--mobile-safe-top:env(safe-area-inset-top,0px);--header-full:calc(80px + var(--mobile-safe-top));--header-compact:calc(64px + var(--mobile-safe-top))}
 #site-header{padding-top:var(--mobile-safe-top)}
}
/* One vector geometry for navigation, arrows, play controls and status glyphs. */
body.site-ui svg.ui-icon{display:inline-block;flex-shrink:0;vertical-align:middle;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.site-ui svg.ui-icon--play{fill:currentColor;stroke:none}
body.site-ui :is(.circle-arrow,.catalog-arrow,.experience-arrow){display:grid;place-items:center;width:32px;height:32px;padding:0;line-height:1;font-size:0;flex-shrink:0}
body.site-ui :is(.circle-arrow,.catalog-arrow,.experience-arrow)>svg.ui-icon{display:block;width:18px;height:18px;margin:0}
body.site-ui :is(.photo-arrow,.expand-photo,.carousel-prev,.carousel-next,.gallery-prev,.gallery-next,.gallery-controls button,.lightbox-controls button,.round,.close-dialog){display:inline-grid;place-items:center;padding:0;line-height:1;font-size:0}
body.site-ui :is(.photo-arrow,.expand-photo,.carousel-prev,.carousel-next,.gallery-prev,.gallery-next,.gallery-controls button,.lightbox-controls button,.round,.close-dialog)>svg.ui-icon{display:block;width:20px;height:20px;margin:0}
body.site-ui :is(.play,.tour-play){display:grid;place-items:center;padding:0;font-size:0;line-height:1}
body.site-ui .play>svg.ui-icon{width:17px;height:17px;transform:translateX(1px)}
body.site-ui .tour-play>svg.ui-icon{width:30px;height:30px;transform:translateX(2px)}
body.site-ui .button span:has(>svg.ui-icon){display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:0}
body.site-ui .button svg.ui-icon--external,body.site-ui .button svg.ui-icon--arrow-right{width:20px;height:20px}
#site-header .menu-toggle{padding:0;font-size:0}
#site-header .menu-toggle>span{display:grid;place-items:center}
#site-header .menu-toggle svg.ui-icon{width:22px;height:22px}
#site-header .booking svg.ui-icon{width:18px;height:18px}
body.site-ui .breadcrumb{line-height:1.4}
body.site-ui .breadcrumb a{display:inline-flex;align-items:center;gap:6px}
body.site-ui .breadcrumb svg.ui-icon{width:14px;height:14px}
body.site-ui .breadcrumb>span:has(svg.ui-icon){display:inline-flex;align-items:center;font-size:0}
body.site-ui .breadcrumb svg.ui-icon--chevron-right{width:12px;height:12px}
body.site-ui .area-icon{display:grid;place-items:center;padding:3px;font-size:0}
body.site-ui .area-icon>svg.ui-icon{width:22px;height:22px}
body.site-ui .snow{display:grid;place-items:center;font-size:0}
body.site-ui .snow>svg.ui-icon{width:30px;height:30px}
body.site-ui .place>span{display:flex;align-items:center;gap:8px}
body.site-ui .place>span>svg.ui-icon{width:16px;height:16px}
body.site-ui .faq-item summary>span:has(svg.ui-icon){display:inline-flex;align-items:center;justify-content:center;font-size:0}
/* Balanced presentation banners. Detail-page breadcrumbs are intentionally separate. */
:root{--hero-height:460px;--hero-padding:48px}
body.site-ui .hero .hero-content{display:flex;flex-direction:column;align-items:flex-start;min-height:var(--hero-height);padding-block:var(--hero-padding)}
body.site-ui .hero h1{max-width:min(660px,11.5em);margin-top:16px;margin-bottom:24px;text-wrap:balance}
body.site-ui .hero .hero-description{max-width:45ch}
body.site-ui .hero-content>.hero-actions,body.site-ui .hero-content>.button{margin-top:auto}
body.site-ui .hero .hero-actions{align-items:center}
body.site-ui .hero:after{background:linear-gradient(90deg,#1c1920 0%,#1c1920f5 23%,#1c1920b3 50%,#1c192033 80%,#1c19200a 100%)}
@media(max-width:959px){
 :root{--hero-padding:40px}
 body.site-ui .hero:after{background:linear-gradient(90deg,#19151ff2,#19151fc2 55%,#19151f66)}
}
@media(max-width:600px){
 :root{--hero-padding:36px;--hero-height:0px}
 body.site-ui .hero .hero-content{min-height:0;padding-block:var(--hero-padding)}
 body.site-ui .hero h1{max-width:100%;margin-top:16px;margin-bottom:24px}
 body.site-ui .hero .hero-description{max-width:35ch}
 body.site-ui .hero-content>.hero-actions,body.site-ui .hero-content>.button{margin-top:0}
 body.site-ui .hero .hero-actions{align-items:flex-start}
 body.site-ui .hero:after{background:linear-gradient(90deg,#19151fec,#19151f96),linear-gradient(0deg,#19151f9c,transparent 80%)}
}
body.site-ui .gallery-controls button{width:44px;height:44px;min-width:44px;min-height:44px}

/* Font-independent pixel mascot, shared across all decorative placements. */
body.site-ui svg.pixel-mascot{display:block;fill:currentColor;stroke:none;shape-rendering:crispEdges;overflow:visible}
body.site-ui .alien .pixel-mascot,body.site-ui .pixel-alien .pixel-mascot{width:88px;height:64px}

/* Home services: content defines the height; the photograph fills its column. */
body.site-ui .services{grid-template-columns:48% 52%;align-items:stretch;min-height:0}
body.site-ui .service-visual{position:relative;min-height:400px;overflow:hidden}
body.site-ui .service-visual>.breakfast{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;object-fit:cover;object-position:center}
body.site-ui .service-content{display:flex;flex-direction:column;justify-content:center;padding:var(--space-7) max(var(--gutter),var(--space-6))}
body.site-ui .service-content h2{margin-bottom:var(--space-4)}
body.site-ui .service-content>p:not(.eyebrow){max-width:48ch;margin-bottom:var(--space-6)}
body.site-ui .service-content .desktop{display:none}
body.site-ui .service-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5) var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border,#dedde1)}
body.site-ui .service-features>div{gap:var(--space-4);font-size:var(--text-sm);align-items:center;min-width:0}
body.site-ui .service-features svg{width:30px;height:30px;flex-shrink:0}
body.site-ui .service-features .snow{display:flex;flex-shrink:0}
@media(max-width:959px){
 body.site-ui .services{grid-template-columns:42% 58%}
 body.site-ui .service-content{padding:var(--space-6) var(--gutter)}
 body.site-ui .service-features{gap:var(--space-4)}
 body.site-ui .service-features>div{font-size:var(--text-xs);gap:var(--space-3)}
}
@media(max-width:600px){
 body.site-ui .services{grid-template-columns:1fr}
 body.site-ui .service-visual{min-height:0;aspect-ratio:16/10}
 body.site-ui .service-content{padding:var(--space-6) var(--gutter)}
 body.site-ui .service-features{margin-top:0}
}

/* Mobile navigation stays at one height, including while Safari scrolls. */
@media(max-width:959px){
 :root{--header-compact:80px}
 body.site-ui{padding-top:calc(var(--header-full) + env(safe-area-inset-top,0px))}
 #site-header,#site-header.is-compact{height:calc(var(--header-full) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);background:#201b24;isolation:isolate;transform:none;transition:transform var(--motion-ui) var(--ease-out),box-shadow var(--motion-ui)}
 #site-header .site-header-inner{height:var(--header-full);min-height:0}
 #site-header.is-compact .brand img{transform:none}
}

@media(max-width:959px){
 #site-header.is-hidden{transform:translateY(-105%);pointer-events:none}
 #site-header:has(:focus-visible),#site-header.menu-is-open{transform:translateY(0);pointer-events:auto}
}

/* The opening image is visible immediately; gallery interactions keep their own motion. */
body.site-ui .hero-media[data-image-state]{transition:none}
body.site-ui .hero-media[data-image-state="loading"]{opacity:1}
@media(max-width:600px){body.site-ui .hero .hero-media[data-image-state="loading"]{opacity:.8}}

/* Horizontal rails must never become nested vertical scrollers on touch screens. */
body.site-ui :is(.cards,.destination-cards,.concept-photos,.other-cards,.thumbnails){
 overflow-y:hidden;
 overscroll-behavior-x:contain;
 overscroll-behavior-y:auto;
 touch-action:pan-x pan-y pinch-zoom;
}
@media(max-width:959px){
 body.site-ui :is(.cards,.destination-cards,.concept-photos,.other-cards,.thumbnails)>[data-reveal-state]{translate:none}
}

/* Full-height mobile navigation: a clear, editorial layout above the action dock. */
#site-header .menu-intro,#site-header .menu-contact,#site-header .menu-arrow{display:none}
@media(max-width:959px){
 :root{--header-full:80px;--header-compact:80px}
 #site-header .menu-toggle{border:1px solid #ffffff55;border-radius:50%;width:44px;height:44px}
 #site-header.menu-is-open{box-shadow:none}
 #site-header.menu-is-open .menu-toggle{background:#c4f512;border-color:#c4f512;color:#19151f}
 #site-header nav,#site-header.is-compact nav{
  position:fixed;inset:calc(var(--header-full) + env(safe-area-inset-top,0px)) 0 calc(var(--mobile-actions-height) + var(--mobile-safe-bottom));
  width:100%;height:calc(100dvh - var(--header-full) - env(safe-area-inset-top,0px) - var(--mobile-actions-height) - var(--mobile-safe-bottom));bottom:auto;max-height:none;display:none;flex-direction:column;align-items:stretch;justify-content:flex-start;
  padding:24px var(--gutter) 20px;margin:0;border:0;border-radius:0;background:#f7f7f3;box-shadow:none;color:var(--color-ink);overflow-y:auto;overscroll-behavior:contain;gap:0;white-space:normal;counter-reset:menu-item;
 }
 #site-header nav.open{display:flex}
 #site-header .menu-intro{display:block;font-size:10px;letter-spacing:.14em;line-height:1.4;color:#6a665e;font-weight:700;margin:0 0 14px}
 #site-header nav>a{display:flex;align-items:center;gap:14px;min-height:56px;padding:12px 0;border-bottom:1px solid #deded7;color:#201b24;font-size:clamp(22px,6vw,29px);font-weight:600;line-height:1.2;letter-spacing:-.035em;counter-increment:menu-item}
 #site-header nav>a:before{content:counter(menu-item,decimal-leading-zero);font-size:10px;letter-spacing:0;color:#8a877d;font-weight:400;width:20px;flex-shrink:0}
 #site-header nav>a:after{display:none}
 #site-header .menu-label{flex:1}
 #site-header nav>a .menu-arrow{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
 #site-header nav>a.active{color:#547000;font-weight:700}
 #site-header nav>a.active .menu-arrow{background:#c4f512;color:#201b24;border-radius:50%;width:32px;height:32px;padding:6px}
 @media(hover:hover) and (pointer:fine){#site-header nav>a:hover{color:#547000}}
 #site-header nav>a:focus-visible{outline:2px solid #547000;outline-offset:-2px}
 #site-header .menu-contact{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:auto;padding-top:28px}
 #site-header .menu-contact strong{font-size:13px;line-height:1.4;letter-spacing:0;display:block;margin-bottom:4px}
 #site-header .menu-contact p{font-size:12px;line-height:1.5;margin:0;color:#6a665e;letter-spacing:0}
 #site-header .menu-contact img{width:56px;height:auto;flex-shrink:0}
}
@media(max-width:959px) and (max-height:700px){
 #site-header nav{padding-top:16px;padding-bottom:16px}
 #site-header nav>a{min-height:46px;padding-block:9px;font-size:22px}
 #site-header .menu-intro{margin-bottom:8px}
 #site-header .menu-contact{padding-top:18px}
}

/* Six verified benefits: complete rows at every breakpoint. */
body.site-ui .room-benefits>.wrap,body.site-ui .hotel-benefits{grid-template-columns:repeat(6,minmax(0,1fr))}
body.site-ui .room-benefits .wrap>div,body.site-ui .hotel-benefits>div{grid-column:auto;min-width:0}
body.site-ui .room-benefits .wrap>div>svg,body.site-ui .hotel-benefits>div>svg{flex-shrink:0}
@media(min-width:601px) and (max-width:1199px){
 body.site-ui .room-benefits>.wrap,body.site-ui .hotel-benefits{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5) var(--space-4)}
 body.site-ui .room-benefits .wrap>div,body.site-ui .hotel-benefits>div{border:0;justify-content:flex-start;padding-inline:var(--space-3)}
}
@media(max-width:600px){
 body.site-ui .room-benefits>.wrap,body.site-ui .hotel-benefits{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
 body.site-ui .room-benefits .wrap>div,body.site-ui .hotel-benefits>div,body.site-ui .room-benefits .wrap>div:last-child,body.site-ui .hotel-benefits>div:last-child{grid-column:auto;justify-content:flex-start;min-height:52px}
}

#page-view{outline:none}
#navigation-progress{display:none;position:fixed;top:0;left:0;width:32vw;height:2px;background:var(--color-lime);z-index:300;pointer-events:none}
html.is-navigating #navigation-progress{display:block;animation:navigation-pending 1s ease-in-out infinite alternate}
@keyframes navigation-pending{from{transform:translateX(-20vw)}to{transform:translateX(90vw)}}
@media(prefers-reduced-motion:reduce){html.is-navigating #navigation-progress{animation:none;width:100%}}
#navigation-status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Arcade identity: a single shared layer for every page, above the established layout. */
@font-face{font-family:Space Grotesk;src:url('assets/fonts/space-grotesk-bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Space Mono;src:url('assets/fonts/space-mono.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--font-display:'Space Grotesk',Arial,sans-serif;--font-arcade:'Space Mono',monospace;--arcade-pink:#ef58d6;--arcade-cyan:#53d9d2;--arcade-dark:#21172b;--arcade-paper:#faf9f5}
body.site-ui :is(h1,h2,h3){font-family:var(--font-display);font-weight:700;letter-spacing:-.045em}
body.site-ui :is(.eyebrow,.hero .eyebrow){font-family:var(--font-arcade);font-weight:400;font-size:10px;letter-spacing:.12em;display:flex;align-items:center;gap:11px}
body.site-ui .eyebrow:before{content:'';display:block;flex:0 0 6px;width:6px;height:6px;background:currentColor;box-shadow:4px -4px currentColor,8px 0 currentColor,4px 4px currentColor;margin-right:5px}
body.site-ui .hero .eyebrow{display:inline-flex;color:#d9ffc3!important;padding:8px 13px;border:1px solid #d9ffc344;background:#19131f90;border-radius:4px;font-size:10px;letter-spacing:.11em;margin-bottom:8px}
body.site-ui .hero h1{font-family:var(--font-display);letter-spacing:-.055em;max-width:760px}
body.site-ui.home-page .hero h1{font-size:clamp(46px,5.2vw,74px);line-height:1.02;max-width:700px}
body.site-ui .hero h1 em{color:var(--color-lime);text-shadow:0 0 40px #c4f51220}
body.site-ui .hero:after{background:linear-gradient(90deg,#21172b 0%,#21172bf0 24%,#21172b9c 49%,#21172b10 100%)}
body.site-ui .button{border-radius:9px 9px 9px 2px;letter-spacing:-.015em}
body.site-ui .button.booking{box-shadow:3px 3px 0 #729700;border:1px solid #c4f512}
body.site-ui .button.booking:active{box-shadow:1px 1px 0 #729700;transform:translate(2px,2px)}
body.site-ui .button.outline{border-color:#21172b;box-shadow:3px 3px 0 #c4f512;background:transparent}
body.site-ui .play{border-radius:10px 10px 10px 2px;border-color:var(--arcade-cyan);color:var(--arcade-cyan);box-shadow:0 0 20px #53d9d214}
body.site-ui .hero-content{position:relative;z-index:2}
.arcade-sticker{position:absolute;z-index:1;right:max(4vw,28px);bottom:38px;width:138px;min-height:147px;padding:18px 14px 12px;background:#24172df2;border:1px solid #ef58d66b;border-radius:8px;box-shadow:5px 5px 0 #ef58d6,0 0 45px #ef58d62b;transform:rotate(6deg);display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:none;color:var(--color-lime)}
.arcade-sticker>.pixel-mascot{width:54px;height:40px;fill:currentColor;shape-rendering:crispEdges;filter:drop-shadow(0 0 10px #c4f51244)}
.arcade-sticker>span{font-family:var(--font-arcade);font-size:13px;line-height:1.45;color:#fff;text-align:center;letter-spacing:.06em}
.arcade-sticker>i{font-family:var(--font-arcade);font-size:8px;font-style:normal;color:var(--arcade-pink);letter-spacing:.1em}
.arcade-ribbon{display:flex;justify-content:center;align-items:center;gap:clamp(20px,3vw,48px);padding:19px var(--gutter);background:var(--color-lime);color:#21172b;overflow:hidden;font-family:var(--font-arcade);font-size:clamp(10px,1vw,13px);font-weight:400;letter-spacing:.04em;white-space:nowrap;border-block:1px solid #21172b}
.arcade-ribbon>b{font-size:22px;line-height:1;color:#21172b;font-weight:400}
body.site-ui .room-caption strong,body.site-ui :is(.catalog-caption,.other-caption) strong{font-family:var(--font-display)}
body.site-ui :is(.circle-arrow,.card-arrow){background:var(--color-lime);color:#21172b;border:0;border-radius:7px;box-shadow:2px 2px 0 #21172b55}
body.site-ui :is(.room-card,.catalog-card,.place,.sight-card,.experience-card,.other-card){border-radius:14px 14px 3px 14px}
body.site-ui .dots button{width:44px;height:44px;transform:none;background:transparent}
body.site-ui .dots button:before{border-radius:1px;transform:rotate(45deg)}
body.site-ui .dots button.selected:before{background:#719500;box-shadow:0 0 0 3px #c4f51244}
body.site-ui.home-page .rooms{padding-block:72px}
body.site-ui.home-page .section-intro h2{font-size:clamp(30px,3.2vw,44px);line-height:1.05}
body.site-ui.home-page .services{background-color:var(--arcade-dark);background-image:linear-gradient(#ef58d608 1px,transparent 1px),linear-gradient(90deg,#ef58d608 1px,transparent 1px);background-size:32px 32px;color:#fff;border-block:1px solid #ef58d633}
body.site-ui.home-page .service-content{padding-block:48px}
body.site-ui.home-page .service-content .eyebrow{color:var(--arcade-cyan)}
body.site-ui.home-page .service-content h2{font-size:clamp(32px,3.3vw,46px);color:#fff;line-height:1.04;margin-bottom:22px}
body.site-ui.home-page .service-content>p:not(.eyebrow){color:#e1dbe7}
body.site-ui.home-page .service-content strong{color:#fff}
body.site-ui.home-page .service-features{border-color:#ffffff26}
body.site-ui.home-page .service-features>div{color:#e1dbe7}
body.site-ui.home-page .service-features svg{color:var(--arcade-cyan);stroke:currentColor}
body.site-ui.home-page .destination{padding-block:72px}
body.site-ui .hotel-life,body.site-ui .equipment-panel,body.site-ui .comfort-strip{background-color:var(--arcade-paper)}
body.site-ui .hotel-concept .concept-photos .hotel-photo:nth-child(2){border-bottom:4px solid var(--arcade-pink)}
body.site-ui .hotel-concept .concept-photos .hotel-photo:nth-child(3){border-bottom:4px solid var(--arcade-cyan)}
body.site-ui .hotel-concept .concept-photos .hotel-photo:first-child{border-bottom:4px solid var(--color-lime)}
body.site-ui .service-card{border:1px solid #21172b12;border-radius:12px 12px 3px 12px}
body.site-ui .service-card:nth-child(3n+1){border-left:3px solid var(--color-lime)}
body.site-ui .service-card:nth-child(3n+2){border-left:3px solid var(--arcade-pink)}
body.site-ui .service-card:nth-child(3n){border-left:3px solid var(--arcade-cyan)}
body.site-ui .cta{border-top:2px solid var(--arcade-pink);background-color:var(--arcade-dark)}
body.site-ui .cta h2,body.site-ui .hotel-cta h2,body.site-ui .rooms-cta h2{font-family:var(--font-display)}
#site-header{border-bottom:1px solid #c4f51224;background:#21172b}
#site-header .booking{border-radius:8px;box-shadow:2px 2px 0 #729700}
#site-header nav>a:after{height:3px;background:var(--color-lime);box-shadow:6px 0 0 var(--arcade-pink)}
#site-footer{background-color:#21172b;background-image:linear-gradient(#ef58d607 1px,transparent 1px),linear-gradient(90deg,#ef58d607 1px,transparent 1px);background-size:24px 24px;border-top:1px solid #ef58d633}
#site-footer nav a:hover{color:var(--color-lime)}
@media(hover:hover){
 body.site-ui .button.outline:hover{background:#21172b;color:#fff;box-shadow:4px 4px 0 var(--arcade-pink)}
 body.site-ui .button.booking:hover{box-shadow:4px 4px 0 #729700,0 0 28px #c4f51222}
 body.site-ui :is(.room-card,.catalog-card,.sight-card,.experience-card,.other-card):hover{box-shadow:0 0 0 2px var(--color-lime),6px 6px 0 #21172b0a}
}
@media(min-width:960px){
 body.site-ui .hotel-concept .concept-photos{padding-bottom:18px}
 body.site-ui .hotel-concept .concept-photos .hotel-photo:nth-child(2){transform:translateY(18px)}
}
@media(max-width:959px){
 .arcade-sticker{width:76px;min-height:0;padding:12px;right:23px;bottom:35px;box-shadow:3px 3px 0 var(--arcade-pink);transform:rotate(7deg)}
 .arcade-sticker>.pixel-mascot{width:42px;height:31px}
 .arcade-sticker>span,.arcade-sticker>i{display:none}
 .arcade-ribbon{justify-content:space-between;gap:14px;font-size:9px;padding-block:16px}
 .arcade-ribbon>.ribbon-end,.arcade-ribbon>b:last-of-type{display:none}
 #site-header .menu-intro{font-family:var(--font-arcade);font-weight:400;letter-spacing:.05em;color:#547000}
 #site-header nav>a:before{font-family:var(--font-arcade);color:#6d8900}
 #site-header .menu-contact{border-top:1px dashed #b7bf9e;padding-top:18px}
 #site-header nav>a.active .menu-arrow{border-radius:7px;box-shadow:2px 2px 0 #6c8a00}
}
@media(max-width:600px){
 body.site-ui.home-page .hero h1{font-size:clamp(42px,11vw,56px);line-height:1.04;max-width:340px}
 body.site-ui .hero .eyebrow{font-size:8px;padding:8px 10px;letter-spacing:.06em;max-width:100%}
 body.site-ui .hero .eyebrow:before{flex-basis:4px;width:4px;height:4px;box-shadow:3px -3px currentColor,6px 0 currentColor,3px 3px currentColor}
 .arcade-ribbon{font-size:8px;gap:10px;padding-inline:18px;letter-spacing:-.01em}
 .arcade-ribbon>b{font-size:13px}
 .arcade-ribbon>span:nth-of-type(3){white-space:normal;max-width:110px;text-align:right}
 body.site-ui.home-page .rooms,body.site-ui.home-page .destination{padding-block:44px}
 body.site-ui.home-page .service-content{padding:32px 22px 38px}
 body.site-ui.home-page .service-content h2{font-size:38px}
 #site-header .booking{box-shadow:none}
}
@media(prefers-reduced-motion:reduce){body.site-ui .button{transition:none}body.site-ui .button:active{transform:none}}

body.site-ui.home-page .benefits>.alien{display:none}
@media(max-width:600px){.arcade-ribbon{font-size:11px;justify-content:center;gap:24px;min-height:48px}.arcade-ribbon>span:nth-of-type(3),.arcade-ribbon>b:nth-of-type(2){display:none}}

/* On-demand vertical reel; no video bytes are requested before the visitor clicks. */
.hotel-video-dialog{padding:0;border:1px solid #ef58d64d;border-radius:16px;overflow:hidden;background:#17111f;color:#fff;width:min(480px,calc((100dvh - 142px) * .5625),calc(100vw - 28px));max-width:calc(100vw - 28px);max-height:calc(100dvh - 24px);box-shadow:0 28px 100px #0008}
.hotel-video-dialog::backdrop{background:#10091bdb;backdrop-filter:blur(8px)}
.hotel-video-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid #ffffff1a}
.hotel-video-dialog .video-kicker{font-family:var(--font-arcade);font-size:8px;letter-spacing:.1em;color:var(--color-lime)}
body.site-ui .hotel-video-dialog h2{font-family:var(--font-display);font-size:16px;line-height:1.2;margin:4px 0 0;text-wrap:wrap}
.hotel-video-dialog .video-close{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;border:1px solid #ffffff40;border-radius:8px;background:transparent;color:#fff;cursor:pointer}
.hotel-video-dialog .video-close:hover{background:var(--color-lime);border-color:var(--color-lime);color:#17111f}
.hotel-video-dialog video{display:block;width:100%;height:auto;aspect-ratio:9/16;max-height:calc(100dvh - 142px);object-fit:contain;background:#000}
.hotel-video-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:10px;line-height:1.4;color:#c3b8cf}
.hotel-video-footer a{color:#c4f512;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
@media(max-width:600px){.hotel-video-footer{font-size:9px}.hotel-video-header{padding:10px 12px}}

/* Verified source link in the shared hotel benefits section. */
.verified-reviews-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;color:inherit;font-size:14px;line-height:1.5;text-underline-offset:4px;text-decoration-thickness:1px}
.verified-reviews-link:hover{color:#526b00}

/* Links stay still and respond directly to a tap. */
#site-nav>a{touch-action:manipulation}

/* External-link arrows use the shared SVG, never platform emoji glyphs. */
body.site-ui .verified-reviews-link svg.ui-icon{width:16px;height:16px}
.hotel-video-footer a{display:inline-flex;align-items:center;gap:4px}
.hotel-video-footer a svg.ui-icon{width:14px;height:14px}
