/* Shared presentation for home, product results and global customer searches. */
.home-page .hero,
.agents-page {
    background:
        radial-gradient(circle at 75% 12%, rgba(7, 148, 71, .12), transparent 32%),
        linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
    padding-top: 155px;
}

.home-page .hero > .container,
.home-page .home-overview-grid,
.agents-page .agents-container {
    max-width: 1180px;
}

.home-page .home-hero-intro,
:is(.home-page, .search-results-page) .search-card {
    max-width: none;
}

.home-page .hero .hero-search-title,
.agents-page .agents-header .agents-heading-row h1 {
    font-size: clamp(30px, 3.2vw, 44px);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -1.6px;
    text-wrap: balance;
}

.home-page .home-search-heading,
.agents-page .agents-header {
    margin-bottom: 36px;
}

.home-page .home-search-copy {
    grid-column: 2;
    min-width: 0;
}

.home-page .hero .home-search-subtitle {
    margin: 14px auto 0;
    color: var(--tf-muted);
    font-size: 17px;
    line-height: 1.7;
    text-wrap: balance;
}

:is(.home-page, .search-results-page) .search-card,
.agents-page .agents-panel {
    margin-top: 0;
    background: #fff;
    border: 1px solid var(--tf-border);
    border-radius: 22px;
    padding: 32px;
    box-shadow: 0 12px 42px rgba(11, 43, 92, .045);
}

:is(.home-page, .search-results-page) .search-main-fields {
    display: block;
    max-width: none;
}

:is(.home-page, .search-results-page) .search-dual-fields {
    flex-direction: column !important;
    align-items: stretch;
    gap: 23px;
}

:is(.home-page, .search-results-page) .search-label,
.agents-page .agents-field label {
    margin-bottom: 10px;
    padding-left: 0;
    color: var(--tf-blue);
    font-size: 16px;
    font-weight: 750;
    line-height: 1.5;
}

:is(.home-page, .search-results-page) .search-input,
:is(.home-page, .search-results-page) .search-tokenbox,
.agents-page .agents-field .form-control,
.agents-page .agents-field .form-select {
    height: auto;
    min-height: 54px;
    padding: 14px 16px;
    border: 2px solid #8eabc3 !important;
    border-radius: 10px !important;
    background: #f4f8fc;
    color: #17324d;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    box-shadow: inset 0 1px 2px rgba(11, 43, 92, .04) !important;
}

:is(.home-page, .search-results-page) .search-tokenbox-input {
    height: 22px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
}

.agents-page .agents-field .form-select { padding-right: 40px; }
.agents-page .agents-field textarea.form-control { min-height: 85px; }

:is(.home-page, .search-results-page) .search-input::placeholder,
:is(.home-page, .search-results-page) .search-tokenbox-input::placeholder,
.agents-page .agents-field .form-control::placeholder {
    color: #61758b;
    opacity: 1;
}

:is(.home-page, .search-results-page) .search-input:hover,
:is(.home-page, .search-results-page) .search-tokenbox:hover,
.agents-page .agents-field .form-control:hover,
.agents-page .agents-field .form-select:hover {
    border-color: #527b9d !important;
}

:is(.home-page, .search-results-page) .search-input:focus,
:is(.home-page, .search-results-page) .search-tokenbox:focus-within,
.agents-page .agents-field .form-control:focus,
.agents-page .agents-field .form-select:focus {
    border-color: var(--tf-green) !important;
    background: #fff;
    outline: 0;
    box-shadow: 0 0 0 4px rgba(7, 148, 71, .16) !important;
}

:is(.home-page, .search-results-page) .search-verified-filter {
    margin-top: 23px;
    font-size: 14px;
    font-weight: 600;
}

:is(.home-page, .search-results-page) .search-form-footer,
.agents-page .agents-form-footer {
    display: flex;
    justify-content: flex-end;
    padding-top: 24px;
}

:is(.home-page, .search-results-page) .search-card .search-button,
.agents-page .agents-form-footer .search-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-width: 165px;
    width: 165px;
    padding: 0 22px;
}

:is(.home-page, .search-results-page) .search-tokenbox { min-height: 56px; }

:is(.home-page, .search-results-page) .search-card button.search-button {
    height: 56px !important;
    min-height: 56px !important;
}

@media (min-width: 992px) {
    :is(.home-page, .search-results-page) .search-main-fields {
        display: flex;
        align-items: flex-end;
        gap: 23px;
    }
    :is(.home-page, .search-results-page) .search-dual-fields {
        flex-direction: row !important;
        align-items: flex-end;
    }
    :is(.home-page, .search-results-page) .search-dual-button { flex: 0 0 165px; }
}

@media (max-width: 991.98px) {
    .home-page .home-search-copy { grid-column: 1; }
    .agents-page { padding-top: 96px; }
    /* The homepage navigation occupies its own row on small screens. */
    .home-page .hero { padding-top: 40px; }
}

@media (max-width: 575.98px) {
    .home-page .hero .home-search-subtitle { font-size: 14px; }
    .agents-page { padding-top: 88px; }
    .home-page .home-search-heading,
    .agents-page .agents-header { margin-bottom: 26px; }
    :is(.home-page, .search-results-page) .search-card,
    .agents-page .agents-panel {
        padding: 22px 18px;
        border-radius: 16px;
    }
    :is(.home-page, .search-results-page) .search-card .search-button,
    .agents-page .agents-form-footer .search-button { width: 100%; }
}

/* Compact search toolbar on product and service result pages. */
.search-results-page .search-card {
    padding: 8px 16px;
    border-radius: 12px;
}

.search-results-page .search-card .search-box {
    padding: 0;
    margin: 0;
}

.search-results-page .search-main-fields {
    gap: 16px;
    margin-bottom: 0 !important;
}

.search-results-page .search-dual-fields {
    gap: 16px;
}

.search-results-page .search-label {
    margin-bottom: 2px;
    font-size: 14px;
    line-height: 20px;
}

.search-results-page .search-input,
.search-results-page .search-tokenbox {
    min-height: 36px;
    padding: 5px 10px;
    border-radius: 8px !important;
    font-size: 15px;
    line-height: 22px;
}

.search-results-page .search-tokenbox-input {
    height: 22px;
    font-size: 15px;
    line-height: 22px;
}

.search-results-page .search-card button.search-button {
    height: 36px !important;
    min-height: 36px !important;
    width: 120px;
    min-width: 120px;
    padding: 0 14px;
    gap: 8px;
    border-radius: 8px !important;
}

.search-results-page .search-verified-filter {
    margin-top: 4px;
    font-size: 13px;
    line-height: 20px;
}

@media (min-width: 992px) {
    .search-results-page .search-dual-button {
        flex-basis: 120px;
    }
}

@media (max-width: 991.98px) {
    .search-results-page .search-card {
        padding: 12px;
    }

    .search-results-page .search-dual-fields {
        gap: 8px;
    }

    .search-results-page .search-input,
    .search-results-page .search-tokenbox {
        min-height: 44px;
        padding-block: 9px;
    }

    .search-results-page .search-card button.search-button {
        height: 44px !important;
        min-height: 44px !important;
        width: 100%;
        margin-top: 8px !important;
    }

    .search-results-page .search-verified-filter {
        margin-top: 8px;
    }
}
