/*
 * Perú Machu light-surface CTA component.
 * Reuse .pm-button--light for future calls to action placed on white or cream.
 * Existing CTA classes are mapped below so this rule travels across every route.
 * Dark/photo surfaces and navigation controls keep their own treatments.
 */
@layer shared-controls {
:root {
  --pm-light-cta-bg: #050505;
  --pm-light-cta-ink: #F4F0EA;
  --pm-light-cta-hover-bg: #C6985A;
  --pm-light-cta-hover-ink: #050505;
  --pm-light-cta-motion: 420ms;
}

/* Only actions inside light surfaces receive this treatment. */
body :is(
  .section:not(.dark),
  .home-pdf-about-intro,
  .home-pdf-why,
  .home-pdf-stays,
  .home-stays-cta,
  .home-pdf-destinations,
  .home-pdf-approach,
  .home-pdf-process,
  .home-pdf-faq,
  .home-tours-section,
  .journey-overview,
  .journey-faq-editorial,
  .classic-story-section,
  .classic-moments-section,
  .about-editorial-section,
  .experience-gallery,
  .experience-detail-copy,
  .experience-related-section,
  .experience-time-section,
  .cusco-destination-page,
  .cusco-moments-section,
  .cusco-related-section,
  .plan-booking,
  .mobile-cta,
  .form-card
) :is(
  .pm-button--light,
  a.pm-button:not(.header-cta),
  .btn:not(.header-cta),
  .text-link,
  a[class*="-cta"]:not(.header-cta):not(.home-pdf-footer-cta a),
  .about-editorial-cta,
  .impact-action,
  .plan-submit
):not(.home-journey-foot a, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .cusco-journey-link, .cusco-train-link, .about-details-link, .about-closing-cta>a) {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  width: fit-content !important;
  max-width: 100% !important;
  min-height: 48px !important;
  padding: 12px 22px !important;
  border: 1px solid var(--pm-light-cta-bg) !important;
  border-radius: 0 !important;
  background: var(--pm-light-cta-bg) !important;
  box-shadow: none !important;
  color: var(--pm-light-cta-ink) !important;
  font: 400 15px/1.3 Cultura, Georgia, serif !important;
  letter-spacing: .01em !important;
  text-align: center !important;
  text-decoration: none !important;
  text-decoration-thickness: initial !important;
  text-underline-offset: initial !important;
  text-transform: none !important;
  cursor: pointer;
  transition: color var(--pm-light-cta-motion) ease, border-color var(--pm-light-cta-motion) ease !important;
}

body :is(
  .section:not(.dark), .home-pdf-about-intro, .home-pdf-why, .home-pdf-stays,
  .home-stays-cta, .home-pdf-destinations, .home-pdf-approach, .home-pdf-process,
  .home-pdf-faq, .home-tours-section, .journey-overview, .journey-faq-editorial,
  .classic-story-section, .classic-moments-section, .about-editorial-section,
  .experience-gallery, .experience-detail-copy, .experience-related-section,
  .experience-time-section, .cusco-destination-page, .cusco-moments-section,
  .cusco-related-section, .plan-booking, .mobile-cta, .form-card
) :is(
  .pm-button--light, a.pm-button:not(.header-cta), .btn:not(.header-cta), .text-link,
  a[class*="-cta"]:not(.header-cta), .about-editorial-cta, .impact-action, .plan-submit
):not(.home-journey-foot a, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .cusco-journey-link, .cusco-train-link, .about-details-link, .about-closing-cta>a)::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  z-index: -1 !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  border: 0 !important;
  background: var(--pm-light-cta-hover-bg) !important;
  pointer-events: none !important;
  transform: translateY(102%) !important;
  transition: transform var(--pm-light-cta-motion) cubic-bezier(.2,.75,.25,1) !important;
}

body :is(
  .section:not(.dark), .home-pdf-about-intro, .home-pdf-why, .home-pdf-stays,
  .home-stays-cta, .home-pdf-destinations, .home-pdf-approach, .home-pdf-process,
  .home-pdf-faq, .home-tours-section, .journey-overview, .journey-faq-editorial,
  .classic-story-section, .classic-moments-section, .about-editorial-section,
  .experience-gallery, .experience-detail-copy, .experience-related-section,
  .experience-time-section, .cusco-destination-page, .cusco-moments-section,
  .cusco-related-section, .plan-booking, .mobile-cta, .form-card
) :is(
  .pm-button--light, a.pm-button:not(.header-cta), .btn:not(.header-cta), .text-link,
  a[class*="-cta"]:not(.header-cta), .about-editorial-cta, .impact-action, .plan-submit
):not(.home-journey-foot a, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .cusco-journey-link, .cusco-train-link, .about-details-link, .about-closing-cta>a)::after {
  display: none !important;
}

