/* ==========================================================================
   Albania eVisa - Redesign Common Layout (css/redesign-common.css)

   Loaded on the redesigned detail pages AFTER style.min.css, modern.css and
   image-custom.css, so its rules win the cascade.

   Introduces a genuinely new page structure:
      - full-bleed deep-teal hero band (dot texture, breadcrumb pill,
        centered title)
      - simple, clean content sections on the canvas background
      - page-specific components: stat cards, media/text splits, doc cards,
       vertical process timeline, bento places grid, restyled tables,
       eligibility board, entry-type cards, horizontal diamond stepper,
       payment grid, extension callout, card-style FAQ

   Presentation only - no markup ids, names, JS hooks or text are affected.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Hero band
   -------------------------------------------------------------------------- */

.rs-hero {
  position: relative;
  color: #fff;
  background:
    radial-gradient(rgba(255, 255, 255, .13) 1px, transparent 1.6px) 0 0 / 22px 22px,
    linear-gradient(135deg, var(--alb-primary-deep) 0%, var(--alb-primary-dark) 52%, var(--alb-primary) 100%);
  padding: 30px 0 44px;
}

.rs-hero > .container {
  position: relative;
  z-index: 1;
}

/* breadcrumb - translucent pill inside the hero */
.rs-hero .breadcrumb {
  margin-bottom: 0;
}

.rs-hero .breadcrumb ul {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  list-style: none;
  margin: 0 0 22px;
  padding: 7px 16px;
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;
}

.rs-hero .breadcrumb-item {
  color: rgba(255, 255, 255, .88) !important;
  border-radius: 0;
}

.rs-hero .breadcrumb-item + .breadcrumb-item::before {
  content: "/";
  color: rgba(255, 255, 255, .55);
  padding: 0 7px;
}

.rs-hero .breadcrumb-item i.fa {
  color: rgba(255, 255, 255, .88);
}

/* hero title */
.rs-hero__title {
  color: #fff !important;
  text-align: center;
  margin: 0;
  padding: 0 12px;
}

/* --------------------------------------------------------------------------
   2. Content sheet + sections (simple, no card wrappers)
   -------------------------------------------------------------------------- */

.rs-main {
  position: relative;
  z-index: 1;
  padding-bottom: 46px;
}

.rs-sheet {
  padding: 8px 4px 0;
  margin-bottom: 34px;
}

.rs-sheet p:last-child {
  margin-bottom: 0;
}

/* intro media (official page) */
.rs-sheet .img-design {
  border: none;
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-md);
  width: 100%;
  max-width: none;
  margin: 0;
}

.rs-sec {
  padding: 8px 4px;
  margin-bottom: 34px;
}

.rs-sec__title {
  margin: 0 0 18px;
}

/* --------------------------------------------------------------------------
   3. Quick eVisa details - stat cards (tourism)
   -------------------------------------------------------------------------- */

.rs-stats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.rs-stats li {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  padding: 18px 20px;
}

.rs-stats strong {
  display: block;
  margin-bottom: 4px;
  color: var(--alb-primary-deep);
}

@media (max-width: 575.98px) {
  .rs-stats {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   4. Media + text split sections
   -------------------------------------------------------------------------- */

.rs-split {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 36px;
  align-items: center;
}

.rs-split .wrapped-image {
  float: none;
  width: 100%;
  max-width: none;
  margin: 0;
}

.rs-split .img-design {
  border: none;
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-md);
  width: 100%;
  max-width: none;
  margin: 0;
}

@media (max-width: 991.98px) {
  .rs-split {
    grid-template-columns: 1fr;
    gap: 22px;
  }
}

/* --------------------------------------------------------------------------
   5. Document cards (tourism)
   -------------------------------------------------------------------------- */

.rs-docs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 18px 0;
}

.rs-doc__card {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  padding: 20px 22px;
}

.rs-doc__card h3 {
  margin: 0 0 8px;
}

@media (max-width: 575.98px) {
  .rs-docs {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   6. Process step cards (tourism)
   -------------------------------------------------------------------------- */

/* tourism - journey card row: upright white cards on a wrapping flex
   line, teal top accent, icon square top-left, ghost step number top-right */
.rs-page--tourism .rs-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin: 22px 0 4px;
  counter-reset: rs-tour-step;
}

/* base step card - shared surface chrome */
.rs-step-card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  padding: 18px 20px;
}

.rs-page--tourism .rs-step-card {
  position: relative;
  flex: 1 1 190px;
  display: flex;
  flex-direction: column;
  padding: 18px 18px 20px;
  border-top: 3px solid var(--alb-primary);
}

/* ghost step number, top-right corner of the card */
.rs-page--tourism .rs-step-card::after {
  counter-increment: rs-tour-step;
  content: counter(rs-tour-step);
  position: absolute;
  top: 8px;
  right: 14px;
  font-size: 38px;
  font-weight: 800;
  line-height: 1;
  color: rgba(29, 123, 149, 0.12);
  pointer-events: none;
}

.rs-page--tourism .rs-step-card .rs-step-card__icon {
  align-self: flex-start;
  width: 44px;
  height: 44px;
  margin: 0 0 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: 10px;
  color: var(--alb-primary-dark);
}

.rs-page--tourism .rs-step-card__icon i {
  font-size: 20px;
  line-height: 1;
}

.rs-page--tourism .rs-step-card h3 {
  margin: 0 0 6px;
}

.rs-page--tourism .rs-step-card p {
  margin: 0;
  line-height: 1.6;
}

@media (max-width: 767.98px) {
  .rs-page--tourism .rs-step-card {
    flex-basis: calc(50% - 8px);
  }
}

@media (max-width: 575.98px) {
  .rs-page--tourism .rs-step-card {
    flex-basis: 100%;
  }
}

/* --------------------------------------------------------------------------
   7. Restyled data tables
   -------------------------------------------------------------------------- */

.rs-table__wrap {
  border: 1px solid var(--alb-line);
  border-radius: var(--alb-radius);
  overflow: hidden;
  background: var(--alb-surface);
}

.rs-table {
  width: 100%;
  border-collapse: collapse;
}

.rs-table td {
  padding: 14px 18px;
  border-top: 1px solid var(--alb-line-soft);
  vertical-align: top;
  background: var(--alb-surface);
}

.rs-table tr:first-child td {
  background: var(--alb-primary-deep);
  border-top: none;
}

.rs-table tr:first-child p {
  color: #fff;
}

.rs-table tbody tr:nth-child(even) td {
  background: var(--alb-canvas);
}

/* tourism table cells carried `p { margin: 0 }` inline - kept flush */
.rs-table--flush p {
  margin: 0;
}

/* --------------------------------------------------------------------------
   8. Places bento grid (tourism)
   -------------------------------------------------------------------------- */

.rs-places {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 22px;
}

.rs-place {
  display: flex;
  flex-direction: column;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  overflow: hidden;
  box-shadow: var(--alb-shadow-xs);
}

.rs-place picture {
  height: 180px;
  flex: 0 0 auto;
}

.rs-place picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.rs-place__body {
  padding: 16px 18px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.rs-place__body h3 {
  margin: 0;
}

.rs-place__body p {
  margin: 0;
}

.rs-place--feature {
  grid-column: span 2;
}

.rs-place--feature picture {
  height: 250px;
}

@media (max-width: 991.98px) {
  .rs-places {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rs-place--feature {
    grid-column: span 2;
  }

  .rs-place--feature picture {
    height: 220px;
  }
}

@media (max-width: 575.98px) {
  .rs-places {
    grid-template-columns: 1fr;
  }

  .rs-place--feature {
    grid-column: auto;
  }

  .rs-place--feature picture {
    height: 200px;
  }
}

/* --------------------------------------------------------------------------
   9. Eligibility board (official)
   -------------------------------------------------------------------------- */

.rs-elig {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.rs-elig__card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  padding: 18px 20px;
}

.rs-elig__icon {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(29, 123, 149, .12);
  color: var(--alb-primary-dark);
  border-radius: 50%;
}

.rs-elig__icon i {
  font-size: 15px;
  line-height: 1;
}

.rs-elig__card p {
  margin: 0;
}

@media (max-width: 575.98px) {
  .rs-elig {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   10. Entry type cards (official)
   -------------------------------------------------------------------------- */

.rs-entries {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 4px;
}

.rs-entry {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  padding: 20px 22px;
}

.rs-entry h3 {
  margin: 0 0 12px;
}

.rs-entry ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rs-entry li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 10px;
}

.rs-entry li:last-child {
  margin-bottom: 0;
}

.rs-entry li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: .55em;
  width: 8px;
  height: 8px;
  background: var(--alb-accent);
  transform: rotate(45deg);
}

@media (max-width: 575.98px) {
  .rs-entries {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   11. Process step blocks + processing option cards (official)
   -------------------------------------------------------------------------- */

.rs-page--official .rs-steps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 22px 0 4px;
}

/* 2x2 "Step N:" canvas cards with a teal left keyline */
.rs-step-card--block {
  background: var(--alb-canvas);
  border-left: 4px solid var(--alb-primary);
  padding: 18px 20px;
}

.rs-step-card--block .rs-step-card__label {
  margin: 0 0 8px;
  color: var(--alb-primary-dark);
}

/* the live step copy rendered at 16px / 1.6 - preserved */
.rs-step-card--block p {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: rgb(18 17 17 / .95);
}

/* processing options - option cards instead of a table */
.rs-proc {
  margin: 22px 0 4px;
}

.rs-proc__head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 10px;
}

.rs-proc__head p {
  margin: 0;
}

.rs-proc__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.rs-proc__card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  padding: 18px 20px;
}

.rs-proc__name {
  margin: 0 0 8px;
}

.rs-proc__time {
  margin: 0;
  color: var(--alb-muted);
}

@media (max-width: 991.98px) {
  .rs-page--official .rs-steps {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .rs-proc__grid {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   12. Payment methods grid (official)
   -------------------------------------------------------------------------- */

.rs-pay {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.rs-pay li {
  position: relative;
  margin: 0;
  padding: 16px 16px 16px 42px;
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
}

.rs-pay li::before {
  content: "\2713";
  position: absolute;
  left: 15px;
  top: 12px;
  color: var(--alb-primary-dark);
  font-weight: 700;
}

@media (max-width: 575.98px) {
  .rs-pay {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   13. Extension callout (official)
   -------------------------------------------------------------------------- */

.rs-callout {
  background: linear-gradient(135deg, var(--alb-primary-deep) 0%, var(--alb-primary-dark) 100%);
  border-radius: var(--alb-radius);
  padding: 24px 28px;
}

.rs-callout p {
  margin: 0;
  color: #eaf4f7;
}

/* --------------------------------------------------------------------------
   14. FAQ cards (both pages)
   -------------------------------------------------------------------------- */

.rs-faq {
  margin-top: 20px;
  border: 1px solid var(--alb-line);
  border-radius: var(--alb-radius);
  overflow: hidden;
  background: var(--alb-surface);
}

.rs-faq__item {
  padding-bottom: 14px;
}

.rs-faq__item + .rs-faq__item {
  border-top: 1px solid var(--alb-line-soft);
}

.rs-faq .accordion_t {
  padding: 16px 20px;
  border-bottom: none;
}

.rs-faq .panel_t {
  background: var(--alb-surface) !important;
  padding: 0 20px 2px;
  margin: 0;
}

.rs-faq .panel_t p {
  margin-bottom: 0;
}

/* ONE unified FAQ style for every page - plain list, hairline dividers,
   transparent rows, 18px questions / 24px toggle. Applied via the
   rs-faq--simple class; no per-page overrides exist. */
.rs-faq--simple {
  margin-top: 4px;
  border: none;
  border-radius: 0;
  overflow: visible;
  background: none;
}

.rs-faq--simple .rs-faq__item {
  padding-bottom: 0;
}

.rs-faq--simple .rs-faq__item + .rs-faq__item {
  border-top: 1px solid var(--alb-line-soft);
}

.rs-faq--simple .accordion_t {
  background: transparent !important;
  padding: 18px 44px 18px 2px;
  border-bottom: none;
  font-size: 18px;
}

.rs-faq--simple .accordion_t:after {
  font-size: 24px;
}

.rs-faq--simple .active_t {
  background: transparent !important;
}

.rs-faq--simple .panel_t {
  background: transparent !important;
  padding: 0 2px 18px;
  max-height: 0;
  overflow: hidden;
  transition: max-height .3s ease-out;
}

/* Closed panels (no inline max-height set by the toggle script) collapse
   to true zero height, so no answer text can bleed under the question.
   Opened panels keep their inline max-height, which wins over this rule. */
.rs-faq--simple .panel_t:not([style]) {
  padding-bottom: 0;
}

/* --------------------------------------------------------------------------
   15. Content disclaimer note (tourism)
   -------------------------------------------------------------------------- */

.rs-note {
  margin: 26px 0 0;
  background: #fdf6ea;
  border: 1px solid #f0dcb8;
  border-left: 4px solid var(--alb-accent);
  border-radius: var(--alb-radius-sm);
  padding: 16px 20px;
}

/* --------------------------------------------------------------------------
   16. Responsive refinements
   -------------------------------------------------------------------------- */

@media (max-width: 991.98px) {
  .rs-hero {
    padding: 24px 0 38px;
  }
}

@media (max-width: 575.98px) {
  .rs-hero {
    padding: 22px 0 34px;
  }

  .rs-hero .breadcrumb ul {
    display: flex;
    width: 100%;
    justify-content: center;
    border-radius: 12px;
  }

  .rs-main {
    padding-bottom: 30px;
  }

  .rs-callout {
    padding: 20px 18px;
  }
}


/* --------------------------------------------------------------------------
   17. Tourism page variants (clean hero + simple FAQ list)
   -------------------------------------------------------------------------- */

.rs-hero--tourism {
  padding: 34px 0;
}

.rs-hero--tourism .breadcrumb ul {
  margin-bottom: 14px;
}

.rs-hero--tourism .rs-hero__title {
  text-align: left;
  padding: 0;
}

/* FAQ - single unified style (see section 14) */

@media (max-width: 575.98px) {
  .rs-hero--tourism {
    padding: 26px 0 22px;
  }

  .rs-hero--tourism .breadcrumb ul {
    justify-content: flex-start;
  }
}


/* --------------------------------------------------------------------------
   18. Medical page (rs-page--medical)
   -------------------------------------------------------------------------- */

.rs-hero--medical {
  padding: 34px 0;
}

.rs-hero--medical .breadcrumb ul {
  margin-bottom: 14px;
}

.rs-hero--medical .rs-hero__title {
  text-align: left;
  padding: 0;
}

.rs-hero__lead {
  color: rgba(255, 255, 255, .92);
  font-size: 17px;
  line-height: 1.65;
  max-width: 760px;
  margin: 16px 0 0;
  padding: 0;
}

/* entry table - plain spec rows, hairline dividers, ruled header */
.rs-med-entry {
  margin-bottom: 18px;
}

.rs-med-entry__head {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--alb-primary);
}

.rs-med-entry__head p {
  margin: 0 0 2px;
  font-size: 13px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--alb-muted);
}

.rs-med-entry__row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  padding: 12px 2px;
}

.rs-med-entry__row + .rs-med-entry__row {
  border-top: 1px solid var(--alb-line-soft);
}

.rs-med-entry__row p {
  margin: 0;
  color: var(--alb-text);
}

.rs-med-entry__row p strong {
  color: var(--alb-primary-dark);
}

@media (max-width: 767.98px) {
  .rs-med-entry__head,
  .rs-med-entry__row {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .rs-med-entry__head {
    display: none;
  }

  .rs-med-entry__row {
    row-gap: 10px;
    padding: 12px 2px;
  }
}

/* documents - plain 3 columns, no card chrome */
.rs-med-docs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  margin: 18px 0 4px;
}

.rs-med-docs__card ul {
  margin: 0;
  padding-left: 18px;
}

.rs-med-docs__card li {
  margin-bottom: 6px;
  line-height: 1.55;
}

@media (max-width: 767.98px) {
  .rs-med-docs {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

/* permitted activities - media split */
.rs-med-act {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 36px;
  align-items: start;
}

.rs-med-act__media {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  padding: 18px;
  box-shadow: var(--alb-shadow-sm);
}

.rs-page--medical .rs-med-act__media .wrapped-image {
  float: none;
  margin: 0 auto;
}

.rs-med-act__body p {
  margin-bottom: 14px;
}

.rs-med-act__body ul {
  padding-left: 20px;
}

.rs-med-act__body li {
  margin-bottom: 8px;
}

@media (max-width: 767.98px) {
  .rs-med-act {
    grid-template-columns: 1fr;
    gap: 22px;
  }
}

/* important note */
.rs-med-note {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-left: 4px solid var(--alb-accent);
  border-radius: var(--alb-radius-sm);
  padding: 16px 20px;
  margin-bottom: 22px;
}

.rs-med-note p {
  margin: 0;
}

/* steps - vertical card stepper: numbered ring nodes on a continuous
   spine line, each step's copy in its own bordered card */
.rs-med-process {
  margin: 18px 0 4px;
  display: flex;
  flex-direction: column;
}

.rs-med-process__step {
  position: relative;
  display: flex;
  gap: 16px;
  padding-bottom: 16px;
}

.rs-med-process__step:last-child {
  padding-bottom: 0;
}

/* spine running from one node to the next */
.rs-med-process__step::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 38px;
  bottom: 0;
  width: 2px;
  background: var(--alb-line-soft);
}

.rs-med-process__step:last-child::before {
  display: none;
}

.rs-med-process__num {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--alb-surface);
  border: 2px solid var(--alb-primary);
  border-radius: 50%;
  font-weight: 700;
  font-size: 18px;
  color: var(--alb-primary-deep);
  margin: 0;
}

.rs-med-process__body {
  flex: 1 1 auto;
  min-width: 0;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  padding: 14px 18px;
  box-shadow: 0 2px 10px rgba(15, 69, 80, 0.05);
}

.rs-med-process__body h3 {
  margin: 0 0 6px;
  color: var(--alb-primary-deep);
}

.rs-med-process__body p {
  margin: 0;
  color: var(--alb-text);
}

/* processing time - 3 cards */
.rs-med-timing {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 14px;
}

.rs-med-timing__card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  padding: 16px 18px;
}

.rs-med-timing__name {
  margin: 0 0 6px;
  color: var(--alb-primary-deep);
}

.rs-med-timing__card p:last-child {
  margin: 0;
}

@media (max-width: 575.98px) {
  .rs-med-timing {
    grid-template-columns: 1fr;
  }
}

/* before you travel - checklist panel */
.rs-med-check {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  padding: 18px 22px;
}

.rs-med-check ul {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.rs-med-check li {
  position: relative;
  padding-left: 30px;
  margin-bottom: 12px;
}

.rs-med-check li:last-child {
  margin-bottom: 0;
}

.rs-med-check li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  top: 0;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: 6px;
  color: var(--alb-primary);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
}

/* FAQ - single unified style (see section 14) */

@media (max-width: 575.98px) {
  .rs-hero--medical {
    padding: 26px 0 22px;
  }

  .rs-hero--medical .breadcrumb ul {
    justify-content: flex-start;
  }
}


/* --------------------------------------------------------------------------
   19. Fees page (rs-page--fees)
   -------------------------------------------------------------------------- */

.rs-hero--fees {
  padding: 34px 0;
}

.rs-hero--fees .breadcrumb ul {
  margin-bottom: 14px;
}

.rs-hero--fees .rs-hero__title {
  text-align: left;
  padding: 0;
}

.rs-page--fees .rs-fee-tagline {
  font-size: 18px;
  margin: 0 0 18px;
}

.rs-page--fees .rs-fee-tagline strong {
  color: var(--alb-primary-deep);
}

/* pricing tool - white panel */
.rs-fee-tool {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-sm);
  padding: 26px 28px 30px;
  margin-bottom: 26px;
}

.rs-fee-tool__title {
  margin: 0 0 14px;
  color: var(--alb-primary-deep);
}

.rs-fee-tool select.form-control {
  max-width: 560px;
  margin: 0 auto;
}

.rs-fee-tool__result {
  margin-top: 8px;
}

/* processing options - receipt tier rows */
.rs-fee-process {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  overflow: hidden;
  box-shadow: var(--alb-shadow-sm);
  margin-bottom: 16px;
}

.rs-fee-process__head {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  padding: 14px 22px;
  background: var(--alb-canvas);
  border-bottom: 1px solid var(--alb-line-soft);
}

.rs-fee-process__head p {
  margin: 0;
  font-size: 13px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--alb-muted);
}

.rs-fee-process__row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  padding: 16px 22px;
}

