/* Tema Marketplace — paleta azul; Saúde/Imobiliário sobrescrevem via body.site-* */

/* Paleta de cores principal (marketplace / tenants partilhados) */
:root {
    --medico-primary: #2980b9;
    --medico-secondary: #27ae60;
    --medico-accent: #3498db;
    --medico-dark: #2c3e50;
    --medico-light: #ecf0f1;
    --medico-focus-ring: rgba(52, 152, 219, 0.22);
    --medico-focus-ring-soft: rgba(52, 152, 219, 0.15);
    --medico-focus-ring-mid: rgba(52, 152, 219, 0.18);
    --medico-focus-ring-strong: rgba(52, 152, 219, 0.35);
    --medico-search-bg: rgba(41, 128, 185, 0.9);
    --medico-copyright-bg: #1a252f;
}

/* Saúde storefront (saude.tratofeito.net) — azul */
body.site-saude {
    --medico-primary: #2980b9;
    --medico-secondary: #27ae60;
    --medico-accent: #3498db;
    --medico-dark: #2c3e50;
    --medico-light: #ecf0f1;
    --medico-focus-ring: rgba(52, 152, 219, 0.22);
    --medico-focus-ring-soft: rgba(52, 152, 219, 0.15);
    --medico-focus-ring-mid: rgba(52, 152, 219, 0.18);
    --medico-focus-ring-strong: rgba(52, 152, 219, 0.35);
    --medico-search-bg: rgba(41, 128, 185, 0.9);
    --medico-copyright-bg: #1a252f;
}

/* Imobiliário storefront (imobiliario.tratofeito.net) — navy / warm gold */
body.site-imobiliario {
    --medico-primary: #1a365d;
    --medico-secondary: #b7791f;
    --medico-accent: #2b6cb0;
    --medico-dark: #1a202c;
    --medico-light: #f7fafc;
    --medico-focus-ring: rgba(43, 108, 176, 0.22);
    --medico-focus-ring-soft: rgba(43, 108, 176, 0.15);
    --medico-focus-ring-mid: rgba(43, 108, 176, 0.18);
    --medico-focus-ring-strong: rgba(43, 108, 176, 0.35);
    --medico-search-bg: rgba(26, 54, 93, 0.92);
    --medico-copyright-bg: #0f172a;
}

/* Logo Trato Feito partilhado (wordmark — sem texto extra no brand) */
.navigation .navbar .navbar-brand a {
    display: inline-flex;
    align-items: center;
    gap: 0;
    font-size: 0;
    line-height: 0;
    color: transparent;
}

.navigation .navbar .navbar-brand img {
    display: block;
    height: 40px;
    width: auto;
    max-width: min(220px, 70vw);
}

/* Override - cor principal do tema */
.navigation .secondary-navigation {
    background-color: var(--medico-primary) !important;
    opacity: 1 !important;
    filter: none !important;
}

.navigation .secondary-navigation .contact,
.navigation .secondary-navigation .contact a,
.navigation .secondary-navigation .contact strong,
.navigation .secondary-navigation .user-area,
.navigation .secondary-navigation .user-area a,
.navigation .secondary-navigation .user-area strong {
    color: #ffffff !important;
}

.navigation .secondary-navigation a:hover {
    color: rgba(255, 255, 255, 0.8) !important;
}

.navigation .navbar .navbar-nav > li > a {
    color: var(--medico-dark) !important;
}

.navigation .navbar .navbar-nav > li.active > a,
.navigation .navbar .navbar-nav > li > a:hover,
.navigation .navbar .navbar-nav > li > a:focus {
    color: var(--medico-primary) !important;
}

.navigation .navbar .navbar-brand a:focus,
.navigation .navbar .navbar-brand a:focus-visible {
    outline: 2px solid var(--medico-accent) !important;
    outline-offset: 3px;
    border-radius: 6px;
    box-shadow: 0 0 0 3px var(--medico-focus-ring) !important;
}

/* Evitar que o conteúdo de sub-páginas fique sob o menu topo fixo */
body.page-sub-page {
    padding-top: 103px !important;
}

.btn-default,
.add-your-property .btn,
.bootstrap-select > .btn-default.selectpicker {
    background-color: var(--medico-primary) !important;
    border-color: var(--medico-primary) !important;
    color: #fff !important;
}

.btn.btn-primary,
.btn-primary {
    background-color: var(--medico-primary) !important;
    border-color: var(--medico-primary) !important;
    color: #fff !important;
}

