@font-face {
  font-family: "Bespoke Serif";
  src: url("/assets/paper/BespokeSerif-Regular.otf") format("opentype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
:root {
  --ph-ink: #15212d;
  --ph-muted: #626a72;
  --ph-line: #dfe3e6;
  --ph-blue: #245a90;
  --ph-sand: #f5f7f9;
  --ph-serif: "Bespoke Serif", Georgia, serif;
  --ph-sans: "DM Sans", sans-serif;
}
html, body { background: #fff; color: var(--ph-ink); font-family: var(--ph-sans); font-synthesis: none; -webkit-font-smoothing: antialiased; }
.paper-hero, .paper-hero *, .paper-stats, .paper-stats *, .paper-selected, .paper-selected *, .paper-featured, .paper-featured *, .paper-hospitality, .paper-hospitality *, .paper-reviews, .paper-reviews *, .paper-cta, .paper-cta *, .paper-footer, .paper-footer * { box-sizing: border-box; }
.paper-wrap { width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 clamp(24px, 5.5556vw, 80px); }
.paper-hero { height: 620px; min-height: 620px; position: relative; background: #000; overflow: hidden; }
.paper-hero::after { display: none; }
.paper-hero-media { position: absolute; inset: 0; }
.paper-hero-media video { width: 100%; height: 100%; object-fit: cover; opacity: .42; }
.paper-hero-mobile, .paper-hero-shade { display: none; }
.paper-hero-content { position: absolute; z-index: 2; top: 210px; left: 50%; transform: translateX(-50%); width: min(900px, calc(100% - 48px)); color: #fff; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 24px; }
.paper-eyebrow, .paper-eyebrow-dark { margin: 0; font: 500 12px/18px var(--ph-sans); letter-spacing: .13em; text-transform: uppercase; }
.paper-hero-content h1 { margin: 0; color: #fff; font: 400 62px/70px var(--ph-serif); letter-spacing: -.025em; }
.paper-hero-content p:last-child { margin: 0; color: #fff; font: 400 18px/29px var(--ph-sans); }
.paper-search { position: absolute; z-index: 3; top: 488px; left: 50%; transform: translateX(-50%); width: min(1120px, calc(100% - 48px)); height: 84px; border: 1px solid #ffffff26; border-radius: 12px; background: #0c0c0d; padding: 16px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #fff; }
.paper-field { position: relative; display: flex; flex-direction: column; gap: 2px; width: 160px; min-width: 0; }
.paper-field:first-child { width: 240px; }
.paper-field:nth-child(4) { width: 120px; }
.paper-field label { color: #adb5bd; font: 400 12px/18px var(--ph-sans); }
.paper-field select, .paper-field input { display: block; min-width: 0; width: 100%; height: 22px; padding: 0 18px 0 0; border: 0; background: transparent; color: #fff; color-scheme: dark; font: 400 15px/22px var(--ph-sans); outline: 0; }
.paper-field select { appearance: none; cursor: pointer; }
.paper-field option { color: var(--ph-ink); }
.paper-field::after { content: ""; position: absolute; right: 3px; bottom: 8px; width: 7px; height: 7px; border-right: 1.5px solid #adb5bd; border-bottom: 1.5px solid #adb5bd; transform: rotate(45deg); pointer-events: none; }
.paper-field input::-webkit-calendar-picker-indicator { opacity: 0; cursor: pointer; }
.paper-field:not(.has-value) input[type="date"]::-webkit-datetime-edit { color: transparent; }
.paper-date-placeholder { position: absolute; bottom: 0; left: 0; color: #fff; font: 400 15px/22px var(--ph-sans); pointer-events: none; }
.paper-field.has-value .paper-date-placeholder { display: none; }
.paper-search button { flex: none; width: 166px; height: 48px; padding: 0 12px; border: 0; border-radius: 8px; background: #fff; color: var(--ph-ink); display: inline-flex; align-items: center; justify-content: center; gap: 14px; font: 500 15px/22px var(--ph-sans); cursor: pointer; }
.paper-search button:hover { background: var(--ph-sand); }
.paper-search button svg { flex: none; }
.paper-stats { width: min(1120px, calc(100% - 48px)); margin: 0 auto; padding: 28px 0 32px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 32px; background: #fff; }
.paper-stats > div { min-width: 0; display: flex; flex-direction: column; gap: 8px; padding-bottom: 28px; border-bottom: 1px solid var(--ph-line); }
.paper-stats b { color: var(--ph-ink); font: 400 42px/48px var(--ph-serif); letter-spacing: -.025em; }
.paper-stats span { color: var(--ph-muted); font: 400 15px/22px var(--ph-sans); }
.paper-selected { padding: 64px 0; background: #fff; }
.paper-selected-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 40px; }
.paper-selected-head > div { display: flex; flex-direction: column; gap: 14px; }
.paper-eyebrow-dark { color: var(--ph-ink); }
.paper-selected-head h2, .paper-featured h2, .paper-hospitality h2, .paper-review-head h2, .paper-cta h2 { margin: 0; color: var(--ph-ink); font: 400 46px/51px var(--ph-serif); letter-spacing: -.025em; }
.paper-selected-head > div > p:last-child { margin: 0; color: var(--ph-muted); font: 400 16px/26px var(--ph-sans); }
.paper-view-all { display: inline-flex; align-items: center; gap: 8px; flex: none; color: var(--ph-blue); text-decoration: none; font: 500 15px/24px var(--ph-sans); }
.paper-view-all-mobile { display: none; }
.paper-stay { display: grid; grid-template-columns: minmax(0, 2.05fr) minmax(0, 1fr); align-items: center; gap: clamp(24px, 4.1667vw, 60px); }
.paper-stay-visual { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.paper-stay-photo { width: 100%; aspect-ratio: 820 / 490; border-radius: 6px; overflow: hidden; background: var(--ph-sand); }
.paper-stay-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: opacity .28s ease; }
.paper-stay-photo img.is-changing { opacity: 0; }
.paper-stay-caption { min-height: 44px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.paper-stay-caption > span { min-width: 0; color: var(--ph-ink); font: 400 13px/20px var(--ph-sans); }
.paper-stay-caption > div { flex: none; display: flex; align-items: center; gap: 10px; }
.paper-stay-caption button, .paper-review-controls button { width: 40px; height: 40px; display: grid; place-items: center; flex: none; border: 1px solid #cfd6dc; border-radius: 50%; background: #fff; color: var(--ph-ink); font: 400 20px var(--ph-sans); cursor: pointer; }
#selected-count { color: var(--ph-muted); font: 400 12px/18px "IBM Plex Mono", monospace; }
.paper-progress { height: 2px; background: var(--ph-line); border-radius: 1px; }
.paper-progress i { display: block; height: 2px; border-radius: 1px; background: var(--ph-blue); transition: width .3s ease; }
.paper-stay-copy { min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.paper-stay-copy .paper-eyebrow-dark { color: var(--ph-muted); font-weight: 400; }
.paper-stay-copy h3 { margin: 0; color: var(--ph-ink); font: 400 44px/50px var(--ph-serif); letter-spacing: -.025em; }
.paper-stay-copy > p:not(.paper-eyebrow-dark) { margin: 0; color: var(--ph-muted); font: 400 17px/28px var(--ph-sans); }
.paper-stay-copy #selected-meta { font-size: 15px; line-height: 24px; }
#selected-link { display: inline-flex; align-items: center; gap: 18px; align-self: flex-start; margin-top: 8px; color: var(--ph-blue); text-decoration: none; font: 500 15px/24px var(--ph-sans); }
#selected-link svg { display: inline-block; flex-shrink: 0; }
.paper-link-arrow { display: inline-block; flex: none; vertical-align: middle; }
.paper-row-head a, .paper-card > div > a { display: inline-flex; align-items: center; gap: 8px; }
.paper-featured { padding: 72px 0; background: #fff; }
.paper-featured > .paper-wrap > .paper-eyebrow-dark { margin-bottom: 14px; }
.paper-featured h2 { line-height: 52px; }
#frows { display: flex; flex-direction: column; gap: 56px; margin-top: 56px; }
.paper-row { min-width: 0; }
.paper-row-head { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.paper-row-head h3 { margin: 0; font: 400 34px/40px var(--ph-serif); }
.paper-row-head p { margin: 0; max-width: 830px; color: var(--ph-muted); font: 400 15px/24px var(--ph-sans); }
.paper-row-head > a { align-self: flex-start; color: var(--ph-blue); text-decoration: none; font: 400 14px/22px var(--ph-sans); }
.paper-card-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.paper-card { min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.paper-card > a:first-child { display: block; width: 100%; aspect-ratio: 302 / 216; border-radius: 6px; overflow: hidden; }
.paper-card img { display: block; width: 100%; height: 100%; object-fit: cover; }
.paper-card > div { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 8px 20px 18px; }
.paper-card h4 { margin: 0; color: var(--ph-ink); font: 400 23px/28px var(--ph-serif); }
.paper-card p { margin: 0; color: var(--ph-muted); font: 400 14px/22px var(--ph-sans); }
.paper-card > div > a { color: var(--ph-blue); text-decoration: none; font: 400 14px/22px var(--ph-sans); }
.paper-hospitality { padding: 92px 0; background: #fff; }
.paper-hospitality > .paper-wrap { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 4fr); gap: clamp(36px, 11.111vw, 160px); }
.paper-hospitality > .paper-wrap > div:first-child { display: flex; flex-direction: column; gap: 18px; padding-top: 8px; }
.paper-hospitality-grid { min-width: 0; display: flex; flex-direction: column; }
.paper-hospitality-grid article { padding: 0 0 24px; margin-bottom: 20px; border-bottom: 1px solid var(--ph-line); display: flex; flex-direction: column; gap: 5px; }
.paper-hospitality-grid b { font: 400 25px/28px var(--ph-serif); letter-spacing: -.025em; }
.paper-hospitality-grid span { color: var(--ph-muted); font: 400 15px/24px var(--ph-sans); }
.paper-reviews { padding: 72px 0; background: var(--ph-sand); }
.paper-review-head { display: flex; justify-content: space-between; align-items: end; gap: 16px; }
.paper-review-head > div:first-child { display: flex; flex-direction: column; gap: 14px; }
.paper-review-controls { display: flex; gap: 14px; margin-top: 24px; }
.paper-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.paper-badges span { padding: 8px 14px; border: 1px solid #cfd6dc; border-radius: 24px; color: var(--ph-ink); font: 400 13px/20px var(--ph-sans); }
.paper-review-rail { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-top: 32px; }
.paper-review-rail::-webkit-scrollbar { display: none; }
.paper-review { min-width: 0; padding: 28px; border: 1px solid var(--ph-line); border-radius: 6px; background: #fff; scroll-snap-align: start; display: flex; flex-direction: column; gap: 24px; }
.paper-review-person { display: flex; align-items: center; gap: 14px; padding-bottom: 20px; border-bottom: 1px solid var(--ph-line); }
.paper-review-person img, .paper-initial { display: grid; place-items: center; flex: none; width: 64px; height: 64px; border-radius: 50%; background: var(--ph-sand); object-fit: cover; }
.paper-review-person b, .paper-review-person span { display: block; }
.paper-review-person b { color: var(--ph-ink); font: 600 14px/22px var(--ph-sans); }
.paper-review-person span { color: var(--ph-muted); font: 400 13px/20px var(--ph-sans); }
.paper-stars { color: var(--ph-blue); letter-spacing: 4px; font-size: 17px; line-height: 16px; }
.paper-review blockquote { margin: 0; min-height: 216px; color: var(--ph-ink); font: 400 16px/27px var(--ph-sans); }
.paper-review-more { align-self: flex-start; padding: 0; border: 0; background: none; color: var(--ph-blue); font: 500 14px/22px var(--ph-sans); cursor: pointer; }
.paper-cta { height: 280px; display: flex; align-items: center; justify-content: center; background: var(--ph-sand); }
.paper-cta .paper-wrap { display: flex; flex-direction: column; align-items: center; gap: 24px; text-align: center; }
.paper-cta a { width: 246px; height: 52px; display: inline-flex; justify-content: center; align-items: center; gap: 20px; border-radius: 6px; background: var(--ph-blue); color: #fff; text-decoration: none; font: 500 15px/22px var(--ph-sans); }
.paper-footer { padding: 52px 0 74px; background: #fff; }
.paper-footer-top { display: grid; grid-template-columns: minmax(0, 380px) repeat(2, minmax(0, 220px)) minmax(0, 280px); justify-content: space-between; gap: 32px; }
.paper-footer-top > div { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.paper-footer-top > div:first-child { gap: 18px; }
.paper-footer-top img { display: block; width: 150px; height: 80px; object-fit: contain; }
.paper-footer-top p { margin: 0; color: var(--ph-muted); font: 400 15px/24px var(--ph-sans); }
.paper-footer-top b { margin: 0; color: var(--ph-ink); font: 500 12px/18px var(--ph-sans); letter-spacing: .13em; }
.paper-footer-top a { color: var(--ph-ink); text-decoration: none; font: 400 14px/22px var(--ph-sans); overflow-wrap: anywhere; }
.paper-footer-bottom { display: flex; justify-content: space-between; gap: 8px; margin-top: 58px; padding-top: 20px; border-top: 1px solid var(--ph-line); color: var(--ph-muted); font: 400 11px/18px var(--ph-sans); }
.paper-footer-bottom a { color: inherit; text-decoration: none; }
.paper-hero a:focus-visible, .paper-hero button:focus-visible, .paper-hero input:focus-visible, .paper-hero select:focus-visible, .paper-selected a:focus-visible, .paper-selected button:focus-visible, .paper-featured a:focus-visible, .paper-reviews button:focus-visible, .paper-cta a:focus-visible, .paper-footer a:focus-visible { outline: 3px solid #3e9af9; outline-offset: 3px; }
@media (max-width: 1000px) {
  .paper-stay { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 28px; }
  .paper-hospitality > .paper-wrap { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; }
  .paper-card-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .paper-review-rail { grid-auto-columns: calc((100% - 24px) / 2); }
}
@media (max-width: 900px) {
  .paper-hero { height: 742px; min-height: 742px; }
  .paper-hero-desktop { display: none; }
  .paper-hero-mobile { display: block; }
  .paper-hero-content { top: 174px; width: calc(100% - 48px); align-items: flex-start; text-align: left; }
  .paper-hero-content h1 { font-size: 42px; line-height: 48px; }
  .paper-hero-content p:last-child { font-size: 17px; line-height: 27px; }
  .paper-search { top: 430px; left: 24px; transform: none; width: calc(100% - 48px); height: 264px; padding: 18px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: 36px 36px 36px 48px; align-content: space-between; gap: 0 20px; }
  .paper-field, .paper-field:first-child, .paper-field:nth-child(4) { width: auto; }
  .paper-field:first-child, .paper-field:nth-child(4), .paper-search button { grid-column: 1 / -1; }
  .paper-search button { width: 100%; height: 48px; border-radius: 8px; }
  .paper-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; padding: 24px 0 28px; border-bottom: 1px solid var(--ph-line); }
  .paper-stats > div { padding: 0; border: 0; }
  .paper-stats b { font-size: 34px; line-height: 40px; }
  .paper-stats span { font-size: 13px; line-height: 22px; }
  .paper-selected { padding: 56px 0; }
  .paper-stay { grid-template-columns: 1fr; gap: 28px; }
  .paper-stay-photo { aspect-ratio: auto; height: 300px; }
  .paper-stay-copy { gap: 22px; }
  .paper-selected-head { margin-bottom: 28px; }
  .paper-hospitality { padding: 56px 0; }
  .paper-hospitality > .paper-wrap { display: flex; flex-direction: column; gap: 42px; }
  .paper-hospitality > .paper-wrap > div:first-child { padding: 0; }
  .paper-review-rail { grid-auto-columns: 80%; }
}
@media (max-width: 600px) {
  .paper-wrap { padding: 0 24px; }
  .paper-search { width: calc(100% - 48px); }
  .paper-selected-head { display: flex; flex-direction: column; align-items: flex-start; }
  .paper-selected-head h2, .paper-featured h2, .paper-hospitality h2, .paper-review-head h2, .paper-cta h2 { font-size: 36px; line-height: 40px; }
  .paper-selected-head > div { gap: 14px; }
  .paper-selected-head > .paper-view-all { display: none; }
  .paper-view-all-mobile { display: inline-flex; margin-top: 28px; }
  .paper-stay { gap: 22px; }
  .paper-stay-caption > span { font-size: 11px; }
  .paper-stay-copy h3 { font-size: 36px; line-height: 42px; }
  .paper-featured { padding: 56px 0; }
  #frows { gap: 0; margin-top: 40px; }
  .paper-row + .paper-row { margin-top: 40px; padding-top: 40px; border-top: 1px solid var(--ph-line); }
  .paper-row-head h3 { font-size: 30px; line-height: 40px; }
  .paper-card-row { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .paper-card-row::-webkit-scrollbar { display: none; }
  .paper-card { flex: 0 0 min(282px, 100%); scroll-snap-align: start; }
  .paper-card > a:first-child { aspect-ratio: 282 / 212; }
  .paper-review-head { display: block; }
  .paper-review-controls { display: flex; }
  .paper-review-rail { grid-auto-columns: min(306px, 100%); gap: 16px; }
  .paper-review { padding: 28px; }
  .paper-stay-caption > span { font-size: 0; }
  .paper-stay-caption > span::after { content: attr(data-mobile-caption); font: 400 11px/20px var(--ph-sans); }
  .paper-review blockquote { min-height: 270px; }
  .paper-cta { height: 300px; }
  .paper-cta a { width: 100%; }
  .paper-footer { padding: 40px 0 56px; }
  .paper-footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 6px; }
  .paper-footer-top > div:first-child, .paper-footer-top > div:last-child { grid-column: 1 / -1; }
  .paper-footer-bottom { flex-direction: column; margin-top: 40px; }
}
@media (max-width: 360px) {
  .paper-hero-content { top: 160px; }
  .paper-hero-content h1 { font-size: 37px; line-height: 43px; }
  .paper-hero-content p:last-child { font-size: 15px; line-height: 24px; }
  .paper-search { top: 420px; }
  .paper-review-rail { grid-auto-columns: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .paper-stay-photo img, .paper-progress i { transition: none; }
  .paper-review-rail, .paper-card-row { scroll-behavior: auto; }
}
