/* =========================================================
   DAVID FLORES LANDSCAPING LLC
   GLOBAL DESIGN SYSTEM
========================================================= */

:root {

    /* ====================================
       Colores principales del logo
    ==================================== */

    --dfl-green-bright: #08B80B;
    --dfl-green-primary: #138A24;
    --dfl-green-medium: #16752A;
    --dfl-green-dark: #0D4D1D;
    --dfl-green-forest: #082E17;
    --dfl-green-deep: #051E10;

    /* ====================================
       Colores de contraste
    ==================================== */

    --dfl-charcoal: #171D19;
    --dfl-charcoal-soft: #29312C;
    --dfl-gray: #68716B;
    --dfl-gray-light: #A4ACA6;

    --dfl-cream: #F7F5EE;
    --dfl-cream-dark: #ECE9DE;
    --dfl-surface: #FFFFFF;
    --dfl-surface-soft: #FBFAF6;

    --dfl-sand: #DCCFAE;
    --dfl-sand-light: #EEE5CE;
    --dfl-gold: #C5A65A;
    --dfl-gold-dark: #9B7A34;

    /* ====================================
       Colores funcionales
    ==================================== */

    --dfl-text: #171D19;
    --dfl-text-muted: #626C65;
    --dfl-text-light: #F8FAF8;

    --dfl-border: rgba(13, 77, 29, 0.13);
    --dfl-border-light: rgba(255, 255, 255, 0.16);

    --dfl-success: #18863A;
    --dfl-error: #B93832;
    --dfl-warning: #C58A25;

    /* ====================================
       Sombras
    ==================================== */

    --dfl-shadow-xs:
        0 4px 14px rgba(8, 46, 23, 0.05);

    --dfl-shadow-sm:
        0 8px 24px rgba(8, 46, 23, 0.08);

    --dfl-shadow-md:
        0 18px 50px rgba(8, 46, 23, 0.11);

    --dfl-shadow-lg:
        0 28px 80px rgba(5, 30, 16, 0.16);

    --dfl-shadow-accent:
        0 16px 38px rgba(8, 184, 11, 0.22);

    /* ====================================
       Radios
    ==================================== */

    --dfl-radius-xs: 6px;
    --dfl-radius-sm: 10px;
    --dfl-radius-md: 16px;
    --dfl-radius-lg: 24px;
    --dfl-radius-xl: 34px;
    --dfl-radius-round: 999px;

    /* ====================================
       Tamaños y espaciados
    ==================================== */

    --dfl-container: 1280px;
    --dfl-container-narrow: 960px;

    --dfl-section-space: clamp(88px, 9vw, 148px);
    --dfl-inline-space: clamp(20px, 5vw, 72px);

    --dfl-header-height: 92px;
    --dfl-scroll-offset: calc(var(--dfl-header-height) + 28px);

    /* ====================================
       Tipografía
    ==================================== */

    --dfl-font-primary:
        "Manrope",
        Arial,
        Helvetica,
        sans-serif;

    --dfl-font-display:
        "Playfair Display",
        Georgia,
        serif;

    /* ====================================
       Transiciones
    ==================================== */

    --dfl-ease:
        cubic-bezier(0.22, 1, 0.36, 1);

    --dfl-ease-soft:
        cubic-bezier(0.4, 0, 0.2, 1);

    --dfl-transition-fast: 180ms;
    --dfl-transition-normal: 350ms;
    --dfl-transition-slow: 700ms;

    --dfl-page-transition-duration: 720ms;
}


/* =========================================================
   RESET
========================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    width: 100%;
    min-height: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: var(--dfl-scroll-offset);
    background: var(--dfl-cream);
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

body {
    width: 100%;
    min-height: 100vh;
    min-height: 100svh;
    margin: 0;

    font-family: var(--dfl-font-primary);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.7;

    color: var(--dfl-text);
    background-color: var(--dfl-cream);

    overflow-x: hidden;

    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body,
button,
input,
textarea,
select {
    font-family: var(--dfl-font-primary);
}

img,
picture,
svg,
video,
canvas {
    display: block;
    max-width: 100%;
}

img {
    height: auto;
}

button,
input,
textarea,
select {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

button {
    border: 0;
}

a {
    color: inherit;
    text-decoration: none;
}

p,
h1,
h2,
h3,
h4,
h5,
h6,
figure,
blockquote {
    margin: 0;
}

ul,
ol {
    margin: 0;
    padding: 0;
}

ul[role="list"],
ol[role="list"] {
    list-style: none;
}

::selection {
    color: var(--dfl-surface);
    background: var(--dfl-green-primary);
}


/* =========================================================
   ACCESIBILIDAD
========================================================= */

:focus {
    outline: none;
}

:focus-visible {
    outline: 3px solid rgba(8, 184, 11, 0.45);
    outline-offset: 4px;
}

.dfl-skip-link {
    position: fixed;
    top: 16px;
    left: 16px;
    z-index: 100000;

    padding: 12px 18px;

    color: var(--dfl-surface);
    background: var(--dfl-green-dark);
    border-radius: var(--dfl-radius-sm);

    transform: translateY(-160%);
    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-skip-link:focus {
    transform: translateY(0);
}


/* =========================================================
   FONDO GENERAL ELEGANTE
========================================================= */

.dfl-site-background {
    position: fixed;
    inset: 0;
    z-index: -10;

    overflow: hidden;
    pointer-events: none;

    background:
        linear-gradient(
            135deg,
            #FAF9F4 0%,
            var(--dfl-cream) 42%,
            #F1F3E9 100%
        );
}

.dfl-site-background::before {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            115deg,
            transparent 0%,
            rgba(255, 255, 255, 0.62) 34%,
            transparent 62%
        );

    opacity: 0.72;
}

.dfl-bg-shape {
    position: absolute;
    display: block;
    border-radius: 50%;
    filter: blur(3px);
    will-change: transform;
}

.dfl-bg-shape-one {
    top: -260px;
    right: -210px;

    width: 630px;
    height: 630px;

    background:
        radial-gradient(
            circle,
            rgba(19, 138, 36, 0.13) 0%,
            rgba(19, 138, 36, 0.05) 46%,
            transparent 72%
        );
}

.dfl-bg-shape-two {
    bottom: -320px;
    left: -250px;

    width: 700px;
    height: 700px;

    background:
        radial-gradient(
            circle,
            rgba(197, 166, 90, 0.14) 0%,
            rgba(220, 207, 174, 0.07) 45%,
            transparent 72%
        );
}

.dfl-bg-shape-three {
    top: 46%;
    left: 54%;

    width: 420px;
    height: 420px;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.055) 0%,
            transparent 70%
        );

    transform: translate(-50%, -50%);
}

.dfl-bg-grain {
    position: absolute;
    inset: 0;

    opacity: 0.18;

    background-image:
        repeating-linear-gradient(
            0deg,
            rgba(8, 46, 23, 0.018) 0,
            rgba(8, 46, 23, 0.018) 1px,
            transparent 1px,
            transparent 5px
        );
}


/* =========================================================
   ESTRUCTURA GENERAL
========================================================= */

.dfl-site-wrapper {
    position: relative;
    z-index: 1;
    width: 100%;
    min-height: 100vh;
    min-height: 100svh;
}

.dfl-main {
    position: relative;
    width: 100%;
}

.dfl-container {
    width: min(
        calc(100% - (var(--dfl-inline-space) * 2)),
        var(--dfl-container)
    );
    margin-inline: auto;
}

.dfl-container-narrow {
    width: min(
        calc(100% - (var(--dfl-inline-space) * 2)),
        var(--dfl-container-narrow)
    );
    margin-inline: auto;
}

.dfl-section {
    position: relative;
    padding-block: var(--dfl-section-space);
    scroll-margin-top: var(--dfl-scroll-offset);
}

.dfl-section-light {
    background: rgba(255, 255, 255, 0.72);
}

.dfl-section-cream {
    background: rgba(247, 245, 238, 0.82);
}

.dfl-section-dark {
    color: var(--dfl-text-light);
    background:
        linear-gradient(
            145deg,
            var(--dfl-green-forest),
            var(--dfl-green-deep)
        );
}


/* =========================================================
   TIPOGRAFÍA GENERAL
========================================================= */

h1,
h2,
h3,
h4,
h5,
h6 {
    color: inherit;
    text-wrap: balance;
}

h1,
.dfl-title-xl {
    font-size: clamp(2.8rem, 7vw, 6.8rem);
    font-weight: 800;
    line-height: 0.98;
    letter-spacing: -0.058em;
}

h2,
.dfl-title-lg {
    font-size: clamp(2.15rem, 5vw, 4.8rem);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -0.048em;
}

h3,
.dfl-title-md {
    font-size: clamp(1.35rem, 2.5vw, 2.15rem);
    font-weight: 750;
    line-height: 1.16;
    letter-spacing: -0.032em;
}

.dfl-display-title {
    font-family: var(--dfl-font-display);
    font-weight: 700;
    letter-spacing: -0.035em;
}

.dfl-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin-bottom: 20px;

    color: var(--dfl-green-primary);

    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.dfl-eyebrow::before {
    content: "";

    width: 28px;
    height: 2px;

    background: var(--dfl-green-bright);
    border-radius: var(--dfl-radius-round);
}

.dfl-section-description {
    max-width: 720px;
    margin-top: 24px;

    color: var(--dfl-text-muted);

    font-size: clamp(1rem, 1.3vw, 1.16rem);
    line-height: 1.85;
    text-wrap: pretty;
}

.dfl-section-dark .dfl-section-description {
    color: rgba(248, 250, 248, 0.72);
}

.dfl-accent-text {
    color: var(--dfl-green-primary);
}

.dfl-gold-text {
    color: var(--dfl-gold-dark);
}


/* =========================================================
   BOTONES GENERALES
========================================================= */

.dfl-button {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 11px;

    min-height: 54px;
    padding: 15px 25px;

    border: 1px solid transparent;
    border-radius: var(--dfl-radius-sm);

    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.01em;

    cursor: pointer;
    isolation: isolate;
    overflow: hidden;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease),
        box-shadow var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-button::before {
    content: "";

    position: absolute;
    inset: 0;
    z-index: -1;

    background: var(--dfl-green-dark);

    transform: translateY(102%);
    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-button:hover {
    transform: translateY(-3px);
}

.dfl-button:hover::before {
    transform: translateY(0);
}

.dfl-button-primary {
    color: var(--dfl-surface);
    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    box-shadow: var(--dfl-shadow-accent);
}

.dfl-button-primary:hover {
    color: var(--dfl-surface);
    box-shadow:
        0 20px 45px rgba(8, 184, 11, 0.28);
}

.dfl-button-dark {
    color: var(--dfl-surface);
    background: var(--dfl-green-forest);
    box-shadow: var(--dfl-shadow-sm);
}

.dfl-button-dark::before {
    background: var(--dfl-green-primary);
}

.dfl-button-outline {
    color: var(--dfl-green-dark);
    background: rgba(255, 255, 255, 0.5);
    border-color: rgba(13, 77, 29, 0.22);
    backdrop-filter: blur(14px);
}

.dfl-button-outline::before {
    background: var(--dfl-green-dark);
}

.dfl-button-outline:hover {
    color: var(--dfl-surface);
    border-color: var(--dfl-green-dark);
}

.dfl-button-light {
    color: var(--dfl-green-dark);
    background: var(--dfl-surface);
}

.dfl-button-light::before {
    background: var(--dfl-sand-light);
}

.dfl-button-icon {
    width: 19px;
    height: 19px;

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-button:hover .dfl-button-icon {
    transform: translateX(4px);
}


/* =========================================================
   TARJETAS GENERALES
========================================================= */

.dfl-card {
    position: relative;

    padding: clamp(24px, 3vw, 38px);

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.95),
            rgba(251, 250, 246, 0.88)
        );

    border: 1px solid var(--dfl-border);
    border-radius: var(--dfl-radius-md);
    box-shadow: var(--dfl-shadow-sm);

    overflow: hidden;

    transition:
        transform var(--dfl-transition-slow) var(--dfl-ease),
        box-shadow var(--dfl-transition-slow) var(--dfl-ease),
        border-color var(--dfl-transition-slow) var(--dfl-ease);
}

.dfl-card::before {
    content: "";

    position: absolute;
    top: -80px;
    right: -80px;

    width: 170px;
    height: 170px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.12),
            transparent 68%
        );

    transition:
        transform var(--dfl-transition-slow)
        var(--dfl-ease);
}

.dfl-card:hover {
    transform: translateY(-8px);
    border-color: rgba(19, 138, 36, 0.24);
    box-shadow: var(--dfl-shadow-md);
}

.dfl-card:hover::before {
    transform: scale(1.35);
}


/* =========================================================
   ANIMACIONES DE APARICIÓN
========================================================= */

[data-reveal] {
    opacity: 0;
    will-change: transform, opacity, clip-path;
}

[data-reveal="up"] {
    transform: translateY(42px);
}

[data-reveal="left"] {
    transform: translateX(-48px);
}

[data-reveal="right"] {
    transform: translateX(48px);
}

[data-reveal="scale"] {
    transform: scale(0.94);
}

[data-reveal="clip"] {
    opacity: 1;
    clip-path: inset(0 0 100% 0);
}

[data-reveal].dfl-is-visible {
    opacity: 1;
    transform: translate(0, 0) scale(1);
    clip-path: inset(0 0 0 0);

    transition:
        opacity 850ms var(--dfl-ease),
        transform 850ms var(--dfl-ease),
        clip-path 1050ms var(--dfl-ease);
}

[data-reveal-delay="1"] {
    transition-delay: 80ms !important;
}

[data-reveal-delay="2"] {
    transition-delay: 160ms !important;
}

[data-reveal-delay="3"] {
    transition-delay: 240ms !important;
}

[data-reveal-delay="4"] {
    transition-delay: 320ms !important;
}


/* =========================================================
   SECCIÓN SELECCIONADA MEDIANTE ENLACE
========================================================= */

.dfl-section-target {
    animation:
        dflSectionFocus
        950ms
        var(--dfl-ease);
}

@keyframes dflSectionFocus {

    0% {
        filter: brightness(1);
    }

    40% {
        filter: brightness(1.035);
    }

    100% {
        filter: brightness(1);
    }

}


/* =========================================================
   TRANSICIÓN ENTRE PÁGINAS
========================================================= */

.dfl-page-transition {
    position: fixed;
    inset: 0;
    z-index: 99999;

    display: grid;
    place-items: center;

    visibility: hidden;
    pointer-events: none;
    overflow: hidden;
}

.dfl-transition-panel {
    position: absolute;
    left: 0;

    width: 100%;
    height: 51%;

    background:
        linear-gradient(
            125deg,
            var(--dfl-green-deep),
            var(--dfl-green-dark)
        );

    transition:
        transform
        var(--dfl-page-transition-duration)
        var(--dfl-ease);
}

.dfl-transition-panel-top {
    top: 0;
    transform: translateY(-102%);
}

.dfl-transition-panel-bottom {
    bottom: 0;
    transform: translateY(102%);
}

.dfl-transition-brand {
    position: relative;
    z-index: 3;

    display: flex;
    flex-direction: column;
    align-items: center;

    padding: 28px;

    color: var(--dfl-surface);
    text-align: center;

    opacity: 0;
    transform: translateY(18px);

    transition:
        opacity 320ms var(--dfl-ease),
        transform 500ms var(--dfl-ease);
}

.dfl-transition-logo {
    display: grid;
    place-items: center;

    width: 94px;
    height: 94px;
    margin-bottom: 18px;

    background: var(--dfl-surface);
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 50%;

    box-shadow:
        0 18px 45px rgba(0, 0, 0, 0.22);
}

.dfl-transition-logo img {
    width: 78px;
    height: 78px;

    border-radius: 50%;
    object-fit: cover;
}

.dfl-transition-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.dfl-transition-text strong {
    font-size: clamp(1.4rem, 3vw, 2rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.04em;
}

.dfl-transition-text span {
    color: rgba(255, 255, 255, 0.68);

    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.dfl-transition-line {
    width: 150px;
    height: 2px;
    margin-top: 22px;

    background: rgba(255, 255, 255, 0.16);
    border-radius: var(--dfl-radius-round);

    overflow: hidden;
}

.dfl-transition-line span {
    display: block;

    width: 45%;
    height: 100%;

    background:
        linear-gradient(
            90deg,
            var(--dfl-gold),
            var(--dfl-green-bright)
        );

    animation:
        dflTransitionLine
        1.15s
        var(--dfl-ease-soft)
        infinite;
}

@keyframes dflTransitionLine {

    from {
        transform: translateX(-120%);
    }

    to {
        transform: translateX(330%);
    }

}


/* Estado de salida */

html.dfl-is-leaving,
html.dfl-is-leaving body {
    overflow: hidden;
}

html.dfl-is-leaving .dfl-page-transition {
    visibility: visible;
    pointer-events: auto;
}

html.dfl-is-leaving .dfl-transition-panel {
    transform: translateY(0);
}

html.dfl-is-leaving .dfl-transition-brand {
    opacity: 1;
    transform: translateY(0);

    transition-delay: 260ms;
}


/* Estado de entrada */

html.dfl-is-entering .dfl-page-transition {
    visibility: visible;
}

html.dfl-is-entering .dfl-transition-panel {
    transform: translateY(0);
}

html.dfl-is-entering .dfl-transition-brand {
    opacity: 1;
    transform: translateY(0);
}

html.dfl-is-entering.dfl-page-visible
.dfl-transition-panel-top {
    transform: translateY(-102%);
}

html.dfl-is-entering.dfl-page-visible
.dfl-transition-panel-bottom {
    transform: translateY(102%);
}

html.dfl-is-entering.dfl-page-visible
.dfl-transition-brand {
    opacity: 0;
    transform: translateY(-14px);
}


/* =========================================================
   ESTADO DE MOVIMIENTO REDUCIDO
   Se activa desde JavaScript
========================================================= */

html.dfl-reduce-motion {
    scroll-behavior: auto;
}

html.dfl-reduce-motion *,
html.dfl-reduce-motion *::before,
html.dfl-reduce-motion *::after {
    scroll-behavior: auto !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 1ms !important;
    transition-delay: 0ms !important;
}







































/* =========================================================
   TOP INFORMATION BAR
========================================================= */

:root {
    /*
     * JavaScript actualiza esta variable con la altura real
     * de la barra. El valor inicial evita saltos visuales.
     */
    --dfl-topbar-height: 38px;

    /*
     * Esta variable se utilizará después en el hero.
     *
     * Top bar + Header + Hero = 100svh
     */
    --dfl-first-screen-height:
        calc(
            100svh
            - var(--dfl-topbar-height)
            - var(--dfl-header-height)
        );
}

.dfl-topbar {
    position: relative;
    z-index: 1200;

    width: 100%;
    height: var(--dfl-topbar-height);

    color: rgba(255, 255, 255, 0.88);

    background:
        linear-gradient(
            105deg,
            var(--dfl-green-deep) 0%,
            var(--dfl-green-forest) 48%,
            var(--dfl-green-dark) 100%
        );

    border-bottom:
        1px solid rgba(255, 255, 255, 0.1);

    overflow: hidden;
    isolation: isolate;
}

.dfl-topbar::before {
    content: "";

    position: absolute;
    top: 0;
    left: 12%;

    width: 42%;
    height: 100%;

    background:
        linear-gradient(
            105deg,
            transparent,
            rgba(255, 255, 255, 0.055),
            transparent
        );

    transform: skewX(-22deg);
    pointer-events: none;
}

.dfl-topbar::after {
    content: "";

    position: absolute;
    right: 0;
    bottom: 0;

    width: min(34%, 470px);
    height: 2px;

    background:
        linear-gradient(
            90deg,
            transparent,
            var(--dfl-gold),
            var(--dfl-green-bright)
        );

    opacity: 0.72;
    pointer-events: none;
}

.dfl-topbar__inner {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;

    height: 100%;
}

.dfl-topbar__group {
    display: flex;
    align-items: center;
    min-width: 0;
}

.dfl-topbar__group--left {
    gap: 17px;
}

.dfl-topbar__group--right {
    justify-content: flex-end;
    flex-shrink: 0;
}

.dfl-topbar__item {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    min-width: 0;

    color: rgba(255, 255, 255, 0.72);

    font-size: 0.73rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.015em;

    white-space: nowrap;
}

.dfl-topbar__item strong {
    color: var(--dfl-surface);
    font-weight: 750;
}

.dfl-topbar__item svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;

    fill: none;
    stroke: var(--dfl-green-bright);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-topbar__divider {
    width: 1px;
    height: 14px;
    flex: 0 0 auto;

    background: rgba(255, 255, 255, 0.15);
}

.dfl-topbar__phone {
    position: relative;

    display: inline-flex;
    align-items: center;
    gap: 8px;

    height: 100%;

    color: var(--dfl-surface);

    font-size: 0.74rem;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-topbar__phone::after {
    content: "";

    position: absolute;
    right: 0;
    bottom: 6px;
    left: 26px;

    height: 1px;

    background: var(--dfl-green-bright);

    transform: scaleX(0);
    transform-origin: right center;

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-topbar__phone:hover {
    color: var(--dfl-sand-light);
    transform: translateY(-1px);
}

.dfl-topbar__phone:hover::after {
    transform: scaleX(1);
    transform-origin: left center;
}

.dfl-topbar__phone:focus-visible {
    outline-color: rgba(255, 255, 255, 0.75);
    outline-offset: 2px;
}

.dfl-topbar__phone strong {
    color: var(--dfl-surface);
    font-weight: 800;
    letter-spacing: 0.01em;
}

.dfl-topbar__phone-label {
    color: rgba(255, 255, 255, 0.63);
}

.dfl-topbar__phone-icon {
    display: grid;
    place-items: center;

    width: 20px;
    height: 20px;

    color: var(--dfl-green-bright);
}

.dfl-topbar__phone-icon svg {
    width: 14px;
    height: 14px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}










































/* =========================================================
   HEADER / NAVIGATION
========================================================= */

:root {
    --dfl-header-height: 88px;
    --dfl-mobile-menu-top:
        calc(
            var(--dfl-topbar-height) +
            var(--dfl-header-height)
        );
}


/* =========================================================
   MAIN HEADER
========================================================= */

.dfl-header {
    position: sticky;
    top: 0;
    z-index: 1300;

    width: 100%;
    height: var(--dfl-header-height);

    color: var(--dfl-text);
    background: rgba(250, 249, 244, 0.94);

    border-bottom:
        1px solid rgba(13, 77, 29, 0.1);

    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.8);

    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);

    isolation: isolate;

    transition:
        height var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease),
        box-shadow var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-header::before {
    content: "";

    position: absolute;
    inset: 0;
    z-index: -1;

    background:
        linear-gradient(
            110deg,
            rgba(255, 255, 255, 0.74),
            transparent 45%,
            rgba(19, 138, 36, 0.025)
        );

    pointer-events: none;
}

.dfl-header.dfl-header--scrolled {
    background: rgba(250, 249, 244, 0.985);

    border-bottom-color:
        rgba(13, 77, 29, 0.14);

    box-shadow:
        0 14px 42px rgba(5, 30, 16, 0.1);
}

.dfl-header__inner {
    position: relative;

    display: grid;
    grid-template-columns:
        minmax(210px, auto)
        minmax(0, 1fr)
        auto;
    align-items: center;
    gap: clamp(20px, 2.6vw, 46px);

    height: 100%;
}


/* =========================================================
   LOGO / BRAND
========================================================= */

.dfl-header__brand {
    position: relative;

    display: inline-flex;
    align-items: center;
    gap: 12px;

    min-width: 0;
    width: fit-content;

    color: var(--dfl-green-forest);
}

.dfl-header__logo {
    position: relative;

    display: grid;
    place-items: center;

    width: 62px;
    height: 62px;
    flex: 0 0 auto;

    background: var(--dfl-surface);
    border: 1px solid rgba(13, 77, 29, 0.12);
    border-radius: var(--dfl-radius-sm);

    box-shadow:
        0 7px 20px rgba(8, 46, 23, 0.09);

    overflow: hidden;

    transition:
        transform var(--dfl-transition-normal) var(--dfl-ease),
        box-shadow var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-header__logo::after {
    content: "";

    position: absolute;
    inset: 0;

    border:
        1px solid rgba(255, 255, 255, 0.48);

    border-radius: inherit;
    pointer-events: none;
}

.dfl-header__logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dfl-header__brand:hover .dfl-header__logo {
    transform: translateY(-2px);

    box-shadow:
        0 12px 28px rgba(8, 46, 23, 0.14);
}

.dfl-header__brand-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.dfl-header__brand-copy strong {
    color: var(--dfl-green-forest);

    font-size: 0.98rem;
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.035em;

    white-space: nowrap;
}

.dfl-header__brand-copy span {
    margin-top: 5px;

    color: var(--dfl-green-primary);

    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.125em;
    text-transform: uppercase;

    white-space: nowrap;
}


/* =========================================================
   DESKTOP NAVIGATION
========================================================= */

.dfl-header__desktop-nav {
    display: flex;
    justify-content: center;
    min-width: 0;
}

.dfl-header__nav-list {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(16px, 1.65vw, 30px);
}

.dfl-header__nav-item {
    position: relative;
}

.dfl-header__nav-link {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;

    min-height: 42px;
    padding: 5px 0;

    color: var(--dfl-charcoal-soft);
    background: transparent;

    font-size: 0.78rem;
    font-weight: 750;
    line-height: 1;
    letter-spacing: -0.012em;

    cursor: pointer;
    white-space: nowrap;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-header__nav-link::after {
    content: "";

    position: absolute;
    right: 0;
    bottom: 3px;
    left: 0;

    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-round);

    transform: scaleX(0);
    transform-origin: right center;

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-header__nav-link:hover,
.dfl-header__nav-link[aria-current="page"],
.dfl-header__nav-link.dfl-nav-link--active {
    color: var(--dfl-green-dark);
}

.dfl-header__nav-link:hover::after,
.dfl-header__nav-link[aria-current="page"]::after,
.dfl-header__nav-link.dfl-nav-link--active::after {
    transform: scaleX(1);
    transform-origin: left center;
}

.dfl-header__dropdown-toggle {
    border: 0;
}

.dfl-header__dropdown-toggle svg {
    width: 15px;
    height: 15px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-header__dropdown-toggle[aria-expanded="true"] {
    color: var(--dfl-green-dark);
}

.dfl-header__dropdown-toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
}


/* =========================================================
   DESKTOP SERVICES DROPDOWN
========================================================= */

.dfl-header__dropdown {
    position: absolute;
    top: calc(100% + 19px);
    left: 50%;

    display: grid;
    grid-template-columns: 220px minmax(390px, 1fr);
    gap: 25px;

    width: min(670px, calc(100vw - 52px));
    padding: 24px;

    color: var(--dfl-text);

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.985),
            rgba(247, 245, 238, 0.985)
        );

    border: 1px solid rgba(13, 77, 29, 0.13);
    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 26px 70px rgba(5, 30, 16, 0.17);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transform:
        translateX(-50%)
        translateY(12px)
        scale(0.985);

    transform-origin: top center;

    transition:
        opacity 240ms var(--dfl-ease),
        visibility 240ms var(--dfl-ease),
        transform 420ms var(--dfl-ease);
}

.dfl-header__dropdown::before {
    content: "";

    position: absolute;
    top: -19px;
    right: 0;
    left: 0;

    height: 20px;
}

.dfl-header__nav-item--dropdown:hover
.dfl-header__dropdown,
.dfl-header__nav-item--dropdown:focus-within
.dfl-header__dropdown,
.dfl-header__nav-item--dropdown.dfl-dropdown--open
.dfl-header__dropdown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;

    transform:
        translateX(-50%)
        translateY(0)
        scale(1);
}

.dfl-header__dropdown-intro {
    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: flex-end;

    min-height: 215px;
    padding: 25px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            145deg,
            var(--dfl-green-forest),
            var(--dfl-green-dark)
        );

    border-radius: var(--dfl-radius-sm);
    overflow: hidden;
    isolation: isolate;
}

