/* A quiet shopping canvas beneath MacVault's campaign stories. */
body.ns-desktop.ns-catalogue :is(.ns-collection-range,.ic-range) .ns-model-benefit{font-size:14px;line-height:1.8;color:#475963;min-height:3.6em;margin:13px 28px 14px}
body.ns-desktop.ns-catalogue .ic-range .ic-model-copy .ns-model-benefit{margin-inline:0}
body.ns-desktop.ns-catalogue :is(.ns-collection-range,.ic-range) :is(.ns-model-options,.ic-model-options){min-height:0!important;margin-top:0!important;font-size:12px!important}
@media(max-width:600px){body.ns-desktop.ns-catalogue :is(.ns-collection-range,.ic-range) .ns-model-benefit{margin-inline:18px;font-size:13px;line-height:1.75}body.ns-desktop.ns-catalogue:has(#galaxy-models) .ns-model-benefit{margin-inline:12px;font-size:12px;line-height:1.7}}
body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range) {
  --ns-grid-canvas: #f5f5f7;
  --ns-grid-card: #fff;
  --ns-grid-ink: #17232b;
  --ns-grid-muted: #5b6872;
  --ns-grid-rule: #c9d1d7;
  --ns-grid-control: #788995;
  --ns-grid-accent: #172a36;
  --ns-grid-focus: #246587;
  --collection-canvas: var(--ns-grid-canvas);
  --collection-card: var(--ns-grid-card);
  --collection-ink: var(--ns-grid-ink);
  --collection-muted: var(--ns-grid-muted);
  --collection-rule: var(--ns-grid-rule);
  --collection-control: var(--ns-grid-card);
  --collection-control-border: var(--ns-grid-control);
  --collection-selected: var(--ns-grid-accent);
  --collection-selected-ink: #fff;
  --ic-ink: var(--ns-grid-ink);
  --ic-muted: var(--ns-grid-muted);
  --ic-carbon: var(--ns-grid-canvas);
  --ic-line: var(--ns-grid-rule);
  background: var(--ns-grid-canvas);
  color: var(--ns-grid-ink);
  color-scheme: light;
  padding-top: 88px;
  padding-bottom: 80px;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range) > * {
  max-width: 1760px;
  margin-inline: auto;
}

body.ns-desktop.ns-catalogue :is(.ns-range-heading, .ic-range-heading) {
  margin-bottom: 36px;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range) :is(h2, h3) {
  color: var(--ns-grid-ink);
}

body.ns-desktop.ns-catalogue :is(.ns-range-heading, .ic-range-heading) h2 {
  font-size: clamp(38px, 3.3vw, 56px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.055em;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-kicker, .ic-eyebrow, .ns-control-label, .ns-range-heading > p,
      .ns-range-comparison > p, .ns-result-count, .ic-results,
      .ic-section-heading > p, .ic-tools label > span) {
  color: var(--ns-grid-muted);
}

body.ns-desktop.ns-catalogue :is(.ns-model-list, .ic-grid) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px 24px;
  border: 0;
  margin-top: 24px;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-model-row, .ic-model) {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  min-width: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e2e6e9;
  border-radius: 22px;
  background: var(--ns-grid-card);
  color: var(--ns-grid-ink);
  transition: none;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-model-row, .ic-model):hover {
  background: var(--ns-grid-card);
}

/* The framing module owns the image geometry; these are its stable viewports. */
body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-model-photo, .ic-model-image) {
  position: relative;
  display: block;
  flex: none;
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 1.16;
  margin: 0;
  padding: 0;
  overflow: hidden;
  isolation: isolate;
  border: 0;
  border-radius: 0;
  background: #f5f5f7;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-model-photo, .ic-model-image)[data-surface=light] {
  background: #f5f5f7;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-model-photo, .ic-model-image)[data-surface=transparent] {
  background: var(--ns-grid-card);
}

body.ns-desktop.ns-catalogue .ic-rail-picture:not(.ic-rail-picture--all) {
  position: relative;
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  isolation: isolate;
}

body.ns-desktop.ns-catalogue
  :is(.ns-model-photo, .ic-model-image, .ic-rail-picture:not(.ic-rail-picture--all)) img {
  max-width: none;
  max-height: none;
  padding: 0;
  border-radius: 0;
  object-fit: contain;
  transform: none;
  transition: none;
}

body.ns-desktop.ns-catalogue .ns-collection-range .ns-model-row {
  padding-bottom: 28px;
}

body.ns-desktop.ns-catalogue .ns-collection-range .ns-model-photo {
  margin-bottom: 28px;
}

body.ns-desktop.ns-catalogue .ns-collection-range
  :is(.ns-model-name, .ns-model-options, .ns-model-price, .ns-model-open) {
  margin-inline: 28px;
}

body.ns-desktop.ns-catalogue .ic-range .ic-model-copy {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 28px;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-model-name h3, .ic-model h3) {
  min-height: 2.5em;
  margin: 0;
  color: var(--ns-grid-ink);
  font-size: clamp(24px, 1.75vw, 29px);
  font-weight: 550;
  line-height: 1.25;
  letter-spacing: -.045em;
  overflow-wrap: anywhere;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-model-family, .ic-model-family) {
  display: block;
  color: var(--ns-grid-muted);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .11em;
  text-transform: uppercase;
  margin-bottom: 11px;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-model-options, .ic-model-options) {
  min-height: 3.4em;
  max-width: none;
  margin-top: 13px;
  margin-bottom: 23px;
  color: var(--ns-grid-muted);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.7;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-model-price, .ic-model .ic-price) {
  margin-top: auto;
  margin-bottom: 20px;
  color: var(--ns-grid-ink);
  font-size: 19px;
  font-weight: 550;
  line-height: 1.5;
  letter-spacing: -.025em;
}

body.ns-desktop.ns-catalogue .ns-collection-range .ns-model-price > span:first-child {
  color: var(--ns-grid-ink);
  font-size: 19px;
  font-weight: 550;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-model-price > span:last-child, .ic-price > span + span) {
  color: var(--ns-grid-muted);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-cat-button, .ic-button, .ns-model-open) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  width: fit-content;
  min-height: 46px;
  padding: 12px 22px;
  border: 1px solid var(--ns-grid-accent);
  border-radius: 28px;
  background: var(--ns-grid-accent);
  color: #fff !important;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0;
  cursor: pointer;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-cat-button, .ic-button, .ns-model-open):hover {
  border-color: #2e4858;
  background: #2e4858;
  color: #fff !important;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ic-link, .ns-cat-textlink, .ns-range-compare) {
  color: var(--ns-grid-ink);
  border-color: var(--ns-grid-control);
}

