@charset "UTF-8";
/* ホテラーガイド (Hoteler Guide) — Clear Modern.
   One stylesheet for the home, hotel, guide and 404 pages. The secondary /directory/ index keeps its own styles.
   Text never goes below 14px or below the --text-3 contrast (7.6:1 on white). Interactive targets are at least 44px tall. */

:root{
  color-scheme:light;
  --bg:#fff;--surface:#f8fafc;--surface-2:#f1f5f9;
  --line:#e5e7eb;--line-strong:#d1d5db;--field:#8a929f;
  --text:#111827;--text-2:#374151;--text-3:#4b5563;--text-off:#9ca3af;
  --accent:#1d4ed8;--accent-hover:#1e40af;--accent-soft:#eff4ff;--accent-soft-hover:#dfe9ff;--accent-ink:#1e3a8a;--on-accent-muted:#dbe4ff;
  --stay-bg:#fef3c7;--stay-ink:#92400e;--room-bg:#eef2ff;--room-ink:#3730a3;
  --warn-bg:#fff7ed;--warn-line:#fed7aa;--warn-ink:#9a3412;
  --note-bg:#fffbeb;--note-line:#fde68a;--note-ink:#92400e;
  --r-card:14px;--r-btn:10px;--r-field:12px;--r-tag:8px;
  --gutter:16px;--max:1120px;--toc-h:48px;
  --fs-display:1.75rem;--fs-page:1.5rem;--fs-section:1.375rem;--fs-card:1.125rem;--fs-item:1.0625rem;
  --fs-body:1rem;--fs-body-s:.9375rem;--fs-label:.875rem;--fs-meta:.875rem;
  --font:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI","Yu Gothic",Meiryo,system-ui,-apple-system,"Segoe UI",sans-serif;
  --i-bookmark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M6.5 3.5h11a1 1 0 0 1 1 1v16l-6.5-4.2-6.5 4.2v-16a1 1 0 0 1 1-1z'/%3E%3C/svg%3E");
  --i-bookmark-fill:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M6.5 3.5h11a1 1 0 0 1 1 1v16l-6.5-4.2-6.5 4.2v-16a1 1 0 0 1 1-1z'/%3E%3C/svg%3E");
  --i-search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m15.5 15.5 5 5'/%3E%3C/svg%3E");
  --i-sliders:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 7h8m5 0h3M4 17h3m5 0h8'/%3E%3Ccircle cx='14.5' cy='7' r='2.5'/%3E%3Ccircle cx='9.5' cy='17' r='2.5'/%3E%3C/svg%3E");
  --i-external:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M9 7h8v8'/%3E%3C/svg%3E");
  --i-play-white:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5.5v13l10.5-6.5z' fill='%23fff'/%3E%3C/svg%3E");
  --i-chevron-down:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --i-chevron-left:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 5-7 7 7 7'/%3E%3C/svg%3E");
  --i-arrow-right:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14m-6-6 6 6-6 6'/%3E%3C/svg%3E");
  --i-close:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E");
  --select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234b5563' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text-2);font-family:var(--font);font-size:var(--fs-body);line-height:1.7;letter-spacing:.02em;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
h1,h2,h3,h4{margin:0;color:var(--text);font-weight:700;line-height:1.5;letter-spacing:.02em;word-break:auto-phrase}
p,ol,ul,dl,dd,figure{margin:0}
ol,ul{padding:0;list-style:none}
iframe{display:block;max-width:100%}
a{color:var(--accent);text-decoration:none;text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration:underline}
b,strong{font-weight:700}
small{font-size:inherit}
button,input,select{font:inherit;color:inherit;letter-spacing:inherit}
button{margin:0;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
button:disabled,select:disabled{cursor:not-allowed}
summary{cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
[hidden]{display:none!important}
.sr-only,.quick-groups-heading,.loading-message{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:fixed;top:-100px;left:16px;z-index:100;padding:12px 16px;border-radius:var(--r-btn);background:var(--text);color:#fff;font-weight:700}
.skip-link:focus{top:12px;text-decoration:none}
/* Native links stay usable when the application script cannot start. */
html:not([data-app-booted=true]) .requires-app{display:none!important}
html:not([data-app-booted=true]) .masthead-tools button,html:not([data-app-booted=true]) .profile-header-actions,html:not([data-app-booted=true]) .footer button[data-info]{display:none!important}

/* Mask icons: each element sets --i; the icon takes the text colour. */
#saved-toggle::before,.masthead-tools a::before,.entry-save::before,.profile-header-actions button::before,#filter-open::before,.search-field::before,#search-clear::before,.dialog-close::before,.breadcrumb a::before,
.source-link::after,.booking-link::after,.rating-link::after,.official-link::after,.read-log-link::after,.fact-source::after,.profile-primary-actions a[target]::after,.guide-read-action::after,.chapter-other::after,
details>summary::after{content:"";display:inline-block;flex:none;width:20px;height:20px;background-color:currentColor;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}
.source-link,.booking-link,.rating-link,.official-link,.read-log-link,.fact-source,.profile-primary-actions a[target],.guide-read-action{--i:var(--i-external)}
.source-link::after,.booking-link::after,.rating-link::after,.official-link::after,.read-log-link::after,.fact-source::after,.profile-primary-actions a[target]::after,.guide-read-action::after{width:15px;height:15px}
details>summary{--i:var(--i-chevron-down)}
details>summary::after{width:18px;height:18px;transition:transform .15s}
details[open]>summary::after{transform:rotate(180deg)}

/* ---------- Shared controls ---------- */
.chip,#filter-open,.brand-quick-links a,#theme-filters button,.sort-options button,.subbrand-options button,.topic-tabs button,.active-discovery button,.profile-primary-actions a{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:none;min-height:44px;padding:0 16px;
  border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--text-2);
  font-size:var(--fs-label);font-weight:600;line-height:1.3;white-space:nowrap;text-decoration:none;
  transition:background-color .15s,border-color .15s,color .15s}
#filter-open:hover,.brand-quick-links a:hover,#theme-filters button:hover:not(:disabled),.sort-options button:hover,.subbrand-options button:hover,.topic-tabs button:hover:not(:disabled),.profile-primary-actions a:hover{border-color:var(--text-3);color:var(--text);text-decoration:none}
#theme-filters button[aria-pressed=true],.sort-options button[aria-pressed=true],.subbrand-options button[aria-pressed=true],.topic-tabs button[aria-pressed=true],.brand-quick-links a[aria-current=true]{border-color:var(--accent);background:var(--accent);color:#fff}
.topic-tabs button:disabled,#theme-filters button:disabled{border-color:var(--line);color:var(--text-off)}

.btn,#show-more,.reading-more,.back-selection,.official-link,.guide-profile-link,.sheet-apply,.empty-state button,.error-state button,.static-index-fallback>summary,.static-reading-more>summary{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;
  border:1px solid var(--line-strong);border-radius:var(--r-btn);background:#fff;color:var(--text);
  font-size:var(--fs-body-s);font-weight:700;line-height:1.4;text-align:center;text-decoration:none;
  transition:background-color .15s,border-color .15s,color .15s}
#show-more:hover,.reading-more:hover,.back-selection:hover,.official-link:hover,.guide-profile-link:hover,.empty-state button:hover,.error-state button:hover,.static-index-fallback>summary:hover,.static-reading-more>summary:hover{border-color:var(--text-3);background:var(--surface);text-decoration:none}
.sheet-apply,.empty-state [data-reset],.error-state button,#reload{border-color:var(--accent);background:var(--accent);color:#fff}
.sheet-apply:hover,.empty-state [data-reset]:hover,.error-state button:hover,#reload:hover{border-color:var(--accent-hover);background:var(--accent-hover);color:#fff}

select{appearance:none;-webkit-appearance:none;display:block;width:100%;min-height:48px;padding:0 44px 0 14px;border:1px solid var(--field);border-radius:var(--r-field);background:#fff var(--select-chevron) right 14px center/18px no-repeat;color:var(--text);font-size:1rem;line-height:1.4}
select:hover:not(:disabled){border-color:var(--text-3)}
select:disabled{border-color:var(--line-strong);color:var(--text-off)}

/* ---------- Masthead ---------- */
.masthead{background:#fff;border-bottom:1px solid var(--line)}
.masthead-top{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:var(--max);height:56px;margin:0 auto;padding:0 var(--gutter)}
.wordmark{display:inline-flex;align-items:center;gap:.32em;min-height:44px;color:var(--text);font-size:.9375rem;font-weight:800;letter-spacing:.08em;white-space:nowrap}
.wordmark:hover{text-decoration:none}
.wordmark span{color:var(--accent)}
.masthead-caption,.masthead-bottom{display:none}
.masthead-tools{display:flex;align-items:center;gap:4px}
#saved-toggle,.masthead-tools a{--i:var(--i-bookmark);display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border-radius:var(--r-btn);color:var(--text);font-size:var(--fs-label);font-weight:600}
#saved-toggle:hover,.masthead-tools a:hover{background:var(--surface-2);text-decoration:none}
#saved-toggle[aria-pressed=true]{--i:var(--i-bookmark-fill);background:var(--accent-soft);color:var(--accent)}
#saved-total:not(:empty){display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--accent);color:#fff;font-size:var(--fs-meta);font-weight:700;line-height:1}

/* ---------- Home ---------- */
#home-view>section{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.discovery-opening{padding-top:20px}
.opening-copy h1{font-size:var(--fs-page)}
.opening-explanation{margin-top:4px;font-size:var(--fs-meta);line-height:1.6;color:var(--text-3)}
.discovery-search-panel{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:16px}
#search-form{flex:1 1 100%;min-width:0}
.search-field{--i:var(--i-search);position:relative;display:flex;align-items:center;gap:2px;height:52px;padding:3px 3px 3px 44px;border:1px solid var(--field);border-radius:var(--r-field);background:#fff;transition:border-color .15s}
.search-field::before{position:absolute;left:14px;top:50%;margin-top:-10px;color:var(--text-3)}
.search-field:focus-within{border-color:var(--accent);outline:3px solid var(--accent);outline-offset:2px}
#hotel-search{flex:1;width:0;min-width:0;height:100%;padding:0;border:0;background:transparent;color:var(--text);font-size:1rem;outline:none;-webkit-appearance:none;appearance:none}
#hotel-search::placeholder{color:var(--text-3);opacity:1}
#hotel-search::-webkit-search-cancel-button,#hotel-search::-webkit-search-decoration{-webkit-appearance:none;appearance:none}
#search-clear{--i:var(--i-close);display:inline-grid;place-items:center;flex:none;width:44px;height:44px;border-radius:var(--r-btn);color:var(--text-3);font-size:0}
#search-clear:hover{background:var(--surface-2);color:var(--text)}
#search-clear::before{width:18px;height:18px}
.search-field button[type=submit]{flex:none;min-width:64px;height:44px;padding:0 16px;border-radius:9px;background:var(--accent);color:#fff;font-size:var(--fs-label);font-weight:700}
.search-field button[type=submit]:hover{background:var(--accent-hover)}
.search-field button[type=submit]:disabled{background:var(--text-off)}
.search-starters{display:flex;flex-wrap:wrap;align-items:center;gap:0 2px;font-size:var(--fs-meta);color:var(--text-3)}
.search-starters>span{margin-right:6px}
.search-starters button{position:relative;z-index:0;display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:var(--text-2);font-size:var(--fs-meta);font-weight:600}
.search-starters button::before{content:"";position:absolute;inset:7px 0;z-index:-1;border:1px solid var(--line-strong);border-radius:999px;background:#fff}
.search-starters button:hover::before{border-color:var(--text-3)}
.search-help{font-size:var(--fs-meta);color:var(--text-3)}
.quick-label{margin-top:14px;font-size:var(--fs-meta);color:var(--text-3)}
.filter-bar{display:flex;align-items:center;gap:8px;margin:0 calc(var(--gutter)*-1);padding:6px var(--gutter);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.filter-bar::-webkit-scrollbar{display:none}
.brand-quick-links{display:flex;align-items:center;gap:8px;flex:none}
#filter-open{--i:var(--i-sliders);color:var(--text)}
#filter-open::before{width:18px;height:18px}
#filter-open[data-active]{border-color:var(--accent);background:var(--accent);color:#fff}
.filter-count:empty{display:none}
.filter-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#fff;color:var(--accent);font-size:var(--fs-meta);font-weight:700;line-height:1}
.quick-brand-count{font-weight:400;color:var(--text-3)}
.brand-quick-links a[aria-current=true] .quick-brand-count{color:var(--on-accent-muted)}

.selection{padding-top:28px;scroll-margin-top:8px}
.results-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin-bottom:4px}
.results-bar{position:sticky;top:0;z-index:15;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 calc(var(--gutter)*-1) 12px;padding:8px var(--gutter);border-bottom:1px solid var(--line);background:#fff}
.sort-control{display:inline-flex;align-items:center;min-width:0}
.sort-control select{width:auto;max-width:100%;min-height:44px;padding:0 38px 0 16px;border-color:var(--line-strong);border-radius:999px;background-position:right 12px center;background-size:16px;font-weight:600;color:var(--text)}
.hotel-articles a,.hotel-articles button,#show-more{scroll-margin-top:80px}
#profile-view a,#profile-view button,#profile-view summary,#profile-view select{scroll-margin-top:calc(var(--toc-h) + 16px)}
#selection-heading{font-size:var(--fs-card)}
#selection-count{font-size:var(--fs-meta);color:var(--text-3)}
.active-discovery{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
.active-discovery:empty{display:none}
.active-discovery button{flex:0 1 auto;max-width:100%;padding:8px 14px;border-color:transparent;background:var(--accent-soft);color:var(--accent-ink);white-space:normal;text-align:left;line-height:1.4}
.active-discovery button:hover{background:var(--accent-soft-hover)}
.active-discovery button span{font-size:1rem;line-height:1}
.active-discovery .reset-all{background:none;color:var(--text);text-decoration:underline;text-underline-offset:3px;padding:0 6px}
.active-discovery .reset-all:hover{background:none;color:var(--accent)}

.hotel-articles{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.hotel-entry{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0;padding:16px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;transition:border-color .15s,background-color .15s}
.hotel-entry:hover{border-color:var(--line-strong);background:#fcfdff}
.entry-title{padding-right:36px;font-size:var(--fs-card);line-height:1.5}
.entry-title a{color:var(--text)}
.entry-title a::after{content:"";position:absolute;inset:0;border-radius:var(--r-card)}
.entry-title a:hover{text-decoration:none}
.hotel-entry:hover .entry-title a{color:var(--accent)}
.entry-title a:focus-visible{outline:none}
.entry-title a:focus-visible::after{outline:3px solid var(--accent);outline-offset:2px}
.entry-location{font-size:var(--fs-meta);line-height:1.6;color:var(--text-3)}
.entry-location span::before{content:"·";margin:0 .4em}
.entry-closed{align-self:flex-start;padding:2px 8px;border-radius:6px;background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-meta);font-weight:600;line-height:1.6}
.entry-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;font-size:var(--fs-body-s);line-height:1.7;color:var(--text-2)}
.entry-meta{display:flex;align-items:center;gap:4px 10px;min-width:0;margin-top:4px}
.entry-reading{position:relative;z-index:1;display:flex;flex:none;gap:6px}
.entry-reading a,.entry-reading span{position:relative;z-index:0;display:inline-flex;align-items:center;gap:3px;min-height:44px;margin-block:-8px;padding:0 10px;color:var(--accent-ink);font-size:var(--fs-meta);font-weight:600;white-space:nowrap}
.entry-reading a::before,.entry-reading span::before{content:"";position:absolute;inset:8px 0;z-index:-1;border-radius:999px;background:var(--accent-soft)}
.entry-reading a:hover{text-decoration:none}
.entry-reading a:hover::before{background:var(--accent-soft-hover)}
.entry-reading .entry-official-only{color:var(--text-2)}
.entry-reading .entry-official-only::before{background:var(--surface-2)}
.entry-topics{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--fs-meta);color:var(--text-3)}
.entry-tools{position:absolute;top:2px;right:2px;z-index:1;padding:4px}
.entry-save{--i:var(--i-bookmark);display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-btn);color:var(--text-3);font-size:0;line-height:0}
.entry-save::before{width:22px;height:22px}
.entry-save:hover{background:var(--surface-2);color:var(--text)}
.entry-save[aria-pressed=true]{--i:var(--i-bookmark-fill);color:var(--accent)}
.skeleton-card{height:176px;border-radius:var(--r-card);background:var(--surface-2);animation:skeleton 1.4s ease-in-out infinite}
@keyframes skeleton{50%{opacity:.5}}

.empty-state,.error-state{grid-column:1/-1;display:grid;justify-items:center;gap:10px;padding:32px 20px;border:1px dashed var(--line-strong);border-radius:var(--r-card);background:var(--surface);text-align:center}
.empty-state h1,.empty-state h2,.empty-state h3,.error-state h1,.error-state h2{font-size:var(--fs-card)}
.empty-state p,.error-state p{max-width:36em;font-size:var(--fs-body-s);line-height:1.7;color:var(--text-2)}
.empty-state button,.error-state button{width:100%;max-width:320px}
.more-hotels{display:grid;justify-items:center;gap:8px;margin:20px 0 8px}
#visible-progress{font-size:var(--fs-meta);color:var(--text-3)}
#visible-progress:empty{display:none}
#show-more{width:100%;max-width:400px}
.static-index-fallback{margin:16px 0}
.static-index-fallback>summary,.static-reading-more>summary{width:100%;justify-content:space-between}
.static-hotel-index{margin-top:16px}
.static-hotel-index h2{font-size:var(--fs-card)}
.static-hotel-index>p{margin:4px 0 12px;font-size:var(--fs-body-s);color:var(--text-3)}
.static-hotel-index ul{display:grid;grid-template-columns:minmax(0,1fr);column-gap:24px}
.static-hotel-index li{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;border-bottom:1px solid var(--line)}
.static-hotel-index li a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.static-hotel-index li span{font-size:var(--fs-meta);color:var(--text-3)}

.eyebrow{font-size:var(--fs-meta);font-weight:700;letter-spacing:.08em;color:var(--accent)}
.how-it-works{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}
.how-intro h2{margin-top:4px;font-size:var(--fs-section)}
.how-steps{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.how-steps li{display:flex;align-items:flex-start;gap:12px;padding:16px;border-radius:var(--r-card);background:var(--surface)}
.how-steps li>span{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:999px;background:var(--accent);color:#fff;font-size:var(--fs-meta);font-weight:700;line-height:1}
.how-steps h3{font-size:var(--fs-item)}
.how-steps p{margin-top:2px;font-size:var(--fs-body-s);line-height:1.7;color:var(--text-2)}
.reading-note{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-top:16px;margin-bottom:48px}
.reading-note>div{padding:20px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff}
.reading-note h2,.reading-note h3{margin-top:4px;font-size:var(--fs-card)}
.reading-note p:not(.eyebrow){margin-top:6px;font-size:var(--fs-body-s);line-height:1.7;color:var(--text-2)}
.reading-note>.reading-note-log{border-color:transparent;background:var(--surface)}
.reading-note-log a{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;font-size:var(--fs-label);font-weight:600;text-decoration:underline}
.text-link{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;color:var(--accent);font-size:var(--fs-label);font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* ---------- Dialogs and toast ---------- */
dialog{padding:0;border:0;color:var(--text-2);background:#fff}
dialog::backdrop{background:rgba(17,24,39,.45)}
.dialog-close{--i:var(--i-close);display:inline-grid;place-items:center;flex:none;width:44px;height:44px;border-radius:var(--r-btn);color:var(--text);font-size:0}
.dialog-close:hover{background:var(--surface-2)}
#info-dialog{width:min(640px,calc(100% - 32px));max-height:calc(100% - 48px);margin:auto;padding:12px 20px 24px;border-radius:16px;overflow:auto}
#info-dialog .dialog-close{float:right;margin:0 -8px 0 8px}
#info-content h2{margin-top:8px;font-size:var(--fs-section)}
#info-content h3{margin-top:20px;font-size:var(--fs-item)}
#info-content p{margin-top:8px;font-size:var(--fs-body);line-height:1.8}
.filter-sheet{position:fixed;inset:auto 0 0;width:100%;max-width:100%;height:auto;max-height:88vh;max-height:88dvh;margin:0;border-radius:16px 16px 0 0;overflow:hidden}
.filter-sheet[open]{display:flex;flex-direction:column;animation:sheet-up .22s ease-out}
.filter-panel{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.selection>.filter-panel{display:none}
@keyframes sheet-up{from{transform:translateY(32px);opacity:.4}}
.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:56px;padding:4px 8px 4px 20px;border-bottom:1px solid var(--line)}
.sheet-header h2{font-size:var(--fs-card)}
.sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 20px 8px}
.filter-section{padding:20px 0;border-bottom:1px solid var(--line)}
.filter-section:last-child{border-bottom:0}
.filter-section>h3{margin-bottom:10px;font-size:var(--fs-item)}
.reading-kind-filter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border-radius:12px;background:var(--surface-2)}
.reading-kind-filter button{min-height:44px;padding:0 6px;border-radius:9px;color:var(--text-2);font-size:var(--fs-label);font-weight:600;white-space:nowrap}
.reading-kind-filter button:hover{color:var(--text)}
.reading-kind-filter button[aria-pressed=true]{background:#fff;color:var(--accent);box-shadow:0 0 0 1px var(--line-strong)}
#theme-filters,.subbrand-options,.sort-options{display:flex;flex-wrap:wrap;gap:8px}
.theme-help{margin-top:8px;font-size:var(--fs-meta);color:var(--text-3)}
.select-filter{display:grid;gap:6px}
.select-filter+.select-filter{margin-top:12px}
.select-filter label{font-size:var(--fs-meta);font-weight:600;color:var(--text-2)}
.subbrand-filter{margin-top:14px}
.subbrand-options button span,#theme-filters .topic-count{font-weight:400;color:var(--text-3)}
#theme-filters button[aria-pressed=true] .topic-count{color:var(--on-accent-muted)}
#theme-filters button:disabled .topic-count{color:var(--text-off)}
.subbrand-options button[aria-pressed=true] span{color:var(--on-accent-muted)}
.sheet-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff}
.sheet-clear{min-height:44px;padding:0 4px;color:var(--text);font-size:var(--fs-label);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.sheet-clear:hover{color:var(--accent)}
.sheet-apply{flex:0 1 auto;min-width:160px}
#toast{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:60;width:max-content;max-width:calc(100% - 32px);padding:12px 18px;border-radius:12px;background:var(--text);color:#fff;font-size:var(--fs-label);font-weight:600;line-height:1.5;transform:translateX(-50%)}

/* ---------- Footer ---------- */
.footer{margin-top:48px;border-top:1px solid var(--line);background:var(--surface)}
.footer-main{display:grid;gap:8px;max-width:var(--max);margin:0 auto;padding:28px var(--gutter) 12px}
.footer-main p{font-size:var(--fs-meta);color:var(--text-3)}
.footer nav{display:flex;flex-wrap:wrap;gap:0 18px}
.footer nav a,.footer nav button{display:inline-flex;align-items:center;min-height:44px;color:var(--text-2);font-size:var(--fs-label);font-weight:600}
.footer nav a:hover,.footer nav button:hover{color:var(--accent);text-decoration:underline}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 16px;max-width:var(--max);margin:0 auto;padding:12px var(--gutter) 28px;border-top:1px solid var(--line);font-size:var(--fs-meta);color:var(--text-3)}
.footer-bottom a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}

/* ---------- Hotel detail ---------- */
#profile-view{display:block;max-width:var(--max);margin:0 auto;padding:0 var(--gutter) 8px}
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;min-height:44px;margin-top:6px;font-size:var(--fs-label);color:var(--text-3)}
.breadcrumb a{--i:var(--i-chevron-left);display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.breadcrumb a::before{width:18px;height:18px;margin-left:-4px}
.breadcrumb span{display:none}
.profile-header{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:4px 0 20px}
.profile-heading{min-width:0}
.profile-header .eyebrow{display:flex;align-items:center;min-height:44px;padding-right:136px;font-weight:400;letter-spacing:.02em;color:var(--text-3)}
.profile-header h1{margin-top:0;font-size:var(--fs-display);line-height:1.45}
.profile-header-actions{position:absolute;top:4px;right:0}
.profile-header-actions button{--i:var(--i-bookmark);display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--r-btn);background:#fff;color:var(--text);font-size:var(--fs-label);font-weight:600;white-space:nowrap}
.profile-header-actions button::before{width:18px;height:18px}
.profile-header-actions button:hover{border-color:var(--text-3)}
.profile-header-actions button[aria-pressed=true]{--i:var(--i-bookmark-fill);border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.profile-editorial,.profile-primary-actions,.profile-source-count{grid-column:1/-1}
.profile-summary,.reading-teaser,.source-annotation,.profile-cautions p,.fact-item dd p,.guide-angle,.guide-header>p,.how-steps p,#info-content p{max-width:40em}
.profile-summary{font-size:var(--fs-body);line-height:1.7;color:var(--text-2)}
.profile-editorial .no-sources{margin-top:12px}
.profile-primary-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.profile-primary-actions a{gap:0;color:var(--text)}
.profile-primary-actions a b{margin:0 .15em 0 .3em}
.profile-primary-actions a[target]::after{margin-left:6px}
.profile-primary-actions a b{color:var(--accent)}
.profile-primary-actions .primary-reading-link,.profile-primary-actions a:only-child{border-color:var(--accent);background:var(--accent);color:#fff}
.profile-primary-actions .primary-reading-link b{color:#fff}
.profile-primary-actions .primary-reading-link:hover,.profile-primary-actions a:only-child:hover{border-color:var(--accent-hover);background:var(--accent-hover);color:#fff}
.profile-status{margin:0 0 16px;padding:14px 16px;border:1px solid var(--warn-line);border-radius:12px;background:var(--warn-bg);color:var(--text-2);font-size:var(--fs-body-s);line-height:1.7}
.profile-status strong{display:block;color:var(--warn-ink);font-size:var(--fs-label)}
.profile-status p{margin-top:4px}
.profile-status strong+br{display:none}
.profile-status a,.property-relation a,.membership-note a,.section-date a,.no-sources a,.error-state a,#info-content a{text-decoration:underline}
.property-relation{margin:0 0 16px;padding:12px 16px;border-radius:12px;background:var(--surface);font-size:var(--fs-body-s);line-height:1.7}
.property-relation a{display:inline-block;margin-top:2px;margin-right:12px;font-weight:600}
.profile-toc{position:sticky;top:0;z-index:20;display:flex;justify-content:space-around;gap:4px;margin:0 calc(var(--gutter)*-1);padding:0 calc(var(--gutter) - 8px);overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line);background:#fff}
.profile-toc::-webkit-scrollbar{display:none}
.profile-toc a{position:relative;display:flex;flex:none;align-items:center;justify-content:center;min-height:var(--toc-h);padding:0 8px;color:var(--text-3);font-size:var(--fs-label);font-weight:600;white-space:nowrap}
.profile-toc a:hover{color:var(--text);text-decoration:none}
.profile-toc a:focus-visible{outline-offset:-3px}
.profile-toc a[aria-current=true]{color:var(--accent)}
.profile-toc a[aria-current=true]::after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--accent)}
.profile-toc a b{margin-left:4px;font-weight:600;color:var(--text-3)}
.profile-toc a[aria-current=true] b{color:var(--accent)}
.profile-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;margin-top:20px}
.profile-main{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;align-content:start;min-width:0}
.external-reading{display:grid;grid-template-columns:minmax(0,1fr);gap:40px;min-width:0}
.profile-section,.aside-block,.profile-cautions{min-width:0;scroll-margin-top:calc(var(--toc-h) + 16px)}
.chapter-heading{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;margin-bottom:10px}
.chapter-heading h2{font-size:var(--fs-section)}
.chapter-count{font-size:var(--fs-meta);color:var(--text-3)}
.chapter-number{display:none}
.chapter-other{--i:var(--i-arrow-right);display:inline-flex;align-items:center;gap:2px;min-height:44px;margin-left:auto;font-size:var(--fs-label);font-weight:600}
.chapter-other::after{width:16px;height:16px}
.topic-tabs{display:flex;gap:8px;margin:0 calc(var(--gutter)*-1);padding:6px var(--gutter);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.topic-tabs::-webkit-scrollbar{display:none}
.topic-caption{margin-bottom:2px;font-size:var(--fs-meta);color:var(--text-3)}
.topic-count{font-weight:400;color:var(--text-3)}
.topic-tabs button[aria-pressed=true] .topic-count{color:var(--on-accent-muted)}
.topic-tabs button:disabled .topic-count{color:var(--text-off)}
.reading-refinements{margin-top:2px}
.reading-refinements>summary{display:inline-flex;align-items:center;gap:4px;min-height:44px;color:var(--accent);font-size:var(--fs-label);font-weight:600}
.reading-refinements label{display:block;margin:2px 0 6px;font-size:var(--fs-meta);font-weight:600;color:var(--text-2)}
.reading-refinements select{max-width:360px}
.reading-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;margin:4px 0 12px}
.reading-toolbar .reading-filter-status{margin:0}
.reading-filter-status{margin:4px 0 12px;font-size:var(--fs-meta);line-height:1.7;color:var(--text-3)}
.reading-filter-status button{display:inline-flex;align-items:center;min-height:44px;margin-left:6px;padding:0 12px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-meta);font-weight:600}
.reading-filter-status button:hover{background:var(--accent-soft-hover)}
.source-list{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.reading-group{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;min-width:0}
.source-item{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0;padding:16px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;scroll-margin-top:calc(var(--toc-h) + 16px)}
.source-facts{display:flex;flex-wrap:wrap;gap:6px}
.source-fact{display:inline-flex;align-items:baseline;gap:6px;max-width:100%;padding:3px 10px;border-radius:var(--r-tag);font-size:var(--fs-meta);line-height:1.6}
.source-fact b{flex:none;font-weight:700}
.source-stay{background:var(--stay-bg);color:var(--stay-ink)}
.source-room{background:var(--room-bg);color:var(--room-ink)}
.historic-source{font-size:var(--fs-meta);font-weight:600;color:var(--warn-ink)}
.source-item h3{font-size:var(--fs-item);line-height:1.6}
.source-item h3 a{color:var(--text)}
.source-item h3 a:hover{color:var(--accent)}
.reading-teaser{font-size:var(--fs-body);line-height:1.7;color:var(--text-2)}
.source-owner{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;font-size:var(--fs-meta);line-height:1.6;color:var(--text-3)}
.source-owner strong{font-weight:600;color:var(--text-2)}
.source-author{color:var(--text-2)}
.source-commercial-cue{display:inline-flex;align-self:flex-start;padding:1px 8px;border:1px solid var(--line-strong);border-radius:6px;font-size:var(--fs-meta);line-height:1.7;color:var(--text-3)}
.source-action .source-commercial-cue{align-self:center}
.source-commercial-fallback>summary{display:inline-flex;align-items:center;gap:4px;min-height:44px;font-size:var(--fs-meta);font-weight:600;color:var(--text-3)}
.source-commercial-fallback p{font-size:var(--fs-meta);color:var(--text-3)}
.source-action{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:2px}
.source-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 18px;border:1px solid var(--accent);border-radius:var(--r-btn);background:#fff;color:var(--accent);font-size:var(--fs-label);font-weight:700}
.source-link:hover{background:var(--accent);color:#fff;text-decoration:none}
.source-action .destination{display:none}
.video-stage{min-width:0}
.video-stage-pending{display:inline-flex}
.inline-video-open{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px 0 8px;border-radius:var(--r-btn);color:var(--text);font-size:var(--fs-label);font-weight:600}
.inline-video-open::before{content:"";flex:none;width:28px;height:28px;border-radius:999px;background:var(--text) var(--i-play-white) 55% 50%/16px no-repeat}
.inline-video-open:hover{background:var(--surface-2)}
.video-stage:not(.video-stage-pending){width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:12px;background:#000}
.video-stage iframe{width:100%;height:100%;border:0}
.source-detail>summary{display:inline-flex;align-items:center;gap:4px;min-height:44px;color:var(--text-2);font-size:var(--fs-label);font-weight:600}
.source-detail>summary:hover{color:var(--accent)}
.source-detail[open]>summary{margin-bottom:4px}
.source-detail .atlas-summary,.source-detail .source-context{padding:12px 14px;border-radius:10px;background:var(--surface)}
.source-detail .source-context{margin-top:8px}
.origin-label{font-size:var(--fs-meta);font-weight:700;color:var(--text-3)}
.source-annotation{margin-top:2px;font-size:var(--fs-body);line-height:1.7;color:var(--text-2)}
.source-context p{font-size:var(--fs-meta);line-height:1.7;color:var(--text-3)}
.source-verification{margin-top:8px;font-size:var(--fs-meta);color:var(--text-3)}
.source-series{margin-left:6px;padding-left:12px;border-left:2px solid var(--line)}
.source-series>summary{display:inline-flex;align-items:center;gap:4px;min-height:44px;color:var(--accent);font-size:var(--fs-label);font-weight:600}
.source-series .source-item+.source-item,.source-series[open]>summary+.source-item,.series-context-note+.source-item{margin-top:8px}
.series-context-note{font-size:var(--fs-meta);color:var(--text-3)}
.reading-more{width:100%;margin-top:4px}
.reading-more span{font-weight:400;color:var(--text-3)}
.static-reading-more{margin-top:4px}
.static-reading-more[open]>summary{margin-bottom:12px}
.static-reading-more>.reading-group+.reading-group{margin-top:12px}
.reading-count-note{margin-top:8px}
.reading-count-note>summary{display:inline-flex;align-items:center;gap:4px;min-height:44px;color:var(--text-3);font-size:var(--fs-meta);font-weight:600}
.reading-count-note p{font-size:var(--fs-meta);line-height:1.7;color:var(--text-3)}
.no-sources{padding:16px;border-radius:12px;background:var(--surface);font-size:var(--fs-body-s);line-height:1.7;color:var(--text-2)}
.no-sources button{display:inline-flex;align-items:center;min-height:44px;margin-left:8px;padding:0 12px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-meta);font-weight:600}
.no-sources a{margin-left:6px;font-weight:600}
.official-panel{padding:20px 16px;border-radius:var(--r-card);background:var(--surface)}
.official-panel .chapter-heading{margin-bottom:0}
.section-date{font-size:var(--fs-meta);line-height:1.7;color:var(--text-3)}
.official-panel>.section-date+.section-date{margin-top:4px}
.official-link+.section-date{margin-top:12px}
.facts{display:grid;grid-template-columns:minmax(0,1fr);margin:12px 0 16px;border-top:1px solid var(--line)}
.fact-item{display:grid;gap:4px;padding:14px 0;border-bottom:1px solid var(--line)}
.fact-item dt{font-size:var(--fs-meta);font-weight:700;color:var(--text-3)}
.fact-item dd p{font-size:var(--fs-body);line-height:1.7;color:var(--text)}
.fact-source{display:inline-flex;align-items:center;gap:3px;min-height:44px;font-size:var(--fs-meta);font-weight:600}
.official-link{width:100%}
.official-source-list{margin-top:8px}
.official-source-list>summary{display:inline-flex;align-items:center;gap:4px;min-height:44px;color:var(--text-2);font-size:var(--fs-label);font-weight:600}
.official-source-list p{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:var(--fs-body-s);line-height:1.6}
.official-source-list .destination{font-size:var(--fs-meta);color:var(--text-3)}
.profile-cautions{padding:20px 16px;border:1px solid var(--note-line);border-radius:var(--r-card);background:var(--note-bg)}
.profile-cautions h2{margin-bottom:8px;font-size:var(--fs-card);color:var(--note-ink)}
.profile-cautions p{position:relative;padding-left:16px;font-size:var(--fs-body);line-height:1.7;color:var(--text-2)}
.profile-cautions p::before{content:"";position:absolute;left:2px;top:.78em;width:6px;height:6px;border-radius:50%;background:var(--note-ink)}
.profile-cautions p+p{margin-top:6px}
.profile-aside{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-content:start;min-width:0}
.aside-block{padding:20px 16px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff}
.aside-block>h2{margin-bottom:10px;font-size:var(--fs-section)}
.reservation-panel .chapter-heading{margin-bottom:8px}
.booking-columns{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
.booking-columns>p{font-size:var(--fs-body-s);line-height:1.7}
.reservation-group h3,.guest-review-panel h3{margin-bottom:8px;font-size:var(--fs-label);color:var(--text-3)}
.booking-link,.rating-link{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:8px 14px;border:1px solid var(--line-strong);border-radius:var(--r-btn);background:#fff;color:var(--text);font-size:var(--fs-body-s);font-weight:600;line-height:1.5}
.booking-link:hover,.rating-link:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
.reservation-group .destination,.reservation-panel>.destination{display:block;margin:4px 2px 0;font-size:var(--fs-meta);color:var(--text-3)}
.reservation-destination+.reservation-destination{margin-top:12px}
.rating-link>span:first-child{display:flex;flex-direction:column}
.rating-link small{font-size:var(--fs-meta);font-weight:400;color:var(--text-3)}
.rating-score{margin-left:auto;font-weight:700;color:var(--text)}
.guest-review-panel>div+div{margin-top:8px}
.guest-review-panel>p,.rating-count,.aside-note{margin-top:6px;font-size:var(--fs-meta);color:var(--text-3)}
.membership-note{margin-top:8px;font-size:var(--fs-meta);line-height:1.7;color:var(--text-3)}
.atlas-commercial{margin-top:12px}
.atlas-commercial>summary{display:inline-flex;align-items:center;gap:4px;min-height:44px;color:var(--text-3);font-size:var(--fs-meta);font-weight:600}
.atlas-commercial p{font-size:var(--fs-meta);line-height:1.7;color:var(--text-3)}
.hoteler-log-panel{border-color:transparent;background:var(--surface)}
#profile-view>.hoteler-log-panel{margin-top:24px}
.hoteler-log-panel h2{margin-top:4px;margin-bottom:0;font-size:var(--fs-card)}
.hoteler-log-panel p:not(.eyebrow){margin-top:6px;font-size:var(--fs-body-s);line-height:1.7;color:var(--text-2)}
.read-log-link{display:inline-flex;align-items:center;gap:4px;min-height:44px;margin-top:4px;font-size:var(--fs-label);font-weight:600}
.back-selection{display:flex;width:100%;max-width:400px;margin:32px auto 0}
.detail-load-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin:8px 0 12px;padding:14px 16px;border:1px solid var(--warn-line);border-style:solid;background:var(--warn-bg);text-align:left}
.detail-load-notice p{font-size:var(--fs-body-s);font-weight:600;color:var(--warn-ink)}
.detail-load-notice button{width:auto}
.profile-source-count{display:flex;gap:16px;font-size:var(--fs-label)}

/* ---------- Guides ---------- */
main>.breadcrumb,.guide-header,.guide-toc,.guide-grid,.guide-after,main>.back-selection{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
main>.back-selection{max-width:400px;padding-inline:20px}
.guide-header{padding-top:4px;padding-bottom:24px}
.guide-header h1{margin-top:4px;font-size:var(--fs-display);line-height:1.45}
.guide-question{margin-top:12px;font-size:var(--fs-card);font-weight:700;color:var(--text)}
.guide-header>p:not(.eyebrow){max-width:42em;margin-top:8px;font-size:var(--fs-body)}
.guide-header .guide-question{font-size:var(--fs-card)}
.guide-header .guide-editing-note{font-size:var(--fs-meta);color:var(--text-3)}
.guide-toc{margin-bottom:32px}
.guide-toc h2{margin-bottom:8px;font-size:var(--fs-card)}
.guide-toc ol{display:grid;gap:8px}
.guide-toc a{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:0 12px;min-height:56px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;color:var(--text);font-weight:700;line-height:1.5}
.guide-toc a:hover{border-color:var(--line-strong);text-decoration:none;color:var(--accent)}
.guide-toc a span{grid-row:span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-meta);font-weight:700}
.guide-toc small{font-size:var(--fs-meta);font-weight:400;color:var(--text-3)}
.guide-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.guide-hotel{padding:20px 16px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;scroll-margin-top:16px}
.guide-hotel .chapter-heading{flex-wrap:nowrap;gap:10px;margin-bottom:2px}
.guide-hotel .chapter-number{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:999px;background:var(--accent);color:#fff;font-size:var(--fs-meta);font-weight:700;line-height:1}
.guide-hotel h2{font-size:var(--fs-section)}
.guide-hotel h2 a{color:var(--text)}
.guide-hotel>.eyebrow{font-weight:400;letter-spacing:.02em;color:var(--text-3)}
.guide-angle{margin-top:8px;font-size:var(--fs-body);line-height:1.7;color:var(--text-2)}
.guide-official{margin-top:16px;padding:14px 16px;border-radius:12px;background:var(--surface)}
.guide-official h3,.guide-reading-group>h3{margin-bottom:8px;font-size:var(--fs-label);color:var(--text-3)}
.guide-facts li{position:relative;padding-left:14px;font-size:var(--fs-body-s);line-height:1.7}
.guide-facts li::before{content:"";position:absolute;left:1px;top:.72em;width:5px;height:5px;border-radius:50%;background:var(--text-3)}
.guide-facts li+li{margin-top:6px}
.guide-facts a{font-size:var(--fs-meta);font-weight:600;text-decoration:underline}
.guide-reading-group{margin-top:20px}
.guide-source-choices{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.guide-reading{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.guide-reading .source-owner>span{padding:0 8px;border-radius:6px;background:var(--surface-2);color:var(--text-2);font-weight:600}
.guide-reading .source-owner small{color:var(--text-3)}
.guide-reading-purpose{font-size:var(--fs-meta);font-weight:700;color:var(--accent-ink)}
.guide-reading h4{font-size:var(--fs-item);line-height:1.6}
.guide-reading h4 a{color:var(--text)}
.guide-reading h4 a:hover{color:var(--accent)}
.guide-title-note,.guide-source-context,.guide-preview-caveat{display:block;font-size:var(--fs-meta);line-height:1.7;color:var(--text-3)}
.guide-preview-caveat{color:var(--warn-ink)}
.guide-read-action{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;min-height:44px;padding:0 16px;border:1px solid var(--accent);border-radius:var(--r-btn);color:var(--accent);font-size:var(--fs-label);font-weight:700}
.guide-read-action:hover{background:var(--accent);color:#fff;text-decoration:none}
.guide-source-detail>summary{display:inline-flex;align-items:center;gap:4px;min-height:44px;color:var(--text-2);font-size:var(--fs-label);font-weight:600}
.guide-source-detail p{padding:10px 12px;border-radius:10px;background:var(--surface);font-size:var(--fs-body-s);line-height:1.8}
.guide-source-detail a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--fs-meta);font-weight:600}
.guide-more-sources{margin-top:12px;padding:0 14px;border:1px solid var(--line);border-radius:12px}
.guide-more-sources>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;color:var(--text);font-size:var(--fs-label);font-weight:700}
.guide-more-sources>p{font-size:var(--fs-meta);color:var(--text-3)}
.guide-more-sources[open]{padding-bottom:14px}
.guide-more-sources[open]>.guide-source-choices{margin-top:10px}
.guide-profile-link{display:flex;width:100%;margin-top:16px}
.guide-hotel-navigation{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 12px;margin-top:8px}
.guide-hotel-navigation a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--fs-label);font-weight:600}
.guide-after{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.guide-after h2{font-size:var(--fs-card)}

/* ---------- 404 ---------- */
body>main>.empty-state{max-width:640px;margin:40px auto;margin-inline:max(var(--gutter),calc(50% - 320px))}
body>main>.empty-state h1{font-size:var(--fs-page)}

/* ---------- Wider screens ---------- */
@media (min-width:768px){
  :root{--gutter:24px}
  .discovery-opening{padding-top:28px}
  #search-form{flex:0 1 720px}
  .discovery-search-panel{gap:4px 16px}
  .filter-bar{flex-wrap:wrap;margin-inline:0;padding-inline:0;overflow:visible}
  .results-bar{margin-inline:0;padding-inline:0}
  .brand-quick-links{flex:0 1 auto;flex-wrap:wrap;min-width:0}
  .hotel-articles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .how-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reading-note{grid-template-columns:repeat(2,minmax(0,1fr))}
  .static-hotel-index ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filter-sheet{inset:0 0 0 auto;width:420px;height:100%;max-height:100%;border-radius:0}
  .filter-sheet[open]{animation-name:sheet-left}
  @keyframes sheet-left{from{transform:translateX(32px);opacity:.4}}
  #info-dialog{padding:16px 28px 28px}
  #profile-view{max-width:820px}
  .breadcrumb span{display:inline}
  .profile-toc{margin-inline:0;padding-inline:0}
  .topic-tabs{flex-wrap:wrap;margin-inline:0;padding-inline:0;overflow:visible}
  .source-item{padding:20px}
  .fact-item{grid-template-columns:8em minmax(0,1fr);gap:16px}
  .official-panel,.profile-cautions,.aside-block{padding:24px}
  .official-link{width:auto}
  .guide-hotel{padding:24px}
}
@media (min-width:1080px){
  :root{--fs-display:2rem;--fs-page:1.75rem;--fs-section:1.5rem}
  .hotel-articles{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  .how-it-works{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start;gap:24px}
  .static-hotel-index ul{grid-template-columns:repeat(3,minmax(0,1fr))}
  #profile-view{max-width:var(--max)}
  .profile-layout{grid-template-columns:minmax(0,1fr) 340px;gap:48px}
  .profile-header{padding-top:12px}
  .guide-toc ol{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* ---------- Desktop (mouse and wide screens) ---------- */
@media (min-width:1280px){
  :root{--max:1280px}
}
@media (min-width:1440px){
  :root{--max:1360px}
}
/* The filter panel sits in a persistent left column next to the results. On narrower screens the same panel moves into the filter dialog while it is open. */
@media (min-width:1080px){
  html[data-app-booted=true] .selection{display:grid;grid-template-columns:288px minmax(0,1fr);column-gap:32px;align-items:start}
  .selection-main{grid-column:2;min-width:0}
  .selection-main .hotel-articles{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
  .selection>.filter-panel{position:sticky;top:16px;display:flex;max-height:calc(100vh - 32px);border:1px solid var(--line);border-radius:var(--r-card);background:#fff;overflow:hidden}
  .selection>.filter-panel :is(.dialog-close,.sheet-apply){display:none}
  .selection>.filter-panel .sheet-header{min-height:52px;padding:6px 16px}
  .selection>.filter-panel .sheet-body{padding:0 16px 4px}
  .selection>.filter-panel .filter-section{padding:16px 0}
  .selection>.filter-panel .reading-kind-filter{grid-template-columns:minmax(0,1fr)}
  .selection>.filter-panel :is(#theme-filters,.subbrand-options,.sort-options) button{padding:0 12px}
  .selection>.filter-panel .sheet-footer{justify-content:flex-start;padding:8px 16px}
  .results-bar{display:none}
  .results-heading{margin-bottom:12px}
}
@media (min-width:1080px){
  .profile-toc{justify-content:flex-start;gap:4px}
  .profile-toc a{padding:0 14px}
  /* Report and video cards read as rows: the text on the left, the read button (and the in-page play button) on the right.
     The action wrapper dissolves, so its ad label joins the text column under the author line and a long label wraps at full width.
     Spacing comes from margins, not row gaps, so rows a short card leaves empty add no height; the last 1fr row absorbs a taller right column. */
  .source-item{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:repeat(7,auto) 1fr;gap:0 24px;align-items:start}
  .source-item>*,.source-action>*{grid-column:1}
  .source-item>*+*,.source-action>*{margin-top:8px}
  .source-action{display:contents}
  .source-action>:is(.source-link,.video-stage-pending){grid-column:2;grid-row:1 / -1;min-width:176px;margin-top:0}
  .source-action>.video-stage-pending{margin-top:52px}
  .source-action>.source-commercial-cue{justify-self:start}
  /* While a video plays in the page, the card returns to the stacked phone layout and the video spans the card. */
  .source-item:has(.video-stage:not(.video-stage-pending)){display:flex;align-items:stretch}
  .source-item:has(.video-stage:not(.video-stage-pending))>.source-action{display:flex;margin-top:10px}
  .source-item:has(.video-stage:not(.video-stage-pending)) .source-action>*{min-width:0;margin-top:0}
  #profile-view>.hoteler-log-panel{margin-top:32px}
}
/* The booking column stays beside the reports while reading, when the screen is tall enough to show all of it. */
@media (min-width:1080px) and (min-height:860px){
  .profile-aside{position:sticky;top:calc(var(--toc-h) + 16px);align-self:start;max-height:calc(100vh - var(--toc-h) - 32px);overflow-y:auto}
}
@media (max-width:359px){
  :root{--fs-display:1.5rem}
  .profile-toc a{padding:0 6px}
  .profile-toc a b{display:none}
  .search-field button[type=submit]{min-width:56px;padding:0 12px}
  #filter-open{padding:0 12px}
  .sort-control select{padding:0 30px 0 12px;background-position:right 8px center}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
@media print{
  .masthead,.filter-bar,.profile-toc,.footer,.profile-header-actions,.entry-save,#toast{display:none!important}
  .hotel-entry,.source-item,.aside-block{break-inside:avoid}
}
