/* Shared interaction contract: restrained hover, clear focus, responsive press. */
:root { --motion-hover: 150ms; --motion-link: 220ms; --motion-press: 100ms; --motion-release: 160ms; --motion-enter: 180ms; --motion-exit: 120ms; }

/* Navigation uses the same background cue for hover, open and current page. */
body .site-nav :is(a,.nav-item__toggle),body .mobile-menu__nav a {
 position: relative; isolation: isolate; color: var(--ink); font-weight: 400;
 background: transparent; text-decoration: none; transition: none;
}
body .site-nav :is(a,.nav-item__toggle)::before,body .mobile-menu__nav a::before {
 content: ""; position: absolute; inset: -.15rem -.65rem; z-index: -1;
 border-radius: 6px; background: rgba(26,125,116,.08); opacity: 0;
 pointer-events: none; transition: opacity var(--motion-hover) ease;
}
body .site-nav .nav-submenu a::before { inset: 0; }
body .mobile-menu__nav a::before { inset: 0 -.5rem; }
body .site-nav :is(a,.nav-item__toggle):is(:hover,:active,[aria-current="page"],.is-current),
body .site-nav .nav-submenu a:is(:hover,:active,[aria-current="page"]),
body .mobile-menu__nav a:is(:hover,:active,[aria-current="page"]) {
 color: var(--ink); background: transparent; text-decoration: none; font-weight: 400;
}
body .site-nav :is(a[aria-current="page"],.nav-item__toggle.is-current,.nav-item__toggle[aria-expanded="true"])::before,
body .mobile-menu__nav a[aria-current="page"]::before { opacity: 1; }

