/* Tat2OMNI Theme Features shared Booking appearance contract. */

/* Page-level Tat2OMNI Feature setting. These controls live in the theme's
   persistent AJAX shell, so the destination page body class is authoritative. */
body.tat2omni-hide-floating-icons .floating-buttons-left,
body.tat2omni-hide-floating-icons #spotify-toggle,
body.tat2omni-hide-floating-icons #spotify-panel,
body.tat2omni-hide-floating-icons #tat2omni-share-toggle,
body.tat2omni-hide-floating-icons #tat2omni-share-modal,
body.tat2omni-hide-floating-icons #galleryModal,
body.tat2omni-hide-floating-icons .reviews-dropdown {
    display: none !important;
}

:where(.cryptic-artist-directory, .cryptic-artist-profile, .cryptic-public-testimonials,
    .cryptic-client-testimonials, .cryptic-main-gallery, .cryptic-gallery-grid,
    .cryptic-promotions, .tat2omni-video-popup, .tat2omni-theme-feature) {
    color: var(--tat2omni-text) !important;
}

:where(.cryptic-artist-card, .cryptic-appointment-card, .cryptic-public-testimonials,
    .cryptic-public-testimonial, .cryptic-client-testimonials,
    .cryptic-client-testimonials__empty, .cryptic-testimonial-form,
    .cryptic-testimonial-form__dialog,
    .tat2omni-video-popup__inner) {
    background: var(--tat2omni-surface) !important;
    border-color: var(--tat2omni-line) !important;
    color: var(--tat2omni-text) !important;
    box-shadow: var(--tat2omni-shadow);
}

:where(.cryptic-artist-card, .cryptic-appointment-card, .cryptic-public-testimonial,
    .cryptic-client-testimonials, .cryptic-testimonial-form__dialog,
    .tat2omni-video-popup__inner) :where(h1, h2, h3, h4, p, label, strong, legend) {
    color: var(--tat2omni-text) !important;
}

:where(.cryptic-client-testimonials__header, .cryptic-appointment-card__details,
    .cryptic-appointment-card__testimonial, .cryptic-testimonial-form__appointment) p,
:where(.cryptic-client-testimonials__header, .cryptic-testimonial-form__appointment) span,
.cryptic-gallery-grid__hint {
    color: var(--tat2omni-text-muted) !important;
}

:where(.cryptic-client-testimonials__eyebrow, .cryptic-public-testimonial__stars,
    .cryptic-appointment-card__stars, .cryptic-star-rating__buttons button,
    .cryptic-appointment-card__date span) {
    color: var(--tat2omni-border-accent) !important;
}

.cryptic-appointment-card__date {
    background: rgba(var(--tat2omni-main-rgb), .12) !important;
    border-color: rgba(var(--tat2omni-main-rgb), .35) !important;
    color: var(--tat2omni-text) !important;
}

:where(.cryptic-artist-card__button, .cryptic-artist-profile__back-button,
    .cryptic-artist-profile__portfolio-button, .cryptic-gallery-button,
    .tat2omni-video-popup-button, .cryptic-testimonial-submit) {
    background: var(--tat2omni-main) !important;
    border-color: var(--tat2omni-border-accent) !important;
    color: var(--tat2omni-on-main) !important;
    box-shadow: 0 8px 22px rgba(var(--tat2omni-main-rgb), .22) !important;
}

:where(.cryptic-artist-card__button, .cryptic-artist-profile__back-button,
    .cryptic-artist-profile__portfolio-button, .cryptic-gallery-button,
    .tat2omni-video-popup-button, .cryptic-testimonial-submit):hover,
:where(.cryptic-artist-card__button, .cryptic-artist-profile__back-button,
    .cryptic-artist-profile__portfolio-button, .cryptic-gallery-button,
    .tat2omni-video-popup-button, .cryptic-testimonial-submit):focus-visible {
    background: var(--tat2omni-accent) !important;
    color: var(--tat2omni-on-accent) !important;
}

:where(.cryptic-testimonial-edit, .cryptic-testimonial-cancel) {
    background: var(--tat2omni-surface-raised) !important;
    border: 1px solid var(--tat2omni-line) !important;
    color: var(--tat2omni-text) !important;
}

