/*!
Theme Name: Dwyer Architectural 2025
Theme URI: https://dwyerarch.com
Author: Commit Agency
Author URI: https://commitagency.com
Description: Custom child theme for Dwyer Architectural - Built on Larson Architecture Theme
Version: 1.1.0
License: General Public License
License URI: http://www.gnu.org/licenses/gpl.html
Template: larson
Text Domain: dwyer-architectural-2025
Tags: full-width-template, editor-style, featured-images, sticky-post, threaded-comments, translation-ready, theme-options
*/

/* Import Neue Haas Grotesk Display Font */
@import url("https://use.typekit.net/wzj3pxh.css");

/* ==========================================================================
   DWYER ARCHITECTURAL 2025 - CHILD THEME CUSTOMIZATIONS
   ========================================================================== */

/* ==========================================================================
   0. TYPOGRAPHY CUSTOMIZATIONS
   ========================================================================== */

/* Base font family for all elements */
body {
	font-family: neue-haas-grotesk-display, roboto, sans-serif !important;
}

/* Heading font weights */
h1 {
	font-family: neue-haas-grotesk-display, roboto, sans-serif !important;
	font-weight: 600 !important;
}

h2 {
	font-family: neue-haas-grotesk-display, roboto, sans-serif !important;
	font-weight: 600 !important;
}

h3 {
	font-family: neue-haas-grotesk-display, roboto, sans-serif !important;
	font-weight: 600 !important;
}

h4 {
	font-family: neue-haas-grotesk-display, roboto, sans-serif !important;
	font-weight: 500 !important;
}

h5 {
	font-family: neue-haas-grotesk-display, roboto, sans-serif !important;
	font-weight: 500 !important;
}

h6 {
	font-family: neue-haas-grotesk-display, roboto, sans-serif !important;
	font-weight: 500 !important;
}

/* Paragraph font weight */
p {
	font-family: neue-haas-grotesk-display, roboto, sans-serif !important;
	font-weight: 400 !important;
	letter-spacing: .03em !important;
}

/* Override all theme fonts with Neue Haas Grotesk Display */
* {
	font-family: neue-haas-grotesk-display, roboto, sans-serif !important;
}

/* Button font weight */
.btn {
	font-weight: 600 !important;
}

/* Specific overrides for theme elements that use Poppins, Gilroy, or Swansea */
.btn,
button,
input,
textarea,
select,
.social,
.navigation,
.nav,
.menu,
.header,
.footer,
.logo,
.contact,
.services,
blockquote,
.quote,
.testimonial,
.review,
.news,
.project,
.team,
.about,
.statistics,
.partners,
.hero,
.slider,
.carousel,
.tabs,
.accordion,
.modal,
.popup,
.tooltip,
.dropdown,
.filter,
.pagination,
.breadcrumb,
.widget,
.sidebar,
.archive,
.category,
.tag,
.author,
.date,
.meta,
.excerpt,
.content,
.title,
.subtitle,
.caption,
.description,
.label,
.placeholder,
.error,
.warning,
.success,
.info {
	font-family: neue-haas-grotesk-display, roboto, sans-serif !important;
}

/* ==========================================================================
   1. COLOR UTILITIES
   ========================================================================== */

/* Cobalt blue color utility class */
.color-cobalt {
	color: #2d5b9a !important;
}

/* Sun yellow color utility class */
.color-sun {
	color: #ffd563 !important;
}

/* ==========================================================================
   2. HEADER & LOGO CUSTOMIZATIONS
   ========================================================================== */

/* Remove header logo border completely */
.logo::before {
	display: none !important;
}

/* Remove header logo hover background transition effect */
.logo[href]:hover::after {
	transform: translateX(-100%) !important;
}

/* Navigation hover and active states with cobalt color */
.navigation a:hover,
.nav a:hover,
.menu a:hover,
.main-navigation a:hover,
.primary-menu a:hover,
.navigation__link:hover,
.navigation__dropdown li a:hover,
.header--white .navigation__link:hover,
.header--fixed .navigation__link:hover {
	color: #2d5b9a !important;
}

