/* ABA Compass Location Pages. Colors use Astra's global colors, with fallbacks. */
.aba-loc {
	--aba-primary: var(--ast-global-color-0, #1f6f8b);
	--aba-primary-dark: var(--ast-global-color-1, #174f63);
	--aba-heading: var(--ast-global-color-2, #1b2a33);
	--aba-text: var(--ast-global-color-3, #4a5560);
	--aba-light: var(--ast-global-color-4, #f4f8fa);
	--aba-white: #ffffff;
	--aba-radius: 16px;
	--aba-gap: clamp(24px, 4vw, 56px);
	--aba-space: clamp(56px, 8vw, 104px);
	color: var(--aba-text);
	width: 100%;
}

.aba-loc__container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}
.aba-loc__narrow { max-width: 860px; }

.aba-loc__section { padding: var(--aba-space) 0; }

.aba-loc__h1,
.aba-loc__h2,
.aba-loc__h3 { color: var(--aba-heading); margin: 0 0 .5em; }
.aba-loc__h1 { font-size: clamp(32px, 5vw, 54px); line-height: 1.1; }
.aba-loc__h2 { font-size: clamp(26px, 3.4vw, 38px); line-height: 1.2; }
.aba-loc__h3 { font-size: 20px; line-height: 1.3; }

.aba-loc__content > *:last-child { margin-bottom: 0; }
.aba-loc__lead { font-size: 18px; max-width: 720px; }

/* Buttons */
.aba-loc__buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.aba-loc__btn {
	display: inline-block;
	padding: 14px 28px;
	border-radius: 999px;
	font-weight: 600;
	text-decoration: none;
	border: 2px solid var(--aba-primary);
	transition: background .2s, color .2s;
}
.aba-loc__btn--primary { background: var(--aba-primary); color: var(--aba-white); }
.aba-loc__btn--primary:hover { background: var(--aba-primary-dark); border-color: var(--aba-primary-dark); color: var(--aba-white); }
.aba-loc__btn--secondary { background: transparent; color: var(--aba-primary); }
.aba-loc__btn--secondary:hover { background: var(--aba-primary); color: var(--aba-white); }

/* Hero */
.aba-loc__hero {
	background: var(--aba-light);
	padding: clamp(64px, 10vw, 128px) 0;
	text-align: center;
}
.aba-loc__hero .aba-loc__buttons { justify-content: center; }
.aba-loc__subtitle { font-size: clamp(17px, 2vw, 20px); max-width: 760px; margin: 0 auto; }

/* Image + text sections */
.aba-loc__split-inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--aba-gap);
	align-items: center;
}
.aba-loc__split--reverse .aba-loc__split-media { order: -1; }
.aba-loc__split--no-image .aba-loc__split-inner { grid-template-columns: 1fr; max-width: 860px; }
.aba-loc__img { width: 100%; height: auto; border-radius: var(--aba-radius); display: block; }
.aba-loc__intro2 { background: var(--aba-light); }

/* Features */
.aba-loc__section-head { text-align: center; margin-bottom: 40px; }
.aba-loc__section-head .aba-loc__lead { margin: 0 auto; }
.aba-loc__cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 24px;
}
.aba-loc__card {
	background: var(--aba-white);
	border: 1px solid rgba(0, 0, 0, .08);
	border-radius: var(--aba-radius);
	padding: 28px;
}
.aba-loc__card p { margin: 0; }

/* Local */
.aba-loc__local { background: var(--aba-light); text-align: center; }

/* FAQ */
.aba-loc__faq .aba-loc__h2 { text-align: center; margin-bottom: 32px; }
.aba-loc__faq-item { border-bottom: 1px solid rgba(0, 0, 0, .1); }
.aba-loc__faq-q {
	cursor: pointer;
	list-style: none;
	padding: 20px 40px 20px 0;
	position: relative;
}
.aba-loc__faq-q::-webkit-details-marker { display: none; }
.aba-loc__faq-q::after {
	content: "+";
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 26px;
	color: var(--aba-primary);
}
.aba-loc__faq-item[open] .aba-loc__faq-q::after { content: "\2212"; }
.aba-loc__faq-q .aba-loc__h3 { margin: 0; font-size: 18px; }
.aba-loc__faq-a { padding: 0 0 20px; }

/* CTA */
.aba-loc__cta { background: var(--aba-primary); text-align: center; }
.aba-loc__cta .aba-loc__h2,
.aba-loc__cta .aba-loc__lead { color: var(--aba-white); }
.aba-loc__cta .aba-loc__lead { margin: 0 auto 28px; }
.aba-loc__cta .aba-loc__btn--primary { background: var(--aba-white); color: var(--aba-primary); border-color: var(--aba-white); }

@media (max-width: 860px) {
	.aba-loc__split-inner { grid-template-columns: 1fr; }
	.aba-loc__split--reverse .aba-loc__split-media { order: 0; }
}

/* ===== Shortcodes (used inside Elementor). Matches the site: Rubik / Nunito / #1A449E ===== */
.aba-faq,
.aba-features {
	--aba-blue: #1a449e;
	--aba-blue-2: #3989f8;
	--aba-ink: #1f2937;
	--aba-line: rgba(26, 68, 158, 0.15);
	color: var(--aba-ink);
}
 
.aba-faq__title,
.aba-features__title {
	font-family: Rubik, sans-serif;
	font-weight: 800;
	font-size: 34px;
	color: var(--aba-blue);
	text-align: center;
	margin: 0 0 32px;
}


.aba-faq {
	max-width: 960px;
	margin: 0 auto;
	font-family: Nunito, sans-serif;
}
 
.aba-faq__item {
	background: #fff;
	border: 1px solid var(--aba-line);
	border-radius: 0;
	margin: 0;
}
 
.aba-faq__item + .aba-faq__item {
	border-top: 0;
}
 
.aba-faq__q {
	cursor: pointer;
	list-style: none;
	position: relative;
	display: block;
	padding: 20px 64px 20px 24px;
	background: #fff;
	font-family: Rubik, sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--aba-blue);
	transition: color 0.2s ease;
}
 
