/* Typography styles for CNAM and PA themes */
@use 'breakpoints' as bp;

.theme-cnam,
.theme-pa,
.theme-ap {
	/* Headings with Vuetify classes */
	.text-h1 {
		font-size: var(--v-typography-h1-font-size);
		font-weight: var(--v-typography-h1-font-weight);
		line-height: var(--v-typography-h1-line-height);
		letter-spacing: var(--v-typography-h1-letter-spacing);
	}

	.text-h2 {
		font-size: var(--v-typography-h2-font-size);
		font-weight: var(--v-typography-h2-font-weight);
		line-height: var(--v-typography-h2-line-height);
		letter-spacing: var(--v-typography-h2-letter-spacing);
	}

	.text-h3 {
		font-size: var(--v-typography-h3-font-size);
		font-weight: var(--v-typography-h3-font-weight);
		line-height: var(--v-typography-h3-line-height);
		letter-spacing: var(--v-typography-h3-letter-spacing);
	}

	.text-h4 {
		font-size: var(--v-typography-h4-font-size);
		font-weight: var(--v-typography-h4-font-weight);
		line-height: var(--v-typography-h4-line-height);
		letter-spacing: var(--v-typography-h4-letter-spacing);
	}

	.text-h5 {
		font-size: var(--v-typography-h5-font-size);
		font-weight: var(--v-typography-h5-font-weight);
		line-height: var(--v-typography-h5-line-height);
		letter-spacing: var(--v-typography-h5-letter-spacing);
	}

	.text-h6 {
		font-size: var(--v-typography-h6-font-size);
		font-weight: var(--v-typography-h6-font-weight);
		line-height: var(--v-typography-h6-line-height);
		letter-spacing: var(--v-typography-h6-letter-spacing);
	}

	/* Native HTML heading elements */
	h1 {
		font-size: var(--v-typography-h1-font-size);
		font-weight: var(--v-typography-h1-font-weight);
		line-height: var(--v-typography-h1-line-height);
		letter-spacing: var(--v-typography-h1-letter-spacing);
		margin-bottom: 0.5rem;
	}

	h2 {
		font-size: var(--v-typography-h2-font-size);
		font-weight: var(--v-typography-h2-font-weight);
		line-height: var(--v-typography-h2-line-height);
		letter-spacing: var(--v-typography-h2-letter-spacing);
		margin-bottom: 0.5rem;
	}

	h3 {
		font-size: var(--v-typography-h3-font-size);
		font-weight: var(--v-typography-h3-font-weight);
		line-height: var(--v-typography-h3-line-height);
		letter-spacing: var(--v-typography-h3-letter-spacing);
		margin-bottom: 0.5rem;
	}

	h4 {
		font-size: var(--v-typography-h4-font-size);
		font-weight: var(--v-typography-h4-font-weight);
		line-height: var(--v-typography-h4-line-height);
		letter-spacing: var(--v-typography-h4-letter-spacing);
		margin-bottom: 0.5rem;
	}

	h5 {
		font-size: var(--v-typography-h5-font-size);
		font-weight: var(--v-typography-h5-font-weight);
		line-height: var(--v-typography-h5-line-height);
		letter-spacing: var(--v-typography-h5-letter-spacing);
		margin-bottom: 0.5rem;
	}

	h6 {
		font-size: var(--v-typography-h6-font-size);
		font-weight: var(--v-typography-h6-font-weight);
		line-height: var(--v-typography-h6-line-height);
		letter-spacing: var(--v-typography-h6-letter-spacing);
		margin-bottom: 0.5rem;
	}

	/* Body text */
	.text-body-1 {
		font-size: var(--v-typography-body1-font-size);
		font-weight: var(--v-typography-body1-font-weight);
		line-height: var(--v-typography-body1-line-height);
		letter-spacing: var(--v-typography-body1-letter-spacing);
	}

	.text-body-2 {
		font-size: var(--v-typography-body2-font-size);
		font-weight: var(--v-typography-body2-font-weight);
		line-height: var(--v-typography-body2-line-height);
		letter-spacing: var(--v-typography-body2-letter-spacing);
	}

	/* Subtitle text */
	.text-subtitle-1 {
		font-size: var(--v-typography-subtitle1-font-size);
		font-weight: var(--v-typography-subtitle1-font-weight);
		line-height: var(--v-typography-subtitle1-line-height);
		letter-spacing: var(--v-typography-subtitle1-letter-spacing);
	}

	.text-subtitle-2 {
		font-size: var(--v-typography-subtitle2-font-size);
		font-weight: var(--v-typography-subtitle2-font-weight);
		line-height: var(--v-typography-subtitle2-line-height);
		letter-spacing: var(--v-typography-subtitle2-letter-spacing);
	}

	/* Other typography */
	.text-caption {
		font-size: var(--v-typography-caption-font-size);
		font-weight: var(--v-typography-caption-font-weight);
		line-height: var(--v-typography-caption-line-height);
		letter-spacing: var(--v-typography-caption-letter-spacing);
	}

	.text-overline {
		font-size: var(--v-typography-overline-font-size);
		font-weight: var(--v-typography-overline-font-weight);
		line-height: var(--v-typography-overline-line-height);
		letter-spacing: var(--v-typography-overline-letter-spacing);
		text-transform: var(--v-typography-overline-text-transform, uppercase);
	}

	/* Display text */
	.text-display-1 {
		font-size: var(--v-typography-display1-font-size);
		font-weight: var(--v-typography-display1-font-weight);
		line-height: var(--v-typography-display1-line-height);
		letter-spacing: var(--v-typography-display1-letter-spacing);
	}

	.text-display-2 {
		font-size: var(--v-typography-display2-font-size);
		font-weight: var(--v-typography-display2-font-weight);
		line-height: var(--v-typography-display2-line-height);
		letter-spacing: var(--v-typography-display2-letter-spacing);
	}

	.display-1 {
		font-size: 40px;
		line-height: 130%;
	}

	.display-1-bold {
		font-size: 40px;
		font-weight: bold;
		line-height: 130%;
	}

	.display-2 {
		font-size: 30px;
		line-height: 130%;
	}

	.display-2-bold {
		font-size: 30px;
		font-weight: bold;
		line-height: 130%;
	}

	.title {
		font-size: var(--v-fontSize-titres);
	}

	.alt-title {
		font-size: var(--v-fontSize-titresAlternatifs);
	}

	.body-text {
		font-size: var(--v-fontSize-corpsDeTexte);
	}

	.link-label {
		font-size: var(--v-fontSize-liensEtLibelles);
	}
}