.dfl-header__dropdown-intro::before {
    content: "";

    position: absolute;
    top: -60px;
    right: -50px;
    z-index: -1;

    width: 165px;
    height: 165px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.34),
            transparent 68%
        );
}

.dfl-header__dropdown-intro::after {
    content: "";

    position: absolute;
    right: -30px;
    bottom: -56px;
    z-index: -1;

    width: 150px;
    height: 150px;

    border:
        1px solid rgba(255, 255, 255, 0.12);

    border-radius: 50%;
}

.dfl-header__dropdown-intro span {
    margin-bottom: 10px;

    color: var(--dfl-green-bright);

    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.dfl-header__dropdown-intro strong {
    font-size: 1.27rem;
    font-weight: 750;
    line-height: 1.3;
    letter-spacing: -0.035em;
}

.dfl-header__dropdown-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
    align-content: start;
}

.dfl-header__dropdown-list a {
    display: flex;
    align-items: flex-start;
    gap: 12px;

    min-height: 91px;
    padding: 14px;

    border: 1px solid transparent;
    border-radius: var(--dfl-radius-sm);

    transition:
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-header__dropdown-list a:hover {
    background: rgba(255, 255, 255, 0.85);
    border-color: rgba(13, 77, 29, 0.11);
    transform: translateY(-2px);
}

.dfl-header__dropdown-icon {
    display: grid;
    place-items: center;

    width: 35px;
    height: 35px;
    flex: 0 0 auto;

    color: var(--dfl-green-primary);
    background: rgba(19, 138, 36, 0.09);

    border-radius: var(--dfl-radius-xs);
}

.dfl-header__dropdown-icon svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-header__dropdown-list a > span:last-child {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.dfl-header__dropdown-list strong {
    color: var(--dfl-green-forest);

    font-size: 0.79rem;
    font-weight: 800;
    line-height: 1.25;
}

.dfl-header__dropdown-list small {
    margin-top: 5px;

    color: var(--dfl-text-muted);

    font-size: 0.66rem;
    font-weight: 500;
    line-height: 1.42;
}

.dfl-header__dropdown-cta {
    grid-column: 2;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;

    min-height: 44px;
    padding: 11px 15px;

    color: var(--dfl-green-dark);
    background: rgba(19, 138, 36, 0.075);

    border: 1px solid rgba(19, 138, 36, 0.11);
    border-radius: var(--dfl-radius-xs);

    font-size: 0.73rem;
    font-weight: 800;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-header__dropdown-cta:hover {
    color: var(--dfl-surface);
    background: var(--dfl-green-dark);
}

.dfl-header__dropdown-cta svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-header__dropdown-cta:hover svg {
    transform: translateX(4px);
}


/* =========================================================
   HEADER ACTIONS
========================================================= */

.dfl-header__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 13px;
}

.dfl-header__call {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    color: var(--dfl-green-forest);
}

.dfl-header__call-icon {
    display: grid;
    place-items: center;

    width: 37px;
    height: 37px;
    flex: 0 0 auto;

    color: var(--dfl-green-primary);
    background: rgba(19, 138, 36, 0.09);

    border-radius: var(--dfl-radius-xs);

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-header__call:hover .dfl-header__call-icon {
    color: var(--dfl-surface);
    background: var(--dfl-green-primary);
    transform: rotate(-7deg);
}

.dfl-header__call-icon svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-header__call-copy {
    display: flex;
    flex-direction: column;
}

.dfl-header__call-copy small {
    color: var(--dfl-text-muted);

    font-size: 0.59rem;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.09em;
}

.dfl-header__call-copy strong {
    margin-top: 5px;

    font-size: 0.75rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.dfl-header__estimate {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;

    min-height: 47px;
    padding: 13px 18px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-sm);

    box-shadow:
        0 12px 28px rgba(8, 184, 11, 0.2);

    overflow: hidden;
    isolation: isolate;

    font-size: 0.73rem;
    font-weight: 800;
    white-space: nowrap;

    transition:
        transform var(--dfl-transition-normal) var(--dfl-ease),
        box-shadow var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-header__estimate::before {
    content: "";

    position: absolute;
    inset: 0;
    z-index: -1;

    background: var(--dfl-green-dark);

    transform: translateY(102%);

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-header__estimate:hover {
    transform: translateY(-2px);

    box-shadow:
        0 17px 35px rgba(8, 184, 11, 0.26);
}

.dfl-header__estimate:hover::before {
    transform: translateY(0);
}

.dfl-header__estimate svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-header__estimate:hover svg {
    transform: translateX(3px);
}


/* =========================================================
   MOBILE HEADER CONTROLS
========================================================= */

.dfl-header__menu-button,
.dfl-header__mobile-call {
    display: none;
}


/* =========================================================
   MOBILE NAVIGATION BASE
========================================================= */

.dfl-mobile-navigation {
    position: fixed;
    inset: 0;
    z-index: 1250;

    visibility: hidden;
    pointer-events: none;
}

.dfl-mobile-navigation__backdrop {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    background: rgba(5, 30, 16, 0.58);
    border: 0;

    opacity: 0;

    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);

    cursor: default;

    transition:
        opacity 380ms var(--dfl-ease);
}

.dfl-mobile-navigation__panel {
    position: absolute;
    top: var(--dfl-mobile-menu-top);
    right: 0;
    bottom: 0;

    display: flex;
    flex-direction: column;

    width: min(430px, 91vw);
    max-height:
        calc(
            100svh -
            var(--dfl-mobile-menu-top)
        );

    color: var(--dfl-text);

    background:
        linear-gradient(
            155deg,
            rgba(255, 255, 255, 0.995),
            rgba(247, 245, 238, 0.995)
        );

    border-top:
        1px solid rgba(13, 77, 29, 0.1);

    box-shadow:
        -24px 20px 70px rgba(5, 30, 16, 0.23);

    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;

    transform: translateX(104%);

    transition:
        transform 580ms var(--dfl-ease),
        top 180ms var(--dfl-ease);
}

.dfl-mobile-navigation.dfl-mobile-navigation--open {
    visibility: visible;
    pointer-events: auto;
}

.dfl-mobile-navigation.dfl-mobile-navigation--open
.dfl-mobile-navigation__backdrop {
    opacity: 1;
}

.dfl-mobile-navigation.dfl-mobile-navigation--open
.dfl-mobile-navigation__panel {
    transform: translateX(0);
}

html.dfl-menu-open,
html.dfl-menu-open body {
    overflow: hidden;
    overscroll-behavior: none;
}


/* =========================================================
   MOBILE NAVIGATION CONTENT
========================================================= */

.dfl-mobile-navigation__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;

    padding: 23px var(--dfl-inline-space) 18px;

    border-bottom:
        1px solid rgba(13, 77, 29, 0.09);
}

.dfl-mobile-navigation__heading > div {
    display: flex;
    flex-direction: column;
}

.dfl-mobile-navigation__heading span {
    color: var(--dfl-green-primary);

    font-size: 0.63rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.dfl-mobile-navigation__heading strong {
    margin-top: 7px;

    color: var(--dfl-green-forest);

    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.032em;
}

.dfl-mobile-navigation__close {
    display: grid;
    place-items: center;

    width: 39px;
    height: 39px;
    flex: 0 0 auto;

    color: var(--dfl-green-dark);
    background: rgba(19, 138, 36, 0.08);

    border: 1px solid rgba(13, 77, 29, 0.1);
    border-radius: var(--dfl-radius-xs);

    cursor: pointer;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-mobile-navigation__close:hover {
    color: var(--dfl-surface);
    background: var(--dfl-green-dark);
    transform: rotate(5deg);
}

.dfl-mobile-navigation__close svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.dfl-mobile-navigation__nav {
    padding:
        10px
        var(--dfl-inline-space)
        16px;
}

.dfl-mobile-navigation__nav > ul > li {
    border-bottom:
        1px solid rgba(13, 77, 29, 0.09);
}

.dfl-mobile-navigation__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    width: 100%;
    min-height: 58px;
    padding: 13px 2px;

    color: var(--dfl-green-forest);
    background: transparent;
    border: 0;

    font-size: 1.03rem;
    font-weight: 750;
    line-height: 1;
    letter-spacing: -0.027em;

    cursor: pointer;
}

.dfl-mobile-navigation__link small {
    color: var(--dfl-gray-light);

    font-size: 0.59rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.dfl-mobile-navigation__services-toggle {
    text-align: left;
}

.dfl-mobile-navigation__plus {
    position: relative;

    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}

.dfl-mobile-navigation__plus i {
    position: absolute;
    top: 50%;
    left: 50%;

    display: block;

    width: 14px;
    height: 2px;

    background: var(--dfl-green-primary);
    border-radius: var(--dfl-radius-round);

    transform: translate(-50%, -50%);

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-mobile-navigation__plus i:last-child {
    transform:
        translate(-50%, -50%)
        rotate(90deg);
}

.dfl-mobile-navigation__services-toggle[aria-expanded="true"]
.dfl-mobile-navigation__plus i:last-child {
    transform:
        translate(-50%, -50%)
        rotate(0deg);
}

.dfl-mobile-navigation__submenu {
    display: grid;
    grid-template-rows: 0fr;

    transition:
        grid-template-rows
        460ms
        var(--dfl-ease);
}

.dfl-mobile-navigation__submenu.dfl-mobile-submenu--open {
    grid-template-rows: 1fr;
}

.dfl-mobile-navigation__submenu-inner {
    min-height: 0;
    overflow: hidden;
}

.dfl-mobile-navigation__submenu-inner a {
    position: relative;

    display: flex;
    align-items: center;

    min-height: 43px;
    padding: 9px 10px 9px 24px;

    color: var(--dfl-text-muted);

    font-size: 0.78rem;
    font-weight: 650;

    transition:
        color var(--dfl-transition-fast) var(--dfl-ease),
        transform var(--dfl-transition-fast) var(--dfl-ease);
}

.dfl-mobile-navigation__submenu-inner a::before {
    content: "";

    position: absolute;
    left: 3px;

    width: 8px;
    height: 2px;

    background: var(--dfl-green-bright);
    border-radius: var(--dfl-radius-round);
}

.dfl-mobile-navigation__submenu-inner a:hover {
    color: var(--dfl-green-dark);
    transform: translateX(4px);
}

.dfl-mobile-navigation__footer {
    margin-top: auto;
    padding:
        23px
        var(--dfl-inline-space)
        25px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            145deg,
            var(--dfl-green-forest),
            var(--dfl-green-deep)
        );
}

.dfl-mobile-navigation__footer p {
    max-width: 330px;

    color: rgba(255, 255, 255, 0.69);

    font-size: 0.76rem;
    line-height: 1.65;
}

.dfl-mobile-navigation__estimate {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;

    min-height: 51px;
    margin-top: 17px;
    padding: 13px 17px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-sm);

    font-size: 0.77rem;
    font-weight: 800;

    box-shadow:
        0 14px 32px rgba(8, 184, 11, 0.2);
}

.dfl-mobile-navigation__estimate svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-mobile-navigation__contact {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;

    margin-top: 18px;
}

.dfl-mobile-navigation__contact a {
    color: rgba(255, 255, 255, 0.82);

    font-size: 0.7rem;
    font-weight: 750;
}

.dfl-mobile-navigation__contact span {
    width: 3px;
    height: 3px;

    background: var(--dfl-green-bright);
    border-radius: 50%;
}









































/* =========================================================
   HERO
========================================================= */

.dfl-hero {
    position: relative;

    width: 100%;
    height: var(--dfl-first-screen-height);
    min-height: 0;

    color: var(--dfl-surface);
    background: var(--dfl-green-deep);

    overflow: hidden;
    isolation: isolate;
}


/* =========================================================
   HERO BACKGROUND
========================================================= */

.dfl-hero__media {
    position: absolute;
    inset: 0;
    z-index: -5;

    overflow: hidden;
}

.dfl-hero__media picture {
    position: absolute;
    inset: 0;
}

.dfl-hero__media img {
    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center 55%;

    transform:
        scale(1.055)
        translate3d(
            var(--dfl-hero-image-x, 0),
            var(--dfl-hero-image-y, 0),
            0
        );

    filter:
        saturate(0.93)
        contrast(1.04)
        brightness(0.8);

    will-change: transform;

    transition:
        transform 1300ms var(--dfl-ease);
}

.dfl-hero__overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(5, 30, 16, 0.97) 0%,
            rgba(5, 30, 16, 0.91) 31%,
            rgba(5, 30, 16, 0.6) 58%,
            rgba(5, 30, 16, 0.25) 100%
        );
}

.dfl-hero__light {
    position: absolute;
    inset: 0;

    background:
        radial-gradient(
            circle at 78% 36%,
            rgba(8, 184, 11, 0.16),
            transparent 34%
        ),
        linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.08),
            rgba(0, 0, 0, 0.24)
        );
}

.dfl-hero__texture {
    position: absolute;
    inset: 0;

    opacity: 0.2;

    background-image:
        repeating-linear-gradient(
            0deg,
            rgba(255, 255, 255, 0.018) 0,
            rgba(255, 255, 255, 0.018) 1px,
            transparent 1px,
            transparent 5px
        );

    pointer-events: none;
}


/* =========================================================
   HERO DECORATION
========================================================= */

.dfl-hero__decor {
    position: absolute;
    z-index: -1;

    border-radius: 50%;
    pointer-events: none;
}

.dfl-hero__decor--one {
    top: -190px;
    left: -155px;

    width: 430px;
    height: 430px;

    border:
        1px solid rgba(255, 255, 255, 0.07);
}

.dfl-hero__decor--two {
    right: 23%;
    bottom: -215px;

    width: 390px;
    height: 390px;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.1),
            transparent 68%
        );
}


/* =========================================================
   HERO CONTAINER
========================================================= */

.dfl-hero__container {
    position: relative;
    z-index: 4;

    display: grid;
    grid-template-columns:
        minmax(0, 1.07fr)
        minmax(330px, 0.63fr);
    align-items: center;
    gap: clamp(46px, 6vw, 100px);

    height: 100%;
    padding-top: clamp(26px, 4.6svh, 58px);
    padding-bottom: clamp(66px, 9svh, 96px);
}


/* =========================================================
   HERO CONTENT
========================================================= */

.dfl-hero__content {
    position: relative;

    width: min(100%, 790px);
}

.dfl-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 11px;

    margin-bottom: clamp(15px, 2.2svh, 23px);
    padding: 8px 13px 8px 9px;

    color: rgba(255, 255, 255, 0.87);
    background: rgba(255, 255, 255, 0.075);

    border:
        1px solid rgba(255, 255, 255, 0.13);

    border-radius: var(--dfl-radius-sm);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);

    font-size: clamp(0.62rem, 0.75vw, 0.74rem);
    font-weight: 750;
    line-height: 1;
    letter-spacing: 0.095em;
    text-transform: uppercase;
}

.dfl-hero__eyebrow-icon {
    display: grid;
    place-items: center;

    width: 27px;
    height: 27px;

    color: var(--dfl-green-bright);
    background: rgba(8, 184, 11, 0.13);

    border-radius: var(--dfl-radius-xs);
}

.dfl-hero__eyebrow-icon svg {
    width: 16px;
    height: 16px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-hero__title {
    max-width: 850px;

    color: var(--dfl-surface);

    font-size:
        clamp(
            3.25rem,
            min(6.1vw, 8.4svh),
            6.6rem
        );

    font-weight: 800;
    line-height: 0.91;
    letter-spacing: -0.065em;
    text-wrap: balance;
}

.dfl-hero__title-accent {
    position: relative;

    display: block;

    color: var(--dfl-green-bright);
}

.dfl-hero__title-accent::after {
    content: "";

    position: absolute;
    right: 7%;
    bottom: 0.05em;

    width: 72px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--dfl-gold),
            transparent
        );
}

.dfl-hero__description {
    max-width: 660px;
    margin-top: clamp(17px, 2.7svh, 28px);

    color: rgba(255, 255, 255, 0.72);

    font-size:
        clamp(
            0.9rem,
            min(1.12vw, 1.9svh),
            1.08rem
        );

    line-height: 1.72;
    text-wrap: pretty;
}


/* =========================================================
   HERO BUTTONS
========================================================= */

.dfl-hero__actions {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 13px;

    margin-top: clamp(22px, 3.7svh, 37px);
}

.dfl-hero__button {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 11px;

    min-height: 53px;
    padding: 14px 22px;

    border-radius: var(--dfl-radius-sm);

    overflow: hidden;
    isolation: isolate;

    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease),
        box-shadow var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-hero__button:hover {
    transform: translateY(-3px);
}

.dfl-hero__button--primary {
    min-width: 190px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    box-shadow:
        0 16px 38px rgba(8, 184, 11, 0.26);
}

.dfl-hero__button--primary::before {
    content: "";

    position: absolute;
    inset: 0;
    z-index: -1;

    background: var(--dfl-green-dark);

    transform: translateY(102%);

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-hero__button--primary:hover::before {
    transform: translateY(0);
}

.dfl-hero__button--primary:hover {
    box-shadow:
        0 20px 45px rgba(8, 184, 11, 0.32);
}

.dfl-hero__button--primary svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-hero__button--primary:hover svg {
    transform: translateX(4px);
}

.dfl-hero__button--secondary {
    justify-content: flex-start;

    min-width: 185px;

    color: var(--dfl-surface);
    background: rgba(255, 255, 255, 0.075);

    border:
        1px solid rgba(255, 255, 255, 0.17);

    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.dfl-hero__button--secondary:hover {
    background: rgba(255, 255, 255, 0.13);
    border-color: rgba(255, 255, 255, 0.28);
}

.dfl-hero__call-icon {
    display: grid;
    place-items: center;

    width: 29px;
    height: 29px;

    color: var(--dfl-green-bright);
}

.dfl-hero__call-icon svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-hero__call-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.dfl-hero__call-copy small {
    color: rgba(255, 255, 255, 0.55);

    font-size: 0.56rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.dfl-hero__call-copy strong {
    margin-top: 5px;

    font-size: 0.75rem;
    font-weight: 800;
    line-height: 1;
}


/* =========================================================
   HERO TRUST ITEMS
========================================================= */

.dfl-hero__trust {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: clamp(18px, 2.5vw, 34px);

    margin-top: clamp(23px, 4svh, 40px);
}

.dfl-hero__trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
}

.dfl-hero__trust-item + .dfl-hero__trust-item {
    position: relative;
}

.dfl-hero__trust-item + .dfl-hero__trust-item::before {
    content: "";

    position: absolute;
    left: calc(clamp(18px, 2.5vw, 34px) / -2);

    width: 1px;
    height: 30px;

    background: rgba(255, 255, 255, 0.13);
}

.dfl-hero__trust-icon {
    display: grid;
    place-items: center;

    width: 35px;
    height: 35px;
    flex: 0 0 auto;

    color: var(--dfl-green-bright);
    background: rgba(255, 255, 255, 0.065);

    border:
        1px solid rgba(255, 255, 255, 0.1);

    border-radius: var(--dfl-radius-xs);
}

.dfl-hero__trust-icon svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-hero__trust-item > span:last-child {
    display: flex;
    flex-direction: column;
}

.dfl-hero__trust-item strong {
    color: var(--dfl-surface);

    font-size: 0.69rem;
    font-weight: 800;
    line-height: 1;
}

.dfl-hero__trust-item small {
    margin-top: 5px;

    color: rgba(255, 255, 255, 0.53);

    font-size: 0.59rem;
    font-weight: 600;
    line-height: 1;
}


/* =========================================================
   HERO SERVICE CARD
========================================================= */

.dfl-hero__service-card {
    position: relative;
    justify-self: end;

    width: min(100%, 410px);
    padding: clamp(22px, 2.4vw, 30px);

    color: var(--dfl-text);

    background:
        linear-gradient(
            150deg,
            rgba(255, 255, 255, 0.95),
            rgba(247, 245, 238, 0.91)
        );

    border:
        1px solid rgba(255, 255, 255, 0.52);

    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 28px 70px rgba(0, 0, 0, 0.27);

    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);

    overflow: hidden;

    transform:
        translate3d(
            var(--dfl-hero-card-x, 0),
            var(--dfl-hero-card-y, 0),
            0
        );

    will-change: transform;
}

.dfl-hero__service-card::before {
    content: "";

    position: absolute;
    top: -90px;
    right: -80px;

    width: 210px;
    height: 210px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.14),
            transparent 67%
        );

    pointer-events: none;
}

.dfl-hero__service-card-top {
    position: relative;

    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 22px;

    padding-bottom: 21px;

    border-bottom:
        1px solid rgba(13, 77, 29, 0.12);
}

.dfl-hero__service-card-top > div {
    display: flex;
    flex-direction: column;
}

.dfl-hero__service-card-top span {
    color: var(--dfl-green-primary);

    font-size: 0.61rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.dfl-hero__service-card-top h2 {
    max-width: 260px;
    margin-top: 10px;

    color: var(--dfl-green-forest);

    font-size: clamp(1.15rem, 1.6vw, 1.45rem);
    font-weight: 800;
    line-height: 1.22;
    letter-spacing: -0.038em;
}

.dfl-hero__service-card-mark {
    display: grid;
    place-items: center;

    width: 43px;
    height: 43px;
    flex: 0 0 auto;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-sm);

    box-shadow:
        0 12px 28px rgba(8, 184, 11, 0.24);
}

