/*
Theme Name: aim2026
Theme URI: https://www.a-i-m.com/
Author: Accountability Information Management, Inc.
Description: AIM theme on Bootstrap 5.3 (loaded from cdnjs).
Version: 3.0.0
Requires at least: 6.3
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aim2026
*/

/*
 * Layout, spacing and typography come from Bootstrap 5.3 classes in the
 * templates. This file only holds the brand (font, colours) and the few
 * things Bootstrap has no class for.
 */

/* Open Sans 400, latin subset, self-hosted */
@font-face {
	font-family: 'Open Sans';
	font-style: normal;
	font-weight: 400;
	font-stretch: 100%;
	font-display: swap;
	src: url(fonts/open-sans-latin-400.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------------------------------------------------------------- Brand */
:root {
	--aim-red: #ef4135;
	--aim-red-rgb: 239, 65, 53;
	--aim-footer-bg: #a9a9a9;
	--bs-body-font-family: 'Open Sans', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
	--bs-link-color: var(--aim-red);
	--bs-link-color-rgb: var(--aim-red-rgb);
	--bs-link-hover-color: #c8261b;
	--bs-link-hover-color-rgb: 200, 38, 27;
	--bs-danger: var(--aim-red);
	--bs-danger-rgb: var(--aim-red-rgb);
}
.btn-danger {
	--bs-btn-bg: var(--aim-red);
	--bs-btn-border-color: var(--aim-red);
	--bs-btn-hover-bg: #c8261b;
	--bs-btn-hover-border-color: #c8261b;
	--bs-btn-active-bg: #b0211a;
	--bs-btn-active-border-color: #b0211a;
}
a { text-decoration: none; }
.entry-content a:hover, .comment-content a:hover, .site-footer a:hover { text-decoration: underline; }

/* ---------------------------------------------------------- WordPress core */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}
.alignleft { float: left; margin: 0 1.5rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1.5rem; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignleft, .alignright, .aligncenter, .alignnone { max-width: 100%; }
@media (max-width: 575.98px) {
	.alignleft, .alignright { float: none; margin: 0 auto 1rem; display: block; }
}
.entry-content img, .entry-content iframe, .entry-content video { max-width: 100%; height: auto; }
.entry-content table { margin-bottom: 1rem; }
.entry-content td, .entry-content th { padding: .25rem .5rem; border-bottom: 1px solid var(--bs-border-color); }
.entry-content blockquote { padding: .5rem 1.25rem; border-left: .25rem solid var(--bs-border-color); font-size: 1.15rem; }
.entry-content::after { content: ""; display: table; clear: both; }

/* ---------------------------------------------------------------- Header */
.admin-bar .sticky-top { top: 32px; }
@media (max-width: 782px) { .admin-bar .sticky-top { top: 0; } }

.site-title img { width: 155px; height: auto; }

#site-navigation .navbar-nav .nav-link { --bs-nav-link-font-size: .9375rem; }
#site-navigation .about-menu .nav-link { --bs-nav-link-font-size: .8125rem; }
#site-navigation .dropdown-menu { --bs-dropdown-bg: #000; --bs-dropdown-link-active-bg: transparent; --bs-dropdown-link-active-color: #fff; --bs-dropdown-link-hover-bg: rgba(255, 255, 255, .08); --bs-dropdown-font-size: .9375rem; }
@media (min-width: 992px) {
	#site-navigation .about-menu { align-self: flex-start; }
	/* Hover/focus dropdowns (js/custom.js adds .show after a short delay) */
	#site-navigation .dropdown:focus-within > .dropdown-menu,
	#site-navigation .dropdown.show > .dropdown-menu { display: block; margin-top: 0; }
	#site-navigation .searchform .form-control { width: 11rem; transition: width .3s; }
	#site-navigation .searchform .form-control:focus { width: 16rem; }
}
@media (max-width: 991.98px) {
	/* Collapsed menu: sub-menus always open, parent links stay clickable */
	#site-navigation .dropdown-menu { display: block; border: 0; background: none; padding-top: 0; }
	#site-navigation .dropdown-toggle::after { display: none; }
}

/* Multi-level dropdowns */
.dropdown-submenu { position: relative; }
@media (min-width: 992px) {
	.dropdown-submenu > .dropdown-menu { top: 0; left: 100%; margin-top: -.5rem; }
	.dropdown-submenu:hover > .dropdown-menu, .dropdown-submenu:focus-within > .dropdown-menu { display: block; }
}

/* -------------------------------------------------------------- Carousel */
#myCarousel .carousel-item {
	height: clamp(22rem, 70vh, 46rem);
	background-size: cover;
	background-position: center;
}
#myCarousel .carousel-item::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .65);
}
#myCarousel .slide-caption { text-shadow: 1px 1px 2px rgba(0, 0, 0, .8); }
#myCarousel .slide-caption .lead p { margin: 0; }
@media (min-width: 768px) {
	/* Cards overlap the bottom of the carousel */
	#myCarousel .slide-caption { padding-bottom: 9rem; }
	.home .homepage { margin-top: -9rem; z-index: 2; }
}

