/* ==========================================================================
   3D Print Expert — theme patch: hover states for all interactive elements
   + request-form status. Design accent: #FE1C01. Base transition: .3s.
   Uses only transform / color / opacity / border / shadow — never layout.
   ========================================================================== */

:root { --t3d-accent: #FE1C01; }

/* --- Universal smooth transitions on interactive elements --------------- */
a,
button,
.header-wrap__nav-item,
.header-wrap__lang,
.header-wrap__icon,
.services__card,
.materials__card,
.park-card,
.trust-card,
.benefits-card,
.clients__row,
.matlist__card,
.work-card,
.advantages__item,
.perks-wrap__list .item,
.usage-wrap__list .item,
.technology__row,
.matlist__tag,
.work-card__tag,
.featured__item,
.featured__img,
.contact-file__drop,
.contact-row,
.footer-wrap__link,
.footer-wrap__social-list .item,
.contact-wrap__social-item,
.modal-close,
.row {
    transition: transform .3s ease, color .3s ease, background-color .3s ease,
                border-color .3s ease, box-shadow .3s ease, opacity .3s ease;
}

/* --- Primary / pill buttons -------------------------------------------- */
.header-wrap__cta:hover,
.hero__submit:hover,
.services__btn:hover,
.cta__btn:hover,
.hero-about__submit-btn:hover,
.hero-material__cta-btn:hover,
.hero-tech__cta-btn:hover,
.hero-model__submit:hover,
.technology__more:hover,
.notfound-btn:hover,
.contact-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(254, 28, 1, .22);
    opacity: .95;
}
.contact-submit { cursor: pointer; }
.contact-submit:active,
.header-wrap__cta:active,
.cta__btn:active { transform: translateY(0); }

/* --- Round arrow buttons ----------------------------------------------- */
.hero__submit-arrow:hover,
.services__btn-arrow:hover,
.cta__arrow:hover,
.hero-about__submit-arrow:hover,
.hero-material__cta-arrow:hover,
.hero-tech__cta-arrow:hover,
.hero-model__submit-arrow:hover,
.technology__more-arrow:hover,
.contact-submit:hover .contact-submit__arrow,
.notfound-btn:hover .notfound-btn__arrow {
    transform: rotate(-45deg) scale(1.06);
}
.hero__submit-arrow, .services__btn-arrow, .cta__arrow,
.hero-about__submit-arrow, .hero-material__cta-arrow, .hero-tech__cta-arrow,
.hero-model__submit-arrow, .technology__more-arrow,
.contact-submit__arrow, .notfound-btn__arrow { transition: transform .3s ease; }

/* --- Header navigation -------------------------------------------------- */
.header-wrap__nav-item { cursor: pointer; }
.header-wrap__nav-item:hover > span,
.header-wrap__nav-item:hover > .header-wrap__arrow { color: var(--t3d-accent); }
.header-wrap__nav-item:hover .header-wrap__arrow { transform: translateY(1px); }
.header-wrap__subnav a { transition: color .3s ease, padding-left .3s ease; }
.header-wrap__subnav a:hover { color: var(--t3d-accent); padding-left: 4px; }

.header-wrap__lang { cursor: pointer; }
.header-wrap__lang:hover span,
.header-wrap__lang:hover .header-wrap__lang-eng { color: var(--t3d-accent); }

.header-wrap__phone-num:hover span { color: var(--t3d-accent); }
.header-wrap__phone-icon:hover { transform: scale(1.1); }
.header-wrap__icon:hover { opacity: .7; }

/* --- Footer / contacts -------------------------------------------------- */
.footer-wrap__link:hover span { color: var(--t3d-accent); }
.footer-wrap__link:hover { transform: translateX(3px); }
.row:hover .row__text span,
.contact-row:hover .contact-row__text { color: var(--t3d-accent); }
.row:hover .row__icon,
.contact-row:hover .contact-row__icon { transform: scale(1.08); }
.footer-wrap__social-list .item:hover,
.contact-wrap__social-item:hover { transform: translateY(-3px); opacity: .85; }

