/* ==========================================================================
   Ran Lanka — Premium layer (loaded last on every public page)
   --------------------------------------------------------------------------
   One rhythm for the whole site: the same section spacing, heading scale,
   container, card, form and table styles on every page, built on the
   "Ceylon Luxe" tokens (emerald / ivory / champagne gold, Cormorant + Jost).
   The home hero (.rl-vhero) is intentionally left untouched.
   ========================================================================== */

:root {
  --pr-section: clamp(88px, 9vw, 136px);   /* vertical padding of every section */
  --pr-section-sm: clamp(56px, 6vw, 88px);
  --pr-head: clamp(44px, 5vw, 72px);        /* space under a section heading   */
  --pr-gap: clamp(24px, 2.6vw, 36px);       /* grid gap                         */
  --pr-card-pad: clamp(24px, 2.6vw, 36px);  /* padding inside cards/panels      */
  --pr-hair: var(--lx-hair, rgba(26, 31, 28, .12));
  --pr-hair-gold: var(--lx-hair-gold, rgba(176, 141, 87, .38));
  --pr-emerald: var(--lx-emerald, #0F241D);
  --pr-ivory: var(--lx-ivory, #FAF7F1);
  --pr-cream: var(--lx-cream, #F3EDE2);
  --pr-gold: var(--lx-gold, #B08D57);
  --pr-gold-deep: var(--lx-gold-deep, #8C6A38);
  --pr-gold-light: var(--lx-gold-light, #D6BD8D);
}

/* ---------- Rhythm & type (identical on every page) ---------- */
.rl-container { width: min(1280px, 100% - 48px); margin-inline: auto; }
@media (max-width: 575px) { .rl-container { width: calc(100% - 32px); } }
.rl-section { padding-block: var(--pr-section); }
.rl-section--tight { padding-block: var(--pr-section-sm); }
.rl-section--cream { background: var(--pr-cream); }
.rl-head { margin-bottom: var(--pr-head); }

body.rl-body { font-family: var(--rl-font-body); font-size: 16.5px; font-weight: 350; line-height: 1.75; color: var(--rl-ink); background: var(--pr-ivory); }
body.rl-body h1, body.rl-body h2, body.rl-body h3, body.rl-body h4, body.rl-body h5, body.rl-body h6 {
  font-family: var(--rl-font-display); font-weight: 500; color: var(--rl-ink); letter-spacing: -.005em; line-height: 1.15;
}
body.rl-body p { color: var(--rl-ink-soft); }
body.rl-body a { text-decoration: none; }
.pr-h2 { font-size: clamp(32px, 3.6vw, 48px); margin: 0 0 22px; }
.pr-h2 em, .pr-h3 em { font-style: italic; font-weight: 400; color: var(--pr-gold-deep); }
.pr-h3 { font-size: clamp(24px, 2.2vw, 30px); margin: 0 0 14px; }
.pr-label { display: block; font-family: var(--rl-font-body); font-size: 10.5px; font-weight: 500; letter-spacing: .26em; text-transform: uppercase; color: var(--pr-gold-deep); }
html[dir="rtl"] .pr-label { letter-spacing: 0; font-size: 12.5px; }
.pr-muted { color: var(--rl-ink-soft); font-size: 14.5px; }

/* Rich text from the admin panel */
.pr-prose { font-size: 17px; line-height: 1.85; font-weight: 300; color: var(--rl-ink); }
.pr-prose p { color: var(--rl-ink); margin: 0 0 1.2em; }
.pr-prose h2, .pr-prose h3, .pr-prose h4 { margin: 1.6em 0 .6em; }
.pr-prose ul, .pr-prose ol { padding-inline-start: 1.2em; margin: 0 0 1.2em; }
.pr-prose li { margin-bottom: .4em; }
.pr-prose ul li::marker { color: var(--pr-gold); }
.pr-prose img { max-width: 100%; height: auto; }
.pr-prose a { color: var(--pr-gold-deep); border-bottom: 1px solid var(--pr-hair-gold); }
.pr-lede::first-letter {
  float: inline-start; font-family: var(--rl-font-display); font-size: 4.2em; line-height: .82;
  padding: 6px 14px 0 0; color: var(--pr-gold-deep); font-weight: 500;
}
html[dir="rtl"] .pr-lede::first-letter { float: none; font-size: inherit; padding: 0; }

/* ---------- Layout helpers ---------- */
.pr-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: clamp(40px, 6vw, 96px); align-items: start; }
.pr-split--wide { grid-template-columns: minmax(0, 1fr) minmax(320px, 440px); }
.pr-sticky { position: sticky; top: calc(var(--rl-header-h, 92px) + 24px); }
@media (max-width: 1099px) { .pr-split, .pr-split--wide { grid-template-columns: 1fr; } .pr-sticky { position: static; } }
.pr-grid { display: grid; gap: var(--pr-gap); }
.pr-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pr-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pr-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1099px) { .pr-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pr-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .pr-grid--2, .pr-grid--3, .pr-grid--4 { grid-template-columns: 1fr; } }
.pr-block + .pr-block { margin-top: clamp(56px, 6vw, 88px); }

/* ---------- Cards & panels ---------- */
.pr-card { background: #fff; box-shadow: inset 0 0 0 1px var(--pr-hair); padding: var(--pr-card-pad); }
.pr-card--gold { border-top: 2px solid var(--pr-gold); box-shadow: 0 40px 90px rgba(15, 36, 29, .10); background: var(--pr-ivory); }
.pr-panel { background: var(--pr-cream); padding: var(--pr-card-pad); }
.pr-panel--dark { background: var(--pr-emerald); color: var(--pr-ivory); }
.pr-panel--dark h2, .pr-panel--dark h3, .pr-panel--dark h4 { color: var(--pr-ivory) !important; }
.pr-panel--dark p { color: rgba(250, 247, 241, .72); }
.pr-panel--dark .pr-label { color: var(--pr-gold-light); }

/* Info list (icon + label + value) */
.pr-info { list-style: none; margin: 0; padding: 0; }
.pr-info li { display: grid; grid-template-columns: 36px 1fr; gap: 14px; align-items: start; padding: 16px 0; border-bottom: 1px solid var(--pr-hair); }
.pr-info li:first-child { padding-top: 0; }
.pr-info li:last-child { border-bottom: 0; padding-bottom: 0; }
.pr-info i { font-size: 18px; color: var(--pr-gold); line-height: 1.6; }
.pr-info strong { display: block; font-family: var(--rl-font-display); font-size: 20px; font-weight: 500; color: var(--rl-ink); line-height: 1.3; }
.pr-info a { color: inherit; }
.pr-info a:hover { color: var(--pr-gold-deep); }
.pr-panel--dark .pr-info li { border-color: rgba(214, 189, 141, .22); }
.pr-panel--dark .pr-info strong { color: var(--pr-ivory); }

/* Image cards (destinations, activities, gallery) */
.pr-media { display: block; color: var(--rl-ink); }
.pr-media__img { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: var(--lx-stone, #E6DDCD); }
.pr-media__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--rl-ease); }
.pr-media:hover .pr-media__img img { transform: scale(1.04); }
.pr-grid > .pr-media:nth-child(3n+2) .pr-media__img { border-radius: var(--lx-arch, 0); }
.pr-media__img .rl-pill { position: absolute; top: 14px; inset-inline-start: 14px; }
.pr-media__body { padding-top: 20px; }
.pr-media__body h3 { font-size: clamp(24px, 2vw, 28px); margin: 6px 0 8px; transition: color .4s; }
.pr-media:hover .pr-media__body h3 { color: var(--pr-gold-deep); }
.pr-media__body p { font-size: 15px; margin: 0 0 14px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pr-media--wide .pr-media__img { aspect-ratio: 4 / 3; }

/* Gallery grid */
.pr-gallery { columns: 3 280px; column-gap: 18px; }
.pr-gallery a { display: block; margin: 0 0 18px; overflow: hidden; break-inside: avoid; position: relative; background: var(--lx-stone, #E6DDCD); }
.pr-gallery img { width: 100%; height: auto; display: block; transition: transform 1.2s var(--rl-ease), opacity .4s; }
.pr-gallery a:hover img { transform: scale(1.03); opacity: .92; }
.pr-gallery a span { position: absolute; inset-inline: 0; bottom: 0; padding: 18px; color: var(--pr-ivory); font-family: var(--rl-font-display); font-size: 20px; background: linear-gradient(180deg, transparent, rgba(8, 20, 16, .65)); opacity: 0; transition: opacity .4s; }
.pr-gallery a:hover span { opacity: 1; }

/* ---------- Forms ---------- */
.pr-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 28px; }
.pr-form--1 { grid-template-columns: 1fr; }
.pr-form .is-full, .pr-form fieldset, .pr-form .pr-form__actions { grid-column: 1 / -1; }
@media (max-width: 640px) { .pr-form { grid-template-columns: 1fr; } }
.pr-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pr-field > label, .pr-field > .pr-field__label { font-size: 10.5px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; color: var(--pr-gold-deep); margin: 0; }
.pr-field > label .req { color: var(--pr-gold); }
html[dir="rtl"] .pr-field > label { letter-spacing: 0; font-size: 12.5px; }
.pr-input, .pr-field input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
.pr-field select, .pr-field textarea {
  width: 100%; border: 0; border-bottom: 1px solid rgba(26, 31, 28, .22); border-radius: 0; background: transparent;
  padding: 10px 0 12px; font-family: var(--rl-font-body); font-size: 16.5px; font-weight: 400; color: var(--rl-ink);
  outline: none; box-shadow: none; transition: border-color .4s var(--rl-ease);
}
.pr-field textarea { min-height: 130px; resize: vertical; line-height: 1.6; }
.pr-field select {
  appearance: none; -webkit-appearance: none; cursor: pointer; padding-inline-end: 22px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23B08D57' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 2px center; background-size: 11px;
}
html[dir="rtl"] .pr-field select { background-position: left 2px center; padding-inline: 22px 0; }
.pr-field input:focus, .pr-field select:focus, .pr-field textarea:focus { border-bottom-color: var(--pr-gold); }
.pr-field input::placeholder, .pr-field textarea::placeholder { color: rgba(94, 98, 93, .55); font-weight: 300; }
.pr-field input[type="file"] { font-size: 14px; padding: 12px; border: 1px dashed var(--pr-hair-gold); background: #fff; width: 100%; }
.pr-field small, .pr-help { font-size: 12.5px; color: var(--rl-ink-soft); }
.pr-field .pr-error, .pr-error { font-size: 12.5px; color: #A23B2A; }
.pr-field.has-error input, .pr-field.has-error select, .pr-field.has-error textarea { border-bottom-color: #A23B2A; }
.pr-checks { display: flex; flex-wrap: wrap; gap: 10px; }
.pr-check { position: relative; display: inline-flex; align-items: center; gap: 10px; cursor: pointer; margin: 0; }
.pr-check input { position: absolute; opacity: 0; pointer-events: none; }
.pr-check span {
  display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; font-size: 14px; color: var(--rl-ink);
  box-shadow: inset 0 0 0 1px var(--pr-hair); background: #fff; transition: all .3s var(--rl-ease);
}
.pr-check input:checked + span { background: var(--pr-emerald); color: var(--pr-ivory); box-shadow: none; }
.pr-check input:focus-visible + span { outline: 1px solid var(--pr-gold); outline-offset: 2px; }
.pr-check--line span { padding: 0; box-shadow: none; background: transparent; }
.pr-check--line span::before { content: ""; width: 18px; height: 18px; box-shadow: inset 0 0 0 1px rgba(26, 31, 28, .35); background: #fff; flex: none; }
.pr-check--line input:checked + span { background: transparent; color: var(--rl-ink); }
.pr-check--line input:checked + span::before { background: var(--pr-emerald); box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 5px var(--pr-emerald); }
.pr-form fieldset { border: 0; margin: 0; padding: 0; }
.pr-form legend { font-family: var(--rl-font-display); font-size: 24px; font-weight: 500; color: var(--rl-ink); margin: 6px 0 4px; padding: 0; float: none; width: auto; }
.pr-form__sep { grid-column: 1 / -1; height: 1px; background: var(--pr-hair); margin: 6px 0; }
.pr-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; padding-top: 8px; }
.pr-form__actions .pr-help { max-width: 460px; }

/* Buttons used outside the rl-btn family */
.pr-btn-block { width: 100%; justify-content: center; }
button.rl-btn { border: 0; cursor: pointer; }

/* ---------- Alerts ---------- */
.pr-alert { display: flex; gap: 14px; align-items: flex-start; padding: 18px 22px; margin-bottom: 26px; background: #fff; box-shadow: inset 2px 0 0 var(--pr-gold), inset 0 0 0 1px var(--pr-hair); font-size: 15px; color: var(--rl-ink); }
.pr-alert i { color: var(--pr-gold); font-size: 18px; line-height: 1.4; }
.pr-alert--error { box-shadow: inset 2px 0 0 #A23B2A, inset 0 0 0 1px var(--pr-hair); }
.pr-alert--error i { color: #A23B2A; }
.pr-alert ul { margin: 6px 0 0; padding-inline-start: 18px; }

/* ---------- Tables (cart, orders) ---------- */
.pr-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.pr-table th { font-size: 10.5px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--pr-gold-deep); text-align: start; padding: 0 14px 14px; border-bottom: 1px solid var(--pr-hair-gold); }
.pr-table td { padding: 20px 14px; border-bottom: 1px solid var(--pr-hair); vertical-align: middle; color: var(--rl-ink); }
.pr-table th:first-child, .pr-table td:first-child { padding-inline-start: 0; }
.pr-table th:last-child, .pr-table td:last-child { padding-inline-end: 0; text-align: end; }
.pr-table .pr-strong { font-family: var(--rl-font-display); font-size: 20px; font-weight: 500; }
.pr-table img { width: 88px; height: 66px; object-fit: cover; }
@media (max-width: 767px) {
  .pr-table--stack thead { display: none; }
  .pr-table--stack tr { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 14px; padding: 18px 0; border-bottom: 1px solid var(--pr-hair); }
  .pr-table--stack td { border: 0; padding: 0 !important; text-align: start !important; }
  .pr-table--stack td[data-label]::before { content: attr(data-label); display: block; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--pr-gold-deep); margin-bottom: 4px; }
  .pr-table--stack td.is-full { grid-column: 1 / -1; }
}
.pr-badge { display: inline-block; padding: 5px 10px; font-size: 10.5px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; box-shadow: inset 0 0 0 1px var(--pr-hair-gold); color: var(--pr-gold-deep); background: #fff; }
.pr-badge--ok { background: var(--pr-emerald); color: var(--pr-gold-light); box-shadow: none; }
.pr-badge--warn { background: #F6EBDD; color: #8C5A1E; box-shadow: none; }
.pr-badge--bad { background: #F5E2DD; color: #8F2F1F; box-shadow: none; }

/* Totals list */
.pr-totals { list-style: none; margin: 0; padding: 0; }
.pr-totals li { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; border-bottom: 1px solid var(--pr-hair); font-size: 15px; }
.pr-totals li strong { font-family: var(--rl-font-display); font-size: 20px; font-weight: 500; color: var(--rl-ink); }
.pr-totals li.is-total { border-bottom: 0; padding-top: 18px; }
.pr-totals li.is-total > span { font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--pr-gold-deep); align-self: center; }
.pr-totals li.is-total strong { font-size: 34px; color: var(--pr-emerald); }

/* ---------- Steps (how it works) ---------- */
.pr-steps { counter-reset: s; display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); border-top: 1px solid var(--pr-hair); }
.pr-steps > div { counter-increment: s; padding: 30px 30px 0 0; }
.pr-steps > div + div { padding-inline-start: 30px; border-inline-start: 1px solid var(--pr-hair); }
.pr-steps > div::before { content: "0" counter(s); display: block; font-family: var(--rl-font-display); font-size: 40px; color: var(--pr-gold); line-height: 1; margin-bottom: 18px; }
.pr-steps h3 { font-size: 24px; margin: 0 0 8px; }
.pr-steps p { font-size: 15px; margin: 0; }
@media (max-width: 767px) { .pr-steps { grid-template-columns: 1fr; } .pr-steps > div, .pr-steps > div + div { padding: 26px 0 0; border-inline-start: 0; } }

/* ---------- Auth & account ---------- */
.pr-auth { display: grid; grid-template-columns: 1fr 1fr; min-height: calc(100vh - var(--rl-header-h, 92px)); }
.pr-auth__media { position: relative; overflow: hidden; background: var(--pr-emerald); }
.pr-auth__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .82; }
.pr-auth__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 20, 16, .1), rgba(8, 20, 16, .7)); }
.pr-auth__quote { position: absolute; z-index: 1; inset-inline: clamp(28px, 4vw, 64px); bottom: clamp(28px, 4vw, 64px); color: var(--pr-ivory); }
.pr-auth__quote h2 { color: var(--pr-ivory) !important; font-size: clamp(32px, 3.4vw, 48px); margin: 12px 0 0; }
.pr-auth__quote .pr-label { color: var(--pr-gold-light); }
.pr-auth__form { display: flex; align-items: center; justify-content: center; padding: clamp(48px, 6vw, 96px) clamp(24px, 5vw, 80px); }
.pr-auth__form > div { width: min(460px, 100%); }
.pr-auth__form h1 { font-size: clamp(38px, 4vw, 56px); margin: 10px 0 12px; }
.pr-auth__alt { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--pr-hair); font-size: 14.5px; }
@media (max-width: 991px) { .pr-auth { grid-template-columns: 1fr; } .pr-auth__media { min-height: 260px; } }

.pr-account { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
@media (max-width: 991px) { .pr-account { grid-template-columns: 1fr; } }
.pr-account__nav { position: sticky; top: calc(var(--rl-header-h, 92px) + 24px); }
.pr-account__nav .pr-user { display: flex; align-items: center; gap: 14px; padding-bottom: 22px; margin-bottom: 10px; border-bottom: 1px solid var(--pr-hair); }
.pr-account__nav .pr-user b { width: 52px; height: 52px; display: grid; place-items: center; background: var(--pr-emerald); color: var(--pr-gold-light); font-family: var(--rl-font-display); font-size: 22px; font-weight: 500; }
.pr-account__nav .pr-user strong { display: block; font-family: var(--rl-font-display); font-size: 20px; font-weight: 500; line-height: 1.2; }
.pr-account__nav .pr-user small { color: var(--rl-ink-soft); font-size: 13px; word-break: break-all; }
.pr-account__nav ul { list-style: none; margin: 0; padding: 0; }
.pr-account__nav a { display: flex; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--pr-hair); color: var(--rl-ink); font-size: 15px; transition: color .3s, padding .4s var(--rl-ease); }
.pr-account__nav a i { color: var(--pr-gold); }
.pr-account__nav a:hover, .pr-account__nav a.is-active { color: var(--pr-gold-deep); padding-inline-start: 8px; }
@media (max-width: 991px) { .pr-account__nav { position: static; } .pr-account__nav ul { display: flex; flex-wrap: wrap; gap: 0 22px; } .pr-account__nav a { border: 0; padding: 8px 0; } }

.pr-stat { padding: var(--pr-card-pad); background: #fff; box-shadow: inset 0 0 0 1px var(--pr-hair); }
.pr-stat strong { display: block; font-family: var(--rl-font-display); font-size: 44px; font-weight: 500; color: var(--pr-emerald); line-height: 1; margin-top: 10px; }

/* ---------- Status pages (thank you / cancelled) ---------- */
.pr-status { text-align: center; max-width: 720px; margin: 0 auto; }
.pr-status__icon { width: 92px; height: 92px; margin: 0 auto 28px; display: grid; place-items: center; box-shadow: 0 0 0 1px var(--pr-hair-gold); border-radius: 50%; color: var(--pr-gold); font-size: 36px; background: #fff; }
.pr-status h1 { font-size: clamp(40px, 5vw, 64px); margin: 12px 0 18px; }
.pr-status .d-flex { justify-content: center; gap: 14px; }

/* ---------- CTA band ---------- */
.pr-cta { display: grid; grid-template-columns: 1.2fr .8fr; gap: 30px 60px; align-items: center; padding: clamp(40px, 5vw, 72px); background: var(--pr-emerald); position: relative; overflow: hidden; }
.pr-cta::before { content: ""; position: absolute; width: 640px; height: 640px; border-radius: 50%; top: -320px; inset-inline-end: -200px; background: radial-gradient(circle, rgba(176, 141, 87, .2), transparent 65%); }
.pr-cta h2 { color: var(--pr-ivory) !important; font-size: clamp(32px, 3.4vw, 48px); margin: 12px 0 10px; }
.pr-cta p { color: rgba(250, 247, 241, .72); margin: 0; }
.pr-cta .pr-label { color: var(--pr-gold-light); }
.pr-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; position: relative; }
.pr-cta .rl-btn { background: var(--pr-gold); }
.pr-cta .rl-btn::before { background: var(--pr-ivory); }
.pr-cta .rl-btn:hover { color: var(--pr-emerald) !important; }
.pr-cta .rl-btn--ghost { background: transparent; box-shadow: inset 0 0 0 1px rgba(250, 247, 241, .5); color: var(--pr-ivory) !important; }
@media (max-width: 991px) { .pr-cta { grid-template-columns: 1fr; } .pr-cta__actions { justify-content: flex-start; } }

/* Pager reused from the tour list */
nav.pr-pager ul.pagination { display: flex; gap: 6px; justify-content: center; list-style: none; padding: 0; margin: clamp(56px, 6vw, 88px) 0 0; }
nav.pr-pager .page-link { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; height: 46px; padding: 0 12px; border: 0; border-radius: 0 !important; box-shadow: inset 0 0 0 1px var(--pr-hair); background: transparent; color: var(--rl-ink); font-family: var(--rl-font-display); font-size: 19px; }
nav.pr-pager .page-item.active .page-link { background: var(--pr-emerald); color: var(--pr-ivory); box-shadow: none; }
nav.pr-pager .page-item.disabled .page-link { opacity: .35; }
nav.pr-pager p.small { display: none; }
nav.pr-pager > div:first-child { display: none !important; }
nav.pr-pager .d-sm-flex { display: flex !important; justify-content: center; }

/* Service-page intro (copy + arched photo) */
.pr-intro { align-items: center; }
.pr-intro__media { position: relative; aspect-ratio: .86; max-width: 520px; width: 100%; justify-self: end; }
.pr-intro__media img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--lx-arch, 0); }
.pr-intro__media::after { content: ""; position: absolute; inset: 18px -18px -18px 18px; border: 1px solid var(--pr-hair-gold); border-radius: var(--lx-arch, 0); z-index: -1; }
html[dir="rtl"] .pr-intro__media::after { inset: 18px 18px -18px -18px; }
@media (max-width: 991px) { .pr-intro__media { justify-self: start; max-width: 420px; } }

/* Form section card */
.pr-formwrap { scroll-margin-top: calc(var(--rl-header-h, 92px) + 20px); }
.pr-formwrap .pr-card { padding: clamp(28px, 4vw, 56px); }
.pr-formwrap .pr-form + .pr-form { margin-top: 40px; }
.pr-step-title { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--pr-hair); margin-top: 10px; }
.pr-step-title b { font-family: var(--rl-font-display); font-size: 30px; font-weight: 500; color: var(--pr-gold); line-height: 1; }
.pr-step-title span { font-family: var(--rl-font-display); font-size: 24px; color: var(--rl-ink); }
.pr-form--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 991px) { .pr-form--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .pr-form--3 { grid-template-columns: 1fr; } }

/* Repeating itinerary rows (tailor-made) */
.pr-rows { grid-column: 1 / -1; display: grid; gap: 14px; }
.pr-row { position: relative; display: grid; grid-template-columns: 80px 1fr 1.4fr 110px 40px; gap: 18px 22px; align-items: end; padding: 18px 20px; background: var(--pr-ivory); box-shadow: inset 0 0 0 1px var(--pr-hair); }
.pr-row__n { font-family: var(--rl-font-display); font-size: 26px; color: var(--pr-gold-deep); line-height: 1; align-self: center; }
.pr-row__n small { display: block; font-family: var(--rl-font-body); font-size: 9.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--rl-ink-soft); }
.pr-row__del { border: 0; background: transparent; color: var(--rl-ink-soft); font-size: 18px; align-self: center; cursor: pointer; }
.pr-row__del:hover { color: #A23B2A; }
.pr-row:first-child .pr-row__del { visibility: hidden; }
@media (max-width: 767px) { .pr-row { grid-template-columns: 1fr 1fr; } .pr-row__n { grid-column: 1 / -1; } .pr-row__del { position: absolute; top: 14px; inset-inline-end: 14px; } }
.pr-add { grid-column: 1 / -1; justify-self: start; border: 0; background: transparent; padding: 6px 0; color: var(--rl-ink); font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; border-bottom: 1px solid var(--pr-gold); cursor: pointer; }
.pr-add:hover { color: var(--pr-gold-deep); }

/* Choice tiles (visa service type, hotel style) */
.pr-tiles { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 14px; }
@media (max-width: 767px) { .pr-tiles { grid-template-columns: 1fr; } }
.pr-tile { position: relative; margin: 0; cursor: pointer; }
.pr-tile input { position: absolute; opacity: 0; pointer-events: none; }
.pr-tile span { display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 24px; background: #fff; box-shadow: inset 0 0 0 1px var(--pr-hair); transition: all .4s var(--rl-ease); }
.pr-tile i { font-size: 24px; color: var(--pr-gold); }
.pr-tile strong { font-family: var(--rl-font-display); font-size: 22px; font-weight: 500; color: var(--rl-ink); }
.pr-tile small { font-size: 13.5px; color: var(--rl-ink-soft); }
.pr-tile input:checked + span { background: var(--pr-emerald); box-shadow: none; }
.pr-tile input:checked + span strong { color: var(--pr-ivory); }
.pr-tile input:checked + span small { color: rgba(250, 247, 241, .7); }
.pr-tile input:checked + span i { color: var(--pr-gold-light); }
.pr-tile input:focus-visible + span { outline: 1px solid var(--pr-gold); outline-offset: 3px; }

/* Stay-style photo cards (hotel / tailor-made) */
.pr-stays { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pr-gap); }
@media (max-width: 991px) { .pr-stays { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .pr-stays { grid-template-columns: 1fr; } }
.pr-form [hidden] { display: none !important; }

/* Quantity stepper (checkout summary) */
.pr-qty { display: inline-flex; align-items: stretch; margin-top: 6px; box-shadow: inset 0 0 0 1px var(--pr-hair); background: #fff; }
.pr-qty button { width: 34px; height: 36px; border: 0; background: transparent; color: var(--pr-emerald); font-size: 15px; display: grid; place-items: center; transition: background .3s, color .3s; }
.pr-qty button:hover { background: var(--pr-emerald); color: var(--pr-gold-light); }
.pr-qty input { width: 40px; border: 0; text-align: center; font-family: var(--rl-font-body); font-size: 15px; background: transparent; color: var(--rl-ink); }
.pr-qty input:focus { outline: none; }
.pr-auth__form .pr-form { grid-template-columns: 1fr; }
.pr-auth__form .pr-field + .pr-field { margin-top: 0; }
.pr-auth__links { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 14px; }
.pr-auth__links a, .pr-auth__alt a { color: var(--pr-gold-deep); border-bottom: 1px solid transparent; transition: border-color .3s; }
.pr-auth__links a:hover, .pr-auth__alt a:hover { border-color: currentColor; }
.pr-steps--days { list-style: none; padding: 0; margin: 28px 0 0; display: block; border-top: 0; }
.pr-steps--days li { position: relative; padding: 0 0 30px; padding-inline-start: 34px; border-inline-start: 1px solid var(--pr-hair-gold); margin-inline-start: 6px; }
.pr-steps--days li:last-child { padding-bottom: 0; }
.pr-steps--days li::before { content: ""; position: absolute; inset-inline-start: -6px; top: 4px; width: 11px; height: 11px; border-radius: 50%; background: var(--pr-gold); box-shadow: 0 0 0 5px var(--pr-ivory); }
.pr-steps--days h3 { font-size: 24px; margin: 6px 0 8px; }
.pr-steps--days p { margin: 0 0 8px; color: var(--rl-ink-soft); }
.rl-checks--x i { color: #9a6b5b !important; }
.pr-map iframe { width: 100% !important; height: 380px; border: 0; display: block; }

/* Footer: headings on the dark band must stay light */
.rl-footer h1, .rl-footer h2, .rl-footer h3, .rl-footer h4, .rl-footer h5, .rl-footer h6 { color: var(--lx-ivory, #FAF7F1); }
.rl-footer__cta h3 { color: var(--lx-ivory, #FAF7F1) !important; }

/* Auth: link row */
.pr-form .pr-field.pr-auth__links { display: flex; flex-direction: row; justify-content: space-between; align-items: center; }
.pr-auth + * { margin-top: 0; }
.rl-footer { margin-top: 0; }
.pr-totals li.is-total strong span { font: inherit; letter-spacing: 0; text-transform: none; color: inherit; }
.pr-sumitem { display: grid; grid-template-columns: 84px 1fr auto; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--pr-hair); }
.pr-sumitem img { width: 84px; height: 84px; object-fit: cover; }
.pr-sumitem strong { font-family: var(--rl-font-display); font-size: 20px; font-weight: 500; line-height: 1.2; display: block; }
.pr-sumitem .pr-row__del { align-self: start; }
.pr-sumitem__qty { grid-column: 1 / -1; display: flex; gap: 28px; }
.pr-ordertour { display: flex; align-items: center; gap: 14px; text-align: start; }
.pr-ordertour img { width: 64px; height: 64px; object-fit: cover; flex: none; }
.pr-ordertour strong { font-family: var(--rl-font-display); font-size: 19px; font-weight: 500; line-height: 1.2; display: block; }
.pr-panel--dark p, .rl-section .pr-panel--dark p { color: rgba(250, 247, 241, .78) !important; }
.pr-headrow { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.pr-headrow .pr-h3 { margin: 0; }
.pr-btn-block { width: 100%; max-width: 100%; box-sizing: border-box; justify-content: center; }
.pr-sticky > * + * { margin-top: 24px; }
.rl-footer__cta p, .rl-footer__brand p { color: rgba(250, 247, 241, .74) !important; }
@media (max-width: 767px) {
  .rl-footer__cta { grid-template-columns: 1fr !important; gap: 28px; }
  .rl-footer__cta h3 { max-width: none; }
  .pr-grid--3 > .pr-stat { padding: 18px 20px; }
  .pr-stat strong { font-size: 34px; }
}

/* ==========================================================================
   Square imagery everywhere (no arches, blobs or rounded photo frames).
   The home video hero (.rl-vhero) has no shaped imagery and is untouched.
   ========================================================================== */
:root {
  --lx-arch: 0;
  --rl-blob-a: 0; --rl-blob-b: 0; --rl-blob-c: 0;
}
.rl-blob, .rl-blob--morph, .rl-banner__media .rl-blob, .rl-banner__media::after,
.rl-about-hero__media .rl-blob--main, .rl-collage__a, .rl-collage__b, .rl-collage::after,
.rl-tour__img, .rl-tour:nth-child(n) .rl-tour__img,
.rl-cat__img, .rl-cat:nth-child(n) .rl-cat__img,
.rl-fcard__img, .rl-fcard:nth-child(n) .rl-fcard__img,
.rl-dest__img, .rl-spot__img, .rl-ceo__frame, .rl-service__strip .rl-blob,
.rl-empty__img, .rl-minidest__img, .rl-minidest:nth-child(n) .rl-minidest__img,
.pr-media__img, .pr-grid > .pr-media:nth-child(n) .pr-media__img,
.pr-intro__media, .pr-intro__media img, .pr-auth__media, .pr-gallery a, .pr-gallery img,
.rl-quote, .rl-quote:nth-child(n) {
  border-radius: 0 !important;
}
.rl-blob--morph { animation: none !important; }
.rl-tour:nth-child(n) .rl-tour__img img, .rl-cat__img img, .rl-fcard__img img, .pr-media__img img { border-radius: 0 !important; }
/* Badges always sit top-left, same on every card */
.rl-tour:nth-child(n) .rl-tour__img .rl-pill,
.rl-tour:nth-child(n) .rl-tour__img .rl-tour__flag { top: 14px; bottom: auto; }
.rl-mv__mission h3, .rl-mv__mission h2 { color: var(--lx-ivory, #FAF7F1) !important; }
.rl-mv__mission p { color: rgba(250, 247, 241, .78) !important; }
