/* Catalog filters and shared room showcase, 2026-10-02. */
body.filter-open { overflow: hidden; }
:is(.filter-overlay,.ap-list-filter-dialog) .filter-drawer--v2 { width:min(440px,calc(100vw - 36px)); top:18px; bottom:18px; right:18px; height:auto; max-height:none; border-radius:8px; font-size:14px; }
.filter-drawer--v2 .filter-drawer__head { min-height:76px; flex-shrink:0; padding:0 28px; border:0; }
.filter-drawer--v2 .filter-drawer__head h2 { font-size:26px; line-height:1.2; font-weight:650; }
.filter-drawer--v2 .filter-drawer__head svg { fill:none; stroke:currentColor; stroke-width:1.6; width:24px; height:24px; }
.filter-drawer--v2 .filter-drawer__body { flex:1; min-height:0; padding:0 28px 16px; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#b8b8b5 transparent; }
.filter-drawer--v2 .filter-drawer__foot { position:static; flex-shrink:0; padding:16px 28px 12px; display:grid; grid-template-columns:1fr; gap:6px; background:#fff; border-top:1px solid var(--line,#e9e9e6); }
.filter-drawer--v2 .filter-apply { width:100%; min-height:46px; height:auto; border-radius:8px; font:inherit; font-weight:600; background:var(--brand,#c9040b); color:#fff; display:block; text-align:center; }
.filter-drawer--v2 .filter-reset { min-height:38px; font:inherit; font-weight:550; border-radius:8px; }
.ap-filter-section { border-bottom:1px solid var(--line,#e9e9e6); margin:0; padding:0; }
.ap-filter-section:last-child { border-bottom:0; }
.ap-filter-section > summary { min-height:62px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 0; cursor:pointer; list-style:none; font-size:14px; line-height:1.4; font-weight:650; color:var(--ink,#242424); }
.ap-filter-section > summary::-webkit-details-marker { display:none; }
.ap-filter-toggle { position:relative; width:18px; height:18px; flex:0 0 18px; }
.ap-filter-toggle::before,.ap-filter-toggle::after { content:''; position:absolute; left:1px; top:8px; width:16px; height:1.5px; background:currentColor; border-radius:2px; }
.ap-filter-toggle::after { transform:rotate(90deg); transition:transform .15s; }
.ap-filter-section[open] > summary .ap-filter-toggle::after { transform:rotate(0); }
.ap-filter-section__body { padding:0 0 22px; }
.ap-filter-list { display:flex; flex-direction:column; gap:4px; }
.ap-filter-option { width:100%; min-height:42px; padding:10px 14px; border:0; border-radius:13px; display:flex; align-items:center; justify-content:space-between; gap:14px; text-align:left; color:var(--ink,#242424); background:transparent; font:inherit; font-size:14px; line-height:1.45; font-weight:500; cursor:pointer; }
.ap-filter-option span { min-width:0; overflow-wrap:anywhere; }
.ap-filter-option:hover { background:#f3f3f1; }
.ap-filter-option.is-active { background:var(--brand-soft,#fff0f0); color:var(--brand,#c9040b); }
.ap-filter-option svg { width:18px; height:18px; flex:0 0 18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; visibility:hidden; }
.ap-filter-option.is-active svg { visibility:visible; }
.ap-filter-option[hidden] { display:none; }
.ap-filter-more { align-self:flex-start; min-height:40px; border:0; background:none; font:inherit; font-size:14px; color:var(--ink,#242424); padding:9px 14px; cursor:pointer; text-decoration:underline; text-underline-offset:4px; }
.ap-filter-more span { color:#888; margin-left:4px; text-decoration:none; display:inline-block; }
.ap-filter-range + .ap-filter-range { margin-top:18px; }
.ap-filter-range__label { margin-bottom:12px; font-size:14px; color:#666; }
.ap-filter-range__inputs { display:grid; grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr); align-items:center; gap:8px; }
.ap-filter-range__inputs > span { text-align:center; color:#888; }
.ap-filter-range__inputs label { display:flex; align-items:center; gap:7px; min-width:0; min-height:44px; border:1px solid transparent; background:#f3f3f1; border-radius:8px; padding:0 12px; }
.ap-filter-range__inputs label:focus-within { border-color:var(--brand,#c9040b); }
.ap-filter-range__inputs label > span { color:#858585; font-size:14px; }
.ap-filter-range__inputs input { padding:0; width:100%; min-width:0; height:42px; border:0; outline:0; background:transparent; color:var(--ink,#242424); font:inherit; font-size:14px; font-variant-numeric:tabular-nums; appearance:textfield; -moz-appearance:textfield; }
.ap-filter-range__inputs input::-webkit-inner-spin-button,.ap-filter-range__inputs input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.ap-filter-track { height:40px; margin:8px 10px 8px; position:relative; cursor:pointer; }
.ap-filter-track__line,.ap-filter-track__fill { position:absolute; top:18px; height:4px; border-radius:4px; pointer-events:none; }
.ap-filter-track__line { left:0; right:0; background:#e5e5e2; }
.ap-filter-track__fill { left:var(--range-low,0%); right:calc(100% - var(--range-high,100%)); background:var(--brand,#c9040b); }
.ap-filter-track input[type=range] { position:absolute; top:0; left:-10px; width:calc(100% + 20px); height:40px; padding:0; margin:0; background:transparent; appearance:none; -webkit-appearance:none; pointer-events:none; border:0; outline:0; }
.ap-filter-track input[type=range]::-webkit-slider-runnable-track { height:4px; background:transparent; border:0; }
.ap-filter-track input[type=range]::-webkit-slider-thumb { width:20px; height:20px; margin-top:-8px; border:2px solid #fff; border-radius:50%; background:var(--brand,#c9040b); -webkit-appearance:none; pointer-events:auto; cursor:grab; box-shadow:0 0 0 1px var(--brand,#c9040b); touch-action:none; }
.ap-filter-track input[type=range]::-moz-range-track { height:4px; background:transparent; border:0; }
.ap-filter-track input[type=range]::-moz-range-thumb { width:16px; height:16px; border:2px solid #fff; border-radius:50%; background:var(--brand,#c9040b); pointer-events:auto; cursor:grab; box-shadow:0 0 0 1px var(--brand,#c9040b); touch-action:none; }
.ap-filter-track input:focus-visible::-webkit-slider-thumb { outline:2px solid var(--ink,#242424); outline-offset:3px; }
.ap-filter-track input:focus-visible::-moz-range-thumb { outline:2px solid var(--ink,#242424); outline-offset:3px; }
.filter-drawer--v2 button:focus-visible,.ap-filter-section summary:focus-visible { outline:2px solid var(--brand,#c9040b); outline-offset:2px; }
.ap-rooms { max-width:1600px; margin:0 auto; padding:24px 48px 72px; color:var(--ink,#242424); }
.ap-rooms__breadcrumbs { margin:0 0 28px; font-size:14px; }
.ap-rooms__breadcrumbs a { color:#888; text-decoration:none; }
.ap-rooms__tabs { display:flex; gap:8px; padding:0 0 24px; overflow-x:auto; scrollbar-width:none; }
.ap-rooms__tabs::-webkit-scrollbar { display:none; }
.ap-rooms__tabs a { flex:0 0 auto; display:flex; align-items:center; min-height:42px; padding:0 20px; border-radius:999px; background:#f3f3f1; font-size:14px; font-weight:550; text-decoration:none; color:inherit; }
.ap-rooms__tabs a.is-active { background:var(--brand-soft,#fff0f0); color:var(--brand,#c9040b); }
.ap-rooms__panel[hidden] { display:none; }
.ap-rooms__panel h1 { margin:8px 0 28px; font-size:clamp(28px,3vw,40px); font-weight:600; line-height:1.15; letter-spacing:-.025em; }
.ap-rooms__categories { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:28px 20px; }
.ap-rooms__category { display:flex; flex-direction:column; gap:14px; align-items:center; text-align:center; text-decoration:none; color:inherit; font-size:14px; line-height:1.4; font-weight:550; }
.ap-rooms__category-media { display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:1.35; border-radius:8px; overflow:hidden; background:#fff; }
.ap-rooms__category img { width:100%; height:100%; object-fit:contain; transition:transform .18s ease; }
.ap-rooms__category:hover img { transform:scale(1.035); }
.ap-rooms__category:hover { color:var(--brand,#c9040b); }
.ap-rooms__promotions { margin-top:52px; }
.ap-rooms__section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.ap-rooms__section-heading h2 { margin:0; font-size:28px; font-weight:600; letter-spacing:-.02em; }
.ap-rooms__section-heading > a { color:#777; font-size:14px; text-decoration:none; }
.ap-rooms__banners { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.ap-rooms__banner { min-width:0; text-decoration:none; color:inherit; }
.ap-rooms__banner-media { display:block; aspect-ratio:2.6; border-radius:8px; overflow:hidden; background:#f3f3f1; }
.ap-rooms__banner img { width:100%; height:100%; object-fit:contain; }
.ap-rooms__banner-copy { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding-top:14px; font-size:14px; line-height:1.4; }
.ap-rooms__banner-copy strong { font-weight:550; }
.ap-rooms__banner-copy small { font-size:12px; color:#888; flex-shrink:0; }
.ap-room-menu { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:start; }
.ap-room-menu__group { border-radius:8px; background:#f5f5f3; overflow:hidden; }
.ap-room-menu__group summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:60px; padding:16px 20px; font-size:16px; font-weight:550; cursor:pointer; list-style:none; }
.ap-room-menu__group summary::-webkit-details-marker { display:none; }
.ap-room-menu__group summary::after { content:''; width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin-right:2px; flex-shrink:0; }
.ap-room-menu__group[open] summary::after { transform:rotate(225deg); }
.ap-room-menu__links { display:grid; gap:2px; padding:0 12px 14px; }
.mega-detail .ap-room-menu__links a { margin:0; padding:9px 8px; font-size:14px; font-weight:400; line-height:1.35; text-decoration:none; color:var(--ink,#242424); }
.mega-detail .ap-room-menu__links a:hover { color:var(--brand,#c9040b); }
.mega-detail .ap-room-menu__links a:first-child { color:var(--brand,#c9040b); font-weight:550; }
.ap-room-menu__feature { display:block; overflow:hidden; border-radius:8px; background:#f5f5f3; text-decoration:none; color:var(--ink,#242424); }
.ap-room-menu__feature img { width:100%; aspect-ratio:1.25; object-fit:cover; display:block; }
.ap-room-menu__feature strong,.ap-room-menu__feature span { display:block; padding:0 20px; }
.ap-room-menu__feature strong { margin-top:20px; font-size:20px; line-height:1.25; font-weight:550; }
.ap-room-menu__feature span { margin:12px 0 22px; font-size:14px; color:#777; }
@media(min-width:761px) { .mega-detail[data-mega-detail=rooms] > div { width:100%; } }
@media(max-width:1100px) { .ap-rooms__categories { grid-template-columns:repeat(5,minmax(0,1fr)); } .ap-rooms { padding-inline:32px; } .ap-room-menu { grid-template-columns:1fr; } }
@media(max-width:760px) {
  :is(.filter-overlay,.ap-list-filter-dialog) .filter-drawer--v2 { width:100%; top:0; right:0; bottom:0; height:100dvh; border-radius:8px 0 0 8px; transform:translateX(100%); }
  .filter-overlay.active .filter-drawer--v2 { transform:translateX(0); }
  .filter-drawer--v2 .filter-drawer__head { min-height:70px; padding:0 20px; }
  .filter-drawer--v2 .filter-drawer__head h2 { font-size:24px; }
  .filter-drawer--v2 .filter-drawer__body { padding:0 20px 12px; }
  .filter-drawer--v2 .filter-drawer__foot { padding:12px 20px max(10px,env(safe-area-inset-bottom)); }
  .ap-filter-section > summary { min-height:60px; }
  .ap-rooms { padding:20px 16px 40px; }
  .ap-rooms__breadcrumbs { margin-bottom:20px; }
  .ap-rooms__tabs { margin:0 -16px; padding:0 16px 24px; }
  .ap-rooms__panel h1 { font-size:28px; margin:4px 0 24px; }
  .ap-rooms__categories { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px 12px; }
  .ap-rooms__category { font-size:13px; gap:10px; }
  .ap-rooms__category-media { aspect-ratio:1.1; }
  .ap-rooms__promotions { margin-top:36px; }
  .ap-rooms__section-heading { margin-bottom:18px; }
  .ap-rooms__section-heading h2 { font-size:24px; }
  .ap-rooms__banners { grid-template-columns:1fr; gap:24px; }
  .ap-rooms__banner-copy { font-size:13px; display:block; }
  .ap-rooms__banner-copy small { display:block; margin-top:6px; }
  .mobile-room-menu-group { background:#f5f5f3; border-radius:8px; margin:10px 0; padding:0 14px; border:0; }
}
@media(prefers-reduced-motion:reduce) { .ap-rooms__category img,.ap-filter-toggle::after { transition:none; } }

.filter-drawer--v2 .filter-reset::before { content:none; }
.filter-drawer--v2 .filter-reset { background:transparent; box-shadow:none; }

.ap-room-menu__column { display:grid; gap:12px; align-content:start; }
@media(max-width:760px) {
 :is(.filter-overlay,.ap-list-filter-dialog) .filter-drawer--v2 { top:8px !important; bottom:0 !important; height:calc(100dvh - 8px) !important; max-height:calc(100dvh - 8px) !important; border-radius:24px 24px 0 0 !important; }
 .filter-drawer--v2 .filter-drawer__head { justify-content:space-between; }
 .filter-drawer--v2 .filter-drawer__head button { position:static; }
 .filter-drawer--v2 .filter-reset { order:0; }
}

/* Shared header/footer and supplied commerce artwork, 2026-10-02. */
html body .site-footer { background:#f4f3ef; }
html body .header-quick-link { color:#000; font-size:18px; font-weight:600; }
html body svg.ap-commerce-icon { width:32px; height:32px; flex-shrink:0; fill:none; color:#000; overflow:visible; }
html body .ap-commerce-icon [data-commerce-numeral] path { stroke:none; }
html body .ap-commerce-icon [data-commerce-numeral] text { fill:#fff; stroke:none; }
@media(max-width:760px) {
 html body .mobile-bottom-nav svg.ap-commerce-icon { width:30px; height:30px; }
}