/* --- Cards -------------------------------------------------------------- */
.services__card:hover,
.materials__card:hover,
.park-card:hover,
.trust-card:hover,
.benefits-card:not(.benefits-card--image):hover,
.clients__row:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(0, 0, 0, .10);
}
.benefits-card--image:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,.12); }

/* clickable/tabbed lists — cursor + subtle emphasis */
.advantages__item,
.perks-wrap__list .item,
.work-card { cursor: pointer; }
.advantages__item:not(.advantages__item--active):hover .advantages__item-title,
.perks-wrap__list .item:not(.item--active):hover .item__title { color: var(--t3d-accent); }
.work-card.work-card--collapsed:hover { transform: translateY(-3px); }

/* --- Tags --------------------------------------------------------------- */
.matlist__tag:hover,
.work-card__tag:hover {
    background-color: var(--t3d-accent);
    border-color: var(--t3d-accent);
    color: #fff;
}
.matlist__tag:hover span { color: #fff; }

/* --- Featured slider ---------------------------------------------------- */
.featured__item { cursor: grab; }
.featured__item:hover .featured__img { transform: scale(1.03); }

/* --- File drop + modal close ------------------------------------------- */
.contact-file__drop { cursor: pointer; }
.contact-file__drop:hover { border-color: var(--t3d-accent); }
.contact-file__drop:hover .contact-file__icon { transform: translateY(-2px); }
.modal-close { cursor: pointer; }
.modal-close:hover { transform: rotate(90deg); }

/* --- Technology / usage rows ------------------------------------------- */
.technology__row:hover .technology__row-text,
.usage-wrap__list .item:hover .item__name { color: var(--t3d-accent); }
.usage-wrap__list .item:hover .item__dot { transform: scale(1.4); }

/* generic links inside content */
.notfound-wrap__desc a:hover { color: var(--t3d-accent); text-decoration: underline; }

/* --- Lock background scroll when modal is open (kills the 2nd scrollbar) - */
html:has(.modal.modal-active) { overflow: hidden; }

/* --- Contact Form 7 integration (keep design markup 1:1) --------------- */
/* CF7 wraps each control in a span — make it fill the field like the raw input did */
.contact-field .wpcf7-form-control-wrap { flex: 1 1 auto; width: 100%; height: 100%; display: flex; }
.contact-field .wpcf7-form-control-wrap .contact-field__input { width: 100%; height: 100%; }
/* Hide CF7 file input; the custom drop label stays clickable */
.contact-file__drop .wpcf7-form-control-wrap {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); opacity: 0;
}
/* CF7 spinner + response output */
.wpcf7-spinner { margin: 0 0 0 12px; }
.wpcf7-response-output { margin: 12px 0 0 !important; border: none !important; padding: 0 !important;
    font-family: 'DM Sans', sans-serif; font-size: 15px; line-height: 1.4; }
.wpcf7-response-output:empty { display: none; }
.wpcf7-not-valid-tip { color: var(--t3d-accent); font-size: 13px; margin-top: 4px; }
.contact-field:has(.wpcf7-not-valid) { border-color: var(--t3d-accent); }
.wpcf7 form.sent .wpcf7-response-output { color: #157a3d; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output { color: var(--t3d-accent); }

/* --- Request form status ----------------------------------------------- */
.t3d-form-status { margin: 12px 0 0; font-size: 15px; min-height: 1em; }
.t3d-form-status.is-ok { color: #157a3d; }
.t3d-form-status.is-error { color: var(--t3d-accent); }
.contact-submit.is-loading { opacity: .6; pointer-events: none; }

/* --- WP admin bar offset guard (keeps fixed header correct) ------------ */
@media screen and (max-width: 782px) {
    body.admin-bar .header { top: 0; }
}