.dfl-hero__service-card-mark svg {
    width: 22px;
    height: 22px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-hero__service-list {
    display: grid;
    gap: 0;

    margin-top: 9px;
}

.dfl-hero__service-list li {
    display: grid;
    grid-template-columns: 31px 1fr;
    align-items: center;
    gap: 12px;

    min-height: 49px;

    border-bottom:
        1px solid rgba(13, 77, 29, 0.08);
}

.dfl-hero__service-list li > span {
    color: var(--dfl-green-primary);

    font-size: 0.59rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.dfl-hero__service-list strong {
    color: var(--dfl-charcoal-soft);

    font-size: 0.73rem;
    font-weight: 750;
    line-height: 1.35;
}

.dfl-hero__service-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    margin-top: 21px;
}

.dfl-hero__service-card-footer > div {
    display: flex;
    flex-direction: column;
}

.dfl-hero__service-card-footer small {
    color: var(--dfl-text-muted);

    font-size: 0.58rem;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.dfl-hero__service-card-footer strong {
    max-width: 250px;
    margin-top: 7px;

    color: var(--dfl-green-forest);

    font-size: 0.69rem;
    font-weight: 800;
    line-height: 1.4;
}

.dfl-hero__service-card-footer > a {
    display: grid;
    place-items: center;

    width: 41px;
    height: 41px;
    flex: 0 0 auto;

    color: var(--dfl-surface);
    background: var(--dfl-green-dark);

    border-radius: var(--dfl-radius-xs);

    transition:
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-hero__service-card-footer > a:hover {
    background: var(--dfl-green-primary);
    transform: translateX(3px);
}

.dfl-hero__service-card-footer svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   HERO BOTTOM BAR
========================================================= */

.dfl-hero__bottom {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 5;

    height: 55px;

    background: rgba(5, 30, 16, 0.64);

    border-top:
        1px solid rgba(255, 255, 255, 0.09);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.dfl-hero__bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;

    height: 100%;
}

.dfl-hero__bottom p {
    display: flex;
    align-items: center;
    gap: 14px;

    color: rgba(255, 255, 255, 0.54);

    font-size: 0.6rem;
    font-weight: 750;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.dfl-hero__bottom p span {
    width: 3px;
    height: 3px;

    background: var(--dfl-green-bright);
    border-radius: 50%;
}

.dfl-hero__scroll {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    color: rgba(255, 255, 255, 0.74);

    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-hero__scroll:hover {
    color: var(--dfl-green-bright);
}

.dfl-hero__scroll svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;

    animation:
        dflHeroScrollArrow
        1.8s
        var(--dfl-ease)
        infinite;
}

@keyframes dflHeroScrollArrow {

    0%,
    100% {
        transform: translateY(-2px);
    }

    50% {
        transform: translateY(4px);
    }

}


/* =========================================================
   HERO ENTRANCE ANIMATION
========================================================= */

.dfl-hero__eyebrow,
.dfl-hero__title,
.dfl-hero__description,
.dfl-hero__actions,
.dfl-hero__trust,
.dfl-hero__service-card {
    opacity: 0;
}

.dfl-hero__eyebrow {
    transform: translateY(20px);
}

.dfl-hero__title {
    transform: translateY(32px);
}

.dfl-hero__description {
    transform: translateY(27px);
}

.dfl-hero__actions {
    transform: translateY(24px);
}

.dfl-hero__trust {
    transform: translateY(20px);
}

.dfl-hero__service-card {
    transform:
        translate3d(
            calc(var(--dfl-hero-card-x, 0) + 45px),
            calc(var(--dfl-hero-card-y, 0) + 12px),
            0
        );
}

.dfl-hero.dfl-hero--ready
.dfl-hero__eyebrow,
.dfl-hero.dfl-hero--ready
.dfl-hero__title,
.dfl-hero.dfl-hero--ready
.dfl-hero__description,
.dfl-hero.dfl-hero--ready
.dfl-hero__actions,
.dfl-hero.dfl-hero--ready
.dfl-hero__trust,
.dfl-hero.dfl-hero--ready
.dfl-hero__service-card {
    opacity: 1;
}

.dfl-hero.dfl-hero--ready
.dfl-hero__eyebrow {
    transform: translateY(0);

    transition:
        opacity 700ms var(--dfl-ease) 110ms,
        transform 700ms var(--dfl-ease) 110ms;
}

.dfl-hero.dfl-hero--ready
.dfl-hero__title {
    transform: translateY(0);

    transition:
        opacity 900ms var(--dfl-ease) 190ms,
        transform 900ms var(--dfl-ease) 190ms;
}

.dfl-hero.dfl-hero--ready
.dfl-hero__description {
    transform: translateY(0);

    transition:
        opacity 800ms var(--dfl-ease) 310ms,
        transform 800ms var(--dfl-ease) 310ms;
}

.dfl-hero.dfl-hero--ready
.dfl-hero__actions {
    transform: translateY(0);

    transition:
        opacity 750ms var(--dfl-ease) 410ms,
        transform 750ms var(--dfl-ease) 410ms;
}

.dfl-hero.dfl-hero--ready
.dfl-hero__trust {
    transform: translateY(0);

    transition:
        opacity 750ms var(--dfl-ease) 500ms,
        transform 750ms var(--dfl-ease) 500ms;
}

.dfl-hero.dfl-hero--ready
.dfl-hero__service-card {
    transform:
        translate3d(
            var(--dfl-hero-card-x, 0),
            var(--dfl-hero-card-y, 0),
            0
        );

    transition:
        opacity 900ms var(--dfl-ease) 390ms,
        transform 1000ms var(--dfl-ease) 390ms;
}


/* Estado de movimiento reducido controlado por main.js */

html.dfl-reduce-motion
.dfl-hero__scroll svg {
    animation: none;
}

html.dfl-reduce-motion
.dfl-hero__media img,
html.dfl-reduce-motion
.dfl-hero__service-card {
    transform: none !important;
}












































/* =========================================================
   04. TRUST STRIP
========================================================= */

.dfl-trust-strip {
    position: relative;

    width: 100%;
    padding: clamp(46px, 5.5vw, 78px) 0;

    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.96),
            rgba(247, 245, 238, 0.96)
        );

    border-bottom:
        1px solid rgba(13, 77, 29, 0.1);

    overflow: hidden;
    isolation: isolate;
}

.dfl-trust-strip::before {
    content: "";

    position: absolute;
    top: -230px;
    right: -180px;
    z-index: -1;

    width: 470px;
    height: 470px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.085) 0%,
            rgba(19, 138, 36, 0.025) 48%,
            transparent 70%
        );

    pointer-events: none;
}

.dfl-trust-strip::after {
    content: "";

    position: absolute;
    bottom: -175px;
    left: 24%;
    z-index: -1;

    width: 370px;
    height: 370px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(197, 166, 90, 0.09),
            transparent 70%
        );

    pointer-events: none;
}


/* =========================================================
   TRUST CONTAINER
========================================================= */

.dfl-trust-strip__container {
    position: relative;

    display: grid;
    grid-template-columns:
        minmax(250px, 0.66fr)
        minmax(0, 1.75fr);
    gap: clamp(22px, 3vw, 42px);
}


/* =========================================================
   TRUST INTRODUCTION
========================================================= */

.dfl-trust-strip__intro {
    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    min-height: 310px;
    padding: clamp(27px, 3vw, 40px);

    color: var(--dfl-surface);

    background:
        linear-gradient(
            145deg,
            var(--dfl-green-forest) 0%,
            var(--dfl-green-dark) 62%,
            #126022 100%
        );

    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 24px 55px rgba(5, 30, 16, 0.17);

    overflow: hidden;
    isolation: isolate;
}

.dfl-trust-strip__intro::before {
    content: "";

    position: absolute;
    top: -90px;
    right: -80px;
    z-index: -1;

    width: 230px;
    height: 230px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.4),
            rgba(8, 184, 11, 0.08) 48%,
            transparent 70%
        );

    pointer-events: none;
}

.dfl-trust-strip__intro::after {
    content: "";

    position: absolute;
    right: -60px;
    bottom: -85px;
    z-index: -1;

    width: 205px;
    height: 205px;

    border:
        1px solid rgba(255, 255, 255, 0.13);

    border-radius: 50%;

    pointer-events: none;
}

.dfl-trust-strip__intro-decoration {
    position: absolute;
    inset: 0;
    z-index: -1;

    pointer-events: none;
}

.dfl-trust-strip__intro-decoration span:first-child {
    position: absolute;
    top: 0;
    left: 31px;

    width: 1px;
    height: 100%;

    background:
        linear-gradient(
            180deg,
            transparent,
            rgba(255, 255, 255, 0.08),
            transparent
        );
}

.dfl-trust-strip__intro-decoration span:last-child {
    position: absolute;
    right: 25px;
    bottom: 28px;

    width: 58px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--dfl-gold),
            var(--dfl-green-bright)
        );

    border-radius: var(--dfl-radius-round);
}

.dfl-trust-strip__intro-content {
    position: relative;
    z-index: 2;
}

.dfl-trust-strip__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    margin-bottom: 18px;

    color: var(--dfl-green-bright);

    font-size: 0.64rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.dfl-trust-strip__eyebrow::before {
    content: "";

    width: 22px;
    height: 2px;

    background: currentColor;
    border-radius: var(--dfl-radius-round);
}

.dfl-trust-strip__intro h2 {
    max-width: 370px;

    color: var(--dfl-surface);

    font-size: clamp(1.75rem, 2.65vw, 2.75rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.05em;
}

.dfl-trust-strip__intro h2 span {
    display: block;
    color: var(--dfl-sand-light);
}

.dfl-trust-strip__intro p {
    max-width: 390px;
    margin-top: 19px;

    color: rgba(255, 255, 255, 0.66);

    font-size: 0.8rem;
    line-height: 1.7;
}

.dfl-trust-strip__intro-link {
    position: relative;
    z-index: 2;

    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    width: 100%;
    min-height: 48px;
    margin-top: 27px;
    padding: 12px 15px;

    color: var(--dfl-surface);

    background: rgba(255, 255, 255, 0.075);

    border:
        1px solid rgba(255, 255, 255, 0.13);

    border-radius: var(--dfl-radius-sm);

    font-size: 0.72rem;
    font-weight: 800;

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-trust-strip__intro-link:hover {
    color: var(--dfl-green-forest);
    background: var(--dfl-surface);
    border-color: var(--dfl-surface);
    transform: translateY(-2px);
}

.dfl-trust-strip__intro-link svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-trust-strip__intro-link:hover svg {
    transform: translateX(4px);
}


/* =========================================================
   TRUST ITEMS GRID
========================================================= */

.dfl-trust-strip__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(14px, 1.5vw, 22px);
}

.dfl-trust-strip__item {
    position: relative;

    display: flex;
    flex-direction: column;

    min-height: 144px;
    padding: clamp(21px, 2.1vw, 29px);

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.98),
            rgba(251, 250, 246, 0.9)
        );

    border:
        1px solid rgba(13, 77, 29, 0.11);

    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 9px 28px rgba(8, 46, 23, 0.06);

    overflow: hidden;

    transition:
        border-color 500ms var(--dfl-ease),
        box-shadow 500ms var(--dfl-ease),
        transform 500ms var(--dfl-ease);
}

.dfl-trust-strip__item::before {
    content: "";

    position: absolute;
    top: -80px;
    right: -75px;

    width: 160px;
    height: 160px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.09),
            transparent 70%
        );

    opacity: 0;

    transform: scale(0.7);

    transition:
        opacity 500ms var(--dfl-ease),
        transform 650ms var(--dfl-ease);
}

.dfl-trust-strip__item:hover {
    border-color: rgba(19, 138, 36, 0.22);

    box-shadow:
        0 20px 46px rgba(8, 46, 23, 0.1);

    transform: translateY(-5px);
}

.dfl-trust-strip__item:hover::before {
    opacity: 1;
    transform: scale(1);
}

.dfl-trust-strip__item-top {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.dfl-trust-strip__number {
    color: rgba(13, 77, 29, 0.35);

    font-size: 0.61rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.13em;
}

.dfl-trust-strip__icon {
    display: grid;
    place-items: center;

    width: 40px;
    height: 40px;
    flex: 0 0 auto;

    color: var(--dfl-green-primary);

    background:
        linear-gradient(
            145deg,
            rgba(19, 138, 36, 0.12),
            rgba(8, 184, 11, 0.055)
        );

    border:
        1px solid rgba(19, 138, 36, 0.1);

    border-radius: var(--dfl-radius-sm);

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-trust-strip__item:hover
.dfl-trust-strip__icon {
    color: var(--dfl-surface);
    background: var(--dfl-green-primary);
    transform: rotate(-4deg);
}

.dfl-trust-strip__icon svg {
    width: 19px;
    height: 19px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-trust-strip__item-copy {
    position: relative;
    z-index: 2;

    margin-top: 19px;
}

.dfl-trust-strip__item-copy h3 {
    color: var(--dfl-green-forest);

    font-size: clamp(0.96rem, 1.15vw, 1.12rem);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.03em;
}

.dfl-trust-strip__item-copy p {
    max-width: 300px;
    margin-top: 8px;

    color: var(--dfl-text-muted);

    font-size: 0.72rem;
    line-height: 1.58;
}

.dfl-trust-strip__phones {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px 13px;

    margin-top: 13px;
}

.dfl-trust-strip__phones a {
    color: var(--dfl-green-primary);

    font-size: 0.67rem;
    font-weight: 800;
    line-height: 1;

    transition:
        color var(--dfl-transition-fast) var(--dfl-ease);
}

.dfl-trust-strip__phones a:hover {
    color: var(--dfl-green-dark);
}

.dfl-trust-strip__item-line {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;

    height: 3px;

    background:
        linear-gradient(
            90deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary),
            var(--dfl-gold)
        );

    transform: scaleX(0);
    transform-origin: left center;

    transition:
        transform 620ms var(--dfl-ease);
}

.dfl-trust-strip__item:hover
.dfl-trust-strip__item-line {
    transform: scaleX(1);
}


/* =========================================================
   TRUST ENTRANCE ANIMATION
========================================================= */

.dfl-trust-strip__intro,
.dfl-trust-strip__item {
    opacity: 0;
    will-change: transform, opacity;
}

.dfl-trust-strip__intro {
    transform:
        translate3d(-28px, 22px, 0)
        rotateY(3deg);
}

.dfl-trust-strip__item {
    transform: translate3d(0, 28px, 0);
}

.dfl-trust-strip.dfl-trust-strip--visible
.dfl-trust-strip__intro {
    opacity: 1;

    transform:
        translate3d(0, 0, 0)
        rotateY(0deg);

    transition:
        opacity 800ms var(--dfl-ease),
        transform 950ms var(--dfl-ease);
}

.dfl-trust-strip.dfl-trust-strip--visible
.dfl-trust-strip__item {
    opacity: 1;
    transform: translate3d(0, 0, 0);

    transition:
        opacity 700ms var(--dfl-ease),
        transform 820ms var(--dfl-ease),
        border-color 500ms var(--dfl-ease),
        box-shadow 500ms var(--dfl-ease);
}

.dfl-trust-strip.dfl-trust-strip--visible
.dfl-trust-strip__item:nth-child(1) {
    transition-delay: 100ms;
}

.dfl-trust-strip.dfl-trust-strip--visible
.dfl-trust-strip__item:nth-child(2) {
    transition-delay: 180ms;
}

.dfl-trust-strip.dfl-trust-strip--visible
.dfl-trust-strip__item:nth-child(3) {
    transition-delay: 260ms;
}

.dfl-trust-strip.dfl-trust-strip--visible
.dfl-trust-strip__item:nth-child(4) {
    transition-delay: 340ms;
}

html.dfl-reduce-motion
.dfl-trust-strip__intro,
html.dfl-reduce-motion
.dfl-trust-strip__item {
    opacity: 1;
    transform: none;
}









































/* =========================================================
   06. SERVICES
========================================================= */

.dfl-services {
    position: relative;

    width: 100%;
    padding: var(--dfl-section-space) 0;

    background:
        linear-gradient(
            145deg,
            rgba(247, 245, 238, 0.98),
            rgba(240, 244, 234, 0.98)
        );

    overflow: hidden;
    isolation: isolate;
}

.dfl-services__background {
    position: absolute;
    inset: 0;
    z-index: -1;

    pointer-events: none;
    overflow: hidden;
}

.dfl-services__shape {
    position: absolute;
    display: block;

    border-radius: 50%;
}

.dfl-services__shape--one {
    top: -260px;
    right: -220px;

    width: 570px;
    height: 570px;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.1),
            rgba(19, 138, 36, 0.025) 48%,
            transparent 72%
        );
}

.dfl-services__shape--two {
    bottom: -300px;
    left: -220px;

    width: 610px;
    height: 610px;

    background:
        radial-gradient(
            circle,
            rgba(197, 166, 90, 0.12),
            rgba(220, 207, 174, 0.035) 50%,
            transparent 72%
        );
}

.dfl-services__background-line {
    position: absolute;
    top: 0;
    left: 10%;

    width: 1px;
    height: 100%;

    background:
        linear-gradient(
            180deg,
            transparent,
            rgba(13, 77, 29, 0.055),
            transparent
        );
}

.dfl-services__container {
    position: relative;
}


/* =========================================================
   SERVICES HEADER
========================================================= */

.dfl-services__header {
    display: grid;
    grid-template-columns:
        minmax(0, 1.4fr)
        minmax(260px, 0.55fr);
    align-items: end;
    gap: clamp(40px, 6vw, 90px);
}

.dfl-services__heading {
    max-width: 830px;
}

.dfl-services__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin-bottom: 20px;

    color: var(--dfl-green-primary);

    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.dfl-services__eyebrow::before {
    content: "";

    width: 30px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-round);
}

.dfl-services__heading h2 {
    max-width: 810px;

    color: var(--dfl-green-forest);

    font-size: clamp(2.45rem, 5vw, 5.15rem);
    font-weight: 800;
    line-height: 0.99;
    letter-spacing: -0.058em;
}

.dfl-services__heading h2 span {
    display: block;
    color: var(--dfl-green-primary);
}

.dfl-services__heading > p {
    max-width: 690px;
    margin-top: 25px;

    color: var(--dfl-text-muted);

    font-size: clamp(0.94rem, 1.2vw, 1.08rem);
    line-height: 1.8;
}

.dfl-services__summary {
    position: relative;

    padding: 25px;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.94),
            rgba(250, 249, 244, 0.86)
        );

    border:
        1px solid rgba(13, 77, 29, 0.12);

    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 17px 42px rgba(8, 46, 23, 0.08);

    overflow: hidden;
}

.dfl-services__summary::before {
    content: "";

    position: absolute;
    top: -70px;
    right: -65px;

    width: 165px;
    height: 165px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.12),
            transparent 68%
        );
}

.dfl-services__summary-heading {
    position: relative;

    display: flex;
    align-items: center;
    gap: 10px;

    color: var(--dfl-green-primary);

    font-size: 0.61rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.dfl-services__summary-icon {
    display: grid;
    place-items: center;

    width: 36px;
    height: 36px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-xs);
}

.dfl-services__summary-icon svg {
    width: 19px;
    height: 19px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-services__summary > strong {
    position: relative;

    display: block;
    margin-top: 20px;

    color: var(--dfl-green-forest);

    font-size: 1.18rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.035em;
}

.dfl-services__summary > p {
    position: relative;

    margin-top: 10px;

    color: var(--dfl-text-muted);

    font-size: 0.74rem;
    line-height: 1.65;
}

.dfl-services__summary > a {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;

    min-height: 45px;
    margin-top: 19px;
    padding: 11px 14px;

    color: var(--dfl-surface);
    background: var(--dfl-green-dark);

    border-radius: var(--dfl-radius-xs);

    font-size: 0.7rem;
    font-weight: 800;

    transition:
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-services__summary > a:hover {
    background: var(--dfl-green-primary);
    transform: translateY(-2px);
}

.dfl-services__summary > a svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   FILTERS
========================================================= */

.dfl-services__filter-area {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;

    margin-top: clamp(48px, 6vw, 76px);
    padding-bottom: 18px;

    border-bottom:
        1px solid rgba(13, 77, 29, 0.12);
}

.dfl-services__filters {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
}

.dfl-services__filter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    min-height: 44px;
    padding: 10px 15px;

    color: var(--dfl-text-muted);
    background: rgba(255, 255, 255, 0.56);

    border:
        1px solid rgba(13, 77, 29, 0.1);

    border-radius: var(--dfl-radius-xs);

    font-size: 0.7rem;
    font-weight: 800;

    cursor: pointer;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease),
        box-shadow var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-services__filter small {
    color: inherit;

    font-size: 0.56rem;
    font-weight: 800;

    opacity: 0.58;
}

.dfl-services__filter:hover {
    color: var(--dfl-green-dark);

    border-color:
        rgba(19, 138, 36, 0.2);

    transform: translateY(-2px);
}

.dfl-services__filter--active {
    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-dark),
            var(--dfl-green-primary)
        );

    border-color: transparent;

    box-shadow:
        0 10px 25px rgba(8, 46, 23, 0.15);
}

.dfl-services__status {
    color: var(--dfl-text-muted);

    font-size: 0.65rem;
    font-weight: 700;
}


/* =========================================================
   SERVICES GRID
========================================================= */

.dfl-services__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2vw, 26px);

    margin-top: clamp(28px, 4vw, 46px);
}

.dfl-service-card {
    position: relative;

    display: flex;
    flex-direction: column;

    min-width: 0;
    min-height: 480px;

    color: var(--dfl-text);

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.98),
            rgba(250, 249, 244, 0.92)
        );

    border:
        1px solid rgba(13, 77, 29, 0.11);

    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 12px 34px rgba(8, 46, 23, 0.07);

    overflow: hidden;
    isolation: isolate;

    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);

    transition:
        opacity 280ms var(--dfl-ease),
        transform 550ms var(--dfl-ease),
        border-color 450ms var(--dfl-ease),
        box-shadow 550ms var(--dfl-ease);
}

.dfl-service-card[hidden] {
    display: none;
}

.dfl-service-card.dfl-service-card--filtered-out {
    opacity: 0;

    transform:
        translate3d(0, 12px, 0)
        scale(0.965);

    pointer-events: none;
}

.dfl-service-card:hover {
    border-color:
        rgba(19, 138, 36, 0.27);

    box-shadow:
        0 26px 62px rgba(8, 46, 23, 0.14);

    transform: translateY(-8px);
}

.dfl-service-card:focus-visible {
    outline:
        3px solid rgba(8, 184, 11, 0.42);

    outline-offset: 5px;
}

.dfl-service-card--featured {
    grid-column: span 2;
}

.dfl-service-card__media {
    position: relative;

    height: 235px;

    background: var(--dfl-green-forest);

    overflow: hidden;
}

.dfl-service-card--featured
.dfl-service-card__media {
    height: 290px;
}

.dfl-service-card__media picture {
    position: absolute;
    inset: 0;
}

.dfl-service-card__media img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    filter:
        saturate(0.92)
        contrast(1.03);

    transform: scale(1.01);

    transition:
        transform 950ms var(--dfl-ease),
        filter 650ms var(--dfl-ease);
}

.dfl-service-card:hover
.dfl-service-card__media img {
    filter:
        saturate(1.04)
        contrast(1.04);

    transform: scale(1.075);
}

.dfl-service-card__image-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(5, 30, 16, 0.02) 30%,
            rgba(5, 30, 16, 0.58) 100%
        );

    transition:
        background-color var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-service-card__featured-label {
    position: absolute;
    top: 18px;
    left: 18px;

    display: inline-flex;
    align-items: center;

    min-height: 32px;
    padding: 8px 12px;

    color: var(--dfl-surface);

    background:
        rgba(5, 30, 16, 0.74);

    border:
        1px solid rgba(255, 255, 255, 0.15);

    border-radius: var(--dfl-radius-xs);

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.dfl-service-card__body {
    position: relative;

    display: flex;
    flex: 1;
    flex-direction: column;

    padding: clamp(21px, 2.2vw, 29px);
}

.dfl-service-card__body::before {
    content: "";

    position: absolute;
    top: -55px;
    right: -50px;

    width: 135px;
    height: 135px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.1),
            transparent 68%
        );

    opacity: 0;

    transform: scale(0.7);

    transition:
        opacity 550ms var(--dfl-ease),
        transform 700ms var(--dfl-ease);

    pointer-events: none;
}

.dfl-service-card:hover
.dfl-service-card__body::before {
    opacity: 1;
    transform: scale(1);
}