.rs-fee-process__row + .rs-fee-process__row {
  border-top: 1px solid var(--alb-line-soft);
}

.rs-fee-process__row p {
  margin: 0;
}

.rs-fee-process__name strong {
  color: var(--alb-primary-dark);
}

/* fee structure - 3 definition cards */
.rs-fee-structure {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 16px;
}

.rs-fee-structure__card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  padding: 18px 20px;
}

.rs-fee-structure__card p {
  margin: 0;
}

.rs-fee-structure__card strong {
  color: var(--alb-primary-deep);
}

/* service fee - plain checkmark list, no panel */
.rs-fee-services {
  margin: 6px 0 14px;
}

.rs-fee-services ul {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.rs-fee-services li {
  position: relative;
  padding-left: 30px;
  margin-bottom: 12px;
}

.rs-fee-services li:last-child {
  margin-bottom: 0;
}

.rs-fee-services li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  top: 0;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: 6px;
  color: var(--alb-primary);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
}

/* payment methods - 2 cards */
.rs-fee-pay {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.rs-fee-pay__card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  padding: 18px 20px;
}

.rs-fee-pay__card p {
  margin: 0;
}

/* no refund policy - dark teal callout */
.rs-fee-refund {
  background: linear-gradient(135deg, var(--alb-primary-dark) 0%, var(--alb-primary-deep) 100%);
  color: #fff;
  border-radius: var(--alb-radius);
  padding: 24px 26px;
  box-shadow: var(--alb-shadow-sm);
}

.rs-fee-refund p {
  margin-bottom: 12px;
  color: rgba(255, 255, 255, .94);
}

.rs-fee-refund p:last-child {
  margin-bottom: 0;
}

.rs-fee-refund strong {
  color: #fff;
}

.rs-fee-refund a {
  color: #ffd9a1;
  text-decoration: none;
}

.rs-fee-refund a:hover {
  color: #ffe8c7;
}

/* FAQ - single unified style (see section 14) */

@media (max-width: 767.98px) {
  .rs-fee-structure {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .rs-hero--fees {
    padding: 26px 0 22px;
  }

  .rs-hero--fees .breadcrumb ul {
    justify-content: flex-start;
  }

  .rs-fee-tool {
    padding: 20px 16px 24px;
  }

  .rs-fee-process__head {
    grid-template-columns: 1fr;
    gap: 2px;
    padding: 12px 18px;
  }

  .rs-fee-process__row {
    grid-template-columns: 1fr;
    row-gap: 8px;
    padding: 14px 18px;
  }

  .rs-fee-pay {
    grid-template-columns: 1fr;
  }

  .rs-fee-refund {
    padding: 20px 18px;
  }
}

/* --------------------------------------------------------------------------
   20. Eligible page (rs-page--eligible)
   -----------------------------------------------
   Three live country-list sections rendered as white panels with working
   collapse behaviour for the see_more toggle, route cards, visa-free
   exemption cards, a plain clarifications list, numbered summary cards
   and an accent-bordered disclaimer panel.
-------------------------------------------------------------------------- */

/* 20.1 Country list panels (white sheet, teal keyline, collapsible list) */
.rs-page--eligible .rs-el-list {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
  padding: 22px 24px 12px;
  margin: 18px 0 28px;
}

.rs-page--eligible .div_lst {
  max-height: fit-content;
  transition: max-height .25s ease;
}

.rs-page--eligible .div_lst.show_less {
  max-height: 300px;
  overflow: hidden;
}

.rs-page--eligible .div_lst li {
  margin: 8px 0;
}

.rs-page--eligible .div_lst .li_cls a {
  color: var(--alb-primary-dark);
  text-decoration: none;
  font-weight: 600;
}

.rs-page--eligible .div_lst .li_cls a:hover {
  color: var(--alb-accent-dark);
  text-decoration: underline;
}

.rs-page--eligible .div_lst .li_cls span.flag {
  margin-right: 5px;
}

.rs-page--eligible .see_more {
  font-weight: 700;
  cursor: pointer;
  width: fit-content;
  margin: 10px 0 14px;
  padding-bottom: 2px;
  color: var(--alb-primary-dark);
  border-bottom: 2px solid transparent;
}

.rs-page--eligible .see_more:hover {
  color: var(--alb-primary);
  border-bottom-color: var(--alb-accent);
}

/* 20.2 Route cards (visa-free / eVisa / embassy) */
.rs-page--eligible .rs-el-routes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: 18px 0 10px;
}

.rs-page--eligible .rs-el-routes__card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 16px 18px;
}

.rs-page--eligible .rs-el-routes__card p {
  margin: 0;
  font-weight: 600;
  color: var(--alb-primary-deep);
  line-height: 1.5;
}

/* 20.3 Visa-free exemption condition cards */
.rs-page--eligible .rs-el-exempt {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: 18px 0 10px;
}

.rs-page--eligible .rs-el-exempt__card {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-left: 4px solid var(--alb-accent);
  border-radius: var(--alb-radius-sm);
  padding: 16px 18px;
}

.rs-page--eligible .rs-el-exempt__card p {
  margin: 0;
  line-height: 1.6;
}

/* 20.4 Clarifications plain list with hairline dividers */
.rs-page--eligible .rs-el-clarify {
  list-style: disc;
  padding-left: 22px;
  margin: 14px 0 10px;
}

.rs-page--eligible .rs-el-clarify li {
  padding: 11px 0;
  border-bottom: 1px solid var(--alb-line-soft);
}

.rs-page--eligible .rs-el-clarify li:first-child {
  border-top: 1px solid var(--alb-line-soft);
}

.rs-page--eligible .rs-el-clarify li:last-child {
  border-bottom: none;
}

/* 20.5 Quick summary - open counter strip, no cards */
.rs-page--eligible .rs-el-summary {
  display: flex;
  gap: 22px;
  margin: 22px 0 30px;
  counter-reset: rs-el-step;
}

.rs-page--eligible .rs-el-summary__card {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  padding: 2px 4px 2px 44px;
}

.rs-page--eligible .rs-el-summary__card::before {
  counter-increment: rs-el-step;
  content: counter(rs-el-step);
  position: absolute;
  left: 0;
  top: 0;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--alb-primary) 0%, var(--alb-primary-deep) 100%);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  border-radius: 50%;
}

/* connector line running edge-to-edge from one counter circle to the next */
.rs-page--eligible .rs-el-summary__card:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 30px;
  top: 14px;
  width: calc(100% - 8px);
  height: 2px;
  background: var(--alb-line-soft);
}

.rs-page--eligible .rs-el-summary__card p {
  margin: 0;
  line-height: 1.55;
}

/* 20.6 Disclaimer - plain muted note, no panel */
.rs-page--eligible .rs-el-disclaimer {
  margin: 24px 0 8px;
}

.rs-page--eligible .rs-el-disclaimer p {
  margin: 0;
  line-height: 1.55;
  color: var(--alb-muted);
}

/* 20.7 Responsive refinements (eligible) */
@media (max-width: 991.98px) {
  .rs-page--eligible .rs-el-routes,
  .rs-page--eligible .rs-el-exempt {
    grid-template-columns: 1fr;
  }

  .rs-page--eligible .rs-el-summary {
    flex-direction: column;
    gap: 16px;
  }

  .rs-page--eligible .rs-el-summary__card:not(:last-child)::after {
    display: none;
  }

  .rs-page--eligible .rs-el-list {
    padding: 16px 14px 10px;
  }
}

/* --------------------------------------------------------------------------
   21. Requirements page (rs-page--requirements)
   -----------------------------------------------
   Intro sheet with themed CTA, document cards with a teal keyline and
   framed doc imagery, a residence-permit sheet with the float image
   kept inside its own container, a numbered tips panel and the simple
   hairline FAQ list.
-------------------------------------------------------------------------- */

/* 21.1 Intro sheet */
.rs-page--requirements .rs-req-intro {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
  padding: 24px 26px 20px;
  margin: 18px 0 26px;
}

.rs-page--requirements .rs-req-intro p {
  line-height: 1.65;
}

.rs-page--requirements .rs-req-intro .cta-section {
  margin: 16px 0 2px;
}

/* 21.2 CTA button - themed teal gradient */
.rs-page--requirements .cta-btn {
  background: linear-gradient(135deg, var(--alb-primary) 0%, var(--alb-primary-deep) 100%);
  box-shadow: 0 4px 12px rgba(29, 123, 149, 0.3);
}

