/* =========================================
   CONTAINER
   ========================================= */
.nph-wrapper {
    display: flex;
    flex-direction: column;
    width: 100%;
    overflow: hidden; 
}

/* =========================================
   MAIN ROW (Heading + Line)
   ========================================= */
.nph-main-row {
    display: flex;
    width: 100%;
    /* Default alignment, overridden by Elementor control */
    align-items: flex-end; 
    position: relative;
    flex-wrap: nowrap; 
}

/* =========================================
   SEMANTIC WRAPPER (SEO Tags)
   ========================================= */
.nph-semantic-wrapper {
    display: contents; /* Allows H1-H6 tags to exist without breaking flex layout */
}

/* =========================================
   TEXT CONTENT (Box)
   ========================================= */
.nph-text-content {
    display: inline-flex;
    width: auto;
    flex-direction: row; 
    align-items: center; 
    /* justify-content handled by Elementor control */
    gap: 8px;
    flex-shrink: 0; 
    z-index: 2;
    white-space: nowrap; 
    transition: all 0.3s ease;
    text-decoration: none;
    font-weight: inherit;
    line-height: 1.2;
}
a.nph-text-content:hover { 
    cursor: pointer; 
    opacity: 0.95; 
}

/* =========================================
   ICONS
   ========================================= */
.nph-icon-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

/* =========================================
   LINES
   ========================================= */
.nph-line {
    height: 4px;
    flex-grow: 1;
    min-width: 15px; 
    display: none;
    transition: background-color 0.3s ease, transform 0.3s ease; 
}

/* =========================================
   LAYOUT LOGIC (Structure)
   ========================================= */
.nph-align-left .nph-style-fill .nph-line-right { display: block; }

.nph-align-right .nph-style-fill .nph-main-row { flex-direction: row-reverse; }
.nph-align-right .nph-style-fill .nph-line-right { display: block; }

.nph-align-center .nph-style-fill .nph-line-left,
.nph-align-center .nph-style-fill .nph-line-right { display: block; }

.nph-style-dual .nph-main-row { align-items: center; }
.nph-style-dual .nph-line-left,
.nph-style-dual .nph-line-right { display: block; }

/* =========================================
   PRESETS (Defaults)
   ========================================= */
.nph-preset-standard .nph-text-content { background-color: #FF0000; color: #FFFFFF; }
.nph-preset-standard .nph-line { background-color: #FF0000; }

.nph-preset-dark .nph-text-content { background-color: #333333; color: #FFFFFF; }
.nph-preset-dark .nph-line { background-color: #333333; }

.nph-preset-accent .nph-text-content { background-color: #0073e6; color: #FFFFFF; }
.nph-preset-accent .nph-line { background-color: #0073e6; }

.nph-preset-minimal .nph-text-content { 
    background-color: transparent !important; 
    color: #333333; 
    padding-left: 0 !important; 
}
.nph-preset-minimal .nph-line { background-color: #333333; }

/* =========================================
   MOBILE SMART SCALE
   ========================================= */
@media (max-width: 767px) {
    .nph-text-content {
        max-width: 85%; 
        padding-left: 8px !important;
        padding-right: 8px !important;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .nph-heading-span {
        font-size: clamp(12px, 4vw, 100%); 
        line-height: 1.1;
    }
}