.agf-footer,
.agf-footer * {
    box-sizing: border-box;
}

.agf-footer {
    position: relative;
    isolation: isolate;
    width: 100%;
    overflow: hidden;
    margin: 0;
    padding: var(--agf-pad-top, 110px) var(--agf-side-pad, 40px) var(--agf-pad-bottom, 74px);
    background:
        radial-gradient(circle at 78% 18%, rgba(var(--agf-accent-rgb,255,201,79), calc(.06 * var(--agf-intensity, .7))), transparent 31%),
        linear-gradient(135deg, var(--agf-bg-start, #020b16), var(--agf-bg-middle, #06182b) 52%, var(--agf-bg-end, #02070f));
    color: var(--agf-text, #f7f8fa);
    font-family: var(--agf-font, inherit);
    font-size: var(--agf-text-size, 16px);
    line-height: 1.9;
}

.agf-footer::before,
.agf-footer::after,
.agf-effect,
.agf-background-image {
    position: absolute;
    pointer-events: none;
    z-index: -1;
}

.agf-background-image {
    inset: 0;
    background-position: center;
    background-size: cover;
    opacity: var(--agf-image-opacity, .18);
    mix-blend-mode: soft-light;
}

.agf-shell {
    position: relative;
    z-index: 2;
    width: min(100%, var(--agf-max-width, 1500px));
    margin-inline: auto;
}

.agf-grid {
    display: grid;
    grid-template-columns: minmax(300px, 1.35fr) minmax(205px, .85fr) minmax(260px, 1.05fr) minmax(185px, .72fr);
    gap: var(--agf-column-gap, 72px);
    align-items: start;
}

.agf-rtl { direction: rtl; text-align: right; }
.agf-ltr { direction: ltr; text-align: left; }

.agf-brand-head {
    display: flex;
    align-items: center;
    gap: 18px;
}

.agf-logo {
    width: var(--agf-logo-size, 82px);
    height: var(--agf-logo-size, 82px);
    flex: 0 0 var(--agf-logo-size, 82px);
    display: grid;
    place-items: center;
    color: var(--agf-accent-bright, #ffe38a);
    filter: drop-shadow(0 0 11px rgba(var(--agf-bright-rgb,255,227,138), .28));
}

.agf-logo img,
.agf-logo svg {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.agf-brand-name {
    color: var(--agf-text, #f7f8fa);
    font-size: clamp(23px, 2.05vw, var(--agf-brand-size, 32px));
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: -.02em;
}

.agf-tagline {
    margin-top: 5px;
    color: var(--agf-muted, #c3c9d2);
    font-size: .84em;
    line-height: 1.7;
}

.agf-description {
    max-width: 500px;
    margin: 30px 0 0;
    color: var(--agf-muted, #c3c9d2);
    line-height: 2.05;
}

.agf-column h2 {
    margin: 0 0 26px;
    padding: 0;
    color: var(--agf-accent, #ffc94f);
    font: inherit;
    font-size: var(--agf-heading-size, 22px);
    font-weight: 800;
    line-height: 1.5;
    text-shadow: 0 0 16px rgba(var(--agf-accent-rgb,255,201,79), .12);
}

.agf-link-list,
.agf-contact-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.agf-link-list li + li,
.agf-contact-list li + li {
    margin-top: 17px;
}

.agf-link-list a,
.agf-link-list span {
    color: var(--agf-text, #f7f8fa);
    text-decoration: none;
    transition: color .22s ease, text-shadow .22s ease, opacity .22s ease;
}

.agf-link-list a:hover,
.agf-link-list a:focus-visible {
    color: var(--agf-accent-bright, #ffe38a);
    text-shadow: 0 0 15px rgba(var(--agf-bright-rgb,255,227,138), .24);
}

.agf-contact-list li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.agf-contact-icon {
    width: 27px;
    height: 27px;
    flex: 0 0 27px;
    margin-top: 3px;
    color: var(--agf-accent-bright, #ffe38a);
    filter: drop-shadow(0 0 8px rgba(var(--agf-bright-rgb,255,227,138), .30));
}

.agf-contact-icon svg {
    display: block;
    width: 100%;
    height: 100%;
}

.agf-contact-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.agf-contact-copy small {
    margin-bottom: 1px;
    color: var(--agf-muted, #c3c9d2);
    font-size: .76em;
}

.agf-contact-copy a,
.agf-contact-copy > span {
    color: var(--agf-text, #f7f8fa);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.agf-contact-copy a:hover,
.agf-contact-copy a:focus-visible {
    color: var(--agf-accent-bright, #ffe38a);
}

.agf-socials {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 34px;
}

.agf-socials a {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    color: var(--agf-accent-bright, #ffe38a);
    text-decoration: none;
    filter: drop-shadow(0 0 8px rgba(var(--agf-bright-rgb,255,227,138), .30));
    transition: transform .22s ease, color .22s ease, filter .22s ease;
}

.agf-socials a:hover,
.agf-socials a:focus-visible {
    color: #fff7d7;
    transform: translateY(-4px) scale(1.05);
    filter: drop-shadow(0 0 14px rgba(var(--agf-bright-rgb,255,227,138), .55));
}

.agf-socials svg {
    display: block;
    width: 29px;
    height: 29px;
}

.agf-copyright {
    margin-top: clamp(58px, 7vw, 105px);
    color: var(--agf-muted, #c3c9d2);
    text-align: center;
    font-size: .92em;
}

.agf-footer a:focus-visible {
    outline: 2px solid var(--agf-accent-bright, #ffe38a);
    outline-offset: 5px;
    border-radius: 3px;
}

/* Design 1: animated gold waves */
.agf-design-waves::before {
    content: "";
    left: -12%;
    right: -12%;
    bottom: -315px;
    height: 590px;
    opacity: calc(.92 * var(--agf-intensity, .7));
    background:
        radial-gradient(135% 68% at 48% 112%, transparent 57.2%, rgba(var(--agf-bright-rgb,255,227,138), .72) 57.7%, rgba(var(--agf-accent-rgb,255,201,79), .19) 58.5%, transparent 60%),
        radial-gradient(120% 62% at 51% 110%, transparent 62%, rgba(var(--agf-accent-rgb,255,201,79), .35) 62.6%, transparent 64.2%),
        radial-gradient(105% 56% at 47% 107%, transparent 67%, rgba(var(--agf-bright-rgb,255,227,138), .20) 67.5%, transparent 69%);
    filter: blur(.25px) drop-shadow(0 -2px 12px rgba(var(--agf-accent-rgb,255,201,79), .26));
    transform-origin: center bottom;
    animation: agf-wave-flow var(--agf-speed, 18s) ease-in-out infinite alternate;
}

.agf-design-waves::after {
    content: "";
    inset: auto -8% -160px -8%;
    height: 360px;
    opacity: calc(.50 * var(--agf-intensity, .7));
    background:
        radial-gradient(circle at 7% 70%, rgba(var(--agf-bright-rgb,255,227,138), .48) 0 1px, transparent 2px) 0 0 / 17px 17px,
        radial-gradient(circle at 89% 48%, rgba(var(--agf-accent-rgb,255,201,79), .34) 0 1px, transparent 2px) 0 0 / 23px 23px;
    mask-image: linear-gradient(to top, #000, transparent 85%);
    animation: agf-particles calc(var(--agf-speed, 18s) * 1.35) linear infinite;
}

.agf-design-waves .agf-effect-one {
    width: 520px;
    height: 520px;
    top: -300px;
    right: -160px;
    border-radius: 50%;
    opacity: calc(.34 * var(--agf-intensity, .7));
    background: radial-gradient(circle, rgba(var(--agf-accent-rgb,255,201,79), .25), transparent 68%);
    filter: blur(18px);
    animation: agf-drift var(--agf-speed, 18s) ease-in-out infinite alternate;
}

/* Design 2: aurora */
.agf-design-aurora::before {
    content: "";
    inset: -45%;
    opacity: calc(.78 * var(--agf-intensity, .7));
    background:
        radial-gradient(ellipse at 27% 45%, rgba(var(--agf-accent-rgb,255,201,79), .28), transparent 34%),
        radial-gradient(ellipse at 72% 62%, rgba(var(--agf-bright-rgb,255,227,138), .20), transparent 31%),
        conic-gradient(from 180deg at 50% 50%, transparent, rgba(var(--agf-accent-rgb,255,201,79), .10), transparent 36%, rgba(25,73,116,.28), transparent 72%);
    filter: blur(45px) saturate(120%);
    animation: agf-aurora calc(var(--agf-speed, 18s) * 1.25) ease-in-out infinite alternate;
}

.agf-design-aurora::after {
    content: "";
    inset: 0;
    opacity: calc(.24 * var(--agf-intensity, .7));
    background-image: radial-gradient(rgba(var(--agf-bright-rgb,255,227,138), .4) 0.65px, transparent .8px);
    background-size: 22px 22px;
    mask-image: linear-gradient(to bottom, transparent, #000 45%, transparent);
    animation: agf-stars calc(var(--agf-speed, 18s) * 2) linear infinite;
}

.agf-design-aurora .agf-effect-one,
.agf-design-aurora .agf-effect-two {
    width: 36vw;
    height: 36vw;
    min-width: 360px;
    min-height: 360px;
    border-radius: 50%;
    filter: blur(70px);
    opacity: calc(.18 * var(--agf-intensity, .7));
}
.agf-design-aurora .agf-effect-one { top: -18%; left: -8%; background: var(--agf-accent); animation: agf-orb-one var(--agf-speed, 18s) ease-in-out infinite alternate; }
.agf-design-aurora .agf-effect-two { bottom: -35%; right: -4%; background: #195083; animation: agf-orb-two calc(var(--agf-speed, 18s) * 1.2) ease-in-out infinite alternate; }

/* Design 3: moving light mesh */
.agf-design-mesh::before {
    content: "";
    inset: -40%;
    opacity: calc(.34 * var(--agf-intensity, .7));
    background-image:
        linear-gradient(118deg, transparent 45%, rgba(var(--agf-bright-rgb,255,227,138), .14) 49.5%, transparent 54%),
        linear-gradient(28deg, transparent 46%, rgba(var(--agf-accent-rgb,255,201,79), .09) 50%, transparent 54%);
    background-size: 280px 280px, 220px 220px;
    transform: rotate(-6deg);
    mask-image: radial-gradient(ellipse at center, #000 20%, transparent 74%);
    animation: agf-mesh calc(var(--agf-speed, 18s) * 1.55) linear infinite;
}

.agf-design-mesh::after {
    content: "";
    inset: 0;
    opacity: calc(.85 * var(--agf-intensity, .7));
    background:
        linear-gradient(105deg, transparent 12%, rgba(var(--agf-accent-rgb,255,201,79), .03) 38%, rgba(var(--agf-bright-rgb,255,227,138), .22) 49.5%, rgba(var(--agf-accent-rgb,255,201,79), .04) 61%, transparent 87%);
    filter: blur(10px);
    transform: translateX(-70%);
    animation: agf-light-sweep calc(var(--agf-speed, 18s) * 1.05) ease-in-out infinite;
}

.agf-design-mesh .agf-effect-one {
    inset: auto -10% -55% -10%;
    height: 70%;
    opacity: calc(.45 * var(--agf-intensity, .7));
    background: radial-gradient(ellipse at center, rgba(var(--agf-accent-rgb,255,201,79), .30), transparent 68%);
    filter: blur(55px);
    animation: agf-breathe var(--agf-speed, 18s) ease-in-out infinite alternate;
}

@keyframes agf-wave-flow {
    0% { transform: translate3d(-2.5%, 6px, 0) scaleX(1.02) rotate(-.4deg); }
    50% { transform: translate3d(1.8%, -7px, 0) scaleX(1.045) rotate(.25deg); }
    100% { transform: translate3d(4%, 2px, 0) scaleX(1.01) rotate(.55deg); }
}
@keyframes agf-particles { to { transform: translate3d(70px, -12px, 0); } }
@keyframes agf-drift { to { transform: translate3d(-85px, 70px, 0) scale(1.15); } }
@keyframes agf-aurora { to { transform: translate3d(7%, -5%, 0) rotate(13deg) scale(1.08); } }
@keyframes agf-stars { to { background-position: 75px -50px; } }
@keyframes agf-orb-one { to { transform: translate3d(40%, 20%, 0) scale(1.18); } }
@keyframes agf-orb-two { to { transform: translate3d(-35%, -22%, 0) scale(.88); } }
@keyframes agf-mesh { to { background-position: 560px 280px, -440px 220px; } }
@keyframes agf-light-sweep { 0%, 15% { transform: translateX(-80%); opacity: 0; } 48% { opacity: calc(.85 * var(--agf-intensity, .7)); } 85%, 100% { transform: translateX(80%); opacity: 0; } }
@keyframes agf-breathe { to { transform: scale(1.22) translateY(-8%); } }

@media (max-width: 1180px) {
    .agf-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 56px 64px;
    }
    .agf-brand { grid-column: span 2; }
    .agf-description { max-width: 650px; }
}

@media (max-width: 720px) {
    .agf-footer {
        padding: clamp(44px, 10vw, 62px) 16px 32px;
        font-size: clamp(12.5px, 3.45vw, 14px);
        line-height: 1.72;
    }

    /* Compact mobile composition: brand full width, products + quick links in one row,
       then contact information in a compact two-column list. */
    .agf-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 30px 16px;
        align-items: start;
    }

    .agf-brand {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .agf-products {
        grid-column: 1;
        grid-row: 2;
    }

    .agf-quick {
        grid-column: 2;
        grid-row: 2;
    }

    .agf-contact {
        grid-column: 1 / -1;
        grid-row: 3;
    }

    .agf-grid:not(:has(.agf-quick)) .agf-products,
    .agf-grid:not(:has(.agf-products)) .agf-quick {
        grid-column: 1 / -1;
    }

    .agf-brand-head {
        align-items: center;
        gap: 12px;
    }

    /* Force a visibly larger logo on mobile, independent of the desktop setting. */
    .agf-footer .agf-logo {
        width: 104px !important;
        height: 104px !important;
        flex: 0 0 104px !important;
        max-width: 104px !important;
    }

    .agf-brand-name {
        font-size: clamp(20px, 5.8vw, 25px);
        line-height: 1.28;
    }

    .agf-tagline {
        margin-top: 2px;
        font-size: .78em;
        line-height: 1.5;
    }

    .agf-description {
        max-width: none;
        margin-top: 14px;
        line-height: 1.78;
    }

    .agf-column {
        min-width: 0;
    }

    .agf-column h2 {
        margin-bottom: 12px;
        font-size: clamp(15px, 4.15vw, 17px);
        line-height: 1.4;
    }

    .agf-link-list {
        font-size: .93em;
        line-height: 1.55;
    }

    .agf-link-list li + li {
        margin-top: 8px;
    }

    .agf-link-list a,
    .agf-link-list span {
        display: inline-block;
        overflow-wrap: anywhere;
    }

    /* Mobile contacts are always a single vertical column. */
    .agf-contact-list {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch;
        gap: 12px;
    }

    .agf-contact-list li,
    .agf-contact-list li + li,
    .agf-contact-list .agf-contact-phone,
    .agf-contact-list .agf-contact-email,
    .agf-contact-list .agf-contact-clock,
    .agf-contact-list .agf-contact-pin,
    .agf-contact-list .agf-contact-text,
    .agf-contact-list .agf-contact-website,
    .agf-contact-list .agf-contact-whatsapp {
        width: 100%;
        grid-column: auto !important;
        order: initial !important;
        margin-top: 0;
    }

    .agf-contact-list li {
        display: flex;
        align-items: flex-start;
        gap: 9px;
    }

    .agf-contact-icon {
        width: 22px;
        height: 22px;
        flex-basis: 22px;
        margin-top: 1px;
    }

    .agf-contact-copy small {
        font-size: .72em;
    }

    .agf-contact-email .agf-contact-copy a,
    .agf-contact-email .agf-contact-copy > span {
        font-size: .92em;
        overflow-wrap: normal;
        word-break: keep-all;
        white-space: nowrap;
    }

    .agf-socials {
        gap: 15px;
        margin-top: 18px;
    }

    .agf-socials a {
        width: 30px;
        height: 30px;
    }

    .agf-socials svg {
        width: 25px;
        height: 25px;
    }

    .agf-copyright {
        margin-top: 32px;
        font-size: .82em;
        line-height: 1.7;
    }

    .agf-design-waves::before {
        bottom: -375px;
        height: 540px;
        left: -70%;
        right: -70%;
    }
}

@media (max-width: 430px) {
    .agf-footer {
        padding: 40px 13px 27px;
        font-size: 12.5px;
    }

    .agf-grid {
        gap: 26px 11px;
    }

    .agf-brand-head {
        gap: 10px;
    }

    .agf-footer .agf-logo {
        width: 94px !important;
        height: 94px !important;
        flex: 0 0 94px !important;
        max-width: 94px !important;
    }

    .agf-brand-name {
        font-size: 20px;
    }

    .agf-column h2 {
        margin-bottom: 10px;
        font-size: 14.5px;
    }

    .agf-link-list {
        font-size: .9em;
    }

    .agf-link-list li + li {
        margin-top: 7px;
    }

    .agf-contact-list {
        gap: 10px;
    }

    .agf-contact-icon {
        width: 20px;
        height: 20px;
        flex-basis: 20px;
    }

    .agf-description {
        margin-top: 12px;
    }

    .agf-socials {
        gap: 13px;
        margin-top: 16px;
    }

    .agf-copyright {
        margin-top: 27px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .agf-footer::before,
    .agf-footer::after,
    .agf-effect,
    .agf-socials a {
        animation: none !important;
        transition-duration: .01ms !important;
    }
}
