.council-video-browser,
.council-video-browser * {
box-sizing: border-box;
}

.council-video-browser {
width: 100%;
min-width: 0;
}

.council-video-browser button,
.council-video-browser select,
.council-video-browser input {
font: inherit;
}

.council-video-browser button {
cursor: pointer;
}

.council-video-browser__intro {
display: flex;
min-width: 0;
align-items: flex-start;
justify-content: space-between;
gap: 24px;
margin-bottom: 28px;
}

.council-video-browser__intro > div:first-child {
min-width: 0;
}

.council-video-browser__eyebrow {
display: block;
margin-bottom: 8px;
color: #9a6913;
font-size: 0.7rem;
font-weight: 800;
letter-spacing: 0.14em;
line-height: 1.4;
text-transform: uppercase;
}

.council-video-browser__title {
margin: 0;
color: #10245c;
font-size: clamp(1.6rem, 3vw, 2.2rem);
font-weight: 800;
line-height: 1.18;
letter-spacing: -0.025em;
overflow-wrap: anywhere;
}

.council-video-browser__description {
max-width: 720px;
margin: 12px 0 0;
color: #5c6981;
font-size: 0.92rem;
line-height: 1.7;
overflow-wrap: break-word;
}

.council-video-browser__total {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
gap: 9px;
padding: 10px 15px;
border-radius: 999px;
background: #edf3fc;
color: #173777;
font-size: 0.75rem;
font-weight: 750;
white-space: nowrap;
}

.council-video-browser__total [class*="icon-"] {
font-size: 0.92rem;
}

/* =====================================================
FILTERS
===================================================== */

.council-video-browser__filters {
display: flex;
align-items: flex-end;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 24px;
padding: 18px;
border: 1px solid rgba(16, 36, 92, 0.12);
border-radius: 16px;
background: #f7f9fd;
}

.council-video-browser__filters > div {
width: min(100%, 220px);
}

.council-video-browser__filters label {
display: block;
margin-bottom: 7px;
color: #263a5d;
font-size: 0.72rem;
font-weight: 750;
}

.council-video-browser__filters select {
display: block;
width: 100%;
min-height: 46px;
padding: 9px 36px 9px 12px;
border: 1px solid rgba(16, 36, 92, 0.18);
border-radius: 11px;
background-color: #ffffff;
color: #243756;
font-size: 0.84rem;
}

.council-video-browser__reset {
display: inline-flex;
min-height: 46px;
align-items: center;
justify-content: center;
gap: 8px;
padding: 10px 15px;
border: 1px solid rgba(16, 36, 92, 0.18);
border-radius: 11px;
background: #ffffff;
color: #173777;
font-size: 0.76rem;
font-weight: 750;
transition:
border-color 0.2s ease,
background-color 0.2s ease,
color 0.2s ease;
}

.council-video-browser__reset:hover {
border-color: #173777;
background: #173777;
color: #ffffff;
}

/* =====================================================
GROUPS / ACCORDION
===================================================== */

.council-video-browser__groups {
display: flex;
min-width: 0;
flex-direction: column;
gap: 14px;
}

.council-video-group {
min-width: 0;
overflow: hidden;
border: 1px solid rgba(16, 36, 92, 0.12);
border-radius: 17px;
background: #ffffff;
transition:
border-color 0.2s ease,
box-shadow 0.2s ease;
}

.council-video-group.is-open {
border-color: rgba(16, 36, 92, 0.24);
box-shadow: 0 16px 38px rgba(17, 39, 92, 0.08);
}

.council-video-group__heading {
margin: 0;
}

.council-video-group__button {
display: grid;
width: 100%;
min-height: 78px;
grid-template-columns: auto minmax(0, 1fr) 36px;
gap: 16px;
align-items: center;
padding: 18px 20px;
border: 0;
background: transparent;
color: inherit;
text-align: left;
}

.council-video-group__year {
display: inline-flex;
width: 62px;
height: 48px;
flex: 0 0 62px;
align-items: center;
justify-content: center;
border-radius: 12px;
background: #edf3fc;
color: #173777;
font-size: 0.75rem;
font-weight: 800;
}

.council-video-group__content {
display: flex;
min-width: 0;
flex-direction: column;
}

.council-video-group__content strong {
color: #10245c;
font-size: 0.95rem;
font-weight: 800;
line-height: 1.45;
overflow-wrap: anywhere;
}

