/*
Theme Name: Astra Child
Theme URI: https://example.com
Description: Child theme for Astra
Author: Your Name
Author URI: https://example.com
Template: astra
Version: 1.0.0
Text Domain: astra-child
*/

@import url('https://fonts.googleapis.com/css2?family=Exo:ital,wght@0,100..900;1,100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

:root {
    --heading-font: 'Exo', sans-serif;
    --body-font: 'Poppins', sans-serif;
}

body {
    font-family: var(--body-font);
    font-size: 16px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--heading-font);
}

/* Fluid h1/h2 (375px -> 1440px). body.elementor-kit-7 beats the kit sizes. */
h1,
body.elementor-kit-7 h1 {
	font-size: clamp(32px, calc(25.66px + 1.69vw), 50px);
}

h2,
body.elementor-kit-7 h2 {
	font-size: clamp(28px, calc(23.77px + 1.127vw), 40px);
}

/* Fluid size for heading widgets with a fixed px size: add "fluid-h fh-{px}". */
.fh-50 { --fh-max: 50; --fh-min: 32; }
.fh-40 { --fh-max: 40; --fh-min: 28; }
.fh-36 { --fh-max: 36; --fh-min: 26; }
.fh-35 { --fh-max: 35; --fh-min: 26; }
.fh-34 { --fh-max: 34; --fh-min: 26; }
.fluid-h .elementor-heading-title {
	font-size: clamp(
		calc(var(--fh-min) * 1px),
		calc(var(--fh-min) * 1px + (var(--fh-max) - var(--fh-min)) * (100vw - 375px) / 1065),
		calc(var(--fh-max) * 1px)
	) !important;
}

.pmb-0 p {
	margin-bottom: 0 !important;
}

#menu-item-78 a, #menu-item-77 a {
	border-radius: 24px;
	border: 1px solid #fff;
	background-color: #D62828;
	padding: 10px 25px;
	margin-left: 15px
}
#menu-item-77 a {
	background-color: unset;
}

#menu-item-78 a {
	color: #fff;
}


/* Homepage hero switched from a dark to a light gradient background — darken the transparent header's
   plain text nav links for contrast (Portal/Join Us keep their own button colors, excluded by ID). */
/* body.page-id-8 li.menu-item:not(#menu-item-77):not(#menu-item-78) > a.hfe-menu-item {
	color: #08083D !important;
}
body.page-id-8 li.menu-item:not(#menu-item-77):not(#menu-item-78) > a.hfe-menu-item:hover {
	color: #1F56CF !important;
} */
body.page-id-8 .hfe-nav-menu-icon svg,
body.page-id-8 .hfe-nav-menu-icon svg path {
	fill: #08083D !important;
}
/* Portal is a transparent/white-outline ghost button — invisible on the new light hero, so give it a solid fill here */
body #menu-item-77 a {
	background-color: #1F56CF !important;
	border-color: #1F56CF !important;
	color: #fff !important;
}

/* Recruiting page hero switched from a dark video to a light photo/gradient hero — darken the landing header text */
body.page-id-58 .landing-page-custom-header,
body.page-id-58 .landing-page-custom-header .elementor-icon-list-item,
body.page-id-58 .landing-page-custom-header .elementor-icon-list-text,
body.page-id-58 .landing-page-custom-header i {
	color: #08083D !important;
}
body.page-id-58 .landing-page-custom-header .elementor-icon-list-items .elementor-icon-list-item:last-child {
	color: #fff !important;
}

/* .producer-testimonials--single{
    max-width:869px;
    margin:0 auto;
} */

.producer-testimonials--grid{
    display:flex;
    flex-wrap:wrap;
    gap:20px;
    max-width:1200px;
    margin:0 auto;
}

.producer-testimonials--grid .producer-testimonial-card{
    flex:1 1 calc(33.333% - 14px);
    min-width:280px;
}

.producer-testimonials .producer-testimonial-card{
    background:#fff;
    border:1px solid #E1E7EF;
    border-radius:10px;
    padding:25px;
    display:flex;
    flex-direction:column;
}

.producer-testimonials .testimonial-top{
    display:flex;
    align-items: flex-start;
    gap: 20px;
    flex-direction: column;
}

.producer-testimonials .testimonial-icons{
    display:flex;
    flex-direction:column;
    gap:10px;
    width:100px;
    flex-shrink:0;
}

.svc-item .svc-head {
  cursor: pointer;
  user-select: none;
}
.svc-item .svc-icon {
  flex: 0 0 54px;
  width: 54px;
  height: 54px;
  background: #1f55d6;
  border-radius: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.svc-item .svc-icon .elementor-icon-wrapper,
.svc-item .svc-arrow .elementor-icon-wrapper {
  line-height: 0;
}
.svc-item .svc-icon img {
  width: 30px;
  height: 30px;
  object-fit: contain;
}
.svc-item .svc-text {
  flex: 1 1 auto;
  max-width: 560px;
}
.svc-item .svc-title .elementor-heading-title,
.svc-item .svc-desc p {
  margin: 0;
}
.svc-item .svc-arrow {
  flex: 0 0 auto;
  width: auto;
  margin-left: auto;
}
.svc-item .svc-arrow svg {
  transition: transform 0.3s ease;
}
.svc-item.is-open .svc-arrow svg {
  transform: rotate(180deg);
}
.svc-item .svc-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}
.svc-item.is-open .svc-body {
  border-top: 1px solid #e3e7ee;
}
.svc-item .svc-cards:empty {
  display: none;
}
.svc-item .svc-card {
  max-width: 100%;
}
.svc-item .svc-card-title .elementor-heading-title {
  margin-bottom: 6px;
}
.svc-item .svc-price .elementor-heading-title {
  margin-bottom: 16px;
}
.svc-item .svc-price .svc-per {
  font-family: "Poppins", sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: #65758b;
  margin-left: 8px;
}
.svc-item .svc-addon-title .elementor-heading-title {
  margin: 8px 0 2px;
}
.svc-item .svc-addon p {
  margin: 0 0 18px;
}
.elementor-editor-active .svc-item .svc-body {
  max-height: none !important;
}
@media (max-width: 767px) {
  .svc-item .svc-icon {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
  }
  .svc-item .svc-title .elementor-heading-title {
    font-size: 19px;
  }
}

.producer-testimonials .quote-icon{
    width:41px;
    height:auto;
    display:block;
}

.producer-testimonials .stars-icon{
    width:90px;
    display:block;
}

.producer-testimonials .testimonial-content{
    color:#65758B;
    font-family:'Poppins', sans-serif;
    font-size:16px;
    font-weight:400;
    line-height:1.5;
    flex:1;

    /* fixed height = 4 lines, scrolls instead of growing */
    max-height:calc(1.5em * 4);
    overflow-y:auto;
    padding-right:8px;

    /* thin scrollbar - Firefox */
    scrollbar-width:thin;
    scrollbar-color:#C7CFDB transparent;
}

.producer-testimonials .testimonial-content p{
    margin:0;
}

.producer-testimonials .testimonial-content::-webkit-scrollbar{
    width:6px;
}