.dfl-service-card__meta {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.dfl-service-card__number {
    color: rgba(13, 77, 29, 0.42);

    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.dfl-service-card__category {
    color: var(--dfl-green-primary);

    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-align: right;
    text-transform: uppercase;
}

.dfl-service-card__content {
    position: relative;

    margin-top: 21px;
}

.dfl-service-card__content h3 {
    color: var(--dfl-green-forest);

    font-size: clamp(1.25rem, 1.8vw, 1.72rem);
    font-weight: 800;
    line-height: 1.13;
    letter-spacing: -0.042em;
}

.dfl-service-card__content p {
    max-width: 520px;
    margin-top: 12px;

    color: var(--dfl-text-muted);

    font-size: 0.76rem;
    line-height: 1.72;
}

.dfl-service-card__features {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 17px;

    margin-top: 18px;
}

.dfl-service-card__features li {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    color: var(--dfl-charcoal-soft);

    font-size: 0.66rem;
    font-weight: 700;
}

.dfl-service-card__features svg {
    width: 14px;
    height: 14px;

    fill: none;
    stroke: var(--dfl-green-primary);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-service-card__action {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;

    min-height: 46px;
    margin-top: auto;
    padding-top: 20px;

    color: var(--dfl-green-dark);

    border-top:
        1px solid rgba(13, 77, 29, 0.1);

    font-size: 0.69rem;
    font-weight: 800;
}

.dfl-service-card__arrow {
    display: grid;
    place-items: center;

    width: 38px;
    height: 38px;
    flex: 0 0 auto;

    color: var(--dfl-surface);
    background: var(--dfl-green-dark);

    border-radius: var(--dfl-radius-xs);

    transition:
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-service-card:hover
.dfl-service-card__arrow {
    background: var(--dfl-green-primary);
    transform: translateX(4px);
}

.dfl-service-card__arrow svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   BOTTOM CTA
========================================================= */

.dfl-services__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;

    margin-top: clamp(30px, 4vw, 50px);
    padding: clamp(24px, 3vw, 35px);

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-forest),
            var(--dfl-green-dark)
        );

    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 23px 56px rgba(5, 30, 16, 0.16);

    overflow: hidden;
}

.dfl-services__bottom-copy {
    display: flex;
    align-items: center;
    gap: 17px;
}

.dfl-services__bottom-icon {
    display: grid;
    place-items: center;

    width: 48px;
    height: 48px;
    flex: 0 0 auto;

    color: var(--dfl-green-bright);

    background: rgba(255, 255, 255, 0.08);

    border:
        1px solid rgba(255, 255, 255, 0.12);

    border-radius: var(--dfl-radius-sm);
}

.dfl-services__bottom-icon svg {
    width: 23px;
    height: 23px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-services__bottom-copy strong {
    display: block;

    font-size: clamp(1.05rem, 1.7vw, 1.4rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.035em;
}

.dfl-services__bottom-copy p {
    margin-top: 7px;

    color: rgba(255, 255, 255, 0.64);

    font-size: 0.72rem;
    line-height: 1.55;
}

.dfl-services__bottom-actions {
    display: flex;
    align-items: center;
    gap: 13px;
    flex: 0 0 auto;
}

.dfl-services__bottom-call {
    display: flex;
    flex-direction: column;
    align-items: flex-end;

    color: var(--dfl-surface);
}

.dfl-services__bottom-call span {
    color: rgba(255, 255, 255, 0.55);

    font-size: 0.57rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.dfl-services__bottom-call strong {
    margin-top: 5px;

    font-size: 0.76rem;
    font-weight: 800;
}

.dfl-services__bottom-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    min-height: 49px;
    padding: 13px 18px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-sm);

    font-size: 0.72rem;
    font-weight: 800;

    box-shadow:
        0 13px 30px rgba(8, 184, 11, 0.21);

    transition:
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        box-shadow var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-services__bottom-button:hover {
    box-shadow:
        0 18px 38px rgba(8, 184, 11, 0.28);

    transform: translateY(-2px);
}

.dfl-services__bottom-button svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   SECTION ENTRANCE
========================================================= */

.dfl-services__header,
.dfl-services__filter-area,
.dfl-service-card,
.dfl-services__bottom {
    opacity: 0;
    will-change: transform, opacity;
}

.dfl-services__header {
    transform: translateY(34px);
}

.dfl-services__filter-area {
    transform: translateY(24px);
}

.dfl-service-card {
    transform: translateY(32px);
}

.dfl-services__bottom {
    transform: translateY(26px);
}

.dfl-services.dfl-services--visible
.dfl-services__header,
.dfl-services.dfl-services--visible
.dfl-services__filter-area,
.dfl-services.dfl-services--visible
.dfl-service-card,
.dfl-services.dfl-services--visible
.dfl-services__bottom {
    opacity: 1;
    transform: translateY(0);
}

.dfl-services.dfl-services--visible
.dfl-services__header {
    transition:
        opacity 800ms var(--dfl-ease),
        transform 900ms var(--dfl-ease);
}

.dfl-services.dfl-services--visible
.dfl-services__filter-area {
    transition:
        opacity 750ms var(--dfl-ease) 130ms,
        transform 800ms var(--dfl-ease) 130ms;
}

.dfl-services.dfl-services--visible
.dfl-service-card {
    transition:
        opacity 700ms var(--dfl-ease),
        transform 760ms var(--dfl-ease),
        border-color 450ms var(--dfl-ease),
        box-shadow 550ms var(--dfl-ease);
}

.dfl-services.dfl-services--visible
.dfl-service-card:nth-child(1) {
    transition-delay: 180ms;
}

.dfl-services.dfl-services--visible
.dfl-service-card:nth-child(2) {
    transition-delay: 240ms;
}

.dfl-services.dfl-services--visible
.dfl-service-card:nth-child(3) {
    transition-delay: 300ms;
}

.dfl-services.dfl-services--visible
.dfl-service-card:nth-child(4) {
    transition-delay: 360ms;
}

.dfl-services.dfl-services--visible
.dfl-service-card:nth-child(5) {
    transition-delay: 420ms;
}

.dfl-services.dfl-services--visible
.dfl-service-card:nth-child(6) {
    transition-delay: 480ms;
}

.dfl-services.dfl-services--visible
.dfl-service-card:nth-child(7) {
    transition-delay: 540ms;
}

.dfl-services.dfl-services--visible
.dfl-service-card:nth-child(8) {
    transition-delay: 600ms;
}

.dfl-services.dfl-services--visible
.dfl-services__bottom {
    transition:
        opacity 750ms var(--dfl-ease) 650ms,
        transform 850ms var(--dfl-ease) 650ms;
}

html.dfl-reduce-motion
.dfl-services__header,
html.dfl-reduce-motion
.dfl-services__filter-area,
html.dfl-reduce-motion
.dfl-service-card,
html.dfl-reduce-motion
.dfl-services__bottom {
    opacity: 1;
    transform: none;
}










































/* =========================================================
   08. WHY CHOOSE US
========================================================= */

.dfl-why {
    position: relative;

    width: 100%;
    padding: var(--dfl-section-space) 0;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            145deg,
            var(--dfl-green-deep) 0%,
            var(--dfl-green-forest) 52%,
            #0B3A1C 100%
        );

    overflow: hidden;
    isolation: isolate;
}

.dfl-why__background {
    position: absolute;
    inset: 0;
    z-index: -1;

    pointer-events: none;
    overflow: hidden;
}

.dfl-why__background::before {
    content: "";

    position: absolute;
    inset: 0;

    opacity: 0.22;

    background-image:
        repeating-linear-gradient(
            0deg,
            rgba(255, 255, 255, 0.018) 0,
            rgba(255, 255, 255, 0.018) 1px,
            transparent 1px,
            transparent 6px
        );
}

.dfl-why__glow {
    position: absolute;
    display: block;

    border-radius: 50%;
    filter: blur(2px);
}

.dfl-why__glow--one {
    top: -270px;
    right: -200px;

    width: 610px;
    height: 610px;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.2),
            rgba(8, 184, 11, 0.04) 46%,
            transparent 71%
        );
}

.dfl-why__glow--two {
    bottom: -330px;
    left: -250px;

    width: 670px;
    height: 670px;

    background:
        radial-gradient(
            circle,
            rgba(197, 166, 90, 0.14),
            transparent 70%
        );
}

.dfl-why__background-line {
    position: absolute;
    display: block;

    background:
        linear-gradient(
            180deg,
            transparent,
            rgba(255, 255, 255, 0.065),
            transparent
        );
}

.dfl-why__background-line--one {
    top: 0;
    left: 9%;

    width: 1px;
    height: 100%;
}

.dfl-why__background-line--two {
    top: 0;
    right: 14%;

    width: 1px;
    height: 100%;
}

.dfl-why__container {
    position: relative;
}


/* =========================================================
   HEADING
========================================================= */

.dfl-why__header {
    display: grid;
    grid-template-columns:
        minmax(0, 1.45fr)
        minmax(270px, 0.55fr);
    align-items: end;
    gap: clamp(44px, 7vw, 108px);
}

.dfl-why__heading {
    max-width: 880px;
}

.dfl-why__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin-bottom: 22px;

    color: var(--dfl-green-bright);

    font-size: 0.7rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.dfl-why__eyebrow::before {
    content: "";

    width: 31px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--dfl-gold),
            var(--dfl-green-bright)
        );

    border-radius: var(--dfl-radius-round);
}

.dfl-why__heading h2 {
    max-width: 860px;

    color: var(--dfl-surface);

    font-size: clamp(2.45rem, 5.1vw, 5.25rem);
    font-weight: 800;
    line-height: 0.99;
    letter-spacing: -0.06em;
}

.dfl-why__heading h2 span {
    display: block;
    color: var(--dfl-sand-light);
}

.dfl-why__header-copy {
    padding-bottom: 7px;
}

.dfl-why__header-copy p {
    color: rgba(255, 255, 255, 0.67);

    font-size: clamp(0.86rem, 1.05vw, 1rem);
    line-height: 1.78;
}

.dfl-why__header-link {
    display: inline-flex;
    align-items: center;
    gap: 11px;

    margin-top: 22px;

    color: var(--dfl-green-bright);

    font-size: 0.71rem;
    font-weight: 800;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-why__header-link:hover {
    color: var(--dfl-surface);
    transform: translateX(3px);
}

.dfl-why__header-link svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-why__header-link:hover svg {
    transform: translateX(4px);
}


/* =========================================================
   MAIN LAYOUT
========================================================= */

.dfl-why__layout {
    display: grid;
    grid-template-columns:
        minmax(330px, 0.74fr)
        minmax(0, 1.26fr);
    align-items: stretch;
    gap: clamp(22px, 3vw, 40px);

    margin-top: clamp(52px, 7vw, 90px);
}


/* =========================================================
   VISUAL
========================================================= */

.dfl-why__visual {
    position: relative;

    min-height: 690px;

    border:
        1px solid rgba(255, 255, 255, 0.13);

    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 30px 80px rgba(0, 0, 0, 0.25);

    overflow: hidden;
    isolation: isolate;
}

.dfl-why__picture {
    position: absolute;
    inset: 0;
    z-index: -4;
}

.dfl-why__picture img {
    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;

    filter:
        saturate(0.9)
        contrast(1.04)
        brightness(0.82);

    transform:
        scale(1.045)
        translate3d(
            var(--dfl-why-image-x, 0px),
            var(--dfl-why-image-y, 0px),
            0
        );

    transition:
        transform 1000ms var(--dfl-ease),
        filter 650ms var(--dfl-ease);

    will-change: transform;
}

.dfl-why__visual:hover
.dfl-why__picture img {
    filter:
        saturate(1)
        contrast(1.05)
        brightness(0.86);

    transform:
        scale(1.075)
        translate3d(
            var(--dfl-why-image-x, 0px),
            var(--dfl-why-image-y, 0px),
            0
        );
}

.dfl-why__visual-overlay {
    position: absolute;
    inset: 0;
    z-index: -3;

    background:
        linear-gradient(
            180deg,
            rgba(5, 30, 16, 0.18) 0%,
            rgba(5, 30, 16, 0.25) 35%,
            rgba(5, 30, 16, 0.91) 100%
        );
}

.dfl-why__visual-light {
    position: absolute;
    inset: 0;
    z-index: -2;

    background:
        radial-gradient(
            circle at
            var(--dfl-why-light-x, 70%)
            var(--dfl-why-light-y, 25%),
            rgba(8, 184, 11, 0.2),
            transparent 29%
        );

    pointer-events: none;
}

.dfl-why__visual-top {
    position: absolute;
    top: 24px;
    right: 24px;
    left: 24px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.dfl-why__visual-label {
    display: inline-flex;
    align-items: center;

    min-height: 34px;
    padding: 8px 12px;

    color: var(--dfl-surface);
    background: rgba(5, 30, 16, 0.66);

    border:
        1px solid rgba(255, 255, 255, 0.14);

    border-radius: var(--dfl-radius-xs);

    backdrop-filter: blur(11px);
    -webkit-backdrop-filter: blur(11px);

    font-size: 0.59rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.dfl-why__visual-icon {
    display: grid;
    place-items: center;

    width: 45px;
    height: 45px;
    flex: 0 0 auto;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-sm);

    box-shadow:
        0 14px 32px rgba(8, 184, 11, 0.24);
}

.dfl-why__visual-icon svg {
    width: 23px;
    height: 23px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-why__visual-content {
    position: absolute;
    right: clamp(23px, 3vw, 38px);
    bottom: 112px;
    left: clamp(23px, 3vw, 38px);
}

.dfl-why__visual-content > span {
    color: var(--dfl-green-bright);

    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.dfl-why__visual-content h3 {
    max-width: 520px;
    margin-top: 13px;

    color: var(--dfl-surface);

    font-size: clamp(1.75rem, 2.8vw, 3rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.05em;
}

.dfl-why__visual-content p {
    max-width: 470px;
    margin-top: 15px;

    color: rgba(255, 255, 255, 0.65);

    font-size: 0.76rem;
    line-height: 1.7;
}

.dfl-why__visual-footer {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    min-height: 82px;
    padding: 18px clamp(23px, 3vw, 38px);

    background: rgba(5, 30, 16, 0.73);

    border-top:
        1px solid rgba(255, 255, 255, 0.11);

    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.dfl-why__visual-footer > div {
    display: flex;
    flex-direction: column;
}

.dfl-why__visual-footer small {
    color: rgba(255, 255, 255, 0.49);

    font-size: 0.57rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.dfl-why__visual-footer strong {
    margin-top: 6px;

    color: var(--dfl-surface);

    font-size: 0.76rem;
    font-weight: 800;
}

.dfl-why__visual-footer > a {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    min-height: 43px;
    padding: 10px 14px;

    color: var(--dfl-surface);
    background: rgba(255, 255, 255, 0.08);

    border:
        1px solid rgba(255, 255, 255, 0.13);

    border-radius: var(--dfl-radius-xs);

    font-size: 0.68rem;
    font-weight: 800;

    transition:
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-why__visual-footer > a:hover {
    background: var(--dfl-green-primary);
    border-color: var(--dfl-green-primary);
    transform: translateY(-2px);
}

.dfl-why__visual-footer svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   REASONS GRID
========================================================= */

.dfl-why__reasons {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(14px, 1.5vw, 21px);
}

.dfl-why-card {
    position: relative;

    display: flex;
    flex-direction: column;

    min-height: 230px;
    padding: clamp(23px, 2.4vw, 31px);

    color: var(--dfl-text);

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.97),
            rgba(247, 245, 238, 0.93)
        );

    border:
        1px solid rgba(255, 255, 255, 0.22);

    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 17px 44px rgba(0, 0, 0, 0.11);

    overflow: hidden;

    transition:
        transform 550ms var(--dfl-ease),
        border-color 450ms var(--dfl-ease),
        box-shadow 550ms var(--dfl-ease);
}

.dfl-why-card::before {
    content: "";

    position: absolute;
    top: -85px;
    right: -75px;

    width: 180px;
    height: 180px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.13),
            transparent 68%
        );

    opacity: 0;
    transform: scale(0.7);

    transition:
        opacity 500ms var(--dfl-ease),
        transform 650ms var(--dfl-ease);
}

.dfl-why-card:hover {
    border-color: rgba(8, 184, 11, 0.28);

    box-shadow:
        0 25px 56px rgba(0, 0, 0, 0.17);

    transform: translateY(-6px);
}

.dfl-why-card:hover::before {
    opacity: 1;
    transform: scale(1);
}

.dfl-why-card__heading {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.dfl-why-card__number {
    color: rgba(13, 77, 29, 0.38);

    font-size: 0.61rem;
    font-weight: 800;
    letter-spacing: 0.13em;
}

.dfl-why-card__icon {
    display: grid;
    place-items: center;

    width: 42px;
    height: 42px;
    flex: 0 0 auto;

    color: var(--dfl-green-primary);

    background:
        linear-gradient(
            145deg,
            rgba(19, 138, 36, 0.13),
            rgba(8, 184, 11, 0.055)
        );

    border:
        1px solid rgba(19, 138, 36, 0.1);

    border-radius: var(--dfl-radius-sm);

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-why-card:hover
.dfl-why-card__icon {
    color: var(--dfl-surface);
    background: var(--dfl-green-primary);
    transform: rotate(-5deg);
}

.dfl-why-card__icon svg {
    width: 20px;
    height: 20px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-why-card__content {
    position: relative;

    margin-top: 21px;
}

.dfl-why-card__content h3 {
    color: var(--dfl-green-forest);

    font-size: clamp(1.05rem, 1.35vw, 1.3rem);
    font-weight: 800;
    line-height: 1.18;
    letter-spacing: -0.036em;
}

.dfl-why-card__content p {
    margin-top: 11px;

    color: var(--dfl-text-muted);

    font-size: 0.73rem;
    line-height: 1.68;
}

.dfl-why-card__phones {
    position: relative;

    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;

    margin-top: 16px;
}

.dfl-why-card__phones a {
    color: var(--dfl-green-primary);

    font-size: 0.67rem;
    font-weight: 800;

    transition:
        color var(--dfl-transition-fast) var(--dfl-ease);
}

.dfl-why-card__phones a:hover {
    color: var(--dfl-green-dark);
}

.dfl-why-card__line {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;

    height: 3px;

    background:
        linear-gradient(
            90deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary),
            var(--dfl-gold)
        );

    transform: scaleX(0);
    transform-origin: left center;

    transition:
        transform 620ms var(--dfl-ease);
}

.dfl-why-card:hover
.dfl-why-card__line {
    transform: scaleX(1);
}


/* =========================================================
   CONTACT PANEL
========================================================= */

.dfl-why__contact-panel {
    grid-column: 1 / -1;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;

    min-height: 145px;
    padding: clamp(25px, 3vw, 37px);

    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.09),
            rgba(255, 255, 255, 0.045)
        );

    border:
        1px solid rgba(255, 255, 255, 0.13);

    border-radius: var(--dfl-radius-md);

    backdrop-filter: blur(13px);
    -webkit-backdrop-filter: blur(13px);
}

.dfl-why__contact-copy > span {
    color: var(--dfl-green-bright);

    font-size: 0.61rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.dfl-why__contact-copy strong {
    display: block;
    margin-top: 9px;

    color: var(--dfl-surface);

    font-size: clamp(1.25rem, 2vw, 1.8rem);
    font-weight: 800;
    line-height: 1.14;
    letter-spacing: -0.04em;
}

.dfl-why__contact-copy p {
    max-width: 480px;
    margin-top: 9px;

    color: rgba(255, 255, 255, 0.6);

    font-size: 0.71rem;
    line-height: 1.6;
}

.dfl-why__contact-actions {
    display: flex;
    align-items: center;
    gap: 11px;
    flex: 0 0 auto;
}

.dfl-why__contact-primary,
.dfl-why__contact-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 48px;
    padding: 13px 17px;

    border-radius: var(--dfl-radius-sm);

    font-size: 0.7rem;
    font-weight: 800;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-why__contact-primary {
    gap: 9px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    box-shadow:
        0 13px 31px rgba(8, 184, 11, 0.22);
}

.dfl-why__contact-primary:hover {
    transform: translateY(-2px);
}

.dfl-why__contact-primary svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-why__contact-secondary {
    color: var(--dfl-surface);
    background: rgba(255, 255, 255, 0.055);

    border:
        1px solid rgba(255, 255, 255, 0.14);
}

.dfl-why__contact-secondary:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.25);
    transform: translateY(-2px);
}


/* =========================================================
   PROGRESSIVE ENHANCEMENT ANIMATIONS
========================================================= */

/*
 * Sin JavaScript todo permanece visible.
 * JavaScript agrega dfl-why--motion-ready únicamente cuando
 * la animación puede ejecutarse.
 */

.dfl-why.dfl-why--motion-ready
[data-dfl-why-reveal] {
    opacity: 0;
    will-change: transform, opacity;
}

.dfl-why.dfl-why--motion-ready
[data-dfl-why-reveal="header"] {
    transform: translateY(34px);
}

.dfl-why.dfl-why--motion-ready
[data-dfl-why-reveal="visual"] {
    transform:
        translate3d(-34px, 26px, 0)
        scale(0.985);
}

.dfl-why.dfl-why--motion-ready
[data-dfl-why-reveal="card"] {
    transform: translateY(28px);
}

.dfl-why.dfl-why--motion-ready
[data-dfl-why-reveal="contact"] {
    transform: translateY(24px);
}

.dfl-why.dfl-why--visible
[data-dfl-why-reveal] {
    opacity: 1;
    transform: none;
}

.dfl-why.dfl-why--visible
[data-dfl-why-reveal="header"] {
    transition:
        opacity 800ms var(--dfl-ease),
        transform 900ms var(--dfl-ease);
}

.dfl-why.dfl-why--visible
[data-dfl-why-reveal="visual"] {
    transition:
        opacity 850ms var(--dfl-ease) 130ms,
        transform 1000ms var(--dfl-ease) 130ms;
}

.dfl-why.dfl-why--visible
.dfl-why-card:nth-child(1) {
    transition:
        opacity 700ms var(--dfl-ease) 180ms,
        transform 800ms var(--dfl-ease) 180ms,
        border-color 450ms var(--dfl-ease),
        box-shadow 550ms var(--dfl-ease);
}

.dfl-why.dfl-why--visible
.dfl-why-card:nth-child(2) {
    transition:
        opacity 700ms var(--dfl-ease) 250ms,
        transform 800ms var(--dfl-ease) 250ms,
        border-color 450ms var(--dfl-ease),
        box-shadow 550ms var(--dfl-ease);
}

.dfl-why.dfl-why--visible
.dfl-why-card:nth-child(3) {
    transition:
        opacity 700ms var(--dfl-ease) 320ms,
        transform 800ms var(--dfl-ease) 320ms,
        border-color 450ms var(--dfl-ease),
        box-shadow 550ms var(--dfl-ease);
}

.dfl-why.dfl-why--visible
.dfl-why-card:nth-child(4) {
    transition:
        opacity 700ms var(--dfl-ease) 390ms,
        transform 800ms var(--dfl-ease) 390ms,
        border-color 450ms var(--dfl-ease),
        box-shadow 550ms var(--dfl-ease);
}

.dfl-why.dfl-why--visible
[data-dfl-why-reveal="contact"] {
    transition:
        opacity 750ms var(--dfl-ease) 470ms,
        transform 850ms var(--dfl-ease) 470ms;
}

html.dfl-reduce-motion
.dfl-why [data-dfl-why-reveal] {
    opacity: 1;
    transform: none;
}






































/* =========================================================
   12. CUSTOMER REVIEWS
========================================================= */

.dfl-reviews {
    position: relative;

    width: 100%;
    padding: var(--dfl-section-space) 0;

    color: var(--dfl-text);

    background:
        linear-gradient(
            145deg,
            rgba(250, 249, 244, 0.99),
            rgba(240, 244, 234, 0.98)
        );

    overflow: hidden;
    isolation: isolate;
}

.dfl-reviews__background {
    position: absolute;
    inset: 0;
    z-index: -1;

    pointer-events: none;
    overflow: hidden;
}

.dfl-reviews__background::before {
    content: "";

    position: absolute;
    inset: 0;

    opacity: 0.2;

    background-image:
        radial-gradient(
            rgba(13, 77, 29, 0.11) 0.75px,
            transparent 0.75px
        );

    background-size: 26px 26px;

    mask-image:
        linear-gradient(
            90deg,
            transparent,
            black 24%,
            black 76%,
            transparent
        );
}

.dfl-reviews__glow,
.dfl-reviews__ring {
    position: absolute;
    display: block;

    border-radius: 50%;
}

.dfl-reviews__glow--one {
    top: -290px;
    right: -220px;

    width: 650px;
    height: 650px;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.12),
            rgba(19, 138, 36, 0.025) 49%,
            transparent 72%
        );
}

.dfl-reviews__glow--two {
    bottom: -330px;
    left: -250px;

    width: 690px;
    height: 690px;

    background:
        radial-gradient(
            circle,
            rgba(197, 166, 90, 0.14),
            rgba(220, 207, 174, 0.035) 48%,
            transparent 72%
        );
}

.dfl-reviews__ring--one {
    top: 13%;
    right: 7%;

    width: 230px;
    height: 230px;

    border:
        1px solid rgba(13, 77, 29, 0.075);
}

.dfl-reviews__ring--two {
    top: calc(13% + 31px);
    right: calc(7% + 31px);

    width: 168px;
    height: 168px;

    border:
        1px solid rgba(19, 138, 36, 0.07);
}

.dfl-reviews__vertical-line {
    position: absolute;
    top: 0;
    left: 9%;

    width: 1px;
    height: 100%;

    background:
        linear-gradient(
            180deg,
            transparent,
            rgba(13, 77, 29, 0.07),
            transparent
        );
}

.dfl-reviews__leaf-decoration {
    position: absolute;
    right: -60px;
    bottom: -75px;

    width: min(34vw, 430px);
    height: auto;

    fill: rgba(19, 138, 36, 0.025);
    stroke: rgba(13, 77, 29, 0.09);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;

    transform: rotate(8deg);
}

.dfl-reviews__large-quote {
    position: absolute;
    top: 90px;
    left: 3%;

    color: rgba(19, 138, 36, 0.045);

    font-family: Georgia, serif;
    font-size: clamp(13rem, 22vw, 25rem);
    font-weight: 700;
    line-height: 0.75;

    transform: rotate(-7deg);
}


/* =========================================================
   CONTAINER
========================================================= */

.dfl-reviews__container {
    position: relative;
}


/* =========================================================
   SECTION HEADER
========================================================= */

.dfl-reviews__header {
    display: grid;
    grid-template-columns:
        minmax(0, 1.45fr)
        minmax(270px, 0.55fr);
    align-items: end;
    gap: clamp(42px, 7vw, 105px);
}

.dfl-reviews__heading {
    max-width: 900px;
}

.dfl-reviews__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin-bottom: 21px;

    color: var(--dfl-green-primary);

    font-size: 0.7rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.dfl-reviews__eyebrow::before {
    content: "";

    width: 31px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--dfl-gold),
            var(--dfl-green-bright)
        );

    border-radius: var(--dfl-radius-round);
}

.dfl-reviews__heading h2 {
    max-width: 880px;

    color: var(--dfl-green-forest);

    font-size: clamp(2.45rem, 5.1vw, 5.25rem);
    font-weight: 800;
    line-height: 0.99;
    letter-spacing: -0.06em;
}

.dfl-reviews__heading h2 span {
    display: block;
    color: var(--dfl-green-primary);
}

.dfl-reviews__header-copy {
    padding-bottom: 6px;
}

.dfl-reviews__header-copy > p {
    color: var(--dfl-text-muted);

    font-size: clamp(0.86rem, 1.05vw, 1rem);
    line-height: 1.78;
}

.dfl-reviews__header-tags {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;

    margin-top: 19px;
}

.dfl-reviews__header-tags span {
    display: inline-flex;
    align-items: center;

    min-height: 31px;
    padding: 7px 10px;

    color: var(--dfl-green-dark);
    background: rgba(255, 255, 255, 0.67);

    border:
        1px solid rgba(13, 77, 29, 0.11);

    border-radius: var(--dfl-radius-xs);

    font-size: 0.59rem;
    font-weight: 800;
    letter-spacing: 0.045em;
}


/* =========================================================
   MAIN LAYOUT
========================================================= */

.dfl-reviews__layout {
    display: grid;
    grid-template-columns:
        minmax(295px, 0.54fr)
        minmax(0, 1.46fr);
    align-items: stretch;
    gap: clamp(20px, 2.5vw, 34px);

    margin-top: clamp(50px, 7vw, 88px);
}


/* =========================================================
   STORY PANEL
========================================================= */

