/* Home page (front page). Generated by build/homepage.py -- only what Elementor
   cannot express. Scoped to body.page-slug-home / ac-home-* classes. */


/* Hello's paragraph margin makes every text widget ~14px taller than designed. */
body.page-slug-home .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Eyebrow: optional 32x3 red bar before the text (hero). */
.ac-home-eyebrow--bar .elementor-heading-title { display: inline-flex; align-items: center; gap: 12px; }
.ac-home-eyebrow--bar .elementor-heading-title::before {
	content: ""; flex: none; width: 32px; height: 3px; background: var(--e-global-color-primary);
}

/* Hero */

.ac-home-hero-photo img { display: block; }
.ac-home-track { position: relative; z-index: 1; }

/* Online tools: whole card is the link. */
.ac-home-tool { text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.ac-home-tool:hover, .ac-home-tool:focus-visible {
	border-color: var(--e-global-color-line300) !important;
	box-shadow: 0 6px 18px rgba(10, 14, 40, .08);
}
.ac-home-tool:focus-visible { outline: 2px solid var(--e-global-color-secondary); outline-offset: 2px; }
.ac-home-tile {
	display: flex; align-items: center; justify-content: center;
	width: 52px; height: 52px; border-radius: 10px;
	color: var(--e-global-color-secondary); background: var(--e-global-color-indigo100);
}
.ac-home-tile--red100 { background: var(--e-global-color-red100); }
.ac-home-tile-w { flex: none; }
.ac-home-ico { display: block; flex: none; }

/* Arrow text links in service cards */
/* inline (not inline-flex): when the label wraps, the arrow follows the last word instead
   of being stranded at the right edge of a full-width flex box. */
.ac-home-link {
	display: inline;
	font-family: var(--e-global-typography-text-font-family, "Inter"), sans-serif;
	font-size: 16px; font-weight: 700; line-height: 1.55;
	color: var(--e-global-color-secondary); text-decoration: none;
}
.ac-home-link:hover, .ac-home-link:focus-visible { color: var(--e-global-color-accent); }
@media (max-width: 1024px) {
	/* 44px tap height without moving the layout. */
	.ac-home-link { padding-block: 12px; }   /* inline: padding grows the hit box, not the layout */
}
.ac-home-link:hover .ac-home-ico { transform: translateX(3px); }
.ac-home-link .ac-home-ico { transition: transform .15s ease; }

/* Service card photos: flush to the card top, clipped by its radius. */
.ac-home-svc-photo img { display: block; }
@media (min-width: 768px) and (max-width: 1024px) {
	/* Tablet row cards: photo fills the card height beside the copy. */
	.ac-home-svc-photo { align-self: stretch; position: relative; min-height: 240px; }
	.ac-home-svc-photo img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; }
}

/* Check list: icon on the first line, not centred on wrapped text. */
.ac-home-checks .elementor-icon-list-item { align-items: flex-start !important; }
.ac-home-checks .elementor-icon-list-icon { padding-top: 4px; }

/* Testimonial card fills the column (Elementor wraps shortcodes twice). */
.ac-home-testi, .ac-home-testi > .elementor-widget-container,
.ac-home-testi .elementor-shortcode { height: 100%; }

/* --- Forms (Elementor Pro) ------------------------------------------------- */
.ac-home-form .elementor-field-group:not(.elementor-field-type-upload) .elementor-field:not(.elementor-select-wrapper) {
	min-height: 50px; padding: 0 14px; box-shadow: none;
}
.ac-home-form .elementor-field-group .elementor-field::placeholder { color: var(--e-global-color-slate500); opacity: 1; }
.ac-home-form .elementor-field-group textarea.elementor-field { height: 120px; padding: 12px 14px; resize: vertical; }
/* field :focus styling lives in global.css (site-wide, beats Elementor's generated rule) */
.ac-home-form .elementor-form-fields-wrapper { align-items: flex-end; }
.ac-home-form .elementor-field-type-submit .elementor-button { min-height: 56px; }
.ac-home-form .elementor-field-type-html { align-self: center; }
.ac-home-quote-form .elementor-field-type-html { margin-bottom: 0; }

/* Field + button rows: the field takes the slack, the button keeps its natural
   width (Elementor's 75/25 or 66/33 columns let "Track" overflow its card and wrap
   "Send enquiry" onto two lines between 1025 and 1280). */
body.page-slug-home .ac-home-track-form .elementor-field-group.elementor-field-type-text,
body.page-slug-home .ac-home-quote-form .elementor-field-group.elementor-field-type-html { flex: 1 1 0; width: auto; max-width: none; min-width: 0; }
body.page-slug-home .ac-home-form .elementor-field-group.elementor-field-type-submit { flex: none; width: auto; max-width: none; align-self: flex-end; }

/* Small laptops (1025-1280): two-up tool cards, smaller hero display type. */
@media (min-width: 1025px) and (max-width: 1280px) {
	body.page-slug-home .ac-home-tools .ac-home-tool { --width: calc((100% - 20px) / 2); }
	body.page-slug-home .ac-home-hero .elementor-widget-heading h1.elementor-heading-title { font-size: 52px; }
}

@media (max-width: 767px) {
	/* Stack field/button rows full width on phones. */
	body.page-slug-home .ac-home-form .elementor-field-group.elementor-field-type-text,
	body.page-slug-home .ac-home-form .elementor-field-group.elementor-field-type-html,
	body.page-slug-home .ac-home-form .elementor-field-group.elementor-field-type-submit { flex: 1 1 100%; width: 100%; }
	body.page-slug-home .ac-home-form .elementor-field-type-submit .elementor-button { width: 100%; }
	/* 16px inputs already: iOS will not zoom on focus. */
	.ac-home-form .elementor-field-type-html { order: 2; margin-top: 4px; }
	.ac-home-quote-form .elementor-field-type-submit { order: 1; }
}

.ac-home-link .ac-home-ico { display: inline-block; vertical-align: -3px; margin-left: 8px; }