/* ----------------------------------------------------------------- Cards */
.catalog { transition: box-shadow .3s, transform .3s; }
.catalog:hover, .featured-cards .active .catalog { box-shadow: var(--bs-box-shadow) !important; transform: translateY(-2px); }
.catalog .featured-img img { filter: grayscale(100%); transition: filter .3s, transform .3s; }
.catalog:hover .featured-img img, .featured-cards .active .catalog .featured-img img { filter: none; transform: scale(1.05); }
.catalog .card-text p:last-child { margin-bottom: 0; }

/* ------------------------------------------------------ Archive backgrounds */
.archive, .post-type-archive {
	background: #333 url(images/research-background.jpg) center top / cover no-repeat;
}
@media (min-width: 992px) {
	.archive, .post-type-archive { background-attachment: fixed; }
}
.archive.term-trends { background-image: url(images/trends-background.jpg); }
.archive.term-advertising { background-image: url(images/advertising-background.jpg); }
.post-type-archive-report { background-image: url(images/reports-background.jpg); }
.post-type-archive-opinion { background-image: url(images/opinions-background.jpg); }
.post-type-archive-casestudy { background-image: url(images/casehistory-background.jpg); }
.archive .page-header, .taxonomy-description { text-shadow: 1px 1px 2px rgba(0, 0, 0, .8); }
.taxonomy-description p:last-child { margin-bottom: 0; }
body.search { background-color: var(--bs-tertiary-bg); }

/* ------------------------------------------------------------- Pagination */
.aim-pagination .pagination {
	--bs-pagination-color: var(--bs-dark);
	--bs-pagination-hover-color: #fff;
	--bs-pagination-hover-bg: var(--bs-dark);
	--bs-pagination-hover-border-color: var(--bs-dark);
	--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(var(--aim-red-rgb), .35);
	--bs-pagination-active-bg: var(--bs-dark);
	--bs-pagination-active-border-color: var(--bs-dark);
}
.aim-pagination .page-link:hover { text-decoration: none; }

/* ------------------------------------------------------------- Comments */
.comment-list .comment-body { background: var(--bs-body-bg); border-radius: var(--bs-border-radius); padding: 1rem; margin-bottom: 1rem; }
.comment-list .children { list-style: none; padding-left: 1.5rem; }
.comment-meta { font-size: .875rem; margin-bottom: .5rem; }
.comment-meta .avatar { border-radius: 50%; margin-right: .5rem; vertical-align: middle; }
.comment-metadata a { color: var(--bs-secondary-color); font-style: italic; }
.comment-reply-link { font-size: .875rem; }
.comment-form label { font-weight: 600; }

/* --------------------------------------------------- Contact Form 7 / forms */
.full-width.contact-us .entry-title { display: none; }
h3.contact-title { color: var(--bs-secondary-color); }
.contact-us .company-info { font-size: .875rem; }
.wpcf7 input[type="submit"]:not(.btn) {
	background: var(--aim-red);
	color: #fff;
	border: 0;
	border-radius: var(--bs-border-radius);
	padding: .375rem 1.5rem;
}
.wpcf7 input[type="submit"]:not(.btn):hover { background: #c8261b; }
.wpform label { display: block; font-style: italic; font-weight: 600; }
.wpform input:not([type="submit"]), .wpform select, .wpform textarea {
	width: 100%;
	padding: .375rem .75rem;
	border: var(--bs-border-width) solid var(--bs-border-color);
	border-radius: var(--bs-border-radius);
}
.btn-link { --bs-btn-color: var(--aim-red); }

/* ---------------------------------------------------------------- Footer */
.site-footer { background: var(--aim-footer-bg); }
.site-footer a { color: #fff; }
.my-account-menu-class a {
	display: block;
	padding-bottom: 30px;
	background: url(images/my-account.svg) no-repeat bottom left / 17px 30px;
}
.social-menu-class a {
	display: block;
	width: 30px;
	height: 30px;
	overflow: hidden;
	text-indent: -9999px;
	background-repeat: no-repeat;
}
.social-menu-class .twitter-link a { background-image: url(images/twitter-link.svg); }
.social-menu-class .linkedin-link a { background-image: url(images/linkedin-link.svg); }

/* -------------------------------------------------------------- Lightbox */
#aim-lightbox .modal-content { background: transparent; border: 0; }
#aim-lightbox .modal-body { min-height: 30vh; }
#aim-lightbox img { max-height: 85vh; object-fit: contain; }
#aim-lightbox .lb-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }
#aim-lightbox .lb-prev { left: .5rem; }
#aim-lightbox .lb-next { right: .5rem; }
a.aim-lightbox-link { cursor: zoom-in; }

/* ---------------------- Legacy Bootstrap 3 classes inside old post content */
.img-responsive { display: block; max-width: 100%; height: auto; }
.center-block { display: block; margin-right: auto; margin-left: auto; }
.pull-left { float: left !important; }
.pull-right { float: right !important; }
.btn-default { --bs-btn-color: #333; --bs-btn-bg: #fff; --bs-btn-border-color: #ccc; --bs-btn-hover-bg: #e6e6e6; --bs-btn-hover-border-color: #adadad; }
.input-group-btn { display: flex; }
.embed-responsive { position: relative; overflow: hidden; height: 0; padding-bottom: 56.25%; }
.embed-responsive iframe, .embed-responsive video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
