/**
 * Master Frontend Stylesheet for Product Info Accordions.
 * Strictly external CSS - no inline CSS used anywhere.
 */

:root {
	--pia-primary-color: #1a1a1a;
	--pia-accent-color: #0066cc;
	--pia-border-color: #e2e8f0;
	--pia-border-radius: 8px;
	--pia-header-bg: #ffffff;
	--pia-header-hover-bg: #f8fafc;
	--pia-header-active-bg: #f8fafc;
	--pia-text-color: #2d3748;
	--pia-title-color: #0f172a;
	--pia-content-bg: #ffffff;
	--pia-focus-ring: rgba(0, 102, 204, 0.35);
	--pia-transition-speed: 0.25s;
}

/* Accordion Container */
.pia-accordion {
	width: 100%;
	max-width: 100%;
	margin: 1.5rem 0;
	border: 1px solid var(--pia-border-color);
	border-radius: var(--pia-border-radius);
	background-color: var(--pia-content-bg);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
	overflow: hidden;
	box-sizing: border-box;
}

.pia-accordion *,
.pia-accordion *::before,
.pia-accordion *::after {
	box-sizing: border-box;
}

/* Individual Accordion Item */
.pia-accordion-item {
	border-bottom: 1px solid var(--pia-border-color);
	transition: background-color var(--pia-transition-speed) ease;
}

.pia-accordion-item:last-child {
	border-bottom: none;
}

/* Accordion Heading / Wrapper */
.pia-accordion-heading {
	margin: 0;
	padding: 0;
	font-size: 1rem;
	font-weight: 600;
	line-height: normal;
}

/* Trigger Button */
.pia-accordion-trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 1rem 1.25rem;
	margin: 0;
	background: var(--pia-header-bg);
	border: none;
	border-radius: 0;
	color: var(--pia-title-color);
	font-family: inherit;
	font-size: 1.05rem;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	transition: background-color var(--pia-transition-speed) ease, color var(--pia-transition-speed) ease;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
}

.pia-accordion-trigger:hover {
	background-color: var(--pia-header-hover-bg);
	color: var(--pia-accent-color);
}

.pia-accordion-trigger:focus-visible {
	outline: 2px solid var(--pia-accent-color);
	outline-offset: -2px;
	background-color: var(--pia-header-hover-bg);
}

/* Title text inside trigger */
.pia-trigger-title {
	flex: 1;
	padding-right: 1rem;
	line-height: 1.45;
}

/* Chevron Icon Container */
.pia-trigger-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	flex-shrink: 0;
	border-radius: 50%;
	background-color: transparent;
	color: #64748b;
	transition: transform var(--pia-transition-speed) cubic-bezier(0.4, 0, 0.2, 1),
	            color var(--pia-transition-speed) ease,
	            background-color var(--pia-transition-speed) ease;
}

.pia-chevron-svg {
	display: block;
	transition: transform var(--pia-transition-speed) cubic-bezier(0.4, 0, 0.2, 1);
}

/* Active / Open States */
.pia-accordion-item.pia-is-open .pia-accordion-trigger {
	background-color: var(--pia-header-active-bg);
	color: var(--pia-title-color);
}

.pia-accordion-item.pia-is-open .pia-trigger-icon {
	color: var(--pia-accent-color);
	background-color: rgba(0, 102, 204, 0.08);
}

.pia-accordion-item.pia-is-open .pia-chevron-svg {
	transform: rotate(180deg);
}

/* Panel / Region */
.pia-accordion-panel {
	overflow: hidden;
	transition: height var(--pia-transition-speed) ease, opacity var(--pia-transition-speed) ease;
}

.pia-accordion-panel[hidden] {
	display: none;
}

/* Body Content */
.pia-accordion-body {
	padding: 0 1.25rem 1.25rem 1.25rem;
	color: var(--pia-text-color);
	font-size: 0.975rem;
	line-height: 1.65;
	background-color: var(--pia-content-bg);
}

.pia-accordion-body p {
	margin: 0 0 1rem 0;
}

.pia-accordion-body p:last-child {
	margin-bottom: 0;
}

.pia-accordion-body ul,
.pia-accordion-body ol {
	margin: 0.5rem 0 1rem 1.5rem;
	padding: 0;
}

.pia-accordion-body li {
	margin-bottom: 0.4rem;
}

.pia-accordion-body li:last-child {
	margin-bottom: 0;
}

.pia-accordion-body a {
	color: var(--pia-accent-color);
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color 0.15s ease;
}

.pia-accordion-body a:hover {
	color: #004d99;
}

.pia-accordion-body strong {
	font-weight: 600;
	color: var(--pia-title-color);
}

.pia-accordion-body img {
	max-width: 100%;
	height: auto;
	border-radius: 4px;
}

/* Mobile Responsive Optimization */
@media (max-width: 640px) {
	.pia-accordion-trigger {
		padding: 0.875rem 1rem;
		font-size: 0.95rem;
	}

	.pia-trigger-icon {
		width: 24px;
		height: 24px;
	}

	.pia-accordion-body {
		padding: 0 1rem 1rem 1rem;
		font-size: 0.925rem;
	}
}
