/* Extend the Home's rising-fill hover to every native button and button-like action. */
/* Keep this in the shared layer: older layered rules hide ::before on some routes. */
@layer shared-controls{
body :is(button:not(:disabled),a.btn:not(.header-cta),a.text-link,a.hero-explore,a.impact-action,a.cusco-closing-link,a.cusco-journey-link,a.cusco-train-link,a.about-details-link,a[class*="-cta"],.home-journey-foot a,.journeys-pdf-card-foot>a,.catalogue-pdf-card-foot>a,.hotel-card-overlay a):not(.header-cta){
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
}
body :is(button:not(:disabled),a.btn:not(.header-cta),a.text-link,a.hero-explore,a.impact-action,a.cusco-closing-link,a.cusco-journey-link,a.cusco-train-link,a.about-details-link,a[class*="-cta"],.home-journey-foot a,.journeys-pdf-card-foot>a,.catalogue-pdf-card-foot>a,.hotel-card-overlay a):not(.header-cta)::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  z-index:-1!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
  border:0!important;
  border-radius:inherit!important;
  background:var(--cta-fill,var(--control-gold,#c6985a))!important;
  pointer-events:none!important;
  transform:translateY(102%)!important;
  transition:transform var(--pm-rise-duration,550ms) cubic-bezier(.2,.75,.25,1)!important;
}
body :is(button:not(:disabled),a.btn:not(.header-cta),a.text-link,a.hero-explore,a.impact-action,a.cusco-closing-link,a.cusco-journey-link,a.cusco-train-link,a.about-details-link,a[class*="-cta"],.home-journey-foot a,.journeys-pdf-card-foot>a,.catalogue-pdf-card-foot>a,.hotel-card-overlay a):not(.header-cta):not([aria-disabled="true"]):is(:hover,:focus-visible,:active){
  background:transparent!important;
  border-color:var(--cta-fill,var(--control-gold,#c6985a))!important;
  color:var(--cta-hover-color,var(--control-navy,#142640))!important;
}
body :is(button:not(:disabled),a.btn:not(.header-cta),a.text-link,a.hero-explore,a.impact-action,a.cusco-closing-link,a.cusco-journey-link,a.cusco-train-link,a.about-details-link,a[class*="-cta"],.home-journey-foot a,.journeys-pdf-card-foot>a,.catalogue-pdf-card-foot>a,.hotel-card-overlay a):not(.header-cta):not([aria-disabled="true"]):is(:hover,:focus-visible,:active)::before{
  transform:translateY(0)!important;
}
/* Generic Home controls use a gold fill; the established Home CTAs keep their own colors. */
body:is(.page-home,.design-home) :is(button:not(.btn):not(.header-cta)){
  --cta-fill:#dab173;
  --cta-hover-color:#142640;
}
/* Gold fills need navy lettering. Black and white Home fills keep their own contrast colors. */
body :is(button:not(.btn):not(.header-cta),a[class*="-cta"]:not(.btn):not(.text-link):not(.header-cta),a.impact-action,a.cusco-closing-link,a.cusco-journey-link,a.cusco-train-link,a.about-details-link,.journeys-pdf-card-foot>a,.catalogue-pdf-card-foot>a,.hotel-card-overlay a){
  --cta-hover-color:var(--control-navy,#142640);
}
/* Category controls previously suppressed this layer; reveal it on hover and keyboard focus. */
body.page-journeys .journeys-pdf-filter-bar .filters button::before,
body:is(.page-destinations,.page-experiences) .catalogue-pdf-filter-bar .filters button::before{
  display:block!important;
}
/* The catalogue and editorial actions have their own typography and borders. */
body :is(.journeys-pdf-card-foot>a,.catalogue-pdf-card-foot>a,.hotel-card-overlay a,.cusco-journey-link,.cusco-train-link,.about-details-link){
  padding-inline:24px!important;
}
}
@media(prefers-reduced-motion:reduce){:root{--pm-rise-duration:0s}}

/* Keep primary calls to action typographic at rest, like the Home links. */
@layer shared-controls{
  body :is(.btn:not(.header-cta),.text-link,.hero-explore,.home-journey-foot a,.about-editorial-cta,.about-closing-cta>a,.home-pdf-footer-cta a,.impact-action,.cusco-closing-link,.home-tour-card-cta,button[class*="-cta"],a[class*="-cta"],.plan-submit):not(.header-cta){
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:fit-content!important;
    max-width:100%;
    min-height:44px!important;
    height:auto!important;
    margin-block:0;
    /* Keep the rising fill clear of the label on both sides. */
    padding:7px 24px!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:inherit!important;
    font:400 16px/1.35 Cultura,Georgia,serif!important;
    letter-spacing:normal!important;
    text-decoration:none!important;
    text-transform:none!important;
    white-space:normal;
  }
}
