/*
Theme Name: OSAT 2026
Theme URI: https://www.onsiteacoustictesting.com/
Description: Custom On-Site Acoustic Testing website theme. Child theme of Astra.
Author: On-Site Acoustic Testing, LLC
Template: astra
Version: 1.0.0
Text Domain: osat-2026
WPVibe: yes
*/

/* Homepage-only rules moved to assets/css/osat-home-base.css. */
.osat-topbar{position:relative;z-index:99;height:48px;overflow:hidden;background:#075a88;color:#fff;border-bottom:1px solid rgba(255,255,255,.16)}
.osat-topbar-track{position:relative;width:min(1240px,calc(100% - 56px));height:48px;margin:0 auto}
.osat-topbar-message{position:absolute;inset:0;display:flex;align-items:center;gap:12px;color:#fff!important;text-decoration:none!important;font-size:.86rem;font-weight:650;opacity:0;transform:translateY(7px);animation:osatTopbarCycle 30s infinite}
.osat-topbar-message span{font-size:.65rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase;opacity:.92}
.osat-topbar-message b{margin-left:auto;font-size:1.05rem;font-weight:700}
.osat-topbar-message-1{animation-delay:0s}.osat-topbar-message-2{animation-delay:10s}.osat-topbar-message-3{animation-delay:20s}
@keyframes osatTopbarCycle{0%{opacity:0;transform:translateY(7px)}6%{opacity:1;transform:translateY(0)}28%{opacity:1;transform:translateY(0)}33.333%{opacity:0;transform:translateY(-7px)}100%{opacity:0;transform:translateY(-7px)}}
@media (prefers-reduced-motion:reduce){.osat-topbar-message{animation:none;opacity:0;transform:none}.osat-topbar-message-1{opacity:1}}
.osat-header-phone-wrap{position:absolute;top:58px;right:max(28px,calc((100vw - 1240px)/2));z-index:90}
.osat-header-phone{display:inline-flex;align-items:center;gap:10px;color:#101820!important;text-decoration:none!important;font-size:.82rem;font-weight:750;line-height:1;padding:10px 0;border-bottom:1px solid #b9c5cb}
.osat-header-phone-label{color:#56636c;font-size:.64rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.osat-header-phone-number{white-space:nowrap}
@media(max-width:921px){.osat-header-phone-wrap{top:56px;right:20px}.osat-header-phone-label{display:none}.osat-header-phone-number{font-size:0}.osat-header-phone-number:after{content:"Call";font-size:.82rem}}
/* Homepage-only rules moved to assets/css/osat-home-base.css. */
.ast-small-footer{color:#e7edf0}
.ast-small-footer a{color:#fff!important;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.ast-small-footer a:hover,.ast-small-footer a:focus{color:#fff!important;text-decoration-thickness:2px}

@media (max-width:640px){
  #osat-topbar{min-height:36px!important}
  #osat-topbar>div{width:calc(100% - 40px)!important;gap:8px!important}
  #osat-topbar-link{gap:8px!important;font-size:12px!important;line-height:1.15!important}
  #osat-topbar-label{font-size:9px!important;letter-spacing:.1em!important}
  #osat-topbar-copy{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #osat-topbar-link b{display:none}
  #osat-topbar a[href^="tel:"]{display:none!important}
}
/* Homepage-only rules moved to assets/css/osat-home-base.css. */

/* OSAT responsive readability pass — WPVibe draft */
:root {
	--osat-text: #20262d;
	--osat-muted: #4d5965;
	--osat-link: #155a86;
	--osat-rule: #d9e0e5;
}

body {
	color: var(--osat-text);
	font-size: 18px;
	line-height: 1.68;
	-webkit-text-size-adjust: 100%;
}

.site-content .ast-container {
	max-width: 1240px;
}

.entry-content {
	color: var(--osat-text);
}

.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > h2,
.entry-content > h3,
.entry-content > h4,
.entry-content > .wp-block-image,
.entry-content > .wp-block-gallery,
.entry-content > .wp-block-table,
.entry-content > .wp-block-quote {
	max-width: 820px;
	margin-left: auto;
	margin-right: auto;
}

.entry-content p,
.entry-content li {
	font-size: 1rem;
	line-height: 1.72;
}

.entry-content p {
	margin-bottom: 1.35em;
}

.entry-content li + li {
	margin-top: .38em;
}

.entry-title,
.entry-content h1,
.entry-content h2,
.entry-content h3 {
	line-height: 1.18;
	letter-spacing: -0.015em;
	text-wrap: balance;
}

.entry-title {
	font-size: clamp(2rem, 4vw, 3.15rem);
	margin-bottom: .65em;
}

.entry-content h2 {
	font-size: clamp(1.55rem, 3vw, 2.15rem);
	margin-top: 1.65em;
	margin-bottom: .65em;
}

.entry-content h3 {
	font-size: clamp(1.25rem, 2.4vw, 1.65rem);
	margin-top: 1.45em;
}

.entry-content a {
	text-decoration: underline;
	text-decoration-thickness: .08em;
	text-underline-offset: .16em;
}

.entry-content img {
	max-width: 100%;
	height: auto;
}

.wp-block-image img {
	display: block;
	margin-inline: auto;
}

.main-header-menu > .menu-item > .menu-link,
.ast-header-break-point .main-header-menu .menu-link {
	line-height: 1.35;
}

#masthead .main-header-menu .menu-link { font-weight:600; }
#masthead .main-header-menu .sub-menu .menu-link { line-height:1.35; }

/* OSAT desktop header: one layout owner; Astra continues to own mobile/dropdowns.
   The transparent wrappers let existing WordPress items share the header grid. */
@media (min-width:922px) {
  #masthead .main-header-bar { padding:0; }
  #masthead .main-header-bar > .ast-container {
    width:880px; max-width:none; margin-inline:auto; padding:0;
  }
  #masthead .main-header-container {
    display:grid; grid-template-columns:minmax(0,1fr) repeat(5,max-content) minmax(0,1fr);
    justify-content:center; align-items:center; gap:12px 24px;
    padding:16px 0 12px; position:relative;
  }
  #masthead .ast-main-header-bar-alignment,
  #masthead .main-header-bar-navigation,
  #masthead #primary-site-navigation,
  #masthead .main-navigation,
  #masthead #primary-menu { display:contents; }
  #masthead .site-branding { grid-column:1 / -1; grid-row:1; justify-self:start; padding:0; margin:0; }
  #masthead .ast-site-identity { padding:0; }
  #masthead .site-logo-img { padding-right:0; }
  #masthead .custom-logo { width:243px; max-width:100%; height:auto; }
  #masthead #primary-menu > li {
    position:relative; float:none; width:auto; margin:0; padding:0;
    align-self:center; grid-row:2; order:0; transform:none;
  }
  #masthead #menu-item-1478 { grid-column:2; }
  #masthead #menu-item-1479 { grid-column:3; }
  #masthead #menu-item-1129 { grid-column:4; }
  #masthead #menu-item-1480 { grid-column:5; }
  #masthead #menu-item-1119 { grid-column:6; }
  #masthead #primary-menu .sub-menu .menu-link { font-size:15px; }
  #masthead #primary-menu > .menu-item > .menu-link {
    display:flex; align-items:center; min-height:44px; padding:8px 0;
    font-size:15px; line-height:1.35; white-space:nowrap;
  }
  #masthead #primary-menu > .search-custom-menu-item {
    grid-column:1 / -1; grid-row:1; position:relative; inset:auto;
    width:160px; margin-right:116px; justify-self:end; transform:none;
  }
  #masthead #primary-menu > #menu-item-547 {
    grid-column:1 / -1; grid-row:1; justify-self:end; position:relative; inset:auto;
    width:100px;
  }
  #masthead .search-custom-menu-item .ast-search-menu-icon { width:100%; height:auto; }
  #masthead .search-custom-menu-item .ast-search-icon { display:none; }
  #masthead .search-custom-menu-item .search-form {
    display:block; position:static; width:100%; height:auto; margin:0; padding:0;
    opacity:1; visibility:visible; overflow:visible; background:transparent;
    transform:none; box-shadow:none; border:0;
  }
  #masthead .search-custom-menu-item .search-form label { display:block; margin:0; }
  #masthead .search-custom-menu-item .search-field {
    display:block; box-sizing:border-box; width:100%; height:44px;
    padding:10px 12px; font-size:15px; line-height:1.35;
    background:#fff; color:#26343d; border:1px solid #cfd8de;
    border-radius:3px; box-shadow:none;
  }
  #masthead .search-custom-menu-item .search-field:focus {
    border-color:#0071CD; outline:2px solid #0071CD; outline-offset:2px;
  }
  #masthead #primary-menu > #menu-item-547 > .menu-link {
    justify-content:center; min-height:44px; padding:10px 18px; margin:0;
    border:1px solid #0071CD; border-radius:3px;
    background:#0071CD; color:#fff; font-weight:600; text-decoration:none;
  }
  #masthead #primary-menu > #menu-item-547 > .menu-link:hover,
  #masthead #primary-menu > #menu-item-547 > .menu-link:focus {
    background:#005ba6; border-color:#005ba6; color:#fff;
  }
  #masthead #primary-menu > .menu-item:focus-within > .sub-menu {
    opacity:1; visibility:visible; left:0; right:auto;
  }
  #masthead #primary-menu > #menu-item-1119 > .sub-menu { left:auto; right:0; }
}
.osat-topbar-inner { width:min(1240px,calc(100% - 56px)); }
@media(min-width:922px) and (max-width:1439px){
  .osat-topbar-inner { width:880px; }
  #masthead .custom-logo { transform:translateX(-22px); }
}
@media(max-width:921px){
  .osat-topbar-inner { width:min(880px,calc(100% - 48px)); }
  #masthead .main-header-bar > .ast-container { width:calc(100% - 48px); margin-inline:auto; padding:0; }
  #masthead .site-branding { padding:0; }
  #masthead .site-logo-img { padding-right:0; }
  #masthead .ast-site-identity { padding:12px 0; }
  #masthead .custom-logo { width:200px; transform:translateX(-9.0535%); }
  #masthead .menu-toggle { width:44px; min-height:44px; padding:0; }
}
@media(max-width:700px){
  .osat-topbar-inner { width:calc(100% - 40px); }
  #masthead .main-header-bar > .ast-container { width:calc(100% - 40px); }
  #masthead .custom-logo { width:180px; }
}
/* At 1440 CSS pixels the header and ticker share the page's centered shell. */
@media (min-width:1440px) {
  .osat-topbar-inner { width:1340px; }
  #masthead .main-header-bar > .ast-container { width:1340px; }
  #masthead .main-header-container {
    justify-content:space-between;
    grid-template-columns:243px repeat(5,max-content) 160px 100px;
    column-gap:20px; min-height:112px; padding:16px 0;
  }
  #masthead #primary-menu > .menu-item > .menu-link,
  #masthead #primary-menu .sub-menu .menu-link { font-size:16px; }
  #masthead .site-branding { grid-column:1; grid-row:1; }
  /* The logo PNG has 22px of transparent space before its visible lettering. */
  #masthead .custom-logo { transform:translateX(-22px); }
  #masthead #primary-menu > li { grid-row:1; justify-content:center; }
  #masthead #menu-item-1478 { grid-column:2; }
  #masthead #menu-item-1479 { grid-column:3; }
  #masthead #menu-item-1129 { grid-column:4; }
  #masthead #menu-item-1480 { grid-column:5; }
  #masthead #menu-item-1119 { grid-column:6; }
  #masthead #primary-menu > .search-custom-menu-item { grid-column:7; margin-right:0; }
  #masthead #primary-menu > #menu-item-547 { grid-column:8; }
}