body.ns-desktop.ns-catalogue .ic-range .ic-model-links {
  margin-top: 0;
  gap: 20px;
}

body.ns-desktop.ns-catalogue .ns-collection-range .ns-model-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 22px;
  margin-inline: 28px;
}

body.ns-desktop.ns-catalogue .ns-collection-range .ns-model-actions .ns-model-open {
  margin: 0;
}

body.ns-desktop.ns-catalogue .ns-collection-range .ns-model-actions .ns-cat-textlink {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: var(--ns-grid-ink);
  font-size: 13px;
  line-height: 1.5;
}

body.ns-desktop.ns-catalogue .ic-range .ic-model-compare {
  color: var(--ns-grid-muted) !important;
  font-size: 12px;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-family-filter, .ic-filters) button {
  min-height: 44px;
  padding: 10px 17px;
  border: 1px solid var(--ns-grid-control);
  border-radius: 26px;
  background: transparent;
  color: var(--ns-grid-muted);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-family-filter, .ic-filters) button:hover {
  border-color: var(--ns-grid-accent);
  color: var(--ns-grid-ink);
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-family-filter, .ic-filters) button[aria-pressed=true],
body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-family-filter, .ic-filters) button[aria-pressed=true]:hover {
  border-color: var(--ns-grid-accent);
  background: var(--ns-grid-accent);
  color: #fff;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-range-tools, .ic-tools) {
  border-color: var(--ns-grid-rule);
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-range-tools, .ic-tools) :is(input, select) {
  min-height: 48px;
  border: 1px solid var(--ns-grid-control);
  border-radius: 9px;
  background: var(--ns-grid-card);
  color: var(--ns-grid-ink);
  color-scheme: light;
  font-size: 13px;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-range-tools, .ic-tools) input::placeholder {
  color: var(--ns-grid-muted);
  opacity: 1;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-guide-note, .ic-range-note) {
  border-color: var(--ns-grid-rule);
  color: var(--ns-grid-muted);
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-guide-note p, .ic-range-note p, .ns-empty p, .ic-empty p) {
  color: var(--ns-grid-muted);
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-guide-note strong, .ns-guide-mark, .ns-guide-note > a) {
  color: var(--ns-grid-ink);
  border-color: var(--ns-grid-control);
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-empty, .ic-empty) {
  border-color: var(--ns-grid-rule);
  color: var(--ns-grid-ink);
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(a, button, input, select):focus-visible {
  outline: 3px solid var(--ns-grid-focus);
  outline-offset: 4px;
  box-shadow: none;
}

body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
  :is(.ns-model-photo, .ic-model-image):focus-visible {
  outline-offset: -5px;
}

@media (max-width: 1100px) {
  body.ns-desktop.ns-catalogue :is(.ns-model-list, .ic-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px 22px;
  }
}

@media (max-width: 760px) {
  body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range) {
    padding-top: 56px;
    padding-bottom: 52px;
  }

  body.ns-desktop.ns-catalogue :is(.ns-range-heading, .ic-range-heading) h2 {
    font-size: 36px;
  }

  body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
    :is(.ns-model-name, .ns-model-options, .ns-model-price, .ns-model-open) {
    margin-inline: 22px;
  }

  body.ns-desktop.ns-catalogue .ns-collection-range .ns-model-actions {
    margin-inline: 22px;
  }

  body.ns-desktop.ns-catalogue .ic-range .ic-model-copy {
    padding: 24px 22px;
  }

  body.ns-desktop.ns-catalogue :is(.ns-collection-range, .ic-range)
    :is(.ns-model-name h3, .ic-model h3) {
    font-size: 24px;
  }
}

