:root {
  --ink: #17003d;
  --pink: #ff167e;
  --lavender: #f1ebfb;
  --paper: #fff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: #090909;
  background: #fff;
  font-family: Arial, Helvetica, sans-serif;
}

a { color: inherit; }
button, input { font: inherit; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: 8px;
  left: 8px;
  padding: 10px 14px;
  color: #fff;
  background: #111;
  transform: translateY(-150%);
}

.skip-link:focus { transform: translateY(0); }

.site-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  border: 0;
  background: var(--paper);
}

.topbar {
  min-height: 72px;
  display: grid;
  grid-template-columns: 100px minmax(450px, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 5px 20px 5px 12px;
  background: var(--lavender);
}

.brand {
  display: block;
  width: 62px;
  height: 62px;
}

.brand img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.strapline {
  margin: 0;
  color: var(--ink);
  font-size: clamp(20px, 1.55vw, 27px);
  font-weight: 700;
  letter-spacing: .01em;
}

.primary-navigation {
  display: flex;
  align-items: center;
  gap: clamp(22px, 1.55vw, 30px);
  white-space: nowrap;
}

.primary-navigation a {
  padding: 9px 0 5px;
  color: var(--ink);
  font-size: clamp(16px, 1.05vw, 20px);
  font-weight: 600;
  text-decoration: none;
}

.primary-navigation a:hover,
.primary-navigation a:focus-visible,
.primary-navigation a.active {
  color: var(--pink);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.menu-button { display: none; }

.activity-ribbon {
  height: 104px;
  width: 100%;
  margin: 14px 0 0;
  background-image: url("assets/gym-ribbon.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1080px) minmax(310px, 392px);
  justify-content: center;
  gap: clamp(42px, 5.6vw, 102px);
  margin: 15px auto 0;
  padding: 0 30px;
}

.hero {
  position: relative;
  aspect-ratio: 1.61 / 1;
  min-height: 0;
  overflow: hidden;
  background: #ddd;
}

.slides,
.slide {
  position: absolute;
  inset: 0;
}

.slide {
  opacity: 0;
  visibility: hidden;
  transition: opacity 500ms ease;
}

.slide.is-active {
  opacity: 1;
  visibility: visible;
}

.slide > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.slide-heading,
.slide-caption,
.activity-card span {
  position: absolute;
  z-index: 2;
  margin: 0;
  color: #fff;
  background: rgba(0, 0, 0, .56);
}

.slide-heading {
  top: 8px;
  left: 50%;
  padding: 16px 26px;
  font-size: clamp(18px, 1.25vw, 23px);
  transform: translateX(-50%);
  white-space: nowrap;
}

.slide-caption {
  right: 28px;
  bottom: 0;
  left: 28px;
  padding: 16px 18px 20px;
  font-size: clamp(16px, 1.15vw, 22px);
  text-align: center;
}

.carousel-control {
  position: absolute;
  z-index: 4;
  top: 50%;
  width: 68px;
  height: 116px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  transform: translateY(-50%);
}

.carousel-control.previous { left: 28px; }
.carousel-control.next { right: 24px; }

.carousel-control span {
  display: block;
  width: 62px;
  height: 116px;
  background: #171213;
  clip-path: polygon(55% 0, 100% 0, 45% 50%, 100% 100%, 55% 100%, 0 50%);
  filter: drop-shadow(0 0 1px #fff);
}

.carousel-control.next span { transform: scaleX(-1); }
.carousel-control:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

.carousel-dots {
  position: absolute;
  z-index: 5;
  bottom: 79px;
  left: 50%;
  display: flex;
  gap: 22px;
  transform: translateX(-50%);
}

.carousel-dots button {
  width: 23px;
  height: 23px;
  padding: 0;
  border: 1px solid #fff;
  border-radius: 50%;
  background: #171213;
  cursor: pointer;
}

.carousel-dots button.is-active { background: #fff; }

.activity-cards {
  display: grid;
  align-content: start;
  gap: 17px;
}

.activity-card {
  position: relative;
  display: block;
  aspect-ratio: 1.94 / 1;
  overflow: hidden;
  text-decoration: none;
}

.activity-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 250ms ease;
}

.activity-card:hover img,
.activity-card:focus-visible img { transform: scale(1.025); }

.activity-card span {
  right: 0;
  bottom: 0;
  padding: 9px 12px;
  font-size: clamp(14px, .95vw, 18px);
}

.footer {
  display: grid;
  grid-template-columns: 330px minmax(460px, 1fr) 365px;
  align-items: end;
  gap: 24px;
  max-width: 1510px;
  min-height: 116px;
  margin: 15px auto 10px;
  padding: 0 15px 8px;
}

.social-links {
  display: flex;
  justify-content: center;
  gap: 25px;
}

.social-links a {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 50%;
  color: #fff;
  text-decoration: none;
}

.social-links svg { width: 40px; height: 40px; }
.social-links .instagram { background: radial-gradient(circle at 30% 105%, #ffd600 0 20%, #ff7a00 35%, #ff0169 55%, #d300c5 73%, #7638fa 100%); }
.instagram svg { fill: none; stroke: #fff; stroke-width: 2; }
.instagram svg .fill { fill: #fff; stroke: none; }
.social-links .facebook { background: #1687ed; font: bold 54px/1 Arial, sans-serif; padding-top: 12px; }
.social-links .twitter { background: #16b8ed; }
.twitter svg { width: 42px; height: 42px; fill: #fff; }

.footer-copy {
  font-size: clamp(16px, 1.12vw, 21px);
  line-height: 1.25;
  text-align: center;
}

.footer-copy p { margin: 0; }
.footer-copy a { text-decoration: none; }

.site-search {
  height: 74px;
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 9px 17px;
  border: 4px solid #999;
}

.site-search svg {
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  fill: none;
  stroke: #999;
  stroke-width: 2;
}

.site-search input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  color: #555;
  font-size: 44px;
}

.site-search input::placeholder { color: #999; opacity: 1; }

@media (max-width: 1380px) {
  .topbar { grid-template-columns: 76px minmax(300px, 1fr) auto; gap: 12px; }
  .primary-navigation { gap: 15px; }
  .primary-navigation a { font-size: 15px; }
  .content-grid { gap: 38px; }
}

@media (max-width: 1050px) {
  .topbar {
    grid-template-columns: 68px 68px 1fr;
    min-height: 88px;
    padding: 6px 18px;
  }

  .menu-button {
    display: grid;
    align-content: center;
    width: 56px;
    height: 56px;
    padding: 7px;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .menu-button > span:not(.sr-only) {
    display: block;
    height: 6px;
    margin: 4px 0;
    background: var(--ink);
  }

  .brand { width: 64px; height: 64px; }

  .strapline {
    max-width: 260px;
    justify-self: center;
    font-size: 18px;
    line-height: 1.16;
    text-align: center;
  }

  .primary-navigation {
    position: absolute;
    z-index: 20;
    top: 88px;
    right: 10px;
    left: 10px;
    display: none;
    padding: 10px 18px 16px;
    border: 2px solid var(--ink);
    background: #fff;
    box-shadow: 0 12px 25px rgba(0, 0, 0, .2);
  }

  .primary-navigation.is-open { display: grid; }
  .primary-navigation a { padding: 11px 4px; font-size: 17px; }

  .content-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 17px;
    padding: 0;
  }

  .activity-cards { gap: 17px; }
  .activity-card { aspect-ratio: 1.94 / 1; }

  .footer {
    grid-template-columns: 1fr;
    gap: 25px;
    margin-top: 22px;
    padding: 0 70px 26px;
  }

  .social-links { grid-row: 1; }
  .site-search { grid-row: 2; }
  .footer-copy { grid-row: 3; }
}

@media (max-width: 600px) {
  .site-shell {
    width: 100%;
    margin: 0;
    border: 0;
  }

  .topbar {
    grid-template-columns: 67px 72px 1fr;
    gap: 7px;
    min-height: 88px;
    padding: 5px 12px;
  }

  .menu-button { width: 54px; }
  .brand { width: 68px; height: 68px; }
  .strapline { max-width: 215px; font-size: clamp(14px, 4vw, 18px); }

  .activity-ribbon {
    height: 94px;
    margin: 14px 0 0;
    background-size: cover;
  }

  .content-grid { margin-top: 20px; }
  .hero { aspect-ratio: 1.55 / 1; }

  .slide-heading {
    top: 6px;
    padding: 6px 10px;
    font-size: clamp(9px, 2.4vw, 13px);
  }

  .slide-caption {
    right: 14px;
    left: 14px;
    padding: 8px 7px;
    font-size: clamp(8px, 2vw, 11px);
  }

  .carousel-control { width: 36px; height: 70px; }
  .carousel-control.previous { left: 10px; }
  .carousel-control.next { right: 7px; }
  .carousel-control span { width: 34px; height: 70px; }
  .carousel-dots { bottom: 43px; gap: 12px; }
  .carousel-dots button { width: 14px; height: 14px; }

  .activity-card span {
    padding: 10px 12px;
    font-size: clamp(15px, 4vw, 20px);
  }

  .footer { padding: 0 58px 28px; }
  .social-links { gap: 25px; }
  .social-links a { width: 62px; height: 62px; }
  .site-search { height: 64px; padding: 8px 12px; }
  .site-search svg { width: 42px; height: 42px; }
  .site-search input { font-size: 35px; }
  .footer-copy { font-size: clamp(17px, 4.7vw, 22px); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Interior pages follow the supplied desktop and mobile page diagrams. */
.inner-page .site-shell { max-width: none; }

.interior-main {
  max-width: 1200px;
  margin: 0 auto;
  padding: 1px 30px 0;
}

.interior-main > h1 {
  margin: 26px 0 36px;
  font-size: clamp(36px, 3vw, 50px);
  font-weight: 400;
  line-height: 1.1;
  text-align: center;
}

.alternating-content {
  display: grid;
  gap: 64px;
}

.content-row {
  display: grid;
  grid-template-columns: minmax(360px, 500px) minmax(360px, 500px);
  align-items: center;
  justify-content: space-between;
  gap: 100px;
}

.content-row.reverse .placeholder-frame { grid-column: 2; }
.content-row.reverse .information-copy { grid-row: 1; grid-column: 1; }

.placeholder-frame {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 1.78 / 1;
  overflow: hidden;
  border: 1.5px solid #111;
  color: #222;
  background: #fafafa;
  text-decoration: none;
}

.placeholder-frame::before,
.placeholder-frame::after {
  content: "";
  position: absolute;
  top: 50%;
  left: -12%;
  width: 124%;
  height: 1.5px;
  background: #111;
  transform: rotate(29deg);
  transform-origin: center;
}

.placeholder-frame::after { transform: rotate(-29deg); }

.placeholder-frame span {
  position: relative;
  z-index: 1;
  font-size: clamp(40px, 4vw, 70px);
  line-height: 1.16;
  text-align: center;
}

.information-copy {
  font-size: clamp(46px, 4.6vw, 78px);
  font-weight: 300;
  line-height: 1.25;
  text-align: center;
}

.compact-main { max-width: 1180px; }

.download-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 46px;
}

.download-option span { font-size: clamp(48px, 4vw, 72px); }

.invest-document {
  width: min(100%, 1010px);
  aspect-ratio: 3.6 / 1;
  margin: 0 auto;
}

.invest-document span { font-size: clamp(42px, 4.25vw, 70px); }

.contact-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(280px, 440px));
  justify-content: space-between;
  column-gap: clamp(50px, 7vw, 145px);
  row-gap: 27px;
  max-width: 1610px;
  margin: 58px auto 0;
  padding: 0 54px;
}

.contact-method h1,
.contact-method h2 {
  margin: 0 0 12px;
  font-size: 23px;
  font-weight: 400;
  line-height: 1;
  text-align: center;
}

.contact-panel {
  width: 100%;
  height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #2f005e;
  color: inherit;
  background: #fff;
  text-decoration: none;
}

button.contact-panel { cursor: pointer; }

.chatbot-panel svg {
  width: min(72%, 260px);
  height: auto;
  fill: #fff;
  stroke: #888;
  stroke-width: 8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.message-panel {
  display: grid;
  grid-template-rows: 35px 35px 35px 1fr;
  align-content: stretch;
  gap: 14px;
  padding: 20px 23px 21px;
}

.message-panel input,
.message-panel textarea {
  width: 100%;
  min-width: 0;
  padding: 4px 13px;
  border: 1.5px solid #2f005e;
  border-radius: 0;
  color: #111;
  background: #fff;
  font-size: 22px;
  resize: none;
}

.icon-panel > span { display: grid; place-items: center; }

.email-icon {
  width: 218px;
  height: 218px;
  border-radius: 50px;
  background: linear-gradient(155deg, #79a8ff, #3aeaf0);
}

.email-icon svg {
  width: 166px;
  fill: #fff;
  stroke: #64c8f2;
  stroke-width: 6;
}

.messenger-icon {
  width: 318px;
  height: 221px;
  align-content: center;
  color: #fff;
  background: linear-gradient(#5cb7f4, #65b8e9);
}

.messenger-icon svg { width: 73px; fill: #fff; }
.messenger-icon .bolt { fill: #5caef0; }
.messenger-icon strong { margin-top: -12px; font-size: 28px; font-weight: 300; }

.whatsapp-icon {
  width: 220px;
  height: 220px;
  border-radius: 45px;
  background: linear-gradient(145deg, #2cf2a0, #4be957);
}

.whatsapp-icon svg { width: 165px; fill: none; stroke: #fff; stroke-width: 10; }
.whatsapp-icon .phone { fill: #fff; stroke: none; }

.faq-icon {
  position: relative;
  width: 320px;
  height: 210px;
}

.faq-icon::before,
.faq-icon::after {
  content: "";
  position: absolute;
  width: 180px;
  height: 135px;
  border-radius: 50%;
}

.faq-icon::before { top: 18px; left: 14px; background: #f790bc; }
.faq-icon::after { right: 10px; bottom: 18px; background: #a184b8; }
.faq-icon i,
.faq-icon b { position: absolute; z-index: 2; color: #fff; font-family: Georgia, serif; line-height: 1; }
.faq-icon i { top: 26px; left: 82px; font-size: 105px; font-weight: 700; }
.faq-icon b { right: 70px; bottom: 35px; font-size: 83px; font-style: italic; }

.contact-page .footer { margin-top: 68px; }
.compact-main + .footer { margin-top: 36px; }

@media (max-width: 1050px) {
  .inner-page .site-shell { overflow: visible; }
  .inner-page .topbar { position: relative; }

  .interior-main { padding: 1px 0 0; }
  .interior-main > h1 { margin: 27px 10px 24px; font-size: 31px; }

  .alternating-content { gap: 0; }
  .content-row,
  .content-row.reverse {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .content-row.reverse .placeholder-frame { order: 0; }
  .content-row.reverse .information-copy { order: 1; }

  .placeholder-frame {
    width: 100%;
    aspect-ratio: 1.96 / 1;
    border-right: 0;
    border-left: 0;
  }

  .placeholder-frame span { font-size: clamp(32px, 10vw, 48px); }

  .information-copy {
    width: 100%;
    min-height: 128px;
    display: grid;
    place-items: center;
    font-size: clamp(35px, 11vw, 52px);
  }

  .download-options { grid-template-columns: 1fr; gap: 17px; }
  .download-option { aspect-ratio: 1.78 / 1; border: 1.5px solid #111; }
  .download-option span { font-size: clamp(42px, 12vw, 58px); }

  .invest-document {
    width: 100%;
    aspect-ratio: 1.58 / 1;
    border-right: 0;
    border-left: 0;
  }
  .invest-document span { font-size: clamp(30px, 8.4vw, 42px); }

  .contact-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin: 17px auto 0;
    padding: 0 13px;
  }

  .contact-method h1,
  .contact-method h2 { margin-bottom: 8px; font-size: 15px; }

  .contact-panel { height: auto; aspect-ratio: 1.38 / 1; }
  .message-panel { grid-template-rows: 24px 24px 24px 1fr; gap: 8px; padding: 13px 14px; }
  .message-panel input,
  .message-panel textarea { padding: 2px 9px; font-size: 14px; }

  .chatbot-panel svg { width: 65%; }
  .email-icon { width: 140px; height: 140px; border-radius: 32px; }
  .email-icon svg { width: 108px; }
  .messenger-icon { width: 203px; height: 141px; }
  .messenger-icon svg { width: 52px; }
  .messenger-icon strong { font-size: 18px; }
  .whatsapp-icon { width: 141px; height: 141px; border-radius: 30px; }
  .whatsapp-icon svg { width: 108px; }
  .faq-icon { width: 210px; height: 150px; transform: scale(.9); }
  .faq-icon::before,
  .faq-icon::after { width: 130px; height: 95px; }
  .faq-icon i { top: 22px; left: 57px; font-size: 72px; }
  .faq-icon b { right: 43px; bottom: 27px; font-size: 58px; }

  .contact-page .footer,
  .compact-main + .footer { margin-top: 26px; }
}

/* Finish the established layout; do not replace its desktop/mobile composition. */
.icon-definitions { position:absolute; width:0; height:0; overflow:hidden; }
.icon { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
:focus-visible { outline:3px solid #7c2d91; outline-offset:4px; }
.topbar { position:relative; }
.social-links .social-icon { width:62px; height:62px; display:grid; place-items:center; border-radius:50%; color:white; }
.social-links .facebook { padding:0; }
.site-search button { border:0; background:transparent; padding:0; display:grid; place-items:center; cursor:pointer; }
.footer-legal { grid-column:1/-1; display:flex; justify-content:center; flex-wrap:wrap; gap:12px 24px; font-size:14px; color:var(--ink); text-align:center; }
.footer-legal a { text-underline-offset:3px; }
.search-results { grid-column:1/-1; padding:18px; background:var(--lavender); }
.search-results ul { padding-left:22px; }
.search-results li { margin:8px 0; }
.media-frame { aspect-ratio:1.78/1; overflow:hidden; width:100%; }
.media-frame img { width:100%; height:100%; object-fit:cover; display:block; }
.content-row.reverse .media-frame { grid-column:2; }
.information-copy { font-size:18px; line-height:1.65; text-align:left; font-weight:400; }
.information-copy h2 { font-size:28px; line-height:1.2; color:var(--ink); margin:0 0 18px; }
.information-copy p { margin:0 0 14px; }
.information-copy a,.page-note a { color:var(--ink); text-underline-offset:4px; }
.download-option { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:290px; padding:28px; border:1px solid #ddd; background:#fafafa; text-align:center; }
.download-option h2 { font-size:30px; margin:12px 0 0; }
.download-option p { margin:10px 0 18px; }
.download-option .availability { font-size:15px; color:#552171; }
.store-icon { width:64px; height:64px; }
.page-note { text-align:center; font-size:16px; line-height:1.6; padding:16px; }
.invest-document { aspect-ratio:auto; border:1px solid #d2c8df; padding:30px; background:#fbf9fe; }
.document-heading { display:flex; align-items:center; gap:24px; }
.document-heading img { width:70px; height:70px; }
.document-heading h2 { font-size:30px; line-height:1.2; color:var(--ink); margin:0; }
.eyebrow { font-size:13px; text-transform:uppercase; letter-spacing:.1em; color:#632776; }
.document-columns { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; line-height:1.6; margin-top:24px; }
.document-columns h3 { color:var(--ink); }
.small-note { font-size:14px; line-height:1.6; }
.contact-grid { grid-template-columns:repeat(3,minmax(0,440px)); column-gap:clamp(24px,5vw,100px); }
.channel-note { margin:10px 0 0; font-size:14px; line-height:1.45; text-align:center; color:#544562; }
.message-panel { grid-template-rows:32px 32px 32px 1fr 36px; gap:10px; }
.message-panel input,.message-panel textarea { font-size:16px; }
.draft-button { border:0; color:white; background:var(--ink); cursor:pointer; padding:8px; }
.draft-link { display:block; text-align:center; margin-top:10px; }
[hidden] { display:none !important; }
.faq { grid-column:1/-1; max-width:900px; width:100%; margin:35px auto 0; }
.faq h2 { font-size:24px; color:var(--ink); }
.faq details { border-bottom:1px solid #ddd; padding:18px 0; line-height:1.6; }
.faq summary { font-weight:600; cursor:pointer; }
.faq p { margin:12px 0; }
.legal-main { max-width:950px; line-height:1.7; font-size:17px; padding-bottom:20px; }
.legal-main h1 { font-size:42px; font-weight:400; line-height:1.15; color:var(--ink); }
.legal-main h2 { font-size:26px; color:var(--ink); }
.legal-main h3 { font-size:20px; }
.legal-main .page-intro { text-align:center; margin:32px 0; }
.legal-main .values { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.legal-main .check-list { padding-left:0; list-style:none; }
.legal-main .check-list li { display:flex; align-items:start; gap:10px; margin:12px 0; }
@media (min-width:1051px) and (max-width:1500px) { .footer { grid-template-columns:250px minmax(0,1fr) 300px; } .topbar { grid-template-columns:68px minmax(0,1fr) auto; gap:12px; } .strapline { font-size:18px; } .primary-navigation { gap:16px; } .primary-navigation a { font-size:15px; } }
@media (max-width:1050px) {
 .primary-navigation { position:static; display:grid; grid-column:1/-1; box-shadow:none; border:0; }
 .js .primary-navigation { position:absolute; display:none; }
 .js .primary-navigation.is-open { display:grid; }
 .menu-button { display:none; }
 .js .menu-button { display:grid; }
 .content-row,.content-row.reverse { gap:0; }
 .media-frame { aspect-ratio:1.96/1; }
 .information-copy { display:block; min-height:0; font-size:17px; padding:28px 24px; }
 .information-copy h2 { font-size:25px; }
 .contact-grid { grid-template-columns:minmax(0,1fr); }
 .message-panel { aspect-ratio:auto; min-height:300px; grid-template-rows:32px 32px 32px 1fr 36px; }
 .message-panel input,.message-panel textarea { font-size:16px; }
 .faq { padding:0 10px; }
 .document-columns { grid-template-columns:1fr; gap:6px; }
 .invest-document { padding:24px; }
 .document-heading { gap:14px; }
 .document-heading h2 { font-size:24px; }
 .legal-main { padding:1px 24px 20px; }
 .legal-main .values { grid-template-columns:1fr; }
 .footer-legal { grid-row:4; }
 .search-results { grid-row:5; }
}
@media (max-width:600px) {
 .footer { padding:0 24px 28px; }
 .social-links { gap:22px; }
 .slide-caption { font-size:clamp(10px,2.7vw,13px); padding:8px; }
 .slide-heading { max-width:94%; white-space:normal; text-align:center; font-size:13px; padding:7px 12px; }
 .carousel-dots { bottom:58px; gap:10px; }
 .carousel-dots button { width:20px; height:20px; }
 .carousel-control { width:44px; }
 .download-option { min-height:240px; }
 .legal-main h1 { font-size:32px; }
}

.faq-art { width:75%; max-width:300px; height:auto; }

.legal-nav { display:flex; flex-wrap:wrap; gap:18px; margin-bottom:28px; }
.carousel-control,.carousel-dots { display:none; }
.js .carousel-control { display:block; }
.js .carousel-dots { display:flex; }
/* Store panels must shrink below their preferred aspect-ratio size on phones. */
.download-option { min-width:0; }
@media (max-width:1050px) { .download-options { grid-template-columns:minmax(0,1fr); } }

.message-panel { grid-template-columns:minmax(0,1fr); align-items:stretch; justify-content:stretch; }
@media (min-width:1051px) { .activity-cards { grid-template-rows:repeat(3,minmax(0,1fr)); align-content:stretch; } .activity-card { aspect-ratio:auto; } }
.download-option { width:100%; aspect-ratio:auto; }
/* Absolute photo content lets the desktop card grid share the carousel height. */
@media (min-width:1051px) { .activity-card img { position:absolute; inset:0; } }
.skip-link { top:-100px; transform:none; }
.skip-link:focus { top:8px; transform:none; }
.activity-card img { object-position:center 25%; }
