/**
 * Performance & accessibility overrides — contrast + non-critical polish
 */
:root {
    --primary-text: #006658;
    --primary-dark: #007a6e;
    --link-contrast: #00564b;
}

.text-primary,
.card-title.text-primary,
h1.text-primary,
h4.text-primary,
h5.text-primary {
    color: var(--primary-text) !important;
}

.btn-outline-primary {
    color: var(--primary-text) !important;
    border-color: var(--primary-text) !important;
}

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

.bg-primary {
    background-color: var(--primary-dark) !important;
}

.border-primary {
    border-color: var(--primary-text) !important;
}

.breadcrumb-item a {
    color: #495057;
}

.breadcrumb-item.active span {
    color: #212529;
}

.border-bottom.border-primary {
    border-color: var(--primary-text) !important;
    color: var(--primary-text) !important;
}

a.border-bottom.border-primary {
    color: var(--link-contrast) !important;
}

#home .btn-outline-light {
    color: #fff;
    border-color: #fff;
}

#home .btn-outline-light:hover {
    background-color: #fff;
    color: var(--primary-dark);
}

footer a.text-white,
footer p a.text-white {
    color: #f8f9fa !important;
}

footer a.text-white:hover {
    color: #fff !important;
    text-decoration: underline;
}

.service-icon.bg-primary {
    background-color: var(--primary-dark) !important;
}

.portfolio-btn .btn-outline-primary.active,
.portfolio-btn .btn-outline-primary:hover {
    background-color: var(--primary-dark) !important;
    color: #fff !important;
}

/* CLS — reserve space for dynamic content */
.typed-text-output {
    display: inline-block;
    min-height: 1.4em;
    min-width: 14ch;
}

#home .typed-text-output {
    min-height: 2.5rem;
}

.testimonial-carousel {
    min-height: 280px;
}

.testimonial-carousel img.rounded-circle {
    width: 80px !important;
    height: 80px !important;
    aspect-ratio: 1 / 1;
}

.portfolio-item .position-relative {
    aspect-ratio: 4 / 3;
}

.portfolio-item img.img-fluid {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#blog .position-relative.mb-4 {
    aspect-ratio: 4 / 3;
}

#blog .position-relative.mb-4 > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Third-party embed placeholders — prevent CLS */
#tidycal-embed {
    min-height: 620px;
    width: 100%;
}

#haerriz-ad-slot {
    min-height: 280px;
    width: 100%;
    max-width: 728px;
    margin: 0 auto;
}

#haerriz-ad-slot ins.adsbygoogle {
    display: block;
    min-height: 250px;
    width: 100%;
}

.btn-social .fab {
    pointer-events: none;
}
/* Hero typed text — prevent CLS while strings rotate */
.hero-typed-slot {
    min-height: 3.5rem;
}

.typed-text-output {
    display: block;
    min-height: 2.75rem;
    line-height: 1.2;
}

@media (max-width: 991px) {
    .hero-typed-slot {
        min-height: 4.25rem;
    }
}

/* Accessibility — contrast fixes */
.blog-date {
    background-color: #007a6e !important;
}

.blog-date small.text-white,
.blog-date h4.text-white {
    color: #fff !important;
}

#portfolio-flters .btn-outline-primary.active,
#portfolio-flters .btn-outline-primary:hover {
    background-color: var(--primary-dark, #007a6e) !important;
    border-color: var(--primary-dark, #007a6e) !important;
    color: #fff !important;
}

#portfolio-flters .btn-outline-primary {
    color: var(--primary-text, #006658) !important;
    border-color: var(--primary-text, #006658) !important;
}

