/*
 * Lotus Custom Footer — custom-footer.css
 * Migrated from plugin into child theme.
 * Palette: #0F4365 (main) · #0a3352 (top bar) · #081f33 (bottom)
 * Compatible with Blocksy Free + Elementor Free
 * ──────────────────────────────────────────────────────────────────────────
 */

/* ── Reset / base ─────────────────────────────────────────────────────────── */
.lcf-footer *,
.lcf-footer *::before,
.lcf-footer *::after {
    box-sizing: border-box;
}

.lcf-footer {
    --lcf-bg-topbar:  #0a3352;
    --lcf-bg-main:    #0F4365;
    --lcf-bg-bottom:  #081f33;

    --lcf-text:       #b8cfe0;
    --lcf-text-white: #ffffff;
    --lcf-link:       #b8cfe0;
    --lcf-link-hover: #ffffff;

    --lcf-container-max: 1172px;
    --lcf-col-gap:       2rem;

    font-size:   0.9rem;
    line-height: 1.7;
    color:       var(--lcf-text);
    width:       100%;
}

/* ── Container ────────────────────────────────────────────────────────────── */
.lcf-footer .lcf-container {
    max-width:      var(--lcf-container-max);
    margin-left:    auto;
    margin-right:   auto;
    padding-inline: 12px;
}

/* ── TOP BAR ──────────────────────────────────────────────────────────────── */
.lcf-topbar {
    background-color: var(--lcf-bg-topbar);
    padding-top:    40px;
    padding-bottom: 40px;
}

.lcf-topbar__text {
    margin:      0;
    color:       #ffffff;
    font-size:   14px;
    line-height: 1.6;
}

.lcf-topbar__maps-link {
    display:     inline-block;
    color:       #ffffff;
    font-size:   14px;
    line-height: 1.6;
    transition:  color 0.2s ease;
}

.lcf-topbar__maps-link:hover,
.lcf-topbar__maps-link:focus {
    color:   #ffffff;
    outline: none;
}

/* ── MAIN FOOTER ──────────────────────────────────────────────────────────── */
.lcf-main {
    background-color: var(--lcf-bg-main);
    padding-top:    40px;
    padding-bottom: 40px;
}

/* 3-column grid: nav | services | contact */
.lcf-grid {
    display:               grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap:                   var(--lcf-col-gap);
    align-items:           start;
}

/* ── Column heading ───────────────────────────────────────────────────────── */
.lcf-col__heading {
    font-size:        14px;
    font-weight:      600;
    letter-spacing:   0.1em;
    text-transform:   uppercase;
    color:            #ffffff;
    display:          flex;
    align-items:      center;
    justify-content:  space-between;
    padding-bottom:   14px;
    background-image: linear-gradient(90deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 40%, transparent 100%);
    background-size:     100% 1px;
    background-repeat:   no-repeat;
    background-position: bottom;
    margin-bottom:    18px;
    user-select:      none;
}

/* ── Column 1: Navigation ─────────────────────────────────────────────────── */
.lcf-nav-list {
    list-style: none;
    margin:     0;
    padding:    0;
}

.lcf-nav-list__item {
    margin:   0;
    padding:  0.2rem 0;
    position: relative;
}

/* flex row: link + toggle button */
.lcf-nav-list__item-wrap {
    display:     flex;
    align-items: center;
    gap:         0.3rem;
}

.lcf-nav-list__link {
    color:           #ffffff;
    text-decoration: none;
    font-size:       14px;
    line-height:     1.6;
    transition:      color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    position:        relative;
    display:         inline-flex;
    align-items:     center;
    gap:             6px;
    padding-bottom:  2px;
}

