/* Albizu Mega Menu (styles match the mega menu mockup PDF) */
.amm {
	--amm-purple: #5b2c5d;
	--amm-orange: #f4894a;
	--amm-gray: #f2f2f2;
	--amm-line: #e4e4e4;
	--amm-text: #4a4a4a;
	--amm-maxw: 1320px;
	--amm-gap: 0px; /* distance between the nav bar and the panel top */
	position: relative;
	font-family: inherit;
	color: var(--amm-purple);
}
:where(.amm) *, :where(.amm) *::before, :where(.amm) *::after { box-sizing: border-box; }
/* Resets use :where() (zero specificity) so component styles below always win. */
:where(.amm) ul { list-style: none; margin: 0; padding: 0; }
:where(.amm) p { margin: 0; }
:where(.amm) a { color: inherit; }
:where(.amm) button { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; text-align: left; }

/* ---------- Bar ---------- */
.amm-burger { display: none; }
.amm-bar { display: flex; align-items: center; gap: 22px; }
.amm-top-btn, .amm-top-link { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; line-height: 1.2; color: var(--amm-purple); text-decoration: none; padding: 10px 0; }
.amm-top-btn:hover, .amm-top-link:hover, .amm-top-btn[aria-expanded="true"] { color: var(--amm-orange); }
.amm-chev { width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s; }
.amm-top-btn[aria-expanded="true"] .amm-chev { transform: rotate(-135deg) translateY(-1px); }

/* ---------- Panel ---------- */
.amm-panel { position: absolute; top: calc(100% + var(--amm-gap)); left: 0; width: 100vw; background: rgba(255,255,255,0.95); border-top: 1px solid var(--amm-line); border-bottom: 1px solid var(--amm-line); box-shadow: 0 18px 30px rgba(40, 20, 45, .08); z-index: 9999; }
.amm-panel[hidden], .amm-pane[hidden] { display: none !important; }
.amm-inner { max-width: var(--amm-maxw); margin: 0 auto; }
.amm-inner--cols { padding: 22px 40px 30px; }

/* Sidebar layout: tabs on the left, the active tab's pane on the right.
   ul/li use display:contents so each pane can sit next to its own tab in
   the markup (accordion on mobile) yet share one area on desktop. */
.amm-inner--side { position: relative; display: grid; grid-template-columns: 215px minmax(0, 1fr); grid-template-rows: repeat(var(--amm-n), auto) 1fr; min-height: 300px; }
.amm-inner--side::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 215px; border-right: 1px solid var(--amm-line); pointer-events: none; }
.amm-inner--side .amm-tabs, .amm-inner--side .amm-tabli { display: contents; }
.amm-side-h { grid-column: 1; font-size: 22px; font-weight: 600; padding: 22px 24px 12px; }
.amm-tab { grid-column: 1; position: relative; display: block; width: 100%; padding: 11px 24px; font-size: 16px; line-height: 1.3; color: var(--amm-purple); text-decoration: none; border-bottom: 1px solid var(--amm-line); }
.amm-tab:hover, .amm-tab[aria-expanded="true"] { background: var(--amm-gray); font-weight: 600; }
.amm-tab[aria-expanded="true"]::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--amm-orange); }
.amm-pane { grid-column: 2; grid-row: 1 / -1; padding: 22px 30px 30px; }
.amm-overview { display: none; }

/* Pane heading (+ program filter) */
.amm-ph { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; padding-bottom: 12px; margin-bottom: 14px; border-bottom: 1px solid var(--amm-line); }
.amm-ph-t { font-size: 19px; font-weight: 600; }
.amm-ph-s { font-size: 16px; margin-top: 4px; }
.amm-filter { display: flex; align-items: center; gap: 24px; font-size: 14px; color: var(--amm-text); }
.amm-filter button { font-size: 14px; color: var(--amm-text); padding: 2px 0; }
.amm-filter button[aria-pressed="true"] { font-weight: 700; color: var(--amm-purple); }

