:root {
  --brand: #476b3a;
  /* Härleds ur --brand så att varje hover, fokusring och mjuk yta följer
     restaurangens färg. Sätts de fast här blir de olivgröna för alla. */
  --brand-dark: color-mix(in srgb, var(--brand) 80%, #000);
  --brand-soft: color-mix(in srgb, var(--brand) 14%, #fff);
  --accent: #ff2300;
  --ink: #17181a;
  --muted: #6b6f6a;
  --tertiary: #96988f;
  --canvas: #faf9f6;
  --surface: #ffffff;
  --line: #e7e5df;
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --shadow-card: 0 10px 30px rgba(20, 20, 15, .06);
  --font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--canvas);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { max-width: 100%; display: block; }
a { color: inherit; }

.rp-container { max-width: 1080px; margin: 0 auto; padding: 0 24px; }

/* ---------- Loading skeleton ---------- */
.rp-loading { min-height: 100vh; display: grid; place-items: center; color: var(--muted); font-size: 14px; gap: 10px; }
.rp-loading::before {
  content: "";
  width: 30px; height: 30px; border-radius: 50%;
  border: 3px solid var(--line); border-top-color: var(--brand);
  animation: rp-spin .8s linear infinite;
}
@keyframes rp-spin { to { transform: rotate(360deg); } }
.rp-loading-wrap { display: flex; flex-direction: column; align-items: center; gap: 14px; }

.rp-error { max-width: 420px; margin: 18vh auto; text-align: center; padding: 32px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.rp-error strong { display: block; color: var(--ink); font-size: 17px; margin-bottom: 6px; }

/* ---------- Hittar inte restaurangen, med sökning ---------- */
.rp-missing { min-height: 100vh; display: grid; place-items: center; padding: 32px 20px; background: var(--canvas); }
.rp-missing-card { width: 100%; max-width: 540px; }
.rp-missing-eyebrow { margin: 0 0 14px; color: var(--brand); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.rp-missing h1 { margin: 0 0 12px; color: var(--ink); font-size: 30px; font-weight: 700; line-height: 1.15; letter-spacing: -.02em; }
.rp-missing-lede { margin: 0 0 28px; color: var(--muted); font-size: 15px; line-height: 1.65; }
.rp-missing-lede strong { color: var(--ink); font-weight: 600; }

.rp-search-label { display: block; margin-bottom: 8px; color: var(--ink); font-size: 13px; font-weight: 600; }
.rp-search input {
  width: 100%;
  height: 52px;
  padding: 0 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: var(--ink);
  font-family: inherit;
  font-size: 16px;
}
.rp-search input:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px var(--brand-soft); }
.rp-search input::placeholder { color: var(--tertiary); }
.rp-search-status { min-height: 18px; margin: 10px 2px 0; color: var(--tertiary); font-size: 12px; }

.rp-search-results { display: grid; gap: 8px; margin-top: 6px; }
.rp-search-hit {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  transition: border-color .15s ease, transform .15s ease;
  animation: rp-hit-in .2s ease both;
}
.rp-search-hit:hover { border-color: var(--brand); transform: translateY(-1px); }
.rp-search-hit-name { color: var(--ink); font-size: 15px; font-weight: 600; }
.rp-search-hit-meta { color: var(--tertiary); font-size: 12px; white-space: nowrap; }
@keyframes rp-hit-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 520px) {
  .rp-missing h1 { font-size: 24px; }
  .rp-missing-lede { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .rp-search-hit { animation: none; }
}

/* ---------- Header ---------- */
.rp-header {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; gap: 20px;
  height: 64px;
  padding: 0 24px;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.rp-header-inner { max-width: 1080px; margin: 0 auto; width: 100%; display: flex; align-items: center; gap: 24px; }
.rp-brandmark { width: 36px; height: 26px; flex: 0 0 auto; opacity: .85; }
.rp-brandmark img { display: block; width: 100%; height: 100%; object-fit: contain; }
.rp-nav { display: flex; align-items: center; gap: 22px; flex: 1; overflow-x: auto; scrollbar-width: none; }
.rp-nav::-webkit-scrollbar { display: none; }
.rp-nav a { white-space: nowrap; font-size: 13px; font-weight: 600; color: var(--muted); text-decoration: none; }
.rp-nav a:hover { color: var(--ink); }
/* Öppetstatus och bokningsknapp hålls ihop längst till höger. margin-left
   räcker även när navigeringen är dold på mobil. */
.rp-header-end { display: flex; align-items: center; gap: 14px; margin-left: auto; flex: 0 0 auto; }
/* Samma grå som navigeringens länkar — statusen är information, inte larm. */
.rp-header-status { font-size: 13px; font-weight: 600; color: var(--muted); white-space: nowrap; }

.rp-cta {
  flex: 0 0 auto; height: 38px; padding: 0 18px; border: 0; border-radius: 10px;
  background: var(--brand); color: #fff; font-size: 13px; font-weight: 700;
  cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; white-space: nowrap;
  transition: background .15s ease, transform .15s ease;
}
.rp-cta:hover { background: var(--brand-dark); }
.rp-cta:active { transform: translateY(1px); }

/* ---------- Hero ---------- */
.rp-hero {
  position: relative;
  min-height: 560px;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 32px 24px 56px;
  background-size: cover; background-position: center;
  color: #fff;
  overflow: hidden;
}
.rp-hero::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10, 12, 8, .55) 0%, rgba(10, 12, 8, .1) 38%, rgba(10, 12, 8, .1) 55%, rgba(10, 12, 8, .72) 100%);
}
.rp-hero-inner { position: relative; max-width: 1080px; margin: 0 auto; width: 100%; }
/* Restaurangens egen logga överst i hero-bilden, som en bekräftelse på
   att man är kvar hos rätt restaurang. Ingen platta bakom — loggan ligger
   direkt på bilden. */
.rp-hero-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 76px;
  margin-bottom: 18px;
}

