/* ============================================================
   Homepage sections
   ============================================================ */

/* 1. Hero carousel
   ------------------------------------------------------------------
   高度由 .gs-hero__media 的 aspect-ratio 决定，断点与比例完全对齐源站
   (reduceeveryday.com) 的 .home-hero：
     基线 3 / 1.15   ·  ≤749px 1 / 1.478（= 手机竖图 2030×3000）
                       ·  ≥1500px 2.55 / 1（= 桌面横图 3071×1200，整图可见）
   ⚠ .gs-hero__media 的 width 必须写死 100%：只给 height + aspect-ratio 时，
     浏览器会用宽高比「反推宽度」（width:auto），媒体盒被撑到比 slide 还宽
     → 视口越宽，右侧越早露出 .gs-hero 的底色；视口窄时右侧图片被裁。 */
.gs-hero {
	position: relative;
	overflow: hidden;
	background: var(--gs-teal);
}

.gs-hero__track {
	display: flex;
	transition: transform 0.6s cubic-bezier(0.33, 1, 0.68, 1);
}

.gs-hero__slide {
	position: relative;
	flex: 0 0 100%;
	min-width: 100%;
}

.gs-hero__media {
	position: relative;
	width: 100%;
	aspect-ratio: 3 / 1.15;
	min-height: 395px;
	max-height: 886px;
}

.gs-hero__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 横/竖图切换：默认桌面横图。基础样式里 .gs-hide-mobile/.gs-hide-desktop
   是在 ≤989px 翻转的，而源站的 hero 断点是 749px，这里为 hero 单独覆盖，
   避免 750–989px 出现「两张图都被隐藏 → 只剩纯色块」。 */
.gs-hero__img.gs-hide-mobile {
	display: block;
}

.gs-hero__img.gs-hide-desktop {
	display: none;
}

@media (max-width: 749px) {
	.gs-hero__media {
		aspect-ratio: 1 / 1.478;
	}

	.gs-hero__img.gs-hide-mobile {
		display: none !important;
	}

	.gs-hero__img.gs-hide-desktop {
		display: block !important;
	}
}

@media (min-width: 750px) and (max-width: 989px) {
	.gs-hero__img.gs-hide-mobile {
		display: block !important;
	}

	.gs-hero__img.gs-hide-desktop {
		display: none !important;
	}
}

@media (min-width: 1500px) {
	.gs-hero__media {
		aspect-ratio: 2.55 / 1;
	}
}

.gs-hero__content {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
}

.gs-hero__content--left {
	justify-content: flex-start;
}

.gs-hero__content--right {
	justify-content: flex-end;
}

.gs-hero__box {
	max-width: 440px;
	color: rgb(var(--gs-hero-fg, 251 246 240));
	width: 100%;
}

.gs-hero__content--right .gs-hero__box {
	text-align: right;
}

.gs-hero__heading {
	font-family: var(--gs-heading-font);
	font-weight: 400;
	font-size: var(--gs-hero-heading-m, 38px);
	line-height: 1.02;
	margin-bottom: 14px;
	text-shadow: 0 1px 22px rgba(0, 0, 0, 0.12);
}

.gs-hero__text {
	font-size: var(--gs-hero-text-m, 19px);
	font-weight: 500;
	line-height: 1.15;
	color: rgb(var(--gs-hero-fg));
	margin-bottom: 20px;
}

.gs-hero__btn {
	padding: 15px 38px;
}

@media (min-width: 990px) {
	.gs-hero__heading {
		font-size: var(--gs-hero-heading, 50px);
	}

	.gs-hero__text {
		font-size: var(--gs-hero-text, 25px);
	}
}

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

.gs-hero__dots button {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.55);
	border: 1px solid rgba(0, 0, 0, 0.15);
	transition: background 0.2s ease, transform 0.2s ease;
}

.gs-hero__dots button.is-active {
	background: #fff;
	transform: scale(1.25);
}

/* 2. Press marquee — teal band, white logos on lighter teal cards */
.gs-press {
	background: #00706f;
	padding: 24px 0;
}

.gs-press__heading {
	text-align: center;
	color: #fff;
	font-size: 24px;
	font-weight: 600;
	margin: 0 0 18px;
}

.gs-press__viewport {
	position: relative;
	overflow: hidden;
	-webkit-mask-image: none;
	mask-image: none;
}

