/* =========================================================
   easyWSDL — unified hover feedback layer
   Consistent visual reaction on every interactive control.
   Uses !important where Bootstrap's hover would otherwise win.
   ========================================================= */

/* ---------- Buttons ---------- */
.btn,
.btn-buy,
.btn-getstarted,
.mainButton,
button.btn-primary,
a.btn-primary,
.btn.btn-primary,
.e-btn,
.e-btn-group .e-btn {
    cursor: pointer;
    transition: transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease, filter .2s ease !important;
}
.btn:hover,
.btn-buy:hover,
.btn-getstarted:hover,
.mainButton:hover,
button.btn-primary:hover,
a.btn-primary:hover,
.btn.btn-primary:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 28px -10px rgba(15, 23, 42, .35) !important;
}
.btn:active,
.btn-buy:active,
button.btn-primary:active,
a.btn-primary:active {
    transform: translateY(0) !important;
}

.btn--primary:hover,
button.btn-primary:hover,
a.btn-primary:hover,
.btn.btn-primary:hover {
    background: var(--brand-500) !important;
    color: white !important;
    box-shadow: var(--shadow-glow) !important;
}
.btn--accent:hover {
    box-shadow: var(--shadow-glow) !important;
    filter: brightness(1.08) !important;
}
.btn--ghost:hover {
    background: var(--paper-alt) !important;
    border-color: var(--ink-300) !important;
    color: var(--ink-900) !important;
}
.btn--ghost-dark:hover {
    background: rgba(255,255,255,.08) !important;
    border-color: rgba(255,255,255,.32) !important;
    color: white !important;
}

/* ---------- Links ---------- */
a {
    transition: color .15s ease, text-decoration-color .15s ease, opacity .15s ease;
}
.link:hover,
.link--light:hover {
    color: var(--brand-600) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}
.site-footer__col a {
    transition: color .15s ease, transform .15s ease;
    display: inline-block;
}
.site-footer__col a:hover {
    color: white !important;
    transform: translateX(3px);
}

/* Inline content links inside cards, articles, paragraphs */
.card-surface a:not(.btn):not(.btn-buy):hover,
.feature-card a:hover,
.news-card a:hover,
.details-content a:hover,
.faqAccordion a:hover,
.accordion-body a:hover,
p a:hover,
li a:hover,
address a:hover {
    color: var(--brand-600) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ---------- Nav links (header) ---------- */
.nav__link {
    transition: background .15s ease, color .15s ease;
}
.nav__link:hover {
    background: var(--ink-50) !important;
    color: var(--ink-900) !important;
}
.nav__link--active:hover {
    background: var(--brand-50) !important;
    color: var(--brand-600) !important;
}
.mobile-nav__link {
    transition: background .15s ease, color .15s ease, padding-left .15s ease;
}
.mobile-nav__link:hover {
    background: var(--ink-50) !important;
    color: var(--ink-900) !important;
    padding-left: 16px;
}

/* ---------- Brand (logo) ---------- */
.brand { transition: opacity .15s ease; }
.brand:hover { opacity: .82; }

/* ---------- Cards: language, feature, news, price ---------- */
.lang-card,
.feature-card,
.news-card,
.price-card {
    transition: transform .18s ease, box-shadow .2s ease, border-color .2s ease, background .25s ease !important;
}
.lang-card:hover,
.feature-card:hover,
.news-card:hover,
.price-card:hover {
    transform: translateY(-4px) !important;
    border-color: var(--brand-100) !important;
    box-shadow: var(--shadow-md) !important;
}
.lang-card__icon { transition: transform .2s ease; }
.lang-card:hover .lang-card__icon { transform: scale(1.08) rotate(-3deg); }

.feature-card--lg:hover {
    background: linear-gradient(135deg, var(--brand-50) 0%, white 60%) !important;
}

.trust-item {
    border-left: 2px solid var(--ink-100);
    transition: border-color .2s ease, background .2s ease, padding-left .2s ease;
}
.trust-item:hover {
    border-left-color: var(--brand-500);
    background: var(--brand-50);
    padding-left: 28px;
}

/* Generic card-surface — subtle */
.card-surface {
    transition: border-color .2s ease, box-shadow .2s ease;
}
.card-surface:hover {
    border-color: var(--ink-200);
    box-shadow: var(--shadow-sm);
}

/* News card link arrow nudge */
.news-card .link {
    display: inline-flex;
    align-items: center;
    transition: gap .15s ease, color .15s ease;
    gap: 2px;
}
.news-card:hover .link {
    gap: 8px;
    color: var(--brand-600);
}

/* ---------- Stat strip ---------- */
.stat {
    transition: background .2s ease;
    cursor: default;
}
.stat:hover { background: var(--paper-alt); }
.stat__num { transition: color .2s ease; }
.stat:hover .stat__num { color: var(--brand-500); }

/* ---------- Code tabs ---------- */
.code-tab {
    transition: background .15s ease, color .15s ease;
    cursor: pointer;
}
.code-tab:hover {
    background: rgba(255,255,255,.06) !important;
    color: var(--ink-200) !important;
}
.code-tab.is-active:hover {
    background: rgba(255,255,255,.14) !important;
    color: white !important;
}

/* ---------- Code card chips ---------- */
.float-chip { transition: transform .2s ease, box-shadow .2s ease; }
.float-chip:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); }

