/* ============================================================
   HPTECH DECAL QUOTE - LUXURY INDUSTRIAL UI
   ------------------------------------------------------------
   PHP / name / id / class / JS hooks are preserved.
   Chỉ thay đổi presentation layer của trang.
   ============================================================ */

.hp-decal-page {
    --d-navy: #103451;
    --d-navy-dark: #08283f;
    --d-navy-deep: #061f33;
    --d-yellow: #ffbd00;
    --d-yellow-light: #ffc52a;
    --d-bg: #eef3f7;
    --d-card: rgba(255, 255, 255, .94);
    --d-card-solid: #ffffff;
    --d-text: #143653;
    --d-muted: #7890a3;
    --d-line: #d8e4eb;
    --d-soft: #f6f9fb;
    --d-shadow: 0 18px 50px rgba(6, 31, 51, .08);
    --d-shadow-hover: 0 26px 65px rgba(6, 31, 51, .13);
    --d-radius: 18px;
    width: 100%;
    margin: 0 !important;
    padding: 0 0 90px !important;
    background:
        radial-gradient(circle at 8% 14%, rgba(255, 189, 0, .065), transparent 20%),
        radial-gradient(circle at 95% 72%, rgba(16, 52, 81, .055), transparent 24%),
        linear-gradient(180deg, #f4f7fa 0%, var(--d-bg) 100%) !important;
    color: var(--d-text) !important;
    font-family: 'Nunito', sans-serif !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
    overflow: visible !important;
}

.hp-decal-page *,
.hp-decal-page *::before,
.hp-decal-page *::after {
    box-sizing: border-box;
}

.hp-decal-page h1,
.hp-decal-page h2,
.hp-decal-page h3,
.hp-decal-page p {
    margin: 0;
}

.hp-decal-page a {
    text-decoration: none !important;
}

.hp-decal-page button,
.hp-decal-page input,
.hp-decal-page textarea,
.hp-decal-page select {
    font-family: 'Nunito', sans-serif !important;
}

.hp-decal-page input,
.hp-decal-page button,
.hp-decal-page select,
.hp-decal-page textarea {
    font-size: 14px;
}

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

.hp-decal-container {
    width: calc(100% - 70px) !important;
    max-width: 1400px !important;
    margin: 0 auto !important;
}

.hp-decal-hero {
    position: relative;
    min-height: 310px;
    display: flex;
    align-items: center;
    overflow: hidden;
    background:
        radial-gradient(circle at 80% 20%, rgba(255, 189, 0, .16), transparent 24%),
        radial-gradient(circle at 88% 82%, rgba(38, 121, 181, .16), transparent 28%),
        linear-gradient(120deg, #051d2f 0%, #0a2d46 46%, #103451 100%);
    color: #fff;
    isolation: isolate;
}

.hp-decal-hero::before,
.hp-decal-hero::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(255, 189, 0, .12);
    border-radius: 50%;
    pointer-events: none;
}

.hp-decal-hero::before {
    width: 660px;
    height: 660px;
    right: -260px;
    top: -380px;
}

.hp-decal-hero::after {
    width: 470px;
    height: 470px;
    right: -95px;
    top: -235px;
}

.hp-decal-hero-grid {
    position: absolute;
    inset: 0;
    opacity: .22;
    background-image:
        linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: linear-gradient(to right, rgba(0, 0, 0, .82), transparent 78%);
    -webkit-mask-image: linear-gradient(to right, rgba(0, 0, 0, .82), transparent 78%);
}

.hp-decal-hero .hp-decal-container {
    position: relative;
    z-index: 2;
    min-height: 310px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 48px;
}

.hp-decal-hero-copy {
    max-width: 850px;
}

.hp-decal-eyebrow {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 16px;
    color: var(--d-yellow);
    font-size: 14px;
    font-weight: 900;
    letter-spacing: 2.8px;
    text-transform: uppercase;
}

.hp-decal-eyebrow>span {
    width: 36px;
    height: 2px;
    background: var(--d-yellow);
}

.hp-decal-eyebrow>b {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--d-yellow);
    box-shadow: 0 0 0 6px rgba(255, 189, 0, .11);
}

.hp-decal-hero h1 {
    max-width: 900px;
    font-size: 56px;
    line-height: 1.02;
    font-weight: 900;
    letter-spacing: -1.8px;
    color: #fff !important;
}

.hp-decal-hero h1 strong {
    display: block;
    color: var(--d-yellow) !important;
    font-weight: 900;
}

.hp-decal-hero-copy>p {
    max-width: 760px;
    margin-top: 18px;
    color: rgba(255, 255, 255, .78);
    font-size: 15px;
    line-height: 1.75;
}

.hp-decal-hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.hp-decal-hero-tags span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 999px;
    background: rgba(255, 255, 255, .055);
    color: rgba(255, 255, 255, .92);
    font-size: 10.5px;
    font-weight: 800;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.hp-decal-hero-tags b {
    color: var(--d-yellow);
}

.hp-decal-hero-meta {
    display: flex;
    align-items: center;
    gap: 20px;
    flex: 0 0 auto;
    margin-top: 34px;
    padding: 18px 0 0;
    border-top: 1px solid rgba(255, 255, 255, .14);
}

.hp-decal-hero-meta div {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 82px;
}

.hp-decal-hero-meta strong {
    font-size: 27px;
    line-height: 1;
    color: #fff;
    font-weight: 900;
}

.hp-decal-hero-meta span {
    font-size: 11.5px;
    line-height: 1;
    color: rgba(255, 255, 255, .46);
    font-weight: 800;
    letter-spacing: 1.2px;
    white-space: nowrap;
}

