:root {
  font-size: 62.5%;
  --rio-red: #f52e2e;
  --rio-black: #000000;
  --rio-white: #ffffff;
  --rio-muted: #d9d9d9;
  --rio-line: #383838;
  --rio-font-display: "Manrope", "Inter", Arial, sans-serif;
  --rio-font-body: "Inter", Arial, sans-serif;
  --rio-display: var(--rio-font-display);
  --rio-body: var(--rio-font-body);
  --rio-content-max: 140rem;
  --rio-mobile-gutter: 2rem;
  --rio-gutter: var(--rio-mobile-gutter);
  --rio-content: min(calc(100% - (var(--rio-gutter) * 2)), var(--rio-content-max));
  --rio-space-1: 0.5rem;
  --rio-space-2: 1rem;
  --rio-space-3: 1.5rem;
  --rio-space-4: 2rem;
  --rio-space-5: 3rem;
  --rio-space-6: 4rem;
  --rio-space-7: 5rem;
  --rio-space-8: 6rem;
  --rio-space-9: 8rem;
  --rio-space-10: 10rem;
  --rio-control-height: 3.5rem;
  --rio-transition-fast: 200ms ease;
  --rio-rating-k: #158149;
  --rio-rating-12: #f29422;
  --rio-rating-15: #e75b22;
  --rio-rating-18: #d71920;
}

html,
body {
  margin: 0;
  overflow-x: clip;
  background: var(--rio-black);
  color: var(--rio-white);
}

body,
#brx-content {
  font-family: var(--rio-font-body);
  font-size: 1.6rem;
  line-height: 1.4;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

#brx-content,
#brx-content * {
  box-sizing: border-box;
}

#brx-content a {
  color: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--rio-font-display);
  letter-spacing: 0;
}

.rio-container {
  width: min(calc(100% - (var(--rio-mobile-gutter) * 2)), var(--rio-content-max));
  margin-inline: auto;
}

.rio-stack-sm > * + * {
  margin-block-start: var(--rio-space-2);
}

.rio-stack-md > * + * {
  margin-block-start: var(--rio-space-4);
}

.rio-stack-lg > * + * {
  margin-block-start: var(--rio-space-6);
}

.rio-cta,
.rio-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--rio-control-height);
  padding: 0 1.25rem;
  border: 0;
  border-radius: 0;
  background: var(--rio-red);
  color: var(--rio-white);
  font-family: var(--rio-font-display);
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--rio-transition-fast), color var(--rio-transition-fast);
}

@media (hover: hover) and (pointer: fine) {
  .rio-cta:hover,
  .rio-button:hover {
    background: var(--rio-white);
    color: var(--rio-black);
  }
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 0.2rem solid var(--rio-red);
  outline-offset: 0.3rem;
}

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

/* Promotion and service components */
.rio-promotions-page {
  display: block;
  width: 100%;
  min-height: 100vh;
  padding: 0;
  background: var(--rio-black);
}

.rio-promotions-hero {
  position: relative;
  display: block;
  width: calc(100% - 4rem);
  height: clamp(52rem, 41.667vw, 80rem);
  margin: 0 auto;
  overflow: hidden;
  background: var(--rio-muted);
}

.rio-promotions-content {
  display: block;
  width: var(--rio-content);
  margin: 3rem auto 0;
  padding: 0;
}

.rio-promotions-intro {
  display: block;
  width: 100%;
}

.rio-promotions-title {
  margin: 0;
  color: var(--rio-white);
  font-family: var(--rio-display);
  font-size: 2.4rem;
  font-weight: 800;
  line-height: 1.2;
}

.rio-promotions-copy,
.rio-promotion-panel-copy {
  color: var(--rio-white);
  font-family: var(--rio-body);
  font-size: 1.6rem;
  font-weight: 200;
  line-height: 1.4;
}

.rio-promotions-copy {
  margin: 1rem 0 0;
}

.rio-promotions-carousel-viewport {
  position: relative;
  display: block;
  width: 100%;
  margin-top: 2rem;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  scroll-behavior: smooth;
  touch-action: pan-y;
  cursor: grab;
  overscroll-behavior-inline: contain;
}

.rio-promotions-carousel-viewport::-webkit-scrollbar {
  display: none;
}

.rio-promotions-carousel-viewport.is-dragging {
  cursor: grabbing;
  scroll-behavior: auto;
}