.council-video-group__content small {
margin-top: 4px;
color: #72809a;
font-size: 0.7rem;
}

.council-video-group__toggle {
position: relative;
display: block;
width: 30px;
height: 30px;
flex: 0 0 30px;
border-radius: 50%;
background: #eef3fa;
transition:
background-color 0.2s ease,
transform 0.2s ease;
}

.council-video-group__toggle::before {
position: absolute;
top: 50%;
left: 50%;
width: 7px;
height: 7px;
border-right: 1.5px solid #173777;
border-bottom: 1.5px solid #173777;
content: "";
transform: translate(-50%, -65%) rotate(45deg);
transition:
border-color 0.2s ease,
transform 0.2s ease;
}

.council-video-group.is-open
.council-video-group__toggle::before {
transform: translate(-50%, -35%) rotate(225deg);
}

.council-video-group__button:hover
.council-video-group__toggle {
background: #173777;
}

.council-video-group__button:hover
.council-video-group__toggle::before {
border-color: #ffffff;
}

.council-video-group__panel {
min-width: 0;
padding: 20px;
border-top: 1px solid rgba(16, 36, 92, 0.09);
}

.council-video-group__description {
max-width: 780px;
margin: 0 0 20px;
color: #61708a;
font-size: 0.84rem;
line-height: 1.65;
}

/* =====================================================
VIDEO GRID
===================================================== */

.council-video-grid {
display: grid;
min-width: 0;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 20px;
}

.council-video-card {
min-width: 0;
overflow: hidden;
border: 1px solid rgba(16, 36, 92, 0.1);
border-radius: 15px;
background: #ffffff;
box-shadow: 0 10px 28px rgba(17, 39, 92, 0.07);
transition:
transform 0.2s ease,
box-shadow 0.2s ease,
border-color 0.2s ease;
}

.council-video-card:hover {
border-color: rgba(16, 36, 92, 0.24);
box-shadow: 0 18px 38px rgba(17, 39, 92, 0.12);
transform: translateY(-3px);
}

.council-video-card .ratio {
position: relative;
display: block;
width: 100%;
overflow: hidden;
background: #0b1020;
}

.council-video-card .ratio::before {
display: block;
padding-top: 56.25%;
content: "";
}

.council-video-card iframe {
position: absolute;
inset: 0;
display: block;
width: 100%;
height: 100%;
border: 0;
background: #0b1020;
}

/* =====================================================
EMPTY STATE
===================================================== */

.council-video-browser__empty {
grid-column: 1 / -1;
padding: 44px 24px;
border: 1px dashed rgba(16, 36, 92, 0.22);
border-radius: 15px;
background: #fafbfe;
color: #63718b;
font-size: 0.84rem;
line-height: 1.6;
text-align: center;
}

/* =====================================================
FOCUS / WCAG
===================================================== */

.council-video-browser__filters select:focus-visible,
.council-video-browser__reset:focus-visible,
.council-video-group__button:focus-visible,
.council-video-card iframe:focus-visible {
outline: 3px solid #b57910;
outline-offset: 3px;
}

.council-video-group__button:focus-visible {
outline-offset: -3px;
}

.council-video-browser__filters select,
.council-video-browser__reset,
.council-video-group__button {
touch-action: manipulation;
}

.council-video-group__button,
.council-video-browser__reset {
cursor: pointer;
}

/* =====================================================
RESPONSIVE
===================================================== */

@media (min-width: 1400px) {
.council-video-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}

@media (max-width: 1199.98px) {
.council-video-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}

.council-video-group__panel {
padding: 18px;
}
}

@media (max-width: 991.98px) {
.council-video-browser__intro {
gap: 18px;
}

.council-video-browser__filters {
align-items: stretch;
}

.council-video-browser__filters > div {
width: min(100%, 260px);
}

.council-video-group__button {
grid-template-columns: auto minmax(0, 1fr) 34px;
padding: 17px;
}
}