.hp-decal-hero-meta i {
    width: 1px;
    height: 40px;
    background: rgba(255, 255, 255, .17);
}

/* ============================================================
   MAIN LAYOUT
   ============================================================ */

.hp-decal-main {
    padding-top: 34px !important;
}

.hp-decal-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 375px !important;
    gap: 30px !important;
    align-items: start !important;
}

.hp-decal-main-col {
    min-width: 0 !important;
    width: auto !important;
}

.hp-decal-side {
    position: sticky;
    top: 112px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

/* ============================================================
   CARDS
   ============================================================ */

.hp-decal-card {
    width: 100%;
    margin: 0 0 20px !important;
    padding: 26px !important;
    border: 1px solid rgba(198, 214, 224, .92) !important;
    border-radius: var(--d-radius) !important;
    background: var(--d-card) !important;
    box-shadow: var(--d-shadow) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.hp-decal-card:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 189, 0, .35) !important;
    box-shadow: var(--d-shadow-hover) !important;
}

.hp-decal-card-head {
    display: flex;
    align-items: center;
    gap: 13px;
    margin: 0 0 22px !important;
}

.hp-decal-section-icon {
    width: 46px !important;
    height: 46px !important;
    flex: 0 0 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 189, 0, .14);
    border-radius: 12px;
    background: linear-gradient(145deg, var(--d-navy), var(--d-navy-deep)) !important;
    color: var(--d-yellow) !important;
    font-size: 16px !important;
    box-shadow: 0 8px 20px rgba(6, 31, 51, .12);
}

.hp-decal-card-head>div span,
.hp-decal-card-head-inline small,
.hp-decal-check-title small {
    display: block;
    margin: 0 0 5px !important;
    color: #a27700 !important;
    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: 1.6px !important;
    text-transform: uppercase;
}

.hp-decal-card-head h2,
.hp-decal-card-head-inline strong,
.hp-decal-check-title strong {
    display: block;
    margin: 0 !important;
    color: var(--d-navy) !important;
    font-size: 19px !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
    letter-spacing: -.15px;
}

.hp-decal-section-toggle {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-align: left !important;
    cursor: pointer !important;
}

.hp-decal-section-toggle .hp-decal-card-head {
    margin-bottom: 0 !important;
}

.hp-decal-section-toggle>i {
    color: #8da2b0;
    font-size: 14px;
    transition: transform .2s ease;
    color: #8a9eac;
}

.hp-decal-section-toggle.is-open>i {
    color: #a27700;
    transform: rotate(0deg);
}

/* ============================================================
   DROPZONE
   ============================================================ */