.rs-page--requirements .cta-btn:hover {
  background: linear-gradient(135deg, var(--alb-primary-dark) 0%, var(--alb-primary-deep) 100%);
  box-shadow: 0 6px 16px rgba(29, 123, 149, 0.38);
}

/* 21.3 Document cards grid */
.rs-page--requirements .docs-grid {
  margin: 16px 0 8px;
  gap: 16px;
}

.rs-page--requirements .doc-card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
  padding: 18px 18px 14px;
  transition: box-shadow .2s ease, transform .2s ease;
}

.rs-page--requirements .doc-card:hover {
  box-shadow: var(--alb-shadow-sm);
  transform: translateY(-2px);
}

.rs-page--requirements .doc-card h3 {
  color: var(--alb-primary-deep);
  font-weight: 700;
}

/* framed document imagery */
.rs-page--requirements .doc-card img {
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  background: var(--alb-canvas);
  box-shadow: var(--alb-shadow-xs);
  max-width: 280px;
  margin: 4px auto 8px;
}

.rs-page--requirements .doc-card ul {
  margin: 8px 0 0;
  padding-left: 18px;
}

.rs-page--requirements .doc-card li {
  margin: 5px 0;
  line-height: 1.55;
}

/* 21.4 Residence permit sheet (float image stays in-container) */
.rs-page--requirements .rs-req-other {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  padding: 20px 24px;
  margin: 16px 0 8px;
}

.rs-page--requirements .rs-req-other p {
  line-height: 1.65;
}

.rs-page--requirements .rs-req-other ul {
  padding-left: 20px;
  margin: 8px 0 12px;
}

.rs-page--requirements .rs-req-other li {
  margin: 5px 0;
  line-height: 1.55;
}

.rs-page--requirements .rs-req-other .wrapped-image {
  margin: 4px 0 12px 20px;
  padding: 6px;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
}

/* 21.5 Numbered tips panel */
.rs-page--requirements .rs-req-tips {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
  padding: 18px 22px 14px;
  margin: 16px 0 8px;
}

.rs-page--requirements .rs-req-tips ul {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: rs-req-tip;
}

.rs-page--requirements .rs-req-tips li {
  position: relative;
  padding: 11px 4px 11px 44px;
  border-bottom: 1px solid var(--alb-line-soft);
  counter-increment: rs-req-tip;
  line-height: 1.55;
}

.rs-page--requirements .rs-req-tips li:first-child {
  border-top: 1px solid var(--alb-line-soft);
}

.rs-page--requirements .rs-req-tips li:last-child {
  border-bottom: none;
}

.rs-page--requirements .rs-req-tips li::before {
  content: counter(rs-req-tip);
  position: absolute;
  left: 4px;
  top: 11px;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--alb-primary) 0%, var(--alb-primary-deep) 100%);
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  border-radius: 50%;
}

/* 21.6 FAQ - single unified style (see section 14) */

/* 21.7 Responsive refinements (requirements) */
@media (max-width: 991.98px) {
  .rs-page--requirements .rs-req-intro {
    padding: 18px 16px 14px;
  }

  .rs-page--requirements .rs-req-other {
    padding: 16px 16px;
  }

  .rs-page--requirements .rs-req-tips {
    padding: 14px 16px 10px;
  }

  .rs-page--requirements .rs-req-tips li {
    padding-left: 40px;
  }
}

/* --------------------------------------------------------------------------
   22. Types page (rs-page--types)
   -----------------------------------------------
   Intro sheet beside the video block, a 2x2 image-top visa card grid,
   a two-column "at a glance" definition list and a plain centered
   disclaimer.
-------------------------------------------------------------------------- */

/* 22.1 Intro sheet + video block */
.rs-page--types .visa-content-wrapper {
  margin: 18px 0 22px;
}

.rs-page--types .visa-text {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
  padding: 22px 24px;
}

.rs-page--types .visa-text p {
  line-height: 1.65;
}

.rs-page--types .video-container-main {
  border: 1px solid var(--alb-line);
  box-shadow: var(--alb-shadow-sm);
}

/* 22.2 Visa type cards - 2x2 image-top grid */
.rs-page--types .al-visa-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 16px 0 8px;
}

.rs-page--types .al-visa-card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
  transition: box-shadow .2s ease, transform .2s ease;
}

.rs-page--types .al-visa-card:hover {
  box-shadow: var(--alb-shadow-sm);
  transform: translateY(-2px);
}

.rs-page--types .al-visa-card img {
  border-bottom: 1px solid var(--alb-line-soft);
}

.rs-page--types .al-visa-card h3 {
  color: var(--alb-primary-deep);
  font-weight: 700;
  background: var(--alb-canvas);
}

.rs-page--types .al-visa-card-body {
  padding: 14px 16px 16px;
}

/* entry-condition rows */
.rs-page--types .al-visa-card-body ul {
  list-style: none;
  padding: 0;
}

.rs-page--types .al-visa-card-body ul li {
  padding: 6px 0;
  border-bottom: 1px dashed var(--alb-line-soft);
  line-height: 1.5;
}

.rs-page--types .al-visa-card-body ul li:last-child {
  border-bottom: none;
}

.rs-page--types .al-visa-card-body ul li strong {
  color: var(--alb-primary-dark);
}

/* 22.3 "At a glance" two-column definition list */
.rs-page--types .rs-types-glance {
  list-style: none;
  padding: 0;
  margin: 14px 0 8px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 40px;
}

.rs-page--types .rs-types-glance li {
  padding: 11px 2px;
  border-bottom: 1px solid var(--alb-line-soft);
  line-height: 1.6;
}

.rs-page--types .rs-types-glance li strong {
  color: var(--alb-primary-dark);
}

/* 22.4 Disclaimer - plain centered note */
.rs-page--types .rs-types-disc {
  margin: 26px 0 8px;
  text-align: center;
}

.rs-page--types .rs-types-disc p {
  margin: 0 auto;
  max-width: 760px;
  line-height: 1.6;
  color: var(--alb-muted);
}

.rs-page--types .rs-types-disc strong {
  color: var(--alb-primary-dark);
}

/* 22.5 Responsive refinements (types) */
@media (max-width: 991.98px) {
  .rs-page--types .rs-types-glance {
    grid-template-columns: 1fr;
  }

  .rs-page--types .visa-text {
    padding: 18px 16px;
  }
}

@media (max-width: 767.98px) {
  .rs-page--types .al-visa-card-grid {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   23. Transit page (rs-page--transit)
   -----------------------------------------------
   Left-keylined overview sheet beside the video, a zebra "document
   ledger" table with icon tiles, an amber Important-Note callout,
   a connected step timeline, a deep-teal key-takeaways band and the
   simple hairline FAQ list.
-------------------------------------------------------------------------- */

/* 23.1 Overview sheet - canvas panel with teal left keyline */
.rs-page--transit .visa-content-wrapper {
  margin: 18px 0 22px;
}

.rs-page--transit .visa-text {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-left: 4px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  padding: 20px 22px;
}

.rs-page--transit .visa-text p {
  line-height: 1.65;
}

.rs-page--transit .video-container-main {
  border: 1px solid var(--alb-line);
  box-shadow: var(--alb-shadow-sm);
}

/* 23.2 Document ledger table */
.rs-page--transit .rs-transit-docs {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
  overflow: hidden;
  margin: 16px 0 8px;
}

.rs-page--transit .rs-transit-docs .table {
  margin: 0;
  background: transparent;
}

.rs-page--transit .rs-transit-docs td {
  border: none;
  border-top: 1px solid var(--alb-line-soft);
  padding: 14px 16px;
  vertical-align: middle;
}

.rs-page--transit .rs-transit-docs tbody tr:first-child td {
  border-top: none;
}

.rs-page--transit .rs-transit-docs tbody tr:nth-of-type(even) {
  background: var(--alb-canvas);
}

.rs-page--transit .rs-transit-docs tbody tr {
  transition: background .15s ease;
}

.rs-page--transit .rs-transit-docs tbody tr:hover {
  background: var(--alb-canvas);
}

.rs-page--transit .rs-transit-docs td:first-child {
  width: 110px;
  text-align: center;
  padding-right: 4px;
}

.rs-page--transit .rs-transit-docs td:first-child img {
  width: 72px;
  height: 72px;
  padding: 8px;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  box-sizing: border-box;
}

.rs-page--transit .rs-transit-docs p {
  margin: 0;
  line-height: 1.55;
}

.rs-page--transit .rs-transit-docs strong {
  color: var(--alb-primary-deep);
}

/* 23.3 Important Note - amber callout */
.rs-page--transit .rs-transit-note {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-left: 4px solid var(--alb-accent);
  border-radius: var(--alb-radius-sm);
  padding: 16px 20px 12px;
  margin: 14px 0 8px;
}

.rs-page--transit .rs-transit-note h3 {
  color: var(--alb-accent-dark) !important;
  font-weight: 700;
  margin: 0 0 8px;
}

.rs-page--transit .rs-transit-note ul {
  padding-left: 20px;
  margin: 0;
}

.rs-page--transit .rs-transit-note li {
  margin: 5px 0;
  line-height: 1.55;
}

/* 23.4 Application steps - connected timeline */
.rs-page--transit .rs-transit-steps {
  margin: 14px 0 10px;
}

/* intro line stays plain */
.rs-page--transit .rs-transit-steps > p:first-child {
  background: none;
  border: none;
  box-shadow: none;
  margin: 0 0 14px 0;
  padding: 0;
}

.rs-page--transit .rs-transit-steps > p:first-child::before,
.rs-page--transit .rs-transit-steps > p:first-child::after {
  content: none;
}

/* open timeline - plain text rows, dot + connector line, no card chrome */
.rs-page--transit .rs-transit-steps p {
  position: relative;
  margin: 0 0 22px 18px;
  padding: 0 0 0 20px;
  line-height: 1.6;
}

.rs-page--transit .rs-transit-steps p::before {
  content: "";
  position: absolute;
  left: -9px;
  top: .45em;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--alb-primary);
  box-shadow: 0 0 0 3px var(--alb-canvas);
}

.rs-page--transit .rs-transit-steps p::after {
  content: "";
  position: absolute;
  left: -4px;
  top: .6em;
  bottom: -26px;
  width: 2px;
  background: var(--alb-line);
}

.rs-page--transit .rs-transit-steps p:last-child::after {
  display: none;
}

.rs-page--transit .rs-transit-steps p:last-child {
  margin-bottom: 0;
}

/* 23.5 Process image */
.rs-page--transit .img-wrapped-image {
  display: inline-block;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 10px;
}

/* 23.6 Key takeaways - deep teal band */
.rs-page--transit .rs-transit-keys {
  list-style: none;
  margin: 14px 0 8px;
  padding: 0;
  background: linear-gradient(135deg, var(--alb-primary-deep) 0%, var(--alb-primary-dark) 100%);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-sm);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  overflow: hidden;
}

.rs-page--transit .rs-transit-keys li {
  padding: 18px 20px;
  color: #fff;
  line-height: 1.5;
}

.rs-page--transit .rs-transit-keys li + li {
  border-left: 1px solid rgba(255, 255, 255, 0.22);
}

/* 23.7 FAQ - single unified style (see section 14) */

/* 23.8 Disclaimer */
.rs-page--transit .rs-transit-disc {
  margin: 22px 0 8px;
  text-align: center;
}

.rs-page--transit .rs-transit-disc p {
  margin: 0 auto;
  max-width: 760px;
  line-height: 1.6;
  color: var(--alb-muted);
}

.rs-page--transit .rs-transit-disc strong {
  color: var(--alb-primary-dark);
}

/* 23.9 Responsive refinements (transit) */
@media (max-width: 991.98px) {
  .rs-page--transit .rs-transit-keys {
    grid-template-columns: 1fr;
  }

  .rs-page--transit .rs-transit-keys li + li {
    border-left: none;
    border-top: 1px solid rgba(255, 255, 255, 0.22);
  }
}

@media (max-width: 575.98px) {
  .rs-page--transit .rs-transit-docs td {
    padding: 10px 10px;
  }

  .rs-page--transit .rs-transit-docs td:first-child {
    width: 84px;
  }

  .rs-page--transit .rs-transit-docs td:first-child img {
    width: 60px;
    height: 60px;
    padding: 6px;
  }
}

/* --------------------------------------------------------------------------
   24. Short-stay eVisa — Scientific / Cultural / Sports / Humanitarian
       (rs-page--short-stay-evisa)
   -----------------------------------------------
   Teal keylined summary strip, photo activity cards, spec cards, a
   single stat-strip panel for processing times, numbered step cards,
   pill payment chips and keylined travel-tip cards.
-------------------------------------------------------------------------- */

/* 24.1 Summary strip */
.rs-page--short-stay-evisa .rs-sse-intro {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-left: 4px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  padding: 16px 20px;
  margin: 14px 0 8px;
  line-height: 1.65;
}

/* 24.2 Permitted Activities — photo cards */
.rs-page--short-stay-evisa .activities-grid {
  gap: 14px;
  margin: 16px 0 10px;
}

.rs-page--short-stay-evisa .activity-card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius);
  overflow: hidden;
  box-shadow: var(--alb-shadow-xs);
  transition: box-shadow .2s ease, transform .2s ease;
}

.rs-page--short-stay-evisa .activity-card:hover {
  box-shadow: var(--alb-shadow-md);
  transform: translateY(-2px);
}

.rs-page--short-stay-evisa .activity-card h3 {
  color: var(--alb-primary-deep) !important;
  padding: 12px 14px 0;
}

.rs-page--short-stay-evisa .activity-card p {
  padding: 6px 14px 14px;
  color: var(--alb-muted);
  line-height: 1.55;
}

/* 24.3 Document Requirements — icon-chip rows */
.rs-page--short-stay-evisa .doc-list {
  margin: 14px 0 8px;
}

.rs-page--short-stay-evisa .doc-list li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 12px 18px;
  margin-bottom: 10px;
  line-height: 1.55;
}

.rs-page--short-stay-evisa .doc-list li i {
  position: static;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: 8px;
  color: var(--alb-primary);
  font-size: 18px;
  margin-top: 1px;
}

/* 24.4 Document image — un-floated, centered above the list */
.rs-page--short-stay-evisa .wrapped-image {
  float: none;
  display: block;
  width: 486px;
  max-width: 100%;
  margin: 0 auto 18px;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 10px;
}

.rs-page--short-stay-evisa .wrapped-image img {
  display: block;
  width: 100%;
  height: auto;
}

