:root {

    /* Container Width */
    --container-max-width:        86.25rem;
    --container-sm-max-width:     69rem;

    /* Spacing */
    --s-4:                        .25rem;
    --s-8:                        .5rem;
    --s-12:                       .75rem;
    --s-16:                       1rem;
    --s-20:                       1.25rem;
    --s-24:                       1.5rem;
    --s-32:                       2rem;
    --s-40:                       2.5rem;
    --s-48:                       3rem;
    --s-56:                       3.5rem;
    --s-64:                       4rem;
    --s-72:                       4.5rem;
    --s-80:                       5rem;
    --s-88:                       5.5rem;
    --s-96:                       6rem;
    --s-104:                      6.5rem;
    --s-112:                      7rem;
    --s-120:                      7.5rem;
    --s-128:                      8rem;
    --s-144:                      9rem;
    --s-160:                      10rem;

    /* Gutter */
    --gutter:                     var(--s-64);

    /* Section Spacing */
    --ss:                         clamp(var(--s-56), 2.2308rem + 5.641vw, var(--s-144));

    /* Box Padding */
    --s-box:                      var(--s-40);

    /* Widths (n/12) */
    --w-1:                        8.33333333%;
    --w-2:                        16.66666667%;
    --w-3:                        25%;
    --w-4:                        33.33333333%;
    --w-5:                        41.66666667%;
    --w-6:                        50%;
    --w-7:                        58.33333333%;
    --w-8:                        66.66666667%;
    --w-9:                        75%;
    --w-10:                       83.33333333%;
    --w-11:                       91.66666667%;
    --w-12:                       100%;

    /* Border Radius */
    --radius:                     var(--s-20);
    --radius-img:                 var(--radius);

    /* Font Size */
    --fs-body:                    clamp(1rem, 0.9712rem + 0.1282vw, 1.125rem);
    --fs-1:                       clamp(3rem, 2.8269rem + 0.7692vw, 3.75rem);
    --fs-2:                       clamp(2.5rem, 2.3558rem + 0.641vw, 3.125rem);
    --fs-3:                       clamp(2.125rem, 2.0096rem + 0.5128vw, 2.625rem);
    --fs-4:                       clamp(1.75rem, 1.649rem + 0.4487vw, 2.1875rem);
    --fs-5:                       clamp(1.4375rem, 1.351rem + 0.3846vw, 1.8125rem);
    --fs-6:                       clamp(1.1875rem, 1.1154rem + 0.3205vw, 1.5rem);

    /* Font Family */
    --font-sans:                  'Inter Variable', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
    --font-serif:                 'Averia Serif Libre', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';

    /* Transition */
    --transition-timing-function: ease-in-out;
    --transition-duration:        .3s;
    --transition:                 all var(--transition-duration) var(--transition-timing-function);

    /* Colors */
    --c-primary:                  var(--e-global-color-primary, #3d9f36);
    --c-secondary:                var(--e-global-color-secondary, #ffb972);
    --c-text:                     var(--e-global-color-text, #000407);
    --c-accent:                   var(--e-global-color-accent, #c4081e);
    --c-primary-pastel-1:         #e7f2dc;
    --c-primary-pastel-2:         #d2ebe8;
    --c-body-bg:                  #f6f6f6;

    /* Box Shadow */
    --box-shadow:                 0 1rem 2.6rem .4rem rgba(36, 40, 44, .1);
}

@media (max-width: 991px) {
    :root {
        --gutter: var(--s-32);
        --s-box:  var(--s-32);
    }
}

@media (max-width: 767px) {
    :root {
        --s-box: var(--s-20);
    }
}

/**
 * Generic
 */
::selection {
    color:            #ffffff;
    background-color: var(--c-primary);
}

body {
    text-wrap: pretty;
}

p:last-child {
    margin-bottom: 0;
}

:where(h1, h2, h3, h4, h5, h6):not(.elementor-icon-box-title) {
    text-wrap: balance;
}

@media (max-width: 767px) {
    :where(h1, h2, h3, h4, h5, h6):not(.elementor-icon-box-title) {
        hyphens: auto;
    }
}

ul, ol {
    margin-bottom:        1.5em;
    padding-inline-start: 1.25em;
}

ul:last-child, ol:last-child {
    margin-bottom: 0;
}

.elementor-widget-text-editor ul {
    padding-left: 0;
    list-style:   none;
}

.elementor-widget-text-editor ul li {
    padding-left: 1.5em;
}

.elementor-widget-text-editor ul li:before {
    display:          inline-block;
    float:            left;
    width:            1em;
    height:           1em;
    margin-top:       .2em;
    margin-left:      -1.5em;
    content:          '';
    background-color: currentColor;
    mask-image:       url('data:image/svg+xml,%3Csvg aria-hidden=\'true\' class=\'e-font-icon-svg e-fas-arrow-circle-right\' viewBox=\'0 0 512 512\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\'%3E%3C/path%3E%3C/svg%3E');
    mask-size:        contain;
    mask-repeat:      no-repeat;
    mask-position:    center center;
}

/**
 * Buttons
 */
.elementor-button-icon {
    display:     grid;
    place-items: center;
}

.icon-button .elementor-button {
    padding: var(--s-12);
}

.icon-button .elementor-button-content-wrapper {
    gap: 0;
}

.icon-button .elementor-button-text {
    position:     absolute;
    overflow:     hidden;
    clip:         rect(0, 0, 0, 0);
    width:        1px;
    height:       1px;
    margin:       -1px;
    padding:      0;
    white-space:  nowrap;
    border-width: 0;
}

.elementor-button-icon .e-font-icon-svg {
    fill: currentColor;
}

.elementor-element.elementor-button-info .elementor-button {
    color:            var(--c-text);
    background-color: #ffffff;
}

.elementor-element.elementor-button-info .elementor-button:where(:hover, :focus, :focus-within) {
    color:            #ffffff;
    background-color: var(--c-text);
}

.elementor-element.elementor-button-danger .elementor-button {
    color:            #ffffff;
    background-color: var(--c-accent);
}

.elementor-element.elementor-button-danger .elementor-button:where(:hover, :focus, :focus-within) {
    color:            #ffffff;
    background-color: var(--c-text);
}

.elementor-element.elementor-button-success .elementor-button {
    position:         relative;
    overflow:         hidden;
    vertical-align:   middle;
    color:            var(--c-secondary);
    background-color: var(--c-text);
}

.elementor-element.elementor-button-success .elementor-button .elementor-button-content-wrapper {
    position: relative;
}

.elementor-element.elementor-button-success .elementor-button:before {
    position:   absolute;
    width:      100%;
    height:     100%;
    content:    '';
    transition: var(--transition);
    background: url(../images/bg-denim.png);
    inset:      0;
}

.elementor-element.elementor-button-success .elementor-button:where(:hover, :focus, :focus-within) {
    color:            #ffffff;
    background-color: var(--c-text);
}

.elementor-element.elementor-button-success .elementor-button:where(:hover, :focus, :focus-within):before {
    opacity: 0;
}

/**
 * Forms
 */
.elementor-form [type=checkbox] {
    vertical-align: middle;
    accent-color:   var(--c-primary);
}

.elementor-message:before {
    vertical-align: baseline;
}

.elementor-field-type-submit .elementor-button-text {
    display:     flex;
    align-items: center;
    gap:         .5em;
}

.elementor-field-type-submit .elementor-button-text:before {
    display:          inline-block;
    width:            1em;
    height:           1em;
    content:          '';
    background-color: currentColor;
    mask-image:       url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 512 512\'%3E%3C!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--%3E%3Cpath d=\'M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376l0 103.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z\'/%3E%3C/svg%3E');
    mask-repeat:      no-repeat;
    mask-position:    center center;
    mask-size:        contain;
}

/**
 * Icon List
 */
.elementor-widget .elementor-icon-list-item .elementor-icon-list-text a {
    display: inline;
}

/* Fix for `Email Encoder - Protect Email Addresses` plugin breaking icon lists. */
.elementor-icon-list-item > .mail-link > span {
    font-size:   inherit;
    display:     flex;
    align-items: var(--icon-vertical-align, center);
}

/**
 * Icon Box
 */
.elementor-icon-box-title {
    margin-top:    0;
    margin-bottom: 0;
}

/**
 * Footer
 */
.global-footer-colophon .elementor-icon-list-item:not(:last-child):after {
    border-radius: 9999px;
}

.global-footer-colophon a {
    font-weight:           400;
    color:                 var(--c-text);
    text-decoration-color: transparent;
}

.global-footer-colophon a:is(:hover, :focus, :focus-visible) {
    text-decoration:       underline;
    text-decoration-color: currentColor;
}

.global-footer-social-media .elementor-button {
    border-radius:    0;
    background-image: url(../images/bg-denim.png);
    mask-image:       var(--icon-mask-image);
    mask-repeat:      no-repeat;
    mask-size:        contain;
    mask-position:    center center;
}

.global-footer-social-media .elementor-button:is(:hover, :focus, :focus-visible) {
    border-radius: 0;
}

.global-footer-social-media .elementor-button-icon {
    visibility: hidden;
}

/**
 * Global Nav
 */
@media (min-width: 1200px) {
    .global-nav.elementor-widget-n-menu .e-n-menu-title {
        transition: var(--transition);
    }

    .global-nav.elementor-widget-n-menu .e-n-menu-item {
        position: relative;
    }

    .global-nav.elementor-widget-n-menu .e-n-menu:not([data-layout=dropdown]) .e-n-menu-content {
        left:      50%;
        width:     40rem;
        transform: translateX(-50%);
    }

    .global-nav.elementor-widget-n-menu .e-n-menu-title:has(.e-n-menu-dropdown-icon[aria-expanded='true']) {
        background-color: #ffffff;
    }
}

@media (max-width: 1199px) {
    .global-nav.elementor-widget-n-menu .e-n-menu[data-layout=dropdown] .e-n-menu-wrapper {
        right: 0;
        left:  auto;
        width: calc(var(--stretch-width) - var(--s-32));
    }

    .global-nav.elementor-widget-n-menu .e-n-menu[data-layout=dropdown] .e-n-menu-item,
    .global-nav.elementor-widget-n-menu .e-n-menu[data-layout=dropdown] .e-n-menu-content {
        width: 100%;
    }

    .elementor-widget-n-menu .e-n-menu-title .e-n-menu-dropdown-icon {
        position:    absolute;
        top:         0;
        right:       0;
        display:     inline-grid;
        width:       calc(var(--s-16) + var(--fs-body) * 1.5);
        height:      calc(var(--s-16) + var(--fs-body) * 1.5);
        place-items: center;
    }
}

/**
 * Pagination
 */
.elementor-pagination {
    display:         flex;
    align-items:     center;
    justify-content: center;
}

.page-numbers:is(.prev, .next) {
    display:          inline-grid;
    padding:          var(--s-8);
    transition:       var(--transition);
    opacity:          .5;
    color:            #ffffff;
    border-radius:    9999px;
    background-color: var(--c-primary);
    place-items:      center;
}

a.page-numbers:is(.prev, .next) {
    opacity: 1;
}

.page-numbers:is(.prev, .next) svg {
    width:  var(--s-16);
    height: var(--s-16);
    fill:   currentColor;
}

a.page-numbers:is(.prev, .next):is(:hover, :focus, :focus-visible) {
    color:            #ffffff;
    background-color: var(--c-text);
}

.page-numbers:not(.prev, .next) {
    font-size:        0;
    display:          inline-grid;
    width:            var(--s-12);
    height:           var(--s-12);
    border-radius:    9999px;
    background-color: var(--c-primary);
    place-items:      center;
}

.page-numbers[aria-current='page']:not(.prev,.next) {
    opacity: .5;
}

body:not(.rtl) [class*='elementor-'] .elementor-element[class*='elementor-element-'] .elementor-pagination .page-numbers.prev {
    margin-right: var(--s-32);
}

body:not(.rtl) [class*='elementor-'] .elementor-element[class*='elementor-element-'] .elementor-pagination .page-numbers.next {
    margin-left: var(--s-32);
}

/**
 * Single Post Blog
 */
.single-post-blog {
    position: relative;
}

.single-post-blog > .e-con,
.single-post-blog .elementor-widget-button {
    position: static;
}

.single-post-blog .elementor-button-link:before {
    position: absolute;
    width:    100%;
    height:   100%;
    content:  '';
    inset:    0;
}

/**
 * Read More
 */
.js-read-more {
    display:        flex;
    flex-direction: column;
    gap:            1rem;
}

.js-read-more-toggle {
    align-self: flex-start;
}

.js-read-more-initialized.elementor-widget-container,
.elementor-element:not(.e-div-block-base) .js-read-more-initialized.elementor-widget-container {
    overflow:           hidden;
    max-height:         144px;
    transition:         max-height .15s ease-in-out;
    -webkit-mask-image: linear-gradient(#ffffff, #ffffff, rgba(255, 255, 255, 0));
    mask-image:         linear-gradient(#ffffff, #ffffff, rgba(255, 255, 255, 0));
}

.js-read-more-initialized.elementor-widget-container.show,
.elementor-element:not(.e-div-block-base) .js-read-more-initialized.elementor-widget-container.show {
    -webkit-mask-image: none;
    mask-image:         none;
}

/**
 * Utils
 */
.box-shadow {
    box-shadow: var(--box-shadow);
}

.text-bg-dark {
    color:            #ffffff;
    background-color: var(--c-text);
}

.text-bg-dark .elementor-button:is(:hover, :focus, :focus-visible) {
    color:            var(--c-text);
    background-color: #ffffff;
}

a.no-underline {
    text-decoration: none;
}

.bg-blur {
    position: relative;
}

.bg-blur:before {
    position:       absolute;
    top:            var(--ss);
    left:           50%;
    width:          100%;
    max-width:      min(75vw, 54rem);
    height:         auto;
    content:        '';
    transform:      translateX(-50%);
    pointer-events: none;
    opacity:        .5;
    border-radius:  9999px;
    background:     linear-gradient(180deg, rgba(24, 103, 24, 1) 0%, rgba(5, 41, 66, 1) 100%);
    aspect-ratio:   16 / 9;
    filter:         blur(96px);
}

.ratio.elementor-widget-image img {
    object-fit: cover;
}

.ratio-2x3.elementor-widget-image img {
    aspect-ratio: 2 / 3;
}

.fs-1 {
    font-size: var(--fs-1) !important;
}

.fs-2 {
    font-size: var(--fs-2) !important;
}

.fs-3 {
    font-size: var(--fs-3) !important;
}

.fs-4 {
    font-size: var(--fs-4) !important;
}

.fs-5 {
    font-size: var(--fs-5) !important;
}

.fs-6 {
    font-size: var(--fs-6) !important;
}

.prose h1 {
    font-size: 2.027rem;
}

.prose h2 {
    font-size: 1.802rem;
}

.prose h3 {
    font-size: 1.602rem;
}

.prose h4 {
    font-size: 1.424rem;
}

.prose h5 {
    font-size: 1.266rem;
}

.prose h6 {
    font-size: 1.125rem;
}