.producer-testimonials .testimonial-content::-webkit-scrollbar-track{
    background:transparent;
}

.producer-testimonials .testimonial-content::-webkit-scrollbar-thumb{
    background-color:#C7CFDB;
    border-radius:10px;
}

.producer-testimonials .testimonial-content::-webkit-scrollbar-thumb:hover{
    background-color:#A9B4C4;
}

.producer-testimonials .testimonial-divider{
    height:1px;
    background:#F0F2F6;
    margin:25px 0 18px;
}

.producer-testimonials .testimonial-footer{
    display:flex;
    align-items:center;
    gap:12px;
}

.producer-testimonials .person-icon{
    width:44px;
    height:44px;
    flex-shrink:0;
}

.producer-testimonials .person-icon img{
    width:100%;
    height:100%;
    display:block;
    border-radius:50%;
}

.producer-testimonials .person-info h4{
    margin:0;
    font-family:'Poppins', sans-serif;
    font-size:16px;
    font-weight:700;
    color:#192E54;
}

.producer-testimonials .person-info p{
    margin:0;
    font-family:'Poppins', sans-serif;
    font-size:14px;
    font-weight:400;
    color:#65758B;
}

.landing-page-custom-header .elementor-icon-list-items .elementor-icon-list-item:last-child {
	background-color: #E12533;
    padding: 10px 30px;
    border-radius: 50px;
}
.two-columns-list ul {
	column-count: 2;
}

#gform_submit_button_1,
#gform_submit_button_2 {
	border-radius: 50px;
	background-color: #D62828;
	color: #fff;
	font-size: 16px;
	font-weight: 500;
}
.home-hero-wrapper .elementor-shape .elementor-shape-fill {
	fill: #F6F8FB !important;
}
.landing-page-custom-header .elementor-widget-image a img[src$=".svg"] {
	width: 100% !important;
}

.home-hero-wrapper {
  min-height: 100vh;
}

.sto-territories-card {
	max-width: 460px;
	margin: 0 auto;
	background: #ffffff;
	border-radius: 18px;
	padding: 26px;
	box-shadow: 0 18px 40px rgba(0, 0, 30, 0.35);
	font-family: inherit; /* uses whatever font the theme has installed */
}

.sto-territories-header {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 20px;
}

.sto-pin-icon {
	display: inline-flex;
	color: #16215c;
}

.sto-territories-title {
	margin: 0;
	font-size: 19px;
	font-weight: 700;
	color: #16215c;
	font-family: inherit;
}

.sto-territories-list {
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}

.sto-territory-row {
	margin-bottom: 12px;
}

.sto-territory-row:last-child {
	margin-bottom: 0;
}

#page .sto-territory-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	background: #eef1f9;
	border: 1px solid #dbe1f0;
	border-radius: 10px;
	padding: 14px 16px;
	text-decoration: none !important;
	transition: background 0.15s ease, box-shadow 0.15s ease;
}

.sto-territory-link:hover,
.sto-territory-link:focus {
	background: #e2e7f5;
	box-shadow: 0 2px 8px rgba(22, 33, 92, 0.12);
}

.sto-territory-name {
	font-weight: 700;
	color: #16215c;
	font-size: 14.5px;
	font-family: inherit;
}

.sto-badge {
	flex-shrink: 0;
	display: inline-block;
	padding: 5px 16px;
	border-radius: 999px;
	font-size: 11.5px;
	font-weight: 600;
	font-family: inherit;
	white-space: nowrap;
	width: 120px;
    text-align: center;
}

.sto-badge-available {
	background: #0f2f22;
	color: #4ade80;
}

.sto-badge-unavailable {
	background: #D62828;
	color: #fff;
}

.producers-start-wrapper .package-details-wrapper {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.4s ease, opacity 0.3s ease;
}
.producers-start-wrapper .package-details-wrapper.is-open {
  opacity: 1;
}

/* Clickable row */
.producers-start-wrapper .view-package-btn {
  cursor: pointer;
  user-select: none;
}

/* Chevron rotation (down -> up) */
.producers-start-wrapper .view-package-btn svg {
  transition: transform 0.3s ease;
}
.producers-start-wrapper .view-package-btn.is-open svg {
  transform: rotate(180deg);
}

/* Keep details visible while editing in Elementor */
.elementor-editor-active .producers-start-wrapper .package-details-wrapper {
  max-height: none !important;
  opacity: 1 !important;
}

@media (min-width: 768px) {
  .producers-start-wrapper {
    align-items: flex-start;
  }
}

@media (min-width: 1921px) {
  .home-hero-wrapper {
    min-height: 850px !important; 
  }
}
@media (max-width:1024px){

	#menu-item-78 a  {
		margin: 20px 15px;
		display: flex;
		justify-content: center;
	}
	#menu-item-77 a  {
		padding: 20px 15px;
		margin-left: 0;
	}
}

@media (max-width:767px){

    .producer-testimonials{
        grid-template-columns:1fr;
    }

    .testimonial-content{
        font-size:20px;
    }
	.two-columns-list ul {
		column-count: 1;
	}

}

/* Prevent Elementor button text from wrapping mid-phrase; pairs stack instead */
.elementor-button-text {
    white-space: nowrap;
}

/* Elementor's global kit sets --kit-widget-spacing:20px site-wide, which Elementor adds
   on top of any per-widget margin via calc(var(--kit-widget-spacing) + margin) — setting
   a widget's own margin to 0 does NOT cancel this out, the 20px default still applies
   underneath. These elements need that kit default zeroed explicitly, not just their own
   margin. "Independent, But Not on an Island" 3-card row: title/subtitle pairs. */
.elementor-element-nb3fa, .elementor-element-nb3fb,
.elementor-element-nb3fd, .elementor-element-nb3fe,
.elementor-element-nb400, .elementor-element-nb401 {
    --kit-widget-spacing: 0px !important;
}

/* Homepage "Training for Your Whole Business" 5-card grid: description text sits right
   above an icon-list — same hidden kit-spacing issue as above. */
.elementor-element-4df204b, .elementor-element-3e0743c,
.elementor-element-7c4895b, .elementor-element-05463b6,
.elementor-element-9f92973, .elementor-element-e9834b0,
.elementor-element-9f99f64, .elementor-element-31552eb,
.elementor-element-e076fa5, .elementor-element-b047a12 {
    --kit-widget-spacing: 0px !important;
}

/* Application Request form (Gravity Forms #1, "Let's See if We're a Fit" section)
   Overrides GF's default gravity-theme styling to match the XD spec — labels, field
   padding/spacing, checkbox row, and required-fields legend all come from GF's own
   theme CSS by default and need explicit overrides here, not just Elementor settings. */