.rio-promotions-carousel {
  display: flex;
  flex-flow: row nowrap;
  align-items: stretch;
  gap: 2rem;
  width: max-content;
  min-width: 100%;
}

.rio-promotion-card {
  display: block;
  flex: 0 0 40rem;
  width: 40rem;
  aspect-ratio: 20 / 11;
  overflow: hidden;
  background: #111111;
}

.rio-promotion-card .brxe-image,
.rio-promotion-card a,
.rio-promotion-card img {
  display: block;
  width: 100%;
  height: 100%;
}

.rio-promotion-card img {
  object-fit: cover;
  transition: transform 250ms ease;
  -webkit-user-drag: none;
}

.rio-promotion-card:focus-within img {
  transform: scale(1.015);
}

.rio-promotion-card a:focus-visible {
  outline: 0.2rem solid var(--rio-red);
  outline-offset: -0.2rem;
}

.rio-promotions-carousel:empty {
  display: none;
}

.rio-promotions-carousel-viewport:not(:has(.rio-promotion-card)) {
  overflow: hidden;
  cursor: default;
}

.rio-promotion-empty {
  display: none;
  width: 100%;
  padding: 2rem 0;
  color: var(--rio-white);
  font-size: 1.6rem;
}

.rio-promotion-services {
  width: 100%;
  margin-top: 2rem;
  border-top: 0.1rem solid var(--rio-white);
}

.rio-promotion-services > .brxe-block {
  border-bottom: 0.1rem solid var(--rio-white);
}

.rio-promotion-services .accordion-title-wrapper {
  min-height: 6.4rem;
  padding: 2rem 0;
  background: transparent;
  color: var(--rio-white);
  cursor: pointer;
}

.rio-promotion-services .accordion-title-wrapper:focus-visible {
  outline: 0.2rem solid var(--rio-red);
  outline-offset: -0.2rem;
}

.rio-promotion-services .accordion-title-wrapper .brxe-heading {
  margin: 0;
  color: inherit;
  font-family: var(--rio-display);
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.2;
}

.rio-promotion-services .accordion-title-wrapper .brxe-icon {
  flex: 0 0 2rem;
  width: 2rem;
  margin-left: 2rem;
  color: currentColor;
  font-size: 2rem;
  text-align: center;
}

.rio-promotion-services .brx-open .accordion-title-wrapper .brxe-icon i::before {
  content: "f1fc";
}

.rio-promotion-services .accordion-content-wrapper {
  overflow: hidden;
  padding: 0 0 2rem;
}

.rio-promotion-panel {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  width: 100%;
}

.rio-promotion-panel-copy {
  max-width: 76rem;
  margin: 0;
}

.rio-promotion-panel .rio-cta {
  flex: 0 0 auto;
  min-width: 14rem;
  padding-inline: 2rem;
  white-space: nowrap;
}

.rio-promotion-services + .rio-cta {
  margin-top: 3rem;
}

@media (hover: hover) and (pointer: fine) {
  .rio-promotion-services .accordion-title-wrapper:hover {
    color: var(--rio-red);
  }

  .rio-promotion-card:hover img {
    transform: scale(1.015);
  }
}