/* Navigation active/current page states */
.navigation .current-menu-item > a,
.nav .current-menu-item > a,
.menu .current-menu-item > a,
.main-navigation .current-menu-item > a,
.primary-menu .current-menu-item > a,
.navigation .current_page_item > a,
.nav .current_page_item > a,
.menu .current_page_item > a,
.main-navigation .current_page_item > a,
.primary-menu .current_page_item > a,
.navigation .current-menu-ancestor > a,
.nav .current-menu-ancestor > a,
.menu .current-menu-ancestor > a,
.main-navigation .current-menu-ancestor > a,
.primary-menu .current-menu-ancestor > a,
.navigation .current_page_ancestor > a,
.nav .current_page_ancestor > a,
.menu .current_page_ancestor > a,
.main-navigation .current_page_ancestor > a,
.primary-menu .current_page_ancestor > a,
.header .navigation li.active a,
.header .nav li.active a,
.header .menu li.active a,
.navigation__item--current .navigation__link,
.current_page_itemnavigation__item > a,
.navigation__dropdown .current-menu-itemnavigation__item a,
.header--white .navigation__item--current .header--white .navigation__link,
.header--fixed .navigation__item--current .navigation__link {
	color: #2d5b9a !important;
}

/* Override theme's teal color with cobalt for specific elements */
.slide-tab:hover .slide-tab__number,
.slide-tab:hover .slide-tab__title,
.quote::before,
blockquote::before,
.main-slider .swiper-custom-pagination ul li.pag-active span {
	color: #2d5b9a !important;
}

/* Statistics value override */
.statistics__item-value {
	color: #2d5b9a !important;
}

/* ==========================================================================
   2. SERVICES SECTION CUSTOMIZATIONS
   ========================================================================== */

/* Remove services title hover line effects */
.services__item-title a,
.services-list .services__item-title a {
	text-decoration: none !important;
	border-bottom: none !important;
}

.services__item-title a:hover,
.services-list .services__item-title a:hover {
	text-decoration: none !important;
	border-bottom: none !important;
}

/* Keep service card detail borders white on hover */
.service-card__detail:hover,
.service-card--reverse .service-card__detail:hover {
	border-color: #ffffff !important;
}

/* ==========================================================================
   3. SERVICE CARD LAYOUT ADJUSTMENTS
   ========================================================================== */

/* Remove service card detail offset while keeping right-side layout */
@media (min-width: 768px) {
	.service-card__detail {
		transform: none !important;
		bottom: -20px !important;
	}
}

/* ==========================================================================
   FINAL OVERRIDES - Must be last to override theme's !important styles
   ========================================================================== */

/* Force cobalt color with maximum specificity */
body .slide-tab:hover .slide-tab__number,
body .slide-tab:hover .slide-tab__title,
body .quote::before,
body blockquote::before,
body .main-slider .swiper-custom-pagination ul li.pag-active span,
body .statistics__item-value,
body .navigation__link:hover,
body .navigation__item--current .navigation__link,
body .navigation__dropdown li a:hover,
body .header--white .navigation__link:hover,
body .header--fixed .navigation__link:hover,
body .dcttg-name,
body .header__phone:hover,
body .filter__item--active,
body .contact-block__phone a:hover,
body .social__link:hover,
body .contact-block__social .social__link:hover,
body .footer__column-menu li a:hover,
body .mobile-canvas__phone:hover,
body .header--white .social__link:hover,
body .header--white .header__phone:hover,
body .header--fixed .social__link:hover,
body .header--fixed .header__phone:hover,
body .footer--white .lang-switcher__link:hover,
body .link-arrow:hover,
body .card--send:hover .card__send-text,
body .preview-card__btn:hover,
body .post-related__title a:hover,
body .contact-block__item-val a:hover,
body .parallax__link:hover,
body .contact-parallax__phone:hover,
body .contact-parallax__email:hover,
body .services-provided__link:hover,
body .social--contact .social__link:hover .fa,
body .social--contact .social__link:hover .fas,
body .social--contact .social__link:hover .fab,
body .social--contact .social__link:hover .far,
body .webpage--parallax-dark .header--white .navigation__list>li>.navigation__link:hover,
body .webpage--parallax-dark .header .social__link:hover,
body .webpage--parallax-dark .footer .lang-switcher__link:hover,
body p a,
body .content a,
body .entry-content a {
	color: #2d5b9a !important;
}

