/*
 * Vedam Vision global polish v4
 * Additive and reversible. Loaded after legacy public styles and inline theme rules.
 * Scope: public layout alignment, readable type, responsive rhythm, footer, and focus visibility.
 */

:root {
    --vv-layout-max: 1180px;
    --vv-copy-max: 68ch;
    --vv-gutter: clamp(1rem, 3.2vw, 2rem);
    --vv-section-space: clamp(3rem, 5.5vw, 5.25rem);
    --vv-section-space-compact: clamp(2.25rem, 4vw, 3.5rem);
    --vv-nav-height: 68px;
}

html {
    overflow-x: clip;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    overflow-x: clip;
    font-size: clamp(0.98rem, 0.18vw + 0.94rem, 1.05rem);
    line-height: 1.65;
    text-rendering: optimizeLegibility;
}

body[data-theme-mode="dark"] {
    --text-body: #d8deeb;
    --text-muted: #aeb9cd;
    --border: rgba(255, 255, 255, 0.14);
    --border-hover: rgba(255, 119, 34, 0.58);
}

body[data-theme-mode="light"] {
    --text-body: #273249;
    --text-muted: #53617a;
    --border: rgba(15, 26, 52, 0.16);
    --border-hover: rgba(204, 76, 0, 0.58);
}

main {
    overflow: clip;
}

main :where(.container, .section-container) {
    width: min(var(--vv-layout-max), calc(100% - (2 * var(--vv-gutter)))) !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
    box-sizing: border-box;
}

main > :where(.section, .section-alt) {
    padding-block: var(--vv-section-space) !important;
}

main > :where(.section-compact, .section-xs, .section-sm) {
    padding-block: var(--vv-section-space-compact) !important;
}

main > :where(.hero, .page-hero, .service-hero, .il-hero):not(.hero-redesigned):not(.hero-cinematic) {
    min-height: 0 !important;
    padding-top: clamp(7rem, 9vw, 8.5rem) !important;
    padding-bottom: clamp(3rem, 5vw, 4.25rem) !important;
}

main > :where(.hero, .page-hero, .service-hero, .il-hero):not(.hero-redesigned):not(.hero-cinematic) > :where(.container, .il-container) {
    max-width: min(960px, calc(100% - (2 * var(--vv-gutter)))) !important;
}

.il-container {
    width: min(var(--vv-layout-max), calc(100% - (2 * var(--vv-gutter)))) !important;
    margin-inline: auto !important;
}

.il-hero {
    text-align: center;
}

.il-hero .il-kicker {
    justify-content: center;
}

.il-hero .il-actions {
    justify-content: center;
}

.il-hero .il-note {
    margin-inline: auto;
    text-align: center;
}

.il-section {
    padding-block: var(--vv-section-space) !important;
}