.hp-decal-form {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.hp-dropzone-modern-wrap {
    width: 100%;
}

.hp-dropzone-modern-hint {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin: 0 0 10px;
    color: #8197a6;
    font-size: 12.5px;
    font-weight: 800;
    letter-spacing: .9px;
}

.hp-dropzone-modern-hint span {
    color: #a27700;
    font-weight: 900;
}

.hp-dropzone-modern-hint b {
    font-weight: 700;
}

.hp-dropzone-modern-zone {
    position: relative;
    width: 100%;
    min-height: 250px;
    padding: 22px;
    border: 1.5px dashed #afc4d2;
    border-radius: 15px;
    background:
        radial-gradient(circle at 50% 15%, rgba(255, 189, 0, .05), transparent 32%),
        linear-gradient(145deg, #fbfdfe, #f0f5f8);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: .22s ease;
}

.hp-dropzone-modern-zone:hover,
.hp-dropzone-modern-zone.dz-drag-hover {
    border-color: var(--d-yellow);
    background: linear-gradient(145deg, #fffdf6, #f3f7f9);
    box-shadow: 0 16px 30px rgba(16, 52, 81, .07);
    transform: translateY(-1px);
}

.hp-dropzone-modern-zone .dz-message {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center;
    color: var(--d-text) !important;
}

/* Empty upload state / fallback */
/* =========================================================
   HPTECH - DROPZONE EMPTY STATE
   Upload area
   ========================================================= */

#dm-upload-zone {
    width: 100%;

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

    box-sizing: border-box;
}


/* =========================================================
   EMPTY STATE
   ========================================================= */

.hp-dz-empty-state {

    position: relative;

    z-index: 2;

    width: 100%;

    min-height: 235px;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    box-sizing: border-box;

    padding: 34px 26px 30px;

    text-align: center;

    cursor: pointer;

    border: 1px dashed rgba(126, 153, 168, .55);

    border-radius: 16px;

    background:
        radial-gradient(
            circle at 50% 35%,
            rgba(255, 189, 0, .07),
            transparent 32%
        ),
        linear-gradient(
            180deg,
            #fbfdfe 0%,
            #f6fafc 100%
        );

    transition:
        border-color .25s ease,
        background .25s ease,
        box-shadow .25s ease,
        transform .25s ease;

}


/* =========================================================
   HOVER EMPTY STATE
   ========================================================= */

.hp-dz-empty-state:hover {

    border-color:
        rgba(255, 189, 0, .82);

    background:
        radial-gradient(
            circle at 50% 35%,
            rgba(255, 189, 0, .11),
            transparent 34%
        ),
        linear-gradient(
            180deg,
            #ffffff 0%,
            #f8fbfd 100%
        );

    box-shadow:
        0 10px 26px rgba(16, 52, 81, .06);

}


/* =========================================================
   UPLOAD ICON
   ========================================================= */

.hp-dz-upload-icon-main {

    width: 62px;
    height: 62px;

    flex: 0 0 62px;

    display: flex;

    align-items: center;
    justify-content: center;

    margin-bottom: 15px;

    border-radius: 17px;

    background:
        linear-gradient(
            145deg,
            #103451 0%,
            #08283f 100%
        );

    color:
        #ffbd00;

    font-size: 27px;

    box-shadow:
        0 10px 24px rgba(8, 40, 63, .18),
        0 0 0 5px rgba(255, 189, 0, .06);

    transition:
        transform .25s ease,
        box-shadow .25s ease;

}


/* Icon hover */

.hp-dz-empty-state:hover
.hp-dz-upload-icon-main {

    transform:
        translateY(-2px)
        scale(1.04);

    box-shadow:
        0 13px 28px rgba(8, 40, 63, .22),
        0 0 0 6px rgba(255, 189, 0, .09);

}


/* =========================================================
   TITLE
   ========================================================= */

.hp-dz-empty-state > strong {

    display: block;

    margin: 0;

    color:
        #143653;

    font-size: 17px;

    line-height: 1.4;

    font-weight: 900;

    letter-spacing: -.15px;

}


/* =========================================================
   SUBTITLE
   ========================================================= */

.hp-dz-empty-state .hp-dz-or {

    display: block;

    max-width: 520px;

    margin-top: 7px;

    color:
        #8195a7;

    font-size: 14px;

    line-height: 1.55;

    font-weight: 600;

}


/* =========================================================
   BUTTON
   ========================================================= */

.hp-dz-empty-state
.hp-decal-upload-btn {

    position: relative;

    z-index: 5;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 8px;

    margin-top: 17px;

    padding:
        12px 19px;

    border:
        1px solid rgba(216, 163, 0, .35);

    border-radius: 10px;

    background:
        linear-gradient(
            135deg,
            #ffbd00 0%,
            #e7aa00 100%
        );

    color:
        #08283f;

    font-size: 14px;

    line-height: 1;

    font-weight: 900;

    white-space: nowrap;

    cursor: pointer;

    box-shadow:
        0 8px 20px rgba(255, 189, 0, .22);

    transition:
        transform .22s ease,
        box-shadow .22s ease,
        filter .22s ease;

}


/* Button icon */

.hp-dz-empty-state
.hp-decal-upload-btn i {

    font-size: 15px;

}


/* Button hover */

.hp-dz-empty-state
.hp-decal-upload-btn:hover {

    transform:
        translateY(-2px);

    filter:
        brightness(1.03);

    box-shadow:
        0 12px 26px rgba(255, 189, 0, .30);

}


/* Button active */

.hp-dz-empty-state
.hp-decal-upload-btn:active {

    transform:
        translateY(0)
        scale(.98);

}


/* =========================================================
   FILE TYPE NOTE
   ========================================================= */

.hp-dz-empty-state > small {

    display: block;

    max-width: 600px;

    margin-top: 13px;

    color:
        #8da0ad;

    font-size: 12.5px;

    line-height: 1.5;

    font-weight: 700;

    letter-spacing: .15px;

}


/* =========================================================
   PREVIEW AREA
   Nằm bên dưới EMPTY STATE
   ========================================================= */

#dm-upload-previews {

    width: 100%;

    margin-top: 16px;

    box-sizing: border-box;

}


/* =========================================================
   DROPZONE PREVIEW
   ========================================================= */

#dm-upload-previews
.dz-preview {

    position: relative;

    width: 100%;

    display: flex;

    align-items: center;

    gap: 13px;

    margin: 9px 0;

    padding: 12px;

    box-sizing: border-box;

    border:
        1px solid #dce6ec;

    border-radius: 12px;

    background:
        #ffffff;

    box-shadow:
        0 5px 16px rgba(16, 52, 81, .05);

}


/* =========================================================
   THUMBNAIL
   ========================================================= */

#dm-upload-previews
.dz-preview .dz-image {

    width: 72px;
    height: 72px;

    flex: 0 0 72px;

    overflow: hidden;

    border-radius: 12px;

    border:
        1px solid #dce6ec;

    background:
        #f7fafc;

}


#dm-upload-previews
.dz-preview .dz-image img {

    width: 100%;
    height: 100%;

    display: block;

    object-fit: contain;

}


/* =========================================================
   FILE NAME
   ========================================================= */

#dm-upload-previews
.dz-preview .dz-filename {

    min-width: 0;

    flex: 1;

    margin: 0;

    color:
        #143653;

    font-size: 14px;

    line-height: 1.45;

    font-weight: 800;

    word-break: break-word;

}


/* =========================================================
   REMOVE BUTTON
   ========================================================= */

#dm-upload-previews
.dz-preview .dz-remove {

    position: static;

    flex: 0 0 auto;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    margin-left: auto;

    padding:
        7px 10px;

    border:
        1px solid #edc8c8;

    border-radius: 8px;

    background:
        #fff6f6;

    color:
        #c0392b;

    font-size: 12.5px;

    line-height: 1;

    font-weight: 900;

    text-decoration: none;

    cursor: pointer;

    transition:
        background .2s ease,
        border-color .2s ease,
        color .2s ease;

}


#dm-upload-previews
.dz-preview .dz-remove:hover {

    border-color:
        #c0392b;

    background:
        #c0392b;

    color:
        #ffffff;

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .hp-dz-empty-state {

        min-height: 220px;

        padding:
            28px 18px 26px;

    }


    .hp-dz-upload-icon-main {

        width: 56px;
        height: 56px;

        flex-basis: 56px;

        font-size: 24px;

        border-radius: 15px;

    }


    .hp-dz-empty-state > strong {

        font-size: 16px;

    }


    .hp-dz-empty-state .hp-dz-or {

        max-width: 300px;

        font-size: 14px;

    }


    .hp-dz-empty-state
    .hp-decal-upload-btn {

        padding:
            11px 16px;

        font-size: 14px;

    }


    .hp-dz-empty-state > small {

        max-width: 300px;

        font-size: 12px;

    }


    #dm-upload-previews
    .dz-preview {

        align-items: flex-start;

        padding: 10px;

    }


    #dm-upload-previews
    .dz-preview .dz-image {

        width: 60px;
        height: 60px;

        flex-basis: 60px;

    }


    #dm-upload-previews
    .dz-preview .dz-remove {

        padding:
            6px 8px;

    }

}


/* =========================================================
   VERY SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

    .hp-dz-empty-state {

        min-height: 205px;

        padding:
            24px 14px;

    }


    .hp-dz-empty-state .hp-dz-or {

        max-width: 260px;

    }


    #dm-upload-previews
    .dz-preview {

        gap: 9px;

    }

}
/* ============================================================
   CUSTOMER
   ============================================================ */

.hp-decal-customer-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
}

