.elementor-48 .elementor-element.elementor-element-74bc054{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--overlay-opacity:0.03;--padding-top:60px;--padding-bottom:46px;--padding-left:0px;--padding-right:0px;}.elementor-48 .elementor-element.elementor-element-74bc054:not(.elementor-motion-effects-element-type-background), .elementor-48 .elementor-element.elementor-element-74bc054 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#EAEEDB;}.elementor-48 .elementor-element.elementor-element-74bc054::before, .elementor-48 .elementor-element.elementor-element-74bc054 > .elementor-background-video-container::before, .elementor-48 .elementor-element.elementor-element-74bc054 > .e-con-inner > .elementor-background-video-container::before, .elementor-48 .elementor-element.elementor-element-74bc054 > .elementor-background-slideshow::before, .elementor-48 .elementor-element.elementor-element-74bc054 > .e-con-inner > .elementor-background-slideshow::before, .elementor-48 .elementor-element.elementor-element-74bc054 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-48 .elementor-element.elementor-element-59119d67{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:80px 80px;--row-gap:80px;--column-gap:80px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-48 .elementor-element.elementor-element-7c2ff338{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-48 .elementor-element.elementor-element-39f38475{--display:flex;--justify-content:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-48 .elementor-element.elementor-element-c8640f6{text-align:center;}.elementor-48 .elementor-element.elementor-element-c8640f6 img{width:63%;max-width:100%;height:104px;object-fit:cover;object-position:center center;}.elementor-48 .elementor-element.elementor-element-9fbeb92{--grid-template-columns:repeat(0, auto);text-align:center;--icon-size:15px;--grid-column-gap:5px;--grid-row-gap:0px;}.elementor-48 .elementor-element.elementor-element-9fbeb92 .elementor-social-icon{background-color:var( --e-global-color-e07e73f );}.elementor-48 .elementor-element.elementor-element-7707879d{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-48 .elementor-element.elementor-element-17971300{text-align:start;}.elementor-48 .elementor-element.elementor-element-17971300 .elementor-heading-title{font-family:"Manrope", Sans-serif;font-size:1.3em;font-weight:500;text-transform:capitalize;line-height:1.1em;color:var( --e-global-color-accent );}.elementor-48 .elementor-element.elementor-element-1a24d289 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(20px/2);}.elementor-48 .elementor-element.elementor-element-1a24d289 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(20px/2);}.elementor-48 .elementor-element.elementor-element-1a24d289 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(20px/2);}.elementor-48 .elementor-element.elementor-element-1a24d289 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-20px/2);}.elementor-48 .elementor-element.elementor-element-1a24d289 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-20px/2);}.elementor-48 .elementor-element.elementor-element-1a24d289 .elementor-icon-list-icon i{color:var( --e-global-color-e07e73f );transition:color 0.3s;}.elementor-48 .elementor-element.elementor-element-1a24d289 .elementor-icon-list-icon svg{fill:var( --e-global-color-e07e73f );transition:fill 0.3s;}.elementor-48 .elementor-element.elementor-element-1a24d289{--e-icon-list-icon-size:16px;--icon-vertical-offset:0px;}.elementor-48 .elementor-element.elementor-element-1a24d289 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-48 .elementor-element.elementor-element-1a24d289 .elementor-icon-list-item > a{font-family:"Manrope", Sans-serif;font-weight:400;letter-spacing:0.03em;}.elementor-48 .elementor-element.elementor-element-1a24d289 .elementor-icon-list-text{color:var( --e-global-color-accent );transition:color 0.3s;}.elementor-48 .elementor-element.elementor-element-1a24d289 .elementor-icon-list-item:hover .elementor-icon-list-text{color:var( --e-global-color-2c95f12 );}.elementor-48 .elementor-element.elementor-element-9cde5c0{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-48 .elementor-element.elementor-element-75a03af1{text-align:start;}.elementor-48 .elementor-element.elementor-element-75a03af1 .elementor-heading-title{font-family:"Manrope", Sans-serif;font-size:1.3em;font-weight:500;text-transform:capitalize;line-height:1.1em;color:var( --e-global-color-e07e73f );}.elementor-48 .elementor-element.elementor-element-34898d66 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(15px/2);}.elementor-48 .elementor-element.elementor-element-34898d66 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(15px/2);}.elementor-48 .elementor-element.elementor-element-34898d66 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(15px/2);}.elementor-48 .elementor-element.elementor-element-34898d66 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-15px/2);}.elementor-48 .elementor-element.elementor-element-34898d66 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-15px/2);}.elementor-48 .elementor-element.elementor-element-34898d66 .elementor-icon-list-icon i{color:var( --e-global-color-e07e73f );transition:color 0.3s;}.elementor-48 .elementor-element.elementor-element-34898d66 .elementor-icon-list-icon svg{fill:var( --e-global-color-e07e73f );transition:fill 0.3s;}.elementor-48 .elementor-element.elementor-element-34898d66{--e-icon-list-icon-size:18px;--icon-vertical-offset:0px;}.elementor-48 .elementor-element.elementor-element-34898d66 .elementor-icon-list-icon{padding-inline-end:4px;}.elementor-48 .elementor-element.elementor-element-34898d66 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-48 .elementor-element.elementor-element-34898d66 .elementor-icon-list-item > a{font-family:"Manrope", Sans-serif;font-size:15px;font-weight:400;letter-spacing:0.03em;}.elementor-48 .elementor-element.elementor-element-34898d66 .elementor-icon-list-text{color:var( --e-global-color-e07e73f );transition:color 0.3s;}.elementor-48 .elementor-element.elementor-element-34898d66 .elementor-icon-list-item:hover .elementor-icon-list-text{color:var( --e-global-color-2c95f12 );}.elementor-48 .elementor-element.elementor-element-0631cc1{margin:-20px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 10px;--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-48 .elementor-element.elementor-element-0631cc1 .elementor-icon-list-icon i{color:var( --e-global-color-84ef0d9 );transition:color 0.3s;}.elementor-48 .elementor-element.elementor-element-0631cc1 .elementor-icon-list-icon svg{fill:var( --e-global-color-84ef0d9 );transition:fill 0.3s;}.elementor-48 .elementor-element.elementor-element-0631cc1 .elementor-icon-list-icon{padding-inline-end:0px;}.elementor-48 .elementor-element.elementor-element-0631cc1 .elementor-icon-list-text{color:var( --e-global-color-accent );transition:color 0.3s;}.elementor-48 .elementor-element.elementor-element-2e8b7e0{--display:flex;--justify-content:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-48 .elementor-element.elementor-element-873e54a{text-align:start;}.elementor-48 .elementor-element.elementor-element-873e54a .elementor-heading-title{font-family:"Manrope", Sans-serif;font-size:1.3em;font-weight:500;text-transform:capitalize;line-height:1.1em;color:var( --e-global-color-e07e73f );}.elementor-48 .elementor-element.elementor-element-f4504aa img{width:65%;}.elementor-48 .elementor-element.elementor-element-6cdae283{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:flex-end;--margin-top:42px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-48 .elementor-element.elementor-element-4697e594{width:var( --container-widget-width, 60% );max-width:60%;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;--container-widget-width:60%;--container-widget-flex-grow:0;text-align:start;font-family:"Manrope", Sans-serif;font-size:13px;font-weight:400;letter-spacing:0.03em;color:var( --e-global-color-2c95f12 );}.elementor-48 .elementor-element.elementor-element-4697e594 a{color:var( --e-global-color-accent );}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(20px/2);}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(20px/2);}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(20px/2);}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-20px/2);}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-20px/2);}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-item:not(:last-child):after{content:"";height:47%;border-color:#ddd;}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child):after{border-block-start-style:solid;border-block-start-width:1px;}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-style:solid;}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-width:1px;}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-icon i{color:var( --e-global-color-accent );transition:color 0.3s;}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-icon svg{fill:var( --e-global-color-accent );transition:fill 0.3s;}.elementor-48 .elementor-element.elementor-element-a22e1df{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-item > .elementor-icon-list-text, .elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-item > a{font-size:14px;}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-text{color:var( --e-global-color-e07e73f );transition:color 0.3s;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(max-width:1024px){.elementor-48 .elementor-element.elementor-element-74bc054{--padding-top:100px;--padding-bottom:46px;--padding-left:30px;--padding-right:30px;}.elementor-48 .elementor-element.elementor-element-59119d67{--gap:40px 40px;--row-gap:40px;--column-gap:40px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-48 .elementor-element.elementor-element-4697e594{--container-widget-width:43%;--container-widget-flex-grow:0;width:var( --container-widget-width, 43% );max-width:43%;}}@media(max-width:767px){.elementor-48 .elementor-element.elementor-element-74bc054{--padding-top:50px;--padding-bottom:30px;--padding-left:20px;--padding-right:20px;}.elementor-48 .elementor-element.elementor-element-7c2ff338{--gap:30px 30px;--row-gap:30px;--column-gap:30px;}.elementor-48 .elementor-element.elementor-element-17971300{text-align:start;}.elementor-48 .elementor-element.elementor-element-75a03af1{text-align:start;}.elementor-48 .elementor-element.elementor-element-0631cc1 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-48 .elementor-element.elementor-element-0631cc1 .elementor-icon-list-item > a{font-size:16px;}.elementor-48 .elementor-element.elementor-element-873e54a{text-align:start;}.elementor-48 .elementor-element.elementor-element-f4504aa img{width:29%;}.elementor-48 .elementor-element.elementor-element-6cdae283{--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--margin-top:10px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-48 .elementor-element.elementor-element-4697e594{width:100%;max-width:100%;text-align:center;font-size:14px;line-height:1.8em;letter-spacing:0em;}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(14px/2);}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(14px/2);}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(14px/2);}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-14px/2);}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-14px/2);}.elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-item > .elementor-icon-list-text, .elementor-48 .elementor-element.elementor-element-a22e1df .elementor-icon-list-item > a{font-size:13px;}}@media(min-width:768px){.elementor-48 .elementor-element.elementor-element-74bc054{--content-width:1328px;}.elementor-48 .elementor-element.elementor-element-39f38475{--width:100%;}.elementor-48 .elementor-element.elementor-element-7707879d{--width:100%;}.elementor-48 .elementor-element.elementor-element-9cde5c0{--width:100%;}.elementor-48 .elementor-element.elementor-element-2e8b7e0{--width:63%;}}@media(max-width:1024px) and (min-width:768px){.elementor-48 .elementor-element.elementor-element-7707879d{--width:77%;}}/* Start custom CSS for container, class: .elementor-element-74bc054 *//* =========================================================
   TIMBERSTONE – PREMIUM COLOURFUL MODERN FOOTER
   Desktop + Tablet + Mobile
   Logo size: 20px
