/*
 * Mobile readability layer for the public, passenger-facing part of the portal.
 * Component styles intentionally use a compact desktop scale. On phones the
 * same values were too small to read and several actions did not meet a useful
 * touch-target size.
 */
@media (max-width: 650px) {
	/* Shared public navigation, breadcrumbs and footer. */
	.company-breadcrumbs,
	.jobs-breadcrumbs,
	.profile-breadcrumbs,
	.route-breadcrumbs {
		gap: 7px;
		font-size: 12px;
		line-height: 1.45;
	}

	.site-footer .footer-grid p,
	.site-footer .footer-company,
	.site-footer .footer-grid > div:not(:first-child) > a {
		font-size: 13px !important;
		line-height: 1.55;
	}

	.site-footer .footer-grid > div:not(:first-child) > a {
		display: flex;
		align-items: center;
		min-height: 30px;
	}

	.site-footer .footer-grid > div:not(:first-child) {
		gap: 4px;
	}

	.site-footer .footer-bottom {
		gap: 14px;
	}

	.site-footer .footer-bottom a,
	.site-footer .footer-privacy-settings {
		display: inline-flex;
		align-items: center;
		min-height: 40px;
		font-size: 12px;
		line-height: 1.35;
	}

	/* Main route search. Keep iOS from zooming fields on focus. */
	.home-route-search-card .search-tabs button {
		min-height: 44px;
		font-size: 14px;
	}

	.route-search-guide strong {
		font-size: 16px;
	}

	.route-search-guide span {
		font-size: 13px;
		line-height: 1.45;
	}

	.route-point {
		padding: 15px;
	}

	.route-point header strong {
		font-size: 15px;
	}

	.route-point header small,
	.route-date-copy small {
		font-size: 12px;
		line-height: 1.4;
	}

	.route-point .field > span,
	.route-date-step .field > span {
		font-size: 13px;
	}

	.route-point .field-control,
	.route-date-step .field-control {
		height: 54px;
	}

	.route-point .field-control input,
	.route-point .field-control select,
	.route-date-step .field-control input {
		font-size: 16px;
	}

	.route-point .field-control input::placeholder {
		font-size: 15px;
	}

	.route-swap-button {
		min-height: 44px;
	}

	.route-swap-button span {
		width: 44px;
		height: 44px;
	}

	.route-date-copy strong {
		font-size: 13px;
	}

	.home-route-search-card .search-button {
		min-height: 54px;
		font-size: 16px;
	}

	.home-route-search-card .search-hint {
		font-size: 13px;
	}

	.home-route-search-card .search-contact-cta {
		min-height: 48px;
		font-size: 13px;
	}

	/* Carrier cards used on the home page, route pages and listing. */
	.route-page .route-company h3,
	.route-directory-page .route-company h3 {
		font-size: 18px;
	}

	.route-page .route-rating,
	.route-directory-page .route-rating {
		font-size: 13px;
	}

	.route-page .route-company p,
	.route-directory-page .route-company p {
		font-size: 14px;
		line-height: 1.6;
	}

	.route-page .route-tags span,
	.route-directory-page .route-tags span {
		padding: 7px 9px;
		font-size: 12px;
	}

	.route-page .route-action small,
	.route-directory-page .route-action small,
	.route-page .route-action strong,
	.route-directory-page .route-action strong {
		font-size: 12px;
		line-height: 1.45;
	}

	.route-page .route-action button,
	.route-page .route-action a,
	.route-directory-page .route-action button,
	.route-directory-page .route-action a,
	.route-page .outline-button,
	.route-directory-page .outline-button {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 46px;
		font-size: 14px;
	}

	.route-page .request-contact-link,
	.route-directory-page .request-contact-link,
	.carrier-card .request-contact-link {
		min-height: 44px;
		font-size: 13px;
	}

	.carrier-card .carrier-title h3 {
		font-size: 18px;
		line-height: 1.3;
	}

	.carrier-card .carrier-title .verified,
	.carrier-card .rating,
	.carrier-card .tags span,
	.carrier-card .carrier-action small,
	.carrier-card .carrier-action strong {
		font-size: 12px;
		line-height: 1.45;
	}

	.carrier-card .description {
		font-size: 14px;
		line-height: 1.6;
	}

	.carrier-card .tags span {
		padding: 7px 9px;
	}

	.carrier-card .outline-button,
	.carrier-card .carrier-action > a {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 46px;
		font-size: 14px;
	}

	.route-result-head p,
	.route-result-head-rich p,
	.route-selected-context small {
		font-size: 13px;
		line-height: 1.5;
	}

	.route-selected-context span {
		font-size: 11px;
	}

	.route-selected-context strong {
		font-size: 14px;
	}

	.route-schedule-filters p,
	.schedule-no-results p {
		font-size: 13px;
	}

	.schedule-day-buttons button,
	.schedule-reset {
		min-height: 44px;
		font-size: 13px;
	}

	.schedule-filter-controls label {
		font-size: 13px;
	}

	.schedule-filter-controls input {
		height: 48px;
		font-size: 16px;
	}

	.route-empty-copy p,
	.route-benefit-grid p,
	.route-faq-list p {
		font-size: 14px;
	}

	.route-empty-actions button,
	.route-empty-actions a,
	.route-side-rich .route-side-card button,
	.route-side-rich .route-side-card a {
		min-height: 46px;
		font-size: 14px;
	}

	.route-faq-list summary {
		min-height: 52px;
		font-size: 15px;
	}

	/* Public carrier profile. */
	.profile-kicker,
	.profile-card-head small,
	.profile-side-card > small {
		font-size: 11px;
	}

	.profile-title h1 {
		font-size: 30px;
		line-height: 1.15;
	}

	.profile-rating {
		font-size: 13px;
	}

	.profile-hero-actions button,
	.profile-hero-actions a {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 48px;
		font-size: 14px;
	}

	.profile-about > p {
		font-size: 15px;
	}

	.profile-card-head > span,
	.profile-card-head > a,
	.profile-proof small,
	.profile-route small,
	.profile-route span,
	.profile-days span,
	.profile-days b,
	.profile-services b,
	.profile-services small,
	.profile-side-card p,
	.profile-side-card a {
		font-size: 12px;
		line-height: 1.45;
	}

	.profile-review-button {
		min-height: 44px;
		font-size: 13px;
	}

	/* Blog cards and article navigation. */
	.blog-card-meta a,
	.blog-card-meta span,
	.blog-card-meta time {
		font-size: 11px;
	}

	.blog-card h2 {
		font-size: 21px;
	}

	.blog-card p {
		font-size: 15px;
	}

	.blog-card-more,
	.home-blog-all,
	.route-blog-related .blog-section-head > a {
		display: flex;
		align-items: center;
		min-height: 44px;
		font-size: 14px;
	}

	.blog-country-grid > a {
		min-height: 70px;
	}

	.blog-country-grid strong {
		font-size: 15px;
	}

	.blog-country-grid small {
		font-size: 12px;
	}

	/* Jobs directory and other public content cards. */
	.jobs-kicker,
	.jobs-hero-tags span,
	.jobs-list-heading > span,
	.public-job-copy time,
	.public-job-action small {
		font-size: 11px;
	}

	.jobs-hero-copy > p,
	.jobs-employer-card > p,
	.jobs-employer-card li,
	.jobs-empty-copy > p,
	.jobs-empty-notes,
	.jobs-empty-state > aside p,
	.jobs-benefits-public p,
	.public-job-copy p {
		font-size: 14px;
		line-height: 1.55;
	}

	.jobs-employer-card > a,
	.jobs-empty-state > aside a,
	.public-job-action a {
		display: flex;
		align-items: center;
		min-height: 46px;
		font-size: 14px;
	}

	.jobs-benefits-public h3,
	.public-job-company strong {
		font-size: 15px;
	}

	.public-job-company small,
	.job-chips span {
		font-size: 12px;
	}

	.location-hub-links strong,
	.location-hub-links a,
	.guide-card > a,
	.seo-link-grid span {
		font-size: 13px;
	}

	.location-hub-links a {
		display: inline-flex;
		align-items: center;
		min-height: 42px;
	}
}

@media (max-width: 350px) {
	.profile-title h1,
	.blog-hero h1,
	.blog-single-heading h1 {
		font-size: 32px;
	}

	.home-route-search-card {
		padding-right: 12px;
		padding-left: 12px;
	}

	.route-point {
		padding-right: 12px;
		padding-left: 12px;
	}
}
