/* Enhancement layer only: page_main.php owns the original Hero layout. */
.tac-hero { position: relative; isolation: isolate; overflow: hidden; }
.tac-hero > .row { position: relative; z-index: 1; }
.tac-hero__glow {
    position: absolute;
    width: 460px;
    height: 460px;
    top: -160px;
    left: 15%;
    border-radius: 50%;
    pointer-events: none;
    background: radial-gradient(circle, rgba(255, 255, 255, .25), transparent 68%);
    transform: translate(var(--hero-x, 0px), var(--hero-y, 0px));
    transition: transform .7s ease-out;
}
.tac-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(110deg, transparent 35%, rgba(255, 255, 255, .14) 50%, transparent 65%);
    opacity: 0;
    animation: tac-hero-light 1.8s .3s ease-out;
}
/* Keep the original slide-up hooks, with a no-JavaScript fallback. */
.tac-hero .slide-up { opacity: 1; transform: none; transition: none; animation: tac-hero-enter .8s both; }
.tac-hero .mb-subtitle { animation-delay: .2s; }
.tac-hero .mb-content { animation-delay: .4s; }
.tac-hero__services { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 18px 0 0; list-style: none; }
.tac-hero__services a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 40px;
    padding: 7px 13px;
    border: 1px solid rgba(51, 51, 51, .3);
    border-radius: 22px;
    background: rgba(255, 255, 255, .28);
    color: #333;
    font-size: 14px;
    line-height: 1.5;
    transition: background .2s, transform .2s;
}
.tac-hero__services a:hover { background: rgba(255, 255, 255, .65); transform: translateY(-2px); text-decoration: none; }
.tac-hero a:focus-visible { outline: 3px solid #333; outline-offset: 3px; }
@keyframes tac-hero-enter {
    from { opacity: 0; transform: translateY(32px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes tac-hero-light {
    0% { opacity: 0; transform: translateX(-65%); }
    25% { opacity: 1; }
    100% { opacity: 0; transform: translateX(65%); }
}
@media (prefers-reduced-motion: reduce) {
    .tac-hero .slide-up, .tac-hero::after { animation: none; }
    .tac-hero__glow, .tac-hero__services a { transition: none; transform: none; }
}