#gform_wrapper_1 .gfield_label,
#gform_wrapper_1 .gform-field-label {
    font-family: 'Poppins', sans-serif;
    font-size: 12px;
    font-weight: 600;
    color: #65758B;
    margin-bottom: 8px;
}
#gform_wrapper_1 .gfield_required_asterisk {
    color: #D62828;
}
#gform_wrapper_1 .gform-field-label--type-sub {
    font-weight: 400;
    color: #65758B;
    font-size: 13px;
}
#gform_wrapper_1 input[type="text"],
#gform_wrapper_1 input[type="email"],
#gform_wrapper_1 input[type="tel"],
#gform_wrapper_1 input[type="number"],
#gform_wrapper_1 select,
#gform_wrapper_1 textarea {
    border: 1px solid #DCDCDC !important;
    border-radius: 6px !important;
    padding: 12px 15px !important;
    font-size: 14px !important;
    color: #08083D !important;
    background: #fff !important;
    font-family: 'Poppins', sans-serif !important;
}
#gform_wrapper_1 select {
    color: #65758B !important;
    /* GF sets a fixed select height; with 12px padding the label text gets clipped */
    height: auto !important;
    min-height: 46px;
    line-height: 1.4 !important;
}
#gform_wrapper_1 .gfield {
    margin-bottom: 20px;
}
#gform_wrapper_1 .gform_fields {
    row-gap: 20px;
}
#gform_wrapper_1 .gform-grid-row {
    column-gap: 20px;
}
#gform_wrapper_1 .gform_heading,
#gform_wrapper_1 .gform_required_legend {
    font-size: 13px;
    color: #65758B;
    margin-bottom: 20px;
}
/* Checkbox (disclaimer) row — light gray background box around the checkbox + text */
#gform_wrapper_1 .gfield--type-checkbox legend {
    display: none;
}
#gform_wrapper_1 .gchoice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #F0F2F6;
    border-radius: 6px;
    padding: 12px 15px;
}
#gform_wrapper_1 .gfield-choice-input {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    flex-shrink: 0;
}
#gform_wrapper_1 .gform-field-label--type-inline {
    font-size: 8px;
    font-weight: 400;
    color: #08083D;
}
/* Submit button centered, and reinforced spacing/padding since GF's own theme CSS
   loads after ours and can win on source order for equal-specificity rules */
#gform_wrapper_1 .gform_footer {
    display: flex !important;
    justify-content: center !important;
    padding: 0 !important;
    margin-top: 10px !important;
}
#gform_wrapper_1,
#gform_wrapper_1 .gform-body,
#gform_wrapper_1 .gform_body {
    padding: 0 !important;
    margin: 0 !important;
}
#gform_wrapper_1 .gform_fields {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
}
#gform_wrapper_1 .gfield {
    margin: 0 !important;
}
#gform_wrapper_1 .gform-grid-row {
    display: flex !important;
    gap: 20px !important;
}

/* Eyebrow labels (small uppercase blue/gray tags above a heading or card title) —
   one shared class so future style changes are a single edit instead of N Elementor edits.
   !important to beat Elementor's own per-widget compiled CSS regardless of load order. */
.max-w-699 {
    max-width: 699px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Main header mega menu (post 67): Elementor Pro's mega-menu widget wraps each
   dropdown's content in an auto-generated ".e-n-menu-content" div that defaults to
   width:100% of an ancestor instead of sizing to its own content, even with
   "Content Width: Fit To Content" set on the widget — this balloons the whole
   header's flex width and causes the logo/nav to overlap. Force it to size to its
   actual child (the container we set an explicit width on). Only one nav menu
   exists on the site, so this is safe to apply globally. */
.e-n-menu-content {
    width: max-content !important;
}

/* NOTE: an earlier attempt here forced .e-n-menu-content{left:0!important} to
   left-align the dropdown to its trigger. That fought Elementor's own JS-driven
   dropdown positioning and produced an inconsistent, drifting result (measured
   position changed between checks with no interaction in between) — removed
   rather than left in place. Left-alignment is being revisited separately. */

/* Main header (post 67): push the nav menu + Portal/Join Us buttons to the right
   edge, leaving the logo flush left. Standard flexbox trick (margin-left:auto on
   the item that should start the right-aligned group) — simpler and more reliable
   than wrapping the menu+buttons in a sub-container, which caused the menu widget
   to render outside its own parent's bounds for unresolved reasons. Fixed id
   (not a random Elementor-generated one) so this keeps matching across rebuilds. */
.elementor-element-hdrmm001 {
    margin-left: auto !important;
}

/* Site-wide Elementor button sizing — one rule instead of per-widget typography/padding
   settings, so every button (any page) stays in sync. !important to beat each widget's
   own compiled inline-style CSS regardless of load order. */
.elementor-button {
    font-family: 'Poppins', sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    padding: 15px 30px !important;
}

.eyebrow {
    font-family: 'Poppins', sans-serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
}

/* Main header (post 67) "Our Network" mega-menu dropdown: "Producer Experiences"
   was wrapping to 2 lines inside the dropdown's fixed-width column. Widened the
   column (Elementor container 8e9b022, 220px -> 260px) and force nowrap here as
   a safety net against any future font/width drift. */
.elementor-element-90c5a1b .elementor-heading-title,
.elementor-element-d88d67d .elementor-heading-title {
    white-space: nowrap !important;
}

/* About page (post ID 1058) -- "How The Revolution Began" timeline */
.timeline-card-left,
.timeline-card-right {
    position: relative;
}
.timeline-card-left::after,
.timeline-card-right::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 20px;
    height: 20px;
    background: #FFFFFF;
    transform: translateY(-50%) rotate(45deg);
    z-index: 1;
}
.timeline-card-left::after {
    right: -10px;
    box-shadow: 4px -4px 10px rgba(0, 0, 0, 0.06);
}
.timeline-card-right::after {
    left: -10px;
    box-shadow: -4px 4px 10px rgba(0, 0, 0, 0.06);
}
.timeline-wrap {
    position: relative;
}
.timeline-wrap::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 2px;
    background: #D1D5DB;
    transform: translateX(-50%);
    z-index: 0;
}

/* About page (post ID 1058) -- "More Than an FMO" section */
.fmo-card {
    background-color: #FFFFFF;
    border: 1px solid #E1E7EF;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
    padding: 25px;
}

/* Training page (post ID 1073) -- "The Training Journey" connector line: one segment per
   gap, spanning only between adjacent icon centers (not past Join or Master) */
.journey-step {
    position: relative;
    z-index: 0;
}
.journey-step:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 43px;
    left: 50%;
    width: 114%;
    height: 2px;
    background-image: repeating-linear-gradient(to right, #1F56CF 0, #1F56CF 5px, transparent 5px, transparent 10px);
    z-index: -1;
}

/* Training page (post ID 1073) -- "Training That Goes Beyond Theory" section: XD has this
   section on plain white, not the gray-blue Elementor default */
.elementor-element-076d3d4 {
    background-color: #FFFFFF !important;
}

/* Training page (post ID 1073) -- "Revolution Live" promo card photo: the wrap column was
   only as tall as its own image (a short wide banner crop) instead of stretching to match
   the text column beside it, leaving the card lopsided vs XD's flush full-height photo.
   height:100% on .vegas-photo-wrap itself fights the row's flex stretch (percentage height
   against an indefinite parent resolves to auto), so that rule is left off the wrap and
   only applied to its children once the wrap is properly stretched. */
