/* Original header navigation stays unchanged. Only its CTA's reduced-motion jump is corrected. */
@layer components {
 main .button {
  transition:background-color 220ms ease,border-color 220ms ease,color 220ms ease,box-shadow 260ms var(--ease-soft),transform 260ms var(--ease-soft);
 }
 main .button>span[aria-hidden="true"] { transition:transform 260ms var(--ease-soft); }
 main .button:active { transform:translateY(1px);box-shadow:0 1px 3px #24271e30; }
 main .button:active>span[aria-hidden="true"] { transform:translate(3px,-2px); }
 /* Exact normal-motion underline recipe from the original header navigation. */
 .footer nav a { position:relative;display:inline-block;padding-block:var(--spacing-3);text-decoration:none; }
 .footer nav a::after {
  content:"";position:absolute;left:0;right:0;bottom:.35rem;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform 280ms var(--ease-soft);
 }
 .footer nav a:hover::after,.footer nav a:focus-visible::after { transform:scaleX(1); }
 .footer nav a:hover { color:var(--color-primary);text-decoration:none; }
 main :where(.support-link,.access__dl a,.reservation__guidance a,.reservation__support a) {
  text-decoration:underline;text-decoration-color:transparent;text-underline-offset:.25em;
  transition:color 220ms ease,text-decoration-color 220ms ease;
 }
 main :where(.support-link,.access__dl a,.reservation__guidance a,.reservation__support a):focus-visible { text-decoration-color:currentColor; }
 main a.text-link:focus-visible>span[aria-hidden="true"] { transform:translateY(5px); }
 .mobile-booking>a,.reservation__qr-link,.footer .brand { transition:filter 220ms ease,opacity 220ms ease,background-color 220ms ease,color 220ms ease; }
 .mobile-booking>a:active { filter:brightness(.75); }
 .reservation__qr-link:active,.footer .brand:active { opacity:.7; }
 .price-card { cursor:auto;transition:none; }
 main .button:focus-visible { transform:translateY(-3px);box-shadow:0 8px 18px #24271e24; }
 main .button--line:focus-visible { background:#065d2b;border-color:#065d2b;color:#fff; }
 main .button--outline:focus-visible { background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary); }
 main .button--light:focus-visible { background:var(--color-gold-light);border-color:var(--color-gold-light);color:var(--color-on-surface); }
 main .button:focus-visible>span[aria-hidden="true"] { transform:translate(6px,-4px); }
 @media (hover:hover) and (pointer:fine) {
  main .button:hover { transform:translateY(-3px);box-shadow:0 8px 18px #24271e24; }
  main .button--line:hover { background:#065d2b;border-color:#065d2b;color:#fff; }
  main .button--outline:hover { background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary); }
  main .button--light:hover { background:var(--color-gold-light);border-color:var(--color-gold-light);color:var(--color-on-surface); }
  main .button:hover>span[aria-hidden="true"] { transform:translate(6px,-4px); }
  main a.text-link:hover>span[aria-hidden="true"] { transform:translateY(5px); }
  main :where(.support-link,.access__dl a,.reservation__guidance a,.reservation__support a):hover { text-decoration-color:currentColor; }
  .mobile-booking__line:hover { background:#065d2b; }
  .mobile-booking>a:not(.mobile-booking__line):hover { background:var(--color-primary);color:var(--color-on-primary); }
  .reservation__qr-link:hover,.footer .brand:hover { opacity:.8; }
 }
 /* Press feedback wins over simultaneous hover/focus on actual buttons. */
 main .button:active { transform:translateY(1px);box-shadow:0 1px 3px #24271e30; }
 main .button:active>span[aria-hidden="true"] { transform:translate(3px,-2px); }
 @media (hover:none), (pointer:coarse) {
  main .button:hover { transform:none;box-shadow:none; }
  main .button--line:hover { background:#087e3b;border-color:#087e3b;color:#fff; }
  main .button--outline:hover { background:var(--color-card);border-color:var(--color-primary);color:var(--color-primary); }
  main .button--light:hover { background:var(--color-surface);color:var(--color-primary); }
  main .button:hover>span[aria-hidden="true"],main a.text-link:hover>span[aria-hidden="true"] { transform:none; }
  .footer nav a:hover::after { transform:scaleX(0); }
  .footer nav a:hover { color:inherit;text-decoration:none; }
  .footer nav a:focus-visible::after { transform:scaleX(1); }
  main .button:active { transform:translateY(1px);box-shadow:0 1px 3px #24271e30; }
 }
 @media(prefers-reduced-motion:reduce) {
  main .button>span[aria-hidden="true"],main a.text-link>span[aria-hidden="true"],
  main :where(.support-link,.access__dl a,.reservation__guidance a,.reservation__support a),
  .footer .brand,.mobile-booking>a,.reservation__qr-link { transition:none; }
  main .button,.header__actions>.button {
   transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,opacity 180ms ease;
  }
  main .button:is(:hover,:focus-visible,:active) { box-shadow:none; }
  .header__actions>.button:is(:hover,:focus-visible,:active) { transform:none; }
  main .button:active,.header__actions>.button:active { opacity:.88; }
  main .button:is(:hover,:focus-visible,:active),main .button:is(:hover,:focus-visible,:active)>span[aria-hidden="true"],
  main a.text-link:is(:hover,:focus-visible)>span[aria-hidden="true"] { transform:none; }
 }
}

/* Link feedback: arrow movement belongs to the icon; CTA boxes stay still.
   Original header and footer navigation recipes are deliberately untouched. */
@layer components {
 main .button,main .button:is(:hover,:focus-visible,:active) { transform:none;box-shadow:none; }
 main a.button>span.link-arrow,main a.link-feedback>span.link-arrow { display:inline-block;flex-shrink:0;transition:transform 280ms var(--ease-soft),opacity 180ms ease; }
 main a.link-feedback {
  --link-ink:var(--color-on-surface);--link-hover:var(--color-primary);
  position:relative;display:inline-flex;align-items:center;gap:.65em;max-width:100%;
  color:var(--link-ink);border-bottom:1px solid color-mix(in srgb,currentColor 45%,transparent);
  text-decoration:none;font-family:var(--font-sans);font-size:1rem;letter-spacing:inherit;
  padding-block:var(--spacing-2);line-height:1.7;transition:color 180ms ease;
 }
 main a.link-feedback::after {
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:left;transition:transform 280ms var(--ease-soft),opacity 180ms ease;
 }
 main .reservation a.link-feedback { --link-ink:var(--color-on-primary);--link-hover:var(--color-gold-light); }
 main a.link-feedback:focus-visible { color:var(--link-hover);text-decoration:none; }
 main a.link-feedback:focus-visible::after { transform:scaleX(1); }
 main a.link-feedback:focus-visible>span.link-arrow--down { transform:translateY(4px); }
 main a.link-feedback:focus-visible>span.link-arrow--out,
 main .button:focus-visible>span.link-arrow--out { transform:translate(4px,-4px); }
 main .button:active>span.link-arrow { transform:none; }
 @media (hover:hover) and (pointer:fine) {
  main a.link-feedback:hover { color:var(--link-hover);text-decoration:none; }
  main a.link-feedback:hover::after { transform:scaleX(1); }
  main a.link-feedback:hover>span.link-arrow--down { transform:translateY(4px); }
  main a.link-feedback:hover>span.link-arrow--out,
  main .button:hover>span.link-arrow--out { transform:translate(4px,-4px); }
 }
 @media (hover:none), (pointer:coarse) {
  main a.link-feedback:hover { color:var(--link-ink); }
  main a.link-feedback:hover::after { transform:scaleX(0); }
  main a.link-feedback:hover>span.link-arrow,main .button:hover>span.link-arrow { transform:none; }
  main a.link-feedback:focus-visible { color:var(--link-hover); }
  main a.link-feedback:focus-visible::after { transform:scaleX(1); }
  main a.link-feedback:active { color:var(--link-hover); }
  main a.link-feedback:active::after { transform:scaleX(1); }
 }
 @media(prefers-reduced-motion:reduce) {
  main a.link-feedback::after { transform:scaleX(1);opacity:0;transition:opacity 180ms ease; }
  main a.link-feedback:focus-visible::after { transform:scaleX(1);opacity:1; }
  main a.link-feedback:is(:hover,:focus-visible,:active)>span.link-arrow,
  main .button:is(:hover,:focus-visible,:active)>span.link-arrow { transform:none; }
  main a.link-feedback:focus-visible>span.link-arrow,main .button:focus-visible>span.link-arrow { opacity:.65; }
  @media (hover:hover) and (pointer:fine) {
   main a.link-feedback:hover::after { transform:scaleX(1);opacity:1; }
   main a.link-feedback:hover>span.link-arrow,main .button:hover>span.link-arrow { opacity:.65; }
  }
  @media (hover:none), (pointer:coarse) {
   main a.link-feedback:hover::after { opacity:0; }
   main a.link-feedback:focus-visible::after,main a.link-feedback:active::after { opacity:1; }
  }
 }
}

@layer components {
 /* Inline references keep sentence flow; underline and tint carry the feedback. */
 main a.inline-link-feedback {
  --link-ink:var(--color-on-surface);--link-hover:var(--color-primary);
  color:var(--link-ink);text-decoration:underline;text-underline-offset:.25em;
  text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);
  border-radius:.1em;transition:color 180ms ease,text-decoration-color 180ms ease,background-color 180ms ease;
 }
 main .reservation a.inline-link-feedback { --link-ink:var(--color-on-primary);--link-hover:var(--color-gold-light); }
 main a.inline-link-feedback:focus-visible {
  color:var(--link-hover);text-decoration-color:currentColor;background-color:color-mix(in srgb,currentColor 12%,transparent);
 }
 main .reservation :is(a.button,a.link-feedback,a.inline-link-feedback,a.reservation__qr-link):focus-visible { outline-color:var(--color-on-primary); }
 main a.reservation__qr-link,.footer .brand { transition:opacity 180ms ease; }
 main a.reservation__qr-link:focus-visible,.footer .brand:focus-visible { opacity:.8; }
 .mobile-booking>a { transition:background-color 180ms ease,color 180ms ease,filter 180ms ease; }
 .mobile-booking>a:focus-visible { outline-offset:-.35rem;filter:brightness(.85); }
 .mobile-booking__line:focus-visible { outline-color:var(--color-on-primary); }
 @media (hover:hover) and (pointer:fine) {
  main a.inline-link-feedback:hover { color:var(--link-hover);text-decoration-color:currentColor;background-color:color-mix(in srgb,currentColor 12%,transparent); }
 }
 @media (hover:none), (pointer:coarse) {
  main a.inline-link-feedback:hover { color:var(--link-ink);text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);background-color:transparent; }
  main a.inline-link-feedback:is(:focus-visible,:active) { color:var(--link-hover);text-decoration-color:currentColor;background-color:color-mix(in srgb,currentColor 12%,transparent); }
 }
}
