@charset "UTF-8";

.pswp {
  --pswp-bg: #000;
  --pswp-placeholder-bg: #222;
  

  --pswp-root-z-index: 100000;
  
  --pswp-preloader-color: rgba(79, 79, 79, 0.4);
  --pswp-preloader-color-secondary: rgba(255, 255, 255, 0.9);
  
  
  --pswp-icon-color: #fff;
  --pswp-icon-color-secondary: #4f4f4f;
  --pswp-icon-stroke-color: #4f4f4f;
  --pswp-icon-stroke-width: 2px;

  --pswp-error-text-color: var(--pswp-icon-color);
}

.pswp {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: var(--pswp-root-z-index);
	display: none;
	touch-action: none;
	outline: 0;
	opacity: 0.003;
	contain: layout style size;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

.pswp:focus {
  outline: 0;
}

.pswp * {
  box-sizing: border-box;
}

.pswp img {
  max-width: none;
}

.pswp--open {
	display: block;
}

.pswp,
.pswp__bg {
	transform: translateZ(0);
	will-change: opacity;
}

.pswp__bg {
  opacity: 0.005;
	background: var(--pswp-bg);
}

.pswp,
.pswp__scroll-wrap {
	overflow: hidden;
}

.pswp__scroll-wrap,
.pswp__bg,
.pswp__container,
.pswp__item,
.pswp__content,
.pswp__img,
.pswp__zoom-wrap {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.pswp__img,
.pswp__zoom-wrap {
	width: auto;
	height: auto;
}

.pswp--click-to-zoom.pswp--zoom-allowed .pswp__img {
	cursor: -webkit-zoom-in;
	cursor: -moz-zoom-in;
	cursor: zoom-in;
}

.pswp--click-to-zoom.pswp--zoomed-in .pswp__img {
	cursor: move;
	cursor: -webkit-grab;
	cursor: -moz-grab;
	cursor: grab;
}

.pswp--click-to-zoom.pswp--zoomed-in .pswp__img:active {
  cursor: -webkit-grabbing;
  cursor: -moz-grabbing;
  cursor: grabbing;
}

.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img,
.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img:active,
.pswp__img {
	cursor: -webkit-zoom-out;
	cursor: -moz-zoom-out;
	cursor: zoom-out;
}

.pswp__container,
.pswp__img,
.pswp__button,
.pswp__counter {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.pswp__item {
	z-index: 1;
	overflow: hidden;
}

.pswp__hidden {
	display: none !important;
}

.pswp__content {
  pointer-events: none;
}
.pswp__content > * {
  pointer-events: auto;
}

.pswp__error-msg-container {
  display: grid;
}
.pswp__error-msg {
	margin: auto;
	font-size: 1em;
	line-height: 1;
	color: var(--pswp-error-text-color);
}

.pswp .pswp__hide-on-close {
	opacity: 0.005;
	will-change: opacity;
	transition: opacity var(--pswp-transition-duration) cubic-bezier(0.4, 0, 0.22, 1);
	z-index: 10;
	pointer-events: none;
}

.pswp--ui-visible .pswp__hide-on-close {
	opacity: 1;
	pointer-events: auto;
}

.pswp__button {
	position: relative;
	display: block;
	width: 50px;
	height: 60px;
	padding: 0;
	margin: 0;
	overflow: hidden;
	cursor: pointer;
	background: none;
	border: 0;
	box-shadow: none;
	opacity: 0.85;
	-webkit-appearance: none;
	-webkit-touch-callout: none;
}

.pswp__button:hover,
.pswp__button:active,
.pswp__button:focus {
  transition: none;
  padding: 0;
  background: none;
  border: 0;
  box-shadow: none;
  opacity: 1;
}

.pswp__button:disabled {
  opacity: 0.3;
  cursor: auto;
}

.pswp__icn {
  fill: var(--pswp-icon-color);
  color: var(--pswp-icon-color-secondary);
}

.pswp__icn {
  position: absolute;
  top: 14px;
  left: 9px;
  width: 32px;
  height: 32px;
  overflow: hidden;
  pointer-events: none;
}

.pswp__icn-shadow {
  stroke: var(--pswp-icon-stroke-color);
  stroke-width: var(--pswp-icon-stroke-width);
  fill: none;
}

.pswp__icn:focus {
	outline: 0;
}

div.pswp__img--placeholder,
.pswp__img--with-bg {
	background: var(--pswp-placeholder-bg);
}

.pswp__top-bar {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 60px;
	display: flex;
  flex-direction: row;
  justify-content: flex-end;
	z-index: 10;

	pointer-events: none !important;
}
.pswp__top-bar > * {
  pointer-events: auto;
  will-change: opacity;
}

.pswp__button--close {
  margin-right: 6px;
}

.pswp__button--arrow {
  position: absolute;
  top: 0;
  width: 75px;
  height: 100px;
  top: 50%;
  margin-top: -50px;
}

.pswp__button--arrow:disabled {
  display: none;
  cursor: default;
}

.pswp__button--arrow .pswp__icn {
  top: 50%;
  margin-top: -30px;
  width: 60px;
  height: 60px;
  background: none;
  border-radius: 0;
}

.pswp--one-slide .pswp__button--arrow {
  display: none;
}

.pswp--touch .pswp__button--arrow {
  visibility: hidden;
}

.pswp--has_mouse .pswp__button--arrow {
  visibility: visible;
}

.pswp__button--arrow--prev {
  right: auto;
  left: 0px;
}

.pswp__button--arrow--next {
  right: 0px;
}
.pswp__button--arrow--next .pswp__icn {
  left: auto;
  right: 14px;
  transform: scale(-1, 1);
}

.pswp__button--zoom {
  display: none;
}

.pswp--zoom-allowed .pswp__button--zoom {
  display: block;
}

.pswp--zoomed-in .pswp__zoom-icn-bar-v {
  display: none;
}

.pswp__preloader {
  position: relative;
  overflow: hidden;
  width: 50px;
  height: 60px;
  margin-right: auto;
}

.pswp__preloader .pswp__icn {
  opacity: 0;
  transition: opacity 0.2s linear;
  animation: pswp-clockwise 600ms linear infinite;
}

.pswp__preloader--active .pswp__icn {
  opacity: 0.85;
}

@keyframes pswp-clockwise {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.pswp__counter {
  height: 30px;
  margin-top: 15px;
  margin-inline-start: 20px;
  font-size: 14px;
  line-height: 30px;
  color: var(--pswp-icon-color);
  text-shadow: 1px 1px 3px var(--pswp-icon-color-secondary);
  opacity: 0.85;
}

.pswp--one-slide .pswp__counter {
  display: none;
}

.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy .sld__tag[data-tf-empty="1"],
.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy .text-has_dot[data-tf-empty="1"],
.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy [data-tf-field="heading"][data-tf-empty="1"],
.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy [data-tf-field="desc"][data-tf-empty="1"] {
    display: none !important;
    margin: 0 !important;
}

.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy [data-tf-field="subheading"] {
    display: inline-flex;
    align-items: center;
    gap: inherit;
}

.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy [data-tf-field="subheading"][style*="--tf-subheading-color"] .br-dot {
    background-color: currentColor !important;
}

.tf-section[data-tf-type="home.social_media"] .tf-social-media-ribbon,
.tf-section[data-tf-type="home.social_media"] .tf-social-media-split-copy {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.tf-section[data-tf-type="home.social_media"] .tf-social-media-ribbon > *,
.tf-section[data-tf-type="home.social_media"] .tf-social-media-split-copy > * {
    min-width: 0;
    max-width: 100%;
}

.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy .text-has_dot,
.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy .sld__tag {
    flex-wrap: wrap;
    max-width: 100%;
    min-width: 0;
}

.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy .br-dot {
    flex-shrink: 0;
}

.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy h3,
.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy h4,
.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy p,
.tf-section[data-tf-type="home.social_media"] .tf-social-media-copy [data-tf-field] {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal;
}

.tf-section[data-tf-type="home.social_media"] .tf-social-media-icons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--tf-social-media-icon-gap, 8px);
    min-width: 0;
    max-width: 100%;
}

.tf-social-media-icons a {
    color: inherit;
    flex-shrink: 0;
}

.tf-social-media-icons.tf-social-icon-2 a,
.tf-social-media-icons.tf-social-icon a,
.tf-social-media-icons.tf-social-media-icons--filled a {
    width: calc(var(--tf-social-media-icon-size, 24px) + 20px);
    height: calc(var(--tf-social-media-icon-size, 24px) + 20px);
}

.tf-social-media-icons.tf-social-media-icons--filled {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--tf-social-media-icon-gap, 8px);
}

.tf-social-media-icons.tf-social-media-icons--filled a {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: var(--line);
}

.tf-social-media-icons.tf-social-media-icons--filled a:hover {
    background: var(--black);
    color: var(--white);
}

.tf-social-media-icons.tf-social-media-icons--plain {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--tf-social-media-icon-gap, 16px);
}

.tf-social-media-icons.tf-social-media-icons--plain a {
    width: auto;
    height: auto;
    border: 0;
    background: none;
    border-radius: 0;
}

.tf-social-media-icons.tf-social-media-icons--plain a:hover {
    background: none;
    opacity: .7;
}

.tf-social-media-icons .tf-input-icon {
    font-size: var(--tf-social-media-icon-size, 24px) !important;
    line-height: 1;
}

.tf-social-media-icons .bi,
.tf-social-media-icons .tf-input-icon i {
    color: inherit !important;
    font-size: inherit !important;
    line-height: 1;
}

@media (max-width: 767.98px) {
    .tf-section[data-tf-type="home.social_media"] .tf-social-media-ribbon > .tf-social-media-copy,
    .tf-section[data-tf-type="home.social_media"] .tf-social-media-ribbon > .tf-social-media-icons {
        flex: 1 1 100%;
        width: 100%;
    }
}

.tf-section[data-tf-type="home.google_reviews"]:has(.tf-grv-void),
.tf-section[data-tf-type="structural.row"]:has(.tf-grv-void):not(:has(.tf-grv)):not(:has(.tf-section:not([data-tf-type="home.google_reviews"]))) {
    display: none !important;
}

.tf-grv {
    position: relative;
    padding-block: var(--tf-grv-space, clamp(44px, 6vw, 88px));
    color: var(--tf-grv-text, #1a1a18);
}

.tf-section--width-full .tf-grv {
    padding-inline: clamp(16px, 3vw, 24px);
}

.tf-grv *,
.tf-grv *::before,
.tf-grv *::after {
    box-sizing: border-box;
}

.tf-grv-sample {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 24px;
    padding: 10px 14px;
    border: 1px dashed rgba(17, 17, 17, 0.22);
    border-radius: 10px;
    font-size: 13px;
    line-height: 1.5;
    color: rgba(17, 17, 17, 0.7);
    background: rgba(17, 17, 17, 0.025);
}

.tf-grv-sample svg {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    margin-top: 1px;
}

.tf-grv-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}

.tf-grv-head-text {
    min-width: 0;
    max-width: 720px;
}

.tf-grv-title {
    margin: 0;
    font-family: var(--tf-typography-headingFontFamily, inherit);
    font-size: clamp(26px, 3vw, 40px);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -0.01em;
    color: inherit;
}

.tf-grv-subtitle {
    margin: 10px 0 0;
    font-size: 15px;
    line-height: 1.6;
    opacity: 0.72;
}

.tf-grv-nav {
    display: flex;
    gap: 10px;
    flex: 0 0 auto;
}

.tf-grv-arrow {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: 1px solid var(--tf-grv-border, rgba(17, 17, 17, 0.14));
    background: var(--tf-grv-card-bg, #fff);
    color: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.tf-grv-arrow svg {
    width: 18px;
    height: 18px;
}

.tf-grv-arrow:hover:not(:disabled) {
    background: var(--tf-grv-btn-bg, #111);
    border-color: var(--tf-grv-btn-bg, #111);
    color: #fff;
}

.tf-grv-arrow:disabled {
    opacity: 0.35;
    cursor: default;
}

.tf-grv-arrow:focus-visible,
.tf-grv-btn:focus-visible,
.tf-grv-readmore:focus-visible,
.tf-grv-track:focus-visible {
    outline: 2px solid var(--tf-grv-btn-bg, #111);
    outline-offset: 3px;
}

.tf-grv-summary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px 28px;
    margin-bottom: 28px;
    padding: 16px 20px;
    border: 1px solid var(--tf-grv-border, rgba(17, 17, 17, 0.1));
    border-radius: var(--tf-grv-radius, 16px);
    background: var(--tf-grv-card-bg, #fff);
}

.tf-grv-summary-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 600;
}

.tf-grv-summary-brand .tf-grv-g {
    width: 24px;
    height: 24px;
}

.tf-grv-summary-score {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.tf-grv-summary-score strong {
    font-size: 26px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.01em;
}

.tf-grv-summary-count {
    font-size: 13px;
    opacity: 0.65;
}

.tf-grv-summary .tf-grv-actions {
    margin-left: auto;
}

.tf-grv-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.tf-grv-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 20px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    text-decoration: none;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
    white-space: nowrap;
}

.tf-grv-btn--solid {
    background: var(--tf-grv-btn-bg, #111);
    color: #fff;
}

.tf-grv-btn--solid:hover {
    opacity: 0.86;
    color: #fff;
}

.tf-grv-btn--ghost {
    background: transparent;
    color: inherit;
    border-color: var(--tf-grv-border, rgba(17, 17, 17, 0.18));
}

.tf-grv-btn--ghost:hover {
    border-color: var(--tf-grv-btn-bg, #111);
    color: inherit;
}

.tf-grv-stars {
    display: inline-flex;
    gap: 2px;
    line-height: 1;
    vertical-align: middle;
}

.tf-grv-star {
    display: block;
    width: 16px;
    height: 16px;
    background-color: rgba(17, 17, 17, 0.14);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M10 1.6l2.6 5.3 5.8.8-4.2 4.1 1 5.8L10 14.9l-5.2 2.7 1-5.8L1.6 7.7l5.8-.8z%22/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M10 1.6l2.6 5.3 5.8.8-4.2 4.1 1 5.8L10 14.9l-5.2 2.7 1-5.8L1.6 7.7l5.8-.8z%22/%3E%3C/svg%3E") center / contain no-repeat;
}

.tf-grv-star.is-on {
    background-color: var(--tf-grv-star, #f5b301);
}

.tf-grv-star.is-half {
    background-color: var(--tf-grv-star, #f5b301);
    opacity: 0.5;
}

.tf-grv-g {
    display: block;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    background: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 48 48%22%3E%3Cpath fill=%22%23FFC107%22 d=%22M43.6 20.5H42V20H24v8h11.3C33.7 32.7 29.2 36 24 36c-6.6 0-12-5.4-12-12s5.4-12 12-12c3.1 0 5.8 1.2 7.9 3.1l5.7-5.7C34 6.1 29.3 4 24 4 13 4 4 13 4 24s9 20 20 20 20-9 20-20c0-1.3-.1-2.4-.4-3.5z%22/%3E%3Cpath fill=%22%23FF3D00%22 d=%22m6.3 14.7 6.6 4.8C14.7 15.1 19 12 24 12c3.1 0 5.8 1.2 7.9 3.1l5.7-5.7C34 6.1 29.3 4 24 4 16.3 4 9.7 8.3 6.3 14.7z%22/%3E%3Cpath fill=%22%234CAF50%22 d=%22M24 44c5.2 0 9.9-2 13.4-5.2l-6.2-5.2C29.2 35.1 26.7 36 24 36c-5.2 0-9.6-3.3-11.3-7.9l-6.5 5C9.5 39.6 16.2 44 24 44z%22/%3E%3Cpath fill=%22%231976D2%22 d=%22M43.6 20.5H42V20H24v8h11.3c-.8 2.2-2.2 4.2-4.1 5.6l6.2 5.2C37 39.2 44 34 44 24c0-1.3-.1-2.4-.4-3.5z%22/%3E%3C/svg%3E") center / contain no-repeat;
}

.tf-grv-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    height: 100%;
    min-width: 0;
    padding: 24px;
    border-radius: var(--tf-grv-radius, 16px);
    background: var(--tf-grv-card-bg, #fff);
    border: 1px solid var(--tf-grv-border, rgba(17, 17, 17, 0.1));
    color: var(--tf-grv-text, #1a1a18);
}

.tf-grv--card-shadow .tf-grv-card,
.tf-grv--card-shadow .tf-grv-summary,
.tf-grv--card-shadow .tf-grv-badge {
    border-color: transparent;
    box-shadow: 0 1px 2px rgba(17, 17, 17, 0.04), 0 14px 34px -14px rgba(17, 17, 17, 0.18);
}

.tf-grv--card-flat .tf-grv-card,
.tf-grv--card-flat .tf-grv-summary,
.tf-grv--card-flat .tf-grv-badge {
    border-color: transparent;
    background: color-mix(in srgb, var(--tf-grv-card-bg, #fff) 94%, var(--tf-grv-text, #1a1a18));
}

.tf-grv-card-head {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.tf-grv-avatar {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: 600;
    color: var(--tf-grv-text, #1a1a18);
    background: color-mix(in srgb, var(--tf-grv-card-bg, #fff) 88%, var(--tf-grv-text, #1a1a18));
}

.tf-grv-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.tf-grv-author {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
}

.tf-grv-name {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    color: inherit;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

a.tf-grv-name:hover {
    text-decoration: underline;
    color: inherit;
}

.tf-grv-date {
    font-size: 13px;
    line-height: 1.4;
    opacity: 0.6;
}

.tf-grv-text {
    font-size: 15px;
    line-height: 1.65;
    white-space: pre-line;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--tf-grv-lines, 5);
    line-clamp: var(--tf-grv-lines, 5);
    overflow: hidden;
}

.tf-grv-text.is-open {
    display: block;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    overflow: visible;
}

.tf-grv-readmore {
    align-self: flex-start;
    margin-top: -4px;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font-size: 13px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.tf-grv-readmore[hidden] {
    display: none;
}

.tf-grv-answer {
    margin-top: auto;
    padding: 10px 0 0 12px;
    border-left: 2px solid var(--tf-grv-border, rgba(17, 17, 17, 0.14));
    font-size: 13px;
    line-height: 1.55;
}

.tf-grv-answer span {
    display: block;
    font-weight: 600;
    margin-bottom: 2px;
}

.tf-grv-answer p {
    margin: 0;
    opacity: 0.72;
    white-space: pre-line;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

.tf-grv-viewport {
    position: relative;
    margin-inline: -6px;
}

.tf-grv-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - (var(--tf-grv-cols, 3) - 1) * var(--tf-grv-gap, 20px)) / var(--tf-grv-cols, 3));
    gap: var(--tf-grv-gap, 20px);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 6px 6px 22px;
    scroll-padding-inline: 6px;
}

.tf-grv-track::-webkit-scrollbar {
    display: none;
}

.tf-grv-track > .tf-grv-card {
    scroll-snap-align: start;
}

.tf-grv-track.is-dragging {
    scroll-snap-type: none;
    scroll-behavior: auto;
    cursor: grabbing;
    user-select: none;
}

.tf-grv-dots {
    display: flex;
    justify-content: center;
    margin-top: 6px;
}

.tf-grv-progress {
    position: relative;
    display: block;
    width: min(220px, 50%);
    height: 2px;
    border-radius: 2px;
    background: rgba(17, 17, 17, 0.12);
    overflow: hidden;
}

.tf-grv-progress i {
    position: absolute;
    inset: 0 auto 0 0;
    width: 30%;
    background: var(--tf-grv-btn-bg, #111);
    border-radius: inherit;
    transition: transform 0.25s ease, width 0.25s ease;
}

.tf-grv-dots.is-static {
    visibility: hidden;
}

.tf-grv-grid {
    display: grid;
    grid-template-columns: repeat(var(--tf-grv-cols, 3), minmax(0, 1fr));
    gap: var(--tf-grv-gap, 20px);
    align-items: stretch;
}

.tf-grv-grid > .tf-grv-card.is-extra {
    display: none;
}

.tf-grv-grid > .tf-grv-card.is-revealed {
    animation: tf-grv-in 0.35s ease both;
}

@keyframes tf-grv-in {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.tf-grv-more {
    display: flex;
    justify-content: center;
    margin-top: 28px;
}

.tf-grv-badge-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.tf-grv-badge-wrap--left {
    align-items: flex-start;
}

.tf-grv-badge-wrap--right {
    align-items: flex-end;
}

.tf-grv-head--badge {
    justify-content: center;
    text-align: center;
}

.tf-grv-badge-wrap--left .tf-grv-head--badge {
    justify-content: flex-start;
    text-align: left;
}

.tf-grv-badge-wrap--right .tf-grv-head--badge {
    justify-content: flex-end;
    text-align: right;
}

.tf-grv-badge {
    width: 100%;
    max-width: 440px;
    padding: 28px;
    border-radius: var(--tf-grv-radius, 16px);
    background: var(--tf-grv-card-bg, #fff);
    border: 1px solid var(--tf-grv-border, rgba(17, 17, 17, 0.1));
    color: var(--tf-grv-text, #1a1a18);
}

.tf-grv-badge--split {
    max-width: 820px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 32px;
    align-items: center;
}

.tf-grv-badge-main {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
}

.tf-grv-badge-score {
    display: flex;
    align-items: center;
    gap: 16px;
}

.tf-grv-badge-score strong {
    font-size: clamp(44px, 5vw, 60px);
    font-weight: 600;
    line-height: 0.95;
    letter-spacing: -0.03em;
}

.tf-grv-badge-score > div {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.tf-grv-badge-score .tf-grv-star {
    width: 20px;
    height: 20px;
}

.tf-grv-dist {
    display: flex;
    flex-direction: column;
    gap: 9px;
    min-width: 0;
}

.tf-grv-dist-row {
    display: grid;
    grid-template-columns: 10px 14px minmax(0, 1fr) 44px;
    align-items: center;
    gap: 8px;
    font-size: 13px;
}

.tf-grv-dist-row svg {
    width: 13px;
    height: 13px;
    fill: var(--tf-grv-star, #f5b301);
}

.tf-grv-dist-row em {
    font-style: normal;
    text-align: right;
    opacity: 0.6;
}

.tf-grv-dist progress {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 8px;
    border: 0;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(17, 17, 17, 0.08);
    color: var(--tf-grv-text, #1a1a18);
}

.tf-grv-dist progress::-webkit-progress-bar {
    background: rgba(17, 17, 17, 0.08);
    border-radius: 999px;
}

.tf-grv-dist progress::-webkit-progress-value {
    background: var(--tf-grv-text, #1a1a18);
    border-radius: 999px;
}

.tf-grv-dist progress::-moz-progress-bar {
    background: var(--tf-grv-text, #1a1a18);
    border-radius: 999px;
}

@media (max-width: 1199.98px) {
    .tf-grv-track {
        grid-auto-columns: calc((100% - var(--tf-grv-gap, 20px)) / 2);
    }

    .tf-grv-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .tf-grv {
        --tf-grv-gap: 12px;
    }

    .tf-grv-head {
        margin-bottom: 20px;
        gap: 16px;
    }

    .tf-grv-subtitle {
        font-size: 14px;
    }

    .tf-grv-arrow {
        width: 40px;
        height: 40px;
    }

    .tf-grv-summary {
        gap: 12px 16px;
        padding: 14px 16px;
        margin-bottom: 20px;
    }

    .tf-grv-summary .tf-grv-actions {
        margin-left: 0;
        width: 100%;
    }

    .tf-grv-summary .tf-grv-btn,
    .tf-grv-badge .tf-grv-btn {
        flex: 1 1 0;
        padding: 0 14px;
    }

    .tf-grv-track {
        grid-auto-columns: 86%;
    }

    .tf-grv-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .tf-grv-card {
        padding: 20px;
    }

    .tf-grv-badge,
    .tf-grv-badge--split {
        padding: 22px;
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }

    .tf-grv-badge-wrap--left,
    .tf-grv-badge-wrap--right {
        align-items: stretch;
    }

    .tf-grv-head--badge,
    .tf-grv-badge-wrap--left .tf-grv-head--badge,
    .tf-grv-badge-wrap--right .tf-grv-head--badge {
        justify-content: center;
        text-align: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tf-grv-track {
        scroll-behavior: auto;
    }

    .tf-grv-grid > .tf-grv-card.is-revealed {
        animation: none;
    }
}
