/*
Theme Name: ASSEM v2
Theme URI: https://assem.com.br
Author: M&R Propaganda / Pedro Dias
Author URI: https://mrpropaganda.com.br
Description: Tema institucional da Associação dos Servidores Municipais de São José dos Campos (ASSEM), baseado no protótipo "Home ASSEM v2" do Claude Design. Layout responsivo, slider de banners, carrossel de benefícios e seções de notícias/galeria integradas ao WordPress.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: assem-v2
Tags: institutional, one-column, custom-logo, custom-menu, featured-images, translation-ready
*/

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root {
	--navy: #304388;
	--navy-dark: #202e63;
	--navy-soft: #3c53a8;
	--red: #FE0000;
	--ink: #304388;
	--muted: #9aa2b8;
	--line: #d9d9d9;
	--footer-bg: #e6e6e6;
	--white: #ffffff;
	--wrap: 1180px;
	--radius: 16px;
	--shadow: 0 2px 8px rgba(0, 0, 0, .14);
}

/* ==========================================================================
   Reset / base
   ========================================================================== */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
	font-family: 'Poppins', system-ui, 'Segoe UI', sans-serif;
	color: var(--ink);
	background: var(--white);
	-webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
input, button { font-family: inherit; }
h1, h2, h3, p { margin: 0; }
svg { display: block; }

.assem-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--navy);
	color: #fff;
	padding: 10px 16px;
	z-index: 1000;
}
.assem-skip-link:focus { left: 12px; top: 12px; }

/* Accessibility helper (WordPress convention) — visually hidden but readable
   by screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	position: absolute !important;
	word-wrap: normal !important;
}
.screen-reader-text:focus {
	background: #fff;
	clip: auto !important;
	clip-path: none;
	display: block;
	height: auto;
	width: auto;
	padding: 8px 16px;
	color: var(--navy);
	z-index: 1000;
}

.assem-wrap {
	width: 100%;
	overflow-x: hidden;
	background: var(--white);
}
.assem-container {
	max-width: var(--wrap);
	margin: 0 auto;
	padding-left: 24px;
	padding-right: 24px;
}
.assem-section {
	max-width: var(--wrap);
	margin: 0 auto;
	padding: clamp(20px, 3vw, 36px) 24px;
}

/* ==========================================================================
   Header
   ========================================================================== */
.assem-header {
	position: relative;
	background: var(--white);
	z-index: 50;
}

/* Top row: socials + search (desktop) */
.assem-topbar {
	max-width: var(--wrap);
	margin: 0 auto;
	padding: 14px 24px 12px;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 22px;
}
.assem-socials { display: flex; align-items: center; gap: 12px; }
.assem-social {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 9px;
	background: var(--navy);
	transition: background .15s ease;
}
.assem-social:hover { background: var(--navy-dark); }

.assem-search { display: flex; align-items: stretch; width: min(390px, 38vw); }
.assem-search__input {
	flex: 1;
	min-width: 0;
	height: 34px;
	padding: 0 12px;
	border: 2px solid var(--navy);
	border-right: none;
	border-radius: 4px 0 0 4px;
	font-size: 14px;
	color: #333;
	outline: none;
	background: #fff;
}
.assem-search__btn {
	width: 46px;
	height: 34px;
	border: 2px solid var(--navy);
	border-radius: 0 4px 4px 0;
	background: #fff;
	cursor: pointer;
	display: grid;
	place-items: center;
}
.assem-search__btn:hover { background: #f0f2f8; }

/* Navy nav bar */
.assem-navbar { background: var(--navy); }
.assem-nav {
	max-width: var(--wrap);
	margin: 0 auto;
	padding: 0 24px;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 30px;
	height: 38px;
	font-size: 15.5px;
	color: #fff;
}
.assem-nav a:hover { text-decoration: underline; }

.assem-nav .assem-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 30px;
	height: 100%;
}
.assem-nav .assem-menu > li {
	position: relative;
	display: flex;
	align-items: center;
	height: 100%;
}

