/**
 * Contact (/contact/): a Beaver Builder page (standard chrome). Custom-module
 * sections; this stylesheet is enqueued on the page by inc/hos-contact.php.
 * Includes design-system overrides for the embedded Gravity Form. Anchors are
 * self-scoped with !important so they hold on the front end (inside .fl-ds-page)
 * and in the BB editor.
 */

/* Buttons */
.hos-ct-btn { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 16px 30px; border-radius: var(--ds-radius-pill); border: 2px solid transparent; font-family: var(--ds-font-heading); font-weight: var(--ds-weight-semibold); font-size: var(--ds-text-base); line-height: 1; white-space: nowrap; }
a.hos-ct-btn { text-decoration: none !important; }
a.hos-ct-btn--primary { background: var(--ds-color-red-dark); color: var(--ds-color-white) !important; }
a.hos-ct-btn--primary:hover { background: var(--ds-color-red-hover); }

/* Hero */
.hos-ct-hero { background: var(--ds-color-surface); padding: clamp(40px, 6vw, 76px) 0; }
.hos-ct-hero__inner { max-width: var(--ds-width-container); margin: 0 auto; padding: 0 var(--ds-space-gutter); }
.hos-ct-hero h1 { margin: 0 0 var(--ds-space-lg); font-family: var(--ds-font-heading); font-weight: var(--ds-weight-bold); font-size: clamp(2.25rem, 5vw, 3.5rem); line-height: 1.08; letter-spacing: var(--ds-letter-display); color: var(--ds-color-heading); }
.hos-ct-hero__intro { max-width: 64ch; }
.hos-ct-hero__intro p { margin: 0; font-size: var(--ds-text-intro); line-height: var(--ds-line-lead); color: var(--ds-color-body); }

/* Get Help callout */
.hos-ct-help { padding: clamp(24px, 3vw, 40px) 0 0; }
.hos-ct-help__inner { max-width: var(--ds-width-container); margin: 0 auto; padding: 0 var(--ds-space-gutter); }
.hos-ct-help__panel { background: var(--ds-color-blue-tint); border-radius: var(--ds-radius-lg); padding: clamp(24px, 3vw, 36px); display: flex; flex-wrap: wrap; gap: var(--ds-space-lg); align-items: center; justify-content: space-between; }
.hos-ct-help__text { flex: 1 1 440px; display: flex; flex-direction: column; gap: var(--ds-space-xs); }
.hos-ct-help__text h2 { margin: 0; font-family: var(--ds-font-heading); font-weight: var(--ds-weight-bold); font-size: var(--ds-text-h4); line-height: 1.3; color: var(--ds-color-heading); }
.hos-ct-help__text p { margin: 0; color: var(--ds-color-body); max-width: 60ch; }