.gs-press__viewport::before,
.gs-press__viewport::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	width: 60px;
	z-index: 2;
	pointer-events: none;
}

.gs-press__viewport::before {
	left: 0;
	background: linear-gradient(270deg, rgba(0, 107, 105, 0) 0%, #006b69 80%);
}

.gs-press__viewport::after {
	right: 0;
	background: linear-gradient(270deg, #006b69 20%, rgba(0, 107, 105, 0) 100%);
}

.gs-press__track {
	display: flex;
	align-items: center;
	gap: 12px;
	width: max-content;
	animation: gs-press-scroll 36s linear infinite;
}

.gs-press__item {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #0d7d7c;
	border-radius: 10px;
	width: 130px;
	height: 65px;
	padding: 20px 0.7rem;
}

.gs-press__item img {
	display: block;
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	object-position: center;
}

@keyframes gs-press-scroll {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

@media (min-width: 750px) {
	.gs-press__item {
		width: 190px;
		height: 90px;
	}

	.gs-press__heading {
		margin-bottom: 22px;
		font-size: 32px;
	}

	.gs-press {
		padding: 30px 0 34px;
	}
}

/* 3/7. Rich text headings */
.gs-richtext {
	padding: 54px 0 30px;
}

.gs-richtext__heading {
	color: var(--gs-teal);
}

.gs-richtext--center .gs-richtext__heading {
	text-align: center;
}

.gs-richtext--mint {
	background: rgba(206, 234, 225, 0.5);
	padding: 44px 0;
	margin: 60px 0 0;
}

/* 4. Category cards */
.gs-collist {
	padding: 26px 0 40px;
}

.gs-collist__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--gs-grid-gap);
}

.gs-collist__media {
	position: relative;
	display: block;
	border-radius: var(--gs-radius-card);
	overflow: hidden;
	background: var(--gs-gray);
	aspect-ratio: 1 / 1.06;
}

.gs-collist__img {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 0.5s ease;
}

.gs-collist__img.is-active {
	opacity: 1;
}

.gs-collist__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gs-collist__dots {
	position: absolute;
	bottom: 12px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 6px;
	z-index: 2;
}

.gs-collist__dots i {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.6);
}

.gs-collist__dots i.is-active {
	background: #fff;
}

.gs-collist__title {
	font-family: var(--gs-heading-font);
	font-weight: 400;
	font-size: 34px;
	margin: 16px 0 6px;
}

.gs-collist__title a {
	color: var(--gs-teal);
}

.gs-collist__text {
	font-size: 15px;
	line-height: 1.55;
	color: rgba(18, 18, 18, 0.82);
}

.gs-collist__actions {
	display: flex;
	justify-content: center;
	margin-top: 34px;
}

/* 5. Module1 */
.gs-module1 {
	background: var(--gs-teal);
	color: var(--gs-cream);
	padding: 74px 0 84px;
	margin-top: 40px;
}

.gs-module1__head {
	text-align: center;
	margin-bottom: 44px;
}

.gs-module1__head h2 {
	color: var(--gs-cream);
}

.gs-module1__head p {
	margin: 12px auto 0;
	max-width: 480px;
	font-size: 16px;
}

.gs-module1__grid {
	display: grid;
	grid-template-columns: 340px 1fr;
	gap: 54px;
	align-items: start;
}

.gs-module1__thumbs {
	display: flex;
	flex-direction: column;
	gap: 14px;
	position: sticky;
	top: 130px;
}

.gs-module1__thumb {
	display: none;
	border-radius: var(--gs-radius-card);
	overflow: hidden;
	border: 3px solid transparent;
	background: rgba(251, 246, 240, 0.08);
	transition: border-color 0.2s ease;
}

.gs-module1__thumb.is-active {
	display: block;
	border-color: transparent;
}

.gs-module1__thumb img {
	width: 100%;
	aspect-ratio: 1 / 1.1;
	object-fit: cover;
}

.gs-module1__pane {
	display: none;
}

.gs-module1__pane.is-active {
	display: block;
	animation: gs-fade 0.45s ease;
}