.hp-decal-field {
    display: block !important;
    margin: 0 !important;
}

.hp-decal-field>span {
    display: block;
    margin: 0 0 7px !important;
    color: #5d778b !important;
    font-size: 10.5px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
}

.hp-decal-input-wrap {
    position: relative;
    width: 100%;
}

.hp-decal-input-wrap>i {
    position: absolute;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    color: #90a4b3;
    font-size: 14px;
    pointer-events: none;
}

.hp-decal-input-wrap input,
.hp-decal-unit-input input,
.hp-decal-dimension input {
    width: 100% !important;
    height: 46px !important;
    margin: 0 !important;
    padding: 0 13px !important;
    border: 1px solid #cedee7 !important;
    border-radius: 9px !important;
    outline: none !important;
    background: #fbfcfd !important;
    color: var(--d-text) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .85) !important;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.hp-decal-input-wrap input {
    padding-left: 37px !important;
}

.hp-decal-input-wrap input:focus,
.hp-decal-unit-input input:focus,
.hp-decal-dimension input:focus {
    border-color: #d3a300 !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(255, 189, 0, .12) !important;
}

/* ============================================================
   OPTIONS
   ============================================================ */

.hp-decal-panel {
    display: block !important;
    margin-top: 20px;
}

/* STEP 04 - Keypad panel controlled by the switch */
#hpKeypadPanel.hp-keypad-collapsed {
    display: none !important;
    margin-top: 0 !important;
}

#hpKeypadPanel.hp-keypad-open {
    display: block !important;
    margin-top: 20px !important;
    animation: hpKeypadOpen .22s ease both;
}

@keyframes hpKeypadOpen {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.hp-decal-options-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 15px !important;
}

.hp-decal-option {
    min-width: 0 !important;
    margin: 0 !important;
    padding: 17px !important;
    border: 1px solid #dbe6ec !important;
    border-radius: 11px !important;
    background: linear-gradient(145deg, #fcfdfe, #f7fafc) !important;
}

.hp-decal-option-wide {
    grid-column: 1/-1 !important;
}

.hp-decal-option-label {
    margin: 0 0 11px !important;
}

.hp-decal-option-label strong {
    display: block;
    margin: 0 0 3px !important;
    color: var(--d-navy) !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
    font-weight: 900 !important;
}

.hp-decal-option-label span {
    display: block;
    color: #8b9eab !important;
    font-size: 12.5px !important;
    line-height: 1.4 !important;
}

.hp-decal-dimension {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr) 30px !important;
    align-items: center !important;
    gap: 7px !important;
}

.hp-decal-dimension>div {
    position: relative;
    min-width: 0;
}

.hp-decal-dimension input {
    padding-right: 38px !important;
}

.hp-decal-dimension div>span {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #8da1af;
    font-size: 12px;
    font-weight: 800;
}

.hp-decal-dimension>b {
    margin: 0;
    text-align: center;
    color: #7891a2;
    font-size: 16px;
}

.hp-decal-dimension>em {
    color: #7d93a3;
    font-size: 12.5px;
    font-style: normal;
    font-weight: 800;
}

.hp-decal-choice-grid {
    display: grid !important;
    grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
    gap: 7px !important;
}

.hp-decal-choice-grid label {
    display: block !important;
    margin: 0 !important;
    cursor: pointer;
}

.hp-decal-choice-grid input {
    position: absolute !important;
    opacity: 0 !important;
    width: 1px !important;
    height: 1px !important;
    pointer-events: none !important;
}

.hp-decal-choice-grid label span {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    padding: 0 6px !important;
    border: 1px solid #d2e0e7 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #5f788b !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    transition: .18s ease !important;
}

.hp-decal-choice-grid label:hover span {
    border-color: #c4d4df !important;
    transform: translateY(-1px);
}