.vegas-photo-wrap .elementor-widget-wrap,
.vegas-photo-wrap .elementor-widget-image,
.vegas-photo-wrap .elementor-widget-container {
    height: 100%;
}
/* Marketing page (post ID 1076) -- "Flexible Systems" card should overlap the photo above
   it (bottom-left of the image, per XD), not sit stacked directly beneath it */
.elementor-element-cf2bae9 {
    position: relative;
    margin-top: -76px;
    margin-left: -46px;
}

.vegas-photo-wrap img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    border-radius: 10px;
    display: block;
}

/* Marketing page (post ID 1076) -- "Full Services Menu" accordion: XD uses a taller row
   with a bigger icon badge, larger title, rounded 20px card border, and the toggle chevron
   on the right in red instead of Elementor's small default chevron on the left */
.elementor-element-bdf0e6c .elementor-accordion-item {
    border-radius: 20px !important;
    border-color: #65758B !important;
}
.elementor-element-bdf0e6c .elementor-tab-title {
    display: flex;
    align-items: center;
    padding: 20px 30px;
}
.elementor-element-bdf0e6c .elementor-tab-title .elementor-accordion-icon {
    order: 2;
    margin-left: auto;
    margin-right: 0;
    font-size: 20px;
}
.elementor-element-bdf0e6c .elementor-tab-title .elementor-accordion-icon,
.elementor-element-bdf0e6c .elementor-tab-title .elementor-accordion-icon svg {
    color: #E12533 !important;
    fill: #E12533 !important;
}
.elementor-element-bdf0e6c .elementor-tab-title .elementor-accordion-title {
    order: 1;
    font-family: var(--heading-font);
    font-size: 24px;
}
.elementor-element-bdf0e6c .elementor-accordion-title > span > span:first-child {
    width: 72px;
    height: 72px;
    border-radius: 14px;
    flex-shrink: 0;
}
.elementor-element-bdf0e6c .elementor-accordion-title > span > span:first-child i {
    font-size: 30px;
}

/* Marketing page (post ID 1076) -- "Your Marketing Team" step numbers: width is a fixed
   116px (matches XD) but height was left to auto-size on content (~76px), so the 58px
   border-radius drew a pill instead of a circle */
.elementor-element-21106c8 {
    height: 116px !important;
}

/* Marketing page (post ID 1076) -- "Marketing Strategy Session": XD runs the navy background
   full-bleed behind both the left copy and the form (only the form card itself is white),
   but the live section left the outer section white with just the left column painted navy */
.elementor-element-9424c1a {
    background-color: #192E54 !important;
}
.elementor-element-d1fffeb {
    border-radius: 10px;
    border: 1px solid #E1E7EF;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.15);
}
.elementor-element-9424c1a .gform_wrapper label {
    color: #192E54;
}
.elementor-element-9424c1a .gform_wrapper input[type="submit"] {
    background-color: #E12533;
    border-radius: 24px;
    width: 100%;
}

/* Legal Protection page (post ID 1080) -- "Regulatory Alignment" / "Vetted Strategies" icon
   circles were rendered at 106px, well over the 60px XD spec */
.elementor-element-836f09d .elementor-icon,
.elementor-element-bcf3b32 .elementor-icon {
    width: 60px;
    height: 60px;
    padding: 14px;
}
.elementor-element-836f09d .elementor-icon i,
.elementor-element-bcf3b32 .elementor-icon i {
    font-size: 22px;
}

/* Legal Protection page (post ID 1080) -- "Our Commitment to Safety" section: XD keeps this
   content flush on the light section background with no card border/radius */
.elementor-element-72d8a44 {
    border: none !important;
    border-radius: 0 !important;
}

/* Producer Experiences page -- testimonial cards: XD stacks the quote icon/stars above the
   quote text (each on its own row), but .testimonial-top was laid out as a row placing the
   icons column beside the text instead of above it */
.testimonial-top {
    flex-direction: column;
    align-items: flex-start;
}

/* Contact page (post ID 463) -- hero banner: XD shows a light diagonal wash over the photo
   with dark navy text, but the live section renders the photo under a uniform dark tint
   with white text */
.elementor-element-569b250::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.55) 25%, rgba(255, 255, 255, 0.1) 45%, transparent 60%);
    pointer-events: none;
    z-index: 1;
}
.elementor-element-569b250 > .e-con-inner {
    position: relative;
    z-index: 2;
}
.elementor-element-569b250 .elementor-heading-title,
.elementor-element-569b250 p,
.elementor-element-569b250 .elementor-icon-list-text {
    color: #192E54 !important;
}

/* Contact page (post ID 463) -- "Send Us a Message" form card had no border, per XD it needs
   a 1px light border plus a subtle shadow like the site's other cards */
.elementor-element-c9f1397 {
    border: 1px solid #E1E7EF !important;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
}

/* Producer Portal page -- Sign In card: field boxes (26px) and the button (elementor's
   "sm" size hugs its text) were both far short of the XD spec (50px fields, full-width
   48px pill button), and the card itself was narrower than the design's 646px */
.elementor-element-2a76262 {
    width: 646px !important;
}
.elementor-element-6edd6d7,
.elementor-element-16ef0fa {
    height: 50px !important;
}
.elementor-element-626d9bf .elementor-button {
    width: 100%;
    text-align: center;
}
/* Header: mobile menu item spacing */
@media (max-width: 1024px) {
	.elementor-element-hdrmm001 .e-n-menu-heading {
		padding: 8px 0 !important;
	}
	.elementor-element-hdrmm001 .e-n-menu-title {
		padding: 12px 20px !important;
	}
	.elementor-element-hdrmm001 .e-n-menu-item + .e-n-menu-item {
		border-top: 1px solid #F0F2F6;
	}
	/* Dropdown panels are fixed 554px/260px wide for the desktop flyout */
	.elementor-element-hdrmm001 .e-n-menu-content .e-con {
		max-width: 100% !important;
	}
}

/* Footer: centered + tighter on tablet/mobile */
@media (max-width: 1024px) {
	.site-footer {
		--padding-top: 40px !important;
		--padding-bottom: 24px !important;
	}
	.site-footer .footer-top {
		flex-direction: column !important;
		align-items: center !important;
		--row-gap: 28px !important;
		--gap: 28px !important;
		text-align: center;
	}
	.site-footer .footer-brand {
		align-items: center !important;
		max-width: 420px;
	}
	.site-footer .footer-brand .elementor-widget-image {
		text-align: center !important;
	}
	.site-footer .footer-brand .elementor-widget-text-editor p {
		margin-bottom: 0;
	}
	.site-footer .footer-cols {
		justify-content: center !important;
		--column-gap: 48px !important;
		--row-gap: 24px !important;
		--gap: 24px 48px !important;
		width: auto !important;
	}
	.site-footer .footer-col {
		align-items: center !important;
		width: auto !important;
		--row-gap: 8px !important;
		--gap: 8px !important;
	}
	.site-footer .footer-col .elementor-icon-list-item,
	.site-footer .footer-col .elementor-icon-list-item > a {
		justify-content: center !important;
		text-align: center;
	}
	.site-footer .footer-col .elementor-widget {
		--kit-widget-spacing: 0px;
	}
	.site-footer .footer-bottom {
		flex-direction: column !important;
		align-items: center !important;
		text-align: center;
		--row-gap: 6px !important;
		--gap: 6px !important;
		--padding-top: 16px !important;
		margin-top: 28px;
	}
	.site-footer .footer-bottom p {
		margin-bottom: 0;
	}
}
@media (max-width: 767px) {
	.site-footer .footer-cols {
		flex-direction: column !important;
		align-items: center !important;
	}
}