:where(.cryptic-client-testimonials, .cryptic-testimonial-form) :where(input, select, textarea) {
    background: var(--tat2omni-input-bg) !important;
    border-color: var(--tat2omni-line) !important;
    color: var(--tat2omni-text) !important;
}

:where(.cryptic-client-testimonials, .cryptic-testimonial-form) :where(input, select, textarea):focus {
    border-color: var(--tat2omni-main) !important;
    box-shadow: 0 0 0 3px rgba(var(--tat2omni-main-rgb), .16) !important;
}

.cryptic-testimonial-form__head,
.cryptic-testimonial-form__footer,
.cryptic-appointment-card__testimonial {
    border-color: var(--tat2omni-line) !important;
}

.cryptic-public-testimonials__arrow {
    background: var(--tat2omni-surface-raised) !important;
    border-color: var(--tat2omni-border-accent) !important;
    color: var(--tat2omni-main) !important;
}

.cryptic-public-testimonials__arrow:hover,
.cryptic-public-testimonials__arrow:focus-visible {
    background: var(--tat2omni-main) !important;
    color: var(--tat2omni-on-main) !important;
}

.cryptic-gallery-grid__item,
.cryptic-artist-card__image,
.cryptic-artist-profile__portrait-image,
.cryptic-public-testimonial__avatar-frame {
    border-color: rgba(var(--tat2omni-border-rgb), .7) !important;
}

.cryptic-result,
.cryptic-testimonial-notice,
.cryptic-client-testimonials__status {
    background: var(--tat2omni-surface-raised) !important;
    border-color: var(--tat2omni-line) !important;
    color: var(--tat2omni-text) !important;
}

/* Contact and other legacy markup remains functional while inheriting T20. */
:where(#cryptic-contact-form, .tat2omni-contact, form[action*="processform"]) :where(input, select, textarea) {
    background: var(--tat2omni-input-bg) !important;
    border-color: var(--tat2omni-line) !important;
    color: var(--tat2omni-text) !important;
}

:where(#cryptic-contact-form, .tat2omni-contact, form[action*="processform"]) :where(input, select, textarea):focus {
    border-color: var(--tat2omni-main) !important;
    box-shadow: 0 0 0 3px rgba(var(--tat2omni-main-rgb), .16) !important;
}

:where(#cryptic-contact-form, .tat2omni-contact, form[action*="processform"]) :where(button, input[type="submit"]) {
    background: var(--tat2omni-main) !important;
    border-color: var(--tat2omni-border-accent) !important;
    color: var(--tat2omni-on-main) !important;
}

body.tat2omni-appearance-light :where(.tat2omni-video-popup, .cryptic-testimonial-form) {
    color-scheme: light;
}

body.tat2omni-appearance-dark :where(.tat2omni-video-popup, .cryptic-testimonial-form) {
    color-scheme: dark;
}

/* Higher-specificity rules win over legacy shortcode-local style blocks. */
body[class*="tat2omni-appearance-"] .cryptic-artist-card__button.button,
body[class*="tat2omni-appearance-"] .cryptic-artist-profile__portfolio-button.button,
body[class*="tat2omni-appearance-"] .cryptic-artist-profile__back-button.button,
body[class*="tat2omni-appearance-"] .cryptic-testimonial-submit.button {
    background: var(--tat2omni-main) !important;
    border-color: var(--tat2omni-border-accent) !important;
    color: var(--tat2omni-on-main) !important;
}

body[class*="tat2omni-appearance-"] .cryptic-artist-card__button.button:hover,
body[class*="tat2omni-appearance-"] .cryptic-artist-profile__portfolio-button.button:hover,
body[class*="tat2omni-appearance-"] .cryptic-artist-profile__back-button.button:hover,
body[class*="tat2omni-appearance-"] .cryptic-testimonial-submit.button:hover {
    background: var(--tat2omni-accent) !important;
    color: var(--tat2omni-on-accent) !important;
}

body[class*="tat2omni-appearance-"] .cryptic-artist-card__title a,
body[class*="tat2omni-appearance-"] .cryptic-artist-profile__name {
    color: var(--tat2omni-text) !important;
}