@media (max-width: 47.99rem) {
  .rio-promotions-hero {
    width: 100%;
    height: 49.7rem;
    margin-top: 0;
  }

  .rio-promotions-content {
    width: calc(100% - 4rem);
    margin-top: 3rem;
  }

  .rio-promotion-card {
    flex-basis: min(40rem, calc(100vw - 4rem));
    width: min(40rem, calc(100vw - 4rem));
  }

  .rio-promotion-panel {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (hover: none), (pointer: coarse) {
  .rio-promotion-services .accordion-title-wrapper:hover {
    color: inherit;
  }

  .rio-promotion-card:hover img {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rio-promotions-carousel-viewport {
    scroll-behavior: auto;
  }

  .rio-promotion-card img {
    transition: none;
  }
}



/* Ratings Information components */
.rio-ratings-page{display:block;width:100%;min-height:100vh;padding:0;background:var(--rio-black);color:var(--rio-white)}
.rio-ratings-hero{position:relative;display:block;width:calc(100% - 4rem);height:clamp(52rem,41.667vw,80rem);margin:0 auto;overflow:hidden;background:#111}
.rio-ratings-hero-image,.rio-ratings-hero-image .brxe-image,.rio-ratings-hero-image picture,.rio-ratings-hero-image img{display:block;width:100%;height:100%}
.rio-ratings-hero-image img{object-fit:cover;object-position:center 58%}
.rio-ratings-title-panel{position:absolute;right:0;bottom:0;z-index:1;width:80%;padding:2rem;overflow:hidden;background:var(--rio-black)}
.rio-ratings-title-track{display:flex;width:max-content;column-gap:4rem;white-space:nowrap}
.rio-ratings-title{margin:0;color:var(--rio-white);font-family:var(--rio-display);font-size:clamp(6.5rem,6vw,10rem);font-weight:800;line-height:1;text-transform:uppercase;white-space:nowrap}
.rio-ratings-title-copy{display:block}
@keyframes rio-ratings-title-loop{to{transform:translate3d(calc(-50% - 2rem),0,0)}}
@keyframes rio-ratings-hero-reveal{from{opacity:0;transform:scale(1.04);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:scale(1);clip-path:inset(0)}}
.rio-ratings-title-track{animation:rio-ratings-title-loop 11s linear infinite;will-change:transform}
.rio-ratings-hero-image{animation:rio-ratings-hero-reveal .95s cubic-bezier(.22,1,.36,1) both}
.rio-ratings-content{display:grid;width:var(--rio-content);margin:3rem auto 10rem;padding:0;row-gap:5rem}
.rio-ratings-intro{max-width:100rem}
.rio-ratings-heading{margin:0;color:var(--rio-white);font-family:var(--rio-display);font-size:2.4rem;font-weight:800;line-height:1.2;text-transform:uppercase}
.rio-ratings-body,.rio-rating-body,.rio-ratings-example-caption{margin:1rem 0 0;color:var(--rio-white);font-family:var(--rio-body);font-size:1.6rem;font-weight:200;line-height:1.4}
.rio-ratings-guide{width:100%;border-top:.1rem solid var(--rio-white)}
.rio-rating-row{display:grid;min-height:14rem;padding:2rem 0;grid-template-columns:5rem minmax(0,1fr);gap:2rem;align-items:center;border-bottom:.1rem solid var(--rio-white);scroll-margin-top:2rem}
.rio-rating-badge{display:inline-flex;width:4rem;height:4rem;align-items:center;justify-content:center;border:.1rem solid var(--rio-white);border-radius:50%;background:var(--rio-red);color:var(--rio-white);font-family:var(--rio-display);font-size:1.6rem;font-weight:800;line-height:1}
.rio-rating-badge-k,.rio-ratings-guide>.rio-rating-row:nth-child(1) .rio-rating-badge{background:var(--rio-rating-k)}.rio-rating-badge-12,.rio-ratings-guide>.rio-rating-row:nth-child(2) .rio-rating-badge{background:var(--rio-rating-12)}.rio-rating-badge-15,.rio-ratings-guide>.rio-rating-row:nth-child(3) .rio-rating-badge{background:var(--rio-rating-15)}.rio-rating-badge-18,.rio-ratings-guide>.rio-rating-row:nth-child(4) .rio-rating-badge{background:var(--rio-rating-18)}
.rio-rating-copy{min-width:0;grid-column:2}
.rio-rating-label{margin:0;color:var(--rio-white);font-family:var(--rio-body);font-size:1.4rem;font-weight:400;line-height:1.25;text-transform:uppercase}
.rio-rating-title,.rio-ratings-visit-grid h3,.rio-ratings-example-row h3{margin:.5rem 0 0;color:var(--rio-white);font-family:var(--rio-display);font-size:2rem;font-weight:800;line-height:1.2;text-transform:uppercase}
.rio-rating-body{margin-top:.5rem}
.rio-ratings-visit-grid{display:grid;width:100%;margin-top:2rem;border-top:.1rem solid var(--rio-white)}
.rio-ratings-visit-item{min-height:14rem;padding:2rem 0;border-bottom:.1rem solid var(--rio-white)}
.rio-ratings-visit-number{color:var(--rio-red);font-family:var(--rio-display);font-size:1.6rem;font-weight:800}
.rio-ratings-example-row{display:grid;min-height:14rem;margin-top:2rem;padding:2rem 0;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center;border-top:.1rem solid var(--rio-white);border-bottom:.1rem solid var(--rio-white)}
.rio-ratings-example-meta{display:flex;grid-column:1/-1;flex-wrap:wrap;gap:1rem 2rem;color:var(--rio-white);font-family:var(--rio-display);font-size:1.6rem;font-weight:800}
.rio-ratings-example-caption{max-width:80rem}
.rio-ratings-faq .rio-promotion-services{margin-top:2rem}
.rio-ratings-faq .accordion-content-wrapper{padding-right:4rem}
.rio-ratings-faq-answer{max-width:100rem;margin:0;color:var(--rio-white);font-family:var(--rio-body);font-size:1.6rem;font-weight:200;line-height:1.4}
.rio-ratings-faq-answer a{color:var(--rio-white);font-weight:700;text-decoration-color:var(--rio-red);text-underline-offset:.3rem}
.rio-ratings-contact-cta{width:100%;margin-top:-2rem}
@media(hover:hover) and (pointer:fine){.rio-ratings-faq-answer a:hover{color:var(--rio-red)}}
@media(min-width:48rem){
 .rio-rating-row{grid-template-columns:6rem minmax(18rem,1fr) minmax(22rem,1.5fr) minmax(22rem,1.5fr)}
 .rio-rating-copy{grid-column:auto}
 .rio-ratings-visit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .rio-ratings-visit-item{padding:2rem;border-right:.1rem solid var(--rio-white)}
 .rio-ratings-visit-item:first-child{padding-left:0}
 .rio-ratings-visit-item:last-child{padding-right:0;border-right:0}
 .rio-ratings-example-row{grid-template-columns:minmax(0,1fr) auto 4rem}
 .rio-ratings-example-meta{grid-column:auto}
}
@media(max-width:47.99rem){
 .rio-ratings-hero{width:100%;height:49.7rem}
 .rio-ratings-title-panel{width:100%;padding:2rem}
 .rio-ratings-title-track{display:block;width:auto;animation:none;transform:none;will-change:auto}
 .rio-ratings-title{font-size:3.2rem;line-height:1.05;white-space:normal}
 .rio-ratings-title-copy{display:none!important}
 .rio-ratings-content{width:calc(100% - 4rem);margin-top:3rem;row-gap:5rem}
 .rio-ratings-faq .accordion-content-wrapper{padding-right:0}
}
@media(min-width:102.5rem){.rio-ratings-title-panel{width:75%}}
@media(prefers-reduced-motion:reduce){.rio-ratings-title-track,.rio-ratings-hero-image{animation:none!important;transform:none!important}.rio-ratings-title-copy{display:none!important}}

/* Ratings Information visual parity corrections */
.rio-ratings-guide + .rio-ratings-guide{margin-top:-5rem;border-top:0}
#rating-k .rio-rating-badge{background:var(--rio-rating-k)}
#rating-12 .rio-rating-badge{background:var(--rio-rating-12)}
#rating-15 .rio-rating-badge{background:var(--rio-rating-15)}
#rating-18 .rio-rating-badge{background:var(--rio-rating-18)}
.rio-ratings-example,
.rio-ratings-faq{display:block;align-items:stretch}
.rio-ratings-example > *,
.rio-ratings-faq > *{width:100%}
.rio-ratings-faq .accordion-title-wrapper{flex-wrap:nowrap}
.rio-ratings-faq .accordion-title-wrapper .brxe-heading{flex:1;width:auto;min-width:0}
.rio-ratings-faq .accordion-title-wrapper .brxe-icon{color:var(--rio-white);font-family:Inter,Arial,sans-serif;font-style:normal;transform:none!important}
.rio-ratings-faq .accordion-title-wrapper .brxe-icon::before{content:"+"}
.rio-ratings-faq .brx-open>.accordion-title-wrapper .brxe-icon::before{content:"\2212"}
.rio-ratings-faq .accordion-title-wrapper:focus-visible,
.rio-ratings-contact-cta:focus-visible{outline:.2rem solid var(--rio-red);outline-offset:.4rem}

/* Shared RIO CTA interaction: outranks Bricks button color without changing component dimensions. */
@media (hover: hover) and (pointer: fine) {
  #brx-content .brxe-button.rio-cta:hover,
  #brx-content .brxe-button.rio-button:hover,
  #brx-content a.rio-cta:hover,
  #brx-content a.rio-button:hover {
    background-color: var(--rio-white);
    color: var(--rio-black);
  }
}

@media (hover: none), (pointer: coarse) {
  #brx-content .brxe-button.rio-cta:hover,
  #brx-content .brxe-button.rio-button:hover,
  #brx-content a.rio-cta:hover,
  #brx-content a.rio-button:hover {
    background-color: var(--rio-red);
    color: var(--rio-white);
  }
}

/* Shared age-classification badges and Ratings hero corrections.
 * Context sizes stay compact on listing cards while colors, border, type and shape
 * match the approved Ratings Information component.
 */
img.rio-ratings-hero-image {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center 58%;
}

.rio-ratings-title-track {
  transform: none;
  backface-visibility: hidden;
  animation: none;
  will-change: auto;
}

.rio-ratings-title-copy {
  display: none;
}

.rio-rating,
.rio-movie-rating-badge {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border: 0.1rem solid var(--rio-white);
  border-radius: 50%;
  background: var(--rio-rating-12);
  color: var(--rio-white);
  font-family: var(--rio-display);
  font-weight: 800;
  line-height: 1;
  text-align: center;
}

.rio-rating {
  width: 2.2rem;
  height: 2.2rem;
  font-size: 1rem;
}

.rio-movie-rating-badge {
  width: 4rem;
  height: 4rem;
  font-size: 1.6rem;
}

.rio-movie-rating-badge.has-image img {
  display: none;
}

.rio-movie-rating-row[data-rating="K"] .rio-movie-rating-badge::before {
  content: "K";
}

.rio-movie-rating-row[data-rating="12"] .rio-movie-rating-badge::before {
  content: "12";
}

.rio-movie-rating-row[data-rating="15"] .rio-movie-rating-badge::before {
  content: "15";
}

.rio-movie-rating-row[data-rating="18"] .rio-movie-rating-badge::before {
  content: "18";
}

.rio-movie-rating-row[data-rating="K"] .rio-movie-rating-badge,
.rio-rating.rio-rating-k {
  background: var(--rio-rating-k);
}

.rio-movie-rating-row[data-rating="12"] .rio-movie-rating-badge,
.rio-rating.rio-rating-12 {
  background: var(--rio-rating-12);
}

.rio-movie-rating-row[data-rating="15"] .rio-movie-rating-badge,
.rio-rating.rio-rating-15 {
  background: var(--rio-rating-15);
}

.rio-movie-rating-row[data-rating="18"] .rio-movie-rating-badge,
.rio-rating.rio-rating-18,
#brxe-dyofsz,
#brxe-9ba233 {
  background: var(--rio-rating-18);
}

/* Current compact listing badges: map their known classifications until all cards
 * are supplied by the Movie content model in the next conversion phase.
 */
#brxe-dmtvly,
#brxe-nlbfpv,
#brxe-ctteof,
#brxe-efe209,
#brxe-xyreqb,
#brxe-dbrekl,
#brxe-tnyooh,
#brxe-bvvial,
#brxe-be5107,
#brxe-738182 {
  background: var(--rio-rating-12);
}

