/* Visual refinement layer: the same ivory, olive and clay, with calmer geometry. */
:root{--supporting-ink:#626958;--workspace-header:86px}
.skip:focus{position:fixed;top:10px;left:10px;z-index:100;padding:12px 18px;background:var(--paper);border:2px solid var(--clay)}
textarea:focus-visible,summary:focus-visible{outline:2px solid var(--clay);outline-offset:4px}
.language-control{width:max-content;justify-content:center;font-family:'DM Sans',Arial,sans-serif;font-size:11px;letter-spacing:.04em}
.language-control button{min-width:44px;min-height:44px;padding:8px 10px}
dialog>.language-control{margin-bottom:18px}
.room-tabs,.ops-nav,.content-nav{scrollbar-color:#a9ad9c transparent;scrollbar-width:thin}
.room-tabs button:focus-visible,.ops-nav a:focus-visible,.content-nav a:focus-visible{outline-offset:-3px}
html[lang] .room-tabs{flex-wrap:nowrap;gap:30px}
.room-tabs button{padding-inline:4px}

/* Paired photographs alternate wide and narrow; every image fills its tile. */
.gallery{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(300px,29vw,390px);gap:22px}
.gallery button{grid-column:span 1;display:block;min-width:0;height:100%;isolation:isolate}
.gallery button:nth-child(4n+1),.gallery button:nth-child(4n){grid-column:span 2}
.gallery button:last-child:nth-child(odd){grid-column:1/-1}
.gallery button img,.gallery button:first-child img{height:100%;width:100%;position:absolute;inset:0}
.gallery button span{z-index:1;padding:56px 22px 18px;font-size:14px;line-height:1.5;background:linear-gradient(transparent,#172019c9)}
.gallery .translation-fallback{color:#eee9dd;font-size:12px}
.gallery button:focus-visible{outline:3px solid var(--clay);outline-offset:4px}
.happening-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.happening-card{display:flex;flex-direction:column}
.happening-card img{aspect-ratio:16/10}
.happening-body{display:flex;flex:1;flex-direction:column;padding:28px}
.happening-body>p:not(.eyebrow){font-size:14px;line-height:1.75}
.happening-body .eyebrow{font-size:11px;margin-bottom:0}
.happening-body h3{font-size:34px;line-height:1.12;margin:14px 0 16px}
.happening-meta{margin-top:auto;padding-top:18px}
.happening-body>p+.happening-meta{margin-top:24px}
.happening-meta p{font-size:13px}

/* Bilingual workspaces retain a single, predictable navigation row. */
.ops-header,.content-header{align-items:center}
html[lang] .ops-nav{flex-wrap:nowrap;gap:26px;min-height:62px;padding:10px 0 0;top:var(--workspace-header);scroll-padding-inline:4px}
.ops-nav a{flex-shrink:0;font-size:13px;line-height:1.4;padding:14px 2px 13px}
html:has(body.ops-page){scroll-padding-top:0}
.ops-panel{scroll-margin-top:calc(var(--workspace-header) + 78px)}
.ops-caption,.cc-area,.cc-stat small,.cc-job-details small,.cc-job-foot,.content-form small{color:var(--supporting-ink)}
.ops-caption,.cc-site-note p:not(.eyebrow),.cc-stat small{font-size:12px;line-height:1.7}
.ops-room-dates span,.cc-job-details small{font-size:11px;letter-spacing:.035em}
.ops-room-dates strong{font-size:14px}
.ops-hours-summary span,.cc-stat span{font-size:11px;letter-spacing:.045em;line-height:1.55}
.ops-room-foot button,.ops-table button,.cc-job-foot button,.cc-table-actions button{min-height:44px}
.cc-job-card>p{font-size:13px}
.cc-job-card h3{line-height:1.12}
.cc-job-card .cc-progress-note{font-size:12px;line-height:1.65}
.cc-job-top{flex-wrap:wrap;align-items:start;row-gap:10px}
.cc-status,.ops-state{font-size:11px}
.cc-section-nav{column-gap:24px;row-gap:2px}
.cc-section-nav .cc-reset{font-size:12px}
.content-form label,.ops-form label,.booking-form label{font-size:13px}
.content-photo-body h3{font-size:14px;line-height:1.5}
.content-photo-body button{font-size:12px;min-height:44px;min-width:44px}
.content-photo-label{font-size:10px}
.content-filter{font-size:12px}
.content-help-row p{font-size:13px}
.content-form small{font-size:12px;line-height:1.6}
.content-close,.icon-button,.staff-calendar-nav .icon-button{min-width:44px;min-height:44px;width:44px;height:44px}
.booking-day{min-height:40px;font-size:13px}
.booking-days .weekday{font-size:11px;color:var(--supporting-ink)}
.booking-form-note,.booking-caption{font-size:12px}
#staff-calendar td.occupied-airbnb{background:#9a6049}
#staff-calendar td.occupied-awaiting,.legend-awaiting{background:#896627}

/* The guest navigation folds before the bilingual header becomes crowded. */
@media(max-width:1050px){
 body:not(.ops-page):not(.content-page)>header{gap:18px}
 body:not(.ops-page):not(.content-page)>header .menu{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:8px;background:none;border:0;color:var(--ink);font-size:14px;flex-shrink:0}
 body:not(.ops-page):not(.content-page)>header>.language-control{margin-left:auto}
 body:not(.ops-page):not(.content-page)>header>nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;padding:18px 5% 24px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 12px 18px #343c3010;flex-direction:column;align-items:stretch;gap:4px}
 body:not(.ops-page):not(.content-page)>header>nav.open{display:flex}
 body:not(.ops-page):not(.content-page)>header>nav a{justify-content:center;min-height:48px}
 body:not(.ops-page):not(.content-page)>header>nav .pill{align-self:center;margin-top:8px;min-width:220px}
}
@media(max-width:760px){
 :root{--workspace-header:104px}
 .ops-header,.content-header{height:var(--workspace-header);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:60px 36px;align-items:center;gap:0 12px;padding:0 5% 8px}
 .ops-header .brand,.content-header .brand{grid-column:1;grid-row:1;justify-self:start;width:max-content;font-size:15px;letter-spacing:.1em}
 .ops-header .brand small,.content-header .brand small{font-size:7px;letter-spacing:.13em}
 .ops-header-links{display:contents}
 .ops-header-links .language-control,.content-header>.language-control{grid-column:2;grid-row:1;margin:0;justify-self:end}
 .ops-header-links a,.ops-header-links a:last-child{display:block;grid-row:2;border:0;padding:8px 0;font-size:12px;line-height:1.4;min-height:36px}
 .ops-header-links a:first-child{grid-column:1;justify-self:start}
 .ops-header-links a:last-of-type{grid-column:2;justify-self:end;text-align:right}
 .content-back{grid-column:1/-1;grid-row:2;justify-self:start;margin:0;padding:6px 0;font-size:12px;border:0}
 html[lang] .ops-nav{gap:24px;min-height:58px;padding-top:6px;margin-bottom:24px}
 .ops-nav a{font-size:13px;min-height:50px}
 .ops-intro h1{line-height:1.05}
 .ops-demo-note span,.content-demo-note p{font-size:12px;line-height:1.65}
 .ops-hours-summary{grid-template-columns:1fr;gap:8px}
 .ops-hours-summary article{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px}
 .ops-hours-summary span{font-size:12px;max-width:65%;letter-spacing:.025em}
 .ops-hours-summary strong{font-size:29px;margin:0;white-space:nowrap}
 .cc-stat small{font-size:12px}
 .cc-stat span{font-size:11px}
 .content-demo-note{display:block}
 .content-demo-note strong{display:block;white-space:normal;margin-bottom:8px}
 .content-publish-bar{display:block}
 .content-publish-bar .content-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
 .content-publish-bar .content-actions button{width:100%;justify-content:center;min-height:48px;font-size:12px;padding:12px}
 .content-section-heading{display:block}
 .content-section-heading>.button{margin-top:18px}
 .content-filter{margin-top:20px;max-width:340px}
 .content-photo-editor-grid{grid-template-columns:1fr}
 .content-help-row{flex-wrap:wrap;gap:14px}
 .content-help-row p{flex:1 1 210px;font-size:12px}
 .content-help-row .button{font-size:12px;min-height:44px}
 .content-photo-body{padding:12px}
 .content-photo-body h3{font-size:13px}
 .content-photo-body button{font-size:12px;padding:8px;min-width:44px;min-height:44px}
 .content-photo-body .photo-edit{flex-basis:100%}
 .gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(180px,52vw,280px);gap:14px}
 .gallery button:nth-child(n){grid-column:span 1}
 .gallery button:last-child:nth-child(odd){grid-column:1/-1}
 .gallery button span{padding:42px 14px 13px;font-size:13px;line-height:1.45}
 .happening-grid{grid-template-columns:1fr;gap:22px}
 .happening-body{padding:24px}
 .happening-body h3{font-size:32px}
 body:not(.ops-page):not(.content-page)>header{padding-inline:4%;gap:8px}
 body:not(.ops-page):not(.content-page)>header .brand{font-size:13px;letter-spacing:.09em;padding-left:30px}
 body:not(.ops-page):not(.content-page)>header .brand small{font-size:6.5px;letter-spacing:.13em}
 body:not(.ops-page):not(.content-page)>header .language-control button{min-width:44px;min-height:44px;padding:8px}
 body:not(.ops-page):not(.content-page)>header .menu{padding:8px;min-width:40px}
 .booking-day{min-height:40px;aspect-ratio:auto}
 .booking-form input[type=date]{font-size:16px}
}
@media(max-width:360px){
 body:not(.ops-page):not(.content-page)>header{gap:5px}
 body:not(.ops-page):not(.content-page)>header .brand{font-size:12px;padding-left:26px}
 body:not(.ops-page):not(.content-page)>header .brand .mark{width:22px}
 body:not(.ops-page):not(.content-page)>header .brand small{font-size:6px;letter-spacing:.08em}
 .hero h1{font-size:60px}
 .content-photo-grid{grid-template-columns:1fr}
 .content-photo-body h3{min-height:0}
 .ops-header .brand,.content-header .brand{font-size:14px}
}

/* Swipe the complete room card without trapping vertical page scrolling. */
.room-panel{touch-action:pan-y pinch-zoom;overflow:hidden}
#room-photo{-webkit-user-drag:none;user-select:none}
.room-swipe-hint{display:none;align-items:center;gap:8px;margin:-18px 0 18px;font-size:12px;color:var(--supporting-ink)}
.room-swipe-hint>span:first-child{font-size:18px;line-height:1}
.room-change-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(any-pointer:coarse),(max-width:760px){.room-swipe-hint{display:flex}}
