/*
Theme Name:   AWS Services
Theme URI:    https://buildgrowth.au
Description:  Custom child theme for AWS Services, built on Hello Elementor. All page content, Elementor layouts, menus, and settings carry over from the parent. Adds the redesign header and footer, an AWS Full Width page template, homepage section styles (assets/css/site.css), Elementor helper classes, and a mobile call and quote dock on every page.
Author:       BuildGrowth
Author URI:   https://buildgrowth.au
Template:     hello-elementor
Version:      1.9.2
Requires at least: 6.0
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:  aws-services
*/

/* ==========================================================================
   1. DESIGN TOKENS
   Taken from the homepage redesign mockup. Change a value here to change it
   everywhere it is used.
   ========================================================================== */
:root {
	/* Brand colours */
	--aws-navy-950:   #0d1721; /* top bar, dark sections, footer, headings */
	--aws-navy-900:   #1a2a39; /* header */
	--aws-navy-800:   #24364a;
	--aws-amber:      #f1a900; /* buttons, highlights, CTA band */
	--aws-amber-dark: #c48c0b; /* eyebrow labels on light backgrounds */
	--aws-text:       #0d1721;
	--aws-text-muted: #5b6573;
	--aws-text-on-dark:       #ffffff;
	--aws-text-muted-on-dark: #a9b4c0;
	--aws-bg:         #ffffff;
	--aws-bg-grey:    #ecf0f3; /* trust band, specialist strip, case studies, FAQs */
	--aws-border:     #e1e6ea;
	--aws-border-dark: #2a3a4a; /* card borders on dark sections */

	/* Typography */
	--aws-font-body:    "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--aws-font-heading: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--aws-font-size:    16px;
	--aws-line-height:  1.6;
	--aws-heading-tracking: -0.03em;

	/* Shape and spacing */
	--aws-radius:     6px;
	--aws-radius-lg:  8px;
	--aws-shadow:     0 10px 30px rgba(13, 23, 33, 0.10);
	--aws-section-y:  96px;
	--aws-section-y-mobile: 56px;
	--aws-transition: 0.2s ease;

	/* Mobile dock */
	--aws-dock-height: 64px;
}

/* ==========================================================================
   2. BASE
   Applies wherever Elementor has not set its own value. Elementor Site
   Settings (Global Colours and Fonts) override these, so set those to the
   same palette (see README.md).
   ========================================================================== */
body {
	font-family: var(--aws-font-body);
	font-size: var(--aws-font-size);
	line-height: var(--aws-line-height);
	color: var(--aws-text);
	background-color: var(--aws-bg);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
	font-family: var(--aws-font-heading);
	letter-spacing: var(--aws-heading-tracking);
	line-height: 1.15;
}

a { transition: color var(--aws-transition); }

::selection { background: var(--aws-amber); color: var(--aws-navy-950); }

/* Amber highlight inside a heading: wrap words in <span class="aws-hl"> */
.aws-hl { color: var(--aws-amber); }

/* ==========================================================================
   3. BUTTONS
   Add the class to the Button widget (Advanced > CSS Classes). Leave the
   widget's own Style colours empty so these apply.
   ========================================================================== */
.elementor-widget-button[class*="aws-btn-"] .elementor-button {
	font-family: var(--aws-font-body);
	font-weight: 600;
	font-size: 15px;
	letter-spacing: 0;
	padding: 14px 22px;
	border-radius: var(--aws-radius);
	border: 1.5px solid transparent;
	transition: background-color var(--aws-transition), border-color var(--aws-transition), color var(--aws-transition), transform var(--aws-transition);
}
.elementor-widget-button[class*="aws-btn-"] .elementor-button:hover { transform: translateY(-1px); }