#brxe-mfqqet {
  display: flex;
  align-items: center;
  gap: 1rem;
}

#brxe-mfqqet #brxe-arvjhl {
  display: none;
}

#brxe-mfqqet::after {
  content: "12";
  display: inline-flex;
  flex: 0 0 2.5rem;
  width: 2.5rem;
  height: 2.5rem;
  align-items: center;
  justify-content: center;
  border: 0.1rem solid var(--rio-white);
  border-radius: 50%;
  background: var(--rio-rating-12);
  color: var(--rio-white);
  font-family: var(--rio-display);
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1;
}

@media (max-width: 47.99rem) {
  img.rio-ratings-hero-image {
    object-position: center 58%;
  }
}

/* Specificity bridge for legacy Bricks element styles. Remove when listing cards
 * and the movie template are fully driven by the shared content components.
 */
#brx-content .rio-rating {
  border: 0.1rem solid var(--rio-white) !important;
  border-radius: 50% !important;
  color: var(--rio-white) !important;
  font-family: var(--rio-display) !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}

#brx-content #brxe-dmtvly,
#brx-content #brxe-nlbfpv,
#brx-content #brxe-ctteof,
#brx-content #brxe-efe209,
#brx-content #brxe-xyreqb,
#brx-content #brxe-dbrekl,
#brx-content #brxe-tnyooh,
#brx-content #brxe-bvvial,
#brx-content #brxe-be5107,
#brx-content #brxe-738182 {
  background-color: var(--rio-rating-12) !important;
}