@media (max-width: 600px) {
  body.ns-desktop.ns-catalogue :is(.ns-model-list, .ic-grid) {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
}

/* Curated model introductions before the complete range. */
.ns-category-pathways{padding:76px 6vw 82px;background:#fff;color:#17232b;color-scheme:light}
.ns-pathway-heading{max-width:1600px;margin:0 auto 36px}.ns-pathway-heading h2{font-size:clamp(34px,3.2vw,52px);font-weight:500;line-height:1.16;letter-spacing:-.05em;margin:0}
.ns-pathway-heading .ns-kicker,.ns-pathway-copy .ns-kicker{color:#596871}
.ns-pathway-grid{max-width:1600px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.ns-pathway-grid article{min-width:0}
.ns-pathway-photo{display:block;position:relative;height:330px;margin:0;overflow:hidden;background:#f6f5f8;border-radius:20px}.ns-pathway-photo img{width:100%;height:100%;object-fit:contain}
.ns-pathway-copy{padding:26px 2px 0}.ns-pathway-copy .ns-kicker{font-size:10px;margin:0 0 12px}.ns-pathway-copy h3{font-size:28px;line-height:1.2;letter-spacing:-.04em;font-weight:500;margin:0 0 16px;color:#17232b}.ns-pathway-copy>p:not(.ns-kicker){font-size:14px;line-height:1.8;color:#596871;max-width:400px;margin:0 0 17px}.ns-pathway-copy .ns-cat-textlink{font-size:12px;color:#17232b}
@media(max-width:1000px){.ns-pathway-grid{gap:20px}.ns-pathway-photo{height:260px}.ns-pathway-copy h3{font-size:24px}}
@media(max-width:720px){.ns-category-pathways{padding:50px 24px}.ns-pathway-grid{grid-template-columns:1fr;gap:36px}.ns-pathway-photo{height:300px}.ns-pathway-heading{margin-bottom:26px}.ns-pathway-copy{padding-top:22px}}

/* The Galaxy catalogue stays scannable on a phone without shrinking the product story above it. */
@media(min-width:360px) and (max-width:600px){
 body.ns-desktop.ns-catalogue #galaxy-models .ns-model-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
 body.ns-desktop.ns-catalogue #galaxy-models .ns-model-row{min-width:0;padding-bottom:18px;border-radius:18px}
 body.ns-desktop.ns-catalogue #galaxy-models .ns-model-photo{aspect-ratio:1.05;margin-bottom:18px}
 body.ns-desktop.ns-catalogue #galaxy-models :is(.ns-model-name,.ns-model-options,.ns-model-price,.ns-model-actions){margin-inline:12px}
 body.ns-desktop.ns-catalogue #galaxy-models .ns-model-name h3{font-size:21px;line-height:1.2;min-height:2.4em;overflow-wrap:normal}
 body.ns-desktop.ns-catalogue #galaxy-models .ns-model-family{font-size:9px;letter-spacing:.07em;margin-bottom:9px}
 body.ns-desktop.ns-catalogue #galaxy-models .ns-model-options{font-size:11px;line-height:1.6;min-height:3.2em;margin-top:10px;margin-bottom:15px}
 body.ns-desktop.ns-catalogue #galaxy-models .ns-model-price{margin-bottom:12px;line-height:1.5}
 body.ns-desktop.ns-catalogue #galaxy-models .ns-model-price>span:first-child{font-size:16px}
 body.ns-desktop.ns-catalogue #galaxy-models .ns-model-price>span:last-child{font-size:10px;line-height:1.5}
 body.ns-desktop.ns-catalogue #galaxy-models .ns-model-actions{gap:4px 10px;align-items:start}
 body.ns-desktop.ns-catalogue #galaxy-models .ns-model-actions .ns-model-open{width:100%;min-height:44px;padding:10px 14px;font-size:12px;gap:15px}
 body.ns-desktop.ns-catalogue #galaxy-models .ns-model-actions .ns-cat-textlink{min-height:40px;font-size:11px}
}

.ns-category-pathways .ns-pathway-photo{width:100%;max-width:100%;margin:0}