.ast-header-break-point .main-header-menu .menu-link {
	min-height: 48px;
	display: flex;
	align-items: center;
	padding-top: .75rem;
	padding-bottom: .75rem;
}

button,
input,
select,
textarea {
	font-size: 16px;
}


@media (max-width: 921px) {
	body {
		font-size: 17px;
	}

	.site-content .ast-container {
		padding-left: 22px;
		padding-right: 22px;
	}

	.ast-separate-container .ast-article-single,
	.ast-separate-container .ast-article-post {
		padding: 2rem 1.4rem;
	}

	.entry-title {
		font-size: clamp(1.8rem, 7vw, 2.45rem);
	}

	.entry-content > p,
	.entry-content > ul,
	.entry-content > ol,
	.entry-content > h2,
	.entry-content > h3,
	.entry-content > h4,
	.entry-content > .wp-block-image,
	.entry-content > .wp-block-gallery,
	.entry-content > .wp-block-table,
	.entry-content > .wp-block-quote {
		max-width: 100%;
	}
}

@media (max-width: 544px) {
	body {
		font-size: 16.5px;
		line-height: 1.65;
	}

	.site-content .ast-container {
		padding-left: 16px;
		padding-right: 16px;
	}

	.ast-separate-container .ast-article-single,
	.ast-separate-container .ast-article-post {
		padding: 1.5rem 1rem;
	}

	.entry-content p,
	.entry-content li {
		line-height: 1.68;
	}

	.entry-content ul,
	.entry-content ol {
		padding-left: 1.35rem;
	}

	.wp-block-image {
		margin-top: 1.4rem;
		margin-bottom: 1.6rem;
	}
}

