/* resort.html, the single resort template (the Phase 2 pilot in AUDIT.md). Loaded only by
   that template, after the site's own sheets, so it can tighten them for this page without
   changing any other page. The site's colours (only var() tokens here) and fonts are kept;
   what changes is spacing, size and order on the page. */

/* The heading block: one-line trail on a phone, a heading sized for a long name. */
.resort-page .crumb{margin:0 0 .4rem}
.resort-page .crumb ol{flex-wrap:nowrap;min-width:0}
.resort-page .crumb li{white-space:nowrap}
.resort-page .crumb li[aria-current]{overflow:hidden;text-overflow:ellipsis;min-width:0}
.resort-page .resort-heading{margin-bottom:.4rem}
.resort-page .resort-heading .eyebrow{margin:0 0 .3rem}
.resort-page .resort-heading h1{font-size:clamp(1.55rem,3.2vw,2.5rem);line-height:1.15;margin:.2rem 0 .5rem}
.resort-page .sources-line{font-size:.88rem;line-height:1.5;color:var(--muted);margin:0 0 .6rem;overflow-wrap:anywhere}

.resort-page .price-check-shortcut{margin:0 0 .8rem}
.resort-page .save-resort-panel{margin-top:1.2rem;padding-top:.9rem}
.resort-page .save-resort-panel p{font-size:.82rem}
.resort-page .save-resort-panel p:empty{display:none}

/* At a glance as compact rows: amount, product and badge on one line, the rest small. */
.resort-page .glance{padding:.8rem .9rem;margin:.3rem 0 1.2rem}
.resort-page .glance-lede{margin:0 0 .45rem}
.resort-page .glance-figures{gap:0;border-top:1px solid var(--line)}
.resort-page .glance-figure{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:.5rem 0;gap:.15rem .6rem}
.resort-page .glance-amount{font-size:1.25rem}
.resort-page .glance-meta,.resort-page .glance-terms,.resort-page .glance-dates,.resort-page .glance-source{font-size:.8rem;line-height:1.4}
.resort-page .glance-distinguishers{display:block;font-size:.8rem;line-height:1.4}
.resort-page .glance-distinguishers li{display:inline;border:0;padding:0;font-size:inherit}
.resort-page .glance-distinguishers li+li{border-left:1px solid var(--line);margin-left:.35rem;padding-left:.4rem}
.resort-page .glance-more{margin:.5rem 0 0}

