/**
 * AJ3 Cool-Aire single-product Product Description section.
 *
 * Every selector is scoped to the .aj3-product-description component so the
 * active theme keeps control of global WooCommerce and site typography.
 * No global element rules are declared here.
 */

.aj3-product-description {
	/*
	 * AJ3 brand palette. These mirror the tokens already used by the AJ3 shop,
	 * payment and cart stylesheets so the section reads as native:
	 *   #ef9e6b  --aj3-accent / --aj3-primary      (warm brand accent)
	 *   #fef6f1  --aj3-surface-accent / -primary-soft (soft warm tint)
	 *   #d8b9a6  warm mid-tone used in the payment component
	 *   #ded6d1  --aj3-border
	 *   #1f1f1f  --aj3-text / --aj3-primary-strong
	 *   #a8560c  deep warm accent from the AJ3 theme palette, used for label
	 *            text because it holds AA contrast where #ef9e6b would not.
	 */
	--aj3-desc-surface: #ffffff;
	--aj3-desc-heading: #1f1f1f;
	--aj3-desc-text: #1f1f1f;
	--aj3-desc-strong: #a8560c;
	--aj3-desc-label: #a8560c;
	--aj3-desc-accent: #ef9e6b;
	--aj3-desc-accent-soft: #d8b9a6;
	--aj3-desc-specs-bg: #fef6f1;
	--aj3-desc-divider: #ded6d1;
	--aj3-desc-frame: #ded6d1;
	grid-column: 1 / -1;
	display: block;
	width: auto;
	max-width: none;
	min-width: 0;
	margin: clamp(2rem, 4vw, 3.25rem) 0 0;
	padding: clamp(2rem, 4vw, 3.25rem) clamp(1rem, 4vw, 3rem) clamp(2rem, 4vw, 3rem);
	border-block-start: 1px solid var(--aj3-desc-frame);
	background-color: var(--aj3-desc-surface);
	color: var(--aj3-desc-text);
	font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	box-sizing: border-box;
}

.aj3-product-description *,
.aj3-product-description *::before,
.aj3-product-description *::after {
	box-sizing: border-box;
}

/* Section heading: compact uppercase label, cyan rule, subtle divider. */
.aj3-product-description .aj3-product-description__heading {
	position: relative;
	margin: 0 0 1.125rem;
	padding: 0 0 0.875rem 0.875rem;
	border-block-end: 1px solid var(--aj3-desc-divider);
	color: var(--aj3-desc-heading);
	font-family: inherit;
	font-size: 13px;
	font-weight: 850;
	letter-spacing: 0.1em;
	line-height: 1.2;
	text-transform: uppercase;
}

.aj3-product-description .aj3-product-description__heading::before {
	content: "";
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	inline-size: 3px;
	block-size: 1.1em;
	border-radius: 3px;
	background-color: var(--aj3-desc-accent);
}

/* Body */
.aj3-product-description .aj3-product-description__body {
	max-inline-size: 90ch;
	min-inline-size: 0;
	color: var(--aj3-desc-text);
	font-size: 16px;
	line-height: 1.65;
	overflow-wrap: anywhere;
}

.aj3-product-description .aj3-product-description__body > *:first-child {
	margin-block-start: 0;
}

.aj3-product-description .aj3-product-description__body > *:last-child {
	margin-block-end: 0;
}

.aj3-product-description .aj3-product-description__body p {
	margin: 0 0 1rem;
	color: inherit;
	font-size: inherit;
	line-height: inherit;
}

.aj3-product-description .aj3-product-description__body strong,
.aj3-product-description .aj3-product-description__body b {
	color: var(--aj3-desc-strong);
	font-weight: 700;
}

.aj3-product-description .aj3-product-description__body em,
.aj3-product-description .aj3-product-description__body i {
	font-style: italic;
}

