/* Shared site interactions: presentation only. Content remains editable in WordPress. */
:root { --nr-motion-duration: 250ms; --nr-motion-ease: cubic-bezier(.22,1,.36,1); }

/* Links change color instead of acquiring an underline. Preserve keyboard focus. */
.nr-site-header a,
.nr-entry-body a,
.nr-footer a {
  text-decoration: none;
  transition: color var(--nr-motion-duration) ease, background-color var(--nr-motion-duration) ease, border-color var(--nr-motion-duration) ease, box-shadow var(--nr-motion-duration) ease, transform var(--nr-motion-duration) var(--nr-motion-ease);
}
.nr-entry-body a:not(.wp-block-button__link):not(.nr-button):hover,
.nr-footer a:not(.wp-block-button__link):not(.nr-button):hover { color: #456e8d; text-decoration: none; }
.nr-site-header a:not(.wp-block-button__link):not(.nr-button):hover { color: #7dbff5; text-decoration: none; }
.nr-site-header .nr-nav a:hover,
.nr-entry-body a:hover,
.nr-footer a:hover,
.nr-footer .nr-footer-contact-social .nr-social-link:hover .nr-social-label,
.nr-entry-body .nr-social-link:hover .nr-social-label { text-decoration: none !important; }
/* Booking CTAs retain white text despite the general text-link hover rule. */
.nr-entry-body .nr-booking-room-list .nr-booking-room-card a.nr-booking-room-card__button:hover,
.nr-entry-body .nr-booking-room-list .nr-booking-room-card a.nr-booking-room-card__button:focus-visible { color: #fff; text-decoration: none; }
/* Reviews pagination uses a navy hover/focus background, so keep its numbers white. */
.nr-entry-body .nr-reviews-page__pagination a.page-numbers:hover,
.nr-entry-body .nr-reviews-page__pagination a.page-numbers:focus-visible { color: #fff; text-decoration: none; }
.nr-site-header a:focus-visible,
.nr-entry-body a:focus-visible,
.nr-footer a:focus-visible { outline: 2px solid #456e8d; outline-offset: 4px; }
.nr-site-header a:focus-visible { outline-color: #fff; }

/* Desktop: preserve the original overlay header until it scrolls out of view. */
@media (min-width: 1180px) {
  .nr-site-header.nr-header-scrolled {
    position: fixed;
    inset: 0 0 auto;
    z-index: 90;
    background: rgba(1,35,65,.98);
    box-shadow: 0 8px 26px rgba(1,35,65,.18);
  }
  body.admin-bar .nr-site-header.nr-header-scrolled { top: 32px; }
  .nr-site-header.nr-header-scrolled .nr-topbar { display: none; }
  .nr-site-header.nr-header-scrolled .nr-header-main {
    grid-template-columns: minmax(0,1fr) 108px minmax(0,1fr);
    min-height: 78px;
    padding-block: 8px;
  }
  .nr-site-header.nr-header-scrolled .nr-logo { width: 108px; }

  /* Text-first pages use a solid header in flow. Keep it sticky instead of
   * switching to fixed and making the content jump at the scroll threshold. */
  .nr-site-header:not(.nr-site-header--overlay),
  .nr-site-header:not(.nr-site-header--overlay).nr-header-scrolled {
    position: sticky;
    inset: auto;
    top: 0;
  }
  body.admin-bar .nr-site-header:not(.nr-site-header--overlay),
  body.admin-bar .nr-site-header:not(.nr-site-header--overlay).nr-header-scrolled {
    top: 32px;
  }
}

/* Quiet floating control: only shown after the user has scrolled down. */
.nr-back-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 40;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid rgba(1,35,65,.22);
  border-radius: 50%;
  background: rgba(255,255,255,.96);
  color: #012341;
  box-shadow: 0 5px 20px rgba(1,35,65,.12);
  font: 400 24px/1 Arial,sans-serif;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity .2s ease, visibility .2s ease, transform .2s ease, background-color .2s ease, color .2s ease;
}
.nr-back-to-top.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.nr-back-to-top:hover { background: #012341; color: #fff; }
.nr-back-to-top:focus-visible { outline: 3px solid #456e8d; outline-offset: 3px; }
@media (max-width: 767px) { .nr-back-to-top { right: 16px; bottom: 16px; width: 42px; height: 42px; } }

@media (hover: hover) and (pointer: fine) {
  .nr-entry-body .wp-block-button__link:hover,
  .nr-footer .wp-block-button__link:hover,
  .nr-entry-body .nr-button:hover,
  .nr-footer .nr-button:hover,
  .nr-entry-body .nr-contact-submit:hover { transform: translateY(-2px); }
  .nr-entry-body .nr-room-card:hover,
  .nr-entry-body .nr-contact-cards > .wp-block-column:hover,
  .nr-entry-body .nr-amenities .nr-amenity-item:hover { transform: translateY(-4px); box-shadow: 0 20px 48px rgba(1,35,65,.12); }
  .nr-entry-body .nr-motion-photo:hover .nr-motion-photo-image,
  .nr-entry-body .nr-motion-photo-image:hover,
  .nr-entry-body .nr-gallery-shell > figure.nr-enhanced-gallery[data-nr-lightbox="1"] > figure.wp-block-image:hover img[role="button"] { transform: scale(1.04); filter: brightness(1.04); }
}
.nr-entry-body .nr-room-card,
.nr-entry-body .nr-contact-cards > .wp-block-column,
.nr-entry-body .nr-amenities .nr-amenity-item { transition: transform .35s var(--nr-motion-ease), box-shadow .35s var(--nr-motion-ease); }
.nr-entry-body .nr-motion-photo-image,
.nr-entry-body .nr-gallery-shell > figure.nr-enhanced-gallery[data-nr-lightbox="1"] > figure.wp-block-image img[role="button"] { transition: transform .45s var(--nr-motion-ease), filter .45s ease; cursor: zoom-in; }
.nr-entry-body figure.nr-motion-photo { overflow: hidden; }
.nr-entry-body .nr-motion-photo-image:focus-visible { outline: 3px solid #456e8d; outline-offset: -3px; }

/* Progressive enhancement: nothing is hidden unless JS has initialised observers. */
@media (prefers-reduced-motion: no-preference) {
  html.nr-motion-ready .nr-reveal { transition: opacity .65s var(--nr-motion-ease), transform .65s var(--nr-motion-ease); }
  html.nr-motion-ready .nr-reveal:not(.is-visible) { opacity: 0; transform: translate3d(0,18px,0); }
  html.nr-motion-ready .nr-reveal.is-visible { opacity: 1; }
}

/* Standalone images only. Native Nereides Gallery keeps its own existing lightbox. */
.nr-motion-lightbox { position: fixed; z-index: 100001; inset: 0; display: grid; place-items: center; padding: 60px; background: rgba(4,15,27,.94); animation: nr-lightbox-in .22s ease both; }
.nr-motion-lightbox-image { display: block; width: auto; height: auto; max-width: min(90vw,1600px); max-height: 82vh; object-fit: contain; box-shadow: 0 28px 70px rgba(0,0,0,.3); animation: nr-lightbox-pop .3s var(--nr-motion-ease) both; }
.nr-motion-lightbox-caption { position: fixed; bottom: 18px; left: 72px; right: 72px; color: #fff; text-align: center; font: 400 14px/1.4 var(--nr-body,sans-serif); }
.nr-motion-lightbox-caption:empty { display: none; }
.nr-motion-lightbox button { position: fixed; z-index: 1; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(0,0,0,.6); color: #fff; font: 32px/1 Arial,sans-serif; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.nr-motion-lightbox button:hover { background: #456e8d; }
.nr-motion-lightbox button:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.nr-motion-lightbox .nr-motion-lightbox-close { top: 18px; right: 18px; }
.nr-motion-lightbox .nr-motion-lightbox-prev { top: 50%; left: 14px; transform: translateY(-50%); }
.nr-motion-lightbox .nr-motion-lightbox-next { top: 50%; right: 14px; transform: translateY(-50%); }
.nr-motion-lightbox button[hidden] { display: none; }
@keyframes nr-lightbox-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes nr-lightbox-pop { from { opacity: .65; transform: scale(.96); } to { opacity: 1; transform: scale(1); } }
@media (max-width: 767px) {
  .nr-motion-lightbox { padding: 15px; }
  .nr-motion-lightbox-image { max-width: calc(100vw - 30px); max-height: calc(100dvh - 125px); }
  .nr-motion-lightbox-caption { left: 54px; right: 54px; bottom: 14px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .nr-site-header a, .nr-entry-body a, .nr-footer a,
  .nr-entry-body .nr-room-card, .nr-entry-body .nr-contact-cards > .wp-block-column,
  .nr-entry-body .nr-amenities .nr-amenity-item, .nr-entry-body .nr-motion-photo-image,
  .nr-entry-body .nr-gallery-shell img[role="button"],
  .nr-motion-lightbox, .nr-motion-lightbox-image, .nr-motion-lightbox button,
  .nr-back-to-top { animation: none !important; transition: none !important; }
  html.nr-motion-ready .nr-reveal { opacity: 1 !important; transform: none !important; }
}

/* One Nereides button color across the native Hotel Booking interface. */
body { --hb-primary: #456e8d; }
body .hb_button,
body .wphb-button,
body #hotel-booking-cart .hb-btn,
body #hotel-booking-payment .hb-btn,
body .hotel-booking-search button[type="submit"] {
  background-color: #456e8d;
  border-color: #456e8d;
  color: #fff;
}
body .hb_button:hover,
body .wphb-button:hover,
body #hotel-booking-cart .hb-btn:hover,
body #hotel-booking-payment .hb-btn:hover,
body .hotel-booking-search button[type="submit"]:hover {
  background-color: #315773;
  border-color: #315773;
  color: #fff;
}
