/* IRO Find a Lawyer (v2, CPT) - list + Leaflet map. Scoped under .iro-lc. */
.iro-lc { --iro-accent: #00558c; --iro-edge: #00adbb; --iro-edge-dark: #008a95; --iro-border: #d9dee3; --iro-muted: #55606a; }
.iro-lc * { box-sizing: border-box; }

.iro-lc__intro { margin: 0 0 1.25em; max-width: 60ch; }

.iro-lc__form {
	display: flex; flex-wrap: wrap; gap: 1em; align-items: flex-end;
	padding: 1.25em; background: #f4f6f8; border: 1px solid var(--iro-border);
	border-radius: 8px; margin-bottom: 1em;
}
.iro-lc__field { display: flex; flex-direction: column; flex: 1 1 180px; min-width: 0; }
.iro-lc__field--search { flex: 2 1 280px; }
.iro-lc__field--reset { flex: 0 0 auto; }
.iro-lc__field label { font-size: 0.95rem; font-weight: 600; margin-bottom: 0.35em; color: var(--iro-muted); }
.iro-lc__field input, .iro-lc__field select {
	font-size: 1rem; padding: 0.6em 0.75em; border: 1px solid var(--iro-border);
	border-radius: 6px; background: #fff; width: 100%; line-height: 1.3;
}
.iro-lc__field input:focus, .iro-lc__field select:focus,
.iro-lc__reset:focus, .iro-lc__more:focus, .iro-lc__show:focus, .iro-lc a:focus {
	outline: 3px solid #ffb703; outline-offset: 2px;
}
.iro-lc__reset {
	font-size: 0.95rem; padding: 0.6em 1.1em; border: 1px solid var(--iro-edge);
	background: #fff; color: var(--iro-edge); border-radius: 6px; cursor: pointer; white-space: nowrap;
}
.iro-lc__reset:hover { background: var(--iro-edge); color: #fff; }

.iro-lc__count { font-weight: 600; margin: 0 0 0.75em; }

/* two-column layout: list beside map */
.iro-lc__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 1.25em; align-items: start; }
.iro-lc__results {
	list-style-type: none; list-style: none; margin: 0;
	display: flex; flex-direction: column; gap: 1em;
	max-height: 640px; overflow-y: auto;
}
.iro-lc__results > li::marker { content: ""; }
/* id-scoped so it beats Divi's list padding */
ul#iro-lc-results { padding-left: 0 !important; padding-right: 20px !important; }
ul#iro-lc-results p { padding-bottom: 4px; }

.iro-lc__card {
	list-style: none; border: 1px solid var(--iro-border); border-left: 4px solid var(--iro-edge);
	border-radius: 8px; padding: 0.9em 1.1em; background: #fff; line-height: 1.35;
}
.iro-lc__name { margin: 0; font-size: 1.1rem; line-height: 1.25; }
.iro-lc__firm { margin: 0; font-weight: 600; color: var(--iro-accent); }
.iro-lc__distance { margin: 0.15em 0 0; font-weight: 600; color: var(--iro-edge-dark); font-size: 0.9rem; }
.iro-lc__nearby-note {
	margin: 0 0 1em; padding: 0.75em 1em; border-left: 4px solid var(--iro-edge);
	background: #f2fbfc; border-radius: 4px;
}
.iro-lc__nearby-note .iro-lc__far { display: block; }

/* Data attribution: plain text under the pager, styled like an address line. */
.iro-lc__attrib { margin-top: 30px; }

/* A class selector such as .iro-lc__pager{display:flex} overrides the browser's
   built-in [hidden]{display:none}, so hiding these elements needs saying twice. */
.iro-lc__pager[hidden],
.iro-lc__nearby-note[hidden],
.iro-lc__attrib[hidden] { display: none !important; }
.iro-lc__address { margin: 0; color: var(--iro-muted); font-size: 0.95rem; }
.iro-lc__contact { margin: 0; word-break: break-word; font-size: 0.95rem; }
.iro-lc__contact a { color: var(--iro-accent); text-decoration: none; display: inline-flex; align-items: baseline; }
.iro-lc__link-text { text-decoration: underline; }
.iro-lc__ico { display: inline-flex; align-items: center; justify-content: center; width: 1em; height: 1em; margin-right: 0.45em; flex: 0 0 auto; align-self: center; }
.iro-lc__ico svg { width: 1em; height: 1em; fill: currentColor; display: block; }
.iro-lc__tags { margin: 0; display: flex; flex-wrap: wrap; gap: 0.4em; }
.iro-lc__tag { display: inline-block; font-size: 0.95rem; padding: 0.2em 0.6em; border-radius: 999px; line-height: 1.4; }
.iro-lc__tag--lang { background: #e6f0f6; color: #00558c; }
.iro-lc__tag--accred { background: #eaf5ea; color: #2e6b2e; }
.iro-lc__show {
	font-size: 0.95rem; margin-top: 0.75em; padding: 0.4em 0.9em; border: 1px solid var(--iro-edge);
	background: #fff; color: #037383; border-radius: 6px; cursor: pointer;
}
.iro-lc__show:hover { background: var(--iro-edge); color: #fff; }

.iro-lc__map-wrap { position: sticky; top: 1em; }
.iro-lc__map {
	width: 100%; height: 640px; border: 1px solid var(--iro-border); border-radius: 8px; z-index: 0;
}
.iro-lc__map-note { margin: 0.5em 0 0; font-size: 0.95rem; color: var(--iro-muted); }
.iro-lc__popup { font-size: 0.95rem; line-height: 1.45; }
.iro-lc__popup-addr { color: #55606a; }
.iro-lc__popup a { color: #00558c; }

.iro-lc__pager { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 1em; margin: 1.25em 0 0; }
.iro-lc__page-btn {
	font-size: 1rem; padding: 0.6em 1.4em; border: 1px solid var(--iro-edge);
	background: var(--iro-edge); color: #fff; border-radius: 6px; cursor: pointer;
}
.iro-lc__page-btn:hover:not(:disabled) { background: var(--iro-edge-dark); border-color: var(--iro-edge-dark); }
.iro-lc__page-btn:disabled { opacity: 0.45; cursor: default; }
.iro-lc__page-status { font-weight: 600; color: var(--iro-muted); }
.iro-lc__noscript { padding: 1em; background: #fff4e5; border: 1px solid #ffcc80; border-radius: 6px; }

@media (max-width: 860px) {
	.iro-lc__layout { grid-template-columns: 1fr; }
	.iro-lc__map-wrap { position: static; order: -1; }
	.iro-lc__map { height: 380px; }
	.iro-lc__results { max-height: none; overflow: visible; }
	ul#iro-lc-results { padding-right: 0 !important; }
}
@media (max-width: 520px) {
	.iro-lc__form { padding: 1em; }
	.iro-lc__field, .iro-lc__field--search, .iro-lc__field--reset { flex-basis: 100%; }
	.iro-lc__reset { width: 100%; }
	.iro-lc__pager { gap: 0.6em; }
	.iro-lc__pager .iro-lc__page-status { order: 3; flex-basis: 100%; text-align: center; }
	.iro-lc__page-btn { flex: 1 1 auto; }
}
