:root {
    --dht1230-btn-primary: #2271b1;
    --dht1230-btn-primary-hover: #135e96;
    --dht1230-btn-secondary: #50575e;
    --dht1230-btn-secondary-hover: #3c434a;
    --dht1230-btn-radius: 6px;
    --dht1230-btn-transition: all 0.3s ease;
}

.dht1230-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    font-weight: 600;
    text-decoration: none;
    border-radius: var(--dht1230-btn-radius);
    transition: var(--dht1230-btn-transition);
    cursor: pointer;
    border: 2px solid transparent;
    line-height: 1;
    white-space: nowrap;
    position: relative;
    overflow: hidden;
}

.dht1230-btn:focus {
    outline: 2px solid var(--dht1230-btn-primary);
    outline-offset: 2px;
}

.dht1230-btn-small {
    padding: 8px 16px;
    font-size: 14px;
}

.dht1230-btn-medium {
    padding: 12px 24px;
    font-size: 16px;
}

.dht1230-btn-large {
    padding: 0;
    font-size: 14px;
}

.dht1230-btn-primary {
    background: var(--dht1230-btn-primary);
    color: #ffffff;
}

.dht1230-btn-primary:hover {
    background: var(--dht1230-btn-primary-hover);
    color: #ffffff;
}

.dht1230-btn-secondary {
    background: var(--dht1230-btn-secondary);
    color: #ffffff;
}

.dht1230-btn-secondary:hover {
    background: var(--dht1230-btn-secondary-hover);
    color: #ffffff;
}

.dht1230-btn-outline {
    background: transparent;
    color: var(--dht1230-btn-primary);
    border-color: var(--dht1230-btn-primary);
}

.dht1230-btn-outline:hover {
    background: var(--dht1230-btn-primary);
    color: #ffffff;
}

.dht1230-btn-ghost {
    background: transparent;
    color: var(--dht1230-btn-primary);
    border-color: transparent;
}

.dht1230-btn-ghost:hover {
    background: rgba(34, 113, 177, 0.1);
    color: var(--dht1230-btn-primary-hover);
}

body a.dht1230-btn-light,
body a.dht1230-btn-light span.dht1230-btn-text {
    background: transparent;
    color: #ffffff;
    border-color: transparent;
}

body a.dht1230-btn.dht1230-btn-light.dht1230-btn-large.cta-hero.dht1230-btn-has-icon.dht1230-btn-icon-after {
    background: transparent;
    color: #ffffff;
    border-color: transparent;
}

body a.dht1230-btn-light:hover {
    background: transparent;
    border-color: transparent;
    color: #ffffff;
}

.dht1230-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: var(--dht1230-btn-transition);
}

.dht1230-btn-icon.dashicons {
    font-size: inherit;
    width: 1em;
    height: 1em;
}

.dht1230-btn-icon.fa {
    font-size: inherit;
}

.dht1230-triangle {
	width: 0;
	height: 0;
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-bottom: 10px solid currentColor;
	display: inline-block;
	margin: 0;
	transform: rotate(90deg) scale(0.7);
	transition: var(--dht1230-btn-transition);
}

.dht1230-btn-icon-before .dht1230-btn-icon {
    order: -1;
}

.dht1230-btn-icon-after .dht1230-btn-icon {
    order: 1;
}

.dht1230-btn-anim-lift:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.dht1230-btn-anim-scale:hover {
    transform: scale(1.05);
}

.dht1230-btn-anim-slide:hover .dht1230-btn-icon {
    transform: translateX(4px);
}

.dht1230-btn-anim-slide.dht1230-btn-icon-before:hover .dht1230-btn-icon {
    transform: translateX(-4px);
}

.dht1230-btn:hover .dht1230-btn-icon {
    transform: translateX(4px);
}

.dht1230-btn:hover .dht1230-triangle {
    transform: rotate(90deg) scale(0.7) translateY(-8px);
}

.dht1230-btn.dht1230-btn-icon-before:hover .dht1230-btn-icon {
    transform: translateX(-4px);
}

.dht1230-btn::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
}

.dht1230-btn:active::before {
    width: 300px;
    height: 300px;
}

.dht1230-btn-text {
    position: relative;
    z-index: 1;
}

@media (max-width: 768px) {
    .dht1230-btn-large {
        padding: 0;
        font-size: 14px;
    }
    
    .dht1230-btn-medium {
        padding: 10px 20px;
        font-size: 15px;
    }
    
    .dht1230-btn-small {
        padding: 8px 14px;
        font-size: 13px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dht1230-btn,
    .dht1230-btn-icon,
    .dht1230-btn::before {
        transition: none;
    }
    
    .dht1230-btn-anim-lift:hover,
    .dht1230-btn-anim-scale:hover,
    .dht1230-btn-anim-slide:hover .dht1230-btn-icon {
        transform: none;
    }
}