@keyframes gs-fade {
	from {
		opacity: 0;
		transform: translateY(8px);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

.gs-module1__pane-img {
	border-radius: var(--gs-radius-card);
	overflow: hidden;
	margin-bottom: 22px;
}

.gs-module1__name {
	font-family: var(--gs-heading-font);
	font-weight: 400;
	font-size: 52px;
	margin-bottom: 8px;
}

.gs-module1__lead {
	font-size: 17px;
	margin-bottom: 26px;
	max-width: 520px;
}

.gs-module1__features {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-bottom: 30px;
}

.gs-module1__feature {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	max-width: 560px;
}

.gs-module1__feature-icon {
	flex: none;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: var(--gs-cream);
	display: flex;
	align-items: center;
	justify-content: center;
}

.gs-module1__feature-icon img {
	width: 34px;
	height: 34px;
	object-fit: contain;
}

.gs-module1__feature h4 {
	font-size: 17px;
	font-weight: 700;
	margin-bottom: 3px;
}

.gs-module1__feature p {
	font-size: 14.5px;
	margin: 0;
	opacity: 0.92;
}

.gs-module1 .gs-btn--primary {
	background: var(--gs-cream);
	color: var(--gs-teal);
}

.gs-module1 .gs-btn--primary:hover {
	opacity: 0.9;
}

.gs-module1__arrows {
	display: flex;
	gap: 14px;
	margin-top: 26px;
}

.gs-module1__arrows button {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 1.5px solid var(--gs-cream);
	color: var(--gs-cream);
	display: flex;
	align-items: center;
	justify-content: center;
}

.gs-module1__arrows svg {
	width: 20px;
	height: 20px;
}

/* Impact section */
.gs-impact {
	padding: 30px 0 70px;
}

.gs-impact__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--gs-grid-gap);
	align-items: center;
}

.gs-impact__media {
	position: relative;
	border-radius: var(--gs-radius-card);
	overflow: hidden;
}

.gs-impact__media > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gs-impact__badge {
	position: absolute;
	right: 18px;
	bottom: 18px;
	width: 120px;
	height: 120px;
	animation: gs-spin 14s linear infinite;
}

@keyframes gs-spin {
	to {
		transform: rotate(360deg);
	}
}

.gs-impact__content h2 {
	color: var(--gs-teal);
	margin-bottom: 14px;
}

.gs-impact__lead {
	font-size: 16.5px;
	max-width: 480px;
}

.gs-impact__stat {
	display: flex;
	gap: 16px;
	margin: 22px 0 26px;
}

.gs-impact__stat-icon {
	flex: none;
	width: 64px;
	height: 64px;
}

.gs-impact__stat-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.gs-impact__stat h3 {
	color: var(--gs-teal);
	font-size: 30px;
	margin-bottom: 4px;
}

.gs-impact__stat p {
	font-size: 14.5px;
	margin-bottom: 4px;
}

.gs-impact__stat a {
	color: var(--gs-teal);
	text-decoration: underline;
}

.gs-impact__stat small {
	font-size: 12px;
	color: rgba(18, 18, 18, 0.6);
}

/* 8. Quiz banner */
.gs-quiz {
	position: relative;
	margin: 40px 0 20px;
}

.gs-quiz__media img {
	width: 100%;
}

.gs-quiz__content {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
}

.gs-quiz__box {
	background: rgba(251, 246, 240, 0.92);
	border-radius: 22px;
	padding: 34px 36px;
	max-width: 430px;
}

.gs-quiz__box h2 {
	color: var(--gs-teal);
	margin-bottom: 10px;
}

.gs-quiz__box p {
	font-size: 16px;
	margin-bottom: 22px;
}

/* 10. Video reviews */
.gs-videos {
	background: linear-gradient(to bottom, var(--gs-cream) 65%, var(--gs-teal) 65%);
	padding: 80px 0 56px;
}

.gs-videos__head {
	text-align: center;
	max-width: 620px;
	margin: 0 auto 40px;
}

.gs-videos__head h2 {
	color: var(--gs-teal);
	margin-bottom: 12px;
}

.gs-videos__count {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	margin-top: 12px;
}

.gs-videos__count svg {
	height: 22px;
	width: auto;
}

.gs-videos__count p {
	margin: 0;
	font-weight: 600;
	font-size: 14.5px;
}

.gs-videos__slider {
	position: relative;
}