/* 24.5 Important Note — amber tinted callout */
.rs-page--short-stay-evisa .rs-sse-note {
  background: rgba(232, 161, 60, .12);
  border: 1px solid rgba(232, 161, 60, .45);
  border-left: 4px solid var(--alb-accent);
  border-radius: var(--alb-radius-sm);
  padding: 12px 18px;
  margin: 12px 0 8px;
}

.rs-page--short-stay-evisa .rs-sse-note p {
  margin: 0;
  line-height: 1.55;
}

.rs-page--short-stay-evisa .rs-sse-note strong {
  color: var(--alb-accent-dark);
}

/* 24.6 Types of Entry — spec cards */
.rs-page--short-stay-evisa .rs-sse-types {
  list-style: none;
  padding: 0;
  margin: 14px 0 8px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.rs-page--short-stay-evisa .rs-sse-types li {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 14px 16px;
  line-height: 1.55;
}

.rs-page--short-stay-evisa .rs-sse-types strong {
  color: var(--alb-primary-deep);
}

/* 24.7 Processing Time — stat strip */
.rs-page--short-stay-evisa .rs-sse-times {
  list-style: none;
  padding: 0;
  margin: 14px 0 8px;
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  overflow: hidden;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.rs-page--short-stay-evisa .rs-sse-times li {
  padding: 14px 18px;
  line-height: 1.5;
}

.rs-page--short-stay-evisa .rs-sse-times li + li {
  border-left: 1px solid var(--alb-line);
}

.rs-page--short-stay-evisa .rs-sse-times li strong {
  color: var(--alb-primary-deep);
}

/* 24.8 Step cards */
.rs-page--short-stay-evisa .steps-grid {
  gap: 12px;
  margin: 16px 0 10px;
}

.rs-page--short-stay-evisa .step-card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
  padding: 16px 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.rs-page--short-stay-evisa .step-number {
  background: var(--alb-primary);
  color: #fff;
  width: 40px;
  height: 40px;
  margin: 0;
}

.rs-page--short-stay-evisa .step-title {
  color: var(--alb-primary-deep) !important;
  margin: 0;
}

.rs-page--short-stay-evisa .step-text {
  color: var(--alb-muted);
  line-height: 1.55;
}

/* 24.9 Payment methods — pill chips */
.rs-page--short-stay-evisa .rs-sse-pay {
  list-style: none;
  padding: 0;
  margin: 10px 0 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.rs-page--short-stay-evisa .rs-sse-pay li {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line);
  border-radius: 999px;
  padding: 8px 16px;
  line-height: 1.4;
  box-shadow: var(--alb-shadow-xs);
}

/* 24.10 Travel tips — keylined cards */
.rs-page--short-stay-evisa .rs-sse-tips {
  list-style: none;
  padding: 0;
  margin: 14px 0 8px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.rs-page--short-stay-evisa .rs-sse-tips li {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-left: 4px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 12px 16px;
  line-height: 1.55;
}

/* 24.11 Disclaimer */
.rs-page--short-stay-evisa .rs-sse-disc {
  margin: 22px 0 8px;
  text-align: center;
}

.rs-page--short-stay-evisa .rs-sse-disc p {
  margin: 0 auto;
  max-width: 720px;
  line-height: 1.6;
  color: var(--alb-muted);
}

.rs-page--short-stay-evisa .rs-sse-disc strong {
  color: var(--alb-primary-dark);
}

/* 24.12 Responsive refinements (short-stay eVisa) */
@media (max-width: 991.98px) {
  .rs-page--short-stay-evisa .rs-sse-times {
    grid-template-columns: 1fr;
  }

  .rs-page--short-stay-evisa .rs-sse-times li + li {
    border-left: none;
    border-top: 1px solid var(--alb-line);
  }

  .rs-page--short-stay-evisa .rs-sse-types {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .rs-page--short-stay-evisa .rs-sse-tips {
    grid-template-columns: 1fr;
  }
}

/* ========================================================================
   25. Photo requirements — spec-sheet framing (rs-page--photo)
   ======================================================================== */

/* 25.1 Section titles — accent bar + hairline rule */
.rs-page--photo h2 {
  position: relative;
  padding: 0 0 10px 16px;
  margin: 34px 0 14px;
  color: var(--alb-primary-deep);
  border-bottom: 1px solid var(--alb-line-soft);
}

.rs-page--photo h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  bottom: 10px;
  width: 4px;
  border-radius: 2px;
  background: var(--alb-accent);
}

/* 25.2 Framed image blocks */
.rs-page--photo center {
  display: block;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-sm);
  padding: 10px;
  max-width: 700px;
  margin: 20px auto;
}

/* 25.3 Size & composition spec rows */
.rs-page--photo .rs-photo-specs {
  list-style: none;
  padding: 0;
  margin: 14px 0;
}

.rs-page--photo .rs-photo-specs li {
  position: relative;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 12px 16px 12px 46px;
  margin-bottom: 8px;
  line-height: 1.55;
}

.rs-page--photo .rs-photo-specs li::before {
  content: "\f00c";
  font-family: "FontAwesome";
  font-weight: 400;
  position: absolute;
  left: 12px;
  top: 12px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--alb-primary);
  color: #fff;
  font-size: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rs-page--photo .rs-photo-specs li strong {
  color: var(--alb-primary-deep);
}

/* 25.4 Appearance table — framed spec sheet */
.rs-page--photo .table-responsive {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-sm);
  overflow: hidden;
}

.rs-page--photo .table-responsive .table {
  margin-bottom: 0;
}

.rs-page--photo .table-responsive .table td {
  border: none;
  border-top: 1px solid var(--alb-line-soft);
  padding: 14px 18px;
  vertical-align: top;
}

.rs-page--photo .table-responsive .table tr:first-child td {
  border-top: none;
}

.rs-page--photo .table-responsive .table tr td:first-child {
  background: var(--alb-canvas);
  width: 220px;
  padding-left: 58px;
  position: relative;
}

.rs-page--photo .table-responsive .table td:first-child::before {
  content: "\f1fc";
  font-family: "FontAwesome";
  font-weight: 400;
  position: absolute;
  left: 12px;
  top: 14px;
  width: 34px;
  height: 34px;
  border-radius: var(--alb-radius-sm);
  background: var(--alb-surface);
  color: var(--alb-primary);
  font-size: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Per-row icons: Colour, Background, Recency, Facial Expression, Glasses,
   Head Coverings, Children's Photos, Attire, Lighting, Quality */
.rs-page--photo .table-responsive .table tr:nth-child(1) td:first-child::before { content: "\f1fc"; }
.rs-page--photo .table-responsive .table tr:nth-child(2) td:first-child::before { content: "\f03e"; }
.rs-page--photo .table-responsive .table tr:nth-child(3) td:first-child::before { content: "\f017"; }
.rs-page--photo .table-responsive .table tr:nth-child(4) td:first-child::before { content: "\f118"; }
.rs-page--photo .table-responsive .table tr:nth-child(5) td:first-child::before { content: "\f04b"; }
.rs-page--photo .table-responsive .table tr:nth-child(6) td:first-child::before { content: "\f007"; }
.rs-page--photo .table-responsive .table tr:nth-child(7) td:first-child::before { content: "\f133"; }
.rs-page--photo .table-responsive .table tr:nth-child(8) td:first-child::before { content: "\f0e1"; }
.rs-page--photo .table-responsive .table tr:nth-child(9) td:first-child::before { content: "\f0eb"; }
.rs-page--photo .table-responsive .table tr:nth-child(10) td:first-child::before { content: "\f030"; }

.rs-page--photo .table-responsive .table td:first-child h4 {
  display: inline;
  margin: 0;
  color: var(--alb-primary-deep);
}

.rs-page--photo .table.table-striped > tbody > tr:nth-of-type(odd) {
  background: var(--alb-surface);
}

/* 25.5 Where to get your photo — 3-col cards */
.rs-page--photo .rs-photo-places {
  list-style: none;
  padding: 0;
  margin: 14px 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.rs-page--photo .rs-photo-places li {
  position: relative;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 14px 16px 14px 58px;
  line-height: 1.55;
}

.rs-page--photo .rs-photo-places li::before {
  content: "\f030";
  font-family: "FontAwesome";
  font-weight: 400;
  position: absolute;
  left: 12px;
  top: 12px;
  width: 38px;
  height: 38px;
  border-radius: var(--alb-radius-sm);
  background: var(--alb-canvas);
  color: var(--alb-primary);
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rs-page--photo .rs-photo-places li:nth-child(2)::before { content: "\f013"; }
.rs-page--photo .rs-photo-places li:nth-child(3)::before { content: "\f0c1"; }

.rs-page--photo .rs-photo-places li strong {
  color: var(--alb-primary-deep);
}

/* 25.6 Digital photo tips — numbered counter rows */
.rs-page--photo .rs-photo-digital {
  list-style: none;
  padding: 0;
  margin: 14px 0;
  counter-reset: photo-digital;
}

.rs-page--photo .rs-photo-digital li {
  counter-increment: photo-digital;
  position: relative;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-left: 4px solid var(--alb-accent);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 12px 16px 12px 52px;
  margin-bottom: 8px;
  line-height: 1.55;
}

.rs-page--photo .rs-photo-digital li::before {
  content: counter(photo-digital);
  position: absolute;
  left: 12px;
  top: 12px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--alb-accent);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rs-page--photo .rs-photo-digital li strong {
  color: var(--alb-primary-deep);
}

/* 25.7 Final tips — 2-col grid */
.rs-page--photo .rs-photo-tips {
  list-style: none;
  padding: 0;
  margin: 14px 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.rs-page--photo .rs-photo-tips li {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-left: 3px solid var(--alb-accent);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 12px 16px;
  line-height: 1.55;
}

.rs-page--photo .rs-photo-tips li strong {
  color: var(--alb-primary-deep);
}

/* 25.8 Responsive */
@media (max-width: 575.98px) {
  .rs-page--photo .rs-photo-places,
  .rs-page--photo .rs-photo-tips {
    grid-template-columns: 1fr;
  }
}

/* ========================================================================
   26. Visa rejection — reason cards (rs-page--rejection)
   ======================================================================== */

/* 26.1 Base headings + lead */
.rs-page--rejection h2 {
  margin: 28px 0 12px;
  color: var(--alb-primary-deep);
}

.rs-page--rejection .rs-rej-lead {
  font-size: 17px;
  color: var(--alb-muted);
  line-height: 1.7;
}

/* 26.2 Framed hero image */
.rs-page--rejection center {
  display: block;
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  padding: 14px;
  max-width: 740px;
  margin: 18px auto;
}

/* 26.3 Reason cards */
.rs-page--rejection .rs-rej-card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-left: 4px solid var(--alb-accent);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
  padding: 18px 22px 16px;
  margin-bottom: 14px;
}

.rs-page--rejection .rs-rej-card h2 {
  position: relative;
  padding-left: 44px;
  margin: 0 0 10px;
}

.rs-page--rejection .rs-rej-card h2::before {
  content: "\f071";
  font-family: "FontAwesome";
  font-weight: 400;
  position: absolute;
  left: 0;
  top: 0;
  width: 32px;
  height: 32px;
  border-radius: var(--alb-radius-sm);
  background: rgba(232, 161, 60, 0.14);
  border: 1px solid rgba(232, 161, 60, 0.4);
  color: var(--alb-accent-dark);
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rs-page--rejection .rs-rej-card p > strong:first-child {
  color: var(--alb-primary-deep);
}

.rs-page--rejection .rs-rej-card ul,
.rs-page--rejection .rs-rej-card ol,
.rs-page--rejection .rs-rej-card ul li,
.rs-page--rejection .rs-rej-card ol li {
  line-height: 1.55;
}

/* 26.4 Reapplication steps */
.rs-page--rejection .rs-rej-step {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-left: 4px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  padding: 12px 18px;
  margin-bottom: 10px;
}

.rs-page--rejection .rs-rej-step p strong {
  color: var(--alb-primary-deep);
}

/* ========================================================================
   27. How to get Albania visa — editorial checklist (rs-page--how-to-get)
   ======================================================================== */

/* 27.1 Section titles — banded strip */
.rs-page--how-to-get h3 {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-left: 4px solid var(--alb-accent);
  border-radius: var(--alb-radius-sm);
  color: var(--alb-primary-deep);
  padding: 10px 16px;
  margin: 30px 0 14px;
}

/* 27.2 Framed inline images (un-float) */
.rs-page--how-to-get .wrapped-image {
  float: none;
  display: block;
  width: 486px;
  max-width: 100%;
  margin: 14px auto;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-sm);
  padding: 10px;
}

/* 27.3 Plain checklist rows */
.rs-page--how-to-get ul:not(.rs-gv-steps):not(.rs-gv-tips) {
  list-style: none;
  padding-left: 0;
  margin: 14px 0;
}

.rs-page--how-to-get ul:not(.rs-gv-steps):not(.rs-gv-tips) > li {
  display: flex;
  align-items: flex-start;
  position: relative;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 11px 16px 11px 44px;
  margin-bottom: 8px;
  line-height: 1.55;
}

.rs-page--how-to-get ul:not(.rs-gv-steps):not(.rs-gv-tips) > li::before {
  content: "\f00c";
  font-family: "FontAwesome";
  font-weight: 400;
  position: absolute;
  left: 12px;
  top: 11px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--alb-primary);
  color: #fff;
  font-size: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rs-page--how-to-get ul:not(.rs-gv-steps):not(.rs-gv-tips) > li b {
  color: var(--alb-primary-deep);
}

/* 27.4 Online / embassy step rows */
.rs-page--how-to-get .rs-gv-steps {
  list-style: none;
  padding: 0;
  margin: 14px 0;
  counter-reset: gv-step;
}

.rs-page--how-to-get .rs-gv-steps li {
  counter-increment: gv-step;
  position: relative;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-left: 4px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 12px 18px 12px 52px;
  margin-bottom: 10px;
  line-height: 1.55;
}

.rs-page--how-to-get .rs-gv-steps li::before {
  content: counter(gv-step);
  position: absolute;
  left: 14px;
  top: 12px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--alb-primary-deep);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rs-page--how-to-get .rs-gv-steps li b {
  color: var(--alb-primary-deep);
}

/* 27.5 Tips — 2-col grid */
.rs-page--how-to-get .rs-gv-tips {
  list-style: none;
  padding: 0;
  margin: 14px 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.rs-page--how-to-get .rs-gv-tips li {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-left: 3px solid var(--alb-accent);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 12px 16px;
  line-height: 1.55;
}

.rs-page--how-to-get .rs-gv-tips li b {
  color: var(--alb-primary-deep);
}

/* 27.6 Responsive */
@media (max-width: 575.98px) {
  .rs-page--how-to-get .rs-gv-tips {
    grid-template-columns: 1fr;
  }
}

/* ========================================================================
   28. Minors & children — family framing (rs-page--minors)
   ======================================================================== */

/* 28.1 Intro card */
.rs-page--minors .rs-min-intro {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-lg);
  padding: 22px;
  margin-bottom: 18px;
}

/* 28.2 Framed images */
.rs-page--minors center {
  background: var(--alb-surface);
  border: 4px solid var(--alb-surface);
  border-radius: 8px;
  box-shadow: var(--alb-shadow-sm);
}

/* 28.3 Eligible-country chips */
.rs-page--minors .div_lst .li_cls {
  list-style: none;
  padding: 0;
  margin: 0;
}

.rs-page--minors .div_lst .li_cls li {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 8px 10px;
  margin-bottom: 8px;
  transition: transform 0.15s ease, border-color 0.15s ease;
}

.rs-page--minors .div_lst .li_cls li:hover {
  border-color: var(--alb-primary);
  transform: translateY(-1px);
}

.rs-page--minors .div_lst .li_cls li a {
  color: var(--alb-primary-deep);
  font-weight: 600;
  text-decoration: none;
}

/* 28.4 Document checklist (numbered) */
.rs-page--minors .col-lg-8 > ol {
  list-style: none;
  padding: 0;
  margin: 14px 0;
  counter-reset: min-doc;
}

.rs-page--minors .col-lg-8 > ol > li {
  counter-increment: min-doc;
  position: relative;
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-left: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  padding: 14px 16px 14px 56px;
  margin-bottom: 10px;
  line-height: 1.55;
}

.rs-page--minors .col-lg-8 > ol > li::before {
  content: counter(min-doc);
  position: absolute;
  left: 12px;
  top: 14px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--alb-primary);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Nested sub-lists keep their default a / i markers */
.rs-page--minors .col-lg-8 > ol li > ol {
  margin: 10px 0 4px;
  padding-left: 22px;
}

.rs-page--minors .col-lg-8 > ol li > ol > li {
  background: none;
  border: none;
  padding: 2px 0;
}

/* 28.5 Step kickers */
.rs-page--minors h3 {
  display: inline-block;
  position: relative;
  color: var(--alb-primary-deep);
  border-bottom: 1px solid var(--alb-line);
  padding-bottom: 6px;
  margin: 22px 0 10px;
}

.rs-page--minors h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 58px;
  height: 4px;
  border-radius: 2px;
  background: var(--alb-accent);
}

/* 28.6 Hanging-marker lists */
.rs-page--minors ul:not(.li_cls):not(.rs-min-points) {
  list-style: none;
  padding-left: 0;
}

.rs-page--minors ul:not(.li_cls):not(.rs-min-points) > li {
  position: relative;
  padding-left: 30px;
  line-height: 1.55;
}

.rs-page--minors ul:not(.li_cls):not(.rs-min-points) > li::before {
  content: "\f00c";
  font-family: "FontAwesome";
  font-weight: 400;
  position: absolute;
  left: 4px;
  top: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--alb-primary);
  color: #fff;
  font-size: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rs-page--minors ul ul {
  margin: 8px 0 4px;
  padding-left: 10px;
}

/* 28.7 Key-point check rows */
.rs-page--minors .rs-min-points {
  list-style: none;
  padding-left: 0;
}

.rs-page--minors .rs-min-points > li {
  position: relative;
  padding-left: 34px;
  line-height: 1.55;
  margin-bottom: 6px;
}

.rs-page--minors .rs-min-points > li::before {
  content: "\f00c";
  font-family: "FontAwesome";
  font-weight: 400;
  position: absolute;
  left: 0;
  top: 2px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--alb-accent);
  color: #fff;
  font-size: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 28.8 Processing-time table */
.rs-page--minors .table-responsive {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-sm);
  overflow: hidden;
}

.rs-page--minors .table {
  margin-bottom: 0;
}

.rs-page--minors .table td {
  border-top: 1px solid var(--alb-line-soft);
  padding: 14px 16px;
  vertical-align: top;
}

.rs-page--minors .table tr:first-child td {
  background: var(--alb-canvas);
  border-top: none;
  border-bottom: 2px solid var(--alb-line);
}

.rs-page--minors .table.table-striped > tbody > tr:nth-of-type(odd) {
  background: var(--alb-surface);
}

.rs-page--minors .table td p {
  margin: 0;
}

.rs-page--minors .table td strong {
  color: var(--alb-primary-deep);
}

/* ========================================================================
   29. Application process — banner steps (rs-page--process)
   ======================================================================== */

/* 29.1 Intro card */
.rs-page--process .rs-proc-intro {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-lg);
  padding: 22px;
  margin-bottom: 18px;
}

/* 29.2 Primary CTA */
.rs-page--process .main-btn {
  background: var(--alb-primary) !important;
  border-color: var(--alb-primary) !important;
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-sm);
  font-weight: 600;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.rs-page--process .main-btn:hover {
  background: var(--alb-primary-dark) !important;
  border-color: var(--alb-primary-dark) !important;
}

/* 29.3 Framed step image (un-float) */
.rs-page--process .image-container {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: 12px !important;
  box-shadow: var(--alb-shadow-sm) !important;
  float: none !important;
  padding: 16px;
  max-width: 620px;
  margin: 18px auto !important;
}

/* 29.4 Section titles — solid teal band */
.rs-page--process h3 {
  background: linear-gradient(90deg, var(--alb-primary), var(--alb-primary-deep));
  color: #fff !important;
  border-left: 5px solid var(--alb-accent);
  border-radius: var(--alb-radius-sm);
  padding: 13px 18px;
  margin: 30px 0 14px;
}

/* 29.5 Field / detail dot rows */
.rs-page--process ul:not(.rs-proc-notes) {
  list-style: none;
  padding-left: 0;
  margin: 12px 0;
}

.rs-page--process ul:not(.rs-proc-notes) > li {
  display: flex;
  align-items: flex-start;
  position: relative;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 10px 16px 10px 34px;
  margin-bottom: 8px;
  line-height: 1.5;
}

.rs-page--process ul:not(.rs-proc-notes) > li::before {
  content: "";
  position: absolute;
  left: 14px;
  top: 17px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--alb-primary);
}

