:root {
  --ease-soft: cubic-bezier(.22, 1, .36, 1);
  --interaction-duration: 240ms;
}

/* Shared finishing layer; the original page layouts and palettes stay intact. */
::selection { background: #e6d58e; color: #253e0d; }

.btn,
.structure-cta,
.review-btn,
.institutional-page .step-link,
.links-page .links-banner,
.social-links :is(a, button),
.menu-toggle,
.whatsapp-float {
  transition: translate var(--interaction-duration) var(--ease-soft),
    box-shadow var(--interaction-duration) ease,
    background-color var(--interaction-duration) ease,
    border-color var(--interaction-duration) ease,
    color var(--interaction-duration) ease,
    filter var(--interaction-duration) ease;
  touch-action: manipulation;
}

.btn { box-shadow: 0 3px 10px #443b1512; }
.btn-outline, .institutional-page .institutional-outline { box-shadow: none; }
.btn img { transition: translate var(--interaction-duration) var(--ease-soft); }

.btn:focus-visible,
.institutional-page .step-link:focus-visible,
.social-links :is(a, button):focus-visible {
  outline: 3px solid #927122;
  outline-offset: 5px;
  box-shadow: 0 0 0 2px #fff;
}
.hero :is(.btn, .menu-toggle):focus-visible { outline-color: #f1dc8c; }

.nav a { position: relative; transition: color 200ms ease; }
.nav a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 5px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 240ms var(--ease-soft);
}
.nav a:focus-visible::after,
.nav a[aria-current="page"]::after { transform: scaleX(1); }

.menu-toggle { position: relative; }
.menu-toggle span { transition: transform 220ms var(--ease-soft), opacity 160ms ease; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.problema-luxury-card .card-inner,
.testimonial,
.institutional-page .contact-cards article,
.institutional-page .methodology-cards li,
.institutional-page .modality-cards article {
  transition: box-shadow 300ms ease, border-color 300ms ease;
}
.institutional-page .contact-cards article { box-shadow: 0 6px 24px #26390d06; }
.institutional-page .contact-cards article:focus-within {
  border-color: #c5b474;
  box-shadow: 0 12px 30px #26390d10;
}

.consult-type,
.video-preview,
.treatment-links a,
.institutional-page .step-image {
  transition: translate 280ms var(--ease-soft), box-shadow 280ms ease;
}
.consult-type img,
.institutional-page .step-image img,
.treatment-links img {
  transition: transform 550ms var(--ease-soft), filter 280ms ease;
}
.institutional-page .step-image { overflow: hidden; border-radius: 6px; }
.comparison-handle::after { box-shadow: 0 2px 14px #0002; transition: box-shadow 240ms ease; }
.comparison:focus-within .comparison-handle::after { box-shadow: 0 0 0 5px #cfad4566, 0 3px 16px #0003; }
.links-page .links-banner { border-radius: 14px; }
.footer a { transition: color 200ms ease; }

/* Hover movement is reserved for mouse/trackpad, not sticky touch hovers. */
@media (hover: hover) and (pointer: fine) {
  .btn:hover,
  .structure-cta:hover,
  .review-btn:hover {
    translate: 0 -3px;
    transform: none;
    filter: brightness(1.035);
    box-shadow: 0 9px 22px #443b1526;
  }
  .btn-outline:hover,
  .institutional-page .institutional-outline:hover { background-color: #ffffff10; border-color: #eed785; }
  .btn:hover img { translate: 2px 0; }
  .nav a:hover::after { transform: scaleX(1); }
  .menu-toggle:hover { background: #ffffff0c; border-color: #efda84; }
  .social-links :is(a, button):hover { translate: 0 -3px; background-color: #cbd1c0; box-shadow: 0 5px 12px #253e0d16; }
  .footer a:hover { color: #253e0d; }
  .whatsapp-float:hover { translate: 0 -3px; box-shadow: 0 8px 24px #14874440; background-color: #19b954; }
  .institutional-page .step-link:hover { translate: 0 -2px; box-shadow: 0 6px 16px #253e0d24; }
  .links-page .links-banner:hover { translate: 0 -4px; border-color: #c6bd92; box-shadow: 0 18px 36px #26390d1c; }
  .consult-type:hover, .video-preview:hover { translate: 0 -4px; box-shadow: 0 15px 35px #443b1526; }
  .consult-type:hover img, .institutional-page .step-image:hover img { transform: scale(1.025); }
  .treatment-links a:hover { translate: 0 -3px; }
  .treatment-links a:hover img { transform: scale(1.025); }
  .problema-luxury-card:hover .card-inner { transform: translateY(-8px); box-shadow: 0 20px 50px rgba(102, 85, 51, 0.12), inset 0 1px 0 rgba(255, 255, 255, 1); }
  .ruptura-card-item:hover .ruptura-hex-box { transform: scale(1.1) rotate(-5deg); }
  .problema-luxury-card:hover .luxury-icon { transform: scale(1.1); }
  .historia-moldura-premium:hover { transform: translateY(-8px) scale(1.02); }
  .historia-moldura-premium:hover .moldura-outer { box-shadow: 0 30px 80px rgba(215, 176, 65, 0.3), 0 0 50px rgba(117, 133, 55, 0.15); }
  .historia-moldura-premium:hover img { transform: scale(1.02); }
  .testimonial:hover,
  .institutional-page .contact-cards article:hover,
  .institutional-page .methodology-cards li:hover,
  .institutional-page .modality-cards article:hover {
    border-color: #d2c69c;
    box-shadow: 0 12px 32px #443b1512;
  }
}

.btn:active,
.institutional-page .step-link:active,
.links-page .links-banner:active,
.social-links :is(a, button):active,
.whatsapp-float:active {
  translate: 0 1px;
  filter: brightness(.96);
  box-shadow: 0 2px 6px #0002;
}

@keyframes surface-enter {
  from { opacity: .6; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes backdrop-enter {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: no-preference) {
  .notice-dialog[open] { animation: surface-enter 260ms var(--ease-soft); }
  .notice-dialog[open]::backdrop { animation: backdrop-enter 200ms ease; }
}
@media (max-width: 960px) and (prefers-reduced-motion: no-preference) {
  .js .nav.is-open { animation: surface-enter 230ms var(--ease-soft); }
}
@media (prefers-reduced-motion: reduce) {
  .problema-luxury-card,
  .ruptura-card-item,
  .ruptura-hex-central,
  .historia-moldura-premium,
  .icon-ring { animation: none !important; opacity: 1 !important; transform: none !important; }
  .problema-luxury-card .card-inner,
  .problema-luxury-card .luxury-icon,
  .historia-moldura-premium,
  .historia-moldura-premium img { transition: none !important; transform: none !important; }
  .btn,
  .structure-cta,
  .review-btn,
  .institutional-page .step-link,
  .links-page .links-banner,
  .social-links :is(a, button),
  .whatsapp-float,
  .consult-type,
  .video-preview,
  .treatment-links a,
  .btn img { translate: none !important; }
  .consult-type img,
  .institutional-page .step-image img,
  .treatment-links img { transform: none !important; }
  .m-carousel-loop__wrapper { animation: none !important; }
}
@media print {
  .whatsapp-float, .menu-toggle, .skip-link { display: none; }
}
