/* Shared interaction families. Motion never changes layout or delays an action.
 * Hallmark critique: Philosophy 5, Hierarchy 5, Execution 4, Specificity 5, Restraint 5, Variety 4. */
.edumax-landing :is(a[href],button,summary,input,select,textarea){
 transition:color var(--dur-micro) var(--ease-out),background-color var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out),text-decoration-color var(--dur-micro) var(--ease-out),opacity var(--dur-micro) var(--ease-out),translate var(--dur-micro) var(--ease-out);
}
.edumax-landing :is(a[href],button,summary):active{opacity:.78}
.edumax-landing :is(button,input,select,textarea):disabled,
.edumax-landing [aria-disabled=true]{cursor:not-allowed}
.edumax-landing textarea:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}

/* Filled actions share one lift/press response, including multi-step forms. */
.edumax-landing :is(.em-button,.elementor-button,.ekit-btn,.wpforms-submit,.wpforms-page-button,button[type=submit],input[type=submit]):active{
 transform:none;translate:0 1px;opacity:1;background:var(--color-accent-hover);border-color:var(--color-accent-hover);
}
.edumax-landing :is(.em-menu-toggle,.em-dialog-close,.edumax-dialog-close):active{translate:0 1px}

/* Animate only the small cue, keeping text and targets stationary. */
.edumax-landing :is(.em-contact-action,.em-location-link)>.em-icon,
.edumax-landing .em-country>span:last-child,
.edumax-landing .em-page-links>a>span:last-child,
.edumax-landing .em-faq summary span,
.edumax-landing .em-play{
 transition:translate var(--dur-micro) var(--ease-out),transform var(--dur-short) var(--ease-out),scale var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out),background-color var(--dur-micro) var(--ease-out);
}
.edumax-landing :is(.em-contact-action,.em-location-link):active>.em-icon{translate:0 1px}
.edumax-landing .em-video:active .em-play{scale:.96}
.edumax-landing summary{border-radius:var(--radius-input)}
.edumax-landing a[href] img{transition:opacity var(--dur-micro) var(--ease-out)}

@media(hover:hover){
 .edumax-landing a[href]:hover{color:var(--color-accent-hover)}
 .edumax-landing a[href]:hover img{opacity:.88}
 .edumax-landing .em-assessment-copy a[href]:hover{color:var(--color-on-dark);text-decoration:underline}
 .edumax-landing :is(.em-button,.elementor-button,.ekit-btn,.wpforms-submit,.wpforms-page-button,button[type=submit],input[type=submit]):hover{
  translate:0 -1px;background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-on-accent);
 }
 .edumax-landing :is(.em-menu-toggle,.edumax-dialog-close):hover{background:var(--color-surface);border-color:var(--color-input-border)}
 .edumax-landing .em-dialog-close:hover{border-color:var(--color-on-dark)}
 .edumax-landing summary:hover{color:var(--color-accent-hover)}
 .edumax-landing :is(.em-contact-action,.em-location-link):hover>.em-icon{translate:0 -1px}
 .edumax-landing .em-country:hover>span:last-child,
 .edumax-landing .em-page-links>a:hover>span:last-child{translate:2px 0}
 .edumax-landing .em-video:hover .em-play{scale:1.04;background:var(--color-surface)}
 .edumax-landing :is(input,select,textarea):not(:disabled):hover{border-color:var(--color-ink)}
 /* Press wins over hover while the pointer remains over the target. */
 .edumax-landing :is(.em-button,.elementor-button,.ekit-btn,.wpforms-submit,.wpforms-page-button,button[type=submit],input[type=submit],.em-menu-toggle,.em-dialog-close,.edumax-dialog-close):active{translate:0 1px}
 .edumax-landing :is(.em-contact-action,.em-location-link):active>.em-icon{translate:0 1px}
 .edumax-landing .em-video:active .em-play{scale:.96}
}

/* Busy/disabled controls retain their state and never suggest another click. */
.edumax-landing :is(button,input):disabled,
.edumax-landing [aria-disabled=true],
.edumax-landing [data-state=loading]{translate:none!important;transform:none!important;opacity:.65}
.edumax-landing .em-button:is(:disabled,[aria-disabled=true],[data-state=loading]):hover{background:var(--color-accent);border-color:var(--color-accent)}
.edumax-landing [data-state=loading]{cursor:wait}
.edumax-landing .em-button[data-state=success]{background:var(--color-success);border-color:var(--color-success)}

/* Edumax actions: petal corner, offset edge, and an animated typographic link.
 * Labels carry the action; decorative arrows are unnecessary. */
.edumax-landing .em-button{border-radius:var(--radius-action);border-color:var(--color-accent);box-shadow:var(--edge-action);font-family:var(--font-display);font-weight:700;letter-spacing:-.025em;transition:background-color var(--dur-short),border-color var(--dur-short),box-shadow var(--dur-short) var(--ease-out),translate var(--dur-short) var(--ease-out)}
.edumax-landing .em-button:focus-visible{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-on-dark);box-shadow:var(--space-3xs) var(--space-3xs) 0 var(--color-accent)}
.edumax-landing .em-text-link{gap:var(--space-2xs);text-decoration:none;background-image:linear-gradient(var(--color-accent),var(--color-accent));background-repeat:no-repeat;background-size:var(--space-md) 2px;background-position:left bottom;transition:background-size var(--dur-short) var(--ease-out),color var(--dur-short)}
.edumax-landing .em-text-link:focus-visible{background-size:100% 2px}
.edumax-landing .em-navigation>ul>li>a{background-image:linear-gradient(var(--color-accent),var(--color-accent));background-repeat:no-repeat;background-size:0 2px;background-position:left bottom;transition:background-size var(--dur-short) var(--ease-out),color var(--dur-short)}
.edumax-landing .em-navigation>ul>li>a:focus-visible{background-size:100% 2px}
@media(hover:hover){
 body.edumax-landing .em-button:hover{translate:0 -2px;background:var(--color-ink);border-color:var(--color-ink);color:var(--color-on-dark);box-shadow:var(--edge-action-hover)}
 .edumax-landing .em-text-link:hover,.edumax-landing .em-navigation>ul>li>a:hover{background-size:100% 2px;text-decoration:none}
 .edumax-landing .em-process .em-text-link:hover{color:var(--color-on-dark)}
 body.edumax-landing .em-button:active{translate:0 1px;box-shadow:none}
}
.edumax-landing .em-button:is(:disabled,[aria-disabled=true],[data-state=loading]){box-shadow:none}
.edumax-landing .em-destination-card .em-destination-photo{transition:opacity var(--dur-scenic) var(--ease-in-out),transform 1000ms var(--ease-out)}
.edumax-landing .em-hero-visual figcaption a:hover{color:inherit;text-decoration:underline}
@media(prefers-reduced-motion:reduce){
 .edumax-landing :is(a[href],button,summary,input,select,textarea),
 .edumax-landing :is(.em-icon,.em-play),
 .edumax-landing .em-country>span:last-child,
 .edumax-landing .em-page-links>a>span:last-child{translate:none!important;scale:none!important}
 .edumax-landing .em-button:active{transform:none}
}
