/* ========================================
   GLOBAL STYLES
   Base styles and utilities used across the entire application
   ======================================== */

/* ========================================
   RESET & BASE
   ======================================== */

@import url('https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css');
@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,700|Inter:var(--body-base-font-weight),600,500,400,700|Roboto:var(--m3-label-large-font-weight)');

* {
	-webkit-font-smoothing: antialiased;
	box-sizing: border-box;
}

html,
body {
	margin: 0;
	height: 100%;
}

/* Focus styles */
button:focus-visible {
	outline: 2px solid #4a90e2 !important;
	outline: -webkit-focus-ring-color auto 5px !important;
}

a {
	text-decoration: none;
}

/* ========================================
   CUSTOM FONT FACES
   ======================================== */

@font-face {
	font-family: 'Trim-Regular';
	src: url('../fonts/Trim-Regular.otf') format('opentype');
}

@font-face {
	font-family: 'Trim-Medium';
	src: url('../fonts/Trim-Medium.otf') format('opentype');
}

@font-face {
	font-family: 'Trim-Bold';
	src: url('../fonts/Trim-Bold.otf') format('opentype');
}

/* ========================================
   CSS CUSTOM PROPERTIES
   ======================================== */

:root {
	/* Typography Variables */
	--body-base-font-family: 'Inter', Helvetica;
	--body-base-font-weight: 400;
	--body-base-font-size: 16px;
	--body-base-letter-spacing: 0px;
	--body-base-line-height: 139.9999976158142%;
	--body-base-font-style: normal;

	/* Material Design Typography */
	--m3-label-large-font-family: 'Roboto', Helvetica;
	--m3-label-large-font-weight: 500;
	--m3-label-large-font-size: 14px;
	--m3-label-large-letter-spacing: 0.10000000149011612px;
	--m3-label-large-line-height: 20px;
	--m3-label-large-font-style: normal;

	/* Shadows */
	--button-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.05);

	/* Colors */
	--m3-schemes-on-surface-variant: rgba(73, 69, 79, 1);
	--m3-schemes-outline-variant: rgba(202, 196, 208, 1);
	--color-border-default-default: var(--color-primitives-gray-300);
	--color-primitives-gray-300: rgba(217, 217, 217, 1);

	/* Spacing */
	--size-space-300: 12px;
	--size-space-400: 16px;
	--size-space-800: 32px;
	--size-space-4000: 160px;
}

/* ========================================
   BASE PAGE CONTAINER
   ======================================== */

.page-container {
	background-color: #ffffff;
	width: 100%;
	position: relative;
}

/* ========================================
   BUTTON COMPONENTS
   ======================================== */

.btn {
	all: unset;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 20px 32px;
	position: relative;
	border-radius: 8px;
	box-shadow: var(--button-shadow);
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.1s ease;
}

.btn:hover {
	opacity: 0.9;
}

.btn:active {
	transform: translateY(1px);
}

/* Button Variants */
.btn-primary {
	background-color: #939040;
}

.btn-secondary {
	background-color: #ffffff;
}

.btn-accent {
	background-color: #939040;
}

.btn-cta {
	background-color: #939040;
	border-radius: 100px;
	width: 262px;
	height: 41px;
	justify-content: center;
	padding: 10px 50px;
}

/* Button Text */
.btn-text {
	font-family: 'Open Sans', Helvetica;
	font-weight: 400;
	font-size: 16px;
	letter-spacing: 0;
	line-height: 24px;
	white-space: nowrap;
	margin-top: -7.5px;
	margin-bottom: -5.5px;
}

.btn-primary .btn-text,
.btn-accent .btn-text {
	color: #ffffff;
}

.btn-secondary .btn-text {
	color: #000000;
}

.btn-cta .btn-text {
	color: #ffffff;
	font-family: 'Inter', Helvetica;
	font-size: 17.5px;
	line-height: normal;
	margin: 0;
	margin-left: -25.5px;
	margin-right: -25.5px;
}

/* ========================================
   COLOR SYSTEM
   ======================================== */

/* Color Dot Component */
.color-dot {
	width: 22px;
	height: 22px;
	border-radius: 11px;
	display: inline-block;
	cursor: pointer;
	transition: transform 0.2s ease;
}

.color-dot:hover {
	transform: scale(1.1);
}

.color-dot.active {
	border: 3px solid #ffffff;
}

/* Small Variant */
.color-dot.small {
	width: 16px;
	height: 16px;
	border-radius: 8.18px;
}

.color-dot.small.active {
	border: 2.23px solid #ffffff;
}

/* Color Palette */
.color-beige {
	background-color: #e0d6c3;
}

.color-brown {
	background-color: #833b0c;
}

.color-burgundy {
	background-color: #8c001a;
}

.color-gray {
	background-color: #a9a9a9;
}

.color-olive {
	background-color: #94812a;
}

.color-light-gray {
	background-color: #e3e3e3;
}

.color-teal {
	background-color: #5bc9bf;
}

.color-dark-blue {
	background-color: #394656;
}

.color-black {
	background-color: #000000;
}

.color-yellow {
	background-color: #ffff00;
}

.color-green {
	background-color: #59993b;
}

.color-pink {
	background-color: #d36d71;
}

/* ========================================
   SECTION LAYOUT
   ======================================== */

.section {
	position: relative;
	margin-bottom: 125px;
	padding: 0 94px;
}