/* Cap fixed-width containers at their parent */
.e-con.e-con-full,
.e-con > .e-con-inner > .e-con {
	max-width: 100%;
}

/* About: timeline on tablet/mobile */
@media (max-width: 1024px) {
	.timeline-wrap > .e-con > .e-con:not(:nth-child(2)) {
		width: calc(50% - 32px) !important;
		--width: calc(50% - 32px) !important;
		flex-shrink: 1 !important;
	}
}
@media (max-width: 767px) {
	.timeline-wrap {
		--gap: 20px !important;
		--row-gap: 20px !important;
		padding-left: 36px !important;
	}
	.timeline-wrap::before {
		left: 11px;
		transform: none;
	}
	.timeline-wrap > .e-con {
		flex-direction: row !important;
		position: relative;
	}
	.timeline-wrap > .e-con > .e-con:not(.timeline-card-left):not(.timeline-card-right):not(:nth-child(2)) {
		display: none !important;
	}
	.timeline-wrap > .e-con > .e-con:nth-child(2) {
		position: absolute !important;
		left: -36px;
		top: 50%;
		transform: translateY(-50%);
		width: 24px !important;
		--width: 24px !important;
		height: 24px;
		min-height: 24px;
		flex: none !important;
		z-index: 2;
	}
	.timeline-wrap > .e-con > .e-con.timeline-card-left,
	.timeline-wrap > .e-con > .e-con.timeline-card-right {
		width: 100% !important;
		--width: 100% !important;
	}
	.timeline-card-left::after {
		right: auto;
		left: -10px;
		box-shadow: -4px 4px 10px rgba(0, 0, 0, 0.06);
	}
}

/* Training: journey steps (tablet 1 row, mobile 2x2) */
@media (min-width: 768px) and (max-width: 1024px) {
	.journey-steps {
		flex-wrap: nowrap !important;
	}
	.journey-steps > .journey-step {
		width: 18% !important;
		--width: 18% !important;
	}
}
@media (max-width: 767px) {
	.journey-steps {
		flex-direction: row !important;
		flex-wrap: wrap !important;
		justify-content: center !important;
		--row-gap: 32px !important;
		--column-gap: 0px !important;
		--gap: 32px 0px !important;
	}
	.journey-steps > .journey-step {
		width: 50% !important;
		--width: 50% !important;
	}
	.journey-step:not(:last-child)::after {
		display: none;
	}
}

/* Marketing: tablet/mobile */
@media (max-width: 1024px) {
	/* Hero: 250px top padding is sized for the desktop header overlap */
	.mkt-hero {
		--padding-top: 140px !important;
		--padding-bottom: 90px !important;
		min-height: 0 !important;
	}
	.mkt-hero-copy {
		width: 70% !important;
		--width: 70% !important;
	}
	/* "Your Strategic Marketing Partner": stack copy over the image */
	.strategic-marketing-partner,
	.e-con.mkt-partner-copy + .mkt-partner-media {
		flex-direction: column !important;
	}
	.mkt-partner-copy,
	.mkt-partner-media {
		width: 100% !important;
		--width: 100% !important;
	}
	/* Floating quote card was absolutely positioned at -114px left; drop it into flow */
	.e-con.mkt-partner-card {
		position: relative !important;
		left: auto !important;
		top: auto !important;
		inset: auto !important;
		width: calc(100% - 40px) !important;
		--width: calc(100% - 40px) !important;
		margin: -40px auto 0 !important;
		z-index: 2;
	}
	/* Plans: 2-up, third card centered below */
	.mkt-plans {
		justify-content: center !important;
	}
	.mkt-plans > .mkt-plan {
		width: calc(50% - 10px) !important;
		--width: calc(50% - 10px) !important;
	}
	/* Strategy session: copy stacked above the form */
	.mkt-session {
		--e-con-grid-template-columns: 1fr !important;
		grid-template-columns: 1fr !important;
	}
	.mkt-session > .mkt-session-copy,
	.mkt-session > .mkt-session-form {
		width: 100% !important;
		--width: 100% !important;
	}
	.mkt-session-copy {
		--padding-right: 0px !important;
		--padding-bottom: 0px !important;
	}
	.mkt-session-form {
		--padding-top: 32px !important;
		--padding-right: 32px !important;
		--padding-bottom: 32px !important;
		--padding-left: 32px !important;
	}
	/* Gravity Forms submit: allow the long label to wrap instead of clipping */
	.mkt-session-form .gform_footer input[type="submit"],
	.mkt-session-form .gform_footer button {
		white-space: normal !important;
		max-width: 100%;
	}
	.mkt-included {
		--gap: 32px !important;
		--column-gap: 48px !important;
	}
}
@media (max-width: 767px) {
	.mkt-hero {
		--padding-top: 110px !important;
		--padding-bottom: 60px !important;
	}
	.mkt-hero-copy {
		width: 100% !important;
		--width: 100% !important;
	}
	/* Feature strip + 4-step process: 2x2 grid */
	.mkt-features,
	.mkt-steps {
		--flex-direction: row !important;
		--flex-wrap: wrap !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		justify-content: center !important;
		--row-gap: 32px !important;
		--column-gap: 0px !important;
		--gap: 32px 0px !important;
	}
	.mkt-features > .e-con-inner {
		flex-direction: row !important;
		flex-wrap: wrap !important;
		row-gap: 32px !important;
	}
	.mkt-steps {
		align-items: flex-start !important;
	}
	.mkt-features .mkt-feature,
	.mkt-steps > .mkt-step {
		width: 50% !important;
		--width: 50% !important;
		padding-left: 8px !important;
		padding-right: 8px !important;
	}
	.mkt-step-num {
		width: 96px !important;
		margin: 0 !important;
		--width: 96px !important;
		min-height: 96px !important;
		height: 96px !important;
		--min-height: 96px !important;
		--padding-top: 0px !important;
		--padding-bottom: 0px !important;
	}
	.mkt-feature .elementor-heading-title {
		font-size: 20px !important;
	}
	.mkt-step .elementor-widget-text-editor {
		font-size: 15px !important;
	}
	.mkt-plans > .mkt-plan {
		width: 100% !important;
		--width: 100% !important;
	}
	.mkt-included {
		flex-direction: column !important;
		align-items: flex-start !important;
		--padding-top: 60px !important;
		--padding-bottom: 60px !important;
		--gap: 20px !important;
		--row-gap: 20px !important;
	}
	.mkt-session-form {
		--padding-top: 24px !important;
		--padding-right: 20px !important;
		--padding-bottom: 24px !important;
		--padding-left: 20px !important;
	}
}