.hp-decal-choice-grid label input:checked+span {
    border-color: var(--d-yellow) !important;
    background: linear-gradient(145deg, #fffdf3, #fff6d6) !important;
    color: #9a7000 !important;
    box-shadow: inset 0 0 0 1px var(--d-yellow), 0 5px 14px rgba(255, 189, 0, .10) !important;
}

.hp-decal-choice-grid-thickness {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}

.hp-decal-unit-input {
    position: relative !important;
}

.hp-decal-unit-input input {
    padding-right: 55px !important;
}

.hp-decal-unit-input>span {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #8198a8;
    font-size: 12.5px;
    font-weight: 800;
}

.hp-decal-checktile {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0 11px !important;
    border: 1px solid #d2e0e7 !important;
    border-radius: 9px !important;
    background: #fff !important;
    color: #516f83 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    transition: .18s ease;
}

.hp-decal-checktile:hover {
    border-color: #c5d5df !important;
    transform: translateY(-1px);
}

.hp-decal-checktile input {
    position: absolute !important;
    opacity: 0 !important;
    width: 1px !important;
    height: 1px !important;
}

.hp-decal-checktile span {
    display: flex;
    align-items: center;
    gap: 7px;
}

.hp-decal-checktile input:checked+span {
    color: #9a7000;
}

.hp-decal-checktile input:checked+span i {
    color: var(--d-yellow);
}

.hp-decal-checkhead {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    margin: 0 !important;
    cursor: pointer;
}

.hp-decal-check-title {
    display: flex;
    align-items: center;
    gap: 12px;
}

.hp-decal-switch {
    width: 48px !important;
    height: 27px !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 20px !important;
    background: #d3e0e8 !important;
    position: relative;
    outline: none;
    cursor: pointer;
    transition: .2s ease;
}

.hp-decal-switch::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 21px;
    height: 21px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, .18);
    transition: .2s ease;
}

.hp-decal-switch:checked {
    background: linear-gradient(90deg, #ffca24, #ffb600) !important;
}

.hp-decal-switch:checked::after {
    transform: translateX(21px);
}

.hp-decal-led-extra {
    margin-top: 11px;
}

.hp-decal-warning {
    margin-top: 8px !important;
    padding: 9px 11px !important;
    border: 1px solid rgba(255, 189, 0, .25) !important;
    border-radius: 8px !important;
    background: #fff9e6 !important;
    color: #9a7000 !important;
    font-size: 12.5px !important;
    line-height: 1.55 !important;
}

/* ============================================================
   SUMMARY / SUPPORT
   ============================================================ */

.hp-decal-summary,
.hp-decal-side-card {
    padding: 21px !important;
    border: 1px solid rgba(198, 214, 224, .92) !important;
    border-radius: 16px !important;
    background: rgba(255, 255, 255, .96) !important;
    box-shadow: 0 18px 45px rgba(6, 31, 51, .08) !important;
}

.hp-decal-summary {
    background:
        radial-gradient(circle at 90% 5%, rgba(255, 189, 0, .08), transparent 26%),
        linear-gradient(145deg, #fff, #f8fbfd) !important;
}

.hp-decal-summary-head,
.hp-decal-side-card-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin: 0 0 15px !important;
    padding: 0 0 14px !important;
    border-bottom: 1px solid #e3ebf0 !important;
}

.hp-decal-summary-head span {
    display: block;
    margin: 0 0 5px !important;
    color: #9a7000 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: 1.6px !important;
}

.hp-decal-summary-head h2 {
    font-size: 24px !important;
    line-height: 1.12 !important;
    font-weight: 900 !important;
    color: var(--d-navy) !important;
    letter-spacing: -.3px;
}

.hp-decal-summary-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 189, 0, .15);
    border-radius: 11px;
    background: linear-gradient(145deg, var(--d-navy), var(--d-navy-deep));
    color: var(--d-yellow);
    font-size: 14px;
    box-shadow: 0 9px 20px rgba(6, 31, 51, .10);
}

.hp-decal-summary-list {
    display: flex;
    flex-direction: column;
}

.hp-decal-summary-list>div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 0;
    border-bottom: 1px solid #e8eef2;
}

.hp-decal-summary-list>div:last-child {
    border-bottom: 0;
}

.hp-decal-summary-list>div>span {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #748c9d;
    font-size: 14px;
    font-weight: 700;
}

.hp-decal-summary-list>div>span i {
    width: 15px;
    text-align: center;
    color: #93a7b5;
}

.hp-decal-summary-list>div>strong {
    max-width: 58%;
    color: var(--d-text);
    font-size: 14px;
    font-weight: 900;
    text-align: right;
    overflow-wrap: anywhere;
}

.hp-decal-summary-note {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin-top: 12px;
    color: #8197a7;
    font-size: 12.5px;
    line-height: 1.5;
}

.hp-decal-summary-note span {
    color: var(--d-yellow);
}

.hp-decal-submit,
.hp-decal-quote-btn {
    width: 100% !important;
    min-height: 54px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-top: 15px !important;
    padding: 0 14px 0 19px !important;
    border: 1px solid rgba(184, 139, 0, .18) !important;
    border-radius: 10px !important;
    background: linear-gradient(145deg, #ffd65a, #ffbd00) !important;
    color: var(--d-navy) !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    cursor: pointer !important;
    box-shadow: 0 13px 26px rgba(255, 189, 0, .22) !important;
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.hp-decal-submit:hover,
.hp-decal-quote-btn:hover {
    transform: translateY(-2px);
    filter: brightness(1.03);
    box-shadow: 0 17px 30px rgba(255, 189, 0, .28) !important;
}

.hp-decal-submit b,
.hp-decal-quote-btn span:last-child {
    width: 34px !important;
    height: 34px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: rgba(16, 52, 81, .11) !important;
}

.hp-decal-side-card-head {
    justify-content: flex-start !important;
}

.hp-decal-side-card-head>span {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: #edf4f8;
    color: var(--d-navy);
}

.hp-decal-side-card-head small {
    display: block;
    color: #9a7000;
    font-size: 11.5px;
    font-weight: 900;
    letter-spacing: 1.3px;
}

.hp-decal-side-card-head strong {
    display: block;
    color: var(--d-navy);
    font-size: 18px;
    font-weight: 900;
}

.hp-decal-side-card p {
    margin: 0 !important;
    color: #718a9c !important;
    font-size: 14px !important;
    line-height: 1.75 !important;
}

.hp-decal-side-card>a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 11px;
    color: #9a7000 !important;
    font-size: 14px;
    font-weight: 900;
}

/* ============================================================
   KNOWLEDGE
   ============================================================ */

.hp-decal-knowledge {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 375px;
    gap: 30px;
    margin-top: 30px;
    align-items: start;
}

.hp-decal-article,
.hp-decal-guide {
    border: 1px solid rgba(198, 214, 224, .92);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(6, 31, 51, .055);
}

.hp-decal-article-head,
.hp-decal-guide-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 21px 22px;
    border-bottom: 1px solid #e4ebf0;
}

