/* Booked News features (/features/): figures with credits, cards. Tables and charts reuse the data-desk styles in main.css. */
.fhero{aspect-ratio:auto;max-height:640px}
.fhero img{width:100%;height:100%;max-height:640px;object-fit:cover;display:block}
.fhero-credit{font-family:var(--ui);font-size:12px;font-weight:600;color:var(--muted);margin:8px 0 0}
.fhero-credit a{color:inherit;text-decoration:underline}
.ffig{margin:1.9em 0;padding:0;max-width:none}
.ffig__frame{background:var(--paper-3);border:1px solid var(--line);overflow:hidden}
.ffig img{display:block;width:100%;height:auto}
.ffig figcaption{font-family:var(--ui);font-size:14.5px;font-weight:500;line-height:1.5;color:var(--ink-2);margin-top:10px;padding-left:12px;border-left:4px solid var(--mint);max-width:78ch}
.ffig__credit{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-top:3px}
.ffig__credit a{color:inherit;text-decoration:underline}
.ffig--screenshot .ffig__frame{border:1px solid var(--line-2);border-top:26px solid var(--ink);border-radius:8px 8px 0 0;position:relative;box-shadow:0 14px 34px rgba(11,27,46,.14)}
.ffig--screenshot .ffig__frame::before{content:"";position:absolute;top:-17px;left:12px;width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:14px 0 0 #b7c3d0,28px 0 0 #4a5c70}
.prose--feature .aside--box{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--ink)}
.prose--feature .aside--box h4{color:var(--accent-2)}
.prose--feature .aside--box ul{margin:0;padding-left:1.2em}
.prose--feature .aside--box li{font-size:17.5px;line-height:1.6}
.pull-quote cite{display:block;font-family:var(--ui);font-style:normal;font-weight:700;font-size:13px;color:var(--muted);margin-top:10px}
.fnote{background:var(--paper-2);border-left-color:var(--line-2)}
.fnote a{text-decoration:underline}
.fcards{display:grid;grid-template-columns:1fr;gap:clamp(16px,2.2vw,26px)}
@media(min-width:720px){.fcards{grid-template-columns:repeat(3,1fr)}.fcards--hub{grid-template-columns:repeat(2,1fr)}.fcards--hub .fcard--lead{grid-column:1/-1}}
.fcard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-top:5px solid var(--accent);transition:border-color .2s var(--ease),transform .2s var(--ease)}
.fcard:hover{border-color:var(--ink);transform:translateY(-2px)}
.fcard--rates{border-top-color:var(--c-rates)}.fcard--occupancy{border-top-color:var(--c-occupancy)}.fcard--demand{border-top-color:var(--c-demand)}
.fcard--fees{border-top-color:var(--c-fees)}.fcard--supply{border-top-color:var(--c-supply)}.fcard--returns{border-top-color:var(--c-returns)}.fcard--rules{border-top-color:var(--c-rules)}
.fcard__media{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--paper-3)}
.fcard--lead .fcard__media{aspect-ratio:21/9}
.fcard__media img{width:100%;height:100%;object-fit:cover}
.fcard__credit{font-family:var(--ui);font-size:11px;line-height:1.35;color:var(--muted);padding:7px 18px 0}
.fcard__k{font-family:var(--ui);font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:16px 18px 0}
.fcard__t{font-family:var(--display);font-weight:800;font-size:clamp(20px,1.9vw,24px);line-height:1.15;letter-spacing:-.015em;color:var(--ink);padding:8px 18px 0}
.fcard--lead .fcard__t{font-size:clamp(26px,3vw,38px);max-width:28ch}
.fcard__d{font-family:var(--body);font-size:16px;line-height:1.5;color:var(--ink-2);padding:10px 18px 0;max-width:80ch}
.fcard__by{font-family:var(--ui);font-size:12.5px;font-weight:600;color:var(--muted);padding:12px 18px 18px;margin-top:auto}
.fband{margin-top:clamp(30px,4vw,54px)}
.fband__more{display:inline-block;margin-top:16px;font-family:var(--ui);font-weight:800;font-size:14px;color:var(--accent-2)}

/* box headings are h3.aside__h (no skipped heading level) */
.prose--feature .aside h3.aside__h{font-family:var(--ui);font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;color:var(--ink)}
.prose--feature .aside--caveat h3.aside__h{color:var(--c-rules)}
.prose--feature .aside--read h3.aside__h,.prose--feature .aside--box h3.aside__h{color:var(--accent-2)}
/* long row labels wrap instead of running into the next column */
.prose--feature .dtable tbody th{white-space:normal;min-width:9.5em;max-width:17em;overflow-wrap:anywhere}
.prose--feature .dtable td{overflow-wrap:break-word}