body[class*="tat2omni-appearance-"] .cryptic-artist-card__title a:hover {
    color: var(--tat2omni-accent) !important;
}

body[class*="tat2omni-appearance-"] .cryptic-public-testimonials {
    --cpt-blue: var(--tat2omni-main) !important;
    --cpt-bright: var(--tat2omni-accent) !important;
    --cpt-surface: var(--tat2omni-surface) !important;
    --cpt-text: var(--tat2omni-text) !important;
    --cpt-muted: var(--tat2omni-text-muted) !important;
}

body[class*="tat2omni-appearance-"] .cryptic-client-testimonials {
    --ct-blue: var(--tat2omni-main) !important;
    --ct-dark: var(--tat2omni-surface) !important;
    --ct-line: var(--tat2omni-line) !important;
    --ct-soft: var(--tat2omni-surface-raised) !important;
    color: var(--tat2omni-text) !important;
}

body[class*="tat2omni-appearance-"] .tt-modal-content {
    background: var(--tat2omni-surface) !important;
    border-color: var(--tat2omni-border-accent) !important;
    color: var(--tat2omni-text) !important;
    box-shadow: var(--tat2omni-shadow) !important;
}

body[class*="tat2omni-appearance-"] .tt-modal-content h3,
body[class*="tat2omni-appearance-"] .tt-modal-content p {
    color: var(--tat2omni-text) !important;
}

body[class*="tat2omni-appearance-"] .tt-modal-content input {
    background: var(--tat2omni-input-bg) !important;
    border-color: var(--tat2omni-line) !important;
    color: var(--tat2omni-text) !important;
}

body[class*="tat2omni-appearance-"] .tt-modal-content input:focus {
    border-color: var(--tat2omni-main) !important;
    box-shadow: 0 0 0 3px rgba(var(--tat2omni-main-rgb), .16) !important;
}

body[class*="tat2omni-appearance-"] .tt-modal-buttons button {
    background: var(--tat2omni-main) !important;
    color: var(--tat2omni-on-main) !important;
}

body[class*="tat2omni-appearance-"] .cryptic-public-testimonials,
body[class*="tat2omni-appearance-"] .cryptic-client-testimonials {
    background: radial-gradient(circle at 92% 0, rgba(var(--tat2omni-main-rgb), .13), transparent 34%), var(--tat2omni-surface) !important;
    border-color: var(--tat2omni-border-accent) !important;
    color: var(--tat2omni-text) !important;
}

body[class*="tat2omni-appearance-"] .cryptic-artist-card:hover,
body[class*="tat2omni-appearance-"] .cryptic-appointment-card:hover {
    border-color: var(--tat2omni-main) !important;
    box-shadow: 0 14px 34px rgba(var(--tat2omni-main-rgb), .18) !important;
}
/* Shared CSS-animated image loader. The active theme supplies the image,
   rotation speed, and height through the Tat2OMNI loader design tokens. */
.ttstudio-image-lightbox .lg-item {
    background-image: none !important;
}

.ttstudio-image-lightbox .tat2omni-lightbox-loader {
    height: var(--tat2omni-loader-height, 85px) !important;
    left: 50%;
    max-height: none;
    max-width: none;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: auto;
    z-index: 3;
}

.ttstudio-image-lightbox .tat2omni-lightbox-loader img {
    animation: tat2omni-feature-loader-spin var(--tat2omni-loader-speed, 1.5s) linear infinite;
    height: 100% !important;
    max-height: none;
    max-width: none;
    transform-origin: center;
    width: auto !important;
}

.ttstudio-image-lightbox .lg-item.lg-complete > .tat2omni-lightbox-loader {
    display: none;
}

@keyframes tat2omni-feature-loader-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Per-page presentation controls managed by Tat2OMNI Theme Features. */
body.tat2omni-hide-page-title #ascensorBuilding .page-title {
    display: none !important;
}
.lg-outer.ttstudio-image-lightbox .tat2omni-gallery-label,
.lg-outer.ttstudio-video-lightbox .tat2omni-gallery-label {
    font-size: var(--tat2omni-font-size-16, 16px);
    line-height: 1.5;
    margin: 0;
    overflow-wrap: anywhere;
}