/* Amber, dark text (Request a quote) */
.elementor-widget-button.aws-btn-primary .elementor-button { background: var(--aws-amber); color: var(--aws-navy-950); }
.elementor-widget-button.aws-btn-primary .elementor-button:hover { background: #ffbb14; color: var(--aws-navy-950); }

/* White outline, for dark backgrounds (Call 1300 665 325 in the hero) */
.elementor-widget-button.aws-btn-outline-light .elementor-button { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.45); }
.elementor-widget-button.aws-btn-outline-light .elementor-button:hover { border-color: #fff; background: rgba(255, 255, 255, 0.06); color: #fff; }

/* Solid navy (View all case studies, CTA band Request a quote) */
.elementor-widget-button.aws-btn-dark .elementor-button { background: var(--aws-navy-950); color: #fff; }
.elementor-widget-button.aws-btn-dark .elementor-button:hover { background: var(--aws-navy-800); color: #fff; }

/* Navy outline, for the amber CTA band phone button */
.elementor-widget-button.aws-btn-outline-dark .elementor-button { background: transparent; color: var(--aws-navy-950); border-color: var(--aws-navy-950); }
.elementor-widget-button.aws-btn-outline-dark .elementor-button:hover { background: rgba(13, 23, 33, 0.06); color: var(--aws-navy-950); }

/* Underlined text link with amber rule (Infrastructure capability, Remedial services) */
.aws-link a,
a.aws-link,
.aws-link .elementor-heading-title {
	display: inline-block;
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0;
	color: var(--aws-navy-950);
	text-decoration: none;
	padding-bottom: 3px;
	border-bottom: 2px solid var(--aws-amber);
}
.aws-link a:hover, a.aws-link:hover { color: var(--aws-amber-dark); }

/* ==========================================================================
   4. SECTIONS
   Add to the outer container of each homepage band.
   ========================================================================== */
.aws-section {
	padding-top: var(--aws-section-y);
	padding-bottom: var(--aws-section-y);
}
.aws-section--grey  { background-color: var(--aws-bg-grey); }
.aws-section--dark  { background-color: var(--aws-navy-950); color: var(--aws-text-on-dark); }
.aws-section--amber { background-color: var(--aws-amber); color: var(--aws-navy-950); }

.aws-section--dark .elementor-widget-heading .elementor-heading-title,
.aws-hero .elementor-widget-heading .elementor-heading-title { color: #fff; }
.aws-section--dark .elementor-widget-text-editor,
.aws-section--dark p { color: var(--aws-text-muted-on-dark); }
.aws-section--amber .elementor-widget-heading .elementor-heading-title,
.aws-section--amber .elementor-widget-text-editor { color: var(--aws-navy-950); }

@media (max-width: 767px) {
	.aws-section {
		padding-top: var(--aws-section-y-mobile);
		padding-bottom: var(--aws-section-y-mobile);
	}
}

/* Small uppercase label above a section heading (WHO WE WORK WITH) */
.aws-eyebrow .elementor-heading-title,
.aws-eyebrow {
	font-family: var(--aws-font-body);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aws-amber-dark);
	line-height: 1.4;
}
.aws-section--dark .aws-eyebrow .elementor-heading-title,
.aws-hero .aws-eyebrow .elementor-heading-title { color: var(--aws-amber); }

/* Section heading (H2) */
.aws-h2 .elementor-heading-title {
	font-size: clamp(30px, 3.4vw, 44px);
	font-weight: 800;
	color: var(--aws-navy-950);
	line-height: 1.1;
}

/* Muted intro paragraph to the right of a section heading */
.aws-intro,
.aws-intro p {
	color: var(--aws-text-muted);
	font-size: 16px;
	line-height: 1.6;
}

/* ==========================================================================
   5. HEADER AND TOP BAR
   If the header is built in Elementor Theme Builder, add these classes there.
   ========================================================================== */
.aws-topbar {
	background: var(--aws-navy-950);
	color: #fff;
	font-size: 13px;
	padding-top: 8px;
	padding-bottom: 8px;
}
.aws-topbar a, .aws-topbar p, .aws-topbar .elementor-widget-text-editor { color: #fff; font-size: 13px; margin: 0; }

.aws-header { background: var(--aws-navy-900); }
.aws-header .elementor-nav-menu a,
.aws-header .elementor-nav-menu--main .elementor-item {
	color: #fff;
	font-size: 15px;
	font-weight: 500;
}
.aws-header .elementor-nav-menu a:hover,
.aws-header .elementor-nav-menu--main .elementor-item:hover,
.aws-header .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--aws-amber); }
.aws-header-phone, .aws-header-phone p { color: #fff; font-weight: 700; font-size: 17px; line-height: 1.2; margin: 0; }
.aws-header-phone small { display: block; font-weight: 400; font-size: 11px; color: var(--aws-text-muted-on-dark); }

/* ==========================================================================
   6. HERO
   Container with the crew photo as Background Image. Set Background Overlay
   in Elementor to navy (#0d1721) around 70-80% so the text stays readable.
   ========================================================================== */
.aws-hero {
	color: #fff;
	padding-top: 72px;
	padding-bottom: 40px;
}
.aws-hero h1,
.aws-hero .elementor-widget-heading h1.elementor-heading-title {
	font-size: clamp(36px, 4.6vw, 58px);
	font-weight: 800;
	line-height: 1.06;
	color: #fff;
}
.aws-hero .elementor-widget-text-editor,
.aws-hero .elementor-widget-text-editor p { color: rgba(255, 255, 255, 0.86); font-size: 17px; }

/* Stats row under the hero (25+ / 4 / 5 / ISO) */
.aws-stats {
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	padding-top: 28px;
	margin-top: 48px;
}
.aws-stat .elementor-heading-title { color: #fff; font-size: 28px; font-weight: 800; line-height: 1; }
.aws-stat .elementor-widget-text-editor, .aws-stat p { color: var(--aws-text-muted-on-dark); font-size: 12px; margin: 0; }
@media (min-width: 768px) {
	.aws-stat + .aws-stat { border-left: 1px solid rgba(255, 255, 255, 0.18); padding-left: 24px; }
}

/* Photo caption (Pictured: AWS Services crew...) */
.aws-caption, .aws-caption p { font-size: 11px; font-style: italic; color: rgba(255, 255, 255, 0.6); }

/* ==========================================================================
   7. QUOTE FORM CARD (hero form)
   Add to the container or Form widget holding the hero form.
   ========================================================================== */
.aws-quote-form {
	background: #fff;
	color: var(--aws-text);
	border-top: 3px solid var(--aws-amber);
	border-radius: var(--aws-radius-lg);
	box-shadow: var(--aws-shadow);
	padding: 24px;
}
.aws-quote-form .elementor-heading-title { color: var(--aws-navy-950) !important; font-size: 18px; font-weight: 700; }
.aws-quote-form .elementor-widget-text-editor, .aws-quote-form p { color: var(--aws-text-muted); font-size: 13px; }
.aws-quote-form .elementor-field-group .elementor-field,
.aws-quote-form input:not([type="submit"]),
.aws-quote-form select,
.aws-quote-form textarea {
	background: #fff;
	border: 1px solid var(--aws-border);
	border-radius: var(--aws-radius);
	font-size: 14px;
	color: var(--aws-text);
	min-height: 46px;
}
.aws-quote-form .elementor-field-group .elementor-field:focus,
.aws-quote-form input:focus, .aws-quote-form select:focus, .aws-quote-form textarea:focus {
	border-color: var(--aws-amber);
	box-shadow: 0 0 0 3px rgba(241, 169, 0, 0.2);
	outline: none;
}
.aws-quote-form .elementor-button,
.aws-quote-form button[type="submit"],
.aws-quote-form input[type="submit"] {
	width: 100%;
	background: var(--aws-amber) !important;
	color: var(--aws-navy-950) !important;
	font-weight: 700;
	border: 0;
	border-radius: var(--aws-radius);
	min-height: 50px;
}
.aws-quote-form .elementor-button:hover { background: #ffbb14 !important; }

/* ==========================================================================
   8. TRUST BAND (TRUSTED ON LANDMARK WORKS)
   Grey container with an inline Icon List. The icons are replaced with
   small amber squares.
   ========================================================================== */
.aws-trust-band {
	background: var(--aws-bg-grey);
	padding-top: 18px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--aws-border);
}
.aws-trust-band .aws-eyebrow .elementor-heading-title { color: var(--aws-text-muted); }
.aws-trust-band .elementor-icon-list-text { font-weight: 600; font-size: 14px; color: var(--aws-navy-950); }
.aws-trust-band .elementor-icon-list-icon { display: none; }
.aws-trust-band .elementor-icon-list-item::before {
	content: "";
	width: 7px;
	height: 7px;
	background: var(--aws-amber);
	margin-right: 8px;
	flex-shrink: 0;
}

/* ==========================================================================
   9. CARDS
   ========================================================================== */

/* WHO WE WORK WITH: white card with navy top edge */
.aws-audience-card {
	background: #fff;
	border: 1px solid var(--aws-border);
	border-top: 3px solid var(--aws-navy-950);
	border-radius: var(--aws-radius-lg);
	padding: 24px;
}
.aws-audience-card .elementor-heading-title { color: var(--aws-navy-950); }

/* Checklist with amber ticks and divider lines (Icon List widget) */
.aws-checklist .elementor-icon-list-item {
	padding-top: 9px !important;
	padding-bottom: 9px !important;
	border-top: 1px solid var(--aws-border);
	margin: 0 !important;
}
.aws-checklist .elementor-icon-list-icon i,
.aws-checklist .elementor-icon-list-icon svg { color: var(--aws-amber); fill: var(--aws-amber); font-size: 12px; width: 12px; }
.aws-checklist .elementor-icon-list-text { font-size: 14px; color: var(--aws-navy-950); }

/* WHAT WE DO: service card with photo on top */
.aws-service-card {
	background: #fff;
	border: 1px solid var(--aws-border);
	border-radius: var(--aws-radius-lg);
	overflow: hidden;
	transition: box-shadow var(--aws-transition), transform var(--aws-transition);
}
.aws-service-card:hover { box-shadow: var(--aws-shadow); transform: translateY(-2px); }
.aws-service-card .elementor-widget-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }

/* Link list with chevrons (Icon List widget, chevron icon, aligned right) */
.aws-linklist .elementor-icon-list-item {
	border-top: 1px solid var(--aws-border);
	padding-top: 9px !important;
	padding-bottom: 9px !important;
	margin: 0 !important;
}
.aws-linklist .elementor-icon-list-item a { display: flex; justify-content: space-between; width: 100%; }
.aws-linklist .elementor-icon-list-text { font-size: 14px; color: var(--aws-navy-950); }
.aws-linklist .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--aws-amber-dark); }
.aws-linklist .elementor-icon-list-icon { order: 2; }
.aws-linklist .elementor-icon-list-icon i,
.aws-linklist .elementor-icon-list-icon svg { color: var(--aws-amber); fill: var(--aws-amber); font-size: 11px; width: 11px; }

/* Small dark label on a photo (Remedial, Civil, Facade) */
.aws-tag, .aws-state, .aws-step-num { align-self: flex-start; width: auto; flex-grow: 0; }
.aws-tag .elementor-heading-title,
.aws-tag {
	display: inline-block;
	background: var(--aws-navy-950);
	color: #fff !important;
	font-family: var(--aws-font-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0;
	padding: 5px 9px;
	border-radius: 3px;
}

/* SPECIALIST strip under the service cards */
.aws-specialist-strip {
	background: var(--aws-bg-grey);
	border: 1px solid var(--aws-border);
	border-radius: var(--aws-radius-lg);
	overflow: hidden;
}
.aws-specialist-strip > .e-con-inner > .e-con,
.aws-specialist-strip > .e-con { padding: 20px; }
@media (min-width: 768px) {
	.aws-specialist-strip > .e-con-inner > .e-con + .e-con,
	.aws-specialist-strip > .e-con + .e-con { border-left: 1px solid var(--aws-border); }
}
@media (max-width: 767px) {
	.aws-specialist-strip > .e-con-inner > .e-con + .e-con,
	.aws-specialist-strip > .e-con + .e-con { border-top: 1px solid var(--aws-border); }
}

/* ==========================================================================
   10. WHY AWS (dark section)
   ========================================================================== */
.aws-why-grid {
	border: 1px solid var(--aws-border-dark);
	border-radius: var(--aws-radius-lg);
	overflow: hidden;
}
.aws-why-item { padding: 22px; border-bottom: 1px solid var(--aws-border-dark); }
@media (min-width: 768px) {
	.aws-why-item:nth-child(even) { border-left: 1px solid var(--aws-border-dark); }
}
.aws-why-item .elementor-heading-title { color: #fff; font-size: 18px; font-weight: 700; }
.aws-num .elementor-heading-title, .aws-num {
	color: var(--aws-amber) !important;
	font-size: 12px !important;
	font-weight: 700;
	letter-spacing: 0.04em;
}

/* Video block with amber play button (Video widget) */
.aws-video { border-radius: var(--aws-radius-lg); overflow: hidden; }
.aws-video .elementor-custom-embed-play i,
.aws-video .elementor-custom-embed-play svg {
	color: var(--aws-navy-950);
	fill: var(--aws-navy-950);
	background: var(--aws-amber);
	border-radius: 50%;
	padding: 18px;
	font-size: 26px;
	width: 64px;
	height: 64px;
	opacity: 1;
	text-shadow: none;
}

/* ISO accreditation panel */
.aws-iso-panel {
	border: 1px solid var(--aws-border-dark);
	border-radius: var(--aws-radius-lg);
	padding: 22px;
}
.aws-iso-panel strong { color: #fff; }

/* ==========================================================================
   11. HOW WE WORK (process steps)
   ========================================================================== */
.aws-steps { border-top: 2px solid var(--aws-navy-950); padding-top: 26px; }
.aws-step-num .elementor-heading-title,
.aws-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--aws-amber);
	color: var(--aws-navy-950) !important;
	font-size: 12px !important;
	font-weight: 700;
	letter-spacing: 0;
}
.aws-steps .elementor-widget-text-editor { color: var(--aws-text-muted); font-size: 14px; }

/* ==========================================================================
   12. CASE STUDIES
   ========================================================================== */
.aws-case-card {
	background: #fff;
	border: 1px solid var(--aws-border);
	border-radius: var(--aws-radius-lg);
	overflow: hidden;
	transition: box-shadow var(--aws-transition);
}
.aws-case-card:hover { box-shadow: var(--aws-shadow); }
.aws-case-card .elementor-widget-image img { width: 100%; aspect-ratio: 5 / 3; object-fit: cover; display: block; }

/* State badge (VIC, NSW, QLD) */
.aws-state .elementor-heading-title,
.aws-state {
	display: inline-block;
	background: var(--aws-navy-950);
	color: #fff !important;
	font-family: var(--aws-font-body);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.04em;
	padding: 4px 7px;
	border-radius: 3px;
}

/* Problem / Method / Outcome markers (inline Icon List, icons hidden) */
.aws-pmo .elementor-icon-list-icon { display: none; }
.aws-pmo .elementor-icon-list-item {
	border-left: 2px solid var(--aws-amber);
	padding-left: 6px !important;
	margin-right: 10px !important;
}
.aws-pmo .elementor-icon-list-text { font-size: 12px; color: var(--aws-text-muted); }

/* "Read case study" footer row of a card */
.aws-card-footer { border-top: 1px solid var(--aws-border); padding: 14px 18px; }
.aws-card-footer a, .aws-card-footer .elementor-heading-title { font-size: 13px; font-weight: 600; color: var(--aws-navy-950); letter-spacing: 0; }

/* ==========================================================================
   13. TESTIMONIAL
   ========================================================================== */
.aws-testimonial {
	border-left: 4px solid var(--aws-amber);
	padding-left: 24px;
}
.aws-testimonial .elementor-heading-title,
.aws-testimonial blockquote {
	font-size: clamp(20px, 2vw, 24px);
	font-weight: 700;
	color: #3a4552;
	line-height: 1.3;
	margin: 0;
}
.aws-testimonial cite, .aws-testimonial .elementor-widget-text-editor { font-size: 13px; color: var(--aws-text-muted); font-style: normal; }

/* ==========================================================================
   14. SERVICE AREAS
   ========================================================================== */
.aws-location-card {
	background: #fff;
	border: 1px solid var(--aws-border);
	border-radius: var(--aws-radius-lg);
	padding: 16px;
	transition: border-color var(--aws-transition);
}
.aws-location-card:hover { border-color: var(--aws-amber); }
.aws-location-card .elementor-heading-title { color: var(--aws-navy-950); font-size: 16px; }
.aws-location-card .elementor-widget-text-editor { font-size: 12px; color: var(--aws-text-muted); }

/* Map with navy "Head office" panel underneath */
.aws-map-card {
	border-radius: var(--aws-radius-lg);
	overflow: hidden;
	box-shadow: var(--aws-shadow);
}
.aws-map-card .elementor-widget-google_maps iframe { display: block; }
.aws-map-panel { background: var(--aws-navy-900); color: #fff; padding: 20px; }
.aws-map-panel .elementor-heading-title { color: #fff; }
.aws-map-panel .elementor-widget-text-editor, .aws-map-panel p { color: rgba(255, 255, 255, 0.82); font-size: 13px; }

/* ==========================================================================
   15. FAQS
   Works with the Accordion, Nested Accordion, and Toggle widgets.
   ========================================================================== */
/* Legacy Accordion / Toggle */
.aws-faq .elementor-accordion-item,
.aws-faq .elementor-toggle-item {
	border: 0 !important;
	border-top: 1px solid #d5dbe1 !important;
}
.aws-faq .elementor-accordion-item:last-child,
.aws-faq .elementor-toggle-item:last-child { border-bottom: 1px solid #d5dbe1 !important; }
.aws-faq .elementor-tab-title {
	padding: 20px 0 !important;
	background: transparent !important;
	border: 0 !important;
}
.aws-faq .elementor-tab-title a,
.aws-faq .elementor-accordion-title,
.aws-faq .elementor-toggle-title {
	font-family: var(--aws-font-heading);
	font-size: 16px;
	font-weight: 700;
	color: var(--aws-navy-950) !important;
	letter-spacing: -0.01em;
}
.aws-faq .elementor-accordion-icon,
.aws-faq .elementor-toggle-icon { color: var(--aws-amber) !important; }
.aws-faq .elementor-accordion-icon svg,
.aws-faq .elementor-toggle-icon svg { fill: var(--aws-amber) !important; }
.aws-faq .elementor-tab-content {
	padding: 0 0 20px !important;
	border: 0 !important;
	color: var(--aws-text-muted);
	font-size: 14px;
	background: transparent !important;
}

/* Nested Accordion (newer Elementor) */
.aws-faq .e-n-accordion-item { border-top: 1px solid #d5dbe1; }
.aws-faq .e-n-accordion-item:last-child { border-bottom: 1px solid #d5dbe1; }
.aws-faq .e-n-accordion-item-title {
	padding: 20px 0 !important;
	background: transparent !important;
	border: 0 !important;
}
.aws-faq .e-n-accordion-item-title-text {
	font-size: 16px;
	font-weight: 700;
	color: var(--aws-navy-950) !important;
}
.aws-faq .e-n-accordion-item-title-icon i,
.aws-faq .e-n-accordion-item-title-icon svg { color: var(--aws-amber) !important; fill: var(--aws-amber) !important; }

/* ==========================================================================
   16. FOOTER
   ========================================================================== */
.aws-footer { background: var(--aws-navy-950); color: rgba(255, 255, 255, 0.8); }
.aws-footer .elementor-heading-title { color: #fff; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.aws-footer a, .aws-footer .elementor-icon-list-text { color: rgba(255, 255, 255, 0.8); font-size: 14px; }
.aws-footer a:hover, .aws-footer a:hover .elementor-icon-list-text { color: var(--aws-amber); }
.aws-footer-bottom { border-top: 1px solid var(--aws-border-dark); font-size: 12px; color: rgba(255, 255, 255, 0.55); }

/* ==========================================================================
   17. UTILITIES
   ========================================================================== */
.aws-hover-lift { transition: transform var(--aws-transition), box-shadow var(--aws-transition); }
.aws-hover-lift:hover { transform: translateY(-4px); box-shadow: var(--aws-shadow); }
.aws-muted, .aws-muted p { color: var(--aws-text-muted); }

/* ==========================================================================
   18. MOBILE CALL AND QUOTE DOCK
   Output on every page by functions.php. Shows on phones and tablets only.
   ========================================================================== */
.aws-dock { display: none; }

@media (max-width: 1024px) {
	.aws-dock {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 10px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9990;
		padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
		background: var(--aws-navy-950);
		border-top: 1px solid rgba(255, 255, 255, 0.08);
		box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.18);
	}

	.aws-dock__btn {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		min-height: 46px;
		border-radius: var(--aws-radius);
		font-family: var(--aws-font-body);
		font-size: 15px;
		font-weight: 700;
		line-height: 1;
		text-decoration: none;
		-webkit-tap-highlight-color: transparent;
		transition: transform var(--aws-transition), background-color var(--aws-transition);
	}
	.aws-dock__btn:active { transform: scale(0.97); }
	.aws-dock__btn svg { width: 17px; height: 17px; flex-shrink: 0; }

	.aws-dock .aws-dock__btn--call { background: var(--aws-navy-800); color: #fff; border: 1px solid rgba(255, 255, 255, 0.14); }
	.aws-dock .aws-dock__btn--call:hover, .aws-dock .aws-dock__btn--call:focus { color: #fff; }
	.aws-dock .aws-dock__btn--quote { background: var(--aws-amber); color: var(--aws-navy-950); }
	.aws-dock .aws-dock__btn--quote:hover, .aws-dock .aws-dock__btn--quote:focus { color: var(--aws-navy-950); }

	.aws-dock__btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

	/* Stop the dock covering the bottom of the footer */
	body.aws-has-dock { padding-bottom: calc(var(--aws-dock-height) + env(safe-area-inset-bottom, 0px)); }
}

/* Hide the dock while the Elementor editor is open */
.elementor-editor-active .aws-dock { display: none !important; }

/* ==========================================================================
   19. YOUR CUSTOM RULES
   Add anything else below this line.
   ========================================================================== */