#brx-content #brxe-dyofsz,
#brx-content #brxe-9ba233 {
  background-color: var(--rio-rating-18) !important;
}

#brx-content .rio-movie-rating-badge {
  border: 0.1rem solid var(--rio-white) !important;
  border-radius: 50% !important;
  color: var(--rio-white) !important;
  font-family: var(--rio-display) !important;
  font-size: 1.6rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}

#brx-content .rio-movie-rating-row[data-rating="K"] .rio-movie-rating-badge {
  background-color: var(--rio-rating-k) !important;
}

#brx-content .rio-movie-rating-row[data-rating="12"] .rio-movie-rating-badge {
  background-color: var(--rio-rating-12) !important;
}

#brx-content .rio-movie-rating-row[data-rating="15"] .rio-movie-rating-badge {
  background-color: var(--rio-rating-15) !important;
}

#brx-content .rio-movie-rating-row[data-rating="18"] .rio-movie-rating-badge {
  background-color: var(--rio-rating-18) !important;
}


/* Fullscreen site menu - approved local parity */
body.rio-menu-open {
  overflow: hidden;
}

button.brxe-wnggah {
  cursor: pointer;
}

.site-menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
  box-sizing: border-box;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  padding: 2rem;
  overflow-x: hidden;
  overflow-y: auto;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  background: var(--rio-black);
  color: var(--rio-white);
  will-change: transform, opacity;
}

