/* Brand Overrides */
/* Responsive and overflow fixes without changing functionality */

/* Global guards */
html, body {
	overflow-x: hidden;
}

*, *::before, *::after {
	box-sizing: border-box;
}

/* Typography responsiveness (non-functional: visual only) */
.hero-title {
	/* Scale down on small screens while preserving existing desktop look */
	font-size: clamp(24px, 6vw, 4rem) !important;
}

.hero-subtitle {
	font-size: clamp(14px, 2.5vw, 1.25rem) !important;
}

.hero-stat-number {
	font-size: clamp(28px, 6vw, 4rem) !important;
}

/* Dropdown menus: keep within viewport and scroll if tall */
.navbar .dropdown-menu {
	max-height: 70vh;
	overflow-y: auto;
	max-width: min(92vw, 980px);
	width: max-content;
	/* Prevent horizontal overflow on small screens */
	contain: layout paint;
}

/* Flip-aware alignment for laptop widths */
@media (min-width: 1024px) and (max-width: 1440px) {
	.navbar .dropdown-menu.flip-aware {
		left: 0;
		right: auto;
		transform-origin: top left;
		max-width: min(420px, calc(100vw - 48px));
		overflow-wrap: anywhere;
		max-height: 60vh;
		overflow-y: auto;
		z-index: 1100;
	}

	.navbar .dropdown-menu.flip-aware.is-align-end {
		right: 0;
		left: auto;
		transform-origin: top right;
	}
}

/* Mega-dropdown grid should wrap on narrow widths */
.dropdown-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
}

.dropdown-grid .dropdown-column {
	flex: 1 1 200px;
	min-width: 180px;
}

/* On very small screens, let dropdown take full width below toggle */
@media (max-width: 576px) {
	.navbar .dropdown-menu {
		position: static;
		transform: none !important;
		width: 100% !important;
		max-width: 100% !important;
		border-left: 0;
		border-right: 0;
		border-radius: 0;
	}
}

/* Chip/category overflow safety */
.category-item {
    max-width: 60vw;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Ensure slider items don't shrink to icon-only */
.categories-slider .category-item { flex: 0 0 auto; overflow: visible; }
.categories-slider .category-item span { display: inline-block; }

@media (max-width: 768px) {
	.category-item {
		max-width: 70vw;
	}
}

/* Long text wrapping in cards/links to avoid overflow */
.contact-link,
.footer-main p,
.accountant-company,
.accountant-name,
.profile-company {
	word-break: break-word;
	overflow-wrap: anywhere;
}

/* Reduce incidental horizontal jiggle on animated tracks */
.categories-wrapper {
	overflow: hidden;
}

/* Minor spacing tweaks for small screens */
@media (max-width: 768px) {
	.hero-stats { gap: 1.25rem !important; margin-top: 1.25rem !important; }
	.search-form { margin-top: -0.5rem !important; }
	.accountant-card { padding: 1.25rem !important; }
}

/* Mobile-specific tuning for search card */
@media (max-width: 576px) {
	.search-form {
		padding: 1rem !important;
		border-radius: 14px !important;
	}

	.search-form-title {
		font-size: clamp(18px, 5vw, 22px) !important;
		margin-bottom: 1rem !important;
	}

	.search-input-group {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 0.75rem !important;
	}

	.search-input-group .form-label {
		margin-bottom: 0.25rem !important;
		font-size: 0.95rem !important;
		text-align: left !important;
	}

	.form-select.search-input,
	input.search-input,
	select.search-input {
		padding: 0.65rem 1rem !important;
		font-size: 16px !important; /* prevent iOS zoom */
	}

	.search-button {
		width: 100% !important;
		padding: 0.75rem 1.25rem !important;
	}
}

/* Breadcrumb standard colors */
.breadcrumb { margin-bottom: 1rem; }
.breadcrumb .breadcrumb-item + .breadcrumb-item::before { color: #6B7280; }
.breadcrumb .breadcrumb-item a { color: #1B3C53; text-decoration: none; }
.breadcrumb .breadcrumb-item a:hover { color: #0F2A3A; text-decoration: underline; }
.breadcrumb .breadcrumb-item.active,
.breadcrumb .breadcrumb-item span { color: #374151; }

/* Minimal utility classes used in Blade */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.625rem 1rem; border-radius:.5rem; border:1px solid #1B3C53; color:#1B3C53; background:#fff; font-weight:600; text-decoration:none; }
.btn:hover { background: rgba(27,60,83,.05); }
.btn-primary { border-color:#1B3C53; background:#1B3C53; color:#fff; }
.btn-primary:hover { background:#0F2A3A; color:#fff; }
.chip { display:inline-block; padding:.375rem .75rem; border-radius:999px; background:rgba(27,60,83,.08); color:#1B3C53; font-weight:500; font-size:.875rem; text-decoration:none; outline: none; }
.chip:focus { box-shadow: 0 0 0 3px rgba(27,60,83,0.25); }

/* Sticky sidebar for desktop */
@media (min-width: 992px) {
	.sticky-sidebar { position: sticky; top: 24px; }
}

/* Trust badges */
.trust-badge { display:inline-block; padding:.25rem .5rem; border-radius:.375rem; font-size:.75rem; font-weight:600; line-height:1; }
.badge-verified { background:#E6F4EA; color:#156D3F; border:1px solid #C8E6D0; }
.badge-unclaimed { background:#FFF6E5; color:#8A5A00; border:1px solid #FFE3B3; }
.badge-pending { background:#EAF2FF; color:#0B5ED7; border:1px solid #CFE0FF; }
.badge-suspended { background:#FDECEC; color:#B42318; border:1px solid #FAC5C5; }

/* Breadcrumbs on dark hero sections should be white for contrast */
.breadcrumbs-on-dark .breadcrumb-item a,
.breadcrumbs-on-dark .breadcrumb-item a:link,
.breadcrumbs-on-dark .breadcrumb-item a:visited {
	color: #ffffff !important;
}

.breadcrumbs-on-dark .breadcrumb-item a:hover {
	color: #ffffff !important;
	text-decoration: underline;
}

.breadcrumbs-on-dark .breadcrumb-item + .breadcrumb-item::before {
	color: rgba(255,255,255,0.7) !important;
}

.breadcrumbs-on-dark .breadcrumb-item.active,
.breadcrumbs-on-dark .breadcrumb-item span {
	color: rgba(255,255,255,0.85) !important;
}

.breadcrumbs-on-dark .breadcrumb { margin-bottom: 1rem; }

/* Ensure left-aligned crumbs inside centered heroes */
.profile-hero nav[aria-label="Breadcrumb"],
.search-hero nav[aria-label="Breadcrumb"] { text-align: left; }