.section-title {
	font-family: 'Inter', Helvetica;
	font-weight: 600;
	color: #000000;
	font-size: 48px;
	letter-spacing: -0.96px;
	line-height: normal;
	margin: 0 0 40px 0;
}

/* ========================================
   PRODUCT CARD (SHARED COMPONENT)
   ======================================== */

.product-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	text-decoration: none;
	transition: transform 0.2s ease;
}

.product-card:hover {
	transform: translateY(-4px);
}

.product-image {
	width: 100%;
	border-radius: 8px;
	background-size: cover;
	background-position: 50% 50%;
}

.product-info {
	display: flex;
	flex-direction: column;
}

.product-name {
	font-family: 'Trim-Bold', Helvetica;
	font-weight: 700;
	color: #000000;
	letter-spacing: 0;
	margin: 0;
}

.product-description {
	font-family: 'Inter', Helvetica;
	font-weight: 400;
	color: #828282;
	letter-spacing: 0;
	margin: 0;
}

.color-options {
	display: flex;
	align-items: center;
	gap: 6.5px;
}

/* ========================================
   CHIP COMPONENT (FILTERS)
   ======================================== */

.chip {
	display: inline-flex;
	height: 32px;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	overflow: hidden;
	cursor: pointer;
	transition: all 0.2s ease;
}

.chip:hover {
	transform: scale(1.02);
}

/* Chip Variants */
.chip-active {
	background-color: #000000;
}

.chip-outline {
	border: 1px solid #cac4d0;
	background: transparent;
}

.chip-outline:hover {
	border-color: #000000;
}

/* Chip Text */
.chip-text {
	padding: 6px 12px;
	font-family: var(--m3-label-large-font-family);
	font-weight: var(--m3-label-large-font-weight);
	font-size: var(--m3-label-large-font-size);
	text-align: center;
	letter-spacing: var(--m3-label-large-letter-spacing);
	line-height: var(--m3-label-large-line-height);
	white-space: nowrap;
	font-style: var(--m3-label-large-font-style);
}

.chip-active .chip-text {
	color: #ffffff;
}

.chip-outline .chip-text {
	color: #49454f;
}

/* ========================================
   RESPONSIVE UTILITIES
   ======================================== */

@media (max-width: 768px) {
	.section {
		padding: 0 20px;
		margin-bottom: 80px;
	}

	.btn {
		padding: 15px 25px;
	}

	.section-title {
		font-size: 36px;
		margin-bottom: 30px;
	}
}

@media (max-width: 480px) {
	.section {
		margin-bottom: 60px;
	}

	.section-title {
		font-size: 28px;
	}
}

/* ========================================
   THEME MODES (MATERIAL DESIGN)
   ======================================== */

/* Light Theme - Default */
[data-m3-mode='light'] {
	--m3-schemes-on-surface-variant: rgba(73, 69, 79, 1);
	--m3-schemes-outline-variant: rgba(202, 196, 208, 1);
}

/* Light High Contrast */
[data-m3-mode='light-high-contrast'] {
	--m3-schemes-on-surface-variant: rgba(37, 35, 43, 1);
	--m3-schemes-outline-variant: rgba(69, 65, 74, 1);
}

/* Light Medium Contrast */
[data-m3-mode='light-medium-contrast'] {
	--m3-schemes-on-surface-variant: rgba(69, 65, 74, 1);
	--m3-schemes-outline-variant: rgba(125, 121, 131, 1);
}

/* Dark Theme */
[data-m3-mode='dark'] {
	--m3-schemes-on-surface-variant: rgba(202, 196, 208, 1);
	--m3-schemes-outline-variant: rgba(73, 69, 79, 1);
}

/* Dark High Contrast */
[data-m3-mode='dark-high-contrast'] {
	--m3-schemes-on-surface-variant: rgba(255, 249, 255, 1);
	--m3-schemes-outline-variant: rgba(206, 200, 212, 1);
}

/* Dark Medium Contrast */
[data-m3-mode='dark-medium-contrast'] {
	--m3-schemes-on-surface-variant: rgba(206, 200, 212, 1);
	--m3-schemes-outline-variant: rgba(134, 129, 139, 1);
}

/* ========================================
   UTILITY CLASSES
   ======================================== */

/* Text Utilities */
.text-center {
	text-align: center;
}

.text-left {
	text-align: left;
}

.text-right {
	text-align: right;
}

/* Display Utilities */
.d-none {
	display: none;
}

.d-block {
	display: block;
}

.d-flex {
	display: flex;
}

/* Spacing Utilities */
.mt-0 {
	margin-top: 0;
}
.mt-1 {
	margin-top: 8px;
}
.mt-2 {
	margin-top: 16px;
}
.mt-3 {
	margin-top: 24px;
}
.mt-4 {
	margin-top: 32px;
}
.mt-5 {
	margin-top: 40px;
}

.mb-0 {
	margin-bottom: 0;
}
.mb-1 {
	margin-bottom: 8px;
}
.mb-2 {
	margin-bottom: 16px;
}
.mb-3 {
	margin-bottom: 24px;
}
.mb-4 {
	margin-bottom: 32px;
}
.mb-5 {
	margin-bottom: 40px;
}

/* ========================================
   ANIMATIONS
   ======================================== */

@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes slideUp {
	from {
		transform: translateY(20px);
		opacity: 0;
	}
	to {
		transform: translateY(0);
		opacity: 1;
	}
}

.animate-fadeIn {
	animation: fadeIn 0.3s ease;
}

.animate-slideUp {
	animation: slideUp 0.3s ease;
}