/* Recruiting: application card padding on mobile */
@media (max-width: 767px) {
	.elementor-element-5a2bc11 {
		--padding-top: 28px !important;
		--padding-right: 20px !important;
		--padding-bottom: 28px !important;
		--padding-left: 20px !important;
	}
}

/* Card rows: .cards-2up (2/1 per row), .logos-3up (3/2 per row) */
@media (max-width: 1024px) {
	.cards-2up,
	.logos-3up,
	.cards-2up > .e-con-inner,
	.logos-3up > .e-con-inner {
		flex-direction: row !important;
		flex-wrap: wrap !important;
		--flex-wrap: wrap !important;
		justify-content: center !important;
		gap: 20px !important;
		--gap: 20px !important;
		--row-gap: 20px !important;
		--column-gap: 20px !important;
	}
	.cards-2up > .e-con,
	.cards-2up > .e-con-inner > .e-con {
		width: calc(50% - 10px) !important;
		--width: calc(50% - 10px) !important;
	}
	.logos-3up > .e-con,
	.logos-3up > .e-con-inner > .e-con {
		width: calc(33.333% - 14px) !important;
		--width: calc(33.333% - 14px) !important;
	}
}
@media (max-width: 767px) {
	.cards-2up > .e-con,
	.cards-2up > .e-con-inner > .e-con {
		width: 100% !important;
		--width: 100% !important;
	}
	.logos-3up > .e-con,
	.logos-3up > .e-con-inner > .e-con {
		width: calc(50% - 10px) !important;
		--width: calc(50% - 10px) !important;
	}
}

/* Lone shortcode: block wrapper so grids measure correctly */
.e-con-inner:has(> .elementor-widget-shortcode:only-child),
.e-con.e-con-full:has(> .elementor-widget-shortcode:only-child) {
	display: block;
}

/* Header: sit below the admin bar when logged in */
body.admin-bar .elementor-element-a5b2605 {
	top: 32px !important;
}
@media screen and (max-width: 782px) {
	body.admin-bar .elementor-element-a5b2605 {
		top: 46px !important;
	}
}
@media screen and (max-width: 600px) {
	body.admin-bar #wpadminbar {
		position: fixed;
	}
}

/* Contact: gap between stacked hero icons */
.elementor-element-d897dd1 .elementor-icon-list-items.elementor-inline-items {
	row-gap: 12px;
}

/* Contact form: match name sub-labels to other labels */
#gform_wrapper_2 .gform-field-label--type-sub {
	font-weight: 700 !important;
	font-size: 16px !important;
	margin-bottom: 8px !important;
}
/* Contact form: even spacing for stacked name fields */
#gform_wrapper_2 .ginput_complex {
	row-gap: 19px !important;
}
#gform_wrapper_2 .ginput_complex > span {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Header: fixes around 1024px */
/* <=1024px: dropdown anchored to header, full width */
@media (max-width: 1024px) {
	.elementor-element-hdrmm001,
	.elementor-element-hdrmm001 > .elementor-widget-container,
	.elementor-element-hdrmm001 .e-n-menu {
		position: static !important;
	}
	.elementor-element.elementor-element-hdrmm001 .e-n-menu-wrapper {
		top: 100% !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		margin-top: 0 !important;
		max-height: calc(100vh - 160px);
		overflow-y: auto;
		background: #F6F8FB !important;
		border-top: 1px solid #E1E7EF !important;
		box-shadow: 0 16px 32px rgba(8, 8, 61, 0.22) !important;
		border-radius: 0 0 10px 10px;
	}
	.elementor-element-hdrmm001 .e-n-menu-heading {
		background: #F6F8FB;
		padding: 4px 0 !important;
	}
	.elementor-element-hdrmm001 .e-n-menu-item + .e-n-menu-item {
		border-top-color: #E1E7EF !important;
	}
	.elementor-element-hdrmm001 .e-n-menu-title {
		background: transparent !important;
	}
	.elementor-element-hdrmm001 .e-n-menu-title,
	.elementor-element-hdrmm001 .e-n-menu-item {
		justify-content: flex-start !important;
		text-align: left;
	}
	.elementor-element-hdrmm001 .e-n-menu-content {
		width: 100% !important;
		flex-basis: 100% !important;
		max-width: 100% !important;
	}
	.elementor-element-hdrmm001 .e-n-menu-content > .e-con {
		width: 100% !important;
		--width: 100% !important;
		max-width: 100% !important;
	}
}
/* 1025-1200px: tighter header so everything fits */
@media (min-width: 1025px) and (max-width: 1200px) {
	.elementor-element-a5b2605 {
		--gap: 16px !important;
		--column-gap: 16px !important;
		--padding-left: 20px !important;
		--padding-right: 20px !important;
	}
	.elementor-element-a5b2605 .elementor-element-d1e2c3f {
		width: 170px !important;
		--width: 170px !important;
	}
	.rev-header .elementor-element-hdrmm001 .e-n-menu-title {
		padding-left: 8px !important;
		padding-right: 8px !important;
	}
	.rev-header .elementor-element-hdrmm001 .e-n-menu-title-text {
		letter-spacing: 1px;
	}
	.elementor-element-5f09756 {
		width: auto !important;
		--width: auto !important;
	}
}

/* =========================================================
   Header + Home hero refresh (reference layout)
   ========================================================= */

