/* Perú Machu CTA components: gold, underlined text, and black. */
@layer shared-controls {
  :root {
    --pm-button-gold: #C6985A;
    --pm-button-black: #000;
    --pm-button-white: #fff;
    --pm-button-ink: #142640;
    --pm-button-rise-duration: 550ms;
  }

  /* Legacy selectors map existing CTAs to the three reusable variants. */
  body :is(.pm-button--gold, .header-cta, .mobile-cta .btn, .btn:not(.secondary):not(.pm-button--black), .plan-submit) {
    --pm-button-rest-bg: var(--pm-button-gold);
    --pm-button-rest-ink: var(--pm-button-ink);
    --pm-button-hover-bg: var(--pm-button-white);
    --pm-button-hover-ink: var(--pm-button-ink);
    --cta-fill: var(--pm-button-hover-bg);
    --cta-hover-color: var(--pm-button-hover-ink);
  }

  body :is(.pm-button--underline, .text-link, .hero-explore, .home-journey-foot a, a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action, .cusco-closing-link, .cusco-journey-link, .cusco-train-link, .about-details-link, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .btn.secondary):not(.pm-button--black):not(.pm-button--gold) {
    --pm-button-rest-bg: transparent;
    --pm-button-rest-ink: var(--action-ink, var(--pm-button-ink));
    --pm-button-hover-bg: var(--pm-button-white);
    --pm-button-hover-ink: var(--pm-button-ink);
    --cta-fill: var(--pm-button-hover-bg);
    --cta-hover-color: var(--pm-button-hover-ink);
  }

  body :is(.pm-button--black, .home-pdf-about-intro-copy .text-link) {
    --pm-button-rest-bg: var(--pm-button-black);
    --pm-button-rest-ink: var(--pm-button-white);
    --pm-button-hover-bg: var(--pm-button-gold);
    --pm-button-hover-ink: var(--pm-button-black);
    --cta-fill: var(--pm-button-hover-bg);
    --cta-hover-color: var(--pm-button-hover-ink);
  }

  body :is(.pm-button--gold, .pm-button--underline, .pm-button--black, .header-cta, .mobile-cta .btn, .btn:not(.secondary), .btn.secondary, .text-link, .hero-explore, .home-journey-foot a, a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action, .cusco-closing-link, .cusco-journey-link, .cusco-train-link, .about-details-link, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .plan-submit) {
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
    box-sizing: border-box;
    background: var(--pm-button-rest-bg, transparent) !important;
    color: var(--pm-button-rest-ink, inherit) !important;
    border-color: var(--pm-button-rest-bg, transparent) !important;
    transition: color .25s ease, border-color .25s ease !important;
  }

  body :is(.pm-button--underline, .text-link, .hero-explore, .home-journey-foot a, a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action, .cusco-closing-link, .cusco-journey-link, .cusco-train-link, .about-details-link, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .btn.secondary):not(.pm-button--black):not(.pm-button--gold) {
    border-width: 0 !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 5px !important;
  }

  body :is(.pm-button--gold, .pm-button--underline, .pm-button--black, .header-cta, .mobile-cta .btn, .btn:not(.secondary), .btn.secondary, .text-link, .hero-explore, .home-journey-foot a, a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action, .cusco-closing-link, .cusco-journey-link, .cusco-train-link, .about-details-link, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .plan-submit)::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-button-hover-bg, var(--pm-button-white)) !important;
    pointer-events: none !important;
    transform: translateY(102%) !important;
    transition: transform var(--pm-button-rise-duration) cubic-bezier(.2,.75,.25,1) !important;
  }

  body :is(.pm-button--gold, .pm-button--underline, .pm-button--black, .header-cta, .mobile-cta .btn, .btn:not(.secondary), .btn.secondary, .text-link, .hero-explore, .home-journey-foot a, a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action, .cusco-closing-link, .cusco-journey-link, .cusco-train-link, .about-details-link, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .plan-submit):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active) {
    background: transparent !important;
    color: var(--pm-button-hover-ink, var(--pm-button-ink)) !important;
    border-color: var(--pm-button-hover-bg, var(--pm-button-white)) !important;
  }

  body :is(.pm-button--gold, .pm-button--underline, .pm-button--black, .header-cta, .mobile-cta .btn, .btn:not(.secondary), .btn.secondary, .text-link, .hero-explore, .home-journey-foot a, a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action, .cusco-closing-link, .cusco-journey-link, .cusco-train-link, .about-details-link, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .plan-submit):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active)::before {
    transform: translateY(0) !important;
  }

  body :is(.pm-button--gold, .pm-button--underline, .pm-button--black, .header-cta, .mobile-cta .btn, .btn:not(.secondary), .btn.secondary, .text-link, .hero-explore, .home-journey-foot a, a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action, .cusco-closing-link, .cusco-journey-link, .cusco-train-link, .about-details-link, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .plan-submit) span[aria-hidden="true"] {
    color: inherit !important;
  }

  body :is(.pm-button--gold, .pm-button--underline, .pm-button--black, .header-cta, .mobile-cta .btn, .btn:not(.secondary), .btn.secondary, .text-link, .hero-explore, .home-journey-foot a, a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action, .cusco-closing-link, .cusco-journey-link, .cusco-train-link, .about-details-link, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .plan-submit):focus-visible {
    outline: 2px solid var(--pm-button-gold) !important;
    outline-offset: 4px;
  }

  @media (prefers-reduced-motion: reduce) {
    :root { --pm-button-rise-duration: 0s; }
  }
}