.il-heading {
    font-size: clamp(1.55rem, 2.8vw, 2.4rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.025em;
    text-wrap: balance;
}

:where(.hero-title, .page-hero .hero-title, .service-hero .hero-title, .service-hero__title, .il-title) {
    max-width: 17ch !important;
    margin-inline: auto !important;
    font-size: clamp(2.15rem, 4.65vw, 4rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.035em !important;
    text-wrap: balance;
    overflow-wrap: normal;
}

:where(.hero-subtitle, .service-hero__subtitle, .il-answer) {
    max-width: var(--vv-copy-max) !important;
    margin-inline: auto !important;
    font-size: clamp(1rem, 0.45vw + 0.92rem, 1.14rem) !important;
    line-height: 1.7 !important;
    text-wrap: pretty;
}

:where(.section-header, .section-head) {
    max-width: 820px !important;
    margin-inline: auto !important;
    margin-bottom: clamp(1.5rem, 3vw, 2.4rem) !important;
}

:where(.section-title, .section-heading) {
    max-width: 24ch !important;
    margin-inline: auto !important;
    font-size: clamp(1.65rem, 3vw, 2.55rem) !important;
    line-height: 1.13 !important;
    letter-spacing: -0.025em !important;
    text-wrap: balance;
}

:where(.section-desc, .section-subtitle, .section-header > p, .section-head > p) {
    max-width: var(--vv-copy-max) !important;
    margin-inline: auto !important;
    font-size: clamp(0.98rem, 0.25vw + 0.93rem, 1.06rem) !important;
    line-height: 1.7 !important;
    text-wrap: pretty;
}

:where(.card, .location-value-card, .country-hub-card, .il-card) p,
:where(.card-text, .service-card-premium p) {
    font-size: max(0.9rem, 14px) !important;
    line-height: 1.65 !important;
}

:where(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid var(--accent) !important;
    outline: 3px solid color-mix(in srgb, var(--accent) 50%, transparent) !important;
    outline-offset: 3px !important;
}

.site-footer {
    background: #050918 !important;
    color: #c7d0e2 !important;
}

.site-footer > .container {
    width: min(var(--vv-layout-max), calc(100% - (2 * var(--vv-gutter)))) !important;
    margin-inline: auto !important;
}

.site-footer .footer-grid {
    grid-template-columns: minmax(280px, 0.95fr) minmax(0, 2.05fr) !important;
    gap: clamp(2rem, 4vw, 4rem) !important;
}

.site-footer .footer-brand {
    max-width: 410px;
}

.site-footer .footer-description {
    max-width: 54ch;
    margin: 0 0 1.15rem;
    color: #c7d0e2;
    font-size: 0.92rem;
    line-height: 1.72;
    text-wrap: pretty;
}

.site-footer .footer-contact {
    margin: 0 0 0.48rem;
    font-size: 0.84rem;
    line-height: 1.5;
}

.site-footer .footer-contact a {
    color: #dce3f0 !important;
    text-decoration: none;
}

.site-footer .footer-contact a:hover {
    color: var(--accent) !important;
}

.site-footer .footer-links-grid {
    gap: clamp(1.5rem, 3vw, 2.5rem) !important;
}

.site-footer .footer-heading,
.site-footer h5 {
    color: #ffffff !important;
    font-size: 0.82rem !important;
    line-height: 1.35 !important;
    letter-spacing: 0.04em;
}

.site-footer .footer-link {
    padding: 0.34rem 0 !important;
    color: #c7d0e2 !important;
    font-size: 0.82rem !important;
    line-height: 1.38 !important;
}

.site-footer .footer-location-link {
    color: #b9c4d8 !important;
    font-size: 0.74rem !important;
    line-height: 1.48 !important;
}

.site-footer .footer-location-grid {
    grid-template-columns: 1.15fr 1.15fr 0.8fr !important;
    gap: clamp(1.4rem, 3vw, 2.5rem) !important;
}

@media (max-width: 1024px) {
    :root { --vv-section-space: clamp(2.75rem, 6vw, 4.25rem); }

    .site-footer .footer-grid,
    .site-footer .footer-location-grid {
        grid-template-columns: 1fr 1fr !important;
    }

    .site-footer .footer-brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 720px) {
    :root {
        --vv-gutter: 1rem;
        --vv-nav-height: 64px;
        --vv-section-space: 2.75rem;
    }

    body { font-size: 1rem; }

    main > :where(.hero, .page-hero, .service-hero, .il-hero):not(.hero-redesigned):not(.hero-cinematic) {
        padding-top: calc(var(--vv-nav-height) + 2.25rem) !important;
        padding-bottom: 2.75rem !important;
    }

    :where(.hero-title, .page-hero .hero-title, .service-hero .hero-title, .service-hero__title, .il-title) {
        max-width: 14ch !important;
        font-size: clamp(2rem, 10vw, 3rem) !important;
        line-height: 1.06 !important;
        letter-spacing: -0.03em !important;
    }

    :where(.hero-subtitle, .service-hero__subtitle, .il-answer) {
        max-width: 34ch !important;
        font-size: 1rem !important;
        line-height: 1.65 !important;
    }

    .site-footer .footer-grid,
    .site-footer .footer-links-grid,
    .site-footer .footer-location-grid {
        grid-template-columns: 1fr !important;
    }

    .site-footer .footer-description {
        font-size: 0.94rem;
    }
}

@media (max-width: 380px) {
    :where(.hero-title, .page-hero .hero-title, .service-hero .hero-title, .service-hero__title, .il-title) {
        font-size: 1.9rem !important;
    }

    .btn,
    button,
    input,
    select,
    textarea {
        max-width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