/* ---------- Header ---------- */
@media (min-width: 1025px) {
	/* Slimmer bar: 134px -> ~80px */
	.rev-header > .e-con-inner {
		padding-top: 8px !important;
		padding-bottom: 8px !important;
		align-items: center;
	}
	.rev-header .elementor-element-d1e2c3f,
	.rev-header .elementor-element-5f09756 {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	/* Nav: small uppercase, letter-spaced */
	.rev-header .e-n-menu-heading {
		gap: 6px;
	}
	.rev-header .e-n-menu-title {
		padding: 22px 14px !important;
	}
	.rev-header .e-n-menu-title-text,
	.rev-header .e-n-menu-title a {
		font-size: 14px !important;
		font-weight: 500 !important;
		text-transform: uppercase;
		letter-spacing: 1.4px;
	}
}

/* ---------- Home hero text ---------- */
.home-hero-wrapper .elementor-element-c4b5b9b .elementor-heading-title {
	font-weight: 600 !important;
	line-height: 1.05 !important;
	letter-spacing: -0.02em;
}
.home-hero-wrapper .elementor-element-9a53f79,
.home-hero-wrapper .elementor-element-9a53f79 p,
.home-hero-wrapper .elementor-element-9a53f79 strong {
	font-weight: 400 !important;
	line-height: 1.5 !important;
	color: rgba(255, 255, 255, 0.92);
}
.home-hero-wrapper .elementor-element-9a53f79 {
	max-width: 520px;
}
@media (min-width: 1025px) {
	.home-hero-wrapper .elementor-element-c4b5b9b .elementor-heading-title {
		font-size: clamp(44px, 3.9vw, 64px) !important;
	}
	.home-hero-wrapper .elementor-element-9a53f79,
	.home-hero-wrapper .elementor-element-9a53f79 p,
	.home-hero-wrapper .elementor-element-9a53f79 strong {
		font-size: clamp(16px, 1.2vw, 19px) !important;
	}
}

/* ---------- Home hero testimonial: glass card over the photo ---------- */
@media (min-width: 1025px) {
	.home-hero-wrapper > .e-con-inner {
		position: relative;
	}
	/* let the card position against the full hero width, not the text column */
	.home-hero-wrapper .elementor-element-2d7a901 {
		position: static !important;
		width: 640px !important;
		max-width: 640px !important;
	}
	.home-hero-wrapper .hero-testimonial {
		position: absolute !important;
		right: 0;
		bottom: 90px;
		width: 280px !important;
		max-width: 280px;
		padding: 20px 20px 18px !important;
		background: rgba(255, 255, 255, 0.82) !important;
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
		border: 0 !important;
		border-radius: 12px !important;
		box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
		gap: 10px !important;
		z-index: 2;
	}
	.home-hero-wrapper .hero-testimonial::before {
		content: "\201C" !important;
		display: block;
		position: static !important;
		border: 0 !important;
		background: none !important;
		width: auto !important;
		font-family: 'Poppins', sans-serif;
		font-size: 54px;
		font-weight: 700;
		font-style: italic;
		line-height: 1;
		height: 26px;
		margin-bottom: -4px;
		color: #0b1530;
	}
	.home-hero-wrapper .hero-testimonial .elementor-widget-text-editor,
	.home-hero-wrapper .hero-testimonial .elementor-widget-text-editor p {
		margin: 0 !important;
		padding: 0 !important;
	}
	.home-hero-wrapper .elementor-element-d198420,
	.home-hero-wrapper .elementor-element-d198420 * {
		font-size: 13.5px !important;
		font-style: normal !important;
		font-weight: 400 !important;
		line-height: 1.45 !important;
		color: #1a1a1a !important;
	}
	.home-hero-wrapper .elementor-element-990b282,
	.home-hero-wrapper .elementor-element-990b282 * {
		font-size: 13px !important;
		font-weight: 700 !important;
		line-height: 1.3 !important;
		color: #0b1530 !important;
	}
}

/* Header background: frosted grey like the reference (overrides the dark tint set in Elementor).
   Same colour when scrolled and on pages without a banner (beats the black "scrolled" rule in Additional CSS). */
.elementor-element.rev-header,
body.rev-scrolled .elementor-element.rev-header,
body:not(.page) .elementor-element.rev-header {
	background-color: rgba(120, 122, 124, 0.45) !important;
}
/* Header is ~84px tall on desktop now, so pages without a banner need less top offset */
@media (min-width: 1025px) {
	html body:not(.page) #content {
		padding-top: 84px;
	}
}

/* ---------- Header + hero: tablet & mobile (reference mobile layout) ---------- */
@media (max-width: 1024px) {
	/* Header: one row, logo | buttons | menu */
	.rev-header > .e-con-inner {
		flex-wrap: nowrap !important;
		align-items: center !important;
		padding-top: 10px !important;
		padding-bottom: 10px !important;
		gap: 10px !important;
	}
	.rev-header .elementor-element-d1e2c3f {
		padding: 0 !important;
		width: auto !important;
		flex: 1 1 auto !important;
		min-width: 0;
		align-items: flex-start !important;
		justify-content: flex-start !important;
	}
	.rev-header .elementor-element-5aba1f7 img {
		width: 150px !important;
		height: auto !important;
	}
	.rev-header .elementor-element-5f09756 {
		order: 2;
		width: auto !important;
		flex: 0 0 auto !important;
		padding: 0 !important;
		gap: 6px !important;
	}
	.rev-header .elementor-element-hdrmm001 {
		order: 3;
		width: auto !important;
		flex: 0 0 auto !important;
	}
}

