/* P1217 content density + information architecture contract.
 * This layer owns information priority, readable measure and progressive
 * disclosure. It deliberately does not own page geometry, typography scale,
 * data logic or interaction state. */

body.sw-page-shell {
  --sw-content-local-measure: var(--sw-content-measure);
}

body.sw-page-shell :where([data-sw-content-role="summary"], .sw-section-heading__note) {
  max-inline-size: var(--sw-content-local-measure);
}
body.sw-page-shell :where([data-sw-content-role="support"], [data-sw-density-priority="secondary"]) {
  opacity: var(--sw-content-support-opacity);
}
body.sw-page-shell :where([data-sw-content-role="meta"], [data-sw-density-priority="tertiary"]) {
  opacity: var(--sw-content-meta-opacity);
}
body.sw-page-shell [data-sw-content-density="compact"] {
  --sw-content-local-measure: var(--sw-content-measure-compact);
}
body.sw-page-shell [data-sw-content-density="relaxed"] {
  --sw-content-local-measure: var(--sw-content-measure-wide);
}

/* Canonical compact disclosure: one-line reason first, explanatory detail on
 * demand. Used only where the same card already shows the primary evidence. */
body.sw-page-shell .sw-content-disclosure {
  margin: var(--sw-content-detail-gap) 0 0;
  border: 0;
  background: transparent;
}
body.sw-page-shell .sw-content-disclosure > summary {
  display: inline-flex;
  align-items: center;
  gap: .34rem;
  margin: 0;
  padding: .10rem 0;
  color: inherit;
  cursor: pointer;
  list-style: none;
}
body.sw-page-shell .sw-content-disclosure > summary::-webkit-details-marker { display:none; }
body.sw-page-shell .sw-content-disclosure > summary::after {
  content: "+";
  opacity: .62;
  transform-origin: 50% 50%;
}
body.sw-page-shell .sw-content-disclosure[open] > summary::after { content: "−"; }
body.sw-page-shell .sw-content-disclosure > :not(summary) {
  margin-block: var(--sw-content-summary-gap) 0;
  max-inline-size: var(--sw-content-measure-compact);
}

/* Section headers should present one reading path: eyebrow -> title -> one
 * concise support sentence. Side copy cannot compete with the title. */
body.sw-page-shell :where(.sw-section-heading, .sw-family-section-head) :where(.sw-section-heading__note, .sw-section-heading__side > p) {
  max-inline-size: var(--sw-content-measure-compact);
  font-weight: 400;
}

/* Homepage: keep the intelligence rich while reducing repeated chrome. */
body.sw-page-shell[data-sw-page="home"] .sw-home-section-heading__actions .sw-home-meta-chip + .sw-home-meta-chip { margin-inline-start: .22rem; }
body.sw-page-shell[data-sw-page="home"] .sw-home-season-focus__note { display:none; }
body.sw-page-shell[data-sw-page="home"] .sw-home-live-panel__context > summary {
  font-size: var(--sw-type-support);
  font-weight: 500;
}
body.sw-page-shell[data-sw-page="home"] .sw-home-live-panel__context > p {
  font-size: var(--sw-type-support);
  font-weight: 400;
  line-height: 1.42;
}
body.sw-page-shell[data-sw-page="home"] :where(.sw-home-review__resort, .sw-home-weather-story__copy, .sw-home-story__copy) > [data-sw-density-priority="tertiary"] { display:none; }
body.sw-page-shell[data-sw-page="home"] .sw-home-frontpage-block__head > div { max-inline-size: var(--sw-content-measure); }
body.sw-page-shell[data-sw-page="home"] .sw-home-frontpage-block__head h3 { text-wrap: balance; }

/* Resort intelligence: avoid a title + resort-name + caption echo. */
body.sw-page-shell .sw-resort-story[data-sw-content-density="compact"] > p {
  max-inline-size: var(--sw-content-measure);
}
body.sw-page-shell .sw-resort-network-bridge[data-sw-content-density="compact"] > header p {
  max-inline-size: var(--sw-content-measure-compact);
}
body.sw-page-shell .sw-resort-next[data-sw-content-density="compact"] .sw-resort-next__copy {
  max-inline-size: var(--sw-content-measure-compact);
}

/* Personality: preserve all classification evidence, but move method detail
 * behind an explicit interpretation disclosure and reduce repeated chip noise. */
body.sw-page-shell[data-sw-page="resort-personality"] .sw-personality-method.sw-content-disclosure {
  display:block;
  padding: .82rem 1rem;
}
body.sw-page-shell[data-sw-page="resort-personality"] .sw-personality-method.sw-content-disclosure > summary {
  display:flex;
  justify-content:space-between;
  inline-size:100%;
}
body.sw-page-shell[data-sw-page="resort-personality"] .sw-personality-method.sw-content-disclosure > .sw-personality-method__body {
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:1rem;
  max-inline-size:none;
}
body.sw-page-shell[data-sw-page="resort-personality"] .sw-personality-search__hint {
  margin-top:.36rem;
  opacity:.72;
}
body.sw-page-shell[data-sw-page="resort-personality"] .sw-personality-resort__description {
  max-inline-size: var(--sw-content-measure-compact);
}

@media (max-width: 760px) {
  body.sw-page-shell { --sw-content-local-measure: 100%; }
  body.sw-page-shell[data-sw-page="resort-personality"] .sw-personality-method.sw-content-disclosure > .sw-personality-method__body { grid-template-columns:1fr; }
}