/* ---------- Accordion buttons ---------- */
.accordion-button {
    cursor: pointer;
    transition: background .18s ease, color .18s ease, padding-left .18s ease !important;
}
.accordion-button.collapsed:hover {
    background: var(--ink-50) !important;
    color: var(--brand-600) !important;
    padding-left: 28px !important;
}
.accordion-button:not(.collapsed):hover {
    filter: brightness(.94);
}

/* ---------- Tables ---------- */
table.table tbody tr {
    transition: background .15s ease;
}
table.table tbody tr:hover,
table.table tbody tr:hover > td {
    background: var(--brand-50) !important;
    color: var(--ink-700) !important;
}

/* ---------- Form inputs ---------- */
.form-control,
input.form-control,
textarea.form-control,
select.form-control,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="url"],
textarea {
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.form-control:hover,
input.form-control:hover,
textarea.form-control:hover,
input[type="text"]:hover,
input[type="email"]:hover,
input[type="password"]:hover,
input[type="search"]:hover,
input[type="number"]:hover,
input[type="url"]:hover,
textarea:hover {
    border-color: var(--ink-300) !important;
    background: #FAFBFC;
}
.form-control:focus,
input:focus,
textarea:focus {
    background: white !important;
}
input:disabled,
textarea:disabled,
.form-control:disabled {
    background: var(--ink-50) !important;
    cursor: not-allowed !important;
}

/* ---------- Form switches / checkboxes ---------- */
.form-check-input {
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.form-check-input:hover {
    border-color: var(--brand-400) !important;
    box-shadow: 0 0 0 4px rgba(46, 91, 255, .10) !important;
}

/* ---------- Manage sidebar ---------- */
.manage-nav .nav__link {
    transition: background .15s ease, color .15s ease, padding-left .15s ease;
}
.manage-nav .nav__link:hover {
    background: var(--ink-50) !important;
    color: var(--ink-900) !important;
    padding-left: 18px !important;
}
.manage-nav .nav__link--active:hover {
    background: var(--brand-50) !important;
    color: var(--brand-600) !important;
    padding-left: 18px !important;
}

/* ---------- Details TOC ---------- */
.details-toc .nav-link {
    transition: background .15s ease, color .15s ease, padding-left .15s ease;
}
.details-toc .nav-link:hover {
    padding-left: 16px !important;
    background: var(--ink-50) !important;
    color: var(--ink-900) !important;
}

/* ---------- Tabs (nav-tabs) ---------- */
.nav-tabs .nav-link {
    cursor: pointer;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.nav-tabs .nav-link:hover {
    color: var(--ink-900) !important;
    border-bottom-color: var(--ink-200) !important;
}
.nav-tabs .nav-link.active:hover {
    color: var(--brand-500) !important;
    border-bottom-color: var(--brand-500) !important;
}

/* ---------- Scroll-top ---------- */
#scroll-top, .scroll-top {
    transition: transform .15s ease, background .2s ease, box-shadow .2s ease !important;
}
#scroll-top:hover, .scroll-top:hover {
    transform: translateY(-3px) !important;
    background: var(--brand-500) !important;
    box-shadow: var(--shadow-md) !important;
}

/* ---------- Syncfusion dropdowns / list items ---------- */
.e-list-item {
    transition: background .12s ease, color .12s ease !important;
    cursor: pointer;
}
.e-list-item:hover {
    background: var(--brand-50) !important;
    color: var(--brand-600) !important;
}
.e-input-group:hover,
.e-dropdownbase.e-control-wrapper:hover,
.e-ddl.e-input-group:hover {
    border-color: var(--ink-300) !important;
}

/* ---------- Code-card subtle lift ---------- */
.code-card {
    transition: transform .25s ease, box-shadow .25s ease;
}
.code-card:hover {
    transform: perspective(1400px) rotateY(-2deg) rotateX(1deg) translateY(-3px);
    box-shadow: 0 32px 70px -20px rgba(15, 23, 42, .40);
}

/* ---------- Price card extras ---------- */
.price-card__value { transition: color .2s ease; }
.price-card:hover .price-card__value { color: var(--brand-500); }
.price-card--dark:hover .price-card__value { color: white; }
.price-card--featured { transition: border-color .2s ease, box-shadow .2s ease, transform .18s ease; }
.price-card--featured:hover { box-shadow: var(--shadow-glow) !important; }

/* ---------- Pin cursors ---------- */
button,
a,
[role="button"],
.accordion-button,
.code-tab,
.lang-card,
.feature-card,
.news-card,
.price-card,
.form-check-input,
.e-btn,
.e-list-item {
    cursor: pointer;
}
.stat,
.trust-item,
.card-surface {
    cursor: default;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
textarea {
    cursor: text;
}
