/* DigiCode Laravel v4.2.58.8.45 — Public UI Consistency Polish */
:root {
    --dcp-brand: #3b71b9;
    --dcp-brand-dark: #244f83;
    --dcp-accent: #5bc4bf;
    --dcp-ink: #132238;
    --dcp-text: #51657a;
    --dcp-line: #dce7f1;
    --dcp-soft: #f5f9fc;
    --dcp-white: #fff;
    --dcp-radius: 18px;
    --dcp-shadow: 0 16px 42px rgba(29, 64, 100, .10);
    --dcp-shadow-hover: 0 24px 56px rgba(29, 64, 100, .16);
}

/* Consistent page canvas without touching the homepage. */
body:not(.home) .site-content {
    background: linear-gradient(180deg, #fff 0%, #f8fbfd 72%, #eef7f7 100%);
}

body:not(.home) :where(.about-page-main,.contact-page-main,.services-main,.portfolio-page-main,.blog-page-main,.dc-search-page) {
    color: var(--dcp-ink);
}

/* Unified full-width page banners. */
body:not(.home) :where(.about-image-banner,.contact-image-banner,.services-image-banner,.portfolio-image-banner,.blog-image-banner) {
    position: relative;
    isolation: isolate;
    min-height: clamp(250px, 31vw, 410px);
    overflow: hidden;
    background-color: var(--dcp-brand-dark);
}

body:not(.home) :where(.about-image-banner,.contact-image-banner,.services-image-banner,.portfolio-image-banner,.blog-image-banner)::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(100deg, rgba(15, 41, 72, .74), rgba(36, 79, 131, .35) 52%, rgba(20, 113, 116, .30)),
        linear-gradient(180deg, transparent 58%, rgba(10, 30, 53, .38));
}

body:not(.home) :where(.about-image-banner,.contact-image-banner,.services-image-banner,.portfolio-image-banner,.blog-image-banner) img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
    object-position: center;
    transition: transform .7s ease;
}

body:not(.home) :where(.about-image-banner,.contact-image-banner,.services-image-banner,.portfolio-image-banner,.blog-image-banner):hover img {
    transform: scale(1.025);
}

/* Shared section rhythm. */
body:not(.home) :where(.contact-intro-section,.contact-content-section,.portfolio-mine,.blog-index-section,.digi-section,.values-wrapper,.ceo-premium-section,.digi-usp-wrapper) {
    padding-block: clamp(52px, 6vw, 88px);
}

body:not(.home) :where(.contact-page-shell,.contact-container,.portfolio-container,.blog-index-container,.digi-service-container) {
    width: min(1180px, calc(100% - 36px));
    margin-inline: auto;
}

/* Shared heading hierarchy. */
body:not(.home) :where(.portfolio-section-heading,.blog-index-heading,.services-section-header,.digi-title-wrapper) {
    max-width: 820px;
    margin-inline: auto;
    margin-bottom: clamp(28px, 4vw, 48px);
    text-align: center;
}

body:not(.home) :where(.portfolio-section-kicker,.blog-index-kicker,.sub-title,.contact-kicker,.contact-card-badge) {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 5px 13px;
    border: 1px solid rgba(91, 196, 191, .35);
    border-radius: 999px;
    background: rgba(91, 196, 191, .10);
    color: #247e7a;
    font-weight: 800;
    letter-spacing: .01em;
}

body:not(.home) :where(.portfolio-section-heading h2,.blog-index-heading h2,.services-section-header .main-title,.digi-title-wrapper h2,.contact-intro-copy h2,.contact-card-heading h2) {
    color: var(--dcp-brand-dark) !important;
    font-weight: 900 !important;
    line-height: 1.3;
    text-wrap: balance;
}

/* Listing cards: blog and portfolio. */
body:not(.home) :where(.portfolio-grid,.blog-index-grid) {
    gap: clamp(20px, 2.6vw, 30px);
}