========================================================= */

:root {
    --ts-green: #1f6339;
    --ts-green-dark: #103f27;
    --ts-green-deep: #082f1d;
    --ts-green-light: #4d9164;

    --ts-olive: #81945f;
    --ts-sage: #b9c79f;

    --ts-beige: #c9c39a;
    --ts-beige-light: #eeeacd;
    --ts-gold: #d8bd69;

    --ts-cream: #faf8ed;
    --ts-cream-2: #f4f1df;

    --ts-white: #ffffff;
    --ts-text: #294536;
    --ts-muted: #68766d;
}


/* =========================================================
   MAIN FOOTER
========================================================= */

.ts-footer {
    position: relative;
    overflow: hidden;
    isolation: isolate;

    border-top: 1px solid rgba(31, 99, 57, 0.18);
    border-bottom: 1px solid rgba(31, 99, 57, 0.10);

    background:
        radial-gradient(
            circle at 5% 15%,
            rgba(216, 189, 105, 0.20),
            transparent 26%
        ),
        radial-gradient(
            circle at 92% 12%,
            rgba(77, 145, 100, 0.22),
            transparent 28%
        ),
        radial-gradient(
            circle at 88% 90%,
            rgba(201, 195, 154, 0.28),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #f8f4e2 0%,
            #eff4df 30%,
            #e6efdf 60%,
            #dcebdd 100%
        ) !important;

    box-shadow:
        0 -20px 55px rgba(16, 63, 39, 0.12),
        inset 0 1px 0 rgba(255,255,255,0.90);
}