.hp-decal-article-head span,
.hp-decal-guide-head small {
    display: block;
    color: #9a7000;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 1.5px;
}

.hp-decal-article-head h2,
.hp-decal-guide-head strong {
    display: block;
    margin-top: 5px;
    color: var(--d-navy);
    font-size: 21px;
    font-weight: 900;
    line-height: 1.2;
}

.hp-decal-article-icon,
.hp-decal-guide-head>span {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: linear-gradient(145deg, var(--d-navy), var(--d-navy-deep));
    color: var(--d-yellow);
}

.hp-decal-article-body {
    padding: 24px;
    color: #5f788b;
    font-size: 14px;
    line-height: 1.85;
}

.hp-decal-article-body img {
    max-width: 100%;
    height: auto;
}

.hp-decal-article-body h2,
.hp-decal-article-body h3 {
    color: var(--d-navy);
}

.hp-decal-guide-list {
    display: flex;
    flex-direction: column;
    padding: 0 20px;
}

.hp-decal-guide-item {
    display: grid !important;
    grid-template-columns: 32px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 9px;
    min-height: 50px;
    border-bottom: 1px solid #e7edf1;
    color: #4f6a7d !important;
    transition: padding .18s ease, background .18s ease;
}

.hp-decal-guide-item:hover {
    padding-left: 4px;
    background: linear-gradient(90deg, rgba(255, 189, 0, .05), transparent);
}

.hp-decal-guide-item:last-child {
    border-bottom: 0;
}

.hp-decal-guide-num {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dbe7ed;
    border-radius: 7px;
    background: #f4f8fa;
    color: #8c6a00;
    font-size: 12px;
    font-weight: 900;
}

.hp-decal-guide-title {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 14px;
    font-weight: 700;
}

.hp-decal-guide-item>b {
    color: #adb9c2;
    transition: transform .18s ease, color .18s ease;
}

.hp-decal-guide-item:hover>b {
    transform: translateX(3px);
    color: #9a7000;
}

.hp-decal-guide-more {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0;
    padding: 15px 20px;
    border-top: 1px solid #e7edf1;
    color: #9a7000 !important;
    font-size: 12.5px;
    font-weight: 900;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width:1199px) {
    .hp-decal-container {
        width: calc(100% - 42px) !important;
    }

    .hp-decal-layout,
    .hp-decal-knowledge {
        grid-template-columns: minmax(0, 1fr) 330px !important;
        gap: 22px !important;
    }

    .hp-decal-hero h1 {
        font-size: 47px;
    }

    .hp-decal-hero-meta {
        gap: 14px;
    }
}

@media (max-width:991px) {
    .hp-decal-container {
        width: calc(100% - 24px) !important;
    }

    .hp-decal-hero {
        padding: 58px 0 48px;
        min-height: auto;
    }

    .hp-decal-hero .hp-decal-container {
        display: block;
        min-height: auto;
    }

    .hp-decal-hero h1 {
        font-size: 42px;
    }

    .hp-decal-hero-copy>p {
        font-size: 14px;
    }

    .hp-decal-hero-meta {
        padding-top: 22px;
    }

    .hp-decal-main {
        padding-top: 22px !important;
    }

    .hp-decal-layout,
    .hp-decal-knowledge {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }

    .hp-decal-side {
        position: static;
    }
}