body:not(.home) :where(.portfolio-card,.blog-index-card) {
    overflow: hidden;
    border: 1px solid var(--dcp-line);
    border-radius: var(--dcp-radius);
    background: var(--dcp-white);
    box-shadow: var(--dcp-shadow);
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

body:not(.home) :where(.portfolio-card,.blog-index-card):hover {
    transform: translateY(-6px);
    border-color: rgba(59, 113, 185, .34);
    box-shadow: var(--dcp-shadow-hover);
}

body:not(.home) :where(.portfolio-card-media,.blog-index-card-media) {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: linear-gradient(135deg, #e9f1f8, #e8f8f6);
}

body:not(.home) :where(.portfolio-card-media,.blog-index-card-media) img,
body:not(.home) :where(.portfolio-card-media,.blog-index-card-media) picture {
    width: 100%;
    height: 100%;
}

body:not(.home) :where(.portfolio-card-media,.blog-index-card-media) img {
    display: block;
    object-fit: cover;
    transition: transform .55s ease;
}

body:not(.home) :where(.portfolio-card,.blog-index-card):hover :where(.portfolio-card-media,.blog-index-card-media) img {
    transform: scale(1.045);
}

body:not(.home) :where(.portfolio-card-content,.blog-index-card-content) {
    padding: clamp(20px, 2.4vw, 27px);
}

body:not(.home) :where(.portfolio-card-content h2,.portfolio-card-content h3,.blog-index-card-content h2,.blog-index-card-content h3) {
    color: var(--dcp-ink) !important;
    font-weight: 850 !important;
    line-height: 1.45;
}

body:not(.home) :where(.portfolio-card-category,.blog-index-card-category,.dc-search-type) {
    border-radius: 999px;
    background: #edf5fb;
    color: var(--dcp-brand-dark);
    font-weight: 800;
}

body:not(.home) :where(.portfolio-card-action,.blog-index-card-action,.dc-search-open) {
    color: var(--dcp-brand);
    font-weight: 850;
}

/* Filters, search fields and forms. */
body:not(.home) :where(.portfolio-filters,.blog-index-filters,.blog-index-tools) {
    gap: 10px;
}

body:not(.home) :where(.filter-btn,.blog-filter-btn) {
    min-height: 42px;
    padding: 9px 17px;
    border: 1px solid var(--dcp-line);
    border-radius: 999px;
    background: #fff;
    color: var(--dcp-text);
    font-weight: 750;
    transition: all .2s ease;
}

body:not(.home) :where(.filter-btn,.blog-filter-btn):hover,
body:not(.home) :where(.filter-btn,.blog-filter-btn).active {
    border-color: var(--dcp-brand);
    background: linear-gradient(135deg, var(--dcp-brand-dark), var(--dcp-brand));
    color: #fff;
    box-shadow: 0 9px 22px rgba(59, 113, 185, .20);
}

body:not(.home) :where(input[type="text"],input[type="email"],input[type="tel"],input[type="search"],textarea,select) {
    border: 1px solid #cfdeea;
    border-radius: 13px;
    background: #fff;
    color: var(--dcp-ink);
    transition: border-color .2s ease, box-shadow .2s ease;
}

body:not(.home) :where(input[type="text"],input[type="email"],input[type="tel"],input[type="search"],textarea,select):focus {
    outline: none;
    border-color: var(--dcp-brand);
    box-shadow: 0 0 0 4px rgba(59, 113, 185, .13);
}

/* Contact page cards. */
body:not(.home) :where(.contact-promise-card,.contact-info,.contact-form-wrapper,.contact-map-card) {
    border: 1px solid var(--dcp-line);
    border-radius: var(--dcp-radius);
    background: rgba(255,255,255,.96);
    box-shadow: var(--dcp-shadow);
}

body:not(.home) .contact-promise-card {
    transition: transform .24s ease, box-shadow .24s ease;
}

body:not(.home) .contact-promise-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--dcp-shadow-hover);
}

/* Unified pagination. */
body:not(.home) :where(.digicode-pagination,.dc-pagination) {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: clamp(30px, 4vw, 48px);
}

body:not(.home) :where(.digicode-pagination a,.digicode-pagination span,.dc-page-link,.dc-page-status) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    min-height: 42px;
    padding: 8px 13px;
    border: 1px solid var(--dcp-line);
    border-radius: 12px;
    background: #fff;
    color: var(--dcp-brand-dark);
    font-weight: 800;
    text-decoration: none;
}

body:not(.home) :where(.digicode-pagination .current,.dc-page-link:not(.is-disabled):hover) {
    border-color: var(--dcp-brand);
    background: linear-gradient(135deg, var(--dcp-brand-dark), var(--dcp-brand));
    color: #fff;
}

/* Global interactive accessibility. */
body:not(.home) :where(a,button,input,textarea,select):focus-visible {
    outline: 3px solid rgba(91, 196, 191, .70);
    outline-offset: 3px;
}

@media (max-width: 767px) {
    body:not(.home) :where(.contact-page-shell,.contact-container,.portfolio-container,.blog-index-container,.digi-service-container) {
        width: min(100% - 24px, 1180px);
    }

    body:not(.home) :where(.about-image-banner,.contact-image-banner,.services-image-banner,.portfolio-image-banner,.blog-image-banner) {
        min-height: 220px;
    }

    body:not(.home) :where(.portfolio-card-content,.blog-index-card-content) {
        padding: 19px;
    }

    body:not(.home) :where(.filter-btn,.blog-filter-btn) {
        min-height: 40px;
        padding-inline: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body:not(.home) :where(.portfolio-card,.blog-index-card,.contact-promise-card,.about-image-banner img,.contact-image-banner img,.services-image-banner img,.portfolio-image-banner img,.blog-image-banner img) {
        transition: none !important;
        transform: none !important;
    }
}