/* Premium top gradient */
.ts-footer::before {
    content: "";
    position: absolute;

    top: 0;
    left: 4%;
    right: 4%;

    height: 5px;

    border-radius: 0 0 40px 40px;

    background:
        linear-gradient(
            90deg,
            var(--ts-green-deep) 0%,
            var(--ts-green) 20%,
            var(--ts-green-light) 40%,
            var(--ts-gold) 60%,
            var(--ts-beige-light) 78%,
            var(--ts-green) 100%
        );

    box-shadow:
        0 5px 20px rgba(16,63,39,0.22);

    z-index: 10;
}


/* Decorative large circle */
.ts-footer::after {
    content: "";

    position: absolute;

    width: 430px;
    height: 430px;

    right: -250px;
    bottom: -280px;

    border-radius: 50%;

    border: 78px solid rgba(31,99,57,0.05);

    box-shadow:
        0 0 0 40px rgba(201,195,154,0.06),
        0 0 0 80px rgba(77,145,100,0.025);

    pointer-events: none;
    z-index: 0;
}


/* Keep Elementor content visible */
.ts-footer .elementor-container,
.ts-footer .e-con-inner,
.ts-footer .elementor-column,
.ts-footer .elementor-widget-wrap,
.ts-footer .elementor-element {
    position: relative;
    z-index: 2;
}