/* Underlined editorial actions: text only on light sections, black on hover. */
@layer shared-controls {
  body {
    --pm-text-cta-hover-ink: #000;
    --pm-text-cta-hover-fill: transparent;
    --pm-text-cta-hover-y: 102%;
  }

  :is(.hero, .luxury-hero, .section.dark, .site-header, .site-footer,
      .classic-personal-immersive, .home-pdf-impact, .home-impact-preview,
      .home-pdf-destination-photo, .form-aside, .duration-menu, .mobile-cta,
      .cusco-train-showcase, .about-details-photo, .hotel-card-overlay) {
    --pm-text-cta-hover-ink: var(--pm-button-ink, #142640);
    --pm-text-cta-hover-fill: var(--pm-button-white, #fff);
    --pm-text-cta-hover-y: 0;
  }

  body :is(.pm-button--underline, .text-link, .hero-explore, .home-journey-foot a,
      a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action,
      .cusco-closing-link, .cusco-journey-link, .cusco-train-link,
      .about-details-link, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a,
      .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .btn.secondary) {
    --pm-button-hover-bg: var(--pm-text-cta-hover-fill);
    --pm-button-hover-ink: var(--pm-text-cta-hover-ink);
    --cta-fill: var(--pm-text-cta-hover-fill);
    --cta-hover-color: var(--pm-text-cta-hover-ink);
    background: transparent !important;
    color: var(--action-ink, var(--pm-button-ink, #142640)) !important;
    border-color: transparent !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 5px !important;
  }

  body :is(.pm-button--underline, .text-link, .hero-explore, .home-journey-foot a,
      a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action,
      .cusco-closing-link, .cusco-journey-link, .cusco-train-link,
      .about-details-link, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a,
      .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .btn.secondary)::before {
    background: var(--pm-text-cta-hover-fill) !important;
  }

  body :is(.pm-button--underline, .text-link, .hero-explore, .home-journey-foot a,
      a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action,
      .cusco-closing-link, .cusco-journey-link, .cusco-train-link,
      .about-details-link, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a,
      .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .btn.secondary):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active) {
    background: transparent !important;
    color: var(--pm-text-cta-hover-ink, #000) !important;
    border-color: transparent !important;
  }

  body :is(.pm-button--underline, .text-link, .hero-explore, .home-journey-foot a,
      a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action,
      .cusco-closing-link, .cusco-journey-link, .cusco-train-link,
      .about-details-link, .home-pdf-footer-cta a, .journeys-pdf-card-foot>a,
      .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .btn.secondary):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active)::before {
    transform: translateY(var(--pm-text-cta-hover-y, 102%)) !important;
  }
}


/* Primary CTA links in ivory and white sections use the text-only treatment too. */
@layer shared-controls {
  body :is(.section:not(.dark), .home-pdf-about-intro, .home-pdf-why,
      .home-pdf-stays, .home-stays-cta, .home-pdf-faq, .home-pdf-reviews,
      .home-pdf-footer-cta, .home-tours-section, .journey-overview,
      .journey-faq-editorial, .about-editorial-section, .experience-gallery,
      .experience-detail-copy, .experience-related-section, .experience-time-section,
      .cusco-moments-section, .cusco-related-section)
      :is(a.pm-button--gold, a.pm-button--black, a.btn:not(.header-cta), a[class*="-cta"]:not(.header-cta)) {
    --pm-button-hover-bg: transparent;
    --pm-button-hover-ink: #000;
    --cta-fill: transparent;
    --cta-hover-color: #000;
    background: transparent !important;
    color: var(--action-ink, var(--pm-button-ink, #142640)) !important;
    border: 0 !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 5px !important;
  }

  body :is(.section:not(.dark), .home-pdf-about-intro, .home-pdf-why,
      .home-pdf-stays, .home-stays-cta, .home-pdf-faq, .home-pdf-reviews,
      .home-pdf-footer-cta, .home-tours-section, .journey-overview,
      .journey-faq-editorial, .about-editorial-section, .experience-gallery,
      .experience-detail-copy, .experience-related-section, .experience-time-section,
      .cusco-moments-section, .cusco-related-section)
      :is(a.pm-button--gold, a.pm-button--black, a.btn:not(.header-cta), a[class*="-cta"]:not(.header-cta))::before {
    background: transparent !important;
    transform: translateY(102%) !important;
  }

  body :is(.section:not(.dark), .home-pdf-about-intro, .home-pdf-why,
      .home-pdf-stays, .home-stays-cta, .home-pdf-faq, .home-pdf-reviews,
      .home-pdf-footer-cta, .home-tours-section, .journey-overview,
      .journey-faq-editorial, .about-editorial-section, .experience-gallery,
      .experience-detail-copy, .experience-related-section, .experience-time-section,
      .cusco-moments-section, .cusco-related-section)
      :is(a.pm-button--gold, a.pm-button--black, a.btn:not(.header-cta), a[class*="-cta"]:not(.header-cta))::after {
    display: none !important;
  }

  body :is(.section:not(.dark), .home-pdf-about-intro, .home-pdf-why,
      .home-pdf-stays, .home-stays-cta, .home-pdf-faq, .home-pdf-reviews,
      .home-pdf-footer-cta, .home-tours-section, .journey-overview,
      .journey-faq-editorial, .about-editorial-section, .experience-gallery,
      .experience-detail-copy, .experience-related-section, .experience-time-section,
      .cusco-moments-section, .cusco-related-section)
      :is(a.pm-button--gold, a.pm-button--black, a.btn:not(.header-cta), a[class*="-cta"]:not(.header-cta)):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active) {
    background: transparent !important;
    color: #000 !important;
    border-color: transparent !important;
  }
}


/* Final unlayered CTA overrides: enforce the light-section hover color and a slower rise. */
:root {
  --pm-button-rise-duration: 700ms;
  --pm-rise-duration: 700ms;
}
body {
  --pm-text-cta-hover-ink: #000;
  --pm-text-cta-hover-fill: transparent;
  --pm-text-cta-hover-y: 102%;
}
:is(.hero, .luxury-hero, .section.dark, .site-footer, .classic-personal-immersive,
    .home-pdf-impact, .home-impact-preview, .home-pdf-destination-photo, .form-aside,
    .duration-menu, .mobile-cta, .cusco-train-showcase, .about-details-photo, .hotel-card-overlay) {
  --pm-text-cta-hover-ink: var(--pm-button-ink, #142640);
  --pm-text-cta-hover-fill: var(--pm-button-white, #fff);
  --pm-text-cta-hover-y: 0;
}

body :is(.pm-button--underline, .text-link, .hero-explore, .home-journey-foot a,
    a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action, .cusco-closing-link,
    .cusco-journey-link, .cusco-train-link, .about-details-link, .home-pdf-footer-cta a,
    .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .btn.secondary) {
  --pm-button-hover-bg: var(--pm-text-cta-hover-fill);
  --pm-button-hover-ink: var(--pm-text-cta-hover-ink);
  --cta-fill: var(--pm-text-cta-hover-fill);
  --cta-hover-color: var(--pm-text-cta-hover-ink);
  background: transparent !important;
  color: var(--action-ink, var(--pm-button-ink, #142640)) !important;
  border-color: transparent !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 5px !important;
  transition: color 380ms ease, border-color 380ms ease !important;
}
body :is(.pm-button--underline, .text-link, .hero-explore, .home-journey-foot a,
    a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action, .cusco-closing-link,
    .cusco-journey-link, .cusco-train-link, .about-details-link, .home-pdf-footer-cta a,
    .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .btn.secondary)::before {
  background: var(--pm-text-cta-hover-fill) !important;
  transition: transform var(--pm-button-rise-duration, 700ms) cubic-bezier(.2,.75,.25,1) !important;
}
body :is(.pm-button--underline, .text-link, .hero-explore, .home-journey-foot a,
    a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action, .cusco-closing-link,
    .cusco-journey-link, .cusco-train-link, .about-details-link, .home-pdf-footer-cta a,
    .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .btn.secondary)::after {
  display: none !important;
}
body :is(.pm-button--underline, .text-link, .hero-explore, .home-journey-foot a,
    a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action, .cusco-closing-link,
    .cusco-journey-link, .cusco-train-link, .about-details-link, .home-pdf-footer-cta a,
    .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .btn.secondary):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active) {
  background: transparent !important;
  color: var(--pm-text-cta-hover-ink, #000) !important;
  border-color: transparent !important;
}
body :is(.pm-button--underline, .text-link, .hero-explore, .home-journey-foot a,
    a[class*="-cta"]:not(.header-cta):not(.btn), .impact-action, .cusco-closing-link,
    .cusco-journey-link, .cusco-train-link, .about-details-link, .home-pdf-footer-cta a,
    .journeys-pdf-card-foot>a, .catalogue-pdf-card-foot>a, .hotel-card-overlay a, .btn.secondary):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active)::before {
  transform: translateY(var(--pm-text-cta-hover-y, 102%)) !important;
}

body :is(.section:not(.dark), .home-pdf-about-intro, .home-pdf-why, .home-pdf-stays,
    .home-stays-cta, .home-pdf-faq, .home-pdf-reviews, .home-pdf-footer-cta,
    .home-tours-section, .journey-overview, .journey-faq-editorial, .about-editorial-section,
    .experience-gallery, .experience-detail-copy, .experience-related-section,
    .experience-time-section, .cusco-moments-section, .cusco-related-section)
    :is(a.pm-button--gold, a.pm-button--black, a.btn:not(.header-cta), a[class*="-cta"]:not(.header-cta)) {
  --pm-button-hover-bg: transparent;
  --pm-button-hover-ink: #000;
  --cta-fill: transparent;
  --cta-hover-color: #000;
  background: transparent !important;
  color: var(--action-ink, var(--pm-button-ink, #142640)) !important;
  border: 0 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 5px !important;
  transition: color 380ms ease, border-color 380ms ease !important;
}
body :is(.section:not(.dark), .home-pdf-about-intro, .home-pdf-why, .home-pdf-stays,
    .home-stays-cta, .home-pdf-faq, .home-pdf-reviews, .home-pdf-footer-cta,
    .home-tours-section, .journey-overview, .journey-faq-editorial, .about-editorial-section,
    .experience-gallery, .experience-detail-copy, .experience-related-section,
    .experience-time-section, .cusco-moments-section, .cusco-related-section)
    :is(a.pm-button--gold, a.pm-button--black, a.btn:not(.header-cta), a[class*="-cta"]:not(.header-cta))::before {
  background: transparent !important;
  transform: translateY(102%) !important;
  transition: transform var(--pm-button-rise-duration, 700ms) 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-faq, .home-pdf-reviews, .home-pdf-footer-cta,
    .home-tours-section, .journey-overview, .journey-faq-editorial, .about-editorial-section,
    .experience-gallery, .experience-detail-copy, .experience-related-section,
    .experience-time-section, .cusco-moments-section, .cusco-related-section)
    :is(a.pm-button--gold, a.pm-button--black, a.btn:not(.header-cta), a[class*="-cta"]:not(.header-cta))::after {
  display: none !important;
}
body :is(.section:not(.dark), .home-pdf-about-intro, .home-pdf-why, .home-pdf-stays,
    .home-stays-cta, .home-pdf-faq, .home-pdf-reviews, .home-pdf-footer-cta,
    .home-tours-section, .journey-overview, .journey-faq-editorial, .about-editorial-section,
    .experience-gallery, .experience-detail-copy, .experience-related-section,
    .experience-time-section, .cusco-moments-section, .cusco-related-section)
    :is(a.pm-button--gold, a.pm-button--black, a.btn:not(.header-cta), a[class*="-cta"]:not(.header-cta)):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active) {
  background: transparent !important;
  color: #000 !important;
  border-color: transparent !important;
}

@media (prefers-reduced-motion: reduce) {
  :root { --pm-button-rise-duration: 0s; --pm-rise-duration: 0s; }
}
