/**
 * AAH Trek Suite — front-end styles.
 * Modern, minimal, responsive. Uses CSS custom properties for easy theming
 * from a child theme or Elementor's Custom CSS panel. No Bootstrap,
 * Tailwind, or FontAwesome dependency — icons are inline SVG or CSS.
 */

.aah-module {
	--aah-color-text: #1f2937;
	--aah-color-muted: #6b7280;
	--aah-color-border: #e5e7eb;
	--aah-color-accent: #0f766e;
	--aah-color-surface: #ffffff;
	--aah-radius: 10px;
	--aah-space: 1rem;

	color: var(--aah-color-text);
	font-size: var(--aah-details-font-size, 1rem);
	line-height: 1.6;
	margin-block: calc(var(--aah-space) * 1.5);
}

.aah-module__title {
	font-size: var(--aah-title-font-size, 1.25rem);
	color: var(--aah-title-color, var(--aah-color-text));
	font-weight: 700;
	margin: 0 0 var(--aah-space);
}

/* Accordion (FAQ / Itinerary) ------------------------------------------ */

.aah-accordion__item {
	border: 1px solid var(--aah-color-border);
	border-radius: var(--aah-radius);
	margin-bottom: 0.5rem;
	overflow: hidden;
}

.aah-accordion__heading {
	margin: 0;
}

.aah-accordion__trigger {
	all: unset;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 0.9rem 1.1rem;
	cursor: pointer;
	font-weight: 600;
	gap: 0.75rem;
}

.aah-accordion__trigger:focus-visible {
	outline: 2px solid var(--aah-color-accent);
	outline-offset: -2px;
}