/* =========================================================
   FOOTER MAIN COLUMNS
========================================================= */

.ts-footer-brand,
.ts-footer-links,
.ts-footer-contact {
    position: relative;

    height: 100%;

    overflow: hidden;
    isolation: isolate;

    border: 1px solid rgba(31,99,57,0.15);
    border-radius: 24px;

    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(216,189,105,0.16),
            transparent 28%
        ),
        linear-gradient(
            145deg,
            rgba(255,255,255,0.88) 0%,
            rgba(250,248,237,0.84) 52%,
            rgba(229,241,231,0.86) 100%
        );

    box-shadow:
        0 16px 38px rgba(16,63,39,0.10),
        inset 0 1px 0 rgba(255,255,255,0.95);

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    transition:
        transform .4s ease,
        box-shadow .4s ease,
        border-color .4s ease;
}


/* Card accent */
.ts-footer-brand::before,
.ts-footer-links::before,
.ts-footer-contact::before {
    content: "";

    position: absolute;

    top: 0;
    left: 14%;
    right: 14%;

    height: 4px;

    border-radius: 0 0 20px 20px;

    background:
        linear-gradient(
            90deg,
            var(--ts-green-dark),
            var(--ts-green-light),
            var(--ts-gold),
            var(--ts-beige)
        );

    z-index: 4;

    transition:
        left .4s ease,
        right .4s ease;
}


/* Decorative circle */
.ts-footer-brand::after,
.ts-footer-links::after,
.ts-footer-contact::after {
    content: "";

    position: absolute;

    width: 150px;
    height: 150px;

    right: -90px;
    bottom: -95px;

    border-radius: 50%;

    border: 30px solid rgba(31,99,57,0.04);

    box-shadow:
        0 0 0 16px rgba(201,195,154,0.04);

    z-index: 0;

    pointer-events: none;
}


/* Hover */
.ts-footer-brand:hover,
.ts-footer-links:hover,
.ts-footer-contact:hover {
    transform: translateY(-8px);

    border-color: rgba(31,99,57,0.28);

    box-shadow:
        0 28px 55px rgba(16,63,39,0.16),
        0 0 0 1px rgba(216,189,105,0.12);
}

.ts-footer-brand:hover::before,
.ts-footer-links:hover::before,
.ts-footer-contact:hover::before {
    left: 0;
    right: 0;
}


/* Keep inner widgets above decoration */
.ts-footer-brand .elementor-widget,
.ts-footer-links .elementor-widget,
.ts-footer-contact .elementor-widget {
    position: relative;
    z-index: 3;
}


/* =========================================================
   BRAND / LOGO COLUMN
========================================================= */

.ts-footer-brand {
    text-align: center;

    background:
        radial-gradient(
            circle at 50% 0%,
            rgba(216,189,105,0.16),
            transparent 32%
        ),
        linear-gradient(
            145deg,
            rgba(255,255,255,0.94),
            rgba(242,247,232,0.90)
        );
}