.rp-hero-logo img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }

@media (max-width: 520px) {
  .rp-hero-logo { width: 62px; height: 62px; margin-bottom: 14px; }
}

.rp-hero-social { position: absolute; left: 0; top: -220px; display: flex; flex-direction: column; gap: 10px; }
.rp-hero-social a {
  width: 38px; height: 38px; display: grid; place-items: center;
  border-radius: 10px; background: rgba(255, 255, 255, .18);
  color: #fff; text-decoration: none;
}
.rp-hero-social a:hover { background: rgba(255, 255, 255, .32); }
.rp-hero h1 { margin: 0 0 8px; font-size: clamp(32px, 5vw, 48px); font-weight: 700; letter-spacing: -.02em; }
.rp-hero-address { margin: 0 0 26px; font-size: 15px; color: rgba(255, 255, 255, .85); }
.rp-hero-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.rp-btn {
  height: 46px; padding: 0 22px; border-radius: 12px; border: 0; cursor: pointer;
  font-size: 14px; font-weight: 700; text-decoration: none; display: inline-flex; align-items: center;
  transition: background .15s ease, transform .15s ease, opacity .15s ease;
}
.rp-btn-primary { background: var(--brand); color: #fff; }
.rp-btn-primary:hover { background: var(--brand-dark); }
/* Frostat glas mot herobilden: samma mått som primärknappen, men låter
   bilden skymta igenom i stället för att konkurrera med den. */
.rp-btn-ghost-light {
  color: #fff;
  background: rgba(255, 255, 255, .14);
  border: 1px solid rgba(255, 255, 255, .3);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.rp-btn-ghost-light:hover { background: rgba(255, 255, 255, .24); border-color: rgba(255, 255, 255, .45); }
.rp-btn-secondary { background: var(--surface); color: var(--ink); border: 1px solid var(--line); }
.rp-btn-secondary:hover { background: var(--brand-soft); }
.rp-btn:active { transform: translateY(1px); }

/* ---------- Generic section ---------- */
.rp-section { padding: 64px 0; }
.rp-section + .rp-section { border-top: 1px solid var(--line); }
.rp-eyebrow { margin: 0 0 8px; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--brand); }
.rp-section h2 { margin: 0 0 10px; font-size: 28px; font-weight: 700; letter-spacing: -.02em; }
.rp-section > .rp-container > p.rp-lede { margin: 0 0 28px; color: var(--muted); font-size: 15px; max-width: 560px; }

/* ---------- About ---------- */
.rp-tags { display: flex; gap: 8px; margin-bottom: 18px; flex-wrap: wrap; }
.rp-tag { padding: 7px 14px; border-radius: 999px; background: var(--brand-soft); color: var(--brand-dark); font-size: 12px; font-weight: 700; }
.rp-about p { max-width: 640px; font-size: 15px; line-height: 1.7; color: var(--ink); margin: 0 0 28px; }
.rp-about-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* ---------- Hours ---------- */
.rp-hours-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 28px; align-items: start; }
.rp-hours-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 28px 28px 8px; box-shadow: var(--shadow-card); }
.rp-hours-card h3 { margin: 0 0 6px; font-size: 16px; font-weight: 700; }
.rp-hours-row { display: flex; justify-content: space-between; padding: 14px 0; border-top: 1px solid var(--line); font-size: 14px; }
.rp-hours-row:first-of-type { border-top: none; margin-top: 10px; }
.rp-hours-row span:first-child { color: var(--ink); font-weight: 600; }
.rp-hours-row span:last-child { color: var(--muted); font-variant-numeric: tabular-nums; }
.rp-special { margin-top: 22px; padding-top: 18px; border-top: 1px dashed var(--line); }
.rp-special h4 { margin: 0 0 10px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.rp-special-row { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; font-size: 13px; }
.rp-special-row > span:last-child { color: var(--muted); white-space: nowrap; }
.rp-special-when { display: flex; flex-direction: column; gap: 2px; }
.rp-special-when strong { font-weight: 600; }
.rp-special-when em { font-style: normal; font-size: 12px; color: var(--tertiary); }
.rp-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.rp-gallery img { width: 100%; height: 176px; object-fit: cover; border-radius: var(--radius-md); }
.rp-gallery a:nth-child(4), .rp-gallery a:nth-child(5) { grid-column: span 1; }

/* ---------- Menu ---------- */
.rp-menu-frame { border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-card); background: var(--surface); }
.rp-menu-frame iframe { display: block; width: 100%; height: 720px; border: 0; }
.rp-menu-fallback { padding: 48px 24px; text-align: center; color: var(--muted); font-size: 14px; }
.rp-menu-fallback a { color: var(--brand); font-weight: 700; }