.rs-page--process ul:not(.rs-proc-notes) > li strong {
  color: var(--alb-primary-deep);
}

/* 29.6 e-Visa type cards (override inline attr styles) */
.rs-page--process .visa-types-section > div {
  background: var(--alb-surface) !important;
  border-left: 4px solid var(--alb-primary) !important;
  border-radius: var(--alb-radius-sm) !important;
  box-shadow: var(--alb-shadow-xs) !important;
}

.rs-page--process .visa-types-section h4 {
  color: var(--alb-primary-deep);
  margin-bottom: 6px;
}

.rs-page--process .visa-types-section p {
  color: var(--alb-muted);
  line-height: 1.55;
}

/* 29.7 Important-notes callout */
.rs-page--process .rs-proc-notes {
  list-style: none;
  padding: 16px 18px 6px;
  margin: 12px 0;
  background: rgba(232, 161, 60, 0.10);
  border: 1px solid rgba(232, 161, 60, 0.4);
  border-radius: var(--alb-radius);
}

.rs-page--process .rs-proc-notes li {
  position: relative;
  padding-left: 28px;
  margin-bottom: 8px;
  line-height: 1.55;
}

.rs-page--process .rs-proc-notes li::before {
  content: "\f071";
  font-family: "FontAwesome";
  font-weight: 400;
  position: absolute;
  left: 2px;
  top: 2px;
  width: 16px;
  height: 16px;
  color: var(--alb-accent-dark);
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ========================================================================
   30. Short stay visa — glassmorphism + keyline (rs-page--short-stay-visa)
   ======================================================================== */

/* 30.1 Glass step stage */
.rs-page--short-stay-visa .steps-wrapper {
  background:
    radial-gradient(rgba(29, 123, 149, 0.12) 1px, transparent 1px) 0 0 / 14px 14px,
    linear-gradient(135deg, rgba(29, 123, 149, 0.08), rgba(246, 250, 251, 0.9));
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-lg);
  padding: 14px;
  counter-reset: ss-step;
}

/* 30.2 Frosted step cards */
.rs-page--short-stay-visa .step-card {
  background: rgba(255, 255, 255, 0.62) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.85);
  box-shadow: 0 10px 26px rgba(18, 49, 58, 0.16) !important;
  overflow: hidden;
}

/* 30.3 Ghost background glyphs */
.rs-page--short-stay-visa .step-card::before {
  content: "\f00c";
  font-family: "FontAwesome";
  font-weight: 400;
  position: absolute;
  right: 8px;
  bottom: 2px;
  font-size: 92px;
  line-height: 1;
  color: rgba(29, 123, 149, 0.09);
  z-index: 0;
  pointer-events: none;
}

.rs-page--short-stay-visa .steps-wrapper .step-card:nth-child(2)::before { content: "\f15c"; }
.rs-page--short-stay-visa .steps-wrapper .step-card:nth-child(3)::before { content: "\f09d"; }
.rs-page--short-stay-visa .steps-wrapper .step-card:nth-child(4)::before { content: "\f0e0"; }
.rs-page--short-stay-visa .steps-wrapper .step-card:nth-child(5)::before { content: "\f020"; }

/* 30.4 Step content + numbered headings */
.rs-page--short-stay-visa .step-content {
  position: relative;
  z-index: 1;
}

.rs-page--short-stay-visa .step-content h3 {
  display: flex;
  align-items: center;
  gap: 9px;
  counter-increment: ss-step;
  color: var(--alb-primary-deep);
  margin: 0 0 8px;
}

.rs-page--short-stay-visa .step-content h3::before {
  content: counter(ss-step);
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--alb-primary);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 30.5 Application note */
.rs-page--short-stay-visa .application-note {
  background: rgba(232, 161, 60, 0.12) !important;
  border-left: 4px solid var(--alb-accent) !important;
}

/* 30.6 Brutalist keyline rework */
.rs-page--short-stay-visa .brutalist-card {
  border: 2px solid var(--alb-primary-dark) !important;
  background-color: var(--alb-surface) !important;
  box-shadow: 7px 7px 0 rgba(29, 123, 149, 0.22) !important;
  border-radius: 10px !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.rs-page--short-stay-visa .brutalist-card:hover {
  transform: translate(-2px, -2px);
  border-color: var(--alb-accent) !important;
  box-shadow: 9px 9px 0 rgba(232, 161, 60, 0.35) !important;
}

.rs-page--short-stay-visa .brutalist-card__icon {
  display: inline-flex;
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: 12px;
  padding: 8px;
}

.rs-page--short-stay-visa .brutalist-card__icon img {
  border-radius: 8px;
}

.rs-page--short-stay-visa .brutalist-card__message h2 {
  color: var(--alb-primary-deep);
  margin: 0 0 10px;
}

/* 30.7 Framed tables */
.rs-page--short-stay-visa .table-responsive {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-sm);
  overflow: hidden;
}

.rs-page--short-stay-visa .table {
  margin-bottom: 0;
}

.rs-page--short-stay-visa .table td {
  border: 1px solid var(--alb-line-soft);
  padding: 14px 16px;
  vertical-align: top;
}

.rs-page--short-stay-visa .table tr:first-child td {
  background: var(--alb-canvas);
  border-top: none;
  border-bottom: 2px solid var(--alb-line);
}

.rs-page--short-stay-visa .table.table-striped > tbody > tr:nth-of-type(odd) {
  background: var(--alb-surface);
}

.rs-page--short-stay-visa .table td p {
  margin: 0;
}

.rs-page--short-stay-visa .table td strong {
  color: var(--alb-primary-deep);
}

/* 30.8 Video frame */
.rs-page--short-stay-visa .video-container-main {
  box-shadow: var(--alb-shadow-md);
  border: 1px solid var(--alb-line-soft);
}

/* 30.9 News cards */
.rs-page--short-stay-visa .feature-card {
  border: 1px solid var(--alb-line-soft);
  box-shadow: var(--alb-shadow-xs);
}

.rs-page--short-stay-visa .feature-card:hover {
  border-color: var(--alb-accent);
  box-shadow: -50px -50px 0 -48px var(--alb-accent), 50px 50px 0 -48px var(--alb-accent);
}

.rs-page--short-stay-visa .card-title {
  color: var(--alb-primary-deep);
}

/* ========================================================================
    31. Home (rs-page--home)
    ======================================================================== */

/* 31.1 Intro prose + keylined section headings */
.rs-page--home p {
  color: var(--alb-text);
  line-height: 1.75;
}

.rs-page--home a {
  color: var(--alb-primary-dark);
  transition: color var(--alb-dur);
}

.rs-page--home a:hover,
.rs-page--home a:focus {
  color: var(--alb-primary-deep);
}

.rs-page--home h2 {
  color: var(--alb-ink);
  margin: 42px 0 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--alb-line-soft);
}

.rs-page--home h2:first-of-type {
  margin-top: 26px;
}

.rs-page--home h3 {
  color: var(--alb-primary-deep);
  margin: 24px 0 10px;
}

.rs-page--home .wrapped-image {
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-sm);
}

/* 31.2 Flag-chip board (four columns of li_cls country rows) */
.rs-page--home .sitemap-link {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 14px 12px 8px;
  margin-bottom: 14px;
}

.rs-page--home .li_cls li {
  list-style: none;
  margin: 0 0 2px;
  padding: 7px 10px;
  border-bottom: none;
  border-radius: var(--alb-radius-sm);
  transition: background var(--alb-dur), transform var(--alb-dur);
}

.rs-page--home .li_cls li:hover {
  background: var(--alb-canvas);
  transform: translateX(2px);
}

.rs-page--home .li_cls a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--alb-primary-dark);
  font-weight: 600;
  text-decoration: none;
  transition: color var(--alb-dur);
}

.rs-page--home .li_cls a:hover {
  color: var(--alb-primary-deep);
}

.rs-page--home .li_cls .flag {
  flex: 0 0 auto;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(18, 49, 58, 0.12);
}

/* 31.3 See More pill */
.rs-page--home .see_more {
  display: inline-block;
  width: auto;
  margin: 16px 0 8px;
  padding: 9px 26px;
  background: var(--alb-primary);
  border: 1px solid var(--alb-primary);
  border-radius: 999px;
  color: #fff;
  font-weight: 600;
  cursor: pointer;
  box-shadow: var(--alb-shadow-xs);
  transition: background var(--alb-dur), box-shadow var(--alb-dur);
}