.lcf-nav-list__link::after {
    content:    "";
    position:   absolute;
    bottom:     0;
    left:       0;
    width:      0;
    height:     1px;
    background: rgba(255,255,255,0.6);
    transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.lcf-nav-list__link:hover::after {
    width: 100%;
}

/* Current page */
.lcf-nav-list__link--current,
.lcf-nav-list__item--active > .lcf-nav-list__link,
.lcf-nav-list__item--active > .lcf-nav-list__item-wrap > .lcf-nav-list__link {
    color:       var(--lcf-text-white);
    font-weight: 600;
}

/* Ancestor (parent of current) */
.lcf-nav-list__link--ancestor,
.lcf-nav-list__item--ancestor > .lcf-nav-list__link,
.lcf-nav-list__item--ancestor > .lcf-nav-list__item-wrap > .lcf-nav-list__link {
    color: var(--lcf-text-white);
}

.lcf-nav-list__link:hover,
.lcf-nav-list__link:focus {
    color: #ffffff;
}

/* Toggle button (chevron) */
.lcf-nav-list__toggle {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    background:      transparent;
    border:          none;
    cursor:          pointer;
    color:           var(--lcf-link);
    padding:         0.2rem;
    border-radius:   3px;
    transition:      color 0.2s ease, transform 0.2s ease;
    flex-shrink:     0;
}

.lcf-nav-list__toggle:hover,
.lcf-nav-list__toggle:focus {
    color:   var(--lcf-link-hover);
    outline: 2px solid var(--lcf-link-hover);
}

.lcf-nav-list__toggle[aria-expanded="true"] .lcf-nav-list__chevron-icon {
    transform: rotate(180deg);
}

.lcf-nav-list__chevron-icon {
    transition: transform 0.2s ease;
    display:    block;
}

/* Sub-menu */
.lcf-nav-list__sub-menu {
    list-style:  none;
    margin:      0;
    padding:     0;
    max-height:  0;
    overflow:    hidden;
    transition:  max-height 0.25s ease;
}

.lcf-nav-list__sub-menu--open {
    max-height: 400px;
}

.lcf-nav-list__item--child {
    padding-left: 0.75rem;
}

.lcf-nav-list__item--child .lcf-nav-list__link {
    font-size:      14px;
    text-transform: none;
    padding:        0.2rem 0;
    color:          var(--lcf-text);
}

.lcf-nav-list__item--child .lcf-nav-list__link--current,
.lcf-nav-list__item--child.lcf-nav-list__item--active > .lcf-nav-list__link {
    color:       var(--lcf-text-white);
    font-weight: 600;
}

.lcf-nav-list__item--child .lcf-nav-list__link:hover {
    color: var(--lcf-link-hover);
}

/* Admin fallback */
.lcf-nav-list--no-menu {
    color:  var(--lcf-text);
    margin: 0;
}

.lcf-nav-list--no-menu a {
    color: #7ec8e3;
}

/* ── Column 2: Services ───────────────────────────────────────────────────── */
.lcf-services-list {
    list-style: none;
    margin:     0;
    padding:    0;
}

.lcf-services-list__item {
    padding: 0.2rem 0;
}

.lcf-services-list__link {
    color:           #ffffff;
    text-decoration: none;
    font-size:       14px;
    line-height:     1.6;
    transition:      color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    position:        relative;
    display:         inline-flex;
    align-items:     center;
    gap:             6px;
    padding-bottom:  2px;
}

.lcf-services-list__link::after {
    content:    "";
    position:   absolute;
    bottom:     0;
    left:       0;
    width:      0;
    height:     1px;
    background: rgba(255,255,255,0.6);
    transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.lcf-services-list__link:hover::after {
    width: 100%;
}

a.lcf-services-list__link:hover,
a.lcf-services-list__link:focus {
    color: #ffffff;
}

/* ── Column 3: Contact ────────────────────────────────────────────────────── */
.lcf-contact-item {
    margin-bottom:  20px;
    display:        flex;
    flex-direction: column;
}

.lcf-contact-item__label {
    font-size:   14px;
    line-height: 1.6;
    color:       #ffffff;
}

.lcf-contact-item__label.office-hours {
    margin-top:  20px;
    font-size:   16px;
    line-height: 1.6;
    color:       #ffffff;
}

.lcf-contact-item__value {
    font-size:       14px;
    line-height:     1.6;
    color:           #ffffff;
    text-decoration: none;
}

.lcf-contact-item__value--phone,
.lcf-contact-item__value--email {
    font-size:   14px;
    line-height: 1.6;
    font-weight: 600;
    color:       #ffffff;
    word-break:  break-all;
}

a.lcf-contact-item__value:hover,
a.lcf-contact-item__value:focus {
    color: #ffffff;
}

/* ── BOTTOM BAR ───────────────────────────────────────────────────────────── */
.lcf-bottom {
    background-color: var(--lcf-bg-bottom);
    padding-top:    0;
    padding-bottom: 23px;
}

.lcf-bottom hr {
    margin-top:    0;
    margin-bottom: 23px;
    border:        0;
    border-top:    1px solid #154d73;
}

.lcf-bottom__copyright {
    margin:      0;
    font-size:   13px;
    line-height: 1.25;
    color:       #ffffff;
}

/* Bottom bar: copyright left, badge right */
.lcf-bottom__bar {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    gap:             16px;
    flex-wrap:       wrap;
}

/* Psychology Today badge container */
.lcf-bottom__badges {
    display:     flex;
    align-items: center;
    flex-shrink: 0;
    line-height: 1;
}

/* Force the badge <a> and its inner image to be inline — the PT script
   injects an <img> inside the <a>; display:inline-flex keeps it on one line */
.lcf-bottom__badges .sx-verified-seal,
.lcf-bottom__badges a[href*="psychologytoday"] {
    display:         inline-flex !important;
    align-items:     center;
    line-height:     1;
    vertical-align:  middle;
}

.lcf-bottom__badges img {
    display:        block;
    height:         60px;
    width:          auto;
    max-width:      none;
    vertical-align: middle;
}

/* ── FOCUS VISIBLE ────────────────────────────────────────────────────────── */
.lcf-footer :focus-visible {
    outline:        2px solid #7ec8e3;
    outline-offset: 3px;
    border-radius:  2px;
}

/* ── RESPONSIVE: Tablet (≤ 900px) ────────────────────────────────────────── */
@media (max-width: 900px) {
    .lcf-grid {
        grid-template-columns: 1fr 1fr;
        row-gap: 2rem;
    }

    .lcf-col--contact {
        grid-column: 1 / -1;
    }
}

/* ── RESPONSIVE: Mobile (≤ 600px) ────────────────────────────────────────── */
@media (max-width: 600px) {
    .lcf-grid {
        grid-template-columns: 1fr;
    }

    .lcf-col--contact {
        grid-column: auto;
    }

    /* Stack copyright above badge on small screens */
    .lcf-bottom__bar {
        flex-direction: column;
        align-items:    flex-start;
        gap:            12px;
    }
}

/* ── Blocksy built-in footer override ────────────────────────────────────── */
body:has(#lcf-footer) .site-footer:not(#lcf-footer),
body:has(#lcf-footer) footer.site-footer,
#lcf-footer ~ .site-footer,
#lcf-footer ~ footer {
    display:    none !important;
    visibility: hidden !important;
    height:     0 !important;
    overflow:   hidden !important;
    padding:    0 !important;
    margin:     0 !important;
}