/* ---------- Menyembed ----------
   Höjden sätts av menyn själv via höjdmeddelandet, så ramen har ingen
   egen skrollist. min-height gäller bara medan den laddar. */
.rp-menu-tabs { display: flex; gap: 8px; margin-bottom: 18px; }
.rp-menu-tab {
  padding: 10px 18px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--muted);
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.rp-menu-tab:hover { color: var(--ink); border-color: var(--brand); }
.rp-menu-tab.active { background: var(--brand); border-color: var(--brand); color: #fff; }

.rp-menu-embed {
  position: relative;
  min-height: 420px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--surface);
  box-shadow: var(--shadow-card);
  transition: height .35s ease;
}
.rp-menu-embed-frame { display: block; width: 100%; height: 100%; border: 0; }
.rp-menu-embed.is-scrollable { height: 720px; }
.rp-menu-embed.is-loading .rp-menu-embed-frame { opacity: 0; }
.rp-menu-embed.is-loaded .rp-menu-embed-frame { opacity: 1; transition: opacity .25s ease; }

.rp-menu-embed-loader {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--muted);
  font-size: 14px;
  pointer-events: none;
  opacity: 0;
  transition: opacity .2s ease;
}
.rp-menu-embed.is-loading .rp-menu-embed-loader { opacity: 1; }
.rp-menu-embed.is-error .rp-menu-embed-loader { opacity: 1; }
.rp-menu-embed.is-error .rp-menu-embed-loader::after { content: "Menyn kunde inte hämtas just nu."; }
.rp-menu-embed.is-error .rp-menu-embed-loader { font-size: 0; }
.rp-menu-embed.is-error .rp-menu-embed-loader::after { font-size: 14px; }

@media (max-width: 520px) {
  .rp-menu-tabs { flex-wrap: wrap; }
  .rp-menu-embed { min-height: 320px; }
}