.dfl-reviews__story {
    position: relative;

    display: flex;
    flex-direction: column;

    min-height: 625px;
    padding: clamp(25px, 3vw, 38px);

    color: var(--dfl-surface);

    background:
        linear-gradient(
            145deg,
            var(--dfl-green-deep),
            var(--dfl-green-forest) 58%,
            var(--dfl-green-dark)
        );

    border:
        1px solid rgba(13, 77, 29, 0.15);

    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 28px 70px rgba(5, 30, 16, 0.2);

    overflow: hidden;
    isolation: isolate;
}

.dfl-reviews__story::before {
    content: "";

    position: absolute;
    top: -120px;
    right: -110px;
    z-index: -1;

    width: 300px;
    height: 300px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.36),
            rgba(8, 184, 11, 0.06) 50%,
            transparent 70%
        );
}

.dfl-reviews__story::after {
    content: "";

    position: absolute;
    right: -65px;
    bottom: -80px;
    z-index: -1;

    width: 230px;
    height: 230px;

    border:
        1px solid rgba(255, 255, 255, 0.1);

    border-radius: 50%;
}

.dfl-reviews__story-light {
    position: absolute;
    inset: 0;
    z-index: -1;

    background:
        radial-gradient(
            circle at
            var(--dfl-reviews-light-x, 75%)
            var(--dfl-reviews-light-y, 20%),
            rgba(8, 184, 11, 0.18),
            transparent 29%
        );

    pointer-events: none;
}

.dfl-reviews__story-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.dfl-reviews__story-label {
    display: inline-flex;
    align-items: center;

    min-height: 33px;
    padding: 8px 11px;

    color: rgba(255, 255, 255, 0.82);
    background: rgba(255, 255, 255, 0.07);

    border:
        1px solid rgba(255, 255, 255, 0.12);

    border-radius: var(--dfl-radius-xs);

    font-size: 0.57rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.dfl-reviews__story-icon {
    display: grid;
    place-items: center;

    width: 44px;
    height: 44px;
    flex: 0 0 auto;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-sm);

    box-shadow:
        0 14px 32px rgba(8, 184, 11, 0.24);
}

.dfl-reviews__story-icon svg {
    width: 22px;
    height: 22px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-reviews__story-content {
    margin-top: clamp(55px, 6vw, 92px);
}

.dfl-reviews__story-quote {
    display: block;

    height: 57px;

    color: var(--dfl-green-bright);

    font-family: Georgia, serif;
    font-size: 6.5rem;
    line-height: 0.88;
}

.dfl-reviews__story-content h3 {
    max-width: 420px;
    margin-top: 12px;

    color: var(--dfl-surface);

    font-size: clamp(1.65rem, 2.6vw, 2.75rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.05em;
}

.dfl-reviews__story-content p {
    max-width: 420px;
    margin-top: 17px;

    color: rgba(255, 255, 255, 0.64);

    font-size: 0.75rem;
    line-height: 1.72;
}


/* =========================================================
   STORY FACTS
========================================================= */

.dfl-reviews__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;

    margin-top: auto;
    padding-top: 32px;
}

.dfl-reviews__fact {
    min-width: 0;
    padding: 15px 11px;

    background: rgba(255, 255, 255, 0.065);

    border:
        1px solid rgba(255, 255, 255, 0.1);

    border-radius: var(--dfl-radius-xs);

    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
}

.dfl-reviews__fact strong {
    display: block;

    color: var(--dfl-green-bright);

    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.04em;
}

.dfl-reviews__fact > span {
    display: flex;
    flex-direction: column;

    margin-top: 8px;

    color: var(--dfl-surface);

    font-size: 0.61rem;
    font-weight: 750;
    line-height: 1.25;
}

.dfl-reviews__fact small {
    margin-top: 3px;

    color: rgba(255, 255, 255, 0.45);

    font-size: 0.51rem;
    font-weight: 600;
}


/* =========================================================
   STORY FOOTER
========================================================= */

.dfl-reviews__story-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;

    margin-top: 17px;
    padding-top: 19px;

    border-top:
        1px solid rgba(255, 255, 255, 0.11);
}

.dfl-reviews__story-footer > div {
    display: flex;
    flex-direction: column;
}

.dfl-reviews__story-footer small {
    color: rgba(255, 255, 255, 0.45);

    font-size: 0.54rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.dfl-reviews__story-footer strong {
    margin-top: 5px;

    color: var(--dfl-surface);

    font-size: 0.69rem;
    font-weight: 800;
}

.dfl-reviews__story-footer > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 41px;
    padding: 10px 13px;

    color: var(--dfl-surface);
    background: rgba(255, 255, 255, 0.08);

    border:
        1px solid rgba(255, 255, 255, 0.12);

    border-radius: var(--dfl-radius-xs);

    font-size: 0.64rem;
    font-weight: 800;

    transition:
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-reviews__story-footer > a:hover {
    background: var(--dfl-green-primary);
    border-color: var(--dfl-green-primary);
    transform: translateY(-2px);
}

.dfl-reviews__story-footer svg {
    width: 16px;
    height: 16px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   WIDGET SHELL
========================================================= */

.dfl-reviews__widget-shell {
    position: relative;

    min-width: 0;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.985),
            rgba(250, 249, 244, 0.96)
        );

    border:
        1px solid rgba(13, 77, 29, 0.12);

    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 24px 65px rgba(8, 46, 23, 0.12);

    overflow: hidden;
}


/* =========================================================
   WIDGET HEADING
========================================================= */

.dfl-reviews__widget-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;

    min-height: 88px;
    padding: 19px clamp(22px, 3vw, 34px);

    border-bottom:
        1px solid rgba(13, 77, 29, 0.1);
}

.dfl-reviews__widget-title {
    display: flex;
    align-items: center;
    gap: 13px;
}

.dfl-reviews__widget-logo {
    display: grid;
    place-items: center;

    width: 43px;
    height: 43px;
    flex: 0 0 auto;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-sm);

    box-shadow:
        0 11px 27px rgba(8, 184, 11, 0.2);
}

.dfl-reviews__widget-logo svg {
    width: 21px;
    height: 21px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-reviews__widget-title > div {
    display: flex;
    flex-direction: column;
}

.dfl-reviews__widget-title > div span {
    color: var(--dfl-green-primary);

    font-size: 0.57rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.dfl-reviews__widget-title > div strong {
    margin-top: 6px;

    color: var(--dfl-green-forest);

    font-size: 0.96rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.03em;
}

.dfl-reviews__live-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    min-height: 32px;
    padding: 7px 11px;

    color: var(--dfl-green-dark);
    background: rgba(19, 138, 36, 0.07);

    border:
        1px solid rgba(19, 138, 36, 0.1);

    border-radius: var(--dfl-radius-xs);
}

.dfl-reviews__live-status > span {
    position: relative;

    width: 7px;
    height: 7px;

    background: var(--dfl-green-bright);
    border-radius: 50%;
}

.dfl-reviews__live-status > span::before {
    content: "";

    position: absolute;
    inset: -4px;

    border:
        1px solid rgba(8, 184, 11, 0.35);

    border-radius: 50%;

    animation:
        dflReviewsStatusPulse
        2s
        var(--dfl-ease)
        infinite;
}

.dfl-reviews__live-status strong {
    font-size: 0.59rem;
    font-weight: 800;
    letter-spacing: 0.045em;
}

@keyframes dflReviewsStatusPulse {

    0% {
        opacity: 0.8;
        transform: scale(0.7);
    }

    70%,
    100% {
        opacity: 0;
        transform: scale(1.45);
    }

}


/* =========================================================
   ELFSIGHT AREA
========================================================= */

.dfl-reviews__widget-area {
    position: relative;

    min-height: 465px;
    padding: clamp(17px, 2.4vw, 29px);

    background:
        linear-gradient(
            145deg,
            rgba(247, 245, 238, 0.55),
            rgba(255, 255, 255, 0.6)
        );
}

.dfl-reviews__elfsight-host {
    position: relative;
    z-index: 2;

    min-height: 400px;

    opacity: 0;

    transition:
        opacity 450ms var(--dfl-ease);
}

.dfl-reviews.dfl-reviews--widget-loaded
.dfl-reviews__elfsight-host {
    opacity: 1;
}


/* =========================================================
   LOADING SKELETON
========================================================= */

.dfl-reviews__loading {
    position: absolute;
    inset: clamp(17px, 2.4vw, 29px);
    z-index: 3;

    padding: 20px;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.98),
            rgba(247, 245, 238, 0.98)
        );

    border:
        1px solid rgba(13, 77, 29, 0.08);

    border-radius: var(--dfl-radius-sm);

    opacity: 1;
    visibility: visible;

    transition:
        opacity 350ms var(--dfl-ease),
        visibility 350ms var(--dfl-ease);
}

.dfl-reviews.dfl-reviews--widget-loaded
.dfl-reviews__loading {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.dfl-reviews__loading-heading {
    display: flex;
    align-items: center;
    gap: 12px;
}

.dfl-reviews__loading-heading > span {
    width: 42px;
    height: 42px;
    flex: 0 0 auto;

    background: rgba(13, 77, 29, 0.08);
    border-radius: 50%;
}

.dfl-reviews__loading-heading > div {
    display: grid;
    gap: 7px;

    width: min(100%, 230px);
}

.dfl-reviews__loading-heading i,
.dfl-reviews__loading-card > span,
.dfl-reviews__loading-card > div:last-child i {
    display: block;

    background:
        linear-gradient(
            90deg,
            rgba(13, 77, 29, 0.06),
            rgba(13, 77, 29, 0.12),
            rgba(13, 77, 29, 0.06)
        );

    background-size: 220% 100%;

    border-radius: var(--dfl-radius-round);

    animation:
        dflReviewsSkeleton
        1.7s
        linear
        infinite;
}

.dfl-reviews__loading-heading i:first-child {
    width: 65%;
    height: 11px;
}

.dfl-reviews__loading-heading i:last-child {
    width: 42%;
    height: 8px;
}

.dfl-reviews__loading-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 13px;

    margin-top: 28px;
}

.dfl-reviews__loading-card {
    padding: 20px 17px;

    background: rgba(255, 255, 255, 0.78);

    border:
        1px solid rgba(13, 77, 29, 0.08);

    border-radius: var(--dfl-radius-sm);
}

.dfl-reviews__loading-stars {
    display: flex;
    align-items: center;
    gap: 4px;
}

.dfl-reviews__loading-stars i {
    width: 12px;
    height: 12px;

    background: rgba(197, 166, 90, 0.23);

    clip-path:
        polygon(
            50% 0%,
            61% 36%,
            100% 36%,
            68% 58%,
            79% 100%,
            50% 74%,
            21% 100%,
            32% 58%,
            0% 36%,
            39% 36%
        );
}

.dfl-reviews__loading-card > span {
    height: 8px;
    margin-top: 17px;
}

.dfl-reviews__loading-card > span:nth-of-type(1) {
    width: 100%;
}

.dfl-reviews__loading-card > span:nth-of-type(2) {
    width: 88%;
}

.dfl-reviews__loading-card > span:nth-of-type(3) {
    width: 61%;
}

.dfl-reviews__loading-card > div:last-child {
    display: flex;
    align-items: center;
    gap: 9px;

    margin-top: 24px;
}

.dfl-reviews__loading-card > div:last-child i:first-child {
    width: 30px;
    height: 30px;

    border-radius: 50%;
}

.dfl-reviews__loading-card > div:last-child i:last-child {
    width: 48%;
    height: 8px;
}

.dfl-reviews__loading > p {
    margin-top: 19px;

    color: var(--dfl-text-muted);

    font-size: 0.65rem;
    font-weight: 700;
    text-align: center;
}

@keyframes dflReviewsSkeleton {

    from {
        background-position: 200% 0;
    }

    to {
        background-position: -20% 0;
    }

}


/* =========================================================
   WIDGET FOOTER
========================================================= */

.dfl-reviews__widget-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;

    min-height: 84px;
    padding: 17px clamp(22px, 3vw, 34px);

    border-top:
        1px solid rgba(13, 77, 29, 0.1);
}

.dfl-reviews__widget-note {
    display: flex;
    align-items: center;
    gap: 11px;
}

.dfl-reviews__widget-note-icon {
    display: grid;
    place-items: center;

    width: 35px;
    height: 35px;
    flex: 0 0 auto;

    color: var(--dfl-green-primary);
    background: rgba(19, 138, 36, 0.08);

    border-radius: var(--dfl-radius-xs);
}

.dfl-reviews__widget-note-icon svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-reviews__widget-note p {
    max-width: 350px;

    color: var(--dfl-text-muted);

    font-size: 0.64rem;
    line-height: 1.55;
}

.dfl-reviews__estimate {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;

    min-height: 47px;
    padding: 12px 16px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-sm);

    box-shadow:
        0 12px 29px rgba(8, 184, 11, 0.2);

    font-size: 0.69rem;
    font-weight: 800;

    transition:
        box-shadow var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-reviews__estimate:hover {
    box-shadow:
        0 17px 37px rgba(8, 184, 11, 0.28);

    transform: translateY(-2px);
}

.dfl-reviews__estimate svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   BOTTOM BAND
========================================================= */

.dfl-reviews__bottom-band {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;

    margin-top: clamp(20px, 3vw, 32px);
    padding: clamp(22px, 3vw, 31px);

    color: var(--dfl-surface);

    background:
        linear-gradient(
            105deg,
            var(--dfl-green-forest),
            var(--dfl-green-dark)
        );

    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 20px 50px rgba(5, 30, 16, 0.14);

    overflow: hidden;
}

.dfl-reviews__bottom-copy {
    display: flex;
    align-items: center;
    gap: 15px;
}

.dfl-reviews__bottom-icon {
    display: grid;
    place-items: center;

    width: 46px;
    height: 46px;
    flex: 0 0 auto;

    color: var(--dfl-green-bright);
    background: rgba(255, 255, 255, 0.075);

    border:
        1px solid rgba(255, 255, 255, 0.11);

    border-radius: var(--dfl-radius-sm);
}

.dfl-reviews__bottom-icon svg {
    width: 22px;
    height: 22px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-reviews__bottom-copy > div {
    display: flex;
    flex-direction: column;
}

.dfl-reviews__bottom-copy > div span {
    color: var(--dfl-green-bright);

    font-size: 0.57rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.dfl-reviews__bottom-copy > div strong {
    margin-top: 7px;

    font-size: clamp(1.05rem, 1.8vw, 1.45rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.035em;
}

.dfl-reviews__bottom-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
}

.dfl-reviews__gallery-link,
.dfl-reviews__contact-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 46px;
    padding: 12px 16px;

    border-radius: var(--dfl-radius-sm);

    font-size: 0.68rem;
    font-weight: 800;

    transition:
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-reviews__gallery-link {
    color: var(--dfl-surface);
    background: rgba(255, 255, 255, 0.065);

    border:
        1px solid rgba(255, 255, 255, 0.13);
}

.dfl-reviews__gallery-link:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.24);
    transform: translateY(-2px);
}

.dfl-reviews__contact-link {
    gap: 9px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border:
        1px solid transparent;

    box-shadow:
        0 12px 28px rgba(8, 184, 11, 0.2);
}

.dfl-reviews__contact-link:hover {
    transform: translateY(-2px);
}

.dfl-reviews__contact-link svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   PROGRESSIVE ENHANCEMENT ANIMATION
========================================================= */

.dfl-reviews.dfl-reviews--motion-ready
[data-dfl-reviews-reveal] {
    opacity: 0;
    will-change: opacity, transform;
}

.dfl-reviews.dfl-reviews--motion-ready
[data-dfl-reviews-reveal="header"] {
    transform: translateY(34px);
}

.dfl-reviews.dfl-reviews--motion-ready
[data-dfl-reviews-reveal="story"] {
    transform:
        translate3d(-31px, 23px, 0)
        scale(0.985);
}

.dfl-reviews.dfl-reviews--motion-ready
[data-dfl-reviews-reveal="widget"] {
    transform:
        translate3d(31px, 23px, 0)
        scale(0.985);
}

.dfl-reviews.dfl-reviews--motion-ready
[data-dfl-reviews-reveal="bottom"] {
    transform: translateY(25px);
}

.dfl-reviews.dfl-reviews--visible
[data-dfl-reviews-reveal] {
    opacity: 1;
    transform: none;
}

.dfl-reviews.dfl-reviews--visible
[data-dfl-reviews-reveal="header"] {
    transition:
        opacity 800ms var(--dfl-ease),
        transform 900ms var(--dfl-ease);
}

.dfl-reviews.dfl-reviews--visible
[data-dfl-reviews-reveal="story"] {
    transition:
        opacity 800ms var(--dfl-ease) 130ms,
        transform 950ms var(--dfl-ease) 130ms;
}

.dfl-reviews.dfl-reviews--visible
[data-dfl-reviews-reveal="widget"] {
    transition:
        opacity 800ms var(--dfl-ease) 220ms,
        transform 950ms var(--dfl-ease) 220ms;
}

.dfl-reviews.dfl-reviews--visible
[data-dfl-reviews-reveal="bottom"] {
    transition:
        opacity 750ms var(--dfl-ease) 340ms,
        transform 850ms var(--dfl-ease) 340ms;
}

html.dfl-reduce-motion
.dfl-reviews [data-dfl-reviews-reveal] {
    opacity: 1;
    transform: none;
}

html.dfl-reduce-motion
.dfl-reviews__live-status > span::before,
html.dfl-reduce-motion
.dfl-reviews__loading-heading i,
html.dfl-reduce-motion
.dfl-reviews__loading-card > span,
html.dfl-reduce-motion
.dfl-reviews__loading-card > div:last-child i {
    animation: none;
}










































/* =========================================================
   11. SERVICE AREAS
========================================================= */

.dfl-service-areas {
    position: relative;

    width: 100%;
    padding: var(--dfl-section-space) 0;

    color: var(--dfl-text);

    background:
        linear-gradient(
            145deg,
            rgba(247, 245, 238, 0.99),
            rgba(239, 244, 233, 0.98)
        );

    overflow: hidden;
    isolation: isolate;
}

.dfl-service-areas__background {
    position: absolute;
    inset: 0;
    z-index: -1;

    overflow: hidden;
    pointer-events: none;
}

.dfl-service-areas__background::before {
    content: "";

    position: absolute;
    inset: 0;

    opacity: 0.16;

    background-image:
        radial-gradient(
            rgba(13, 77, 29, 0.13) 0.7px,
            transparent 0.7px
        );

    background-size: 27px 27px;

    mask-image:
        linear-gradient(
            90deg,
            transparent,
            black 18%,
            black 82%,
            transparent
        );
}

.dfl-service-areas__glow,
.dfl-service-areas__ring {
    position: absolute;
    display: block;

    border-radius: 50%;
}

.dfl-service-areas__glow--one {
    top: -260px;
    right: -210px;

    width: 620px;
    height: 620px;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.12),
            rgba(19, 138, 36, 0.025) 48%,
            transparent 72%
        );
}

.dfl-service-areas__glow--two {
    bottom: -320px;
    left: -240px;

    width: 680px;
    height: 680px;

    background:
        radial-gradient(
            circle,
            rgba(197, 166, 90, 0.14),
            rgba(220, 207, 174, 0.035) 50%,
            transparent 72%
        );
}

.dfl-service-areas__ring--one {
    top: 15%;
    left: -90px;

    width: 260px;
    height: 260px;

    border:
        1px solid rgba(13, 77, 29, 0.07);
}

.dfl-service-areas__ring--two {
    top: calc(15% + 34px);
    left: -56px;

    width: 192px;
    height: 192px;

    border:
        1px solid rgba(19, 138, 36, 0.065);
}

.dfl-service-areas__vertical-line {
    position: absolute;
    top: 0;
    right: 9%;

    width: 1px;
    height: 100%;

    background:
        linear-gradient(
            180deg,
            transparent,
            rgba(13, 77, 29, 0.07),
            transparent
        );
}

.dfl-service-areas__mountains {
    position: absolute;
    right: -4%;
    bottom: -22px;

    width: min(65vw, 930px);
    height: auto;

    fill: rgba(19, 138, 36, 0.018);
    stroke: rgba(13, 77, 29, 0.07);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   CONTAINER
========================================================= */

.dfl-service-areas__container {
    position: relative;
}


/* =========================================================
   SECTION HEADER
========================================================= */

.dfl-service-areas__header {
    display: grid;
    grid-template-columns:
        minmax(0, 1.45fr)
        minmax(270px, 0.55fr);
    align-items: end;
    gap: clamp(42px, 7vw, 105px);
}

.dfl-service-areas__heading {
    max-width: 900px;
}

.dfl-service-areas__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin-bottom: 21px;

    color: var(--dfl-green-primary);

    font-size: 0.7rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.dfl-service-areas__eyebrow::before {
    content: "";

    width: 31px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--dfl-gold),
            var(--dfl-green-bright)
        );

    border-radius: var(--dfl-radius-round);
}

.dfl-service-areas__heading h2 {
    max-width: 890px;

    color: var(--dfl-green-forest);

    font-size: clamp(2.45rem, 5.1vw, 5.25rem);
    font-weight: 800;
    line-height: 0.99;
    letter-spacing: -0.06em;
}

.dfl-service-areas__heading h2 span {
    display: block;
    color: var(--dfl-green-primary);
}

.dfl-service-areas__header-copy {
    padding-bottom: 7px;
}

.dfl-service-areas__header-copy p {
    color: var(--dfl-text-muted);

    font-size: clamp(0.86rem, 1.05vw, 1rem);
    line-height: 1.78;
}

.dfl-service-areas__header-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin-top: 22px;

    color: var(--dfl-green-primary);

    font-size: 0.71rem;
    font-weight: 800;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-service-areas__header-link:hover {
    color: var(--dfl-green-dark);
    transform: translateX(3px);
}

.dfl-service-areas__header-link svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-service-areas__header-link:hover svg {
    transform: translateX(4px);
}


/* =========================================================
   MAIN LAYOUT
========================================================= */

.dfl-service-areas__layout {
    display: grid;
    grid-template-columns:
        minmax(320px, 0.52fr)
        minmax(0, 1.48fr);
    align-items: stretch;
    gap: clamp(19px, 2.4vw, 32px);

    margin-top: clamp(52px, 7vw, 88px);
}


/* =========================================================
   LOCATION PANEL
========================================================= */

.dfl-service-areas__panel {
    position: relative;

    display: flex;
    flex-direction: column;

    min-height: 680px;
    padding: clamp(24px, 2.7vw, 35px);

    color: var(--dfl-surface);

    background:
        linear-gradient(
            145deg,
            var(--dfl-green-deep),
            var(--dfl-green-forest) 58%,
            var(--dfl-green-dark)
        );

    border:
        1px solid rgba(13, 77, 29, 0.16);

    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 27px 68px rgba(5, 30, 16, 0.19);

    overflow: hidden;
    isolation: isolate;
}

.dfl-service-areas__panel::before {
    content: "";

    position: absolute;
    top: -120px;
    right: -100px;
    z-index: -1;

    width: 290px;
    height: 290px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.36),
            rgba(8, 184, 11, 0.055) 50%,
            transparent 70%
        );
}

.dfl-service-areas__panel::after {
    content: "";

    position: absolute;
    right: -75px;
    bottom: -90px;
    z-index: -1;

    width: 250px;
    height: 250px;

    border:
        1px solid rgba(255, 255, 255, 0.1);

    border-radius: 50%;
}

.dfl-service-areas__panel-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.dfl-service-areas__panel-top > div {
    display: flex;
    flex-direction: column;
}