/* Existing mobile Contact treatment. */
@media (max-width: 921px) {
  #masthead #primary-menu > #menu-item-547 > .menu-link {
    display: inline-flex;
    width: auto;
    min-height: 44px;
    margin: 12px 16px 16px;
    padding: 11px 20px;
    border: 1px solid #0071CD;
    border-radius: 3px;
    background: #0071CD;
    color: #fff;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
    justify-content: center;
  }
  #masthead #primary-menu > #menu-item-547 > .menu-link:hover,
  #masthead #primary-menu > #menu-item-547 > .menu-link:focus {
    background: #005ba6;
    border-color: #005ba6;
    color: #fff;
  }
}

/* Stronger mobile header/footer pass — draft only */
@media (max-width: 921px) {
	.ast-button-wrap .menu-toggle,
	.ast-button-wrap .menu-toggle .menu-toggle-icon,
	.ast-button-wrap .menu-toggle .menu-toggle-icon:before,
	.ast-button-wrap .menu-toggle .menu-toggle-icon:after,
	.ast-mobile-menu-trigger-minimal,
	.ast-mobile-menu-trigger-minimal .ast-mobile-svg,
	.ast-mobile-menu-trigger-minimal svg,
	.ast-mobile-menu-trigger-minimal svg path {
		color: #0071CD !important;
		fill: #0071CD !important;
		stroke: #0071CD !important;
	}
	.ast-small-footer,
	.site-footer,
	.site-footer .ast-footer-overlay,
	.ast-footer-overlay {
		padding-top: 14px !important;
		padding-bottom: 14px !important;
	}
	.ast-small-footer .ast-container,
	.site-footer .ast-container {padding-top:0!important;padding-bottom:0!important}
	.ast-small-footer-section,
	.site-footer p,
	.site-footer .widget,
	.site-footer .widget-title {margin-top:0!important;margin-bottom:6px!important}
	.ast-small-footer,
	.ast-small-footer a,
	.site-footer,
	.site-footer a {font-size:13px!important;line-height:1.35!important}

}

