/* Hotel landing components use the shared Arrow tokens and chrome. */
.hotel-hero { display:grid; grid-template-columns:1fr; gap:36px; padding-top:clamp(44px,7vw,84px); }
.hotel-breadcrumb { font-family:var(--mono); font-size:.7rem; color:var(--muted); margin-bottom:24px; line-height:1.8; }
.hotel-breadcrumb a { color:inherit; text-underline-offset:4px; }
.hotel-hero .h-display { font-size:clamp(2.45rem,5vw,4rem); max-width:760px; margin-bottom:24px; }
.hotel-hero .lede { margin-bottom:26px; }
.hotel-tagline { font-size:1.05rem; color:var(--ink); margin-bottom:16px; font-weight:600; }
.hotel-cta { display:inline-flex; justify-content:center; text-align:center; white-space:normal; line-height:1.45; }
.hotel-small { color:var(--muted); font-size:.82rem; line-height:1.7; margin-top:14px; }
.hotel-brief { align-self:center; padding:clamp(22px,4vw,32px); border:1px solid var(--a10); border-radius:var(--r-lg); background:var(--bg-card); box-shadow:0 16px 44px -28px var(--a10); }
.hotel-brief blockquote { font-size:clamp(1.25rem,2.1vw,1.65rem); letter-spacing:-.025em; line-height:1.4; color:var(--ink); margin:0 0 26px; }
.hotel-brief ol { list-style:none; margin:0; padding:0; counter-reset:brief; }
.hotel-brief li { display:flex; gap:13px; align-items:flex-start; border-top:1px solid var(--a8); padding:16px 0; color:var(--muted); font-size:.9rem; line-height:1.6; counter-increment:brief; }
.hotel-brief li::before { content:'0' counter(brief); color:var(--heat-strong); font-family:var(--mono); font-size:.7rem; padding-top:3px; }
.hotel-grid { display:grid; grid-template-columns:1fr; gap:16px; }
.hotel-card { min-width:0; padding:24px; border:1px solid var(--a10); border-radius:var(--r-lg); background:var(--bg-card); }
.hotel-card .h-card { margin-bottom:12px; }
.hotel-card p, .hotel-prose p { color:var(--muted); line-height:1.75; font-size:.96rem; }
.hotel-prose { max-width:780px; }
.hotel-prose p + p { margin-top:18px; }
.hotel-query { border-top:3px solid var(--heat-8); }
.hotel-query .kicker { margin-bottom:16px; }
.hotel-query p { color:var(--ink); font-size:1.07rem; line-height:1.6; }
.hotel-steps { list-style:none; padding:0; margin:0; counter-reset:step; }
.hotel-steps li { display:grid; grid-template-columns:36px 1fr; gap:16px; padding:24px 0; border-top:1px solid var(--a8); counter-increment:step; }
.hotel-steps li::before { content:'0' counter(step); font-family:var(--mono); color:var(--heat-strong); font-size:.8rem; padding-top:4px; }
.hotel-steps h3 { margin-bottom:8px; }
.hotel-steps p { color:var(--muted); line-height:1.75; max-width:780px; }
.hotel-measure { margin-top:26px; display:grid; grid-template-columns:1fr; gap:12px; }
.hotel-measure div { border-left:2px solid var(--a10); padding:12px 18px; }
.hotel-measure dt { font-family:var(--mono); font-size:.72rem; text-transform:uppercase; margin-bottom:7px; }
.hotel-measure dd { margin:0; color:var(--muted); line-height:1.6; font-size:.9rem; }
.hotel-links a { display:flex; flex-direction:column; gap:10px; text-decoration:none; color:var(--ink); transition:border-color .15s ease; }
.hotel-links a:hover { border-color:var(--heat); }
.hotel-links a[aria-current=page] { background:var(--heat-4); }
.hotel-links span { color:var(--muted); font-size:.88rem; line-height:1.6; }
.hotel-faq .faq-item { border-top:1px solid var(--a8); }
.hotel-faq .faq-a { padding:0 20px 24px; max-width:850px; }
.hotel-faq summary { gap:14px; line-height:1.5; }
.hotel-sources { margin-top:30px; font-size:.8rem; line-height:1.8; color:var(--muted); }
.hotel-sources a, .hotel-prose a { color:var(--ink); text-underline-offset:4px; }
.hotel-final { background:var(--heat-4); }
.hotel-final .h-section { max-width:760px; margin-bottom:20px; }
.hotel-final .lede { max-width:760px; margin-bottom:26px; }
@media(min-width:650px) { .hotel-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .hotel-measure { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(min-width:900px) { .hotel-hero { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:42px; } .hotel-queries { grid-template-columns:repeat(3,minmax(0,1fr)); } .hotel-links { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:420px) { .hotel-cta { width:100%; padding-left:14px; padding-right:14px; } .hotel-card { padding:20px; } }

/* Published ranking excerpts: preserved scores and explicit source scope. */
.hotel-ranking-jump { margin-top:20px; font-size:.9rem; }
.hotel-ranking-jump a { color:var(--ink); text-underline-offset:5px; }
.hotel-ranking-table-wrap { border:1px solid var(--a10); border-radius:var(--r-lg); background:var(--bg-card); overflow:hidden; margin-top:22px; }
.hotel-ranking-table { border-collapse:collapse; width:100%; table-layout:fixed; font-size:.9rem; }
.hotel-ranking-table caption { text-align:left; padding:18px 20px; color:var(--muted); font-family:var(--mono); font-size:.68rem; border-bottom:1px solid var(--a8); }
.hotel-ranking-table thead th { background:var(--a2); font-family:var(--mono); font-weight:500; text-transform:uppercase; font-size:.63rem; letter-spacing:.04em; color:var(--muted); text-align:left; }
.hotel-ranking-table th,.hotel-ranking-table td { padding:16px 20px; border-bottom:1px solid var(--a8); vertical-align:middle; overflow-wrap:anywhere; }
.hotel-ranking-table tr:last-child>* { border-bottom:0; }
.hotel-ranking-table th:first-child,.hotel-ranking-table td:first-child { width:102px; font-family:var(--mono); font-size:.72rem; color:var(--muted); }
.hotel-ranking-table th:last-child,.hotel-ranking-table td:last-child { width:128px; }
.hotel-ranking-table tbody th { font-weight:500; text-align:left; }
.hotel-ranking-table td strong { font-size:1.5rem; color:var(--ink); letter-spacing:-.03em; }
.hotel-ranking-den { font-size:.75rem; color:var(--muted); margin-left:3px; }
.hotel-ranking-property { display:flex; gap:16px; align-items:center; min-width:0; }
.hotel-ranking-property img,.hotel-ranking-initial { width:44px; height:44px; flex-shrink:0; object-fit:contain; padding:4px; border:1px solid var(--a8); border-radius:var(--r-sm); }
.hotel-ranking-property img.hotel-ranking-dark { background:var(--ink); }
.hotel-ranking-initial { display:grid; place-items:center; font-family:var(--mono); color:var(--muted); }
.hotel-ranking-property a { color:var(--ink); text-decoration:none; }
.hotel-ranking-property a:hover { text-decoration:underline; text-underline-offset:4px; }
.hotel-ranking-property small { display:block; font-size:.76rem; color:var(--muted); margin-top:5px; }
.hotel-ranking-unassessed { color:var(--muted); font-size:.8rem; }
.hotel-ranking-method { margin-top:24px; color:var(--muted); font-size:.82rem; line-height:1.75; }
.hotel-ranking-method p+p { margin-top:14px; }
.hotel-ranking-method a { color:var(--ink); text-underline-offset:4px; }
.hotel-ranking-context { margin-top:36px; }
@media(max-width:600px) {
 .hotel-ranking-table th,.hotel-ranking-table td { padding:14px 9px; }
 .hotel-ranking-table th:first-child,.hotel-ranking-table td:first-child { width:58px; font-size:.6rem; }
 .hotel-ranking-table th:last-child,.hotel-ranking-table td:last-child { width:78px; }
 .hotel-ranking-property { gap:8px; align-items:flex-start; }
 .hotel-ranking-property img,.hotel-ranking-initial { width:30px; height:30px; padding:2px; }
 .hotel-ranking-property { font-size:.8rem; }
 .hotel-ranking-table td strong { font-size:1.2rem; }
 .hotel-ranking-table thead th { font-size:.56rem; }
 .hotel-ranking-table caption { padding:14px 12px; }
}

.hotel-ranking { scroll-margin-top:80px; }