body :is(
  .section:not(.dark), .home-pdf-about-intro, .home-pdf-why, .home-pdf-stays,
  .home-stays-cta, .home-pdf-destinations, .home-pdf-approach, .home-pdf-process,
  .home-pdf-faq, .home-tours-section, .journey-overview, .journey-faq-editorial,
  .classic-story-section, .classic-moments-section, .about-editorial-section,
  .experience-gallery, .experience-detail-copy, .experience-related-section,
  .experience-time-section, .cusco-destination-page, .cusco-moments-section,
  .cusco-related-section, .plan-booking, .mobile-cta, .form-card
) :is(
  .pm-button--light, a.pm-button:not(.header-cta), .btn:not(.header-cta), .text-link,
  a[class*="-cta"]:not(.header-cta), .about-editorial-cta, .impact-action, .plan-submit
):not(.home-journey-foot a, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .cusco-journey-link, .cusco-train-link, .about-details-link, .about-closing-cta>a):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active) {
  border-color: var(--pm-light-cta-hover-bg) !important;
  background: transparent !important;
  color: var(--pm-light-cta-hover-ink) !important;
  text-decoration: none !important;
}

body :is(
  .section:not(.dark), .home-pdf-about-intro, .home-pdf-why, .home-pdf-stays,
  .home-stays-cta, .home-pdf-destinations, .home-pdf-approach, .home-pdf-process,
  .home-pdf-faq, .home-tours-section, .journey-overview, .journey-faq-editorial,
  .classic-story-section, .classic-moments-section, .about-editorial-section,
  .experience-gallery, .experience-detail-copy, .experience-related-section,
  .experience-time-section, .cusco-destination-page, .cusco-moments-section,
  .cusco-related-section, .plan-booking, .mobile-cta, .form-card
) :is(
  .pm-button--light, a.pm-button:not(.header-cta), .btn:not(.header-cta), .text-link,
  a[class*="-cta"]:not(.header-cta), .about-editorial-cta, .impact-action, .plan-submit
):not(.home-journey-foot a, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .cusco-journey-link, .cusco-train-link, .about-details-link, .about-closing-cta>a):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active)::before {
  transform: translateY(0) !important;
}

body :is(
  .section:not(.dark), .home-pdf-about-intro, .home-pdf-why, .home-pdf-stays,
  .home-stays-cta, .home-pdf-destinations, .home-pdf-approach, .home-pdf-process,
  .home-pdf-faq, .home-tours-section, .journey-overview, .journey-faq-editorial,
  .classic-story-section, .classic-moments-section, .about-editorial-section,
  .experience-gallery, .experience-detail-copy, .experience-related-section,
  .experience-time-section, .cusco-destination-page, .cusco-moments-section,
  .cusco-related-section, .plan-booking, .mobile-cta, .form-card
) :is(
  .pm-button--light, a.pm-button:not(.header-cta), .btn:not(.header-cta), .text-link,
  a[class*="-cta"]:not(.header-cta), .about-editorial-cta, .impact-action, .plan-submit
):not(.home-journey-foot a, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .cusco-journey-link, .cusco-train-link, .about-details-link, .about-closing-cta>a) span[aria-hidden="true"] {
  color: inherit !important;
}

body :is(
  .section:not(.dark), .home-pdf-about-intro, .home-pdf-why, .home-pdf-stays,
  .home-stays-cta, .home-pdf-destinations, .home-pdf-approach, .home-pdf-process,
  .home-pdf-faq, .home-tours-section, .journey-overview, .journey-faq-editorial,
  .classic-story-section, .classic-moments-section, .about-editorial-section,
  .experience-gallery, .experience-detail-copy, .experience-related-section,
  .experience-time-section, .cusco-destination-page, .cusco-moments-section,
  .cusco-related-section, .plan-booking, .mobile-cta, .form-card
) :is(
  .pm-button--light, a.pm-button:not(.header-cta), .btn:not(.header-cta), .text-link,
  a[class*="-cta"]:not(.header-cta), .about-editorial-cta, .impact-action, .plan-submit
):not(.home-journey-foot a, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .cusco-journey-link, .cusco-train-link, .about-details-link, .about-closing-cta>a):focus-visible {
  outline: 2px solid var(--pm-light-cta-hover-bg) !important;
  outline-offset: 4px !important;
}

@media (max-width: 740px) {
  body :is(
    .section:not(.dark), .home-pdf-about-intro, .home-pdf-why, .home-pdf-stays,
    .home-stays-cta, .home-pdf-destinations, .home-pdf-approach, .home-pdf-process,
    .home-pdf-faq, .home-tours-section, .journey-overview, .journey-faq-editorial,
    .classic-story-section, .classic-moments-section, .about-editorial-section,
    .experience-gallery, .experience-detail-copy, .experience-related-section,
    .experience-time-section, .cusco-destination-page, .cusco-moments-section,
    .cusco-related-section, .plan-booking, .mobile-cta, .form-card
  ) :is(
    .pm-button--light, a.pm-button:not(.header-cta), .btn:not(.header-cta), .text-link,
    a[class*="-cta"]:not(.header-cta), .about-editorial-cta, .impact-action, .plan-submit
  ):not(.home-journey-foot a, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .cusco-journey-link, .cusco-train-link, .about-details-link, .about-closing-cta>a) {
    min-height: 46px !important;
    padding: 11px 18px !important;
    font-size: 14px !important;
  }
}

/* Keep the enquiry submit full-width within the booking form. */
body.page-plan .plan-booking .plan-submit {
  width: 100% !important;
  justify-content: space-between !important;
}

@media (prefers-reduced-motion: reduce) {
  :root { --pm-light-cta-motion: 0s; }
}
}