@media (max-width:640px) {
    .hp-decal-container {
        width: calc(100% - 18px) !important;
    }

    .hp-decal-hero {
        padding: 44px 0 38px;
    }

    .hp-decal-hero h1 {
        font-size: 31px;
        letter-spacing: -.8px;
    }

    .hp-decal-eyebrow {
        font-size: 12px;
        letter-spacing: 2px;
    }

    .hp-decal-hero-copy>p {
        font-size: 14px;
        line-height: 1.65;
    }

    .hp-decal-hero-tags span {
        font-size: 11.5px;
        min-height: 31px;
        padding: 6px 9px;
    }

    .hp-decal-hero-meta {
        gap: 10px;
    }

    .hp-decal-hero-meta div {
        min-width: 72px;
    }

    .hp-decal-hero-meta strong {
        font-size: 20px;
    }

    .hp-decal-hero-meta span {
        font-size: 6.5px;
        letter-spacing: .6px;
    }

    .hp-decal-card {
        padding: 17px !important;
        margin-bottom: 13px !important;
        border-radius: 12px !important;
    }

    .hp-decal-card-head {
        gap: 9px;
        margin-bottom: 15px !important;
    }

    .hp-decal-section-icon {
        width: 37px !important;
        height: 37px !important;
        flex-basis: 37px;
        font-size: 15px !important;
        border-radius: 10px;
    }

    .hp-decal-card-head h2,
    .hp-decal-card-head-inline strong,
    .hp-decal-check-title strong {
        font-size: 15px !important;
    }

    .hp-decal-customer-grid,
    .hp-decal-options-grid {
        grid-template-columns: 1fr !important;
    }

    .hp-decal-option-wide {
        grid-column: auto !important;
    }

    .hp-decal-choice-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    .hp-decal-choice-grid-thickness {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .hp-decal-dimension {
        grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr) 28px !important;
    }

    .hp-dropzone-modern-zone {
        min-height: 205px;
        padding: 15px;
    }

    .hp-dz-message-inner strong {
        font-size: 15px;
    }

    .hp-dropzone-modern-hint {
        display: block;
        line-height: 1.55;
    }

    .hp-dropzone-modern-hint b {
        display: block;
        margin-top: 2px;
    }

    .hp-decal-summary-head h2 {
        font-size: 20px !important;
    }

    .hp-decal-summary-list>div>span {
        font-size: 12.5px;
    }

    .hp-decal-summary-list>div>strong {
        font-size: 14px;
    }

    .hp-decal-article-body {
        padding: 18px;
        font-size: 15px;
        line-height: 1.75;
    }

    .hp-decal-article-head,
    .hp-decal-guide-head {
        padding: 18px;
    }

    .hp-decal-article-head h2,
    .hp-decal-guide-head strong {
        font-size: 18px;
    }
}

@media (max-width:420px) {
    .hp-decal-hero h1 {
        font-size: 28px;
    }

    .hp-decal-hero-meta {
        gap: 8px;
    }

    .hp-decal-hero-meta div {
        min-width: 65px;
    }

    .hp-decal-hero-meta strong {
        font-size: 17px;
    }

    .hp-decal-hero-meta span {
        font-size: 9px;
    }

    .hp-decal-choice-grid label span {
        min-height: 37px !important;
        font-size: 10.5px !important;
    }
}
.swal2-container {
        z-index: 999999 !important;
    }
.swal2-popup {
        overflow: visible !important;
    }
/* ============================================================
   STEP 04 / STEP 05 INTERACTION FIX
   ============================================================ */

#hpKeypadPanel {
    overflow: hidden !important;
    transition: opacity .22s ease, max-height .28s ease, margin-top .22s ease;
}

#hpKeypadPanel.hp-keypad-collapsed {
    display: none !important;
    max-height: 0 !important;
    opacity: 0 !important;
    margin-top: 0 !important;
    overflow: hidden !important;
}

#hpKeypadPanel.hp-keypad-open {
    display: block !important;
    max-height: 1600px !important;
    opacity: 1 !important;
    margin-top: 20px !important;
}

.hp-decal-led-extra {
    margin-top: 10px !important;
    transition: opacity .2s ease, max-height .2s ease;
}

.hp-decal-bus-card {
    transition: opacity .2s ease, transform .2s ease;
}

.hp-decal-bus-card.hp-bus-hidden {
    display: none !important;
}

#hpBusPanel.hp-bus-panel-hidden {
    display: none !important;
}

#hpBusPanel.hp-bus-panel-open {
    display: block !important;
    margin-top: 18px !important;
}

@media (max-width: 640px) {
    #hpKeypadPanel.hp-keypad-open {
        max-height: 2200px !important;
    }
}



/* ============================================================
   HPTECH KNOWLEDGE CENTER - STICKY GUIDE
   Bám theo chiều cuộn của nội dung bài viết
   ============================================================ */

@media (min-width: 992px) {

    .hp-decal-knowledge {
        align-items: flex-start !important;
    }

    .hp-decal-guide {
        position: sticky !important;
        top: 112px !important;
        align-self: flex-start !important;
        z-index: 20;
        max-height: calc(100vh - 132px);
        overflow-y: auto;
        overscroll-behavior: contain;
        scrollbar-width: thin;
    }

    .hp-decal-guide-list {
        min-height: 0;
    }

    /* Thanh cuộn gọn trên Chrome/Edge */
    .hp-decal-guide::-webkit-scrollbar {
        width: 5px;
    }

    .hp-decal-guide::-webkit-scrollbar-track {
        background: transparent;
    }

    .hp-decal-guide::-webkit-scrollbar-thumb {
        background: rgba(16, 52, 81, .20);
        border-radius: 10px;
    }

    .hp-decal-guide:hover::-webkit-scrollbar-thumb {
        background: rgba(16, 52, 81, .35);
    }
}

@media (max-width: 991px) {
    .hp-decal-guide {
        position: static !important;
        max-height: none !important;
        overflow: visible !important;
    }
}



/* ============================================================
   HERO PRODUCT VISUAL - EXPLODED MEMBRANE KEYPAD
   ============================================================ */

.hp-decal-hero .hp-decal-container {
    position: relative !important;
    min-height: 300px !important;
}

.hp-decal-hero-copy {
    position: relative;
    z-index: 5;
    max-width: 700px;
}

.hp-decal-hero-visual {
    position: absolute;
    z-index: 3;
    right: -6px;
    top: 42%;
    width: 445px;
    height: 248px;
    transform: translateY(-50%);
    pointer-events: none;
}

