.estate-plan {
    position: relative;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.estate-plan .estate-plan__viewport {
    width: 100%;
    margin: 0;
    padding: 0;
}

.estate-plan > .estate-plan__svg,
.estate-plan .estate-plan__viewport > .estate-plan__svg {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.estate-plan .estate-plan__scroll-hint {
    display: none;
    margin: 0;
    pointer-events: none;
}

.estate-plan .estate-plan__background {
    pointer-events: none;
}

.estate-plan .estate-plan__plot {
    opacity: 0;
    pointer-events: fill;
    transition: opacity 240ms ease-in;
}

.estate-plan .estate-plan__plot.is-active {
    opacity: 1;
}

.estate-plan .estate-plan__label {
    cursor: pointer;
    touch-action: manipulation;
}

.estate-plan .estate-plan__label > path {
    pointer-events: none;
}

.estate-plan .estate-plan__hitarea {
    fill: transparent;
    stroke: none;
    pointer-events: all;
}

.estate-plan .estate-plan__label:focus {
    outline: none;
}

.estate-plan .estate-plan__label:focus-visible .estate-plan__hitarea {
    stroke: #e6dab9;
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

@media (max-width: 767px) {
    .estate-plan .estate-plan__viewport {
        height: 100vh;
        height: 100dvh;
        overflow-x: auto;
        overflow-y: hidden;
        touch-action: pan-x pan-y pinch-zoom;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
    }

    .estate-plan .estate-plan__viewport::-webkit-scrollbar {
        display: none;
    }

    .estate-plan .estate-plan__viewport > .estate-plan__svg {
        width: auto;
        height: 100%;
    }

    .estate-plan .estate-plan__scroll-hint {
        position: absolute;
        top: 16px;
        left: 50%;
        z-index: 1;
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 8px 14px;
        border-radius: 6px;
        background: rgba(40, 48, 35, 0.88);
        color: #fff;
        font-size: 14px;
        line-height: 1.4;
        white-space: nowrap;
        transform: translateX(-50%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .estate-plan .estate-plan__plot {
        transition: none;
    }
}