.dfl-service-areas__panel-top > div > span {
    color: var(--dfl-green-bright);

    font-size: 0.61rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.dfl-service-areas__panel-top h3 {
    margin-top: 10px;

    color: var(--dfl-surface);

    font-size: clamp(1.55rem, 2.3vw, 2.35rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.045em;
}

.dfl-service-areas__panel-icon {
    display: grid;
    place-items: center;

    width: 45px;
    height: 45px;
    flex: 0 0 auto;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-sm);

    box-shadow:
        0 14px 31px rgba(8, 184, 11, 0.24);
}

.dfl-service-areas__panel-icon svg {
    width: 22px;
    height: 22px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   PANEL FACTS
========================================================= */

.dfl-service-areas__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;

    margin-top: 27px;
}

.dfl-service-areas__fact {
    min-width: 0;
    padding: 14px 10px;

    background: rgba(255, 255, 255, 0.065);

    border:
        1px solid rgba(255, 255, 255, 0.1);

    border-radius: var(--dfl-radius-xs);

    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
}

.dfl-service-areas__fact strong {
    display: block;

    color: var(--dfl-green-bright);

    font-size: 1.12rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.04em;
}

.dfl-service-areas__fact > span {
    display: flex;
    flex-direction: column;

    margin-top: 8px;

    color: var(--dfl-surface);

    font-size: 0.59rem;
    font-weight: 750;
    line-height: 1.2;
}

.dfl-service-areas__fact small {
    margin-top: 3px;

    color: rgba(255, 255, 255, 0.44);

    font-size: 0.5rem;
    font-weight: 600;
}


/* =========================================================
   LOCATION BUTTONS
========================================================= */

.dfl-service-areas__locations {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;

    margin-top: 26px;
}

.dfl-service-area-button {
    position: relative;

    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) 15px;
    align-items: center;
    gap: 9px;

    min-height: 54px;
    padding: 9px 10px;

    color: var(--dfl-surface);
    background: rgba(255, 255, 255, 0.055);

    border:
        1px solid rgba(255, 255, 255, 0.095);

    border-radius: var(--dfl-radius-xs);

    text-align: left;
    cursor: pointer;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-service-area-button:hover {
    background: rgba(255, 255, 255, 0.105);
    border-color: rgba(255, 255, 255, 0.17);
    transform: translateY(-2px);
}

.dfl-service-area-button[aria-pressed="true"] {
    color: var(--dfl-green-forest);
    background: var(--dfl-surface);
    border-color: var(--dfl-surface);
}

.dfl-service-area-button:focus-visible {
    outline-color: rgba(255, 255, 255, 0.72);
    outline-offset: 3px;
}

.dfl-service-area-button__marker {
    position: relative;

    display: grid;
    place-items: center;

    width: 20px;
    height: 20px;

    border:
        1px solid rgba(8, 184, 11, 0.45);

    border-radius: 50%;
}

.dfl-service-area-button__marker i {
    display: block;

    width: 7px;
    height: 7px;

    background: var(--dfl-green-bright);
    border-radius: 50%;

    box-shadow:
        0 0 0 4px rgba(8, 184, 11, 0.1);
}

.dfl-service-area-button[aria-pressed="true"]
.dfl-service-area-button__marker {
    border-color: rgba(19, 138, 36, 0.35);
}

.dfl-service-area-button__copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.dfl-service-area-button__copy strong {
    overflow: hidden;

    font-size: 0.67rem;
    font-weight: 800;
    line-height: 1.15;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.dfl-service-area-button__copy small {
    margin-top: 4px;

    color: rgba(255, 255, 255, 0.43);

    font-size: 0.5rem;
    font-weight: 600;
    line-height: 1;
}

.dfl-service-area-button[aria-pressed="true"]
.dfl-service-area-button__copy small {
    color: var(--dfl-text-muted);
}

.dfl-service-area-button > svg {
    width: 14px;
    height: 14px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;

    opacity: 0.56;

    transition:
        opacity var(--dfl-transition-fast) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-service-area-button:hover > svg,
.dfl-service-area-button[aria-pressed="true"] > svg {
    opacity: 1;
    transform: translateX(2px);
}


/* =========================================================
   AVAILABILITY
========================================================= */

.dfl-service-areas__availability {
    display: flex;
    align-items: flex-start;
    gap: 12px;

    margin-top: 23px;
    padding-top: 21px;

    border-top:
        1px solid rgba(255, 255, 255, 0.11);
}

.dfl-service-areas__availability-icon {
    display: grid;
    place-items: center;

    width: 36px;
    height: 36px;
    flex: 0 0 auto;

    color: var(--dfl-green-bright);
    background: rgba(255, 255, 255, 0.065);

    border-radius: var(--dfl-radius-xs);
}

.dfl-service-areas__availability-icon svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-service-areas__availability strong {
    display: block;

    color: var(--dfl-surface);

    font-size: 0.7rem;
    font-weight: 800;
}

.dfl-service-areas__availability p {
    margin-top: 6px;

    color: rgba(255, 255, 255, 0.51);

    font-size: 0.62rem;
    line-height: 1.5;
}


/* =========================================================
   PANEL ACTIONS
========================================================= */

.dfl-service-areas__panel-actions {
    display: grid;
    grid-template-columns:
        minmax(0, 0.78fr)
        minmax(0, 1.22fr);
    gap: 9px;

    margin-top: auto;
    padding-top: 22px;
}

.dfl-service-areas__call,
.dfl-service-areas__estimate {
    min-height: 48px;

    border-radius: var(--dfl-radius-sm);
}

.dfl-service-areas__call {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 10px 13px;

    color: var(--dfl-surface);
    background: rgba(255, 255, 255, 0.065);

    border:
        1px solid rgba(255, 255, 255, 0.12);

    transition:
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-service-areas__call:hover {
    background: rgba(255, 255, 255, 0.11);
    border-color: rgba(255, 255, 255, 0.21);
}

.dfl-service-areas__call span {
    color: rgba(255, 255, 255, 0.46);

    font-size: 0.51rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.dfl-service-areas__call strong {
    margin-top: 5px;

    font-size: 0.67rem;
    font-weight: 800;
}

.dfl-service-areas__estimate {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;

    padding: 12px 15px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    font-size: 0.68rem;
    font-weight: 800;

    box-shadow:
        0 13px 29px rgba(8, 184, 11, 0.22);

    transition:
        box-shadow var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-service-areas__estimate:hover {
    box-shadow:
        0 18px 37px rgba(8, 184, 11, 0.29);

    transform: translateY(-2px);
}

.dfl-service-areas__estimate svg {
    width: 16px;
    height: 16px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   MAP SHELL
========================================================= */

.dfl-service-areas__map-shell {
    position: relative;

    display: flex;
    flex-direction: column;
    min-width: 0;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.985),
            rgba(250, 249, 244, 0.96)
        );

    border:
        1px solid rgba(13, 77, 29, 0.12);

    border-radius: var(--dfl-radius-md);

    box-shadow:
        0 25px 65px rgba(8, 46, 23, 0.12);

    overflow: hidden;
}


/* =========================================================
   MAP TOOLBAR
========================================================= */

.dfl-service-areas__map-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;

    min-height: 87px;
    padding: 18px clamp(21px, 3vw, 33px);

    border-bottom:
        1px solid rgba(13, 77, 29, 0.1);
}

.dfl-service-areas__map-title {
    display: flex;
    align-items: center;
    gap: 13px;
}

.dfl-service-areas__map-title-icon {
    display: grid;
    place-items: center;

    width: 43px;
    height: 43px;
    flex: 0 0 auto;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-sm);

    box-shadow:
        0 11px 27px rgba(8, 184, 11, 0.2);
}

.dfl-service-areas__map-title-icon svg {
    width: 21px;
    height: 21px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-service-areas__map-title > div {
    display: flex;
    flex-direction: column;
}

.dfl-service-areas__map-title span {
    color: var(--dfl-green-primary);

    font-size: 0.56rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.dfl-service-areas__map-title strong {
    margin-top: 6px;

    color: var(--dfl-green-forest);

    font-size: 0.96rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.03em;
}

.dfl-service-areas__reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 40px;
    padding: 9px 13px;

    color: var(--dfl-green-dark);
    background: rgba(19, 138, 36, 0.065);

    border:
        1px solid rgba(19, 138, 36, 0.11);

    border-radius: var(--dfl-radius-xs);

    font-size: 0.62rem;
    font-weight: 800;

    cursor: pointer;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-service-areas__reset:hover {
    color: var(--dfl-surface);
    background: var(--dfl-green-dark);
    transform: translateY(-2px);
}

.dfl-service-areas__reset svg {
    width: 16px;
    height: 16px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   MAP FRAME
========================================================= */

.dfl-service-areas__map-frame {
    position: relative;

    flex: 1;
    min-height: 530px;

    background: #DEE5DA;

    overflow: hidden;
}

.dfl-service-map {
    position: absolute;
    inset: 0;
    z-index: 1;

    width: 100%;
    height: 100%;

    background: #DEE5DA;
}

.dfl-service-map:focus-visible {
    outline:
        3px solid rgba(8, 184, 11, 0.5);

    outline-offset: -3px;
}


/* =========================================================
   MAP LOADING
========================================================= */

.dfl-service-areas__map-loading {
    position: absolute;
    inset: 0;
    z-index: 5;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    padding: 30px;

    color: var(--dfl-green-forest);

    background:
        linear-gradient(
            145deg,
            rgba(247, 245, 238, 0.98),
            rgba(236, 242, 230, 0.98)
        );

    text-align: center;

    opacity: 1;
    visibility: visible;

    transition:
        opacity 400ms var(--dfl-ease),
        visibility 400ms var(--dfl-ease);
}

.dfl-service-areas.dfl-service-areas--map-ready
.dfl-service-areas__map-loading {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.dfl-service-areas.dfl-service-areas--map-error
.dfl-service-areas__map-loading {
    color: var(--dfl-error);
}

.dfl-service-areas__loader {
    width: 43px;
    height: 43px;

    border:
        3px solid rgba(19, 138, 36, 0.13);

    border-top-color:
        var(--dfl-green-primary);

    border-radius: 50%;

    animation:
        dflServiceAreasLoading
        900ms
        linear
        infinite;
}

.dfl-service-areas__map-loading strong {
    margin-top: 18px;

    font-size: 0.9rem;
    font-weight: 800;
}

.dfl-service-areas__map-loading p {
    margin-top: 7px;

    color: var(--dfl-text-muted);

    font-size: 0.67rem;
}

@keyframes dflServiceAreasLoading {

    to {
        transform: rotate(360deg);
    }

}


/* =========================================================
   MAP FLOATING BADGE
========================================================= */

.dfl-service-areas__map-badge {
    position: absolute;
    top: 18px;
    left: 18px;
    z-index: 500;

    display: flex;
    align-items: center;
    gap: 10px;

    min-height: 48px;
    padding: 9px 13px;

    color: var(--dfl-surface);
    background: rgba(5, 30, 16, 0.8);

    border:
        1px solid rgba(255, 255, 255, 0.14);

    border-radius: var(--dfl-radius-sm);

    box-shadow:
        0 12px 31px rgba(5, 30, 16, 0.2);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.dfl-service-areas__map-badge > span {
    position: relative;

    width: 10px;
    height: 10px;

    background: var(--dfl-green-bright);
    border-radius: 50%;
}

.dfl-service-areas__map-badge > span::before {
    content: "";

    position: absolute;
    inset: -5px;

    border:
        1px solid rgba(8, 184, 11, 0.4);

    border-radius: 50%;

    animation:
        dflServiceAreasPulse
        2.2s
        var(--dfl-ease)
        infinite;
}

.dfl-service-areas__map-badge > div {
    display: flex;
    flex-direction: column;
}

.dfl-service-areas__map-badge small {
    color: rgba(255, 255, 255, 0.48);

    font-size: 0.49rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.dfl-service-areas__map-badge strong {
    margin-top: 4px;

    font-size: 0.65rem;
    font-weight: 800;
}

@keyframes dflServiceAreasPulse {

    0% {
        opacity: 0.8;
        transform: scale(0.7);
    }

    70%,
    100% {
        opacity: 0;
        transform: scale(1.5);
    }

}


/* =========================================================
   MAP FOOTER
========================================================= */

.dfl-service-areas__map-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;

    min-height: 76px;
    padding: 15px clamp(21px, 3vw, 33px);

    border-top:
        1px solid rgba(13, 77, 29, 0.1);
}

.dfl-service-areas__legend {
    display: flex;
    align-items: center;
    gap: 10px;
}

.dfl-service-areas__legend-marker {
    position: relative;

    width: 17px;
    height: 17px;
    flex: 0 0 auto;

    background: var(--dfl-green-primary);

    border:
        3px solid var(--dfl-surface);

    border-radius: 50% 50% 50% 0;

    box-shadow:
        0 3px 10px rgba(8, 46, 23, 0.19);

    transform: rotate(-45deg);
}

.dfl-service-areas__legend p,
.dfl-service-areas__map-note {
    color: var(--dfl-text-muted);

    font-size: 0.61rem;
    line-height: 1.5;
}

.dfl-service-areas__map-note {
    max-width: 310px;
    text-align: right;
}

.dfl-service-areas__map-status {
    position: absolute;
    width: 1px;
    height: 1px;

    overflow: hidden;
    clip: rect(0, 0, 0, 0);

    white-space: nowrap;
}


/* =========================================================
   LEAFLET CUSTOM STYLES
========================================================= */

.dfl-service-map .leaflet-control-zoom {
    border: 0;

    box-shadow:
        0 10px 27px rgba(5, 30, 16, 0.18);
}

.dfl-service-map
.leaflet-control-zoom a {
    display: grid;
    place-items: center;

    width: 38px;
    height: 38px;

    color: var(--dfl-green-forest);
    background: rgba(255, 255, 255, 0.96);

    border: 0;
    border-bottom:
        1px solid rgba(13, 77, 29, 0.1);

    font-family: var(--dfl-font-primary);
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1;

    transition:
        color var(--dfl-transition-fast) var(--dfl-ease),
        background-color var(--dfl-transition-fast) var(--dfl-ease);
}

.dfl-service-map
.leaflet-control-zoom a:hover {
    color: var(--dfl-surface);
    background: var(--dfl-green-primary);
}

.dfl-service-map
.leaflet-control-zoom-in {
    border-radius:
        var(--dfl-radius-xs)
        var(--dfl-radius-xs)
        0
        0;
}

.dfl-service-map
.leaflet-control-zoom-out {
    border-radius:
        0
        0
        var(--dfl-radius-xs)
        var(--dfl-radius-xs);
}

.dfl-service-map
.leaflet-control-attribution {
    padding: 4px 7px;

    color: var(--dfl-text-muted);
    background: rgba(255, 255, 255, 0.88);

    font-family: var(--dfl-font-primary);
    font-size: 0.52rem;

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.dfl-service-map
.leaflet-control-attribution a {
    color: var(--dfl-green-dark);
}


/* Custom marker */

.dfl-map-div-icon {
    background: transparent;
    border: 0;
}

.dfl-map-marker {
    position: relative;

    display: grid;
    place-items: center;

    width: 38px;
    height: 38px;

    filter:
        drop-shadow(
            0 7px 8px rgba(5, 30, 16, 0.25)
        );
}

.dfl-map-marker__pin {
    position: absolute;

    width: 29px;
    height: 29px;

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border:
        3px solid var(--dfl-surface);

    border-radius:
        50%
        50%
        50%
        0;

    transform: rotate(-45deg);

    transition:
        background-color var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-map-marker__center {
    position: relative;
    z-index: 2;

    width: 7px;
    height: 7px;

    background: var(--dfl-surface);
    border-radius: 50%;
}

.dfl-map-marker__pulse {
    position: absolute;
    bottom: -1px;

    width: 19px;
    height: 8px;

    background: rgba(8, 46, 23, 0.2);
    border-radius: 50%;

    filter: blur(2px);
}

.dfl-map-marker--active {
    transform: scale(1.16);
}

.dfl-map-marker--active
.dfl-map-marker__pin {
    background:
        linear-gradient(
            135deg,
            var(--dfl-gold),
            var(--dfl-green-primary)
        );
}


/* Marker tooltip */

.dfl-map-tooltip {
    padding: 7px 10px;

    color: var(--dfl-surface);
    background: var(--dfl-green-forest);

    border: 0;
    border-radius: var(--dfl-radius-xs);

    box-shadow:
        0 9px 23px rgba(5, 30, 16, 0.2);

    font-family: var(--dfl-font-primary);
    font-size: 0.61rem;
    font-weight: 800;
}

.dfl-map-tooltip::before {
    border-top-color:
        var(--dfl-green-forest);
}


/* Popup */

.dfl-map-popup .leaflet-popup-content-wrapper {
    padding: 0;

    background: var(--dfl-surface);

    border:
        1px solid rgba(13, 77, 29, 0.11);

    border-radius: var(--dfl-radius-sm);

    box-shadow:
        0 18px 45px rgba(5, 30, 16, 0.2);

    overflow: hidden;
}

.dfl-map-popup .leaflet-popup-content {
    width: 230px;
    margin: 0;
}

.dfl-map-popup .leaflet-popup-tip {
    background: var(--dfl-surface);
}

.dfl-map-popup__content {
    font-family: var(--dfl-font-primary);
}

.dfl-map-popup__heading {
    padding: 16px 17px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-forest),
            var(--dfl-green-dark)
        );
}

.dfl-map-popup__heading span {
    color: var(--dfl-green-bright);

    font-size: 0.52rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.dfl-map-popup__heading strong {
    display: block;
    margin-top: 6px;

    font-size: 0.93rem;
    font-weight: 800;
    line-height: 1.1;
}

.dfl-map-popup__body {
    padding: 15px 17px 17px;
}

.dfl-map-popup__body p {
    color: var(--dfl-text-muted);

    font-size: 0.64rem;
    line-height: 1.55;
}

.dfl-map-popup__body a {
    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 40px;
    margin-top: 13px;
    padding: 10px 13px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-bright),
            var(--dfl-green-primary)
        );

    border-radius: var(--dfl-radius-xs);

    font-size: 0.61rem;
    font-weight: 800;
}


/* =========================================================
   PROGRESSIVE ENHANCEMENT ANIMATIONS
========================================================= */

.dfl-service-areas.dfl-service-areas--motion-ready
[data-dfl-service-areas-reveal] {
    opacity: 0;
    will-change: opacity, transform;
}

.dfl-service-areas.dfl-service-areas--motion-ready
[data-dfl-service-areas-reveal="header"] {
    transform: translateY(34px);
}

.dfl-service-areas.dfl-service-areas--motion-ready
[data-dfl-service-areas-reveal="panel"] {
    transform:
        translate3d(-31px, 23px, 0)
        scale(0.985);
}

.dfl-service-areas.dfl-service-areas--motion-ready
[data-dfl-service-areas-reveal="map"] {
    transform:
        translate3d(31px, 23px, 0)
        scale(0.985);
}

.dfl-service-areas.dfl-service-areas--visible
[data-dfl-service-areas-reveal] {
    opacity: 1;
    transform: none;
}

.dfl-service-areas.dfl-service-areas--visible
[data-dfl-service-areas-reveal="header"] {
    transition:
        opacity 800ms var(--dfl-ease),
        transform 900ms var(--dfl-ease);
}

.dfl-service-areas.dfl-service-areas--visible
[data-dfl-service-areas-reveal="panel"] {
    transition:
        opacity 800ms var(--dfl-ease) 140ms,
        transform 950ms var(--dfl-ease) 140ms;
}

.dfl-service-areas.dfl-service-areas--visible
[data-dfl-service-areas-reveal="map"] {
    transition:
        opacity 800ms var(--dfl-ease) 230ms,
        transform 950ms var(--dfl-ease) 230ms;
}

html.dfl-reduce-motion
.dfl-service-areas [data-dfl-service-areas-reveal] {
    opacity: 1;
    transform: none;
}

html.dfl-reduce-motion
.dfl-service-areas__loader,
html.dfl-reduce-motion
.dfl-service-areas__map-badge > span::before {
    animation: none;
}







































/* =========================================================
   15. FOOTER
========================================================= */

.dfl-footer {
    position: relative;

    width: 100%;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            145deg,
            var(--dfl-green-deep) 0%,
            var(--dfl-green-forest) 52%,
            #0A351A 100%
        );

    overflow: hidden;
    isolation: isolate;
}

.dfl-footer__background {
    position: absolute;
    inset: 0;
    z-index: -1;

    overflow: hidden;
    pointer-events: none;
}

.dfl-footer__background::before {
    content: "";

    position: absolute;
    inset: 0;

    opacity: 0.22;

    background-image:
        repeating-linear-gradient(
            0deg,
            rgba(255, 255, 255, 0.017) 0,
            rgba(255, 255, 255, 0.017) 1px,
            transparent 1px,
            transparent 6px
        );
}

.dfl-footer__glow,
.dfl-footer__ring {
    position: absolute;
    display: block;

    border-radius: 50%;
}

.dfl-footer__glow--one {
    top: -300px;
    right: -240px;

    width: 670px;
    height: 670px;

    background:
        radial-gradient(
            circle,
            rgba(8, 184, 11, 0.22),
            rgba(8, 184, 11, 0.045) 47%,
            transparent 71%
        );
}

.dfl-footer__glow--two {
    bottom: -350px;
    left: -270px;

    width: 710px;
    height: 710px;

    background:
        radial-gradient(
            circle,
            rgba(197, 166, 90, 0.14),
            transparent 70%
        );
}

.dfl-footer__ring--one {
    top: 85px;
    right: 8%;

    width: 245px;
    height: 245px;

    border:
        1px solid rgba(255, 255, 255, 0.07);
}

.dfl-footer__ring--two {
    top: 122px;
    right: calc(8% + 37px);

    width: 171px;
    height: 171px;

    border:
        1px solid rgba(8, 184, 11, 0.1);
}

.dfl-footer__vertical-line {
    position: absolute;
    top: 0;
    left: 9%;

    width: 1px;
    height: 100%;

    background:
        linear-gradient(
            180deg,
            transparent,
            rgba(255, 255, 255, 0.06),
            transparent
        );
}

.dfl-footer__leaf {
    position: absolute;
    right: -75px;
    bottom: -110px;

    width: min(31vw, 455px);
    height: auto;

    fill: rgba(8, 184, 11, 0.02);
    stroke: rgba(255, 255, 255, 0.075);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;

    transform: rotate(7deg);
}


/* =========================================================
   MAIN FOOTER
========================================================= */

.dfl-footer__main {
    position: relative;

    padding:
        clamp(72px, 8vw, 116px)
        0
        clamp(55px, 6vw, 85px);
}

.dfl-footer__container {
    position: relative;

    display: grid;
    grid-template-columns:
        minmax(280px, 1.22fr)
        minmax(145px, 0.55fr)
        minmax(165px, 0.63fr)
        minmax(245px, 0.83fr);
    align-items: start;
    gap: clamp(30px, 4vw, 68px);
}


/* =========================================================
   BRAND
========================================================= */

.dfl-footer__brand-column {
    min-width: 0;
}

.dfl-footer__brand {
    display: inline-flex;
    align-items: center;
    gap: 14px;

    width: fit-content;
}

.dfl-footer__logo {
    position: relative;

    display: grid;
    place-items: center;

    width: 72px;
    height: 72px;
    flex: 0 0 auto;

    background: var(--dfl-surface);

    border:
        1px solid rgba(255, 255, 255, 0.22);

    border-radius: var(--dfl-radius-sm);

    box-shadow:
        0 16px 38px rgba(0, 0, 0, 0.2);

    overflow: hidden;

    transition:
        transform var(--dfl-transition-normal) var(--dfl-ease),
        box-shadow var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-footer__brand:hover
.dfl-footer__logo {
    transform: translateY(-3px) rotate(-2deg);

    box-shadow:
        0 21px 45px rgba(0, 0, 0, 0.26);
}

.dfl-footer__logo img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.dfl-footer__brand-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.dfl-footer__brand-copy strong {
    color: var(--dfl-surface);

    font-size: clamp(1.13rem, 1.65vw, 1.45rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.04em;
}

.dfl-footer__brand-copy span {
    margin-top: 6px;

    color: var(--dfl-green-bright);

    font-size: 0.64rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.dfl-footer__description {
    max-width: 390px;
    margin-top: 24px;

    color: rgba(255, 255, 255, 0.62);

    font-size: 0.79rem;
    line-height: 1.75;
}


/* =========================================================
   CONTACT
========================================================= */

.dfl-footer__contact {
    display: grid;
    gap: 9px;

    margin-top: 27px;

    font-style: normal;
}

.dfl-footer__contact-item {
    display: flex;
    align-items: center;
    gap: 11px;

    width: fit-content;
    max-width: 100%;

    color: var(--dfl-surface);

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-footer__contact-item:hover {
    color: var(--dfl-green-bright);
    transform: translateX(3px);
}

.dfl-footer__contact-icon {
    display: grid;
    place-items: center;

    width: 36px;
    height: 36px;
    flex: 0 0 auto;

    color: var(--dfl-green-bright);
    background: rgba(255, 255, 255, 0.065);

    border:
        1px solid rgba(255, 255, 255, 0.1);

    border-radius: var(--dfl-radius-xs);
}

.dfl-footer__contact-icon svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-footer__contact-item > span:last-child {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.dfl-footer__contact-item small {
    color: rgba(255, 255, 255, 0.4);

    font-size: 0.51rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.dfl-footer__contact-item strong {
    margin-top: 6px;

    overflow-wrap: anywhere;

    font-size: 0.67rem;
    font-weight: 750;
    line-height: 1.25;
}


/* =========================================================
   COLUMNS
========================================================= */

.dfl-footer__column {
    min-width: 0;
}

.dfl-footer__column-heading {
    display: flex;
    align-items: center;
    gap: 10px;

    min-height: 32px;
    margin-bottom: 22px;
}

.dfl-footer__column-heading > span {
    width: 18px;
    height: 2px;
    flex: 0 0 auto;

    background:
        linear-gradient(
            90deg,
            var(--dfl-gold),
            var(--dfl-green-bright)
        );

    border-radius: var(--dfl-radius-round);
}

.dfl-footer__column-heading h2 {
    color: var(--dfl-surface);

    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}


/* =========================================================
   FOOTER LINKS
========================================================= */

.dfl-footer__links {
    display: grid;
    gap: 4px;
}

.dfl-footer__links a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 13px;

    min-height: 38px;
    padding: 7px 0;

    color: rgba(255, 255, 255, 0.61);

    border-bottom:
        1px solid rgba(255, 255, 255, 0.055);

    font-size: 0.69rem;
    font-weight: 650;
    line-height: 1.3;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        padding-left var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-footer__links a:hover {
    padding-left: 5px;

    color: var(--dfl-green-bright);
    border-color: rgba(8, 184, 11, 0.18);
}

.dfl-footer__links svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;

    opacity: 0;

    transform: translateX(-5px);

    transition:
        opacity var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-footer__links a:hover svg {
    opacity: 1;
    transform: translateX(0);
}


/* =========================================================
   BUSINESS HOURS
========================================================= */

.dfl-footer__hours-card {
    display: flex;
    align-items: flex-start;
    gap: 13px;

    padding: 17px 15px;

    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.085),
            rgba(255, 255, 255, 0.04)
        );

    border:
        1px solid rgba(255, 255, 255, 0.11);

    border-radius: var(--dfl-radius-sm);

    backdrop-filter: blur(11px);
    -webkit-backdrop-filter: blur(11px);
}

.dfl-footer__hours-icon {
    display: grid;
    place-items: center;

    width: 40px;
    height: 40px;
    flex: 0 0 auto;

    color: var(--dfl-green-bright);
    background: rgba(8, 184, 11, 0.1);

    border-radius: var(--dfl-radius-xs);
}

.dfl-footer__hours-icon svg {
    width: 19px;
    height: 19px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-footer__hours-card > div {
    display: flex;
    flex-direction: column;
}

.dfl-footer__hours-card small {
    color: rgba(255, 255, 255, 0.43);

    font-size: 0.51rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.dfl-footer__hours-card strong {
    margin-top: 7px;

    color: var(--dfl-surface);

    font-size: 0.85rem;
    font-weight: 800;
    line-height: 1.1;
}

.dfl-footer__hours-card p {
    margin-top: 8px;

    color: rgba(255, 255, 255, 0.49);

    font-size: 0.59rem;
    line-height: 1.5;
}


/* =========================================================
   SOCIAL MEDIA
========================================================= */

.dfl-footer__social {
    margin-top: 30px;
}

.dfl-footer__social > p {
    color: rgba(255, 255, 255, 0.54);

    font-size: 0.67rem;
    line-height: 1.6;
}

.dfl-footer__social-list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;

    margin-top: 17px;
}

.dfl-footer__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;

    min-height: 38px;
    padding: 9px 11px;

    color: var(--dfl-surface);
    background: rgba(255, 255, 255, 0.065);

    border:
        1px solid rgba(255, 255, 255, 0.11);

    border-radius: var(--dfl-radius-xs);

    font-size: 0.59rem;
    font-weight: 750;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-footer__social-link:not([aria-disabled="true"]):hover {
    color: var(--dfl-green-forest);
    background: var(--dfl-surface);
    border-color: var(--dfl-surface);
    transform: translateY(-3px);
}

.dfl-footer__social-link[aria-disabled="true"] {
    opacity: 0.48;
    cursor: not-allowed;
}

.dfl-footer__social-link svg {
    width: 16px;
    height: 16px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-footer__social-link:first-child svg,
.dfl-footer__social-link:last-child svg {
    fill: currentColor;
    stroke: none;
}


/* =========================================================
   ESTIMATE LINK
========================================================= */

.dfl-footer__estimate {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 17px;
    align-items: center;
    gap: 11px;

    margin-top: 27px;
    padding: 13px;

    color: var(--dfl-surface);

    background:
        linear-gradient(
            135deg,
            var(--dfl-green-primary),
            var(--dfl-green-bright)
        );

    border-radius: var(--dfl-radius-sm);

    box-shadow:
        0 16px 35px rgba(8, 184, 11, 0.21);

    transition:
        box-shadow var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-footer__estimate:hover {
    box-shadow:
        0 21px 43px rgba(8, 184, 11, 0.29);

    transform: translateY(-3px);
}

.dfl-footer__estimate-icon {
    display: grid;
    place-items: center;

    width: 38px;
    height: 38px;

    color: var(--dfl-surface);
    background: rgba(255, 255, 255, 0.12);

    border-radius: var(--dfl-radius-xs);
}

.dfl-footer__estimate-icon svg,
.dfl-footer__estimate-arrow {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-footer__estimate-icon svg {
    width: 19px;
    height: 19px;
}

.dfl-footer__estimate > span:nth-child(2) {
    display: flex;
    flex-direction: column;
}

.dfl-footer__estimate small {
    color: rgba(255, 255, 255, 0.63);

    font-size: 0.49rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.dfl-footer__estimate strong {
    margin-top: 5px;

    font-size: 0.67rem;
    font-weight: 800;
}

.dfl-footer__estimate-arrow {
    width: 17px;
    height: 17px;

    transition:
        transform var(--dfl-transition-normal)
        var(--dfl-ease);
}

.dfl-footer__estimate:hover
.dfl-footer__estimate-arrow {
    transform: translateX(4px);
}


/* =========================================================
   FOOTER BOTTOM
========================================================= */

.dfl-footer__bottom {
    position: relative;

    background: rgba(3, 20, 10, 0.64);

    border-top:
        1px solid rgba(255, 255, 255, 0.085);

    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
}

.dfl-footer__bottom-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;

    min-height: 78px;
    padding-top: 15px;
    padding-bottom: 15px;
}

.dfl-footer__copyright {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
}

.dfl-footer__copyright > p {
    color: rgba(255, 255, 255, 0.47);

    font-size: 0.61rem;
    font-weight: 600;
    line-height: 1.5;
}

.dfl-footer__bottom-divider {
    width: 1px;
    height: 15px;

    background: rgba(255, 255, 255, 0.13);
}

.dfl-footer__powered {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.dfl-footer__powered a {
    display: inline-flex;
    align-items: center;
    gap: 5px;

    color: var(--dfl-sand-light);

    font-weight: 750;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-footer__powered a:hover {
    color: var(--dfl-green-bright);
}

.dfl-footer__powered svg {
    width: 12px;
    height: 12px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dfl-footer__back-to-top {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 39px;
    padding: 9px 12px;

    color: rgba(255, 255, 255, 0.74);
    background: rgba(255, 255, 255, 0.055);

    border:
        1px solid rgba(255, 255, 255, 0.1);

    border-radius: var(--dfl-radius-xs);

    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.04em;

    cursor: pointer;

    transition:
        color var(--dfl-transition-normal) var(--dfl-ease),
        background-color var(--dfl-transition-normal) var(--dfl-ease),
        border-color var(--dfl-transition-normal) var(--dfl-ease),
        transform var(--dfl-transition-normal) var(--dfl-ease);
}

.dfl-footer__back-to-top:hover {
    color: var(--dfl-green-forest);
    background: var(--dfl-surface);
    border-color: var(--dfl-surface);
    transform: translateY(-3px);
}

.dfl-footer__back-to-top svg {
    width: 15px;
    height: 15px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   PROGRESSIVE ENHANCEMENT ANIMATION
========================================================= */

.dfl-footer.dfl-footer--motion-ready
[data-dfl-footer-reveal] {
    opacity: 0;

    transform: translateY(35px);

    will-change: opacity, transform;
}

.dfl-footer.dfl-footer--visible
[data-dfl-footer-reveal] {
    opacity: 1;
    transform: translateY(0);

    transition:
        opacity 850ms var(--dfl-ease),
        transform 950ms var(--dfl-ease);
}

html.dfl-reduce-motion
.dfl-footer [data-dfl-footer-reveal] {
    opacity: 1;
    transform: none;
}










































/* =========================================================
   MEDIA QUERY 1: COMPUTADORA
========================================================= */

@media (min-width: 1200px) {

    .dfl-footer__container {
        grid-template-columns:
            minmax(310px, 1.25fr)
            minmax(150px, 0.52fr)
            minmax(175px, 0.59fr)
            minmax(260px, 0.82fr);
    }

    .dfl-footer__brand-column {
        padding-right: 10px;
    }
     .dfl-service-areas__layout {
        grid-template-columns:
            minmax(350px, 0.53fr)
            minmax(0, 1.47fr);
    }

    .dfl-service-areas__panel {
        min-height: 700px;
    }

    .dfl-service-areas__map-frame {
        min-height: 545px;
    }

     .dfl-reviews__layout {
        grid-template-columns:
            minmax(330px, 0.53fr)
            minmax(0, 1.47fr);
    }

    .dfl-reviews__story {
        min-height: 640px;
    }

    .dfl-reviews__widget-area {
        min-height: 480px;
    }


    .dfl-why__layout {
        grid-template-columns:
            minmax(390px, 0.74fr)
            minmax(0, 1.26fr);
    }

    .dfl-why__visual {
        min-height: 705px;
    }

    .dfl-why-card {
        min-height: 237px;
    }

     .dfl-services__grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .dfl-service-card--featured {
        grid-column: span 2;
    }

    .dfl-service-card--featured
    .dfl-service-card__body {
        display: grid;
        grid-template-columns:
            minmax(0, 1fr)
            minmax(180px, 0.5fr);
        column-gap: 30px;
    }

    .dfl-service-card--featured
    .dfl-service-card__meta {
        grid-column: 1 / -1;
    }

    .dfl-service-card--featured
    .dfl-service-card__content {
        grid-column: 1;
    }

    .dfl-service-card--featured
    .dfl-service-card__action {
        grid-column: 2;
        align-self: end;
    }
     .dfl-trust-strip__container {
        grid-template-columns:
            minmax(310px, 0.68fr)
            minmax(0, 1.7fr);
    }

    .dfl-trust-strip__intro {
        min-height: 332px;
    }

    .dfl-trust-strip__item {
        min-height: 155px;
    }
     .dfl-hero__container {
        grid-template-columns:
            minmax(0, 1.1fr)
            minmax(350px, 0.58fr);
    }

    .dfl-hero__content {
        padding-left: 2px;
    }

    .dfl-hero__service-card {
        max-width: 410px;
    }
      :root {
        --dfl-header-height: 88px;
    }

    .dfl-header__inner {
        grid-template-columns:
            minmax(215px, auto)
            minmax(450px, 1fr)
            auto;
    }

    .dfl-header__nav-list {
        gap: clamp(18px, 1.45vw, 29px);
    }

        :root {
        --dfl-topbar-height: 40px;
    }

    .dfl-topbar__item,
    .dfl-topbar__phone {
        font-size: 0.75rem;
    }

    .dfl-topbar__group--left {
        gap: 19px;
    }


    :root {
        --dfl-header-height: 94px;
    }

    .dfl-container {
        width: min(
            calc(100% - 144px),
            var(--dfl-container)
        );
    }

    .dfl-card:hover {
        transform: translateY(-9px);
    }

}


/* =========================================================
   MEDIA QUERY 2: TABLET
========================================================= */

@media (min-width: 768px) and (max-width: 1199px) {
     .dfl-footer__container {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 50px 45px;
    }

    .dfl-footer__brand-column {
        max-width: 470px;
    }

    .dfl-footer__info-column {
        max-width: 480px;
    }

    .dfl-footer__bottom-container {
        align-items: flex-start;
    }

    .dfl-footer__copyright {
        max-width: 680px;
    }
    .dfl-service-areas__header {
        grid-template-columns:
            minmax(0, 1.25fr)
            minmax(245px, 0.55fr);

        gap: 35px;
    }

    .dfl-service-areas__heading h2 {
        font-size: clamp(2.35rem, 5.4vw, 4.2rem);
    }

    .dfl-service-areas__layout {
        grid-template-columns:
            minmax(275px, 0.59fr)
            minmax(0, 1.41fr);

        gap: 18px;
    }

    .dfl-service-areas__panel {
        min-height: 690px;
        padding: 26px 22px;
    }

    .dfl-service-areas__locations {
        grid-template-columns: 1fr;
    }

    .dfl-service-area-button {
        min-height: 48px;
    }

    .dfl-service-areas__panel-actions {
        grid-template-columns: 1fr;
    }

    .dfl-service-areas__map-frame {
        min-height: 545px;
    }

    .dfl-service-areas__map-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .dfl-service-areas__map-note {
        max-width: none;
        text-align: left;
    }
      .dfl-reviews__header {
        grid-template-columns:
            minmax(0, 1.25fr)
            minmax(245px, 0.55fr);

        gap: 35px;
    }

    .dfl-reviews__heading h2 {
        font-size: clamp(2.35rem, 5.4vw, 4.2rem);
    }

    .dfl-reviews__layout {
        grid-template-columns:
            minmax(260px, 0.58fr)
            minmax(0, 1.42fr);

        gap: 18px;
    }

    .dfl-reviews__story {
        min-height: 610px;
        padding: 27px 23px;
    }

    .dfl-reviews__story-content {
        margin-top: 53px;
    }

    .dfl-reviews__story-content h3 {
        font-size: clamp(1.55rem, 3vw, 2.3rem);
    }

    .dfl-reviews__facts {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .dfl-reviews__fact {
        display: flex;
        align-items: center;
        gap: 11px;

        padding: 11px 12px;
    }

    .dfl-reviews__fact > span {
        margin-top: 0;
    }

    .dfl-reviews__loading-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .dfl-reviews__loading-card:nth-child(3) {
        display: none;
    }

    .dfl-reviews__widget-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 15px;
    }
      .dfl-why__header {
        grid-template-columns:
            minmax(0, 1.25fr)
            minmax(245px, 0.55fr);

        gap: 36px;
    }

    .dfl-why__heading h2 {
        font-size: clamp(2.35rem, 5.4vw, 4.2rem);
    }

    .dfl-why__layout {
        grid-template-columns:
            minmax(285px, 0.7fr)
            minmax(0, 1.3fr);

        gap: 20px;
    }

    .dfl-why__visual {
        min-height: 680px;
    }

    .dfl-why__reasons {
        gap: 14px;
    }

    .dfl-why-card {
        min-height: 225px;
        padding: 23px;
    }

    .dfl-why-card__content p {
        font-size: 0.68rem;
    }

    .dfl-why__contact-panel {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;
    }
     .dfl-services__header {
        grid-template-columns:
            minmax(0, 1.35fr)
            minmax(230px, 0.55fr);

        gap: 30px;
    }

    .dfl-services__heading h2 {
        font-size: clamp(2.35rem, 5vw, 4.1rem);
    }

    .dfl-services__summary {
        padding: 22px;
    }

    .dfl-services__filter-area {
        align-items: flex-end;
    }

    .dfl-services__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 18px;
    }

    .dfl-service-card--featured {
        grid-column: span 2;
    }

    .dfl-service-card {
        min-height: 450px;
    }

    .dfl-service-card--featured {
        min-height: 500px;
    }

    .dfl-services__bottom {
        gap: 24px;
    }

     .dfl-trust-strip {
        padding: 58px 0;
    }

    .dfl-trust-strip__container {
        grid-template-columns:
            minmax(245px, 0.72fr)
            minmax(0, 1.38fr);

        gap: 20px;
    }

    .dfl-trust-strip__intro {
        min-height: 320px;
        padding: 28px;
    }

    .dfl-trust-strip__intro h2 {
        font-size: clamp(1.65rem, 3.1vw, 2.25rem);
    }

    .dfl-trust-strip__grid {
        gap: 14px;
    }

    .dfl-trust-strip__item {
        min-height: 150px;
        padding: 21px;
    }

    .dfl-trust-strip__item-copy p {
        font-size: 0.68rem;
    }
    .dfl-hero__container {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(285px, 0.58fr);

        gap: 38px;

        padding-top: clamp(24px, 4svh, 42px);
        padding-bottom: 70px;
    }

    .dfl-hero__overlay {
        background:
            linear-gradient(
                90deg,
                rgba(5, 30, 16, 0.96) 0%,
                rgba(5, 30, 16, 0.87) 43%,
                rgba(5, 30, 16, 0.43) 100%
            );
    }

    .dfl-hero__title {
        font-size:
            clamp(
                2.8rem,
                min(5.7vw, 7.7svh),
                4.6rem
            );
    }

    .dfl-hero__description {
        max-width: 570px;
        font-size: 0.89rem;
    }

    .dfl-hero__trust {
        gap: 20px;
    }

    .dfl-hero__trust-item + .dfl-hero__trust-item::before {
        left: -10px;
    }

    .dfl-hero__service-card {
        width: 100%;
        padding: 21px;
    }

    .dfl-hero__service-card-top h2 {
        font-size: 1.12rem;
    }

    .dfl-hero__service-list li {
        min-height: 45px;
    }

    .dfl-hero__service-list strong {
        font-size: 0.67rem;
    }
       :root {
        --dfl-header-height: 80px;
    }

    .dfl-header__inner {
        grid-template-columns: 58px 1fr 58px;
        gap: 12px;
    }

    .dfl-header__desktop-nav,
    .dfl-header__actions {
        display: none;
    }

    .dfl-header__menu-button {
        display: inline-flex;
        align-items: center;
        justify-content: flex-start;
        gap: 9px;

        width: fit-content;
        min-height: 44px;
        padding: 5px 6px 5px 0;

        color: var(--dfl-green-forest);
        background: transparent;

        cursor: pointer;
    }

    .dfl-header__menu-icon {
        position: relative;

        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 5px;

        width: 25px;
        height: 25px;
    }

    .dfl-header__menu-icon span {
        display: block;

        height: 2px;

        background: currentColor;
        border-radius: var(--dfl-radius-round);

        transition:
            transform var(--dfl-transition-normal) var(--dfl-ease),
            opacity var(--dfl-transition-fast) var(--dfl-ease),
            width var(--dfl-transition-normal) var(--dfl-ease);
    }

    .dfl-header__menu-icon span:nth-child(1) {
        width: 23px;
    }

    .dfl-header__menu-icon span:nth-child(2) {
        width: 17px;
    }

    .dfl-header__menu-icon span:nth-child(3) {
        width: 21px;
    }

    .dfl-header__menu-button[aria-expanded="true"]
    .dfl-header__menu-icon span:nth-child(1) {
        width: 22px;
        transform: translateY(7px) rotate(45deg);
    }

    .dfl-header__menu-button[aria-expanded="true"]
    .dfl-header__menu-icon span:nth-child(2) {
        opacity: 0;
    }

    .dfl-header__menu-button[aria-expanded="true"]
    .dfl-header__menu-icon span:nth-child(3) {
        width: 22px;
        transform: translateY(-7px) rotate(-45deg);
    }

    .dfl-header__menu-label {
        font-size: 0.71rem;
        font-weight: 800;
    }

    .dfl-header__brand {
        justify-self: center;
    }

    .dfl-header__logo {
        width: 61px;
        height: 61px;
    }

    .dfl-header__brand-copy {
        display: none;
    }

    .dfl-header__mobile-call {
        justify-self: end;

        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;

        min-width: 52px;
        min-height: 43px;
        padding: 8px 10px;

        color: var(--dfl-surface);

        background:
            linear-gradient(
                135deg,
                var(--dfl-green-bright),
                var(--dfl-green-primary)
            );

        border-radius: var(--dfl-radius-sm);

        box-shadow:
            0 9px 22px rgba(8, 184, 11, 0.2);

        font-size: 0.67rem;
        font-weight: 800;
    }

    .dfl-header__mobile-call svg {
        width: 17px;
        height: 17px;

        fill: none;
        stroke: currentColor;
        stroke-width: 1.7;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

     :root {
        --dfl-topbar-height: 38px;
    }

    .dfl-topbar__inner {
        gap: 20px;
    }

    .dfl-topbar__group--left {
        gap: 13px;
    }

    .dfl-topbar__phone-label {
        display: none;
    }

    :root {
        --dfl-header-height: 84px;
        --dfl-section-space: 96px;
        --dfl-inline-space: 34px;
    }

    .dfl-bg-shape-one {
        width: 520px;
        height: 520px;
    }

    .dfl-bg-shape-two {
        width: 560px;
        height: 560px;
    }

    .dfl-button {
        min-height: 52px;
        padding-inline: 23px;
    }

}


/* =========================================================
   MEDIA QUERY 3: CELULAR
========================================================= */

@media (min-width: 481px) and (max-width: 767px) {
       .dfl-footer__main {
        padding-top: 74px;
    }

    .dfl-footer__container {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 43px 30px;
    }

    .dfl-footer__brand-column {
        grid-column: 1 / -1;
    }

    .dfl-footer__description {
        max-width: 570px;
    }

    .dfl-footer__contact {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        max-width: 620px;
    }

    .dfl-footer__info-column {
        grid-column: 1 / -1;

        display: grid;
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
        gap: 28px;
    }

    .dfl-footer__social {
        margin-top: 0;
    }

    .dfl-footer__estimate {
        grid-column: 1 / -1;
        max-width: 420px;
    }

    .dfl-footer__bottom-container {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
    }

     .dfl-service-areas__header {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 25px;
    }

    .dfl-service-areas__heading h2 {
        font-size: clamp(2.25rem, 8vw, 3.7rem);
    }

    .dfl-service-areas__header-copy {
        max-width: 570px;
    }

    .dfl-service-areas__layout {
        grid-template-columns: 1fr;
        gap: 16px;

        margin-top: 51px;
    }

    .dfl-service-areas__panel {
        min-height: auto;
    }

    .dfl-service-areas__locations {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .dfl-service-areas__panel-actions {
        margin-top: 24px;
    }

    .dfl-service-areas__map-frame {
        min-height: 510px;
    }

    .dfl-service-areas__map-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .dfl-service-areas__map-note {
        max-width: none;
        text-align: left;
    }
      .dfl-reviews__header {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 25px;
    }

    .dfl-reviews__heading h2 {
        font-size: clamp(2.25rem, 8vw, 3.7rem);
    }

    .dfl-reviews__header-copy {
        max-width: 570px;
    }

    .dfl-reviews__layout {
        grid-template-columns: 1fr;
        gap: 16px;

        margin-top: 51px;
    }

    .dfl-reviews__story {
        min-height: 490px;
    }

    .dfl-reviews__story-content {
        margin-top: 49px;
    }

    .dfl-reviews__facts {
        max-width: 520px;
    }

    .dfl-reviews__widget-area {
        min-height: 440px;
    }

    .dfl-reviews__loading-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .dfl-reviews__loading-card:nth-child(3) {
        display: none;
    }

    .dfl-reviews__bottom-band {
        align-items: flex-start;
        flex-direction: column;
        gap: 21px;
    }

    .dfl-reviews__bottom-actions {
        width: 100%;
    }
      .dfl-why__header {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 25px;
    }

    .dfl-why__heading h2 {
        font-size: clamp(2.25rem, 8vw, 3.7rem);
    }

    .dfl-why__header-copy {
        max-width: 580px;
    }

    .dfl-why__layout {
        grid-template-columns: 1fr;
        gap: 17px;

        margin-top: 51px;
    }

    .dfl-why__visual {
        min-height: 570px;
    }

    .dfl-why__visual-content {
        bottom: 105px;
    }

    .dfl-why__reasons {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 13px;
    }

    .dfl-why-card {
        min-height: 220px;
        padding: 22px;
    }

    .dfl-why__contact-panel {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;
    }

    .dfl-why__contact-actions {
        width: 100%;
    }

    .dfl-services__header {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 27px;
    }

    .dfl-services__heading h2 {
        font-size: clamp(2.3rem, 8vw, 3.7rem);
    }

    .dfl-services__summary {
        width: min(100%, 520px);
    }

    .dfl-services__filter-area {
        align-items: flex-start;
        flex-direction: column;
        gap: 13px;
    }

    .dfl-services__filters {
        width: 100%;
        flex-wrap: nowrap;

        padding-bottom: 6px;

        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-width: thin;
    }

    .dfl-services__filter {
        flex: 0 0 auto;
    }

    .dfl-services__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 14px;
    }

    .dfl-service-card--featured {
        grid-column: span 2;
    }

    .dfl-service-card {
        min-height: 430px;
    }

    .dfl-service-card__media {
        height: 205px;
    }

    .dfl-service-card--featured
    .dfl-service-card__media {
        height: 250px;
    }

    .dfl-service-card__content p {
        font-size: 0.71rem;
    }

    .dfl-services__bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .dfl-services__bottom-actions {
        width: 100%;
        justify-content: space-between;
    }
      .dfl-trust-strip {
        padding: 52px 0;
    }

    .dfl-trust-strip__container {
        grid-template-columns: 1fr;
        gap: 17px;
    }

    .dfl-trust-strip__intro {
        min-height: auto;
        padding: 29px;
    }

    .dfl-trust-strip__intro h2 {
        max-width: 490px;
        font-size: clamp(1.85rem, 7vw, 2.55rem);
    }

    .dfl-trust-strip__intro p {
        max-width: 510px;
    }

    .dfl-trust-strip__intro-link {
        max-width: 260px;
    }

    .dfl-trust-strip__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 13px;
    }

    .dfl-trust-strip__item {
        min-height: 154px;
        padding: 21px;
    }
     .dfl-hero__media img {
        object-position: 63% center;
    }

    .dfl-hero__overlay {
        background:
            linear-gradient(
                90deg,
                rgba(5, 30, 16, 0.95) 0%,
                rgba(5, 30, 16, 0.79) 64%,
                rgba(5, 30, 16, 0.53) 100%
            ),
            linear-gradient(
                180deg,
                rgba(5, 30, 16, 0.04),
                rgba(5, 30, 16, 0.39)
            );
    }

    .dfl-hero__container {
        display: flex;
        align-items: center;

        padding-top: clamp(21px, 4svh, 35px);
        padding-bottom: 66px;
    }

    .dfl-hero__content {
        width: min(100%, 620px);
    }

    .dfl-hero__eyebrow {
        margin-bottom: 15px;
        padding-block: 7px;

        font-size: 0.6rem;
    }

    .dfl-hero__title {
        max-width: 590px;

        font-size:
            clamp(
                2.75rem,
                min(10vw, 7.8svh),
                4.3rem
            );

        line-height: 0.92;
    }

    .dfl-hero__description {
        max-width: 530px;
        margin-top: 17px;

        font-size: 0.86rem;
        line-height: 1.62;
    }

    .dfl-hero__actions {
        margin-top: 22px;
    }

    .dfl-hero__button {
        min-height: 49px;
        padding: 12px 18px;
    }

    .dfl-hero__trust {
        gap: 20px;
        margin-top: 23px;
    }

    .dfl-hero__trust-item + .dfl-hero__trust-item::before {
        display: none;
    }

    .dfl-hero__trust-item:nth-child(3) {
        display: none;
    }

    .dfl-hero__service-card {
        display: none;
    }

    .dfl-hero__bottom {
        height: 50px;
    }

    .dfl-hero__bottom p {
        gap: 10px;
        font-size: 0.55rem;
    }
     :root {
        --dfl-header-height: 74px;
    }

    .dfl-header__inner {
        grid-template-columns: 51px 1fr 51px;
        gap: 9px;
    }

    .dfl-header__desktop-nav,
    .dfl-header__actions {
        display: none;
    }

    .dfl-header__menu-button {
        display: inline-grid;
        place-items: center;

        width: 43px;
        height: 43px;
        padding: 0;

        color: var(--dfl-green-forest);
        background: rgba(19, 138, 36, 0.075);

        border: 1px solid rgba(13, 77, 29, 0.09);
        border-radius: var(--dfl-radius-xs);

        cursor: pointer;
    }

    .dfl-header__menu-icon {
        position: relative;

        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 5px;

        width: 22px;
        height: 22px;
    }

    .dfl-header__menu-icon span {
        display: block;

        width: 21px;
        height: 2px;

        background: currentColor;
        border-radius: var(--dfl-radius-round);

        transition:
            transform var(--dfl-transition-normal) var(--dfl-ease),
            opacity var(--dfl-transition-fast) var(--dfl-ease);
    }

    .dfl-header__menu-icon span:nth-child(2) {
        width: 15px;
    }

    .dfl-header__menu-button[aria-expanded="true"]
    .dfl-header__menu-icon span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .dfl-header__menu-button[aria-expanded="true"]
    .dfl-header__menu-icon span:nth-child(2) {
        opacity: 0;
    }

    .dfl-header__menu-button[aria-expanded="true"]
    .dfl-header__menu-icon span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .dfl-header__menu-label {
        display: none;
    }

    .dfl-header__brand {
        justify-self: center;
    }

    .dfl-header__logo {
        width: 57px;
        height: 57px;
    }

    .dfl-header__brand-copy {
        display: none;
    }

    .dfl-header__mobile-call {
        justify-self: end;

        display: grid;
        place-items: center;

        width: 43px;
        height: 43px;

        color: var(--dfl-surface);

        background:
            linear-gradient(
                135deg,
                var(--dfl-green-bright),
                var(--dfl-green-primary)
            );

        border-radius: var(--dfl-radius-xs);

        box-shadow:
            0 9px 22px rgba(8, 184, 11, 0.19);
    }

    .dfl-header__mobile-call svg {
        width: 18px;
        height: 18px;

        fill: none;
        stroke: currentColor;
        stroke-width: 1.7;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .dfl-header__mobile-call span {
        display: none;
    }

    .dfl-mobile-navigation__panel {
        width: min(420px, 94vw);
    }
      :root {
        --dfl-topbar-height: 36px;
    }

    .dfl-topbar__inner {
        gap: 14px;
    }

    .dfl-topbar__area,
    .dfl-topbar__divider {
        display: none;
    }

    .dfl-topbar__item,
    .dfl-topbar__phone {
        font-size: 0.7rem;
    }

    .dfl-topbar__phone-label {
        display: none;
    }

    .dfl-topbar__phone-icon {
        width: 18px;
        height: 18px;
    }

    :root {
        --dfl-header-height: 76px;
        --dfl-section-space: 78px;
        --dfl-inline-space: 22px;
        --dfl-scroll-offset: calc(var(--dfl-header-height) + 18px);
    }

    body {
        font-size: 15.5px;
    }

    .dfl-section-description {
        margin-top: 19px;
        line-height: 1.75;
    }

    .dfl-button {
        min-height: 51px;
        padding: 14px 21px;
    }

    .dfl-card {
        border-radius: var(--dfl-radius-md);
    }

    .dfl-transition-logo {
        width: 84px;
        height: 84px;
    }

    .dfl-transition-logo img {
        width: 70px;
        height: 70px;
    }

}


/* =========================================================
   MEDIA QUERY 4: CELULARES PEQUEÑOS
========================================================= */

@media (max-width: 480px) {
     .dfl-footer__main {
        padding:
            64px
            0
            48px;
    }

    .dfl-footer__container {
        grid-template-columns: 1fr;
        gap: 39px;
    }

    .dfl-footer__logo {
        width: 62px;
        height: 62px;
    }

    .dfl-footer__brand-copy strong {
        font-size: 1.08rem;
    }

    .dfl-footer__description {
        margin-top: 20px;

        font-size: 0.74rem;
        line-height: 1.68;
    }

    .dfl-footer__contact {
        margin-top: 23px;
    }

    .dfl-footer__column-heading {
        margin-bottom: 16px;
    }

    .dfl-footer__links {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 0 16px;
    }

    .dfl-footer__links a {
        min-height: 41px;

        font-size: 0.64rem;
    }

    .dfl-footer__hours-card {
        padding: 16px 14px;
    }

    .dfl-footer__social {
        margin-top: 27px;
    }

    .dfl-footer__social-list {
        display: grid;
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .dfl-footer__social-link {
        flex-direction: column;
        gap: 5px;

        min-height: 57px;
        padding: 8px 5px;

        font-size: 0.51rem;
    }

    .dfl-footer__estimate {
        margin-top: 23px;
    }

    .dfl-footer__bottom-container {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;

        min-height: 0;
        padding-top: 20px;
        padding-bottom: 20px;
    }

    .dfl-footer__copyright {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .dfl-footer__bottom-divider {
        display: none;
    }

    .dfl-footer__powered {
        display: block;
    }

    .dfl-footer__back-to-top {
        width: 100%;
    }

    .dfl-footer__leaf {
        width: 330px;
        opacity: 0.7;
    }
     .dfl-service-areas {
        padding: 68px 0;
    }

    .dfl-service-areas__header {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 21px;
    }

    .dfl-service-areas__eyebrow {
        margin-bottom: 16px;
        font-size: 0.61rem;
    }

    .dfl-service-areas__heading h2 {
        font-size: clamp(2.05rem, 10.8vw, 3.05rem);
        line-height: 1;
    }

    .dfl-service-areas__header-copy p {
        font-size: 0.82rem;
        line-height: 1.7;
    }

    .dfl-service-areas__layout {
        grid-template-columns: 1fr;
        gap: 13px;

        margin-top: 42px;
    }

    .dfl-service-areas__panel {
        min-height: auto;
        padding: 23px 18px;

        border-radius: var(--dfl-radius-sm);
    }

    .dfl-service-areas__panel-top h3 {
        font-size: 1.55rem;
    }

    .dfl-service-areas__facts {
        gap: 5px;
    }

    .dfl-service-areas__fact {
        padding: 12px 7px;
    }

    .dfl-service-areas__fact strong {
        font-size: 1rem;
    }

    .dfl-service-areas__fact > span {
        font-size: 0.52rem;
    }

    .dfl-service-areas__locations {
        grid-template-columns: 1fr;
        gap: 6px;

        max-height: 320px;
        padding-right: 3px;

        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .dfl-service-area-button {
        min-height: 49px;
    }

    .dfl-service-areas__panel-actions {
        grid-template-columns: 1fr;
        margin-top: 23px;
    }

    .dfl-service-areas__map-shell {
        border-radius: var(--dfl-radius-sm);
    }

    .dfl-service-areas__map-toolbar {
        min-height: 78px;
        padding: 15px 16px;
    }

    .dfl-service-areas__map-title-icon {
        width: 39px;
        height: 39px;
    }

    .dfl-service-areas__map-title strong {
        font-size: 0.79rem;
    }

    .dfl-service-areas__reset {
        width: 39px;
        height: 39px;
        min-height: 0;
        padding: 0;
    }

    .dfl-service-areas__reset span {
        display: none;
    }

    .dfl-service-areas__map-frame {
        min-height: 460px;
    }

    .dfl-service-areas__map-badge {
        top: 12px;
        left: 12px;

        min-height: 43px;
        padding: 8px 10px;
    }

    .dfl-service-areas__map-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 9px;

        min-height: 0;
        padding: 15px 16px;
    }

    .dfl-service-areas__map-note {
        max-width: none;
        text-align: left;
    }

    .dfl-map-popup .leaflet-popup-content {
        width: 210px;
    }
       .dfl-reviews {
        padding: 68px 0;
    }

    .dfl-reviews__header {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 21px;
    }

    .dfl-reviews__eyebrow {
        margin-bottom: 16px;
        font-size: 0.61rem;
    }

    .dfl-reviews__heading h2 {
        font-size: clamp(2.05rem, 10.8vw, 3.05rem);
        line-height: 1;
    }

    .dfl-reviews__header-copy > p {
        font-size: 0.82rem;
        line-height: 1.7;
    }

    .dfl-reviews__header-tags {
        gap: 6px;
    }

    .dfl-reviews__header-tags span {
        padding-inline: 8px;
        font-size: 0.54rem;
    }

    .dfl-reviews__layout {
        grid-template-columns: 1fr;
        gap: 13px;

        margin-top: 42px;
    }

    .dfl-reviews__story {
        min-height: 465px;
        padding: 23px 19px;

        border-radius: var(--dfl-radius-sm);
    }

    .dfl-reviews__story-content {
        margin-top: 40px;
    }

    .dfl-reviews__story-content h3 {
        font-size: clamp(1.55rem, 8vw, 2.15rem);
    }

    .dfl-reviews__story-content p {
        display: -webkit-box;

        overflow: hidden;

        font-size: 0.7rem;

        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
    }

    .dfl-reviews__facts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }

    .dfl-reviews__fact {
        padding: 12px 7px;
    }

    .dfl-reviews__fact strong {
        font-size: 1rem;
    }

    .dfl-reviews__fact > span {
        font-size: 0.53rem;
    }

    .dfl-reviews__story-footer > a {
        width: 40px;
        height: 40px;
        min-height: 0;
        padding: 0;
    }

    .dfl-reviews__story-footer > a span {
        display: none;
    }

    .dfl-reviews__widget-shell {
        border-radius: var(--dfl-radius-sm);
    }

    .dfl-reviews__widget-heading {
        min-height: 77px;
        padding: 15px 17px;
    }

    .dfl-reviews__widget-logo {
        width: 39px;
        height: 39px;
    }

    .dfl-reviews__widget-title > div strong {
        font-size: 0.82rem;
    }

    .dfl-reviews__live-status {
        padding-inline: 8px;
    }

    .dfl-reviews__live-status strong {
        display: none;
    }

    .dfl-reviews__widget-area {
        min-height: 420px;
        padding: 11px;
    }

    .dfl-reviews__loading {
        inset: 11px;
        padding: 15px;
    }

    .dfl-reviews__loading-grid {
        grid-template-columns: 1fr;
    }

    .dfl-reviews__loading-card:nth-child(2),
    .dfl-reviews__loading-card:nth-child(3) {
        display: none;
    }

    .dfl-reviews__widget-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 15px;

        padding: 17px;
    }

    .dfl-reviews__estimate {
        width: 100%;
    }

    .dfl-reviews__bottom-band {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;

        padding: 21px 18px;

        border-radius: var(--dfl-radius-sm);
    }

    .dfl-reviews__bottom-actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .dfl-reviews__gallery-link,
    .dfl-reviews__contact-link {
        width: 100%;
    }

    .dfl-reviews__large-quote {
        display: none;
    }

     .dfl-why {
        padding: 68px 0;
    }

    .dfl-why__header {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 21px;
    }

    .dfl-why__eyebrow {
        margin-bottom: 16px;
        font-size: 0.61rem;
    }

    .dfl-why__heading h2 {
        font-size: clamp(2.05rem, 10.8vw, 3.05rem);
        line-height: 1;
    }

    .dfl-why__header-copy p {
        font-size: 0.82rem;
        line-height: 1.7;
    }

    .dfl-why__layout {
        grid-template-columns: 1fr;
        gap: 13px;

        margin-top: 42px;
    }

    .dfl-why__visual {
        min-height: 490px;
        border-radius: var(--dfl-radius-sm);
    }

    .dfl-why__visual-top {
        top: 17px;
        right: 17px;
        left: 17px;
    }

    .dfl-why__visual-content {
        right: 20px;
        bottom: 94px;
        left: 20px;
    }

    .dfl-why__visual-content h3 {
        font-size: clamp(1.65rem, 8vw, 2.25rem);
    }

    .dfl-why__visual-content p {
        display: -webkit-box;

        overflow: hidden;

        font-size: 0.7rem;

        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .dfl-why__visual-footer {
        min-height: 75px;
        padding: 15px 20px;
    }

    .dfl-why__visual-footer > a {
        width: 41px;
        height: 41px;
        min-height: 0;
        padding: 0;

        justify-content: center;
    }

    .dfl-why__visual-footer > a span {
        display: none;
    }

    .dfl-why__reasons {
        grid-template-columns: 1fr;
        gap: 11px;
    }

    .dfl-why-card {
        min-height: 0;
        padding: 20px 18px;

        border-radius: var(--dfl-radius-sm);
    }

    .dfl-why-card__content {
        margin-top: 17px;
    }

    .dfl-why-card__content h3 {
        font-size: 1.05rem;
    }

    .dfl-why-card__content p {
        font-size: 0.69rem;
        line-height: 1.58;
    }

    .dfl-why__contact-panel {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;

        min-height: 0;
        padding: 22px 18px;

        border-radius: var(--dfl-radius-sm);
    }

    .dfl-why__contact-actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .dfl-why__contact-primary,
    .dfl-why__contact-secondary {
        width: 100%;
    }
      .dfl-services {
        padding: 67px 0;
    }

    .dfl-services__header {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 23px;
    }

    .dfl-services__eyebrow {
        margin-bottom: 16px;
        font-size: 0.63rem;
    }

    .dfl-services__heading h2 {
        font-size: clamp(2.05rem, 10.8vw, 3.1rem);
        line-height: 1;
    }

    .dfl-services__heading > p {
        margin-top: 18px;
        font-size: 0.84rem;
        line-height: 1.7;
    }

    .dfl-services__summary {
        padding: 21px 19px;
        border-radius: var(--dfl-radius-sm);
    }

    .dfl-services__filter-area {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;

        margin-top: 40px;
    }

    .dfl-services__filters {
        display: grid;
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        width: 100%;
        gap: 7px;
    }

    .dfl-services__filter {
        width: 100%;
        min-height: 43px;
        padding-inline: 10px;

        font-size: 0.65rem;
    }

    .dfl-services__status {
        font-size: 0.6rem;
    }

    .dfl-services__grid {
        grid-template-columns: 1fr;
        gap: 13px;

        margin-top: 25px;
    }

    .dfl-service-card,
    .dfl-service-card--featured {
        grid-column: auto;
        min-height: 0;

        border-radius: var(--dfl-radius-sm);
    }

    .dfl-service-card__media,
    .dfl-service-card--featured
    .dfl-service-card__media {
        height: 215px;
    }

    .dfl-service-card__body {
        padding: 20px 18px;
    }

    .dfl-service-card__content {
        margin-top: 16px;
    }

    .dfl-service-card__content h3 {
        font-size: 1.28rem;
    }

    .dfl-service-card__content p {
        font-size: 0.73rem;
        line-height: 1.65;
    }

    .dfl-service-card__features {
        display: none;
    }

    .dfl-service-card__action {
        margin-top: 19px;
        padding-top: 16px;

        font-size: 0.65rem;
    }

    .dfl-service-card__arrow {
        width: 35px;
        height: 35px;
    }

    .dfl-services__bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 22px;

        padding: 22px 19px;

        border-radius: var(--dfl-radius-sm);
    }

    .dfl-services__bottom-copy {
        align-items: flex-start;
    }

    .dfl-services__bottom-actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .dfl-services__bottom-call {
        align-items: flex-start;
    }

    .dfl-services__bottom-button {
        width: 100%;
    }
     .dfl-trust-strip {
        padding: 43px 0;
    }

    .dfl-trust-strip__container {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .dfl-trust-strip__intro {
        min-height: auto;
        padding: 25px 21px;
        border-radius: var(--dfl-radius-sm);
    }

    .dfl-trust-strip__eyebrow {
        margin-bottom: 14px;
        font-size: 0.58rem;
    }

    .dfl-trust-strip__intro h2 {
        max-width: 340px;
        font-size: clamp(1.7rem, 9vw, 2.25rem);
    }

    .dfl-trust-strip__intro p {
        margin-top: 15px;
        font-size: 0.74rem;
    }

    .dfl-trust-strip__intro-link {
        min-height: 46px;
        margin-top: 22px;
    }

    .dfl-trust-strip__grid {
        grid-template-columns: 1fr;
        gap: 11px;
    }

    .dfl-trust-strip__item {
        display: grid;
        grid-template-columns: 44px minmax(0, 1fr);
        column-gap: 13px;

        min-height: 0;
        padding: 19px 18px;

        border-radius: var(--dfl-radius-sm);
    }

    .dfl-trust-strip__item-top {
        grid-column: 1;
        grid-row: 1 / span 2;

        display: flex;
        flex-direction: column-reverse;
        align-items: center;
        justify-content: flex-end;
        gap: 9px;
    }

    .dfl-trust-strip__icon {
        width: 39px;
        height: 39px;
    }

    .dfl-trust-strip__number {
        font-size: 0.55rem;
    }

    .dfl-trust-strip__item-copy {
        grid-column: 2;
        grid-row: 1;

        margin-top: 1px;
    }

    .dfl-trust-strip__item-copy h3 {
        font-size: 0.94rem;
    }

    .dfl-trust-strip__item-copy p {
        max-width: none;
        margin-top: 6px;
        font-size: 0.67rem;
        line-height: 1.5;
    }

    .dfl-trust-strip__phones {
        grid-column: 2;
        grid-row: 2;

        margin-top: 9px;
    }
       .dfl-hero__media img {
        object-position: 64% center;

        filter:
            saturate(0.89)
            contrast(1.02)
            brightness(0.71);
    }

    .dfl-hero__overlay {
        background:
            linear-gradient(
                90deg,
                rgba(5, 30, 16, 0.96) 0%,
                rgba(5, 30, 16, 0.82) 72%,
                rgba(5, 30, 16, 0.65) 100%
            ),
            linear-gradient(
                180deg,
                rgba(5, 30, 16, 0.02),
                rgba(5, 30, 16, 0.44)
            );
    }

    .dfl-hero__container {
        display: flex;
        align-items: center;

        padding-top: clamp(15px, 2.5svh, 24px);
        padding-bottom: 54px;
    }

    .dfl-hero__content {
        width: 100%;
    }

    .dfl-hero__eyebrow {
        max-width: 100%;
        margin-bottom: 12px;
        padding: 6px 9px 6px 7px;

        font-size:
            clamp(
                0.5rem,
                min(2.45vw, 1.35svh),
                0.58rem
            );

        letter-spacing: 0.07em;
    }

    .dfl-hero__eyebrow-icon {
        width: 24px;
        height: 24px;
    }

    .dfl-hero__title {
        font-size:
            clamp(
                2.25rem,
                min(11.5vw, 7.15svh),
                3.45rem
            );

        line-height: 0.93;
        letter-spacing: -0.058em;
    }

    .dfl-hero__title-accent::after {
        display: none;
    }

    .dfl-hero__description {
        display: -webkit-box;

        max-width: 410px;
        margin-top: clamp(12px, 2svh, 17px);

        overflow: hidden;

        font-size:
            clamp(
                0.76rem,
                min(3.3vw, 1.75svh),
                0.85rem
            );

        line-height: 1.52;

        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
    }

    .dfl-hero__actions {
        display: grid;
        grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.82fr);
        gap: 9px;

        margin-top: clamp(16px, 2.7svh, 22px);
    }

    .dfl-hero__button {
        width: 100%;
        min-width: 0;
        min-height: 46px;
        padding: 10px 12px;

        font-size: 0.66rem;
    }

    .dfl-hero__button--secondary {
        justify-content: center;
    }

    .dfl-hero__call-icon {
        display: none;
    }

    .dfl-hero__call-copy {
        align-items: center;
    }

    .dfl-hero__call-copy small {
        display: none;
    }

    .dfl-hero__call-copy strong {
        margin-top: 0;
        font-size: 0.66rem;
    }

    .dfl-hero__trust {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 9px;

        margin-top: clamp(15px, 2.6svh, 21px);
    }

    .dfl-hero__trust-item {
        gap: 7px;
    }

    .dfl-hero__trust-item:nth-child(3) {
        display: none;
    }

    .dfl-hero__trust-item + .dfl-hero__trust-item::before {
        display: none;
    }

    .dfl-hero__trust-icon {
        width: 31px;
        height: 31px;
    }

    .dfl-hero__trust-item strong {
        font-size: 0.61rem;
    }

    .dfl-hero__trust-item small {
        font-size: 0.52rem;
    }

    .dfl-hero__service-card {
        display: none;
    }

    .dfl-hero__bottom {
        height: 43px;
    }

    .dfl-hero__bottom p {
        display: none;
    }

    .dfl-hero__bottom-inner {
        justify-content: center;
    }

    .dfl-hero__scroll {
        font-size: 0.56rem;
    }
     :root {
        --dfl-header-height: 68px;
    }

    .dfl-header__inner {
        grid-template-columns: 44px 1fr 44px;
        gap: 7px;
    }

    .dfl-header__desktop-nav,
    .dfl-header__actions {
        display: none;
    }

    .dfl-header__menu-button {
        display: inline-grid;
        place-items: center;

        width: 40px;
        height: 40px;
        padding: 0;

        color: var(--dfl-green-forest);
        background: rgba(19, 138, 36, 0.075);

        border: 1px solid rgba(13, 77, 29, 0.09);
        border-radius: var(--dfl-radius-xs);

        cursor: pointer;
    }

    .dfl-header__menu-icon {
        position: relative;

        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 4px;

        width: 20px;
        height: 20px;
    }

    .dfl-header__menu-icon span {
        display: block;

        width: 20px;
        height: 2px;

        background: currentColor;
        border-radius: var(--dfl-radius-round);

        transition:
            transform var(--dfl-transition-normal) var(--dfl-ease),
            opacity var(--dfl-transition-fast) var(--dfl-ease);
    }

    .dfl-header__menu-icon span:nth-child(2) {
        width: 14px;
    }

    .dfl-header__menu-button[aria-expanded="true"]
    .dfl-header__menu-icon span:nth-child(1) {
        transform: translateY(6px) rotate(45deg);
    }

    .dfl-header__menu-button[aria-expanded="true"]
    .dfl-header__menu-icon span:nth-child(2) {
        opacity: 0;
    }

    .dfl-header__menu-button[aria-expanded="true"]
    .dfl-header__menu-icon span:nth-child(3) {
        transform: translateY(-6px) rotate(-45deg);
    }

    .dfl-header__menu-label {
        display: none;
    }

    .dfl-header__brand {
        justify-self: center;
    }

    .dfl-header__logo {
        width: 53px;
        height: 53px;
        border-radius: 8px;
    }

    .dfl-header__brand-copy {
        display: none;
    }

    .dfl-header__mobile-call {
        justify-self: end;

        display: grid;
        place-items: center;

        width: 40px;
        height: 40px;

        color: var(--dfl-surface);

        background:
            linear-gradient(
                135deg,
                var(--dfl-green-bright),
                var(--dfl-green-primary)
            );

        border-radius: var(--dfl-radius-xs);

        box-shadow:
            0 8px 20px rgba(8, 184, 11, 0.18);
    }

    .dfl-header__mobile-call svg {
        width: 17px;
        height: 17px;

        fill: none;
        stroke: currentColor;
        stroke-width: 1.7;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .dfl-header__mobile-call span {
        display: none;
    }

    .dfl-mobile-navigation__panel {
        width: 100%;
        max-height:
            calc(
                100svh -
                var(--dfl-mobile-menu-top)
            );

        border-radius: 0;
    }

    .dfl-mobile-navigation__heading {
        padding:
            18px
            var(--dfl-inline-space)
            15px;
    }

    .dfl-mobile-navigation__nav {
        padding:
            7px
            var(--dfl-inline-space)
            12px;
    }

    .dfl-mobile-navigation__link {
        min-height: 53px;
        font-size: 0.96rem;
    }

    .dfl-mobile-navigation__footer {
        padding:
            20px
            var(--dfl-inline-space)
            22px;
    }
     :root {
        --dfl-topbar-height: 34px;
    }

    .dfl-topbar__inner {
        justify-content: center;
    }

    .dfl-topbar__group--left {
        display: none;
    }

    .dfl-topbar__group--right {
        width: 100%;
        justify-content: center;
    }

    .dfl-topbar__phone {
        justify-content: center;
        width: 100%;

        font-size: 0.7rem;
        letter-spacing: 0.01em;
    }

    .dfl-topbar__phone-label {
        display: inline;
    }

    .dfl-topbar__phone::after {
        display: none;
    }

    :root {
        --dfl-header-height: 70px;
        --dfl-section-space: 68px;
        --dfl-inline-space: 17px;
        --dfl-scroll-offset: calc(var(--dfl-header-height) + 15px);
    }

    body {
        font-size: 15px;
        line-height: 1.65;
    }

    h1,
    .dfl-title-xl {
        font-size: clamp(2.45rem, 13vw, 3.7rem);
    }

    h2,
    .dfl-title-lg {
        font-size: clamp(2rem, 10vw, 3rem);
    }

    .dfl-eyebrow {
        margin-bottom: 16px;
        font-size: 0.68rem;
    }

    .dfl-section-description {
        margin-top: 17px;
        line-height: 1.72;
    }

    .dfl-button {
        width: 100%;
        min-height: 50px;
        padding: 14px 19px;
    }

    .dfl-card {
        padding: 23px 20px;
        border-radius: var(--dfl-radius-sm);
    }

    .dfl-bg-shape-one {
        top: -160px;
        right: -220px;

        width: 430px;
        height: 430px;
    }

    .dfl-bg-shape-two {
        bottom: -230px;
        left: -230px;

        width: 460px;
        height: 460px;
    }

    .dfl-transition-brand {
        padding: 20px;
    }

    .dfl-transition-logo {
        width: 76px;
        height: 76px;
    }

    .dfl-transition-logo img {
        width: 64px;
        height: 64px;
    }

    .dfl-transition-line {
        width: 125px;
    }

}