/* Latest projects filter hover uses cobalt */
body .filter__item:hover {
	color: #2d5b9a !important;
	text-decoration: underline !important;
}

/* Force cobalt fill for SVG icons */
body .social__link:hover svg path,
body .header--white .social__link:hover svg path,
body .header--fixed .social__link:hover svg path,
body .social--contact .social__link:hover svg path {
	fill: #2d5b9a !important;
}

/* White link-arrow hover override for hero slider */
body .link-arrow--white:hover,
body .link-arrow--white:hover span,
body .link-arrow--white:hover:before,
body .link-arrow--white:hover:after {
	color: #ffffff !important;
	text-decoration: underline !important;
}

/* Keep arrow icon white on hover */
body .link-arrow--white:hover svg,
body .link-arrow--white:hover svg path,
body .link-arrow--white:hover i,
body .link-arrow--white:hover .fa,
body .link-arrow--white:hover .fas,
body .link-arrow--white:hover .far,
body .link-arrow--white:hover .fab {
	color: #ffffff !important;
	fill: #ffffff !important;
}

/* Add underline hover effect for body copy and footer links */
body p a:hover,
body .content a:hover,
body .entry-content a:hover,
body .footer a:hover,
body .footer__column-menu li a:hover {
	text-decoration: underline !important;
}

/* ==========================================================================
   4. RESPONSIVE TYPOGRAPHY
   ========================================================================== */

/* Larger card headings on desktop */
@media (min-width: 1200px) {
	.card__heading {
		font-size: 24px !important;
	}
}

/* ==========================================================================
   5. FOOTER CUSTOMIZATIONS
   ========================================================================== */

/* Footer text styling */
@media (max-width: 767px) {
	.footer .elementor-element-027f619 p {
		text-align: center !important;
	}
}

/* ==========================================================================
   6. NAVIGATION DROPDOWN CUSTOMIZATIONS
   ========================================================================== */

/* Reduce dropdown padding and align left */
.navigation__dropdown {
	padding: 10px 30px !important;
	text-align: left !important;
}

/* Fixed header dropdown positioning */
.header--fixed .navigation__dropdown {
	bottom: 0px !important;
}

/* Fix dropdown consistency - override all states */
.navigation__dropdown,
.navigation__dropdown:hover,
.navigation__link:hover+.navigation__dropdown,
.navigation__item:hover .navigation__dropdown {
	transition: none !important;
}

/* Dropdown hover behavior */
.navigation__link:hover+.navigation__dropdown,
.navigation__dropdown:hover {
	opacity: 1 !important;
	pointer-events: auto !important;
}

/* Prevent header height changes from dropdown */
.header,
.header__inner,
.navigation,
.navigation__list {
	height: auto !important;
	min-height: auto !important;
	overflow: visible !important;
}

/* Ensure dropdown doesn't affect parent height */
.navigation__dropdown {
	position: absolute !important;
}

/* Override specific theme teal color rules with cobalt */
body .navigation__dropdown .current-menu-itemnavigation__item a,
body .header--white .navigation__item--current .header--white .navigation__link,
body .header--fixed .navigation__item--current .navigation__link,
body .navigation__dropdown .current-menu-itemnavigation__item a:hover,
body .header--white .navigation__item--current .header--white .navigation__link:hover,
body .header--fixed .navigation__item--current .navigation__link:hover,
body .navigation__dropdown li a:hover {
	color: #2d5b9a !important;
}

/* ==========================================================================
   7. BLOCKQUOTE CUSTOMIZATIONS
   ========================================================================== */

/* Replace inline SVG with custom quotes.svg */
.about-section__blockquote svg {
	display: none !important;
}

