/* The rating guide uses the site's Figma palette with a calmer editorial rhythm. */
body[data-helper-page] { background-color: #f3f0e5; color: #252a24; }
body[data-helper-page] > .hero-header { position: relative; z-index: 2; min-height: 120px; padding-inline: clamp(22px, 6vw, 92px); background-color: #252a24; }
body[data-helper-page] > .hero-header .hero-brand img { width: clamp(148px, 14vw, 240px); }
body[data-helper-page] > .hero-header .hero-navigation a { font-size: clamp(15px, 1.25vw, 19px); }
.rating-page { --rating-ink: #252a24; --rating-muted: #596052; --rating-paper: #f3f0e5; --rating-pale: #e6e8d8; --rating-green: #b0c383; --rating-line: #c9cdb8; width: 100%; padding: 0; color: var(--rating-ink); background: var(--rating-paper); font-family: "Overpass", Arial, sans-serif; }
.rating-page section { position: relative; width: 100%; padding-inline: max(24px, calc((100vw - 1320px) / 2)); }
.rating-page h1, .rating-page h2, .rating-page h3, .rating-page p, .rating-page figure { margin-top: 0; }
.rating-page h1, .rating-page h2, .rating-page h3 { color: var(--rating-ink); }
.rating-page h1 { max-width: 780px; margin-bottom: 25px; font-size: clamp(46px, 6vw, 88px); font-weight: 800; letter-spacing: -.045em; line-height: .99; }
.rating-page h2 { margin-bottom: 18px; font-size: clamp(34px, 4vw, 58px); font-weight: 750; letter-spacing: -.035em; line-height: 1.04; }
.rating-page h3 { margin-bottom: 12px; font-size: 25px; line-height: 1.1; }
.rating-page p { color: var(--rating-muted); font-size: 18px; line-height: 1.65; }
.rating-page .eyebrow { margin-bottom: 18px; color: #56633e; font-size: 13px; font-weight: 800; letter-spacing: .13em; line-height: 1.35; text-transform: uppercase; }
.rating-page .rating-intro { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); gap: clamp(40px, 7vw, 106px); align-items: center; min-height: 650px; padding-top: 72px; padding-bottom: 82px; background: #ecebdc; }
.rating-page .rating-intro-copy { max-width: 750px; }
.rating-page .rating-lede { max-width: 640px; margin-bottom: 28px; font-size: clamp(18px, 1.55vw, 22px); }
.rating-page .text-link { display: inline-flex; gap: 12px; align-items: center; color: #252a24; font-size: 17px; font-weight: 800; text-decoration-color: #82935a; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.rating-page .text-link:focus-visible, .rating-page button:focus-visible { outline: 3px solid #53633a; outline-offset: 4px; }
.rating-page .rating-intro-art { position: relative; margin: 0; transform: rotate(var(--art-tilt)); }
.rating-page .rating-intro-art img { display: block; width: 100%; height: clamp(320px, 39vw, 500px); border-radius: 3px; object-fit: cover; box-shadow: 20px 20px 0 #b0c383; }
.rating-page figcaption { margin-top: 16px; color: var(--rating-muted); font-size: 14px; line-height: 1.45; }
.rating-page .rating-overview { padding-top: 100px; padding-bottom: 112px; background: #252a24; }
.rating-page .section-heading { max-width: 780px; margin-bottom: 46px; }
.rating-page .rating-overview h2, .rating-page .rating-overview p { color: #f3f0e5; }
.rating-page .rating-overview .eyebrow { color: #c3d59a; }
.rating-page .section-heading > p:last-child { max-width: 650px; margin-bottom: 0; color: #d3d7c9; }
.rating-page .factor-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.rating-page .factor-card { min-height: 260px; padding: 27px 25px; border: 1px solid rgba(232, 223, 208, .35); background: #30372f; }
.rating-page .factor-card .factor-index { display: inline-block; margin-bottom: 42px; color: #c3d59a; font-size: 14px; font-weight: 800; letter-spacing: .08em; }
.rating-page .factor-card h3 { color: #f3f0e5; }
.rating-page .factor-card p { margin-bottom: 0; color: #d3d7c9; font-size: 16px; line-height: 1.55; }
.rating-page .factor-detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr); gap: clamp(48px, 9vw, 140px); align-items: center; min-height: 510px; padding-top: 84px; padding-bottom: 84px; }
.rating-page .factor-detail-copy { max-width: 600px; }
.rating-page .factor-detail-copy p:last-child { margin-bottom: 0; }
.rating-page .detail-image { margin-bottom: 0; }
.rating-page .detail-image img { display: block; width: 100%; height: 340px; border-radius: 3px; object-fit: cover; }
.rating-page .factor-detail-navigation { grid-template-columns: minmax(0, 1fr) minmax(300px, .76fr); background: #e5e8d7; }
.rating-page .navigation-note { max-width: 490px; padding: 25px 30px; border-inline-start-style: solid; border-inline-start-color: #82935a; }
.rating-page .navigation-note .note-mark { display: inline-grid; width: 42px; height: 42px; margin-bottom: 18px; place-items: center; border-radius: 50%; background: #b0c383; color: #252a24; font-size: 23px; }
.rating-page .navigation-note p { margin: 0; color: #252a24; font-size: clamp(22px, 2.1vw, 30px); font-weight: 700; line-height: 1.3; }
.rating-page .factor-detail-accessibility { grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); }
.rating-page .detail-image-offset { padding-inline-end: 28px; }
.rating-page .factor-detail-features { background: #e5e8d7; }
.rating-page .rating-reading { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 24px 72px; align-items: center; padding-top: 86px; padding-bottom: 86px; background: #b0c383; }
.rating-page .reading-heading { max-width: 510px; }
.rating-page .reading-heading .eyebrow, .rating-page .reading-heading p { color: #252a24; }
.rating-page .reading-heading h2 { font-size: clamp(33px, 3.6vw, 50px); }
.rating-page .reading-heading p:last-child { margin-bottom: 0; }
.rating-page .factor-picker { display: flex; flex-wrap: wrap; gap: 11px; }
.rating-page .factor-choice { min-height: 48px; padding: 10px 18px; border: 1px solid #252a24; border-radius: 2px; background-color: #f3f0e5; color: #252a24; font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; }
.rating-page .factor-choice.is-selected, .rating-page .factor-choice:hover { background-color: #252a24; color: #f3f0e5; }
.rating-page .factor-status { grid-column: 2; margin: 0; padding: 15px 18px; border-inline-start: 3px solid #252a24; background: rgba(243, 240, 229, .5); color: #252a24; font-size: 16px; }
.rating-page .rating-context { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr); gap: 80px; align-items: center; min-height: 440px; padding-top: 82px; padding-bottom: 92px; }
.rating-page .context-copy { max-width: 740px; }
.rating-page .context-copy .text-link { margin-top: 10px; }
.rating-page .context-card { display: grid; min-height: 250px; padding: 32px; place-content: center; background: #252a24; }
.rating-page .context-card .context-spark { margin-bottom: 14px; color: #b0c383; font-size: 36px; }
.rating-page .context-card p { margin: 0; color: #f3f0e5; font-size: 23px; font-weight: 700; line-height: 1.45; }
.rating-page .no-script-note { max-width: 1320px; }
body[data-helper-page] > .hero-header .hero-navigation .is-current { color: #c3d59a; }
@media (max-width: 900px) {
  .rating-page .rating-intro { grid-template-columns: minmax(0, 1fr) minmax(270px, .8fr); gap: 42px; min-height: 560px; }
  .rating-page .factor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rating-page .factor-card { min-height: 220px; }
  .rating-page .factor-detail { gap: 42px; }
  .rating-page .rating-context { gap: 42px; }
}
@media (max-width: 650px) {
  body[data-helper-page] > .hero-header { padding: 22px 20px; }
  .rating-page section { padding-inline: 22px; }
  .rating-page .rating-intro, .rating-page .factor-detail, .rating-page .factor-detail-accessibility, .rating-page .rating-reading, .rating-page .rating-context { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .rating-page .rating-intro { padding-top: 64px; padding-bottom: 74px; }
  .rating-page h1 { font-size: clamp(43px, 12vw, 62px); }
  .rating-page h2 { font-size: clamp(33px, 9vw, 44px); }
  .rating-page .rating-intro-art { margin: 14px 10px 0 0; }
  .rating-page .rating-intro-art img { height: 310px; box-shadow: 12px 12px 0 #b0c383; }
  .rating-page .rating-overview { padding-top: 70px; padding-bottom: 74px; }
  .rating-page .factor-grid { grid-template-columns: minmax(0, 1fr); }
  .rating-page .factor-card { min-height: 0; padding: 22px; }
  .rating-page .factor-card .factor-index { margin-bottom: 22px; }
  .rating-page .factor-detail { min-height: 0; padding-top: 65px; padding-bottom: 65px; }
  .rating-page .detail-image img { height: 260px; }
  .rating-page .detail-image-offset { padding-inline-end: 12px; }
  .rating-page .factor-detail-accessibility .detail-image { order: 2; }
  .rating-page .factor-detail-accessibility .factor-detail-copy { order: 1; }
  .rating-page .navigation-note { margin-inline-start: 4px; }
  .rating-page .rating-reading { padding-top: 62px; padding-bottom: 62px; }
  .rating-page .factor-picker { gap: 9px; }
  .rating-page .factor-choice { flex: 1 1 calc(50% - 9px); }
  .rating-page .factor-status { grid-column: 1; }
  .rating-page .rating-context { padding-top: 68px; padding-bottom: 74px; }
  .rating-page .context-card { min-height: 200px; }
}
@media (prefers-reduced-motion: reduce) {
  .rating-page *, .rating-page *::before, .rating-page *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
.rating-page .factor-detail-content { background-color: #f3f0e5; }
.rating-page .rating-intro-art .intro-graphic { position: relative; display: grid; min-height: clamp(320px, 39vw, 500px); overflow: hidden; place-items: center; background: #252a24; }
.rating-page .graphic-ring { position: absolute; width: 72%; aspect-ratio: 1; border: 1px solid rgba(243, 240, 229, .48); border-radius: 50%; }
.rating-page .graphic-disc { position: absolute; width: 48%; aspect-ratio: 1; border-radius: 50%; background: #b0c383; box-shadow: 38px 31px 0 #82935a, -34px -27px 0 #e5e8d7; }
.rating-page .graphic-caption { position: relative; z-index: 1; color: #252a24; font-size: clamp(22px, 3vw, 38px); font-weight: 800; letter-spacing: .08em; line-height: 1.2; text-align: center; }
.rating-page .detail-visual { position: relative; display: grid; width: 100%; height: 340px; overflow: hidden; place-items: center; background: #30372f; }
.rating-page .content-visual { background: #dce1cc; }
.rating-page .visual-orbit { width: 210px; aspect-ratio: 1; border: 1px solid #82935a; border-radius: 50%; box-shadow: 0 0 0 34px rgba(130, 147, 90, .12), 0 0 0 68px rgba(130, 147, 90, .09); }
.rating-page .visual-device { position: absolute; width: 138px; height: 200px; border: 8px solid #252a24; border-radius: 23px; background: linear-gradient(145deg, #b0c383 0 47%, #f3f0e5 48% 100%); transform: rotate(-9deg); box-shadow: 14px 18px 0 rgba(37, 42, 36, .16); }
.rating-page .visual-token { position: absolute; right: 12%; bottom: 16%; padding: 10px 14px; background: #252a24; color: #f3f0e5; font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.rating-page .access-visual { background: #b0c383; }
.rating-page .access-path { width: 72%; height: 2px; background: #252a24; transform: rotate(-24deg); }
.rating-page .access-point { position: absolute; display: grid; width: 68px; height: 68px; place-items: center; border: 1px solid #252a24; border-radius: 50%; background: #f3f0e5; color: #252a24; font-size: 18px; font-weight: 800; }
.rating-page .access-point-two { top: 22%; right: 17%; }
.rating-page .access-point-three { bottom: 18%; left: 20%; background: #252a24; color: #f3f0e5; font-size: 28px; }
.rating-page .feature-visual { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 28px; background: #252a24; }
.rating-page .feature-tile { display: grid; min-height: 140px; padding: 10px; place-items: center; background: #e5e8d7; color: #252a24; font-size: 13px; font-weight: 800; letter-spacing: .08em; text-align: center; transform: translateY(0); }
.rating-page .feature-tile-two { background: #b0c383; transform: translateY(-20px); }
.rating-page .feature-tile-three { background: #d3d7c9; transform: translateY(20px); }
@media (max-width: 650px) {
  .rating-page .rating-intro-art .intro-graphic { min-height: 310px; }
  .rating-page .detail-visual { height: 260px; }
  .rating-page .feature-visual { padding: 18px; }
  .rating-page .feature-tile { min-height: 105px; font-size: 11px; }
}
body[data-helper-page] > header.hero-header { position: relative; z-index: 2; min-height: 120px; padding-inline: clamp(22px, 6vw, 92px); background-color: #252a24; }
body[data-helper-page] > header.hero-header .hero-brand img { width: clamp(148px, 14vw, 240px); }
body[data-helper-page] > header.hero-header .hero-navigation a { font-size: clamp(15px, 1.25vw, 19px); }