.aah-accordion__icon {
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

.aah-accordion__trigger[aria-expanded="true"] .aah-accordion__icon {
	transform: rotate(180deg);
}

.aah-accordion__panel-inner {
	padding: 0 1.1rem 1rem;
	color: var(--aah-color-muted);
}

.aah-itinerary--timeline {
	list-style: none;
	margin: 0;
	padding: 0;
	--aah-itinerary-node-size: var(--aah-itinerary-icon-size, 40px);
}

.aah-itinerary__day {
	position: relative;
	padding-bottom: 1.5rem;
}

.aah-itinerary__day--last {
	padding-bottom: 0;
}

.aah-itinerary__day:not(.aah-itinerary__day--last)::before {
	content: '';
	position: absolute;
	left: calc(var(--aah-itinerary-node-size) / 2 - 1px);
	top: calc(0.5rem + var(--aah-itinerary-node-size));
	bottom: 0;
	width: 2px;
	background: var(--aah-itinerary-line-color, var(--aah-color-border));
}

.aah-itinerary__node {
	position: absolute;
	left: 0;
	top: 0.5rem;
	width: var(--aah-itinerary-node-size);
	height: var(--aah-itinerary-node-size);
	border-radius: 50%;
	background: var(--aah-itinerary-icon-bg, var(--aah-color-accent));
	color: var(--aah-itinerary-icon-color, #ffffff);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.aah-itinerary__row {
	all: unset;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	width: 100%;
	cursor: pointer;
	gap: 0.75rem;
	padding: 0.5rem 0 0.5rem calc(var(--aah-itinerary-node-size) + 14px);
}

.aah-itinerary__row:focus-visible {
	outline: 2px solid var(--aah-color-accent);
	outline-offset: 2px;
	border-radius: 4px;
}

.aah-itinerary__day-title {
	flex: 1;
	text-align: left;
	font-weight: 600;
	font-size: var(--aah-itinerary-title-font-size, var(--aah-title-font-size, 1rem));
}

.aah-itinerary__row .aah-accordion__icon {
	flex-shrink: 0;
	color: var(--aah-color-muted);
}

.aah-itinerary__panel .aah-accordion__panel-inner {
	padding-left: calc(var(--aah-itinerary-node-size) + 14px);
	padding-right: 0;
}

.aah-itinerary__meta-item,
.aah-itinerary__description {
	font-size: var(--aah-itinerary-details-font-size, var(--aah-details-font-size, 1rem));
}

.aah-itinerary__image {
	max-width: 100%;
	height: auto;
	border-radius: var(--aah-radius);
	margin-bottom: 0.75rem;
}

.aah-itinerary__meta {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 0.5rem;
	margin: 0.75rem 0;
	padding: 0;
}

.aah-itinerary__gallery {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

.aah-itinerary__gallery img {
	border-radius: 6px;
}

/* Documents / Downloads -------------------------------------------------- */

.aah-documents {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}

.aah-documents__link,
.aah-downloads__button {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 1rem;
	border: 1px solid var(--aah-color-border);
	border-radius: var(--aah-radius);
	text-decoration: none;
	color: var(--aah-color-text);
	font-weight: 600;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.aah-documents__link:hover,
.aah-downloads__button:hover {
	border-color: var(--aah-color-accent);
	background-color: color-mix(in srgb, var(--aah-color-accent) 8%, transparent);
}

.aah-documents__description {
	color: var(--aah-color-muted);
	font-size: var(--aah-details-font-size, 0.9rem);
	margin: 0.25rem 0 0;
}

.aah-downloads {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

/* Gear Checklist ---------------------------------------------------------- */

.aah-gear-checklist {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.aah-gear-checklist__chip {
	display: inline-block;
	border: 1px solid var(--aah-color-border);
	border-radius: var(--aah-radius);
	padding: 0.4rem 0.9rem;
	font-size: var(--aah-details-font-size, 1rem);
	color: var(--aah-color-text);
}

/* Route Map --------------------------------------------------------------- */

.aah-route-map__embed {
	position: relative;
	padding-top: 56.25%;
	border-radius: var(--aah-radius);
	overflow: hidden;
}

.aah-route-map__embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.aah-route-map__image {
	max-width: 100%;
	height: auto;
	border-radius: var(--aah-radius);
}

.aah-route-map__files {
	display: flex;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

.aah-route-map__file-link {
	color: var(--aah-color-accent);
	font-weight: 600;
	text-decoration: underline;
}

/* Inclusions / Exclusions -------------------------------------------------- */

.aah-inclusions,
.aah-exclusions {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}

.aah-inclusions__item,
.aah-exclusions__item {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
}

.aah-inclusions__item .aah-icon,
.aah-exclusions__item .aah-icon {
	flex-shrink: 0;
	margin-top: 0.15em;
}

.aah-inclusions .aah-icon--check {
	color: #16a34a;
}

.aah-exclusions .aah-icon--cross {
	color: #dc2626;
}

/* Highlights --------------------------------------------------------------- */

.aah-highlights {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}

.aah-highlights__item {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-size: var(--aah-details-font-size, 1rem);
}

.aah-highlights__item .aah-icon {
	flex-shrink: 0;
	margin-top: 0.15em;
}

.aah-highlights .aah-icon--star {
	color: var(--aah-color-accent);
}

/* Major Attractions ---------------------------------------------------------- */

.aah-major-attractions {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}

.aah-major-attractions__item {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-size: var(--aah-details-font-size, 1rem);
}

.aah-major-attractions__item .aah-icon {
	flex-shrink: 0;
	margin-top: 0.15em;
}

.aah-major-attractions .aah-icon--flag {
	color: var(--aah-color-accent);
}

/* What to Expect -------------------------------------------------------------- */

.aah-what-to-expect {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}

.aah-what-to-expect__item {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-size: var(--aah-details-font-size, 1rem);
}

.aah-what-to-expect__item .aah-icon--diamond-x {
	flex-shrink: 0;
	margin-top: 0.15em;
	color: #111827;
}

/* Trip Essentials ----------------------------------------------------------- */

.aah-trip-essentials {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 0.75rem;
}

.aah-trip-essentials__item {
	border: 1px solid var(--aah-color-border);
	border-radius: var(--aah-radius);
	padding: 0.75rem;
}

.aah-trip-essentials__label {
	display: block;
	color: var(--aah-color-muted);
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.aah-trip-essentials__value {
	display: block;
	font-weight: 700;
}

/* Badges ---------------------------------------------------------------------- */

.aah-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.aah-badges__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	border: 1.5px solid var(--aah-color-accent);
	color: var(--aah-color-accent);
	border-radius: 999px;
	padding: 0.2rem 0.7rem;
	font-size: 0.8rem;
	font-weight: 700;
}

/* Notes ------------------------------------------------------------------------ */

.aah-important-notes,
.aah-know-before-you-go {
	background: color-mix(in srgb, var(--aah-color-accent) 6%, transparent);
	border: 1px solid var(--aah-color-border);
	border-radius: var(--aah-radius);
	padding: 1rem 1.25rem;
}

.aah-no-product {
	color: var(--aah-color-muted);
	font-style: italic;
}

@media (max-width: 480px) {
	.aah-itinerary__meta {
		grid-template-columns: 1fr 1fr;
	}
}