.rs-page--home .see_more:hover {
  background: var(--alb-primary-dark);
  border-color: var(--alb-primary-dark);
  color: #fff;
  box-shadow: var(--alb-shadow-sm);
}

/* 31.4 Visa category cards (vc-visa-card) */
.rs-page--home .vc-visa-card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-lg);
  box-shadow: var(--alb-shadow-sm);
  transition: transform var(--alb-dur), box-shadow var(--alb-dur), border-color var(--alb-dur);
}

.rs-page--home .vc-visa-card:hover {
  transform: translateY(-4px);
  border-color: var(--alb-primary);
  box-shadow: var(--alb-shadow-md);
}

.rs-page--home .vc-card-header-custom {
  background: linear-gradient(135deg, var(--alb-primary) 0%, var(--alb-primary-deep) 100%);
  padding: 22px 16px;
}

.rs-page--home .vc-card-header-custom .vc-icon-wrapper {
  width: 64px;
  height: 64px;
  margin-bottom: 14px;
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
}

.rs-page--home .vc-card-header-custom i {
  color: #fff;
}

.rs-page--home .vc-visa-category-title {
  color: #fff;
}

.rs-page--home .vc-visa-subtitle {
  color: rgba(255, 255, 255, 0.85);
}

.rs-page--home .vc-card-body-custom {
  background: var(--alb-surface);
  padding: 18px;
}

.rs-page--home .vc-card-description {
  color: var(--alb-text);
}

.rs-page--home .vc-card-footer-custom {
  background: var(--alb-canvas);
  border-top: 1px solid var(--alb-line-soft);
}

.rs-page--home .vc-card-footer-custom p {
  color: var(--alb-text);
}

.rs-page--home .vc-card-footer-custom i {
  color: var(--alb-primary);
}

/* 31.5 Visa-type spec cards */
.rs-page--home .visa-type {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-left: 4px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 16px 18px;
  height: 100%;
  transition: border-color var(--alb-dur), box-shadow var(--alb-dur);
}

.rs-page--home .visa-type:hover {
  border-left-color: var(--alb-accent);
  box-shadow: var(--alb-shadow-sm);
}

.rs-page--home .visa-type h3 {
  color: var(--alb-ink);
  margin: 0 0 8px;
}

.rs-page--home .visa-type ul {
  margin: 12px 0 0;
}

.rs-page--home .visa-type li {
  padding: 7px 0;
  border-top: 1px solid var(--alb-line-soft);
  color: var(--alb-text);
}

.rs-page--home .visa-type li strong {
  color: var(--alb-primary-deep);
}

/* 31.6 General requirements - numbered chip list */
.rs-page--home ol {
  counter-reset: rs-home-req;
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
}

.rs-page--home ol li {
  counter-increment: rs-home-req;
  position: relative;
  padding: 12px 16px 12px 58px;
  margin-bottom: 8px;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  color: var(--alb-text);
}

.rs-page--home ol li::before {
  content: counter(rs-home-req);
  position: absolute;
  left: 14px;
  top: 12px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--alb-primary) 0%, var(--alb-primary-deep) 100%);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  border-radius: 50%;
}

.rs-page--home ol li strong {
  color: var(--alb-ink);
}

/* 31.7 How-to steps (step-contn) */
.rs-page--home .contn {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-lg);
  box-shadow: var(--alb-shadow-sm);
}

.rs-page--home .circle-rou {
  border-color: var(--alb-primary);
}

.rs-page--home .circle {
  background-color: var(--alb-canvas);
  color: var(--alb-primary);
  transition: background-color var(--alb-dur), color var(--alb-dur), transform var(--alb-dur);
}

.rs-page--home .step:hover .circle {
  transform: scale(1.04);
}

.rs-page--home .step.active .circle {
  background: linear-gradient(135deg, var(--alb-primary) 0%, var(--alb-primary-deep) 100%);
  color: #fff;
}

.rs-page--home .info-icon {
  background: var(--alb-surface);
  box-shadow: var(--alb-shadow-sm);
}

.rs-page--home .info-icon i {
  color: var(--alb-primary);
}

.rs-page--home .modal-header {
  background: linear-gradient(135deg, var(--alb-primary) 0%, var(--alb-primary-deep) 100%);
}

.rs-page--home .modal-body {
  background: var(--alb-canvas);
}

/* 31.8 Why-us boxes */
.rs-page--home .why-us .box {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
  transition: transform var(--alb-dur), box-shadow var(--alb-dur), border-color var(--alb-dur);
}

.rs-page--home .why-us .box:hover {
  transform: translateY(-4px);
  box-shadow: var(--alb-shadow-md);
  border-top-color: var(--alb-accent);
}

.rs-page--home .why-us .box h3 {
  color: var(--alb-ink);
}

.rs-page--home .why-us .box p {
  color: var(--alb-text);
}

.rs-page--home .why-us .box span.icon i {
  color: var(--alb-primary);
}

/* ========================================================================
    32. 404 (rs-page--404)
    ======================================================================== */

/* 32.1 Dotted canvas head band */
.rs-page--404 {
  background:
    radial-gradient(rgba(29, 123, 149, 0.14) 1.5px, transparent 1.5px) 0 0 / 18px 18px,
    linear-gradient(135deg, rgba(29, 123, 149, 0.07), var(--alb-canvas) 70%);
  border-bottom: 1px solid var(--alb-line-soft);
}

.rs-page--404 .bg-page-head {
  position: relative;
  overflow: hidden;
}

/* ghost 404 numeral sitting behind the heading */
.rs-page--404 .bg-page-head h1 {
  position: relative;
  z-index: 1;
  color: var(--alb-ink);
}

.rs-page--404 .bg-page-head h1::before {
  content: "404";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -54%);
  z-index: -1;
  font-size: 190px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 8px;
  color: rgba(29, 123, 149, 0.10);
  pointer-events: none;
}

@media (max-width: 575.98px) {
  .rs-page--404 .bg-page-head h1::before {
    font-size: 110px;
  }
}

/* ========================================================================
    33. Contact (rs-page--contact)
    ======================================================================== */

/* 33.1 Glass card with accent band */
.rs-page--contact .modern-contact-card {
  background: rgba(255, 255, 255, 0.9);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid var(--alb-line);
  border-top: 4px solid var(--alb-accent);
  border-radius: var(--alb-radius-lg);
  box-shadow: var(--alb-shadow-md);
}

/* 33.2 Labels, inputs, teal focus rings */
.rs-page--contact .modern-input-group label {
  color: var(--alb-text);
}

.rs-page--contact .modern-input-group input,
.rs-page--contact .modern-input-group textarea {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line);
  border-radius: var(--alb-radius-sm);
  color: var(--alb-ink);
}

.rs-page--contact .modern-input-group input:focus,
.rs-page--contact .modern-input-group textarea:focus {
  border-color: var(--alb-primary);
  box-shadow: var(--alb-ring);
}

.rs-page--contact .modern-contact-card .err {
  color: var(--alb-danger);
}

.rs-page--contact #message_successful {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line);
  color: var(--alb-text);
  padding: 10px 14px;
}

/* 33.3 Primary submit */
.rs-page--contact .modern-btn {
  background: var(--alb-primary);
  border-radius: 999px;
  box-shadow: var(--alb-shadow-sm);
}

.rs-page--contact .modern-btn:hover {
  background: var(--alb-primary-dark);
}

/* ========================================================================
    34. Long stay visa (rs-page--long-stay)
    ======================================================================== */

/* 34.1 Ledger h2 - teal spine + ghost section numeral */
.rs-page--long-stay {
  counter-reset: rs-ls-sec;
}

.rs-page--long-stay h2 {
  position: relative;
  margin: 48px 0 16px;
  padding: 4px 16px 4px 18px;
  border-left: 4px solid var(--alb-primary);
  background: var(--alb-surface);
  box-shadow: var(--alb-shadow-xs);
  color: var(--alb-ink);
}

.rs-page--long-stay h2::before {
  counter-increment: rs-ls-sec;
  content: counter(rs-ls-sec, decimal-leading-zero);
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 44px;
  font-weight: 800;
  line-height: 1;
  color: rgba(29, 123, 149, 0.14);
  pointer-events: none;
}

/* 34.2 Prose + custom-marked lists */
.rs-page--long-stay p {
  color: var(--alb-text);
  line-height: 1.75;
}

.rs-page--long-stay ul {
  list-style: none;
  padding-left: 0;
}

.rs-page--long-stay ul li {
  position: relative;
  padding: 10px 0 10px 30px;
  border-bottom: 1px solid var(--alb-line-soft);
  color: var(--alb-text);
  line-height: 1.7;
}

.rs-page--long-stay ul li::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 19px;
  width: 9px;
  height: 9px;
  background: var(--alb-accent);
  border-radius: 2px;
  transform: rotate(45deg);
}

.rs-page--long-stay ul li b {
  color: var(--alb-primary-deep);
}

/* ========================================================================
    35. News (rs-page--news)
    ======================================================================== */

/* 35.1 Flat deep-teal hero band */
.rs-page--news .rd-hero {
  background: var(--alb-primary-deep);
  border-bottom: 3px solid var(--alb-accent);
}

.rs-page--news .rd-hero h1 {
  color: #fff;
}

/* 35.2 White media cards */
.rs-page--news .info_container {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
  margin-bottom: 20px;
  padding: 14px;
  overflow: hidden;
  transition: border-color var(--alb-dur), box-shadow var(--alb-dur);
}

.rs-page--news .info_container:hover {
  border-color: var(--alb-primary);
  box-shadow: var(--alb-shadow-sm);
}

/* 35.3 Image pane + fallback tint */
.rs-page--news .n_img_sec {
  background-color: var(--alb-line-soft);
  background-size: cover;
  background-position: center;
}

/* 35.4 Play badge on video cards */
.rs-page--news .n_img_sec[data-video]::after {
  content: "\f04b";
  font-family: "FontAwesome";
  font-weight: 400;
  position: absolute;
  right: 10px;
  bottom: 10px;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 69, 80, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  color: #fff;
  font-size: 14px;
  line-height: 1;
}

/* 35.5 Card text */
.rs-page--news .nw_cnt_sec {
  padding: 6px 16px 10px 6px;
}

.rs-page--news .nw_cnt_sec h2 {
  color: var(--alb-ink);
}

.rs-page--news .nw_title_a {
  text-decoration: none;
}

.rs-page--news .nw_cnt_sec:hover h2 {
  color: var(--alb-primary);
}

.rs-page--news .news_cnt_p {
  color: var(--alb-muted);
}

/* 35.6 Center-image feature card (every 5th) - teal-dark overlay */
.rs-page--news .center_image .nw_section .nw_cnt_sec {
  background: rgba(15, 69, 80, 0.82);
}

.rs-page--news .center_image .nw_cnt_sec h2 {
  color: #fff;
}

.rs-page--news .center_image .nw_cnt_sec .news_cnt_p {
  color: rgba(255, 255, 255, 0.92);
}

/* 35.7 Sidebar retheme */
.rs-page--news .sidebar-card {
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-sm);
}

.rs-page--news .sidebar-title {
  color: var(--alb-ink);
  border-bottom: 2px solid var(--alb-accent);
}

.rs-page--news .sidebar-steps li {
  background: var(--alb-canvas);
  border-color: var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
}

.rs-page--news .sidebar-steps li i {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line);
  border-radius: 8px;
  color: var(--alb-primary);
}

.rs-page--news .sidebar-recent-item-inner {
  border-color: var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
}

.rs-page--news .sidebar-recent-item:hover .sidebar-recent-item-inner {
  border-color: var(--alb-primary);
  background: var(--alb-canvas);
}

.rs-page--news .color a {
  color: var(--alb-ink);
}

.rs-page--news .color a:hover {
  color: var(--alb-primary);
  opacity: 1;
}

.rs-page--news #seeMoreBtn {
  background-color: var(--alb-primary);
  border-color: var(--alb-primary);
}

.rs-page--news #seeMoreBtn:hover,
.rs-page--news #seeMoreBtn.is-expanded {
  background-color: var(--alb-primary-dark);
  border-color: var(--alb-primary-dark);
}

/* ========================================================================
    36. Article (rs-page--article)
    ======================================================================== */

/* 36.1 Reading sheet */
.rs-page--article .news_data {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-lg);
  box-shadow: var(--alb-shadow-sm);
  overflow: hidden;
}

.rs-page--article .append_news_section {
  padding: 28px 32px 30px;
}

/* 36.2 Title keyline */
.rs-page--article .news_title_h {
  color: var(--alb-ink);
  padding-bottom: 16px;
  border-bottom: 3px solid var(--alb-accent);
  margin-bottom: 22px;
}

/* 36.3 Raw article content - descendant rules only, no font sizes */
.rs-page--article .news_detail_div {
  color: var(--alb-text);
  line-height: 1.75;
}

.rs-page--article .news_detail_div h1,
.rs-page--article .news_detail_div h2,
.rs-page--article .news_detail_div h3,
.rs-page--article .news_detail_div h4 {
  color: var(--alb-primary-deep);
  margin: 28px 0 12px;
}

.rs-page--article .news_detail_div a {
  color: var(--alb-primary-dark);
}

.rs-page--article .news_detail_div blockquote {
  border-left: 4px solid var(--alb-accent);
  background: var(--alb-canvas);
  padding: 14px 18px;
  border-radius: 0 var(--alb-radius-sm) var(--alb-radius-sm) 0;
  color: var(--alb-text);
}

.rs-page--article .news_detail_div img {
  border-radius: var(--alb-radius-sm);
}

/* 36.4 Vote + share restyle */
.rs-page--article .response_section {
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid var(--alb-line-soft);
}

.rs-page--article .upvote_sec i {
  color: var(--alb-primary);
  font-size: 18px;
  transition: transform var(--alb-dur), color var(--alb-dur);
}

.rs-page--article .upvote_sec i:hover {
  transform: scale(1.15);
  color: var(--alb-primary-deep);
}

.rs-page--article .downvote_sec i {
  color: var(--alb-muted);
  transition: transform var(--alb-dur), color var(--alb-dur);
}

.rs-page--article .downvote_sec i:hover {
  transform: scale(1.15);
  color: var(--alb-danger);
}

.rs-page--article .share_post_btn {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line);
  border-radius: 999px;
  color: var(--alb-primary-deep);
  padding: 7px 14px;
  font-size: 15px;
  transition: background var(--alb-dur), color var(--alb-dur), border-color var(--alb-dur);
}

