/* The round group emblem (Page/_group-emblem.cshtml): a spinning gradient ring, two
   orbiting dots, and the mark swaying inside a white core.
   Shown on About Us (The Dhorittree Group) and in the home page's Who We Are card.
   Every size derives from --em, so a page resizes it by setting that one value. */
.dtg-emblem {
    --em: 340px;
    --em-g: #1e9e57;
    --em-gd: #157a42;
    --em-mint: #2ed573;
    --em-ink: #0f2a1c;
    position: relative;
    width: var(--em);
    height: var(--em);
    display: flex;
    align-items: center;
    justify-content: center;
}

    .dtg-emblem .ring {
        position: absolute;
        inset: 0;
        border-radius: 50%;
        background: conic-gradient(from 0deg, var(--em-g), var(--em-mint), #bff0d4, var(--em-g));
        animation: dtgSpin 9s linear infinite;
        filter: drop-shadow(0 8px 16px rgba(30, 158, 87, 0.154));
    }
        .dtg-emblem .ring::after {
            content: "";
            position: absolute;
            inset: calc(var(--em) * 0.041);
            border-radius: 50%;
            background: #fff;
        }

    .dtg-emblem .core {
        position: relative;
        z-index: 2;
        width: calc(var(--em) * 0.735);
        height: calc(var(--em) * 0.735);
        border-radius: 50%;
        background: radial-gradient(circle at 50% 30%, #ffffff, #f2fbf6);
        box-shadow: inset 0 4px 8px rgba(30, 158, 87, 0.074), 0 8px 16px rgba(10, 31, 20, 0.077);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 6px;
        text-align: center;
    }
        .dtg-emblem .core .tree {
            width: calc(var(--em) * 0.26);
            height: calc(var(--em) * 0.26);
            border-radius: calc(var(--em) * 0.065);
            background: #fff;
            border: 1px solid #eaf5ee;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 5px 10px rgba(30, 158, 87, 0.112);
            margin-bottom: calc(var(--em) * 0.024);
            overflow: hidden;
        }
            .dtg-emblem .core .tree img {
                width: 100%;
                height: 100%;
                object-fit: contain;
                padding: 8px;
                animation: dtgSway 3.2s ease-in-out infinite;
                transform-origin: 50% 90%;
            }
        .dtg-emblem .core b {
            color: var(--em-ink);
            font-weight: 800;
            font-size: calc(var(--em) * 0.07);
            letter-spacing: .2px;
            line-height: 1;
        }
        .dtg-emblem .core small {
            color: var(--em-gd);
            font-weight: 700;
            font-size: calc(var(--em) * 0.035);
            letter-spacing: calc(var(--em) * 0.0147);
            /* the tracking trails the last letter; pull it back so the word sits centred */
            margin-right: calc(var(--em) * -0.0147);
        }

    .dtg-emblem .orb {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 100%;
        height: 100%;
        margin: -50% 0 0 -50%;
        animation: dtgSpin 14s linear infinite;
    }
        .dtg-emblem .orb i {
            position: absolute;
            top: -7px;
            left: 50%;
            width: 14px;
            height: 14px;
            margin-left: -7px;
            border-radius: 50%;
            background: var(--em-mint);
            box-shadow: 0 0 0 5px rgba(46, 213, 115, .18);
        }
        .dtg-emblem .orb.o2 { animation-duration: 20s; animation-direction: reverse; }
            .dtg-emblem .orb.o2 i { background: var(--em-g); width: 10px; height: 10px; margin-left: -5px; }

@keyframes dtgSpin { to { transform: rotate(360deg); } }
@keyframes dtgSway { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }

@media (max-width: 991px) {
    .dtg-emblem { --em: 280px; }
}

@media (prefers-reduced-motion: reduce) {
    .dtg-emblem .ring,
    .dtg-emblem .orb,
    .dtg-emblem .core .tree img { animation: none; }
}