.aba-faq__q::-webkit-details-marker,
.aba-faq__q::marker {
	display: none;
	content: "";
}
 
/* plus / minus icon */
.aba-faq__q::before,
.aba-faq__q::after {
	content: "";
	position: absolute;
	right: 24px;
	top: 50%;
	width: 20px;
	height: 4px;
	margin-top: -2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
 
.aba-faq__q::after {
	transform: rotate(90deg);
}
 
.aba-faq__item[open] .aba-faq__q {
	color: var(--aba-blue-2);
}
 
.aba-faq__item[open] .aba-faq__q::after {
	transform: rotate(90deg) scaleX(0);
	opacity: 0;
}
 
.aba-faq__q:hover {
	color: var(--aba-blue-2);
}
 
.aba-faq__a {
	border-top: 1px solid var(--aba-line);
	padding: 24px 24px 28px;
	font-family: Nunito, sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.65;
	color: var(--aba-ink);
}
 
.aba-faq__a p {
	margin: 0 0 16px;
}
 
.aba-faq__a > :last-child {
	margin-bottom: 0;
}

 
.aba-features__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 30px;
}
 
.aba-features__card {
	display: flex;
	align-items: center;
	gap: 15px;
	padding: 20px;
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(217, 227, 247, 0.47);
	border-radius: 0;
	box-shadow: none;
}
 
/* optional icon, if the shortcode outputs one */
.aba-features__card img,
.aba-features__card-icon {
  flex: 0 0 75px;
  width: 75px;
  height: 75px;
  object-fit: contain;
}
 
.aba-features__card-body {
	flex: 1 1 auto;
}
 
.aba-features__card-title {
	font-family: Rubik, sans-serif;
	font-weight: 700;
	font-size: 24px;
	line-height: 1.3;
	color: var(--aba-blue);
	margin: 0;
}
 
.aba-features__card-text {
	font-family: Inter, sans-serif;
	font-size: 16px;
	line-height: 1.65;
	color: var(--aba-ink);
	margin: 0;
}
 
/* no icon: title stacks on top of text */
.aba-features__card:not(:has(img, .aba-features__card-icon)) {
	display: block;
}
 