.rs-page--article .share_post_btn:hover {
  background: var(--alb-primary);
  border-color: var(--alb-primary);
  color: #fff;
}

.rs-page--article .social_icon li {
  border-radius: 8px;
  margin-left: 6px;
  transition: transform var(--alb-dur), box-shadow var(--alb-dur);
}

.rs-page--article .social_icon li:hover {
  transform: translateY(-2px);
  box-shadow: var(--alb-shadow-sm);
}

/* ========================================================================
    37. Privacy policy (rs-page--privacy)
    ======================================================================== */

/* 37.1 Centered paper sheet */
.rs-page--privacy {
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 4px solid var(--alb-accent);
  border-radius: var(--alb-radius-lg);
  box-shadow: var(--alb-shadow-sm);
  padding: 38px 44px 44px;
}

@media (max-width: 575.98px) {
  .rs-page--privacy {
    padding: 24px 18px 28px;
  }
}

/* 37.2 Accent-kicker headings + prose */
.rs-page--privacy h2 {
  color: var(--alb-ink);
  margin: 34px 0 12px;
  padding-left: 14px;
  border-left: 4px solid var(--alb-accent);
}

.rs-page--privacy h2:first-child {
  margin-top: 0;
}

.rs-page--privacy p {
  color: var(--alb-text);
  line-height: 1.75;
}

.rs-page--privacy ol,
.rs-page--privacy ul {
  color: var(--alb-text);
}

.rs-page--privacy li {
  line-height: 1.7;
}

.rs-page--privacy a {
  color: var(--alb-primary-dark);
}

/* ========================================================================
    38. Terms (rs-page--terms)
    ======================================================================== */

/* 38.1 Ledger sheet */
.rs-page--terms {
  counter-reset: rs-term-sec;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-lg);
  box-shadow: var(--alb-shadow-sm);
  padding: 34px 40px 40px;
}

@media (max-width: 575.98px) {
  .rs-page--terms {
    padding: 22px 16px 26px;
  }
}

/* 38.2 Ghost-numbered h2 ledger rows */
.rs-page--terms h2 {
  position: relative;
  z-index: 0;
  color: var(--alb-ink);
  margin: 42px 0 14px;
  padding: 16px 18px 14px 64px;
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
}

.rs-page--terms h2:first-child {
  margin-top: 0;
}

.rs-page--terms h2::before {
  counter-increment: rs-term-sec;
  content: counter(rs-term-sec, decimal-leading-zero);
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: -1;
  font-size: 56px;
  font-weight: 800;
  line-height: 1;
  color: rgba(29, 123, 149, 0.16);
  pointer-events: none;
}

/* 38.3 h3 accent rule + prose */
.rs-page--terms h3 {
  color: var(--alb-primary-deep);
  margin: 26px 0 10px;
  padding: 4px 0 4px 14px;
  border-left: 4px solid var(--alb-accent);
}

.rs-page--terms p {
  color: var(--alb-text);
  line-height: 1.75;
}

.rs-page--terms li {
  color: var(--alb-text);
  line-height: 1.7;
}

.rs-page--terms a {
  color: var(--alb-primary-dark);
}

/* ========================================================================
    39. Embassy / consulates lists (rs-page--embassy-list)
    ======================================================================== */

/* 39.1 Panel cards */
.rs-page--embassy-list .col-md-6 > div {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
  padding: 18px 16px 14px;
  margin-bottom: 26px;
}

/* 39.2 Panel headings */
.rs-page--embassy-list h2.after1 {
  color: var(--alb-ink);
  font-weight: 700;
  letter-spacing: 0.2px;
}

/* 39.3 Country rows - inset accent bar + chevron on hover */
.rs-page--embassy-list .li_cls {
  margin: 0;
  padding: 0;
  list-style: none;
}

.rs-page--embassy-list .li_cls li {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 11px 36px 11px 14px;
  border: none;
  border-bottom: 1px solid var(--alb-line-soft);
  border-left: 3px solid transparent;
  border-radius: var(--alb-radius-sm);
  transition: background var(--alb-dur), border-color var(--alb-dur);
}

.rs-page--embassy-list .li_cls li:hover {
  background: var(--alb-canvas);
  border-left-color: var(--alb-accent);
}

.rs-page--embassy-list .li_cls li::after {
  content: "\f105";
  font-family: "FontAwesome";
  font-weight: 400;
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%) translateX(-4px);
  color: var(--alb-primary);
  font-size: 13px;
  opacity: 0;
  transition: opacity var(--alb-dur), transform var(--alb-dur);
}

.rs-page--embassy-list .li_cls li:hover::after {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}

.rs-page--embassy-list .li_cls a {
  color: var(--alb-primary-dark);
  font-weight: 600;
  text-decoration: none;
  transition: color var(--alb-dur);
}

.rs-page--embassy-list .li_cls a:hover {
  color: var(--alb-primary-deep);
}

/* 39.4 Load-More pill (the sh_more_l indigo from the page inline style
   block is the one !important we have to beat) */
.rs-page--embassy-list .more_ul li div,
.rs-page--embassy-list .sh_more_l div {
  display: inline-block;
  width: auto;
  margin: 10px auto 4px;
  padding: 8px 24px;
  background: var(--alb-primary) !important;
  color: #fff;
  font-weight: 600;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: var(--alb-shadow-xs);
  transition: background var(--alb-dur), box-shadow var(--alb-dur);
}

.rs-page--embassy-list .more_ul li div:hover,
.rs-page--embassy-list .sh_more_l div:hover {
  background: var(--alb-primary-dark) !important;
  box-shadow: var(--alb-shadow-sm);
}

/* ========================================================================
    40. Embassy / consulate detail (rs-page--embassy-detail)
    ======================================================================== */

/* 40.1 Framed dossier card */
.rs-page--embassy-detail .p-3.shadow {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 4px solid var(--alb-primary);
  border-radius: var(--alb-radius-lg);
  box-shadow: var(--alb-shadow-md);
}

/* 40.2 Label/value rows */
.rs-page--embassy-detail p {
  color: var(--alb-text);
}

.rs-page--embassy-detail .dttbl {
  width: 100%;
  border-collapse: collapse;
}

.rs-page--embassy-detail .dttbl tr {
  border-bottom: 1px solid var(--alb-line-soft);
}

.rs-page--embassy-detail .dttbl tr:last-child {
  border-bottom: none;
}

.rs-page--embassy-detail .dttbl td {
  padding: 10px 12px 10px 0;
  color: var(--alb-text);
  vertical-align: top;
}

.rs-page--embassy-detail .dttbl td:first-child strong {
  color: var(--alb-primary-deep);
}

/* 40.3 Map card */
.rs-page--embassy-detail #emb_map {
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  overflow: hidden;
  box-shadow: var(--alb-shadow-xs);
}

.rs-page--embassy-detail #emb_map iframe {
  border-radius: var(--alb-radius-sm);
}

/* 40.4 Collapsible blocks - outer card, inner de-carded */
.rs-page--embassy-detail .block_div {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
  margin-bottom: 18px;
}

.rs-page--embassy-detail .block_div .block_div {
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
  margin: 0;
  padding: 4px 6px 10px;
}

.rs-page--embassy-detail .granted_visa_type {
  cursor: pointer;
  color: var(--alb-primary-deep);
  font-weight: 700;
  margin: 0 0 8px;
}

/* 40.5 Other representations hover grid */
.rs-page--embassy-detail .card.cls1 {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  transition: transform var(--alb-dur), box-shadow var(--alb-dur), border-color var(--alb-dur);
}

.rs-page--embassy-detail .card.cls1:hover {
  transform: translateY(-3px);
  border-color: var(--alb-primary);
  box-shadow: var(--alb-shadow-sm);
}

.rs-page--embassy-detail .card.cls1 p {
  color: var(--alb-text);
}

/* 40.6 City headings + comment strip */
.rs-page--embassy-detail .city_name h3 a {
  color: var(--alb-ink);
  transition: color var(--alb-dur);
}

.rs-page--embassy-detail .city_name h3 a:hover {
  color: var(--alb-primary);
}

.rs-page--embassy-detail .emb_comment_div {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line);
  border-radius: var(--alb-radius-sm);
}

/* 40.7 Panel headings + submit button */
.rs-page--embassy-detail h2.after1 {
  color: var(--alb-ink);
}

.rs-page--embassy-detail .btn.btn-info {
  background: var(--alb-primary);
  border: 1px solid var(--alb-primary);
  color: #fff;
  transition: background var(--alb-dur), color var(--alb-dur), border-color var(--alb-dur);
}

.rs-page--embassy-detail .btn.btn-info:hover {
  background: var(--alb-primary-dark);
  border-color: var(--alb-primary-dark);
  color: #fff;
}

/* 40.8 Flag aside */
.rs-page--embassy-detail .flag_aside img {
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-sm);
}


/* ==========================================================================
    41. Visa application status (rs-page--visa-status)
    ======================================================================== */

/* 41.1 Breadcrumb strip */
.rs-page--visa-status .bg-light {
  background: var(--alb-canvas);
  border-bottom: 1px solid var(--alb-line-soft);
}

.rs-page--visa-status .breadcrumb-item {
  color: var(--alb-muted);
  font-size: 14px;
}

.rs-page--visa-status .breadcrumb-item a {
  color: var(--alb-muted);
  transition: color var(--alb-dur);
}

.rs-page--visa-status .breadcrumb-item a:hover {
  color: var(--alb-primary);
}

.rs-page--visa-status .breadcrumb-item + .breadcrumb-item::before {
  color: var(--alb-muted);
}

.rs-page--visa-status .breadcrumb-item:last-child {
  color: var(--alb-ink);
  font-weight: 600;
}

.rs-page--visa-status .breadcrumb-item i.fa {
  color: var(--alb-primary);
}

/* 41.2 Deep-teal status band */
.rs-page--visa-status .hide-head {
  position: relative;
  overflow: hidden;
  background: var(--alb-primary-deep);
  border-bottom: 3px solid var(--alb-accent);
}

/* ghost fa-signal glyph behind the heading */
.rs-page--visa-status .hide-head::before {
  content: "\f012";
  position: absolute;
  font-family: "FontAwesome";
  font-weight: 400;
  font-size: 130px;
  line-height: 1;
  right: 5%;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(255, 255, 255, 0.07);
  pointer-events: none;
}

.rs-page--visa-status .hide-head h1 {
  position: relative;
  z-index: 1;
  color: #fff !important;
  padding: 26px 0 30px;
}

@media (max-width: 767.98px) {
  .rs-page--visa-status .hide-head .px-md-5 {
    padding-left: 16px;
    padding-right: 16px;
  }

  .rs-page--visa-status .hide-head::before {
    font-size: 84px;
    right: 2%;
  }
}

@media (max-width: 575.98px) {
  .rs-page--visa-status .hide-head::before {
    display: none;
  }

  .rs-page--visa-status .hide-head h1 {
    padding: 20px 0 24px;
  }
}

/* 41.3 Console form card */
.rs-page--visa-status .vs-section {
  padding: 36px 0 10px;
}

.rs-page--visa-status .vs-form-card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 4px solid var(--alb-primary);
  border-radius: var(--alb-radius-lg);
  box-shadow: var(--alb-shadow-md);
  padding: 26px 22px 28px;
}

.rs-page--visa-status .vs-form-title {
  margin-bottom: 18px;
  border-bottom: 0;
}

/* live-status pulse dot beside the form title */
.rs-page--visa-status .vs-form-title::before {
  content: "";
  display: inline-block;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--alb-primary);
  margin-right: 10px;
  vertical-align: middle;
  animation: rsVsPulse 2s ease-out infinite;
}

@keyframes rsVsPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(29, 123, 149, 0.45);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(29, 123, 149, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(29, 123, 149, 0);
  }
}

/* 41.4 Fields */
.rs-page--visa-status .vs-field label {
  color: var(--alb-ink);
}

.rs-page--visa-status .vs-field label span {
  color: var(--alb-danger);
}

.rs-page--visa-status .vs-field input[type="text"] {
  border: 1px solid var(--alb-line);
  border-radius: var(--alb-radius-sm);
  color: var(--alb-ink);
}

.rs-page--visa-status .vs-field input[type="text"]:focus {
  border-color: var(--alb-primary);
  box-shadow: var(--alb-ring);
}

.rs-page--visa-status .vs-captcha-row img#captcha_img {
  border: 1px solid var(--alb-line);
  border-radius: var(--alb-radius-sm);
}

.rs-page--visa-status .vs-captcha-row .captcha_refresh {
  color: var(--alb-primary);
}

.rs-page--visa-status .vs-captcha-row .captcha_refresh:hover {
  color: var(--alb-primary-deep);
}

.rs-page--visa-status .vs-captcha-input input[type="text"] {
  border: 1px solid var(--alb-line);
  border-radius: var(--alb-radius-sm);
  color: var(--alb-ink);
}

.rs-page--visa-status .vs-captcha-input input[type="text"]:focus {
  border-color: var(--alb-primary);
  box-shadow: var(--alb-ring);
}

/* 41.5 Full-width deep CTA */
.rs-page--visa-status .vs-submit-row {
  text-align: center;
  margin-top: 18px;
}

.rs-page--visa-status .vs-form-card .vs-submit-btn {
  width: 100%;
  min-width: 0;
  height: 48px;
  background: var(--alb-primary-deep);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
}

.rs-page--visa-status .vs-form-card button.vs-submit-btn:hover:not(:disabled) {
  background: var(--alb-primary-dark);
  box-shadow: var(--alb-shadow-sm);
}

/* 41.6 Right column text */
.rs-page--visa-status .vs-right p {
  color: var(--alb-text);
}

.rs-page--visa-status .vs-right .vs-intro {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-left: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  padding: 12px 16px;
  margin-bottom: 18px;
}

/* 41.7 Step heading with accent badge */
.rs-page--visa-status .vs-right h3 {
  color: var(--alb-ink);
  margin: 28px 0 12px;
}

.rs-page--visa-status .vs-right h3::before {
  content: "4";
  display: inline-block;
  width: 32px;
  height: 32px;
  border-radius: var(--alb-radius-sm);
  background: var(--alb-accent);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  line-height: 32px;
  text-align: center;
  margin-right: 12px;
  vertical-align: middle;
}

/* 41.8 Numbered signal steps */
.rs-page--visa-status .vs-right ol {
  list-style: none;
  padding: 0;
  margin: 0 0 6px;
  counter-reset: rsVsStep;
}

.rs-page--visa-status .vs-right ol li {
  position: relative;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
  padding: 14px 16px 14px 60px;
  margin-bottom: 10px;
}