@media (max-width: 1024px) {
	/* Hero: text over the photo, photo bottom-right, white strip under the card */
	.elementor-8 .elementor-element.elementor-element-711ad84:not(.elementor-motion-effects-element-type-background) {
		background-size: auto 56% !important;
		background-position: 57% calc(100% - 90px) !important;
		box-shadow: inset 0 -90px 0 #fff;
	}
	.home-hero-wrapper > .e-con-inner {
		padding-top: 100px !important;
		padding-bottom: 10px !important;
	}
	.home-hero-wrapper .elementor-element-2d7a901 {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	.home-hero-wrapper .elementor-element-c4b5b9b .elementor-heading-title {
		font-size: 34px !important;
	}
	.home-hero-wrapper .elementor-element-9a53f79 {
		max-width: 62%;
	}
	.home-hero-wrapper .elementor-element-9a53f79,
	.home-hero-wrapper .elementor-element-9a53f79 p,
	.home-hero-wrapper .elementor-element-9a53f79 strong {
		font-size: 15px !important;
		line-height: 1.5 !important;
	}
	.home-hero-wrapper .elementor-element-5a2be83 {
		max-width: 62%;
	}
	.home-hero-wrapper .elementor-element-2ea9192 {
		order: 9;
		max-width: 62%;
		justify-content: flex-start !important;
		text-align: left;
		flex-direction: row !important;
		align-items: center !important;
	}
	.home-hero-wrapper .elementor-element-2ea9192 * {
		text-align: left !important;
	}
	.home-hero-wrapper .elementor-element-2ea9192 .elementor-widget:not(.elementor-widget-image) * {
		font-size: 11px !important;
		line-height: 1.4 !important;
	}
	/* Testimonial: white card straddling the bottom of the hero */
	.home-hero-wrapper .hero-testimonial {
		order: 10;
		margin-top: 170px;
		padding: 20px 22px !important;
		background: #fff !important;
		border: 0 !important;
		border-radius: 16px !important;
		box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
		gap: 6px !important;
	}
	.home-hero-wrapper .hero-testimonial::before {
		content: "\201C" !important;
		display: block;
		position: static !important;
		border: 0 !important;
		background: none !important;
		width: auto !important;
		font-family: 'Poppins', sans-serif;
		font-size: 54px;
		font-weight: 700;
		font-style: italic;
		line-height: 1;
		height: 26px;
		color: #1f56cf;
	}
	.home-hero-wrapper .hero-testimonial .elementor-widget-text-editor,
	.home-hero-wrapper .hero-testimonial .elementor-widget-text-editor p {
		margin: 0 !important;
		padding: 0 !important;
	}
	.home-hero-wrapper .elementor-element-d198420,
	.home-hero-wrapper .elementor-element-d198420 * {
		font-size: 15px !important;
		font-style: normal !important;
		font-weight: 400 !important;
		line-height: 1.5 !important;
		color: #1a1a1a !important;
	}
	.home-hero-wrapper .elementor-element-990b282,
	.home-hero-wrapper .elementor-element-990b282 * {
		font-size: 16px !important;
		font-weight: 700 !important;
		color: #0b2a6b !important;
	}
}

/* ---------- Mobile hero v2: photo sized to screen width, man bottom-right above the card (reference) ---------- */
/* Tablet uses the same hero layout as mobile */
@media (max-width: 1024px) {
	.elementor-8 .elementor-element.elementor-element-711ad84:not(.elementor-motion-effects-element-type-background) {
		background-size: auto 105vw !important;
		background-position: 56% calc(100% - 150px) !important;
		box-shadow: inset 0 -150px 0 #fff !important;
	}
	/* Old full-width black fade from Additional CSS: re-aim it at the top of the photo + shade the left for the text */
	.elementor-8 .home-hero-wrapper::before {
		top: auto !important;
		bottom: 150px !important;
		height: 105vw !important;
		background:
			linear-gradient(to bottom, #000 0%, rgba(0, 0, 0, 0) 28%),
			linear-gradient(to right, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0.3) 45%, rgba(0, 0, 0, 0) 70%) !important;
	}
	.home-hero-wrapper .hero-testimonial {
		margin-top: 24px !important;
	}
	.home-hero-wrapper .elementor-element-2ea9192 {
		display: none !important;
	}
}

@media (max-width: 1024px) {
	/* Keep the paragraph left of the photo (Elementor sets a full-width widget size) */
	.home-hero-wrapper .elementor-element.elementor-element-9a53f79 {
		width: 60% !important;
		max-width: 60% !important;
		--container-widget-width: 60% !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	/* Tablet: the 105vw photo is too tall for the shorter text, so size it to 80vw and keep it right */
	.elementor-8 .elementor-element.elementor-element-711ad84 {
		min-height: calc(80vw + 210px) !important;
	}
	.elementor-8 .elementor-element.elementor-element-711ad84:not(.elementor-motion-effects-element-type-background) {
		background-size: auto 80vw !important;
		background-position: -42vw calc(100% - 150px) !important;
	}
	.elementor-8 .home-hero-wrapper::before {
		height: 80vw !important;
	}
}

/* ---------- Hero content: eyebrow, accent, paragraph spacing ---------- */
.rev-eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	color: #fff;
	font-family: 'Poppins', sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.35;
}
.rev-eyebrow svg {
	flex: none;
	width: 28px;
	height: 28px;
}
.rev-eyebrow .rev-br-m {
	display: none;
}
.home-hero-wrapper .elementor-element-9a53f79 strong.rev-accent {
	color: #4d8dff !important;
	font-weight: 600 !important;
}
.home-hero-wrapper .elementor-element-9a53f79 p {
	margin: 0 0 16px !important;
}
.home-hero-wrapper .elementor-element-9a53f79 p:last-child {
	margin-bottom: 0 !important;
}
@media (max-width: 767px) {
	.rev-eyebrow {
		font-size: 15px;
	}
	.rev-eyebrow svg {
		width: 36px;
		height: 36px;
	}
	.rev-eyebrow .rev-br-m {
		display: inline;
	}
}

/* ---------- Header: Portal / Join Us live in the dropdown on tablet & mobile ---------- */
/* (the header's button container is hidden on tablet/mobile in Elementor) */
@media (min-width: 1025px) {
	.elementor-element-hdrmm001 .e-n-menu-item:has(#rev-m-portal),
	.elementor-element-hdrmm001 .e-n-menu-item:has(#rev-m-join) {
		display: none !important;
	}
}
@media (max-width: 1024px) {
	/* Portal + Join Us share one row, each taking half */
	.elementor-element-hdrmm001 .e-n-menu-item:has(#rev-m-portal),
	.elementor-element-hdrmm001 .e-n-menu-item:has(#rev-m-join) {
		flex: 1 1 0 !important;
		width: auto !important;
		min-width: 0;
		box-sizing: border-box;
	}
	.elementor-element-hdrmm001 .e-n-menu-item:has(#rev-m-portal) {
		padding: 16px 6px 20px 20px;
	}
	.elementor-element-hdrmm001 .e-n-menu-item:has(#rev-m-join) {
		padding: 16px 20px 20px 6px;
	}
	.elementor-element-hdrmm001 #rev-m-portal,
	.elementor-element-hdrmm001 #rev-m-join {
		justify-content: center;
		padding: 0 !important;
		border-radius: 50px;
	}
	.elementor-element-hdrmm001 #rev-m-portal { background-color: #1f56cf !important; }
	.elementor-element-hdrmm001 #rev-m-join { background-color: #d62828 !important; }
	.elementor-element-hdrmm001 #rev-m-portal a,
	.elementor-element-hdrmm001 #rev-m-join a {
		justify-content: center;
		width: 100%;
		padding: 8px 16px;
	}
	.elementor-element-hdrmm001 #rev-m-portal .e-n-menu-title-text,
	.elementor-element-hdrmm001 #rev-m-join .e-n-menu-title-text {
		color: #fff !important;
		font-size: 16px !important;
		font-weight: 500 !important;
	}
}

/* ---------- Sub-page banners: show the photo (not the dark side) on tablet & mobile ---------- */
@media (max-width: 1024px) {
	body.page:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child {
		background-position: 85% 50% !important;
		/* darken the photo so the white banner text stays readable */
		box-shadow: inset 0 0 0 100vmax rgba(0, 0, 0, 0.45);
	}
}

/* ---------- Home: Mark Lindsey bio — text wraps around the video on tablet ---------- */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-8 .elementor-element.elementor-element-b7ffb43 {
		display: block;
	}
	.elementor-8 .elementor-element-b7ffb43 > .elementor-element-84b92d2 {
		float: left;
		width: 48%;
		margin: 6px 32px 16px 0;
	}
	.elementor-8 .elementor-element-b7ffb43::after {
		content: "";
		display: block;
		clear: both;
	}
}

/* ---------- Home: We Know What It Takes — text wraps around the diagram on tablet ---------- */
/* (diagram column comes first in Elementor; desktop uses row-reverse, mobile column-reverse) */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-8 .elementor-element.elementor-element-f7d26a7,
	.elementor-8 .elementor-element.elementor-element-55ecdfc {
		display: block;
	}
	.elementor-8 .elementor-element.elementor-element-0dc4599 {
		float: right;
		width: 48%;
		margin: 0 0 16px 24px;
	}
	.elementor-8 .elementor-element.elementor-element-55ecdfc {
		width: auto;
	}
	.elementor-8 .elementor-element.elementor-element-55ecdfc > .elementor-element + .elementor-element {
		margin-top: 20px;
	}
	.elementor-8 .elementor-element-f7d26a7::after {
		content: "";
		display: block;
		clear: both;
	}
}

/* ---------- About: Meet Mark Lindsey — text wraps around the video on tablet ---------- */
/* (video column comes first in Elementor; desktop uses row-reverse, mobile column-reverse) */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-1058 .elementor-element.elementor-element-5cdab7d > .e-con-inner,
	.elementor-1058 .elementor-element.elementor-element-09028f8 {
		display: block;
	}
	.elementor-1058 .elementor-element.elementor-element-2b3a5a7 {
		float: right;
		width: 48%;
		margin: 0 0 16px 32px;
	}
	.elementor-1058 .elementor-element.elementor-element-09028f8 {
		width: auto;
	}
	.elementor-1058 .elementor-element.elementor-element-09028f8 > .elementor-element + .elementor-element {
		margin-top: 16px;
	}
	.elementor-1058 .elementor-element-5cdab7d > .e-con-inner::after {
		content: "";
		display: block;
		clear: both;
	}
}
