/* ── Exam Locator (telc) ─────────────────────────────────────────────────
   Brand color is set per-instance via the --telc-brand custom property
   (Elementor widget control / shortcode attribute). Override any color in
   Elementor Custom CSS if needed. */

.telc-locator{
	--telc-brand: #1b4fd6;          /* migrando blue */
	--telc-brand-dark: #163fab;
	--telc-heading: #13245c;        /* migrando navy */
	--telc-text: #1f2933;
	--telc-muted: #667085;
	--telc-border: #e6ebf7;         /* soft blue-gray border */
	--telc-card-bg: #ffffff;
	--telc-section-bg: linear-gradient(180deg, #eef2fd 0%, #e8eefc 100%);
	--telc-radius: 8px;
	--telc-card-radius: 12px;
	--telc-control-h: 48px;
	color: var(--telc-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	background: var(--telc-section-bg);
	padding: clamp(1.25rem, 4vw, 2.5rem);
	border-radius: 16px;
}

/* Respect the HTML `hidden` attribute even when a class sets `display`.
   Without this, .telc-spinner / .telc-loading / .telc-expand-radius would
   stay visible because their `display` overrides the [hidden] UA style. */
.telc-locator [hidden]{ display:none !important; }

/* ── Search form ── */
.telc-search{
	display:flex;
	flex-wrap:wrap;
	align-items:flex-end;
	gap:.75rem;
	margin-bottom:1.25rem;
}
.telc-search__field{ display:flex; flex-direction:column; gap:.35rem; }
.telc-search__field--query{ flex:1 1 260px; }
.telc-search__field--country{ flex:0 0 140px; }
.telc-search__field label{
	font-size:.8rem;
	font-weight:700;
	color:var(--telc-muted);
}
.telc-search__input,
.telc-search__country{
	box-sizing:border-box;
	width:100%;
	height:var(--telc-control-h);
	padding:0 .8rem;
	font-size:1rem;
	line-height:normal;
	color:var(--telc-text);
	background:#fff;
	border:1px solid var(--telc-border);
	border-radius:var(--telc-radius);
	-webkit-appearance:none;
	appearance:none;
}
.telc-search__input:focus,
.telc-search__country:focus,
.telc-search__button:focus-visible,
.telc-search__geo:focus-visible,
.telc-expand-radius:focus-visible{
	outline:2px solid var(--telc-brand);
	outline-offset:2px;
	border-color:var(--telc-brand);
}
.telc-search__button,
.telc-search__geo{
	box-sizing:border-box;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:.5rem;
	height:var(--telc-control-h);
	padding:0 1.2rem;
	font-size:1rem;
	line-height:1;
	font-weight:600;
	border-radius:var(--telc-radius);
	cursor:pointer;
	border:1px solid transparent;
}
.telc-search__button{
	background:var(--telc-brand);
	color:#fff;
}
.telc-search__button:hover:not(:disabled){ background:var(--telc-brand-dark); }
.telc-search__button:disabled{ opacity:.7; cursor:default; }
.telc-search__geo{
	background:#fff;
	color:var(--telc-brand);
	border-color:var(--telc-border);
}
.telc-search__geo:hover{ border-color:var(--telc-brand); }

/* ── Summary + expand ── */
.telc-results-summary{
	font-size:1rem;
	font-weight:600;
	color:var(--telc-heading);
	margin:0 0 1rem;
}
.telc-expand-radius{
	display:block;
	width:100%;
	padding:.7rem 1rem;
	margin:0 0 1.25rem;
	font-size:1rem;
	font-weight:600;
	color:#fff;
	background:var(--telc-brand);
	border:none;
	border-radius:var(--telc-radius);
	cursor:pointer;
}
.telc-expand-radius:hover{ background:var(--telc-brand-dark); }

/* ── States ── */
.telc-loading{
	display:flex;
	align-items:center;
	gap:.6rem;
	color:var(--telc-muted);
	margin-bottom:1rem;
}
.telc-empty-state{
	padding:1.1rem 1.2rem;
	color:var(--telc-muted);
	background:#fff;
	border:1px solid var(--telc-border);
	border-radius:var(--telc-card-radius);
	margin-bottom:1rem;
}

/* ── Results grid ── */
.telc-results-grid{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:1rem;
}

/* ── Card ── */
.telc-center-card{
	display:flex;
	flex-direction:column;
	background:var(--telc-card-bg);
	border:1px solid var(--telc-border);
	border-radius:var(--telc-card-radius);
	padding:1.4rem;
	box-shadow:0 4px 16px rgba(19,36,92,.05);
	transition:box-shadow .15s ease, transform .15s ease;
}
.telc-center-card:hover{
	box-shadow:0 8px 24px rgba(19,36,92,.09);
	transform:translateY(-2px);
}
.telc-center-card__head{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
	gap:.75rem;
	margin-bottom:.6rem;
}
.telc-center-card__title{
	margin:0;
	font-size:1.1rem;
	font-weight:700;
	line-height:1.3;
	color:var(--telc-heading);
}
.telc-center-card__badge{
	display:inline-block;
	margin-left:.5rem;
	padding:.1rem .45rem;
	font-size:.7rem;
	font-weight:600;
	color:var(--telc-brand);
	background:rgba(27,79,214,.08);
	border-radius:3px;
	vertical-align:middle;
}
.telc-center-card__dist{
	flex:0 0 auto;
	font-size:.85rem;
	font-weight:700;
	color:var(--telc-brand);
	white-space:nowrap;
}
.telc-center-card__details{
	display:flex;
	flex-direction:column;
	gap:.45rem;
	font-size:.92rem;
}
.telc-center-card__row{
	display:flex;
	align-items:flex-start;
	gap:.55rem;
	line-height:1.4;
}
.telc-center-card__row a{ color:var(--telc-brand); text-decoration:none; }
.telc-center-card__row a:hover{ text-decoration:underline; }
.telc-ico{
	flex:0 0 auto;
	display:inline-flex;
	margin-top:1px;
	color:var(--telc-muted);
}
.telc-center-card__footer{
	margin-top:1rem;
	padding-top:.85rem;
	border-top:1px solid var(--telc-border);
	text-align:right;
}
.telc-center-card__website{
	display:inline-flex;
	align-items:center;
	gap:.35rem;
	font-weight:600;
	color:var(--telc-brand);
	text-decoration:none;
}
.telc-center-card__website:hover{ text-decoration:underline; }

/* ── Spinner ── */
.telc-spinner{
	display:inline-block;
	width:14px;
	height:14px;
	border:2px solid rgba(255,255,255,.5);
	border-top-color:#fff;
	border-radius:50%;
	animation:telc-spin .7s linear infinite;
}
.telc-spinner--lg{
	width:18px;
	height:18px;
	border-color:rgba(27,79,214,.25);
	border-top-color:var(--telc-brand);
}
@keyframes telc-spin{ to{ transform:rotate(360deg); } }

/* ── Responsive ── */
@media (max-width: 640px){
	.telc-search{ flex-direction:column; align-items:stretch; }
	.telc-search__field{ flex:1 1 auto; }
	.telc-search__button,
	.telc-search__geo{ width:100%; justify-content:center; }
	.telc-results-grid{ grid-template-columns:1fr; }
}