.rs-page--visa-status .vs-right ol li::before {
  content: counter(rsVsStep);
  counter-increment: rsVsStep;
  position: absolute;
  left: 16px;
  top: 14px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--alb-primary);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 32px;
  text-align: center;
}

/* connector between step cards */
.rs-page--visa-status .vs-right ol li::after {
  content: "";
  position: absolute;
  left: 31px;
  top: 100%;
  width: 2px;
  height: 10px;
  background: var(--alb-line-soft);
}

.rs-page--visa-status .vs-right ol li:last-child::after {
  display: none;
}

/* 41.9 Result banners */
.rs-page--visa-status #bottom_div_up,
.rs-page--visa-status #bottom_div_down_up,
.rs-page--visa-status #bottom_div_close,
.rs-page--visa-status #bottom_div_reject,
.rs-page--visa-status #bottom_div {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-left: 6px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-sm);
  padding: 24px 26px;
  margin-top: 24px;
}

.rs-page--visa-status #bottom_div_up {
  border-left-color: var(--alb-warning);
}

.rs-page--visa-status #bottom_div_down_up,
.rs-page--visa-status #bottom_div_reject {
  border-left-color: var(--alb-danger);
}

.rs-page--visa-status #bottom_div_close {
  border-left-color: var(--alb-muted);
}

.rs-page--visa-status #bottom_div p,
.rs-page--visa-status #bottom_div li {
  color: var(--alb-text);
}

/* 41.10 Visa details grid */
.rs-page--visa-status #bottom_div .visa-details-grid {
  max-width: 780px;
  margin: 0 0 20px;
}

.rs-page--visa-status #bottom_div .visa-detail-row {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line-soft);
  border-radius: var(--alb-radius-sm);
  padding: 10px 14px;
}

.rs-page--visa-status #bottom_div .visa-detail-label {
  color: var(--alb-primary-deep);
}

.rs-page--visa-status #bottom_div .visa-detail-value {
  color: var(--alb-ink);
  font-weight: 600;
}

/* 41.11 Contact pills */
.rs-page--visa-status .vs-contact-pill {
  background: var(--alb-canvas);
  border: 1px solid var(--alb-line);
  box-shadow: var(--alb-shadow-xs);
}

.rs-page--visa-status .vs-contact-row .vs-contact-pill:hover {
  background: var(--alb-surface);
  border-color: var(--alb-primary);
  box-shadow: var(--alb-shadow-sm);
  color: var(--alb-primary-deep);
}

.rs-page--visa-status .vs-contact-pill .vs-cp-icon {
  background: rgba(29, 123, 149, 0.12);
}

.rs-page--visa-status .vs-contact-pill .vs-cp-icon i {
  color: var(--alb-primary-deep);
}

.rs-page--visa-status .vs-contact-pill .vs-cp-title {
  color: var(--alb-ink);
}

.rs-page--visa-status .vs-contact-pill .vs-cp-sub {
  color: var(--alb-muted);
}

/* 41.12 Subscribe rail */
.rs-page--visa-status .vs-subscribe-outer {
  background: var(--alb-canvas);
  border-top: 1px solid var(--alb-line-soft);
  padding: 32px 16px 36px;
}

.rs-page--visa-status .vs-subscribe-card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-left: 4px solid var(--alb-primary);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-sm);
  padding: 18px 24px;
}

.rs-page--visa-status .vs-subscribe-card .vs-subscribe-title {
  color: var(--alb-ink);
}

.rs-page--visa-status .vs-subscribe-card .vs-subscribe-subtitle {
  color: var(--alb-muted);
}

.rs-page--visa-status .vs-nl-form {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line);
  border-radius: var(--alb-radius-sm);
}

.rs-page--visa-status .vs-nl-form:focus {
  border-color: var(--alb-primary);
  box-shadow: var(--alb-ring);
}

.rs-page--visa-status .vs-nl-submit-btn {
  background: var(--alb-primary-deep);
  border-radius: var(--alb-radius-sm);
}

.rs-page--visa-status form.vs-nl-form-wrapper .vs-nl-submit-btn:hover {
  background: var(--alb-primary);
}

.rs-page--visa-status .vs-nl-no-spam {
  color: var(--alb-muted);
}

/* 41.13 Small screens */
@media (max-width: 599.98px) {
  .rs-page--visa-status .vs-right ol li {
    padding: 12px 14px 12px 52px;
  }

  .rs-page--visa-status #bottom_div_up,
  .rs-page--visa-status #bottom_div_down_up,
  .rs-page--visa-status #bottom_div_close,
  .rs-page--visa-status #bottom_div_reject,
  .rs-page--visa-status #bottom_div {
    padding: 18px 16px;
  }

  .rs-page--visa-status .vs-subscribe-card {
    padding: 16px 18px;
  }
}


/* ==========================================================================
    42. Complete ongoing application (rs-page--complete-partially)
    ======================================================================== */

/* 42.1 Breadcrumb with gold underline */
.rs-page--complete-partially .bg-light {
  background: var(--alb-canvas);
  border-bottom: 2px solid var(--alb-accent);
}

.rs-page--complete-partially .breadcrumb-item {
  color: var(--alb-muted);
  font-size: 14px;
}

.rs-page--complete-partially .breadcrumb-item a {
  color: var(--alb-muted);
  transition: color var(--alb-dur);
}

.rs-page--complete-partially .breadcrumb-item a:hover {
  color: var(--alb-accent-dark);
}

.rs-page--complete-partially .breadcrumb-item + .breadcrumb-item::before {
  color: var(--alb-accent-dark);
}

.rs-page--complete-partially .breadcrumb-item:last-child {
  color: var(--alb-ink);
  font-weight: 600;
}

.rs-page--complete-partially .breadcrumb-item i.fa {
  color: var(--alb-accent-dark);
}

/* 42.2 White head band with gold rail */
.rs-page--complete-partially .header-section {
  position: relative;
  overflow: hidden;
  background: var(--alb-surface);
  border-bottom: 1px solid var(--alb-line-soft);
  border-top: 4px solid var(--alb-accent);
  box-shadow: var(--alb-shadow-xs);
}

/* ghost fa-play-circle glyph behind the heading */
.rs-page--complete-partially .header-section::before {
  content: "\f144";
  position: absolute;
  font-family: "FontAwesome";
  font-weight: 400;
  font-size: 130px;
  line-height: 1;
  right: 5%;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(232, 161, 60, 0.16);
  pointer-events: none;
}

.rs-page--complete-partially .header-section h1 {
  position: relative;
  z-index: 1;
  color: var(--alb-ink);
  padding: 30px 0 34px;
}

@media (max-width: 767.98px) {
  .rs-page--complete-partially .header-section .px-md-5 {
    padding-left: 16px;
    padding-right: 16px;
  }

  .rs-page--complete-partially .header-section::before {
    font-size: 84px;
    right: 2%;
  }
}

@media (max-width: 575.98px) {
  .rs-page--complete-partially .header-section::before {
    display: none;
  }

  .rs-page--complete-partially .header-section h1 {
    padding: 22px 0 26px;
  }
}

/* 42.3 Gold-rail form card */
.rs-page--complete-partially .cp-section {
  padding: 36px 0 10px;
}

.rs-page--complete-partially .cp-form-card {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 4px solid var(--alb-accent);
  border-radius: var(--alb-radius-lg);
  box-shadow: var(--alb-shadow-md);
  padding: 24px 20px 28px;
}

.rs-page--complete-partially .cp-form-title {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  border-bottom: 0;
}

/* play chip beside the form title */
.rs-page--complete-partially .cp-form-title::before {
  content: "\f144";
  font-family: "FontAwesome";
  font-weight: 400;
  width: 30px;
  height: 30px;
  border-radius: var(--alb-radius-sm);
  background: rgba(232, 161, 60, 0.16);
  color: var(--alb-accent-dark);
  font-size: 15px;
  line-height: 30px;
  text-align: center;
  margin-right: 10px;
  flex-shrink: 0;
}

/* 42.4 Fields */
.rs-page--complete-partially .cp-field label {
  color: var(--alb-ink);
}

.rs-page--complete-partially .cp-field label span {
  color: var(--alb-danger);
}

.rs-page--complete-partially .cp-field input[type="text"] {
  border: 1px solid var(--alb-line);
  border-radius: var(--alb-radius-sm);
  color: var(--alb-ink);
}

.rs-page--complete-partially .cp-field input[type="text"]:focus {
  border-color: var(--alb-accent-dark);
  background: var(--alb-surface);
  box-shadow: 0 0 0 3px rgba(232, 161, 60, 0.25);
}

.rs-page--complete-partially .cp-captcha-row img#captcha_img {
  border: 1px solid var(--alb-line);
  border-radius: var(--alb-radius-sm);
}

.rs-page--complete-partially .cp-captcha-row .captcha_refresh {
  color: var(--alb-accent-dark);
}

.rs-page--complete-partially .cp-captcha-row .captcha_refresh:hover {
  color: var(--alb-ink);
}

.rs-page--complete-partially .cp-captcha-input input[type="text"] {
  border: 1px solid var(--alb-line);
  border-radius: var(--alb-radius-sm);
  color: var(--alb-ink);
}

.rs-page--complete-partially .cp-captcha-input input[type="text"]:focus {
  border-color: var(--alb-accent-dark);
  background: var(--alb-surface);
  box-shadow: 0 0 0 3px rgba(232, 161, 60, 0.25);
}

/* 42.5 Gold CTA */
.rs-page--complete-partially .cp-submit-row {
  margin-top: 18px;
}

.rs-page--complete-partially .cp-form-card .cp-submit-btn {
  width: 100%;
  min-width: 0;
  height: 48px;
  background: var(--alb-accent);
  color: var(--alb-ink);
  border-radius: var(--alb-radius-sm);
  box-shadow: var(--alb-shadow-xs);
}

.rs-page--complete-partially .cp-form-card button.cp-submit-btn:hover:not(:disabled) {
  background: var(--alb-accent-dark);
  color: var(--alb-ink);
  box-shadow: var(--alb-shadow-sm);
}

/* 42.6 Right column */
.rs-page--complete-partially .cp-right p {
  color: var(--alb-text);
}

.rs-page--complete-partially .cp-right h3 {
  color: var(--alb-ink);
  margin: 4px 0 14px;
  padding-left: 14px;
  border-left: 4px solid var(--alb-accent);
}

/* 42.7 Checklist steps */
.rs-page--complete-partially .cp-right ol {
  list-style: none;
  padding: 0;
  margin: 0 0 6px;
}

.rs-page--complete-partially .cp-right ol li {
  position: relative;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-left: 3px solid var(--alb-accent);
  border-radius: var(--alb-radius-sm);
  padding: 12px 16px 12px 48px;
  margin-bottom: 8px;
}

.rs-page--complete-partially .cp-right ol li::before {
  content: "\f058";
  font-family: "FontAwesome";
  font-weight: 400;
  position: absolute;
  left: 15px;
  top: 11px;
  color: var(--alb-accent-dark);
  font-size: 22px;
  line-height: 1;
}

/* 42.8 Fresh-start line */
.rs-page--complete-partially .cp-apply-line {
  background: rgba(232, 161, 60, 0.10);
  border: 1px solid rgba(232, 161, 60, 0.35);
  border-radius: var(--alb-radius-sm);
  padding: 14px 16px;
}

.rs-page--complete-partially .cp-apply-line a {
  color: var(--alb-accent-dark);
}

.rs-page--complete-partially .cp-apply-line a:hover {
  color: var(--alb-ink);
}

/* 42.9 Success container */
.rs-page--complete-partially #bottom_container .form_container {
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 4px solid var(--alb-success);
  border-radius: var(--alb-radius-lg);
  box-shadow: var(--alb-shadow-sm);
  padding: 24px;
  margin-top: 24px;
}

/* 42.10 Small screens */
@media (max-width: 599.98px) {
  .rs-page--complete-partially .cp-right ol li {
    padding: 12px 14px 12px 44px;
  }

  .rs-page--complete-partially .cp-right ol li::before {
    left: 12px;
  }

  .rs-page--complete-partially #bottom_container .form_container {
    padding: 18px;
  }
}


/* ==========================================================================
    43. Space-fillers: process field badge grid + transit step cards
    ======================================================================== */

/* 43.1 Process step field lists -> badge grid
   (Step 1 register fields, passport fields, host fields, processing times) */
.rs-page--process #step1 + p + ul,
.rs-page--process .visa-types-section + p + ul,
.rs-page--process #step3-host + p + ul,
.rs-page--process #step5 + p + ul {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(215px, 1fr));
  gap: 10px;
  margin: 14px 0 16px;
}

.rs-page--process #step1 + p + ul > li,
.rs-page--process .visa-types-section + p + ul > li,
.rs-page--process #step3-host + p + ul > li,
.rs-page--process #step5 + p + ul > li {
  margin-bottom: 0;
  align-items: center;
  min-height: 44px;
}

/* dot stays, now vertically centered inside the badge */
.rs-page--process #step1 + p + ul > li::before,
.rs-page--process .visa-types-section + p + ul > li::before,
.rs-page--process #step3-host + p + ul > li::before,
.rs-page--process #step5 + p + ul > li::before {
  top: 50%;
  transform: translateY(-50%);
}

/* 43.2 Transit application steps -> card grid */
.rs-page--transit .rs-transit-steps {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
  gap: 14px;
  margin: 14px 0 18px;
}

/* intro line spans the full row */
.rs-page--transit .rs-transit-steps > p:first-child {
  grid-column: 1 / -1;
  margin: 0;
}

/* each step becomes a card */
.rs-page--transit .rs-transit-steps p {
  margin: 0;
  padding: 16px 18px;
  background: var(--alb-surface);
  border: 1px solid var(--alb-line-soft);
  border-top: 3px solid var(--alb-primary);
  border-radius: var(--alb-radius);
  box-shadow: var(--alb-shadow-xs);
}

/* "Step N:" becomes a teal chip */
.rs-page--transit .rs-transit-steps p > strong:first-child {
  display: inline-block;
  background: var(--alb-primary);
  color: #fff;
  border-radius: 999px;
  padding: 2px 12px;
  margin-right: 8px;
  line-height: 1.6;
}

/* timeline dot + connector line are replaced by the card chrome */
.rs-page--transit .rs-transit-steps p::before,
.rs-page--transit .rs-transit-steps p::after {
  content: none;
}

/* final step card spans the full row */
.rs-page--transit .rs-transit-steps p:last-child {
  grid-column: 1 / -1;
}