.hp-decal-hero-visual-glow {
    position: absolute;
    right: 4px;
    top: 48%;
    width: 330px;
    height: 205px;
    transform: translateY(-50%);
    border-radius: 50%;
    background:
        radial-gradient(ellipse at center,
            rgba(255, 189, 0, .18) 0%,
            rgba(35, 128, 191, .10) 38%,
            transparent 72%);
    filter: blur(8px);
    opacity: .95;
}

.hp-decal-hero-visual-frame {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hp-decal-hero-visual img {
    display: block;
    width: 445px;
    height: 248px;
    max-width: none !important;
    object-fit: contain;
    object-position: center;
    filter:
        drop-shadow(0 28px 32px rgba(0, 0, 0, .28)) drop-shadow(0 0 18px rgba(255, 189, 0, .10));
    transform: translate3d(0, 0, 0);
    animation: hpDecalHeroFloat 5s ease-in-out infinite;
}

@keyframes hpDecalHeroFloat {

    0%,
    100% {
        transform: translate3d(0, 0, 0) rotate(0deg);
    }

    50% {
        transform: translate3d(0, -8px, 0) rotate(-1deg);
    }
}

/* Meta nằm thấp hơn một chút để không cạnh tranh với ảnh */
.hp-decal-hero-meta {
    position: absolute !important;
    z-index: 6;
    left: 36% !important;
    right: auto !important;
    bottom: 18px;
    padding-top: 0 !important;
    gap: 28px;
}

/* Desktop: metrics nằm bên phải phần mô tả, tránh chồng tiêu đề */
@media (min-width: 1101px) {
    .hp-decal-hero-meta {
        min-width: 470px;
    }

    .hp-decal-hero-meta div {
        min-width: 105px !important;
    }
}

/* Mobile/tablet: ảnh chuyển thành vùng visual phía trên metrics */
@media (max-width: 1100px) {
    .hp-decal-hero .hp-decal-container {
        min-height: 360px !important;
    }

    .hp-decal-hero-visual {
        right: -12px;
        top: 39%;
        width: 370px;
        height: auto;
        opacity: .78;
    }

    .hp-decal-hero-visual img {
        width: 370px;
        height: auto;
    }

    .hp-decal-hero-copy {
        max-width: 640px;
    }
}

@media (max-width: 991px) {
    .hp-decal-hero .hp-decal-container {
        min-height: 560px !important;
    }

    .hp-decal-hero-visual {
        right: 50%;
        top: auto;
        bottom: 108px;
        width: 410px;
        height: auto;
        transform: translateX(50%);
        opacity: .95;
    }

    .hp-decal-hero-visual img {
        width: 410px;
        height: auto;
    }

    .hp-decal-hero-meta {
        left: 50%;
        bottom: 28px;
        transform: translateX(-50%);
        width: max-content;
    }
}

@media (max-width: 640px) {
    .hp-decal-hero .hp-decal-container {
        min-height: 540px !important;
    }

    .hp-decal-hero-visual {
        bottom: 98px;
        width: 300px;
    }

    .hp-decal-hero-visual img {
        width: 300px;
    }

    .hp-decal-hero-visual-glow {
        width: 270px;
        height: 160px;
        right: 24px;
    }

    .hp-decal-hero-meta {
        bottom: 22px;
        gap: 11px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hp-decal-hero-visual img {
        animation: none !important;
    }
}


/* HERO METRICS: tránh số dính vào tiêu ngữ nhỏ */
.hp-decal-hero-meta div {
    min-width: 88px !important;
    gap: 7px !important;
}

.hp-decal-hero-meta strong {
    display: block !important;
    font-size: 25px !important;
    line-height: 1.12 !important;
    margin: 0 !important;
    white-space: nowrap;
}

.hp-decal-hero-meta span {
    display: block !important;
    margin-top: 2px !important;
    line-height: 1.25 !important;
}

@media (min-width: 1101px) {
    .hp-decal-hero-meta {
        left: 36% !important;
        right: auto !important;
        max-width: 500px;
        gap: 28px;
    }
}


/* ============================================================
   STEP 05 - BUS VISUAL
   Hình dây BUS nằm bên phải Hàn Jack
   ============================================================ */

.hp-decal-bus-jack-option {
    min-height: 150px !important;
}

.hp-decal-bus-visual {
    min-width: 0 !important;
    min-height: 150px;
    padding: 12px 14px 8px !important;
    border: 1px solid #dfe8ee !important;
    border-radius: 10px !important;
    background:
        radial-gradient(circle at 75% 35%, rgba(255, 189, 0, .10), transparent 34%),
        linear-gradient(145deg, #fbfdff, #f2f7fa);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.hp-decal-bus-visual-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 3px;
}

.hp-decal-bus-visual-head span {
    color: #9a7000;
    font-size: 11.5px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: 1.3px;
}

.hp-decal-bus-visual-head b {
    color: #7f96a6;
    font-size: 11.5px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .4px;
    white-space: nowrap;
}

.hp-decal-bus-visual img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 105px;
    object-fit: contain;
    object-position: center;
    margin: 2px auto 0;
    filter:
        drop-shadow(0 8px 14px rgba(16, 52, 81, .12));
    transform: scale(1.02);
    transition: transform .35s ease, filter .35s ease;
}

.hp-decal-bus-visual:hover img {
    transform: scale(1.06);
    filter:
        drop-shadow(0 11px 18px rgba(16, 52, 81, .16));
}

@media (max-width: 640px) {
    .hp-decal-bus-jack-option {
        min-height: 0 !important;
    }

    .hp-decal-bus-visual {
        min-height: 145px;
        padding: 11px 12px 8px !important;
    }

    .hp-decal-bus-visual img {
        height: 108px;
    }
}