.about-section__blockquote::before {
	content: '';
	display: inline-block;
	width: 83px;
	height: 66px;
	background-image: url('./quotes.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	vertical-align: top;
	margin-right: 10px;
}

/* ==========================================================================
   8. SERVICE CARD ALIGNMENT FIXES
   ========================================================================== */

/* Align number with text only when service card is reversed (text on right) */
.service-card--reverse .service-card__left .num {
	left: 0 !important;
}

/* Medium screens */
@media (min-width: 768px) {
	.service-card--reverse .service-card__left .num {
		left: 32px !important;
	}
}

/* Better alignment at larger screens */
@media (min-width: 992px) {
	.service-card--reverse .service-card__left .num {
		left: 86px !important;
	}
}

/* Make service card detail positioning consistent on both sides */
.service-card__detail {
	bottom: 0 !important;
	transform: none !important;
	margin: 0 !important;
}

/* Override service card border colors with teal */
.service-card--reverse .service-card__left::before {
	border-left: none !important;
	border-right: solid 4px #39c2d7 !important;
}

@media (min-width: 768px) {
	.service-card__left::before {
		border-top: solid 4px #39c2d7 !important;
		border-left: solid 4px #39c2d7 !important;
	}

	.service-card--reverse .service-card__left::before {
		border-left: none !important;
		border-right: solid 4px #39c2d7 !important;
	}
}

/* Force service card detail borders to stay white on hover */
.service-card__detail:hover,
.service-card--reverse .service-card__detail:hover {
	border-color: #ffffff !important;
}

.service-card__link {
	color: #39c2d7 !important;
}

.service-card__link svg {
	fill: #39c2d7 !important;
}

/* Slider pagination bullets use cobalt */
.swiper-pagination-bullet-active,
.latest-projects__carousel .swiper-pagination-bullet.swiper-pagination-bullet-active,
.reviews-carousel .swiper-pagination-bullet.swiper-pagination-bullet-active {
	background-color: #2d5b9a !important;
}

/* Contact block address letter spacing */
.contact-block__address {
	letter-spacing: .03em !important;
}

/* Contact block phone font size and padding */
.contact-block__phone,
.contact-block__phone a,
.contact-block__phone span {
	font-size: 16px !important;
	font-weight: 600 !important;
	padding: 5px 0 !important;
	margin: 5px 0 !important;
}

/* Reduce contact block margin-bottom by half on all screen sizes */
.contact-block__address {
	margin-bottom: 10px !important;
}

.contact-block__phone {
	margin-bottom: 8px !important;
}

@media (min-width: 768px) {
	.contact-block__address {
		margin-bottom: 12px !important;
	}

	.contact-block__phone {
		margin-bottom: 10px !important;
	}
}

@media (min-width: 992px) {
	.contact-block__address {
		margin-bottom: 15px !important;
	}

	.contact-block__phone {
		margin-bottom: 12px !important;
	}
}

/* Replace reviews carousel inline SVG with custom quotes.svg */
.reviews-carousel__item svg,
.review-card svg {
	display: none !important;
}

.reviews-carousel__item .sep::before,
.review-card .sep::before {
	content: '';
	display: inline-block;
	width: 40px;
	height: 32px;
	background-image: url('./quotes.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	vertical-align: top;
	transform: rotate(180deg);
}

/* ==========================================================================
   9. MOBILE-SPECIFIC CUSTOMIZATIONS
   ========================================================================== */

/* Increase mobile navigation logo size */
@media (max-width: 767px) {
	.mobile-canvas__logo img,
	.mobile-header .logo img,
	.header--mobile .logo img {
		max-height: 60px !important;
		width: auto !important;
	}

	.mobile-canvas__logo,
	.mobile-header .logo,
	.header--mobile .logo {
		padding: 10px 0 !important;
		margin-right: 0 !important;
	}

	.header__logo {
		margin-right: 0 !important;
	}

	/* Reduce hero headline text size on mobile */
	.hero h1,
	.main-slider h1,
	.slider h1,
	.hero .hero__title,
	.main-slider .slide__title,
	.slider .slide__title,
	.elementor-13 .elementor-element.elementor-element-826053a .main-slider .title {
		font-size: 36px !important;
		line-height: 40px !important;
		margin-bottom: 10px !important;
	}

}
@media (max-width: 767px) {

	/* Make accordion titles smaller on mobile */
	.accordion .accordion__item-title,
	.accordion__title,
	.faq .faq__item-title,
	.faq__title,
	.elementor-accordion .elementor-accordion-title,
	.elementor-toggle .elementor-toggle-title,
	.e-n-accordion-item-title h2,
	.e-n-accordion-item-title-text h2 {
		font-size: 18px !important;
		line-height: 1.2 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	/* Reduce accordion title container padding/height and center vertically */
	.e-n-accordion-item-title,
	.elementor-accordion .elementor-accordion-title {
		padding: 8px 15px !important;
		min-height: auto !important;
		display: flex !important;
		align-items: center !important;
	}

	.e-n-accordion-item-title-header {
		flex: 1 !important;
	}

	/* Fix accordion spacing to prevent overlap */
	.accordion .accordion__item,
	.faq .faq__item,
	.elementor-accordion .elementor-accordion-item,
	.elementor-toggle .elementor-toggle-item,
	.e-n-accordion-item {
		margin-bottom: 15px !important;
	}


}

	/* Fix mobile dropdown overlap - only when mobile menu is opened and dropdown is active */
	.mobile-canvas--opened .dropdownnavigation__item .icon.opened + .navigation__dropdown,
	.mobile-canvas--opened .navigation__dropdown {
		position: static !important;
		transform: none !important;
		top: auto !important;
		left: auto !important;
		right: auto !important;
		bottom: auto !important;
		width: 100% !important;
		box-shadow: none !important;
	}
	@media screen and (max-width: 767px) {


	/* Reduce heading sizes on market pages */
	.page-id-1749 h2,
	.page-id-1751 h2,
	.page-id-1749 .elementor-heading-title,
	.page-id-1751 .elementor-heading-title {
		font-size: 20px !important;
		line-height: 1.3 !important;
		margin-bottom: 15px !important;
	}

	.page-id-1749 h3,
	.page-id-1751 h3 {
		font-size: 18px !important;
		line-height: 1.3 !important;
	}

	/* Center footer content on mobile for better visual balance */

	.footer,
	.footer .container,
	.footer .row,
	.footer__column,
	.footer__content {
		text-align: center !important;
	}

	.footer .footer__column-menu {
		text-align: center !important;
	}

	.footer .footer__column-menu ul {
		display: inline-block !important;
		text-align: center !important;
	}
}

	/* Hide author and publish date globally */
	.post-meta,
	.entry-meta,
	.post-date,
	.post-author,
	.author-date,
	.published-date,
	.entry-date,
	.byline,
	.author-info,
	.post-author-info,
	.entry-author,
	.post-sb__date {
		display: none !important;
	}


/* ==========================================================================
   10. GLOBAL SLIDER ADJUSTMENTS
   ========================================================================== */

/* Reduce spacing between title and button in hero slider */
.main-slider .container .more {
	margin-top: 30px !important;
}

/* ==========================================================================
   11. DESKTOP LAYOUT ADJUSTMENTS
   ========================================================================== */

/* Right-align navigation section with hero section */
@media (min-width: 992px) {
	.header .navigation,
	.header .navigation__list,
	.header__nav {
		justify-content: flex-end !important;
		text-align: right !important;
	}

	.header .container,
	.header__inner {
		display: flex !important;
		justify-content: space-between !important;
		align-items: center !important;
	}

	.header .navigation__list {
		margin-left: auto !important;
	}
}

.elementor-widget-larson-project-details {
	padding-top: 30px;
}

.project-meta__item-text {
	letter-spacing: .03em !important;
}

/* Remove services list item top margin */
.services-list__item+.services-list__item {
	margin-top: 0 !important;
}

/* Reduce article project meta bottom margin by ~50% at all breakpoints */
.article__project-meta {
	margin-bottom: 30px !important;
}

@media (min-width: 576px) {
	.article__project-meta {
		margin-bottom: 40px !important;
	}
}

@media (min-width: 768px) {
	.article__project-meta {
		margin-bottom: 50px !important;
	}
}

@media (min-width: 992px) {
	.article__project-meta {
		margin-bottom: 80px !important;
	}
}

/* Align project meta items to the left instead of space-between */
.project-meta {
	justify-content: flex-start !important;
	gap: 40px !important;
}

@media (min-width: 768px) {
	.project-meta {
		gap: 60px !important;
	}
}

/* Reduce bottom margins on project carousel and hero to match project meta reduction */
@media (min-width: 1200px) {
	.article__projects-carousel,
	.article__project-hero {
		margin-bottom: 80px !important;
	}
}