/* Form + image */
.hos-ct-form { padding: clamp(36px, 5vw, 64px) 0 clamp(44px, 6vw, 80px); }
.hos-ct-form__grid { max-width: var(--ds-width-container); margin: 0 auto; padding: 0 var(--ds-space-gutter); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.hos-ct-media__frame { border-radius: var(--ds-radius-lg); overflow: hidden; }
.hos-ct-media__frame img { display: block; width: 100%; height: auto; border-radius: var(--ds-radius-lg); }
.hos-ct-media__ph { display: flex; align-items: center; justify-content: center; text-align: center; aspect-ratio: 4 / 5; padding: var(--ds-space-lg); border: 2px dashed var(--ds-color-border-hover); border-radius: var(--ds-radius-lg); color: var(--ds-color-muted); font-size: var(--ds-text-sm); background: var(--ds-color-surface); }

/* Gravity Form -> design system (scoped to the contact form section) */
.hos-ct-form .gform_wrapper, .hos-ct-form .gform_wrapper * { font-family: var(--ds-font-heading); }
.hos-ct-form .gform_required_legend { font-size: var(--ds-text-xs); color: var(--ds-color-muted); margin-bottom: var(--ds-space-md); }
.hos-ct-form .gform_wrapper .gfield_label { font-weight: var(--ds-weight-semibold); font-size: var(--ds-text-sm); color: var(--ds-color-heading); margin-bottom: 6px; }
.hos-ct-form .gform_wrapper .gfield_required { color: var(--ds-color-red-dark); }
.hos-ct-form .gform_wrapper input[type=text], .hos-ct-form .gform_wrapper input[type=email], .hos-ct-form .gform_wrapper input[type=tel], .hos-ct-form .gform_wrapper select, .hos-ct-form .gform_wrapper textarea { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid var(--ds-color-border-hover); border-radius: var(--ds-radius-md); background: var(--ds-color-white); font-size: var(--ds-text-base); line-height: 1.4; color: var(--ds-color-heading); }
.hos-ct-form .gform_wrapper input:focus, .hos-ct-form .gform_wrapper select:focus, .hos-ct-form .gform_wrapper textarea:focus { outline: none; border-color: var(--ds-color-blue-dark); box-shadow: 0 0 0 3px var(--ds-color-blue-tint-deep); }
.hos-ct-form .gform_wrapper textarea { min-height: 150px; resize: vertical; }
.hos-ct-form .gform_wrapper .ginput_container_consent { display: flex; align-items: flex-start; gap: var(--ds-space-sm); }
.hos-ct-form .gform_wrapper .ginput_container_consent label { font-size: var(--ds-text-sm); color: var(--ds-color-body); }
.hos-ct-form .gform_wrapper .gfield_consent_description { font-size: var(--ds-text-xs); color: var(--ds-color-muted); }
.hos-ct-form .gform_wrapper .gform_footer input[type=submit], .hos-ct-form .gform_wrapper .gform_button { box-sizing: border-box; min-height: 56px; padding: 16px 34px; border: 0; border-radius: var(--ds-radius-pill); background: var(--ds-color-red-dark); color: var(--ds-color-white); font-weight: var(--ds-weight-semibold); font-size: var(--ds-text-intro); cursor: pointer; }
.hos-ct-form .gform_wrapper .gform_footer input[type=submit]:hover, .hos-ct-form .gform_wrapper .gform_button:hover { background: var(--ds-color-red-hover); }
.hos-ct-form .gform_wrapper .gfield_validation_message, .hos-ct-form .gform_wrapper .validation_message { color: var(--ds-color-red-dark); font-size: var(--ds-text-xs); }
.hos-ct-form .gform_confirmation_message { padding: var(--ds-space-lg); background: var(--ds-color-green-tint); border-radius: var(--ds-radius-lg); color: var(--ds-color-heading); font-size: var(--ds-text-intro); }

@media (max-width: 820px) {
	.hos-ct-form__grid { grid-template-columns: 1fr; }
	.hos-ct-media { order: -1; }
}

/* Gravity Forms orbital-theme fixes (button colour, consent description) */
.hos-ct-form .gform_wrapper { --gf-ctrl-btn-bg-color-primary: var(--ds-color-red-dark); --gf-ctrl-btn-bg-color-hover-primary: var(--ds-color-red-hover); --gf-ctrl-btn-border-color-primary: var(--ds-color-red-dark); --gf-ctrl-btn-border-color-hover-primary: var(--ds-color-red-hover); }
.hos-ct-form .gform_wrapper .gform_footer input[type=submit], .hos-ct-form .gform_wrapper button.gform_button, .hos-ct-form .gform_wrapper input.gform_button { background: var(--ds-color-red-dark) !important; border-color: var(--ds-color-red-dark) !important; color: var(--ds-color-white) !important; }
.hos-ct-form .gform_wrapper .gform_footer input[type=submit]:hover, .hos-ct-form .gform_wrapper .gform_button:hover { background: var(--ds-color-red-hover) !important; }
.hos-ct-form .gform_wrapper .gfield_consent_description { border: 0 !important; padding: 0 !important; margin-top: 6px; max-height: none !important; background: transparent !important; overflow: visible !important; font-size: var(--ds-text-xs); color: var(--ds-color-muted); }
.hos-ct-form .gform_wrapper .gfield_consent_description a { color: var(--ds-color-red-dark); }
.hos-ct-form .gform_wrapper select { line-height: 1.5; height: auto; min-height: 48px; }
.hos-ct-form .gform_wrapper .gfield_consent_description_text { border: 0 !important; padding: 0 !important; margin: 0 !important; max-height: none !important; overflow: visible !important; background: transparent !important; }
/* A 24px consent checkbox: an easier target (WCAG 2.2, 2.5.8). */
.hos-ct-form .gform_wrapper .ginput_container_consent input[type="checkbox"] { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--ds-color-red-dark); }