.btn.btn-primary:hover,
.btn.btn-primary:focus,
.btn.btn-primary:active,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background-color: var(--medico-accent) !important;
    border-color: var(--medico-accent) !important;
    color: #fff !important;
}

.btn-default:hover,
.btn-default:focus,
.btn-default:active,
.add-your-property .btn:hover,
.add-your-property .btn:focus,
.add-your-property .btn:active,
.bootstrap-select > .btn-default.selectpicker:hover,
.bootstrap-select > .btn-default.selectpicker:focus,
.bootstrap-select > .btn-default.selectpicker:active,
.bootstrap-select.open > .btn-default.selectpicker {
    background-color: var(--medico-accent) !important;
    border-color: var(--medico-accent) !important;
    color: #fff !important;
}

/* bootstrap-select: texto do select (filter-option) herda cinza do theme base */
.bootstrap-select > .btn-default.selectpicker .filter-option,
.bootstrap-select > .btn-default.selectpicker .caret {
    color: #fff !important;
}

.tag.price {
    background-color: var(--medico-secondary);
}

/* Seção de busca */
.search-box-wrapper {
    background-color: var(--medico-search-bg);
}

.search-box-wrapper h2 {
    color: #fff;
    margin-bottom: 20px;
}

/* Seção de especialidades */
#specialties {
    padding: 60px 0;
}

#specialties h2 {
    margin-bottom: 40px;
    color: var(--medico-dark);
}

.category-box {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.category-box:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 20px rgba(0,0,0,0.15);
}

.category-box h4 {
    color: var(--medico-dark);
    margin-top: 10px;
}

/* Cards de profissionais */
.property {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    transition: transform 0.3s ease;
}

.property:hover {
    transform: translateY(-3px);
}

.property-content {
    padding: 15px;
}

.property-content h4 a {
    color: var(--medico-dark);
}

.property-content h4 a:hover {
    color: var(--medico-primary);
}

/* Home featured grid: equal-height cards, CTA pinned to bottom */
#featured-items .row {
    display: flex;
    flex-wrap: wrap;
}

#featured-items .row > [class*="col-"] {
    display: flex;
    flex-direction: column;
}

#featured-items .property {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    margin-bottom: 30px;
}

#featured-items .property-image {
    flex: 0 0 auto;
    height: 195px;
    min-height: 195px;
    overflow: hidden;
    background: #f3f5f7;
}

#featured-items .property-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#featured-items .property-content {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

#featured-items .property-content h4 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    line-height: 1.35;
    margin: 0 0 8px;
}

#featured-items .property-content > p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    line-height: 1.4;
    margin: 0 0 8px;
    color: #666;
    font-size: 13px;
}

#featured-items .property-cta {
    margin-top: auto;
    padding-top: 8px;
    text-align: center;
}

#featured-items .property-cta .tag.price {
    display: inline-block;
    margin-bottom: 10px;
}

#featured-items .property-cta .btn-contratar {
    display: inline-block;
    width: 100%;
    padding: 8px 10px;
    background: var(--medico-primary);
    color: #fff;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s;
}

#featured-items .property-cta .btn-contratar:hover,
#featured-items .property-cta .btn-contratar:focus {
    background: var(--medico-accent);
    color: #fff;
    text-decoration: none;
}

/*
 * /itens?vista=lista — só a descrição cresce; preço fica natural (não stretch).
 * (overrides do Zoner: display:table + max-height:55px + link absolute).
 */
#properties.display-lines .property .info {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-height: 195px;
    width: 100%;
    box-sizing: border-box;
}

#properties.display-lines .property .info > header {
    flex: 0 0 auto;
    width: 100%;
}

#properties.display-lines .property .info > .tag.price {
    flex: 0 0 auto;
    align-self: flex-start;
    width: auto;
    height: auto;
    display: inline-block;
}

#properties.display-lines .property .info aside {
    flex: 1 1 auto;
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    align-self: stretch;
    width: 100%;
    min-height: 0;
}

#properties.display-lines .property .info aside p {
    float: none;
    flex: 1 1 58%;
    width: auto;
    max-height: none;
    overflow: hidden;
    margin: 0;
    padding-right: 12px;
    padding-bottom: 8px;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 7;
}

#properties.display-lines .property .info aside dl {
    float: none;
    flex: 0 1 38%;
    width: auto;
    margin: 0;
}

#properties.display-lines .property .info aside:not(:has(dl)) p,
#properties.display-lines .property .info aside p:only-child {
    flex: 1 1 100%;
    padding-right: 0;
    -webkit-line-clamp: 8;
}