/* ---------- Reviews ---------- */
.rp-reviews-summary { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; padding: 28px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); margin-bottom: 28px; }
.rp-bar-row { display: grid; grid-template-columns: 14px 1fr; gap: 10px; align-items: center; font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.rp-bar-track { height: 8px; border-radius: 999px; background: var(--line); overflow: hidden; }
.rp-bar-fill { height: 100%; background: #f5b400; border-radius: 999px; }
.rp-rating-big { text-align: center; }
.rp-rating-big .rp-num { font-size: 42px; font-weight: 700; letter-spacing: -.03em; line-height: 1; }
.rp-stars { color: #f5b400; font-size: 17px; letter-spacing: 2px; margin: 8px 0 6px; }
.rp-rating-big .rp-count { font-size: 12px; color: var(--muted); }
.rp-review-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.rp-review-card { padding: 20px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); }
.rp-review-top { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.rp-avatar { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--brand-soft); color: var(--brand-dark); font-size: 12px; font-weight: 700; }
.rp-review-name { font-size: 13px; font-weight: 700; }
.rp-review-date { font-size: 11px; color: var(--tertiary); }
.rp-review-card .rp-stars { font-size: 13px; margin: 0 0 8px; }
.rp-review-text { margin: 0; font-size: 13px; color: var(--ink); line-height: 1.5; }
.rp-review-note { margin: 18px 0 0; font-size: 11px; color: var(--tertiary); }

/* ---------- Contact ---------- */
.rp-contact-grid { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; }
.rp-contact-list { display: grid; gap: 10px; font-size: 14px; }
.rp-contact-list a { text-decoration: none; color: var(--ink); font-weight: 600; }
.rp-contact-list a:hover { color: var(--brand); }
.rp-contact-actions { display: flex; gap: 10px; }

/* ---------- Map ---------- */
/* ---------- Karta ----------
   Lagren ligger i den ordning de ska staplas: kartan underst, sedan
   skölden som gör den orörlig, sedan nålen, och knappen överst. */
.rp-map {
  position: relative;
  height: 380px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  background: var(--canvas);
}

.rp-map-viewport { position: absolute; inset: 0; overflow: hidden; }

/* Dubbel storlek och centrerad: det som syns är mittenfjärdedelen, så
   Googles logga och villkorslänk hamnar utanför kanten. */
.rp-map-canvas {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 200%;
  height: 200%;
  transform: translate(-50%, -50%);
  border: 0;
  filter: grayscale(1);
  pointer-events: none;
}

/* Skölden fångar allt som annars hade nått kartan (och gör att klick var
   som helst på kartan, t.ex. på nålen, öppnar Google Maps). Den blockerar
   inte sidans egen skrollning, eftersom den saknar egen skrollyta. */
.rp-map-shield { position: absolute; inset: 0; z-index: 2; cursor: pointer; }

/* Spetsen står på punkten. De extra 8 pixlarna nedåt får nålen att landa
   exakt över Googles egen markör. */
.rp-map-pin {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  width: 52px;
  height: 52px;
  transform: translate(calc(-50% - 0.5px), calc(-100% + 7px));
  color: var(--brand);
  pointer-events: none;
  filter: drop-shadow(0 4px 8px rgba(20, 20, 15, .28));
}

.rp-map-button {
  position: absolute;
  right: 20px;
  bottom: 20px;
  z-index: 4;
  padding: 13px 22px;
  border-radius: 10px;
  background: var(--brand);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(20, 20, 15, .22);
  transition: background .15s ease, transform .15s ease;
}

.rp-map-button:hover { background: var(--brand-dark); transform: translateY(-1px); }
.rp-map-button:focus-visible { outline: 3px solid var(--brand-soft); outline-offset: 2px; }

/* ---------- Footer ---------- */
.rp-footer { padding: 48px 0 32px; border-top: 1px solid var(--line); }
.rp-footer-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-weight: 700; }
.rp-footer-brand img { width: 26px; height: 26px; }
.rp-footer p.rp-tagline { margin: 0 0 18px; color: var(--muted); font-size: 13px; }
.rp-footer-links { display: flex; gap: 18px; padding-bottom: 20px; border-bottom: 1px solid var(--line); margin-bottom: 16px; }
.rp-footer-links a { font-size: 13px; color: var(--muted); text-decoration: none; }
.rp-footer-links a:hover { color: var(--ink); }
.rp-copyright { font-size: 12px; color: var(--tertiary); }

/* ---------- Responsive ---------- */
@media (max-width: 860px) {
  .rp-hours-grid { grid-template-columns: 1fr; }
  .rp-gallery { grid-template-columns: repeat(2, 1fr); }
  .rp-review-grid { grid-template-columns: 1fr; }
  .rp-reviews-summary { grid-template-columns: 1fr; text-align: center; }
  .rp-contact-grid { grid-template-columns: 1fr; text-align: center; }
  .rp-contact-actions { justify-content: center; }
  .rp-hero-social { display: none; }
}

@media (max-width: 620px) {
  .rp-header { padding: 0 16px; }
  .rp-nav { display: none; }
  .rp-header-end { gap: 10px; }
  .rp-header-status { font-size: 12px; }
  .rp-container { padding: 0 16px; }
  .rp-hero { padding: 24px 16px 40px; min-height: 480px; }
  .rp-section { padding: 44px 0; }
  .rp-gallery { grid-template-columns: repeat(2, 1fr); }
  .rp-gallery img { height: 120px; }
  .rp-menu-frame iframe { height: 560px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ---------------------------------------------------------------------------
   Bokningswidget
   Samma mått och rörelse som på den nuvarande Webflow-sidan: panelen ligger
   fast nere till höger och åker upp underifrån, knappen åker ner.
   På mobil täcker panelen hela skärmen.
--------------------------------------------------------------------------- */

.r-booking-widget {
  position: fixed;
  inset: auto 20px 20px auto;
  z-index: 100;
  display: flex;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 430px;
  max-width: 430px;
  height: calc(100svh - 100px);
  min-height: 680px;
  overflow: hidden;
  background-color: #f2f2f2;
  border-radius: 32px;
  box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.2);
  transition: transform 0.5s ease-in-out;
}

.r-booking-widget.hidden { transform: translate(0, 100vh); }

.r-booking-frame {
  width: 100%;
  height: 100%;
  border: 0;
}

/* Krysset speglar språkflaggan i widgeten, som sitter i en 44x44-yta
   10px från sin kant och 10px från toppen med en 20x20 ikon i mitten.
   Samma mått här, fast i motsatt hörn, så de balanserar varandra. */
.r-booking-close {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 5;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: none;
  color: var(--ink);
  opacity: .7;
  cursor: pointer;
  transition: opacity 0.15s ease-in-out, transform 0.15s ease-in-out;
}

.r-booking-close:hover { opacity: 1; }
.r-booking-close:active { transform: scale(0.94); }

.r-booking-btn {
  position: fixed;
  inset: auto 20px 20px auto;
  z-index: 100;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 52px;
  height: 52px;
  color: #fff;
  background-color: var(--brand, #476b3a);
  border-radius: 100vw;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
  cursor: pointer;
  transition: transform 0.5s ease-in-out, box-shadow 0.2s ease-in-out;
}

.r-booking-btn:hover { box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28); }
.r-booking-btn.hidden { transform: translate(0, 300px); }

.r-booking-btn .icon {
  width: 22px;
  height: 22px;
  display: flex;
}

@media screen and (max-width: 479px) {
  .r-booking-widget {
    inset: 0 auto auto 0;
    width: 100vw;
    max-width: none;
    height: 100svh;
    min-height: auto;
    border-radius: 0;
  }

  /* Låser bakgrunden medan widgeten täcker skärmen */
  body.r-widget-open { overflow: hidden; }
}

@media (prefers-reduced-motion: reduce) {
  .r-booking-widget,
  .r-booking-btn { transition-duration: 0.01ms; }
}

@media (max-width: 520px) {
  .rp-map { height: 300px; }
  .rp-map-button { right: 14px; bottom: 14px; padding: 11px 16px; font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .rp-map-button { transition: none; }
  .rp-map-button:hover { transform: none; }
}