@media (max-width: 767.98px) {
.council-video-browser__intro {
align-items: stretch;
flex-direction: column;
margin-bottom: 22px;
}

.council-video-browser__total {
align-self: flex-start;
}

.council-video-browser__title {
font-size: clamp(1.35rem, 7vw, 1.75rem);
}

.council-video-browser__description {
font-size: 0.88rem;
}

.council-video-browser__filters {
display: grid;
grid-template-columns: 1fr;
gap: 14px;
padding: 15px;
border-radius: 14px;
}

.council-video-browser__filters > div,
.council-video-browser__reset {
width: 100%;
}

.council-video-browser__filters select,
.council-video-browser__reset {
min-height: 48px;
}

.council-video-group {
border-radius: 14px;
}

.council-video-group__button {
grid-template-columns: 50px minmax(0, 1fr) 32px;
gap: 12px;
min-height: 76px;
padding: 14px;
}

.council-video-group__year {
width: 50px;
height: 44px;
flex-basis: 50px;
border-radius: 11px;
font-size: 0.7rem;
}

.council-video-group__content strong {
font-size: 0.86rem;
}

.council-video-group__content small {
font-size: 0.67rem;
}

.council-video-group__toggle {
width: 32px;
height: 32px;
}

.council-video-group__panel {
padding: 14px;
}

.council-video-grid {
grid-template-columns: 1fr;
gap: 15px;
}

.council-video-card {
border-radius: 13px;
}

.council-video-browser__empty {
padding: 34px 18px;
}
}

@media (max-width: 419.98px) {
.council-video-browser__eyebrow {
font-size: 0.62rem;
}

.council-video-browser__title {
font-size: 1.3rem;
}

.council-video-browser__total {
padding: 9px 12px;
font-size: 0.69rem;
}

.council-video-group__button {
grid-template-columns: 44px minmax(0, 1fr) 30px;
gap: 9px;
padding: 12px;
}

.council-video-group__year {
width: 44px;
height: 42px;
flex-basis: 44px;
font-size: 0.66rem;
}

.council-video-group__toggle {
width: 30px;
height: 30px;
}

.council-video-group__panel {
padding: 12px;
}
}

/* =====================================================
DARK MODE
===================================================== */

body.accessibility-dark-mode .council-video-browser__title,
body.accessibility-dark-mode .council-video-group__content strong {
color: #ffffff;
}

body.accessibility-dark-mode .council-video-browser__description,
body.accessibility-dark-mode .council-video-group__description,
body.accessibility-dark-mode .council-video-group__content small,
body.accessibility-dark-mode .council-video-browser__empty {
color: #c8d0df;
}

body.accessibility-dark-mode .council-video-browser__total,
body.accessibility-dark-mode .council-video-group__year {
background: #26334e;
color: #c6d1ff;
}

body.accessibility-dark-mode .council-video-browser__filters {
border-color: #3b4861;
background: #171f31;
}

body.accessibility-dark-mode .council-video-browser__filters label {
color: #dde4f1;
}

body.accessibility-dark-mode .council-video-browser__filters select,
body.accessibility-dark-mode .council-video-browser__reset {
border-color: #4a5874;
background-color: #111827;
color: #ffffff;
}

body.accessibility-dark-mode .council-video-browser__reset:hover {
border-color: #8294bd;
background: #334673;
}

body.accessibility-dark-mode .council-video-group {
border-color: #38455f;
background: #151e31;
}

body.accessibility-dark-mode .council-video-group.is-open {
border-color: #65779e;
box-shadow: 0 16px 38px rgba(0, 0, 0, 0.32);
}

body.accessibility-dark-mode .council-video-group__panel {
border-color: #38455f;
}

body.accessibility-dark-mode .council-video-group__toggle {
background: #334673;
}

body.accessibility-dark-mode .council-video-card {
border-color: #38455f;
background: #1b2539;
box-shadow: 0 10px 28px rgba(0, 0, 0, 0.3);
}

body.accessibility-dark-mode .council-video-card:hover {
border-color: #7082a8;
box-shadow: 0 18px 38px rgba(0, 0, 0, 0.4);
}

body.accessibility-dark-mode .council-video-browser__empty {
border-color: #52617e;
background: #151e31;
}

/* =====================================================
HIGH CONTRAST
===================================================== */

body.accessibility-high-contrast .council-video-browser,
body.accessibility-high-contrast .council-video-browser__intro,
body.accessibility-high-contrast .council-video-browser__groups {
color: #ffffff !important;
}

body.accessibility-high-contrast .council-video-browser__title,
body.accessibility-high-contrast .council-video-browser__description,
body.accessibility-high-contrast .council-video-group__content strong,
body.accessibility-high-contrast .council-video-group__content small,
body.accessibility-high-contrast .council-video-group__description,
body.accessibility-high-contrast .council-video-browser__empty {
color: #ffffff !important;
}