/* LOGO EXACT 20PX */
.ts-footer-brand .elementor-widget-image,
.ts-footer-brand .elementor-widget-image .elementor-widget-container,
.ts-footer-brand .elementor-widget-image a {
    text-align: center !important;
}

.ts-footer-brand .elementor-widget-image img {
    display: inline-block !important;

    width: 20px !important;
    min-width: 20px !important;
    max-width: 20px !important;

    height: auto !important;
    max-height: none !important;

    object-fit: contain !important;

    opacity: 1 !important;
    visibility: visible !important;

    filter:
        drop-shadow(
            0 5px 10px rgba(16,63,39,0.18)
        ) !important;

    transition:
        transform .35s ease,
        filter .35s ease;
}

.ts-footer-brand:hover .elementor-widget-image img {
    width: 20px !important;
    min-width: 20px !important;
    max-width: 20px !important;

    transform:
        translateY(-2px)
        scale(1.08);

    filter:
        drop-shadow(
            0 8px 15px rgba(16,63,39,0.25)
        ) !important;
}


/* Brand text */
.ts-footer-brand p,
.ts-footer-brand .elementor-widget-text-editor,
.ts-footer-brand .elementor-widget-text-editor p {
    color: var(--ts-text) !important;

    font-size: 14px;
    line-height: 1.75;
}


/* =========================================================
   FOOTER TITLES
========================================================= */

.ts-footer-links h2,
.ts-footer-links h3,
.ts-footer-links h4,
.ts-footer-links .elementor-heading-title,

.ts-footer-contact h2,
.ts-footer-contact h3,
.ts-footer-contact h4,
.ts-footer-contact .elementor-heading-title {
    position: relative;

    color: var(--ts-green-dark) !important;

    font-size: 23px !important;
    font-weight: 750 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.025em !important;
}


/* Underline */
.ts-footer-links h2::after,
.ts-footer-links h3::after,
.ts-footer-links h4::after,
.ts-footer-links .elementor-heading-title::after,

.ts-footer-contact h2::after,
.ts-footer-contact h3::after,
.ts-footer-contact h4::after,
.ts-footer-contact .elementor-heading-title::after {
    content: "";

    display: block;

    width: 48px;
    height: 4px;

    margin-top: 10px;

    border-radius: 30px;

    background:
        linear-gradient(
            90deg,
            var(--ts-green),
            var(--ts-green-light),
            var(--ts-gold)
        );

    box-shadow:
        0 4px 10px rgba(31,99,57,0.12);

    transition:
        width .35s ease;
}

.ts-footer-links:hover .elementor-heading-title::after,
.ts-footer-contact:hover .elementor-heading-title::after {
    width: 78px;
}


/* =========================================================
   QUICK LINKS
========================================================= */

.ts-footer-links ul,
.ts-footer-links .elementor-icon-list-items {
    list-style: none !important;

    margin: 0 !important;
    padding: 0 !important;
}


.ts-footer-links li,
.ts-footer-links .elementor-icon-list-item {
    position: relative;

    border-bottom:
        1px solid rgba(31,99,57,0.09);

    transition:
        transform .3s ease,
        border-color .3s ease,
        background .3s ease;
}


.ts-footer-links li:last-child,
.ts-footer-links .elementor-icon-list-item:last-child {
    border-bottom: 0;
}


/* Link */
.ts-footer-links a,
.ts-footer-links .elementor-icon-list-text {
    display: inline-flex;

    align-items: center;

    gap: 10px;

    color: var(--ts-text) !important;

    font-size: 15px;
    font-weight: 600;

    text-decoration: none !important;

    transition:
        color .3s ease,
        transform .3s ease;
}


/* Custom link icon */
.ts-footer-links a::before {
    content: "›";

    width: 24px;
    height: 24px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 24px;

    border: 1px solid rgba(31,99,57,0.14);

    border-radius: 8px;

    color: #ffffff;

    background:
        linear-gradient(
            145deg,
            var(--ts-green-light),
            var(--ts-green-dark)
        );

    box-shadow:
        0 6px 13px rgba(16,63,39,0.18);

    font-size: 18px;
    line-height: 1;

    transition:
        transform .3s ease,
        background .3s ease,
        box-shadow .3s ease;
}