/* Inline and footer links keep their hue; only the underline gains emphasis. */
body main p a:not(.btn):not(.st-btn),body .st-content :is(li,td,figcaption) a:not(.btn):not(.st-btn),
body .hero__call,body .contact-link,body .st-toc a,body .st-related a {
 color: var(--link-ink,var(--accent-ink)); background: transparent;
 text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em;
 text-decoration-color: color-mix(in srgb,currentColor 35%,transparent);
 transition: text-decoration-color var(--motion-link) ease;
}
.section--dark,.st-cta,.site-footer { --link-ink: #80cbc4; }
body .demo p.demo__contact a:not(.btn):not(.st-btn) { color: var(--link-ink); }
body .footer-col a,body .footer-bottom a {
 color: rgba(255,255,255,.76); background: transparent; text-decoration: underline;
 text-decoration-thickness: 1px; text-underline-offset: .22em; text-decoration-color: rgba(255,255,255,.24);
 transition: text-decoration-color var(--motion-link) ease;
}

/* Buttons retain their palette. A composited tint supplies hover feedback. */
body :is(.btn,.st-btn) { position: relative; isolation: isolate; overflow: hidden;
 transform: none; text-decoration: none; transition: transform var(--motion-release) var(--ease-out); }
body :is(.btn,.st-btn)::before { content: ""; position: absolute; inset: 0; z-index: -1;
 border-radius: inherit; background: rgba(0,0,0,.09); opacity: 0; pointer-events: none;
 transition: opacity var(--motion-hover) ease; }
body .btn.btn--primary,body .st-btn.st-btn--primary,
body .btn.btn--primary:not(:disabled):is(:hover,:active,:focus),body .st-btn.st-btn--primary:not(:disabled):is(:hover,:active,:focus) {
 background: var(--primary-surface,var(--accent-ink)); color: var(--primary-ink,#fff); border-color: transparent; text-decoration: none;
}
body .btn.btn--ghost,body .st-btn.st-btn--ghost,
body .btn.btn--ghost:not(:disabled):is(:hover,:active,:focus),body .st-btn.st-btn--ghost:not(:disabled):is(:hover,:active,:focus) {
 background: var(--ghost-surface,#fff); color: var(--ghost-ink,var(--ink)); border-color: var(--ghost-border,var(--rule-strong)); text-decoration: none;
}
.st-cta { --primary-surface: #80cbc4; --primary-ink: #1c262b; --ghost-surface: transparent; --ghost-ink: #fff; --ghost-border: rgba(255,255,255,.4); }
.st-cta .st-btn--ghost::before { background: rgba(255,255,255,.09); }
body :is(.btn,.st-btn):not(:disabled):hover { transform: none; }
body .btn.btn--primary:not(:disabled):hover .icon,body .btn .icon { transform: none; transition: none; }
body :is(.btn,.st-btn):not(:disabled):active { transform: scale(.98); transition-duration: var(--motion-press); }
body :is(.btn,.st-btn):not(:disabled):active::before { opacity: 1; }
body :is(.btn,.st-btn):disabled { transform: none; }
body :is(.btn,.st-btn):disabled::before { opacity: 0; }

/* Transitions retarget if a menu is entered and left quickly. */
body .nav-submenu { transform-origin: top center; transform: translateY(-3px) scale(.97);
 transition: opacity var(--motion-exit) var(--ease-out),transform var(--motion-exit) var(--ease-out),visibility 0s var(--motion-exit); }
body .nav-item--menu.is-open .nav-submenu { transform: none;
 transition: opacity var(--motion-enter) var(--ease-out),transform var(--motion-enter) var(--ease-out),visibility 0s; }
body .nav-item__chevron,body .form-select__arrow svg { transition: transform var(--motion-release) var(--ease-out); }
body .mobile-menu { transition: opacity var(--motion-exit) var(--ease-out),transform var(--motion-exit) var(--ease-out),visibility 0s var(--motion-exit); }
html.menu-open .mobile-menu { transition: opacity var(--motion-enter) var(--ease-out),transform var(--motion-enter) var(--ease-out),visibility 0s; }
body .demo-dialog[open] { animation: none; }
body .demo-dialog { opacity: 0; transform: scale(.97); transform-origin: center;
 transition: opacity var(--motion-exit) var(--ease-out),transform var(--motion-exit) var(--ease-out),display var(--motion-exit) allow-discrete,overlay var(--motion-exit) allow-discrete; }
body .demo-dialog[open] { opacity: 1; transform: none; transition-duration: 200ms; }
body .form-select__options { opacity: 1; transform: none; transform-origin: top center;
 transition: opacity var(--motion-enter) var(--ease-out),transform var(--motion-enter) var(--ease-out); }
body .form-select__options[data-side="above"] { transform-origin: bottom center; }
body .product-tour__panel.is-active { animation: none; }
body .product-tour__panel { opacity: 1; transform: none; transition: opacity var(--motion-enter) var(--ease-out),transform var(--motion-enter) var(--ease-out); }
@starting-style {
 body .demo-dialog[open] { opacity: 0; transform: scale(.97); }
 body .form-select__options:popover-open { opacity: 0; transform: scale(.97); }
 body .product-tour__panel.is-active { opacity: 0; transform: translateY(3px); }
}
/* Frequently used disclosures open immediately; the chevron carries state. */
body details::details-content { transition: none; }
body .logo-row img,body .logo-row img.logo-loaded { animation: none; transition: none; }
body .logo-row img:hover { opacity: 1; }
body .whatsapp-button:hover { transform: none; }
body .product-tour__tab { transition: none; }
body .st-content .st-card--post { box-shadow: none; transition: border-color var(--motion-hover) ease; }
body .st-content .st-card--post:hover { box-shadow: none; }

@media(hover:hover) and (pointer:fine) {
 body .site-nav :is(a,.nav-item__toggle):hover::before,body .mobile-menu__nav a:hover::before { opacity: 1; }
 body main p a:not(.btn):not(.st-btn):hover,body .st-content :is(li,td,figcaption) a:not(.btn):not(.st-btn):hover,
 body .hero__call:hover,body .contact-link:hover,body .st-toc a:hover,body .st-related a:hover { color: var(--link-ink,var(--accent-ink)); text-decoration-color: currentColor; }
 body .footer-col a:hover,body .footer-bottom a:hover { color: rgba(255,255,255,.76); text-decoration-color: currentColor; }
 body :is(.btn,.st-btn):not(:disabled):hover::before { opacity: 1; }
}
/* Keyboard feedback is immediate; a visible ring is independent of hover. */
body :is(a,button,summary):focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 4px; }
body .form-select__control:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 3px; }
body :is(.btn,.st-btn):focus-visible:active { transform: none; }
html[data-input-method="keyboard"] :is(a,button,summary,details,.nav-submenu,.mobile-menu,.demo-dialog,.form-select__options,.product-tour__panel),
html[data-input-method="keyboard"] :is(a,button,summary)::before,
html[data-input-method="keyboard"] :is(.nav-item__chevron,.form-select__arrow svg) { transition: none !important; animation: none !important; }
@media(prefers-reduced-motion:reduce) {
 body :is(.btn,.st-btn,.nav-submenu,.mobile-menu,.demo-dialog,.form-select__options,.product-tour__panel) { transform: none !important; animation: none !important; }
 body :is(.nav-submenu,.mobile-menu,.demo-dialog,.form-select__options,.product-tour__panel) { transition: opacity 120ms ease,visibility 0s 120ms !important; }
 body :is(.btn,.st-btn)::before { transition: opacity 120ms ease !important; }
}

/* Focus remains distinct on dark sections; reduced motion keeps gentle feedback. */
body .st-cta :is(a,button):focus-visible,body .site-footer a:focus-visible { outline-color: #80cbc4; }
@media(prefers-reduced-motion:reduce) {
 body main p a:not(.btn):not(.st-btn),body .st-content :is(li,td,figcaption) a:not(.btn):not(.st-btn),
 body .hero__call,body .contact-link,body .st-toc a,body .st-related a,
 body .footer-col a,body .footer-bottom a { transition: text-decoration-color 120ms ease !important; }
}

/* Card links use the same eased underline rather than toggling decoration. */
body .st-card__title a,body .st-card__action a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; text-decoration-color: color-mix(in srgb,currentColor 25%,transparent); transition: text-decoration-color var(--motion-link) ease; }
body .st-card__title a { color: var(--ink); }
body .st-card__action a { color: var(--accent-ink); }
@media(hover:hover) and (pointer:fine) {
 body .st-card__title a:hover { color: var(--ink); text-decoration-color: currentColor; }
 body .st-card__action a:hover { color: var(--accent-ink); text-decoration-color: currentColor; }
}
@media(prefers-reduced-motion:reduce) {
 body .st-card__title a,body .st-card__action a { transition: text-decoration-color 120ms ease !important; }
}

/* Link feedback by role: color for prose/footer, arrows for guide discovery. */
body a { text-decoration: none !important; }
body a.text-link {
 --text-link-color: var(--link-ink,var(--accent-ink));
 color: var(--text-link-color) !important;
 transition: color 220ms ease;
}
body .footer-col a.text-link,body .footer-bottom a.text-link { --text-link-color: rgba(255,255,255,.76); }
body a.guide-link { position: relative; }
body .guide-link .guide-link__arrow {
 position: absolute; left: 100%; top: 50%; display: block;
 width: 1em; height: 1em; line-height: 1; margin: 0 0 0 .35em;
 pointer-events: none; opacity: 0; transform: translate(-3px,-50%);
 transition: opacity 180ms var(--ease-out),transform 180ms var(--ease-out);
}
@media(hover:hover) and (pointer:fine) {
 body a.text-link:hover { --text-link-color: var(--accent-press); }
 body :is(.section--dark,.st-cta,.site-footer) a.text-link:hover { --text-link-color: #fff; }
 body .guide-link:hover .guide-link__arrow { opacity: 1; transform: translate(0,-50%); }
}
body .guide-link:focus-visible .guide-link__arrow { opacity: 1; transform: translate(0,-50%); transition: none; }
html[data-input-method="keyboard"] a.text-link,html[data-input-method="keyboard"] .guide-link__arrow { transition: none !important; }
@media(hover:none) { body .guide-link .guide-link__arrow { opacity: 1; transform: translate(0,-50%); } }
@media(prefers-reduced-motion:reduce) {
 body a.text-link { transition: color 120ms ease !important; }
 body .guide-link .guide-link__arrow { transform: translate(0,-50%); transition: opacity 120ms ease !important; }
}

/* Native state and keyboard behavior remain intact; JS animates only the content. */
body details.js-accordion::details-content { block-size: auto; opacity: 1; overflow: visible; transition: none; }
body details.js-accordion:not([open])::details-content { block-size: 0; }
.accordion-content { display: flow-root; }

/* Reading-position highlight has no layout shift or underline. */
body .st-toc a { display: block; padding: .5rem .65rem; border-radius: 5px; }
body .st-toc a[aria-current="location"] { --text-link-color: var(--accent-press); background: var(--c-teal-ultra); box-shadow: none; }
.hs-search .form-select { width: 100%; }
.hs-search .form-select__control { min-height: 3rem; height: 3rem; padding: .65rem .9rem; font-size: 1rem; background: #fff; }
.hs-search .form-select__arrow { margin-left: .5rem; flex-shrink: 0; }

body details.js-accordion[data-accordion-open="false"] .faq-chevron,body details.js-accordion[data-accordion-open="false"] .hs-faq__question::after { transform: rotate(0deg); }

body .nav-toggle,body .nav-toggle:hover,body .nav-toggle:active { border-color: transparent; background: transparent; box-shadow: none; }

.st-content .form-select__options { margin: 0; padding: .4rem; list-style: none; max-width: none; }