body.accessibility-high-contrast .council-video-browser__eyebrow {
color: #ffff00 !important;
}

body.accessibility-high-contrast .council-video-browser__filters,
body.accessibility-high-contrast .council-video-group,
body.accessibility-high-contrast .council-video-card,
body.accessibility-high-contrast .council-video-browser__empty {
border: 2px solid #ffffff !important;
background: #000000 !important;
box-shadow: none !important;
}

body.accessibility-high-contrast .council-video-browser__filters label {
color: #ffffff !important;
}

body.accessibility-high-contrast .council-video-browser__filters select,
body.accessibility-high-contrast .council-video-browser__reset {
border: 2px solid #ffffff !important;
background: #000000 !important;
color: #ffff00 !important;
}

body.accessibility-high-contrast .council-video-browser__total,
body.accessibility-high-contrast .council-video-group__year,
body.accessibility-high-contrast .council-video-group__toggle {
border: 2px solid #ffffff !important;
background: #000000 !important;
color: #ffff00 !important;
}

body.accessibility-high-contrast .council-video-group__panel {
border-top: 2px solid #ffffff !important;
}

body.accessibility-high-contrast .council-video-browser__reset:hover,
body.accessibility-high-contrast .council-video-browser__reset:focus-visible,
body.accessibility-high-contrast .council-video-group__button:hover,
body.accessibility-high-contrast .council-video-group__button:focus-visible {
background: #ffff00 !important;
color: #000000 !important;
outline-color: #ffffff !important;
}

body.accessibility-high-contrast
.council-video-group__button:hover
.council-video-group__content strong,
body.accessibility-high-contrast
.council-video-group__button:hover
.council-video-group__content small,
body.accessibility-high-contrast
.council-video-group__button:focus-visible
.council-video-group__content strong,
body.accessibility-high-contrast
.council-video-group__button:focus-visible
.council-video-group__content small {
color: #000000 !important;
}

body.accessibility-high-contrast .council-video-card iframe {
border: 2px solid #ffff00 !important;
}

/* =====================================================
HIGHLIGHT LINKS
===================================================== */

body.accessibility-highlight-links .council-video-browser__reset {
text-decoration: underline !important;
text-decoration-thickness: 2px !important;
text-underline-offset: 3px !important;
}

/* =====================================================
READABLE FONT
===================================================== */

body.accessibility-readable-font .council-video-browser,
body.accessibility-readable-font .council-video-browser button,
body.accessibility-readable-font .council-video-browser select {
font-family: Arial, Helvetica, sans-serif !important;
letter-spacing: 0.01em;
}

/* =====================================================
LARGE TEXT
===================================================== */

body.accessibility-font-large .council-video-browser__intro {
align-items: stretch;
flex-direction: column;
}

body.accessibility-font-large .council-video-browser__filters {
display: grid;
grid-template-columns: 1fr;
}

body.accessibility-font-large .council-video-browser__filters > div,
body.accessibility-font-large .council-video-browser__reset {
width: 100%;
}

body.accessibility-font-large .council-video-group__button {
height: auto;
min-height: 0;
grid-template-columns: auto minmax(0, 1fr) auto;
align-items: start;
}

body.accessibility-font-large .council-video-grid {
grid-template-columns: 1fr;
}

/* =====================================================
REDUCED MOTION
===================================================== */

body.accessibility-stop-animations .council-video-browser *,
body.accessibility-stop-animations .council-video-browser *::before,
body.accessibility-stop-animations .council-video-browser *::after,
body.accessibility-no-animations .council-video-browser *,
body.accessibility-no-animations .council-video-browser *::before,
body.accessibility-no-animations .council-video-browser *::after,
body.accessibility-reduced-motion .council-video-browser *,
body.accessibility-reduced-motion .council-video-browser *::before,
body.accessibility-reduced-motion .council-video-browser *::after {
scroll-behavior: auto !important;
transition: none !important;
animation: none !important;
}

@media (prefers-reduced-motion: reduce) {
.council-video-browser *,
.council-video-browser *::before,
.council-video-browser *::after {
scroll-behavior: auto !important;
transition: none !important;
animation: none !important;
}

.council-video-card:hover {
transform: none;
}
}