.ts-footer-links li:hover,
.ts-footer-links .elementor-icon-list-item:hover {
    transform: translateX(6px);

    border-color: rgba(31,99,57,0.16);
}


.ts-footer-links a:hover,
.ts-footer-links a:hover .elementor-icon-list-text {
    color: var(--ts-green) !important;
}


.ts-footer-links a:hover::before {
    transform: translateX(3px);

    background:
        linear-gradient(
            145deg,
            var(--ts-gold),
            var(--ts-green)
        );

    box-shadow:
        0 8px 16px rgba(16,63,39,0.24);
}


/* Hide Elementor duplicate icon */
.ts-footer-links .elementor-icon-list-icon {
    display: none !important;
}


/* =========================================================
   CONTACT DETAILS
========================================================= */

.ts-footer-contact .elementor-icon-list-items {
    margin: 0 !important;
    padding: 0 !important;
}


.ts-footer-contact .elementor-icon-list-item {
    position: relative;

    display: flex;

    align-items: center;

    border-bottom:
        1px solid rgba(31,99,57,0.09);

    transition:
        transform .3s ease,
        border-color .3s ease;
}


.ts-footer-contact .elementor-icon-list-item:last-child {
    border-bottom: none;
}


.ts-footer-contact .elementor-icon-list-item:hover {
    transform: translateX(6px);

    border-color:
        rgba(31,99,57,0.16);
}


/* Contact icon */
.ts-footer-contact .elementor-icon-list-icon {
    width: 42px;
    height: 42px;
    min-width: 42px;

    display: inline-flex !important;

    align-items: center;
    justify-content: center;

    border:
        1px solid rgba(31,99,57,0.16);

    border-radius: 13px;

    color: #ffffff !important;

    background:
        linear-gradient(
            145deg,
            var(--ts-green-light),
            var(--ts-green-dark)
        );

    box-shadow:
        0 9px 20px rgba(16,63,39,0.21),
        inset 0 1px 0 rgba(255,255,255,0.20);

    transition:
        transform .3s ease,
        background .3s ease,
        box-shadow .3s ease;
}


.ts-footer-contact
.elementor-icon-list-item:hover
.elementor-icon-list-icon {
    transform:
        rotate(-5deg)
        scale(1.06);

    background:
        linear-gradient(
            145deg,
            var(--ts-gold),
            var(--ts-green)
        );

    box-shadow:
        0 13px 25px rgba(16,63,39,0.28),
        0 0 0 4px rgba(216,189,105,0.15);
}


.ts-footer-contact .elementor-icon-list-icon i,
.ts-footer-contact .elementor-icon-list-icon svg {
    color: #ffffff !important;
    fill: #ffffff !important;
}


/* Contact text */
.ts-footer-contact .elementor-icon-list-text,
.ts-footer-contact a,
.ts-footer-contact p {
    color: var(--ts-text) !important;

    font-size: 15px;
    line-height: 1.65;

    text-decoration: none !important;

    transition:
        color .3s ease;
}


.ts-footer-contact a:hover,
.ts-footer-contact a:hover .elementor-icon-list-text {
    color: var(--ts-green) !important;
}


/* =========================================================
   SOCIAL ICONS
========================================================= */

.ts-footer-brand .elementor-social-icons-wrapper {
    display: flex;

    align-items: center;
    justify-content: center;

    flex-wrap: wrap;

    gap: 10px;
}


/* Social buttons */
.ts-footer-brand .elementor-social-icon {
    width: 43px !important;
    height: 43px !important;

    display: inline-flex !important;

    align-items: center;
    justify-content: center;

    border:
        1px solid rgba(255,255,255,0.30) !important;

    border-radius:
        14px !important;

    color:
        #ffffff !important;

    box-shadow:
        0 9px 20px rgba(16,63,39,0.18),
        inset 0 1px 0 rgba(255,255,255,0.22);

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        filter .3s ease;
}


.ts-footer-brand .elementor-social-icon:hover {
    transform:
        translateY(-5px)
        rotate(-4deg);

    box-shadow:
        0 14px 26px rgba(16,63,39,0.28),
        0 0 0 4px rgba(216,189,105,0.14);

    filter:
        brightness(1.08);
}