.theme-ap2026 {
	a {
		color: rgb(var(--v-theme-primary));

		&:hover {
			color: rgb(var(--v-theme-secondary));
		}
	}
}

.theme-ap,
.theme-ap2026 {
	p {
		font-size: var(--v-ap-fontSizeXs);
	}

	a {
		font-size: var(--v-ap-fontSizeXs);
	}

	[class*='text-'] {
		font-family: Arial, Helvetica, sans-serif !important;
		font-weight: 400;
		line-height: 1.3 !important;
	}

	// sets the service title text style
	[class*='text-service-title'] {
		font-family: Arial, Helvetica, sans-serif !important;
		font-size: var(--v-ap-fontSizeXxl) !important;
		font-weight: 700 !important;
		text-transform: uppercase !important;

		@media #{bp.$down-sm} {
			font-size: var(--v-ap-fontSizeMd) !important;
		}
	}

	// sets classes font sizes
	[class*='text-'][class*='-h1'],
	h1 {
		font-size: var(--v-ap-fontSizeXxl) !important;
		font-weight: 700 !important;
	}

	[class*='text-'][class*='-h2'],
	h2 {
		font-size: var(--v-ap-fontSizeLg) !important;
		font-weight: 700;
	}

	[class*='text-'][class*='-h3'],
	h3 {
		font-size: var(--v-ap-fontSizeMd) !important;
	}

	[class*='text-'][class*='-h4'],
	h4 {
		font-size: var(--v-ap-fontSizeSm) !important;
		font-weight: 700;
	}

	[class*='text-'][class*='-h5'],
	[class*='text-'][class*='-h6'],
	h5,
	h6 {
		font-size: var(--v-ap-fontSizeSm) !important;
		font-weight: 700;
	}

	[class*='text-'][class*='-subtitle-1'],
	[class*='text-'][class*='-subtitle-2'],
	[class*='text-'][class*='-body-1'],
	[class*='text-'][class*='-body-2'],
	[class*='text-'][class*='-button'],
	[class*='text-'][class*='-overline'] {
		font-size: var(--v-ap-fontSizeXs) !important;
	}

	[class*='text-'][class*='-caption'] {
		font-size: var(--v-ap-fontSizeXxs) !important;
	}

	// sets font weight
	[class*='text-'][class*='-subtitle-1'],
	[class*='text-'][class*='-subtitle-2'] {
		font-weight: 700;
	}

	[class*='font-weight-bold'] {
		font-weight: 700 !important;
	}

	.font-size-xxs {
		font-size: var(--v-ap-fontSizeXxs);
	}

	.font-size-xs {
		font-size: var(--v-ap-fontSizeXs);
	}

	.font-size-sm {
		font-size: var(--v-ap-fontSizeSm);
	}

	.font-size-md {
		font-size: var(--v-ap-fontSizeMd);
	}

	.font-size-lg {
		font-size: var(--v-ap-fontSizeLg);
	}

	.font-size-xl {
		font-size: var(--v-ap-fontSizeXl);
	}

	.font-size-xxl {
		font-size: var(--v-ap-fontSizeXxl);
	}

	.relative {
		position: relative;
	}

	.list-style-none {
		margin: 0;
		padding: 0 !important;
		list-style: none !important;
	}

	.w-100 {
		width: 100%;
	}

	.h-100 {
		height: 100%;
	}

	.pointer {
		cursor: pointer;
	}

	.v-field--active .v-label.v-field-label {
		font-weight: 700 !important;
	}
}

// Font Styles
.theme--ap.v-sheet {
	color: rgb(var(--v-theme-ap-grey-darken-1));
}