/* ---------- Responsive ---------- */
 
@media (min-width: 1025px) {
  .aba-features__grid:has(> .aba-features__card:nth-child(3):last-child),
  .aba-features__grid:has(> .aba-features__card:nth-child(6):last-child) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
 
@media (max-width: 767px) {
	.aba-faq__title,
	.aba-features__title {
		font-size: 28px;
	}
 
	.aba-faq__q {
		font-size: 17px;
		padding: 18px 52px 18px 18px;
	}
 
	.aba-faq__q::before,
	.aba-faq__q::after {
		right: 18px;
	}
 
	.aba-faq__a {
		padding: 18px 18px 22px;
	}
 
	.aba-features__grid {
		grid-template-columns: 1fr;
		gap: 0;
	}
 
	.aba-features__card-title {
		font-size: 22px;
	}
}

/* ===== [aba_location_steps] "How to Get Started" steps =====
   Moved from the HTML widget in the Elementor template (same CSS).
   Built for 4 steps; 3 to 6 also work on desktop. */
.abac-steps__title{margin:0 0 12px;text-align:center}
.abac-steps__intro{margin:0 0 48px;text-align:center}
.abac-steps{
  --box:110px;          /* compass size */
  --row-gap:36px;       /* space between compass and text */
  --primary:var(--e-global-color-primary,#1A449E);
  --needle:#F6C445;     /* needle color (your yellow) */
  --text:var(--e-global-color-text,#1F2937);
  --line:#9DB0D6;       /* dashed line color */
  display:grid;
  grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));  /* --cols is set by the shortcode */
  row-gap:var(--row-gap);
  column-gap:0;
}
.abac-step{display:contents}

/* compass */
.abac-steps .abac-compass{
  --dir:90deg;          /* needle direction: 0 = north, 90 = east */
  position:relative;
  width:var(--box);height:var(--box);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50 17 55 45 83 50 55 55 50 83 45 55 17 50 45 45z' fill='white' fill-opacity='.1'/%3E%3Cg fill='none' stroke='white'%3E%3Ccircle cx='50' cy='50' r='44' stroke-opacity='.3'/%3E%3Cpath d='M50 6v8M50 86v8M6 50h8M86 50h8' stroke-opacity='.65' stroke-width='2'/%3E%3Cg stroke-opacity='.35'%3E%3Cpath d='M50 6v4' transform='rotate(30 50 50)'/%3E%3Cpath d='M50 6v4' transform='rotate(60 50 50)'/%3E%3Cpath d='M50 6v4' transform='rotate(120 50 50)'/%3E%3Cpath d='M50 6v4' transform='rotate(150 50 50)'/%3E%3Cpath d='M50 6v4' transform='rotate(210 50 50)'/%3E%3Cpath d='M50 6v4' transform='rotate(240 50 50)'/%3E%3Cpath d='M50 6v4' transform='rotate(300 50 50)'/%3E%3Cpath d='M50 6v4' transform='rotate(330 50 50)'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") center/100% no-repeat;
  box-shadow:0 0 0 6px rgba(26,68,158,.1);
}
.abac-steps .abac-compass span{
  position:relative;z-index:1;color:#fff;
  font-family:"Rubik",sans-serif;font-weight:500;font-size:38px;line-height:1;
}
/* needle on the edge, points to the next step */
.abac-steps .abac-compass::before{
  content:"";position:absolute;z-index:2;inset:-15px;
  transform:rotate(var(--dir));
  transition:transform .9s cubic-bezier(.3,1.4,.5,1);
  clip-path:polygon(50% 0, calc(50% + 7px) 13px, calc(50% - 7px) 13px);
  background:var(--needle);
}
.abac-steps .abac-compass:hover::before{transform:rotate(calc(var(--dir) + 360deg))}
.abac-steps .abac-compass--goal{--dir:0deg}

.abac-steps .abac-step__text{max-width:calc(100% - 78px)}
.abac-steps .abac-step:last-child .abac-step__text{max-width:none}
.abac-steps .abac-step__title{
  margin:0 0 8px;color:var(--primary);
  font-family:"Rubik",sans-serif;font-weight:600;font-size:20px;line-height:1.3;
  text-transform:none;letter-spacing:0;
}
.abac-steps .abac-step__desc{
  margin:0;color:var(--text);
  font-family:"Nunito",sans-serif;font-size:16px;line-height:1.65;
}

/* zig-zag layout: steps 1 and 3 = compass on top, steps 2 and 4 = text on top */
.abac-step:nth-child(odd) .abac-compass{grid-row:1;align-self:end}
.abac-step:nth-child(odd) .abac-step__text{grid-row:2;align-self:start}
.abac-step:nth-child(even) .abac-step__text{grid-row:1;align-self:end}
.abac-step:nth-child(even) .abac-compass{grid-row:2;align-self:start}
.abac-step:nth-child(1) > *{grid-column:1}
.abac-step:nth-child(2) > *{grid-column:2}
.abac-step:nth-child(3) > *{grid-column:3}
.abac-step:nth-child(4) > *{grid-column:4}
.abac-step:nth-child(5) > *{grid-column:5}
.abac-step:nth-child(6) > *{grid-column:6}

/* curved dashed connectors */
.abac-step__line{grid-row:1;align-self:end;height:0;position:relative;pointer-events:none}
.abac-step__line svg{
  position:absolute;overflow:visible;
  left:calc(var(--box) + 28px);
  width:calc(100% - var(--box) - 46px);
  top:calc(var(--box) / -2);
  height:calc(var(--box) + var(--row-gap));
}
.abac-step__line path{
  fill:none;stroke:var(--line);stroke-width:2;stroke-dasharray:6 5;
  vector-effect:non-scaling-stroke;
}

/* start dot + arrow head */
.abac-step__line::before{
  content:"";position:absolute;z-index:1;width:7px;height:7px;border-radius:50%;
  background:var(--line);left:calc(var(--box) + 25px);
}
.abac-step__line::after{
  content:"";position:absolute;z-index:1;width:0;height:0;right:12px;
  border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid var(--line);
}
.abac-step__line--down::before{top:calc(var(--box) / -2 - 2.5px)}
.abac-step__line--down::after{top:calc(var(--box) / 2 + var(--row-gap) - 6px)}
.abac-step__line--up::before{top:calc(var(--box) / 2 + var(--row-gap) - 4.5px)}
.abac-step__line--up::after{top:calc(var(--box) / -2 - 4px)}

/* tablet: 2 columns, no lines */
@media (max-width:1024px){
  .abac-steps{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px;row-gap:48px;--box:90px}
  .abac-step{display:flex;flex-direction:column;gap:24px}
  .abac-step > *{grid-column:auto !important;grid-row:auto !important;align-self:auto !important}
  .abac-steps .abac-step__text{max-width:none}
  .abac-step__line{display:none}
  .abac-steps .abac-compass{--dir:0deg}
  .abac-steps .abac-compass span{font-size:32px}
}

/* mobile: 1 column, needles point down a dashed line */
@media (max-width:767px){
  .abac-steps{grid-template-columns:1fr;row-gap:40px;--box:64px}
  .abac-step{flex-direction:row;align-items:flex-start;gap:22px;position:relative}
  .abac-steps .abac-compass{flex:0 0 var(--box);--dir:180deg;box-shadow:0 0 0 4px rgba(26,68,158,.1)}
  .abac-steps .abac-compass--goal{--dir:0deg}
  .abac-steps .abac-compass span{font-size:22px}
  .abac-steps .abac-step__title{font-size:18px}
  .abac-steps .abac-step__desc{font-size:15px}
  .abac-step:not(:last-child)::after{
    content:"";position:absolute;left:calc(var(--box) / 2 - 1px);
    top:calc(var(--box) + 16px);bottom:-30px;border-left:2px dashed var(--line);
  }
}
@media (min-width: 1025px) {
  .abac-steps .abac-compass {
    margin-left: calc((100% - 140px - var(--box)) / 2);
  }
  .abac-steps .abac-step__line {
    transform: translateX(calc((100% - 140px - var(--box)) / 2));
  }
}