.aj3-product-description .aj3-product-description__body a {
	color: var(--aj3-desc-label);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* Subsection labels, when the stored description actually contains headings. */
.aj3-product-description .aj3-product-description__body h2,
.aj3-product-description .aj3-product-description__body h3,
.aj3-product-description .aj3-product-description__body h4,
.aj3-product-description .aj3-product-description__body h5,
.aj3-product-description .aj3-product-description__body h6 {
	margin: 1.75rem 0 0.6rem;
	padding: 0;
	border: 0;
	color: var(--aj3-desc-label);
	font-family: inherit;
	font-size: 12px;
	font-weight: 850;
	letter-spacing: 0.09em;
	line-height: 1.3;
	text-transform: uppercase;
}

/* Lists */
.aj3-product-description .aj3-product-description__body ul,
.aj3-product-description .aj3-product-description__body ol {
	margin: 0 0 1rem;
	padding-inline-start: 1.25rem;
	list-style-position: outside;
}

.aj3-product-description .aj3-product-description__body ul {
	list-style-type: disc;
}

.aj3-product-description .aj3-product-description__body ol {
	list-style-type: decimal;
}

.aj3-product-description .aj3-product-description__body li {
	margin: 0 0 0.4rem;
	padding-inline-start: 0.2rem;
	color: inherit;
	line-height: inherit;
}

.aj3-product-description .aj3-product-description__body li::marker {
	color: var(--aj3-desc-accent);
}

.aj3-product-description .aj3-product-description__body li:last-child {
	margin-block-end: 0;
}

.aj3-product-description .aj3-product-description__body ul ul,
.aj3-product-description .aj3-product-description__body ul ol,
.aj3-product-description .aj3-product-description__body ol ul,
.aj3-product-description .aj3-product-description__body ol ol {
	margin-block: 0.4rem 0;
}

.aj3-product-description .aj3-product-description__body hr {
	margin: 1.5rem 0;
	border: 0;
	border-block-start: 1px solid var(--aj3-desc-divider);
}

/* Grouped specification lines detected in the stored description. */
.aj3-product-description .aj3-product-description__specs {
	margin: 0 0 1.25rem;
	padding: 0.875rem 1.125rem;
	border-inline-start: 3px solid var(--aj3-desc-accent-soft);
	border-radius: 0 0.5rem 0.5rem 0;
	background-color: var(--aj3-desc-specs-bg);
}

.aj3-product-description .aj3-product-description__specs p {
	margin: 0;
}

.aj3-product-description .aj3-product-description__specs p + p {
	margin-block-start: 0.375rem;
}

/* Tables, if a future description ever contains one. */
.aj3-product-description .aj3-product-description__body table {
	display: block;
	width: 100%;
	margin: 0 0 1rem;
	overflow-x: auto;
	border-collapse: collapse;
}

.aj3-product-description .aj3-product-description__body th,
.aj3-product-description .aj3-product-description__body td {
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--aj3-desc-divider);
	text-align: start;
	vertical-align: top;
}

.aj3-product-description .aj3-product-description__body th {
	color: var(--aj3-desc-strong);
	font-weight: 700;
}

/* Tablet */
@media (max-width: 1024px) {
	.aj3-product-description .aj3-product-description__body {
		max-inline-size: none;
	}
}

/* Mobile */
@media (max-width: 620px) {
	.aj3-product-description {
		margin-block-start: 1.75rem;
		padding: 1.75rem 1rem 1.75rem;
	}

	.aj3-product-description .aj3-product-description__heading {
		margin-block-end: 0.875rem;
		padding-block-end: 0.75rem;
		font-size: 12px;
	}

	.aj3-product-description .aj3-product-description__body {
		font-size: 15px;
		line-height: 1.6;
	}

	.aj3-product-description .aj3-product-description__body p,
	.aj3-product-description .aj3-product-description__body ul,
	.aj3-product-description .aj3-product-description__body ol {
		margin-block-end: 0.875rem;
	}

	.aj3-product-description .aj3-product-description__specs {
		margin-block-end: 1rem;
		padding: 0.75rem 0.875rem;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.aj3-product-description .aj3-product-description__body a {
		transition: color 160ms ease;
	}
}
/* ---------------------------------------------------------------------------
 * Inline placement variant.
 *
 * Used when the section sits inside the product information column, directly
 * beneath the product title and above the pricing / purchase controls. Reuses
 * every token, colour and rule above; only the framing changes.
 * ------------------------------------------------------------------------ */

.aj3-product-description.aj3-product-description--inline {
	grid-column: auto;
	width: 100%;
	max-width: 100%;
	margin: 1rem 0 1.25rem;
	padding: 1.125rem 1.25rem;
	border-block-start: 0;
	border-radius: 0.75rem;
}

.aj3-product-description.aj3-product-description--inline .aj3-product-description__heading {
	margin-block-end: 0.875rem;
	padding-block-end: 0.75rem;
	font-size: 12px;
}

.aj3-product-description.aj3-product-description--inline .aj3-product-description__body {
	max-inline-size: none;
	font-size: 15px;
	line-height: 1.6;
}

.aj3-product-description.aj3-product-description--inline .aj3-product-description__body p,
.aj3-product-description.aj3-product-description--inline .aj3-product-description__body ul,
.aj3-product-description.aj3-product-description--inline .aj3-product-description__body ol {
	margin-block-end: 0.875rem;
}

.aj3-product-description.aj3-product-description--inline .aj3-product-description__specs {
	margin-block-end: 1rem;
	padding: 0.75rem 0.9375rem;
}

@media (max-width: 620px) {
	.aj3-product-description.aj3-product-description--inline {
		margin: 0.875rem 0 1rem;
		padding: 1rem;
	}

	.aj3-product-description.aj3-product-description--inline .aj3-product-description__body {
		font-size: 14.5px;
	}

	.aj3-product-description.aj3-product-description--inline .aj3-product-description__specs {
		padding: 0.6875rem 0.875rem;
	}
}