.site-menu-overlay[aria-hidden="true"] {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateX(100%) !important;
}

.site-menu-overlay.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.site-menu-shell {
  display: grid;
  width: min(100%, var(--rio-content-max));
  min-height: 100%;
  margin: 0 auto;
  grid-template-rows: auto 1fr;
}

.site-menu-header {
  display: flex;
  min-height: 4rem;
  padding-bottom: 2rem;
  align-items: center;
  justify-content: space-between;
  border-bottom: 0.1rem solid var(--rio-line);
}

.site-menu-brand {
  display: block;
  width: 13.8rem;
  height: 3.5rem;
}

.site-menu-brand img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
}

.site-menu-close {
  position: relative;
  width: 3.5rem;
  height: 3.5rem;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--rio-white);
  cursor: pointer;
}

.site-menu-close::before,
.site-menu-close::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2.7rem;
  height: 0.2rem;
  content: "";
  background: currentColor;
}

.site-menu-close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.site-menu-close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.site-menu-primary {
  display: flex;
  padding: 3.5rem 0;
  flex-direction: column;
  justify-content: center;
}

.site-menu-link {
  display: grid;
  padding: 1.2rem 0;
  grid-template-columns: 3.2rem minmax(0, 1fr);
  gap: 1.5rem;
  align-items: center;
  border-bottom: 0.1rem solid var(--rio-line);
  color: var(--rio-white);
  font-family: var(--rio-font-display);
  font-size: clamp(2.4rem, 4.5vw, 5.2rem);
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
}


.site-menu-index {
  color: #888888;
  font-family: var(--rio-font-body);
  font-size: 1.2rem;
  font-weight: 400;
}

.site-menu-link[aria-current="page"] {
  color: var(--rio-red);
}

.site-menu-footer {
  display: none;
  padding-top: 2rem;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  align-items: center;
  justify-content: space-between;
  border-top: 0.1rem solid var(--rio-line);
  color: var(--rio-white);
  font-family: var(--rio-font-body);
  font-size: 1.4rem;
}

.site-menu-social {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
}

.site-menu-social a {
  color: var(--rio-white);
  text-decoration: none;
}

.site-menu-close:focus-visible,
.site-menu-link:focus-visible,
.site-menu-social a:focus-visible {
  outline: 0.2rem solid var(--rio-red);
  outline-offset: 0.3rem;
}

@media (hover: hover) and (pointer: fine) {
  .site-menu-close:hover,
  .site-menu-link:hover,
  .site-menu-social a:hover {
    color: var(--rio-red);
  }
}

@media (min-width: 81rem) {
  .site-menu-link {
    grid-template-columns: 4.5rem minmax(0, 1fr);
  }
}


@media (prefers-reduced-motion: reduce) {
  .site-menu-overlay {
    will-change: auto;
  }
}
