@font-face {
    font-family: "Fichario Ubuntu";
    src: url("../font/home-clean/Ubuntu-R.ttf") format("truetype");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Fichario Ubuntu";
    src: url("../font/home-clean/Ubuntu-B.ttf") format("truetype");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

.directory-public-page {
    --directory-green: #007c70;
    --directory-green-dark: #006b60;
    --directory-ink: #17332f;
    --directory-muted: #60736c;
    --directory-line: #dce5dd;
    --directory-bg: #f7f8f4;
}

.profile-public-page {
    --pa-accent: var(--fm-brand-primary, #007c70);
    --pa-link: var(--fm-brand-link, #007c70);
    --pa-focus: var(--fm-brand-focus, #007c70);
    --pa-soft: var(--fm-brand-secondary-soft, var(--fm-brand-primary-soft, #e2f0e9));
    --pa-support: var(--fm-brand-secondary-link, var(--fm-brand-link, #007c70));
    background: #f7f8f4;
    color: #17332f;
}

.directory-public-page,
.profile-public-page {
    font-family: "Fichario Ubuntu", Arial, sans-serif;
}

.directory-public-page :focus-visible,
.profile-public-page :focus-visible {
    outline: 3px solid var(--pa-focus, #007c70);
    outline-offset: 4px;
}

.directory-public-page h1,
.directory-public-page h2,
.directory-public-page h3,
.directory-public-page h4,
.profile-public-page h1,
.profile-public-page h2,
.profile-public-page h3 {
    letter-spacing: 0;
}

.directory-public-page .directory-container {
    max-width: 1240px;
    padding-right: 32px;
    padding-left: 32px;
}

.directory-public-page .directory-header {
    background: #f7f8f4;
}

.directory-public-page .directory-header > .directory-container {
    min-height: 88px;
}

.directory-public-page .directory-brand {
    gap: 10px;
    min-height: 44px;
    color: #17332f;
    font-size: 21px;
    white-space: nowrap;
}

.directory-public-page .directory-brand img {
    width: 44px;
    height: 39px;
    object-fit: contain;
}

.directory-public-page .directory-header nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
}

.directory-public-page .directory-hero {
    padding-top: 56px;
}

.directory-public-page .directory-hero h1 {
    font-size: clamp(34px, 4vw, 48px);
    line-height: 1.15;
}

.directory-public-page .directory-eyebrow {
    letter-spacing: .06em;
    font-weight: 700;
}

.directory-public-page .directory-search {
    border-radius: 18px;
    box-shadow: 0 12px 32px #17332f06;
}

.directory-public-page input,
.directory-public-page select,
.directory-public-page textarea {
    min-height: 52px;
    border-color: #c9d6cf;
    border-radius: 10px;
}

.directory-public-page .directory-button {
    min-height: 52px;
    border-radius: 10px;
    font-weight: 700;
}

.directory-public-page .directory-header__login {
    min-height: 48px;
}

.directory-public-page .directory-card {
    border-radius: 18px;
}

.directory-public-page .public-professional-avatar {
    color: #007c70;
    background: #e2f0e9;
}

.profile-public-page .public-professional-avatar {
    color: var(--pa-support);
    background: var(--pa-soft);
}

.directory-public-page .directory-venue .directory-button {
    min-height: 48px;
}

.directory-public-page .directory-acquisition {
    background: #e2f0e9;
    border-color: #dce5dd;
}

.directory-public-page .directory-footer {
    background: #f7f8f4;
}

.directory-public-page .directory-footer a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}

.profile-public-page a {
    color: var(--pa-link);
}

.profile-public-page .profile-header {
    border-top: 3px solid var(--fm-brand-primary, var(--profile-accent, #007c70));
    border-bottom-color: #dce5dd;
    background: #f7f8f4;
}

.profile-public-page .profile-header .profile-container {
    min-height: 88px;
    padding-top: 20px;
    padding-bottom: 20px;
}

.profile-public-page .profile-clinic-name {
    font-weight: 700;
    letter-spacing: 0;
}

.profile-public-page .profile-card {
    padding: 32px;
    border-color: #dce5dd;
    border-radius: 20px;
    box-shadow: 0 12px 32px #17332f06;
}

.profile-public-page .profile-hint,
.profile-public-page .profile-platform,
.profile-public-page .profile-footer {
    color: #60736c;
}

.profile-public-page .profile-eyebrow {
    color: var(--pa-support);
    letter-spacing: .06em;
}

.profile-public-page .profile-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border-color: #c9d6cf;
    border-radius: 10px;
    color: var(--pa-support);
    font-weight: 700;
    text-align: center;
}

.profile-public-page .profile-button-primary {
    border-color: var(--pa-accent);
    background: var(--pa-accent);
    color: var(--fm-brand-on-primary, #fff);
}

.profile-public-page .profile-button:hover {
    border-color: var(--pa-focus);
    box-shadow: 0 0 0 1px var(--pa-focus);
}

.profile-public-page .profile-button-primary:hover {
    background: var(--fm-brand-primary-hover, var(--pa-accent));
}

.profile-public-page .clinic-directory .clinic-filters,
.profile-public-page .clinic-contact,
.profile-public-page .booking-summary,
.profile-public-page .clinic-profession-badge {
    background: var(--pa-soft);
    border-color: #dce5dd;
}

.profile-public-page .clinic-profession-badge {
    color: var(--pa-support);
}

.profile-public-page .clinic-professional {
    padding: 24px;
    box-shadow: none;
}

.profile-public-page .clinic-filters input,
.profile-public-page .clinic-filters select,
.profile-public-page .booking-page input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
.profile-public-page .booking-page select,
.profile-public-page .booking-page textarea {
    min-height: 48px;
    border-color: #c9d6cf;
    border-radius: 10px;
}

.profile-public-page .booking-slot input:checked + span {
    border-color: var(--pa-accent);
    background: var(--pa-accent);
    color: var(--fm-brand-on-primary, #fff);
}

.profile-public-page .booking-slot input:focus-visible + span {
    outline-color: var(--pa-focus);
}

.profile-public-page .booking-page input[type=checkbox],
.profile-public-page .booking-page input[type=radio] {
    accent-color: var(--pa-accent);
}

.profile-public-page .booking-page [data-booking-calendar] .fc-day.booking-day-available {
    background: var(--pa-soft);
}

.profile-public-page .booking-page [data-booking-calendar] .fc-day-top.booking-day-available {
    color: var(--pa-support);
}

.profile-public-page .booking-page [data-booking-calendar] .fc-day.booking-day-selected {
    box-shadow: inset 0 0 0 2px var(--pa-accent);
}

@media (max-width: 680px) {
    .directory-public-page .directory-container {
        padding-right: 20px;
        padding-left: 20px;
    }

    .directory-public-page .directory-header > .directory-container {
        align-items: center;
        padding-top: 20px;
        padding-bottom: 20px;
    }

    .directory-public-page .directory-header nav {
        width: 100%;
        gap: 10px;
    }

    .directory-public-page .directory-header__find {
        margin-right: auto;
    }

    .directory-public-page .directory-header .directory-button-small {
        width: 100%;
    }

    .directory-public-page .directory-hero {
        padding-top: 36px;
    }

    .directory-public-page .directory-section-heading {
        flex-wrap: wrap;
    }

    .profile-public-page .profile-card {
        padding: 22px;
    }

    .profile-public-page .profile-header .profile-container {
        padding-top: 24px;
        padding-bottom: 24px;
    }
}