/* Programs */
.amm-disc { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px 20px; max-width: 100%; }
.amm-dbtn { border: 1px solid var(--amm-line); padding: 10px 10px; font-size: 13.5px; line-height:18px; font-weight: 600; color: var(--amm-purple); background: #fff; }
.amm-dbtn:hover, .amm-dbtn[aria-pressed="true"] { background: var(--amm-gray); }
.amm-plist { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(var(--amm-rows, 7), auto); grid-auto-flow: column; gap: 12px 26px; margin-top: 16px; }
.amm-plist li[hidden] { display: none; }
.amm-pl { font-size: 12.5px; line-height: 1.3; text-decoration: none; }
.amm-pl:hover { text-decoration: underline; }
.amm-pempty { margin-top: 16px; font-size: 13px; color: var(--amm-text); }

/* Blocks */
.amm-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 32px; align-items: start; }
.amm-col { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.amm-col--div { border-right: 2px dashed var(--amm-purple); padding-right: 28px; align-self: stretch; }
.amm-ft { font-size: 25px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.amm-fd { font-size: 16px; line-height: 1.35; color: var(--amm-text); margin: 6px 0 16px !important;min-height:120px !important; }
.amm-btn { display: block; max-width: 250px; border: 2px solid var(--amm-purple); padding: 5px 10px; font-size: 15px; font-weight: 600; text-decoration: none; margin-bottom: 16px; }
.amm-btn:hover { background: var(--amm-purple); color: #fff; }
.amm-it { display: inline-block; font-size: 16px; font-weight: 600; font-style: italic; text-decoration: underline; }
.amm-lt { font-size: 18.5px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.amm-ld { font-size: 13.5px; font-style: italic; line-height: 1.35; color: var(--amm-text); margin-top: 3px !important; max-width: 230px; }
.amm-cl { display: inline-block; font-weight: 600; text-decoration: underline; margin-top: 6px; }
.amm-ft:hover, .amm-lt:hover, .amm-it:hover, .amm-cl:hover, .amm-ql-a:hover { color: var(--amm-orange); }
.amm-ql { border: 2px dashed var(--amm-purple); padding: 16px 15px 18px; }
.amm-ql-h { font-size: 16px; font-weight: 600; margin-bottom: 10px !important; }
.amm .amm-ql ul { list-style: disc; padding-left: 18px; }
.amm-ql li { margin: 2px 0;     line-height: 25px;}
.amm-ql-a { font-size: 15px; font-weight: 600; text-decoration: underline; }
.amm-tg + .amm-tg, .amm-tg + .amm-cols { margin-top: 26px; }
.amm-tg-h { font-size: 16px; font-weight: 600; margin-bottom: 8px !important; }
.amm-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px 36px; max-width: 960px; }
.amm-tile { display: block; border: 1px solid var(--amm-line); padding: 5px 10px; font-size: 15px; font-weight: 600; color: var(--amm-purple); text-decoration: none; background: #fff; }
.amm-tile:hover { background: var(--amm-gray); }

.amm a:focus-visible, .amm button:focus-visible { outline: 2px solid var(--amm-orange); outline-offset: 2px; }

/* ---------- Mobile / tablet: accordion drawer ---------- */
@media (max-width: 1024px) {
	.amm-burger { display: inline-flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--amm-line); border-radius: 6px; font-weight: 600; font-size: 15px; }
	.amm-burger-i, .amm-burger-i::before, .amm-burger-i::after { display: block; width: 20px; height: 2px; background: currentColor; position: relative; transition: transform .2s, background .2s; }
	.amm-burger-i::before, .amm-burger-i::after { content: ""; position: absolute; left: 0; }
	.amm-burger-i::before { top: -6px; }
	.amm-burger-i::after { top: 6px; }
	.amm-open .amm-burger-i { background: transparent; }
	.amm-open .amm-burger-i::before { transform: translateY(6px) rotate(45deg); }
	.amm-open .amm-burger-i::after { transform: translateY(-6px) rotate(-45deg); }

	.amm-bar { display: none; position: absolute; top: calc(100% + var(--amm-gap)); left: 0; width: 100vw; max-height: calc(100vh - 80px); overflow-y: auto; background: #fff; border-top: 1px solid var(--amm-line); box-shadow: 0 18px 30px rgba(40, 20, 45, .12); z-index: 9999; }
	.amm-open .amm-bar { display: block; }
	.amm-top { border-bottom: 1px solid var(--amm-line); }
	.amm-top-btn, .amm-top-link { display: flex; width: 100%; justify-content: space-between; padding: 15px 20px; font-size: 16px; }
	.amm-panel { position: static; width: auto !important; left: auto !important; border: 0; box-shadow: none; background: #fbfafb; }
	.amm-inner, .amm-inner--cols { padding: 0 0 10px; max-width: none; }
	.amm-inner--cols { padding: 6px 20px 18px; }
	.amm-inner--side { display: block; min-height: 0; }
	.amm-inner--side::before { display: none; }
	.amm-inner--side .amm-tabs, .amm-inner--side .amm-tabli { display: block; }
	.amm-side-h { display: none; }
	.amm-tab { padding: 12px 32px; font-size: 15px; display: flex; justify-content: space-between; align-items: center; }
	.amm-tab[data-pane]::after { content: ""; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
	.amm-tab[data-pane][aria-expanded="true"]::after { transform: rotate(-135deg); }
	.amm-tab[aria-expanded="true"]::before { width: 4px; }
	.amm-pane { padding: 14px 32px 20px; background: #fff; border-bottom: 1px solid var(--amm-line); }
	.amm-overview { display: inline-block; font-weight: 600; text-decoration: underline; margin-bottom: 14px; }
	.amm-ph { flex-direction: column; align-items: flex-start; gap: 10px; }
	.amm-filter { flex-wrap: wrap; gap: 8px 16px; }
	.amm-filter-l { width: 100%; }
	.amm-disc, .amm-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
	.amm-plist { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-flow: row; gap: 10px; }
	.amm-pl { font-size: 14px; }
	.amm-cols { display: block; }
	.amm-col { grid-column: auto !important; }
	.amm-col { gap: 16px; margin-bottom: 18px; }
	.amm-col--div { border-right: 0; padding-right: 0; border-bottom: 2px dashed var(--amm-purple); padding-bottom: 18px; }
	.amm-ft { font-size: 21px; }
	.amm-ld { max-width: none; }
	.amm-ql { padding: 14px 18px 16px; }
}
@media (max-width: 420px) {
	.amm-disc, .amm-tiles { grid-template-columns: minmax(0, 1fr); }
}

/* Wrapper printed by the shortcode. In a slot it takes the slot's place;
   standalone (no slot on the page) it becomes a centered menu row. */
.amm-root.amm-in-slot { display: contents; }
.amm-root.amm-standalone { background: #fff; border-bottom: 1px solid #e4e4e4; position: relative; z-index: 999; }
.amm-root.amm-standalone > .amm { max-width: 1200px; margin: 0 auto; padding: 0 20px; display: flex; justify-content: flex-end; }
.amm .amm-admin-hint{margin:10px 0 0;padding:6px 10px;font-size:12px;background:#fff4e5;border-left:3px solid #f58025;color:#5c2d5e}
.amm .amm-admin-hint a{color:#5c2d5e;text-decoration:underline}
/* Theme guard: Astra/Elementor give every <button> a dark background on hover/focus. */
.amm .amm-filter button, .amm .amm-filter button:hover, .amm .amm-filter button:focus, .amm .amm-filter button:active { background: transparent !important; border: 0 !important; box-shadow: none !important; color: var(--amm-text) !important; padding: 2px 0 !important; border-radius: 0 !important; }
.amm .amm-filter button[aria-pressed="true"] { color: var(--amm-purple) !important; font-weight: 700; }
.amm .amm-filter button:focus-visible, .amm .amm-dbtn:focus-visible { outline: 2px solid var(--amm-orange, #f58025) !important; outline-offset: 2px; }
.amm .amm-dbtn, .amm .amm-dbtn:focus, .amm .amm-dbtn:active { background: #fff !important; color: var(--amm-purple) !important; border: 1px solid var(--amm-line) !important; box-shadow: none !important; border-radius: 0 !important; }
.amm .amm-dbtn:hover, .amm .amm-dbtn[aria-pressed="true"] { background: var(--amm-gray) !important; }