/* Facebook */
.ts-footer-brand
.elementor-social-icon-facebook-f,
.ts-footer-brand
.elementor-social-icon-facebook {
    background:
        linear-gradient(
            145deg,
            #5475c7,
            #23478f
        ) !important;
}


/* Instagram */
.ts-footer-brand
.elementor-social-icon-instagram {
    background:
        linear-gradient(
            145deg,
            #dd2a7b,
            #8134af,
            #515bd4
        ) !important;
}


/* YouTube */
.ts-footer-brand
.elementor-social-icon-youtube {
    background:
        linear-gradient(
            145deg,
            #f13b3b,
            #b31217
        ) !important;
}


/* X / Twitter */
.ts-footer-brand
.elementor-social-icon-x-twitter,
.ts-footer-brand
.elementor-social-icon-twitter {
    background:
        linear-gradient(
            145deg,
            #333333,
            #090909
        ) !important;
}


/* Icons visible */
.ts-footer-brand .elementor-social-icon i,
.ts-footer-brand .elementor-social-icon svg {
    color: #ffffff !important;
    fill: #ffffff !important;
}


/* =========================================================
   BOTTOM FOOTER ROW
========================================================= */

.ts-footer-bottom {
    position: relative;

    overflow: hidden;

    border:
        1px solid rgba(31,99,57,0.12);

    border-radius:
        18px;

    background:
        linear-gradient(
            90deg,
            rgba(255,255,255,0.70),
            rgba(238,234,205,0.48),
            rgba(225,239,228,0.72),
            rgba(255,255,255,0.70)
        );

    box-shadow:
        0 10px 25px rgba(16,63,39,0.065),
        inset 0 1px 0 rgba(255,255,255,0.90);
}


/* Top accent */
.ts-footer-bottom::before {
    content: "";

    position: absolute;

    top: 0;
    left: 14%;
    right: 14%;

    height: 3px;

    background:
        linear-gradient(
            90deg,
            transparent,
            var(--ts-green),
            var(--ts-gold),
            var(--ts-beige),
            transparent
        );
}


/* Copyright */
.ts-footer-bottom p,
.ts-footer-bottom .elementor-widget-text-editor,
.ts-footer-bottom .elementor-widget-text-editor p {
    color:
        var(--ts-text) !important;

    font-size:
        13px;

    line-height:
        1.65;
}


/* Copyright links */
.ts-footer-bottom a {
    color:
        var(--ts-green) !important;

    font-weight:
        700;

    text-decoration:
        none !important;

    transition:
        color .3s ease;
}


.ts-footer-bottom a:hover {
    color:
        var(--ts-green-dark) !important;
}


/* =========================================================
   POLICY LINKS
========================================================= */

.ts-footer-policies,
.ts-footer-policies .elementor-widget-container {
    display: flex;

    align-items: center;
    justify-content: flex-end;

    flex-wrap: wrap;

    gap: 0;
}


.ts-footer-policies a {
    position: relative;

    color:
        var(--ts-text) !important;

    font-size:
        13px;

    font-weight:
        600;

    text-decoration:
        none !important;

    transition:
        color .3s ease,
        transform .3s ease;
}


/* Separator */
.ts-footer-policies a:not(:last-child)::after {
    content: "";

    display: inline-block;

    width: 1px;
    height: 14px;

    margin:
        0 12px;

    vertical-align:
        middle;

    background:
        linear-gradient(
            180deg,
            transparent,
            var(--ts-green-light),
            var(--ts-gold),
            transparent
        );
}


.ts-footer-policies a:hover {
    color:
        var(--ts-green) !important;

    transform:
        translateY(-2px);
}


/* =========================================================
   OPTIONAL FOOTER LINKS HOVER BACKGROUND
========================================================= */

.ts-footer-links .elementor-icon-list-item::after,
.ts-footer-contact .elementor-icon-list-item::after {
    content: "";

    position: absolute;

    inset: 3px -8px;

    border-radius: 10px;

    background:
        linear-gradient(
            90deg,
            rgba(238,234,205,0.18),
            rgba(77,145,100,0.08)
        );

    opacity: 0;

    z-index: -1;

    transition:
        opacity .3s ease;
}