/* Dropdown (ASSEM) */
.assem-dropdown { position: relative; height: 100%; display: flex; align-items: center; }
.assem-dropdown__toggle {
	background: none;
	border: none;
	color: #fff;
	font-size: 15.5px;
	font-weight: 400;
	cursor: pointer;
	padding: 0;
	letter-spacing: .01em;
}
.assem-dropdown.is-open .assem-dropdown__toggle { font-weight: 700; }
.assem-dropdown__menu {
	position: absolute;
	top: 100%;
	left: -16px;
	min-width: 216px;
	background: #fff;
	border: 1px solid var(--line);
	box-shadow: 0 10px 26px rgba(0, 0, 0, .22);
	padding: 5px 0;
	color: #333;
	font-size: 14px;
	z-index: 40;
	display: none;
}
.assem-dropdown.is-open .assem-dropdown__menu { display: block; }
.assem-dropdown__menu a,
.assem-subrow {
	display: block;
	padding: 7px 15px;
}
.assem-dropdown__menu a:hover,
.assem-subrow:hover { background: #f1f1f1; }
.assem-subrow {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font-weight: 700;
	cursor: default;
}
.assem-submenu {
	position: absolute;
	left: 100%;
	top: -6px;
	min-width: 172px;
	background: #fff;
	border: 1px solid var(--line);
	box-shadow: 0 10px 26px rgba(0, 0, 0, .22);
	padding: 5px 0;
	display: none;
}
.assem-has-sub:hover .assem-submenu { display: block; }
.assem-caret { font-size: 10px; line-height: 1; }

/* Institutional row + logo */
.assem-brandrow {
	position: relative;
	max-width: var(--wrap);
	margin: 0 auto;
	padding: 12px 24px 10px 200px;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
}
.assem-logo {
	position: absolute;
	left: 22px;
	top: -90px;
	z-index: 5;
	display: grid;
	place-items: center;
	width: 132px;
	height: 132px;
	border-radius: 50%;
	background: #fff;
	border: 3px solid var(--navy);
	overflow: hidden;
	box-shadow: var(--shadow);
}
.assem-logo img { width: 100%; height: 100%; object-fit: contain; padding: 12px; }
.assem-logo--fallback {
	font-weight: 800;
	font-size: 26px;
	letter-spacing: .04em;
	color: var(--navy);
}
.assem-institution { font-size: 14px; letter-spacing: .01em; }
.assem-date { font-size: 14px; white-space: nowrap; }

/* Mobile header */
.assem-mobilebar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 16px;
	background: #fff;
}
.assem-logo--mobile { position: static; width: 78px; height: 78px; top: auto; left: auto; border-width: 2.5px; box-shadow: none; }
.assem-logo--mobile img { padding: 7px; }
.assem-burger {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 8px;
	background: var(--navy);
	border: none;
	cursor: pointer;
}
.assem-navy-strip { background: var(--navy); height: 10px; }
.assem-mobile-panel {
	background: #fff;
	border-bottom: 1px solid #e0e0e0;
	padding: 12px 16px 16px;
	display: none;
	flex-direction: column;
	gap: 2px;
}
.assem-mobile-panel.is-open { display: flex; }
.assem-mobile-panel .assem-search { width: 100%; margin-bottom: 10px; }
.assem-mobile-panel .assem-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}
.assem-mobile-panel .assem-menu a {
	padding: 11px 6px;
	font-size: 16px;
	border-bottom: 1px solid #eee;
}
.assem-mobile-panel .assem-menu li:first-child a { font-weight: 700; }
.assem-mobile-panel .assem-menu li:last-child a { border-bottom: none; }
.assem-institution--mobile {
	padding: 8px 16px 4px;
	font-size: 11px;
	color: var(--navy);
	text-align: center;
}

.assem-only-desktop { display: block; }
.assem-only-mobile { display: none; }
@media (max-width: 839px) {
	.assem-only-desktop { display: none; }
	.assem-only-mobile { display: block; }
}