.gs-videos__track {
	display: flex;
	gap: var(--gs-grid-gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 8px;
}

.gs-videos__track::-webkit-scrollbar {
	display: none;
}

.gs-videos__slide {
	flex: 0 0 calc((100% - 3 * var(--gs-grid-gap)) / 4);
	scroll-snap-align: start;
}

.gs-videos__cover {
	position: relative;
	border-radius: var(--gs-radius-card);
	overflow: hidden;
	aspect-ratio: 9 / 16;
	background: rgba(0, 0, 0, 0.08);
}

.gs-videos__cover-img,
.gs-videos__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gs-videos__play {
	position: absolute;
	inset: 0;
	margin: auto;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: rgba(251, 246, 240, 0.92);
	color: var(--gs-teal);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	transition: transform 0.2s ease;
}

.gs-videos__play:hover {
	transform: scale(1.08);
}

.gs-videos__play svg {
	width: 16px;
	height: 16px;
	margin-left: 3px;
}

.gs-videos__arrows {
	display: flex;
	justify-content: center;
	gap: 14px;
	margin-top: 30px;
}

.gs-videos__arrows button {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 1.5px solid var(--gs-cream);
	color: var(--gs-cream);
	display: flex;
	align-items: center;
	justify-content: center;
}

.gs-videos__arrows svg {
	width: 20px;
	height: 20px;
}

.gs-videos__dots {
	display: none;
}

/* 11. Featured text reviews */
.gs-reviews {
	background: var(--gs-teal);
	padding: 60px 0 70px;
}

.gs-reviews__track {
	display: flex;
	gap: var(--gs-grid-gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 6px;
}

.gs-reviews__track::-webkit-scrollbar {
	display: none;
}

.gs-reviews__slide {
	flex: 0 0 calc((100% - 2 * var(--gs-grid-gap)) / 3);
	scroll-snap-align: start;
}

.gs-reviews__card {
	background: var(--gs-cream);
	border-radius: var(--gs-radius-card);
	padding: 30px 28px;
	height: 100%;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.gs-reviews__quote svg {
	width: 44px;
	height: 32px;
}

.gs-reviews__namerow {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.gs-reviews__namerow h3 {
	font-size: 18px;
}

.gs-reviews__namerow svg {
	height: 18px;
	width: auto;
}

.gs-reviews__card h2 {
	font-size: 24px;
	line-height: 1.2;
}

.gs-reviews__card p {
	font-size: 15px;
	line-height: 1.6;
	color: rgba(18, 18, 18, 0.85);
	margin: 0;
}

.gs-reviews__arrows {
	display: flex;
	gap: 14px;
	margin-top: 24px;
}

.gs-reviews__arrows button {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 1.5px solid var(--gs-cream);
	color: var(--gs-cream);
	display: flex;
	align-items: center;
	justify-content: center;
}

.gs-reviews__arrows svg {
	width: 20px;
	height: 20px;
}

.gs-reviews__actions {
	display: flex;
	justify-content: center;
	margin-top: 40px;
}

.gs-reviews__actions .gs-btn--secondary {
	color: var(--gs-cream);
	border-color: var(--gs-cream);
}

/* 12. Wave marquee */
.gs-wave {
	background: var(--gs-teal);
	padding: 20px 0 30px;
}

.gs-wave__wrap svg {
	display: block;
}

@media (max-width: 989px) {
	.gs-collist__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.gs-collist__title {
		font-size: 26px;
	}

	.gs-module1__grid {
		grid-template-columns: 1fr;
	}

	.gs-module1__thumbs {
		flex-direction: row;
		position: static;
	}

	.gs-module1__thumb {
		display: block;
		flex: 1;
	}

	.gs-module1__thumb.is-active {
		border-color: var(--gs-cream);
	}

	.gs-module1__thumbs .gs-module1__thumb img {
		aspect-ratio: 1;
	}

	.gs-impact__grid {
		grid-template-columns: 1fr;
	}

	.gs-quiz__content {
		position: static;
		padding-top: 24px;
	}

	.gs-quiz__box {
		max-width: 100%;
		padding: 24px 22px;
	}

	.gs-videos {
		background: linear-gradient(to bottom, var(--gs-cream) 60%, var(--gs-teal) 60%);
		padding: 56px 0 44px;
	}

	.gs-videos__slide {
		flex: 0 0 calc((100% - var(--gs-grid-gap)) / 2);
	}

	.gs-reviews__slide {
		flex: 0 0 calc(100% - 30px);
	}

	.gs-richtext {
		padding: 38px 0 20px;
	}
}