.ts-footer-links .elementor-icon-list-item:hover::after,
.ts-footer-contact .elementor-icon-list-item:hover::after {
    opacity: 1;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1024px) {

    .ts-footer-brand,
    .ts-footer-links,
    .ts-footer-contact {
        border-radius: 20px;
    }


    .ts-footer-links h2,
    .ts-footer-links h3,
    .ts-footer-links .elementor-heading-title,
    .ts-footer-contact h2,
    .ts-footer-contact h3,
    .ts-footer-contact .elementor-heading-title {
        font-size: 20px !important;
    }


    .ts-footer-contact .elementor-icon-list-icon {
        width: 39px;
        height: 39px;
        min-width: 39px;
    }


    /* Keep logo exactly 20px */
    .ts-footer-brand .elementor-widget-image img {
        width: 20px !important;
        min-width: 20px !important;
        max-width: 20px !important;
        height: auto !important;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {

    .ts-footer {
        text-align: center;
    }


    .ts-footer-brand,
    .ts-footer-links,
    .ts-footer-contact {
        border-radius: 18px;
    }


    .ts-footer-brand:hover,
    .ts-footer-links:hover,
    .ts-footer-contact:hover {
        transform: translateY(-4px);
    }


    /* Logo stays 20px */
    .ts-footer-brand .elementor-widget-image img {
        width: 20px !important;
        min-width: 20px !important;
        max-width: 20px !important;
        height: auto !important;
    }


    /* Centre headings */
    .ts-footer-links h2::after,
    .ts-footer-links h3::after,
    .ts-footer-links .elementor-heading-title::after,

    .ts-footer-contact h2::after,
    .ts-footer-contact h3::after,
    .ts-footer-contact .elementor-heading-title::after {
        margin-left: auto;
        margin-right: auto;
    }


    /* Quick links */
    .ts-footer-links ul,
    .ts-footer-links .elementor-icon-list-items {
        display: inline-flex;

        flex-direction: column;

        align-items: flex-start;
    }


    .ts-footer-links li,
    .ts-footer-links .elementor-icon-list-item {
        width: 100%;

        text-align: left;
    }


    /* Contact */
    .ts-footer-contact .elementor-icon-list-items {
        display: inline-flex;

        flex-direction: column;

        align-items: flex-start;
    }


    .ts-footer-contact .elementor-icon-list-item {
        width: 100%;

        text-align: left;
    }


    .ts-footer-bottom {
        text-align: center;
    }


    .ts-footer-policies,
    .ts-footer-policies .elementor-widget-container {
        justify-content: center;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    /* Logo exact size */
    .ts-footer-brand .elementor-widget-image img {
        width: 20px !important;
        min-width: 20px !important;
        max-width: 20px !important;
        height: auto !important;
    }


    .ts-footer-brand .elementor-social-icon {
        width: 39px !important;
        height: 39px !important;
    }


    .ts-footer-links a,
    .ts-footer-contact .elementor-icon-list-text,
    .ts-footer-contact a {
        font-size: 14px;
    }


    .ts-footer-contact .elementor-icon-list-icon {
        width: 36px;
        height: 36px;
        min-width: 36px;

        border-radius: 11px;
    }


    /* Policy links vertically */
    .ts-footer-policies,
    .ts-footer-policies .elementor-widget-container {
        display: flex;

        flex-direction: column;

        align-items: center;

        gap: 8px;
    }


    .ts-footer-policies
    a:not(:last-child)::after {
        display: none;
    }


    .ts-footer-bottom p,
    .ts-footer-bottom
    .elementor-widget-text-editor p,
    .ts-footer-policies a {
        font-size: 12px;
    }

}


/* =========================================================
   FINAL VISIBILITY FIX
========================================================= */

.ts-footer *,
.ts-footer-brand *,
.ts-footer-links *,
.ts-footer-contact *,
.ts-footer-bottom *,
.ts-footer-policies * {
    visibility: visible !important;
    opacity: 1 !important;
}


/* Prevent text clipping */
.ts-footer p,
.ts-footer a,
.ts-footer span,
.ts-footer li,
.ts-footer .elementor-heading-title,
.ts-footer .elementor-icon-list-text {
    overflow: visible !important;
    text-overflow: clip !important;
}/* End custom CSS */