/* The list of tables, the filter and the glossary: short, out of the way. */
.resort-page .status-key{font-size:.82rem;line-height:1.7}
.resort-page .table-index{margin:.6rem 0 .8rem;padding:.6rem .8rem;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.resort-page .table-index-heading{margin:0 0 .3rem;font-weight:650;font-size:.9rem}
.resort-page .table-index ol{margin:0;padding-left:1.2rem;font-size:.87rem;line-height:1.5}
.resort-page .table-index li{margin:.2rem 0}
/* inline-block, not inline-flex: a flex link cannot wrap its words, and a long list of
   Japanese ticket names then pushed a 240px phone sideways. */
.resort-page .table-index a{display:inline-block;max-width:100%;min-height:44px;padding:.6rem 0;box-sizing:border-box;overflow-wrap:anywhere}
.resort-page .glossary{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.4rem .8rem;margin:.7rem 0}
.resort-page .glossary>summary{min-height:44px;padding:.65rem 0;font-weight:600;color:var(--link);cursor:pointer}
.resort-page .glossary dl{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;margin:.3rem 0 .5rem;font-size:.87rem}
.resort-page .glossary dl>div{display:flex;gap:.4rem}
.resort-page .glossary dt{font-weight:650;white-space:nowrap;flex-shrink:0}
.resort-page .glossary dd{margin:0;color:var(--muted)}
.resort-page .glossary-note{font-size:.8rem;color:var(--muted);margin:.2rem 0 .4rem}
.resort-page .status-group-heading{margin:1.4rem 0 0;font-weight:700;font-size:1rem}

/* One price table: what it holds under its season, then its source and terms, small. */
.resort-page .card{margin:.6rem 0;padding:1rem 0 .4rem}
.resort-page .card h3{gap:.35rem .5rem;margin-bottom:.35rem;font-size:1.05rem}
.resort-page .card-holds{flex-basis:100%;font-size:.88rem;font-weight:400;color:var(--muted);line-height:1.45}
.resort-page .card-source,.resort-page .card-meta,.resort-page .card-shared{font-size:.875rem;line-height:1.5;margin:.15rem 0}
.resort-page .card-applies{margin:.5rem 0;padding:.45rem .7rem;border-left:3px solid var(--line);background:var(--panel)}
.resort-page .card-applies-label{margin:0 0 .2rem;font-size:.8rem;font-weight:650;color:var(--muted)}
.resort-page .card-applies .note,.resort-page .card-applies-eligibility{margin:.15rem 0;font-size:.85rem;line-height:1.5}
.resort-page .card-applies .ticket-eligibility-label{margin:0;font-size:.85rem}

/* Compact rows (D1): amount, product and badge on the first line; season, read date, the
   price's own conditions and dates in small type below; its notes one tap away. */
.resort-page .card .lines{margin:.4rem 0}
.resort-page .card .price{display:block;padding:.55rem .1rem}
.resort-page .price-head,.resort-page .card .price>.price-head{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:.2rem .55rem}
.resort-page .price-head>.ticket-eligibility-label{margin:0;font-size:.85rem;flex-basis:auto;order:4}
.resort-page .card .figure{font-size:1.2rem;letter-spacing:-.01em}
.resort-page .card .product{font-weight:600}
.resort-page .card .badge{font-size:.72rem;padding:.05rem .4rem}
.resort-page .card .price-meta{font-size:.875rem;line-height:1.45;margin:.1rem 0}
.resort-page .card .distinguishers{display:block;margin:.15rem 0;font-size:.85rem;line-height:1.45}
.resort-page .card .distinguishers li{display:inline;border:0;background:none;padding:0;font-size:inherit}
.resort-page .card .distinguishers li+li{border-left:1px solid var(--line);margin-left:.35rem;padding-left:.4rem}
.resort-page .card .dates,.resort-page .card .tax,.resort-page .card .src{font-size:.875rem;line-height:1.45;margin:.1rem 0}
.resort-page .card .price-original-notes>summary{min-height:44px;padding:.6rem 0;font-size:.85rem}
.resort-page .card .price-notes .note{font-size:.85rem;margin:.2rem 0 .4rem}
.resort-page .card .archive-eligibility{font-size:.9rem;margin:.3rem 0}
.resort-page .card .ticket-eligibility-conditions{font-size:.9rem;margin:.3rem 0 .5rem}
.resort-page .card .status-as-of{font-size:.8rem}
.resort-page .card .recording-notes>summary{font-size:.85rem}

/* English and Japanese tables of one season side by side where there is room (D6). */
.resort-page .language-columns{display:grid;gap:0 2rem}
.resort-page .language-column{min-width:0}
@media(min-width:56rem){
  .resort-page .language-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .resort-page .language-columns .card{margin-top:0}
}

/* Older prices: closed groups, each with a line saying what is inside. */
.resort-page .previous-card{background:transparent;border:1px dashed var(--line);border-radius:8px;padding:.4rem .8rem;margin:.8rem 0}
.resort-page .previous-card>summary,.resort-page .historical-card>summary{min-height:44px;padding:.65rem 0;font-weight:650;cursor:pointer}
.resort-page .older-prices>.note{margin-top:0}

/* A resort with no recorded price: the reasons first, then the official site. */
.resort-page .no-price{margin:.4rem 0 1rem}
.resort-page .no-price h2{margin-top:.6rem}
.resort-page .official-site-action{margin:.8rem 0 0}
.resort-page.is-unpriced>.save-resort-panel{margin-top:1rem}

@media(max-width:34rem){
  .resort-page .resort-heading h1{font-size:1.4rem}
  .resort-page .crumb{margin-bottom:.2rem}
  .resort-page .sources-line{font-size:.8rem;line-height:1.45}
  .resort-page .glance-lede{font-size:.85rem;line-height:1.45}
  .resort-page .glance{padding:.6rem .7rem}
  .resort-page .card h3{font-size:1rem}
}
.resort-page .nearby li{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .5rem}
.resort-page .table-anchor{display:block;height:0}