/* Refined footer hierarchy */
.site-footer .ast-footer-overlay{border-top:1px solid #dbe2e6}
.site-footer .ast-small-footer-wrap{display:grid;grid-template-columns:1fr;gap:4px;padding:9px 0;text-align:left!important}
.site-footer .ast-small-footer-section-1{max-width:1100px;font-size:15px!important;line-height:1.4!important;color:#f2f5f7!important;text-align:left!important;float:none!important;width:100%!important}
@media (min-width:1440px){.site-footer .ast-small-footer-section-1{max-width:none;white-space:nowrap}}
.site-footer .ast-small-footer-section-2{font-size:15px!important;line-height:1.4!important;color:#e5eaee!important;text-align:left!important;float:none!important;width:100%!important}
.site-footer .ast-small-footer-section-2 a{font-size:15px!important;line-height:1.4!important;color:#ffffff!important;text-decoration:none}
.site-footer .ast-small-footer-section-2 a:hover{text-decoration:underline;text-underline-offset:3px}

@media (max-width: 544px) {
	.ast-small-footer,
	.site-footer,
	.site-footer .ast-footer-overlay,
	.ast-footer-overlay {padding-top:6px!important;padding-bottom:6px!important}
	.ast-small-footer .ast-container,
	.site-footer .ast-container {padding-top:0!important;padding-bottom:0!important}
	.ast-small-footer-section,
	.site-footer p,
	.site-footer .widget,
	.site-footer .widget-title {margin-top:0!important;margin-bottom:2px!important}
	.ast-small-footer,
	.ast-small-footer a,
	.site-footer,
	.site-footer a {font-size:12px!important;line-height:1.22!important}
}