#properties.display-lines .property .info .property-cta {
    flex: 0 0 auto;
    margin-top: auto;
    padding-top: 10px;
}

#properties.display-lines .property .info .property-cta .link-arrow {
    position: static;
    bottom: auto;
    left: auto;
    display: inline-block;
    margin-right: 10px;
    vertical-align: middle;
}

@media (max-width: 991px) {
    #properties.display-lines .property .info {
        min-height: 150px;
    }
}

@media (max-width: 767px) {
    #properties.display-lines .property .info {
        min-height: 0;
    }

    #properties.display-lines .property .info aside,
    #properties.display-lines .property .info aside p,
    #properties.display-lines .property .info aside dl {
        flex: 1 1 100%;
        width: 100%;
    }

    #properties.display-lines .property .info aside p {
        padding-right: 0;
    }
}

/* Footer */
#page-footer {
    background-color: var(--medico-dark);
}

#footer-copyright {
    background-color: var(--medico-copyright-bg);
}

/* Links */
a {
    color: var(--medico-primary);
}

a:hover {
    color: var(--medico-accent);
}

/* Features section */
#features h2 {
    color: var(--medico-dark);
    margin-bottom: 10px;
}

#features h4 {
    color: var(--medico-dark);
    margin-bottom: 10px;
}

#features p {
    color: #666;
}

.property:hover .property-content h4 a,
.property h4 a:hover,
.property h4 a:focus,
.link-arrow,
.list-links a:hover {
    color: var(--medico-primary) !important;
}

.search-box-wrapper .form-control:focus,
.form-control:focus,
.bootstrap-select .dropdown-toggle:focus {
    border-color: var(--medico-accent);
    box-shadow: 0 0 0 2px var(--medico-focus-ring-soft);
}

/* Reforco de contraste e foco visivel para textos pequenos */
input[type="text"],
input[type="email"],
input[type="search"],
input[type="password"],
input[type="number"],
input[type="tel"],
textarea,
select,
.form-control,
.bootstrap-select .dropdown-toggle {
    background-color: #ffffff !important;
    color: #142033 !important;
    border: 1px solid #c9d2df !important;
    box-shadow: inset 0 1px 2px rgba(20, 32, 51, 0.06);
}

input::placeholder,
textarea::placeholder {
    color: #64748b !important;
    opacity: 1;
}

input:focus,
textarea:focus,
select:focus,
.form-control:focus,
.bootstrap-select .dropdown-toggle:focus {
    border-color: var(--medico-accent) !important;
    box-shadow: 0 0 0 3px var(--medico-focus-ring-mid) !important;
    background-color: #ffffff !important;
    color: #142033 !important;
}

/* Marketplace: azul; Saúde: teal (site-saude); Imobiliário: navy/gold (site-imobiliario) */
#footer-main a,
.list-links li a {
    color: var(--medico-accent) !important;
    font-weight: 500;
}

#footer-main a:hover,
#footer-main a:focus,
.list-links li a:hover,
.list-links li a:focus {
    color: var(--medico-primary) !important;
    text-decoration: underline;
}

.secondary-navigation .actions a,
.secondary-navigation .contact a {
    font-weight: 500;
}

a:focus-visible,
button:focus-visible,
.btn:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--medico-accent) !important;
    outline-offset: 2px;
}

a:focus,
button:focus,
.btn:focus,
input:focus,
select:focus,
textarea:focus,
[tabindex]:focus {
    outline: 2px solid var(--medico-accent) !important;
    outline-offset: 2px;
    box-shadow: 0 0 0 3px var(--medico-focus-ring) !important;
}

.skip-link {
    position: absolute;
    left: 10px;
    top: -48px;
    z-index: 100000;
    padding: 10px 14px;
    border-radius: 6px;
    background: var(--medico-dark);
    color: #ffffff !important;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.skip-link:focus,
.skip-link:focus-visible {
    top: 10px;
}

#brand > a:focus,
#brand > a:focus-visible {
    outline-style: solid !important;
    outline-width: 2px !important;
    outline-color: var(--medico-accent) !important;
    outline-offset: 3px;
    border-radius: 6px;
    box-shadow: 0 0 0 3px var(--medico-focus-ring) !important;
    color: var(--medico-accent) !important;
}

#brand > a:focus img,
#brand > a:focus-visible img {
    border-radius: 6px;
    box-shadow: 0 0 0 3px var(--medico-focus-ring-strong) !important;
}
