/* AzarMehr FD self-hosted font stack.
   Font files are expected to exist once on the main host and are reused by all language sites. */
@font-face {
  font-family: "AzarMehr FD";
  src: url("/wp-content/uploads/2026/03/100-AzarMehr-FD-Thin.woff2") format("woff2"),
       url("/wp-content/uploads/2026/03/100-AzarMehr-FD-Thin.ttf") format("truetype");
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "AzarMehr FD";
  src: url("/wp-content/uploads/2026/03/200-AzarMehr-FD-ExtraLight.woff2") format("woff2"),
       url("/wp-content/uploads/2026/03/200-AzarMehr-FD-ExtraLight.ttf") format("truetype");
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "AzarMehr FD";
  src: url("/wp-content/uploads/2026/03/300-AzarMehr-FD-Light.woff2") format("woff2"),
       url("/wp-content/uploads/2026/03/300-AzarMehr-FD-Light.ttf") format("truetype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "AzarMehr FD";
  src: url("/wp-content/uploads/2026/03/400-AzarMehr-FD-Regular.woff2") format("woff2"),
       url("/wp-content/uploads/2026/03/400-AzarMehr-FD-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "AzarMehr FD";
  src: url("/wp-content/uploads/2026/03/500-AzarMehr-FD-Medium.woff2") format("woff2"),
       url("/wp-content/uploads/2026/03/500-AzarMehr-FD-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "AzarMehr FD";
  src: url("/wp-content/uploads/2026/03/600-AzarMehr-FD-SemiBold.woff2") format("woff2"),
       url("/wp-content/uploads/2026/03/600-AzarMehr-FD-SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "AzarMehr FD";
  src: url("/wp-content/uploads/2026/03/700-AzarMehr-FD-Bold.woff2") format("woff2"),
       url("/wp-content/uploads/2026/03/700-AzarMehr-FD-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "AzarMehr FD";
  src: url("/wp-content/uploads/2026/03/800-AzarMehr-FD-ExtraBold.woff2") format("woff2"),
       url("/wp-content/uploads/2026/03/800-AzarMehr-FD-ExtraBold.ttf") format("truetype");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "AzarMehr FD";
  src: url("/wp-content/uploads/2026/03/900-AzarMehr-FD-Black.woff2") format("woff2"),
       url("/wp-content/uploads/2026/03/900-AzarMehr-FD-Black.ttf") format("truetype");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --plx-bg: #fdfbf7;
  --plx-bg-soft: #f5f1f7;
  --plx-bg-cream: #f7f2ea;
  --plx-surface: #ffffff;
  --plx-text: #1f2937;
  --plx-muted: #4b5563;
  --plx-brand: #1f2937;
  --plx-brand-dark: #111827;
  --plx-accent: #6b577a;
  --plx-accent-dark: #4a3756;
  --plx-accent-soft: #f5f1f7;
  --plx-accent-on-dark: #c7b6d8;
  --plx-border: #e5e0d8;
  --plx-shadow: 0 24px 70px rgba(31, 41, 55, 0.10);
  --plx-radius-lg: 28px;
  --plx-radius-md: 18px;
  --plx-container: 1300px;
  --plx-font-fa: "AzarMehr FD", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --plx-font-en: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --plx-font: var(--plx-font-fa);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--plx-bg);
  color: var(--plx-text);
  font-family: var(--plx-font);
  line-height: 1.75;
  text-rendering: optimizeLegibility;
}


body.plx-lang-en {
  font-family: var(--plx-font-en);
}

body.plx-lang-fa,
body.plx-lang-ar {
  font-family: var(--plx-font-fa);
}

body.plx-menu-open { overflow: hidden; overscroll-behavior: none; }

/* Plain textarea output: one Enter creates a line break; a blank line starts a
   visually distinct paragraph. The wrapper keeps existing component spacing
   intact while preventing default paragraph margins from accumulating. */
.plx-multiline-text > :first-child { margin-block-start: 0; }
.plx-multiline-text > :last-child { margin-block-end: 0; }
.plx-multiline-text > p + p { margin-block-start: .82em; }


/* Mobile navigation keeps the page visually recessed while the menu is active.
   The header/panel sit above this layer (header z-index: 50), so only background
   content is softened and cannot visually compete with the navigation. */
@media (max-width: 1020px) {
  body::before {
    content: '';
    position: fixed;
    inset: var(--plx-mobile-header-height, 72px) 0 0;
    z-index: 49;
    background: rgba(31, 41, 55, 0.14);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .28s cubic-bezier(.22, 1, .36, 1), visibility 0s linear .28s;
  }

  body.plx-menu-open::before {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }
}

a { color: inherit; text-decoration: none; }

img { max-width: 100%; height: auto; display: block; }

button, input, textarea, select { font: inherit; }

.screen-reader-text,
.plx-skip-link:not(:focus) {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.plx-skip-link:focus {
  position: fixed;
  inset-block-start: 14px;
  inset-inline-start: 14px;
  z-index: 9999;
  padding: 10px 18px;
  border-radius: 999px;
  background: var(--plx-brand);
  color: #fff;
  box-shadow: var(--plx-shadow);
}

.plx-container {
  width: min(calc(100% - 64px), var(--plx-container));
  margin-inline: auto;
}

.plx-site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(253, 251, 247, 0.9);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(231, 222, 210, 0.72);
  transition: box-shadow .22s ease, background-color .22s ease;
}

.plx-site-header.is-scrolled {
  background: rgba(253, 251, 247, 0.96);
  box-shadow: 0 14px 40px rgba(31, 41, 55, 0.08);
}

.plx-header-inner {
  min-height: 84px;
  display: flex;
  align-items: center;
  gap: 22px;
}

.plx-brand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  font-weight: 900;
  color: var(--plx-brand);
  letter-spacing: -0.02em;
  min-width: 0;
}

.plx-brand-logo { max-height: 54px; width: auto; }

.plx-brand-text {
  display: inline-block;
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.plx-primary-nav { flex: 1 1 auto; min-width: 0; }

.plx-menu,
.plx-footer-menu,
.plx-mobile-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.plx-menu {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(14px, 1.9vw, 26px);
}

.plx-menu li { position: relative; }

.plx-menu a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--plx-brand);
  font-size: 0.94rem;
  font-weight: 500;
  opacity: 0.86;
  white-space: nowrap;
  transition: color .18s ease, opacity .18s ease;
}

.plx-menu a:hover,
.plx-menu .current-menu-item > a,
.plx-menu .current-menu-ancestor > a {
  opacity: 1;
  color: var(--plx-accent);
}

.plx-menu .sub-menu {
  position: absolute;
  inset-block-start: 100%;
  inset-inline-start: 0;
  min-width: 220px;
  margin: 0;
  padding: 10px;
  list-style: none;
  border: 1px solid rgba(231, 222, 210, 0.88);
  border-radius: 18px;
  background: rgba(255,255,255,0.98);
  box-shadow: 0 18px 44px rgba(31, 41, 55, 0.12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.plx-menu li:hover > .sub-menu,
.plx-menu li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.plx-menu .sub-menu a {
  width: 100%;
  min-height: 40px;
  padding: 8px 10px;
  border-radius: 12px;
  justify-content: flex-start;
}

.plx-menu .sub-menu a:hover {
  background: var(--plx-bg-soft);
}

.plx-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
}

.plx-header-contact {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
  min-height: 46px;
  padding-inline: 14px;
  border-inline-start: 1px solid var(--plx-border);
  color: var(--plx-brand);
}

.plx-header-contact-label {
  font-size: 0.72rem;
  color: var(--plx-muted);
  line-height: 1.2;
}

.plx-header-contact strong {
  font-size: 0.9rem;
  line-height: 1.3;
  white-space: nowrap;
}

/* Header search */
.plx-search-toggle {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  padding: 0;
  border: 1px solid var(--plx-border);
  border-radius: 999px;
  background: rgba(255,255,255,0.68);
  color: var(--plx-brand);
  cursor: pointer;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, color .18s ease, transform .18s ease;
}

.plx-search-toggle svg {
  width: 19px;
  height: 19px;
  display: block;
}

.plx-search-toggle:hover,
.plx-search-toggle[aria-expanded="true"] {
  border-color: rgba(90,62,102,.34);
  background: #fff;
  color: var(--plx-accent-dark);
}

.plx-search-toggle:focus-visible {
  outline: 3px solid rgba(90,62,102,.28);
  outline-offset: 3px;
}

.plx-mobile-search-toggle { display: none; }

/* Search overlay */
.plx-search-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  min-height: 100dvh;
  padding: 24px;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .28s ease, visibility 0s linear .28s;
}

.plx-search-overlay[hidden] { display: none; }

.plx-search-overlay.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity .28s ease, visibility 0s linear 0s;
}

.plx-search-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(17,24,39,.50);
  backdrop-filter: blur(8px);
  opacity: 0;
  transition: opacity .28s ease;
}

.plx-search-overlay.is-active .plx-search-backdrop { opacity: 1; }

.plx-search-dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 680px);
  padding: clamp(30px, 4vw, 42px);
  border: 1px solid rgba(255,255,255,.60);
  border-radius: 28px;
  background: rgba(253,251,247,.985);
  color: var(--plx-brand);
  box-shadow: 0 28px 86px rgba(0,0,0,.30);
  opacity: 0;
  transform: translateY(16px) scale(.985);
  transition: transform .34s cubic-bezier(.22,1,.36,1), opacity .24s ease;
}

.plx-search-overlay.is-active .plx-search-dialog {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.plx-search-dialog h2 {
  margin: 0 0 20px;
  color: var(--plx-brand);
  font-size: clamp(1.55rem, 2.7vw, 2.1rem);
  line-height: 1.32;
}

.plx-search-dialog > p {
  margin: 8px 0 0;
  color: var(--plx-muted);
  line-height: 1.85;
}

.plx-search-close {
  position: absolute;
  inset-block-start: 20px;
  inset-inline-end: 20px;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--plx-border);
  border-radius: 999px;
  background: rgba(255,255,255,.74);
  color: var(--plx-brand);
  cursor: pointer;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}

.plx-search-close svg { width: 19px; height: 19px; }

.plx-search-close:hover {
  border-color: rgba(90,62,102,.34);
  background: var(--plx-bg-soft);
  color: var(--plx-accent-dark);
}

.plx-search-close:focus-visible {
  outline: 3px solid rgba(90,62,102,.28);
  outline-offset: 3px;
}

.plx-search-form { margin-top: 24px; }

.plx-search-field-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 7px 0 7px 14px;
  border: 1px solid rgba(229, 224, 216, .98);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(31, 41, 55, .075);
}

.plx-search-field-wrap input {
  min-width: 0;
  flex: 1 1 auto;
  height: 52px;
  padding: 0 14px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--plx-brand);
  font: inherit;
  font-size: 1rem;
}

.plx-search-field-wrap input::placeholder { color: #8a94a2; opacity: 1; }

.plx-search-field-wrap:focus-within {
  border-color: rgba(90,62,102,.52);
  box-shadow: 0 0 0 4px rgba(90,62,102,.10), 0 14px 36px rgba(31,41,55,.08);
}

.plx-search-submit {
  min-height: 52px;
  padding-inline: 22px;
  font-size: .98rem;
}

body.plx-search-open { overflow: hidden; }


/* Shared success modal for public forms. */
.plx-form-success-modal {
  position: fixed;
  inset: 0;
  z-index: 220;
  display: grid;
  place-items: center;
  min-height: 100dvh;
  padding: 24px;
  overflow-y: auto;
  background: rgba(17,24,39,.50);
  backdrop-filter: blur(8px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .28s ease, visibility 0s linear .28s;
}

.plx-form-success-modal[hidden] { display: none; }

.plx-form-success-modal.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity .28s ease, visibility 0s linear 0s;
}

.plx-form-success-dialog {
  position: relative;
  width: min(100%, 520px);
  padding: clamp(32px, 5vw, 46px);
  border: 1px solid rgba(255,255,255,.64);
  border-radius: 28px;
  background: rgba(253,251,247,.99);
  color: var(--plx-brand);
  box-shadow: 0 28px 86px rgba(0,0,0,.30);
  text-align: center;
  opacity: 0;
  transform: translateY(16px) scale(.985);
  transition: transform .34s cubic-bezier(.22,1,.36,1), opacity .24s ease;
}

.plx-form-success-modal.is-active .plx-form-success-dialog {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.plx-form-success-close {
  position: absolute;
  inset-block-start: 18px;
  inset-inline-end: 18px;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--plx-border);
  border-radius: 999px;
  background: rgba(255,255,255,.74);
  color: var(--plx-brand);
  cursor: pointer;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}

.plx-form-success-close svg { width: 19px; height: 19px; }

.plx-form-success-close:hover {
  border-color: rgba(90,62,102,.34);
  background: var(--plx-bg-soft);
  color: var(--plx-accent-dark);
}

.plx-form-success-icon {
  width: 70px;
  height: 70px;
  display: grid;
  place-items: center;
  margin: 0 auto 20px;
  border: 1px solid rgba(90,62,102,.20);
  border-radius: 999px;
  background: rgba(90,62,102,.10);
  color: var(--plx-accent-dark);
}

.plx-form-success-icon svg { width: 33px; height: 33px; }

.plx-form-success-dialog h2 {
  margin: 0;
  color: var(--plx-brand);
  font-size: clamp(1.55rem, 3.2vw, 2.15rem);
  line-height: 1.36;
}

.plx-form-success-dialog p {
  max-width: 410px;
  margin: 12px auto 0;
  color: var(--plx-muted);
  font-size: 1rem;
  line-height: 1.95;
}

.plx-form-success-acknowledge {
  min-height: 48px;
  margin-top: 26px;
  cursor: pointer;
}

.plx-form-success-close:focus-visible,
.plx-form-success-acknowledge:focus-visible {
  outline: 3px solid rgba(90,62,102,.28);
  outline-offset: 3px;
}

body.plx-form-success-open { overflow: hidden; }

/* Compact language selector: globe + active language + dropdown. */
.plx-language-switcher {
  position: relative;
  flex: 0 0 auto;
  min-width: 0;
}

.plx-language-switcher > summary {
  list-style: none;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  border: 1px solid var(--plx-border);
  border-radius: 999px;
  background: rgba(255,255,255,0.68);
  color: var(--plx-brand);
  cursor: pointer;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, color .18s ease;
}

.plx-language-switcher > summary::-webkit-details-marker { display: none; }
.plx-language-switcher > summary::marker { content: ''; }

.plx-language-switcher > summary:hover,
.plx-language-switcher[open] > summary {
  border-color: rgba(90,62,102,.34);
  background: #fff;
  box-shadow: 0 12px 28px rgba(31,41,55,.10);
}

.plx-language-switcher > summary:focus-visible {
  outline: 3px solid rgba(90,62,102,.28);
  outline-offset: 3px;
}

.plx-language-switcher-globe {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  color: currentColor;
  display: block;
}

.plx-language-switcher-globe * {
  vector-effect: non-scaling-stroke;
}

.plx-language-switcher-current {
  display: inline-block;
  color: currentColor;
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: .04em;
  line-height: 1;
}

.plx-language-switcher-chevron {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  color: var(--plx-muted);
  transition: transform .18s ease;
}

.plx-language-switcher[open] .plx-language-switcher-chevron { transform: rotate(180deg); }

.plx-language-switcher-menu {
  position: absolute;
  z-index: 80;
  inset-block-start: calc(100% + 10px);
  inset-inline-end: 0;
  min-width: 210px;
  display: grid;
  gap: 3px;
  padding: 8px;
  border: 1px solid rgba(231,222,210,.92);
  border-radius: 18px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 22px 52px rgba(31,41,55,.14);
  backdrop-filter: blur(16px);
}

.plx-language-option {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 9px 10px 9px 12px;
  border-radius: 12px;
  color: var(--plx-brand);
  transition: background-color .18s ease, color .18s ease;
}

.plx-language-option:hover { background: var(--plx-bg-soft); color: var(--plx-accent-dark); }
.plx-language-option.is-active { background: #1f2937; color: #fff; }

.plx-language-option-name {
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.35;
}

.plx-language-option-meta {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  color: inherit;
}

.plx-language-option-code {
  min-width: 26px;
  color: currentColor;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-align: center;
}

.plx-language-option-check {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
}

.plx-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 45px;
  padding: 0 15px 0 12px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1.25;
  white-space: nowrap;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}

.plx-btn-label { display: inline-block; }

.plx-btn .plx-btn-label {
	padding: 0 0 1px;
}

.plx-btn-arrow {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  display: block;
  overflow: visible;
  transition: transform .2s ease;
}

.plx-btn:hover { transform: translateY(-1px); }
.plx-btn:hover .plx-btn-arrow { transform: translate(1px, 1px); }

.plx-btn:focus-visible {
  outline: 3px solid rgba(90, 62, 102, 0.32);
  outline-offset: 4px;
}

.plx-btn-primary {
  background: #1f2937;
  border-color: #1f2937;
  color: #fff;
  font-weight: 300;
/*   box-shadow: 0 12px 28px rgba(17, 24, 39, 0.18); */
}

.plx-btn-primary:hover {
  background: #111827;
  border-color: #111827;
  color: #fff;
/*   box-shadow: 0 16px 32px rgba(17, 24, 39, 0.24); */
}

/* Search overlay submit button keeps its compact, dedicated vertical alignment. */
.plx-search-submit.plx-btn {
  padding: 0 20px 2px;
}

.plx-btn-outline {
  border-color: #1f2937;
  color: #1f2937;
  background: transparent;
}

.plx-btn-outline:hover {
  border-color: #5a3e66;
  color: #5a3e66;
  background: #f5f1f7;
}

.plx-header-booking {
  min-height: 44px;
  padding: 10px 16px;
  gap: 8px;
  font-size: 0.9rem;
}

.plx-header-booking .plx-btn-arrow {
  width: 15px;
  height: 15px;
  flex-basis: 15px;
}

.plx-mobile-toggle {
  display: none;
  width: 46px;
  height: 46px;
  border: 1px solid var(--plx-border);
  border-radius: 999px;
  background: rgba(255,255,255,0.72);
  color: var(--plx-brand);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}

.plx-mobile-toggle-icon {
  display: block;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  overflow: visible;
}

.plx-mobile-toggle-hamburger,
.plx-mobile-toggle-close {
  transform-box: fill-box;
  transform-origin: center;
  transition: opacity .16s ease, transform .2s cubic-bezier(.4, 0, .2, 1);
}

.plx-mobile-toggle-close {
  opacity: 0;
  transform: scale(0.84);
}

.plx-mobile-toggle:hover {
  border-color: rgba(90, 62, 102, 0.34);
  background: #fff;
  color: var(--plx-accent-dark);
}

.plx-mobile-toggle[aria-expanded="true"] {
  border-color: rgba(90, 62, 102, 0.42);
  background: var(--plx-accent-soft);
  color: var(--plx-accent-dark);
}

.plx-mobile-toggle:focus-visible {
  outline: 3px solid rgba(90, 62, 102, 0.28);
  outline-offset: 3px;
}

.plx-mobile-toggle[aria-expanded="true"] .plx-mobile-toggle-hamburger {
  opacity: 0;
  transform: scale(0.84);
}

.plx-mobile-toggle[aria-expanded="true"] .plx-mobile-toggle-close {
  opacity: 1;
  transform: scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .plx-mobile-toggle,
  .plx-mobile-toggle-hamburger,
  .plx-mobile-toggle-close { transition-duration: .01ms; }
}

.plx-mobile-panel {
  border-top: 1px solid rgba(231, 222, 210, 0.72);
  /* A solid surface prevents page content from showing through long menus. */
  background: var(--plx-bg);
  box-shadow: 0 18px 52px rgba(31, 41, 55, 0.08);
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0, -8px, 0);
  pointer-events: none;
  transition:
    opacity .28s cubic-bezier(.22, 1, .36, 1),
    transform .34s cubic-bezier(.22, 1, .36, 1),
    visibility 0s linear .34s;
  will-change: opacity, transform;
}

.plx-mobile-panel.is-active {
  opacity: 1;
  visibility: visible;
  transform: translate3d(0, 0, 0);
  pointer-events: auto;
  transition-delay: 0s;
}

.plx-mobile-panel[hidden] { display: none; }

.plx-mobile-panel-inner {
  width: min(calc(100% - 64px), var(--plx-container));
  margin-inline: auto;
  padding-block: 18px 24px;
}

.plx-mobile-menu {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.plx-mobile-menu > li {
  position: relative;
  min-width: 0;
  margin: 0;
}

.plx-mobile-menu > li > a,
.plx-mobile-menu-parent {
  min-height: 48px;
  border: 1px solid var(--plx-border);
  border-radius: 16px;
  background: rgba(255,255,255,0.68);
  color: var(--plx-brand);
  font-weight: 600;
  letter-spacing: -0.01em;
  transition: border-color .2s ease, background-color .2s ease, color .2s ease;
}

.plx-mobile-menu > li > a {
  display: flex;
  align-items: center;
  padding: 10px 14px;
}

.plx-mobile-menu-parent {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 48px;
  align-items: stretch;
  overflow: hidden;
}

.plx-mobile-menu-parent > a {
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: 48px;
  padding: 10px 14px;
  color: inherit;
  font: inherit;
}

.plx-mobile-menu > li > a:hover,
.plx-mobile-menu > li > a:focus-visible,
.plx-mobile-menu-parent:hover,
.plx-mobile-menu-parent:focus-within {
  border-color: rgba(90, 62, 102, 0.30);
  background: #fff;
  color: var(--plx-accent-dark);
}

.plx-mobile-menu > li > a:focus-visible,
.plx-mobile-menu-parent > a:focus-visible {
  outline: 3px solid rgba(90, 62, 102, 0.22);
  outline-offset: 3px;
}

.plx-mobile-menu > li.menu-item-has-children > a {
  padding-inline-end: 52px;
}

.plx-mobile-menu > li.is-submenu-open > .plx-mobile-menu-parent {
  border-color: rgba(90, 62, 102, 0.34);
  background: rgba(250, 247, 252, 0.94);
  color: var(--plx-accent-dark);
}

.plx-mobile-submenu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  min-height: 48px;
  padding: 0;
  border: 0;
  border-inline-start: 1px solid rgba(90, 62, 102, 0.12);
  background: rgba(90, 62, 102, 0.035);
  color: var(--plx-accent-dark);
  cursor: pointer;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}

.plx-mobile-submenu-icon {
  display: block;
  width: 20px;
  height: 20px;
  transition: transform .24s cubic-bezier(.22, 1, .36, 1);
}

.plx-mobile-submenu-toggle:hover,
.plx-mobile-submenu-toggle:focus-visible {
  background: rgba(90, 62, 102, 0.10);
  color: var(--plx-accent-dark);
}

.plx-mobile-submenu-toggle:focus-visible {
  position: relative;
  z-index: 1;
  outline: 3px solid rgba(90, 62, 102, 0.22);
  outline-offset: -3px;
}

.plx-mobile-submenu-toggle[aria-expanded="true"] {
  background: rgba(90, 62, 102, 0.11);
  color: var(--plx-accent-dark);
}

.plx-mobile-submenu-toggle[aria-expanded="true"] .plx-mobile-submenu-icon {
  transform: rotate(180deg);
}

.plx-mobile-menu .plx-mobile-submenu-panel {
  position: relative;
  display: grid;
  gap: 7px;
  max-height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  list-style: none;
  border: 1px solid transparent;
  border-inline-start: 2px solid transparent;
  border-radius: 14px;
  background: rgba(90, 62, 102, 0.05);
  opacity: 0;
  transform: translate3d(0, -4px, 0);
  transition: max-height .24s cubic-bezier(.22, 1, .36, 1), margin .24s cubic-bezier(.22, 1, .36, 1), padding .24s cubic-bezier(.22, 1, .36, 1), border-color .24s ease, opacity .18s ease, transform .24s cubic-bezier(.22, 1, .36, 1);
}

.plx-mobile-menu > li.is-submenu-open > .plx-mobile-submenu-panel {
  max-height: 860px;
  margin: 10px 0 6px;
  padding: 10px;
  border-color: rgba(90, 62, 102, 0.16);
  border-inline-start-color: rgba(90, 62, 102, 0.74);
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Child links are intentionally distinct touch targets: visually lighter than
   primary navigation, yet unmistakably interactive on mobile and tablet. */
.plx-mobile-menu .plx-mobile-submenu-panel a {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid rgba(90, 62, 102, 0.16);
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.88);
  color: rgba(31, 41, 55, 0.92);
  font-size: 0.93rem;
  font-weight: 600;
  transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}

.plx-mobile-menu .plx-mobile-submenu-panel a::before {
  content: '';
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  opacity: 0.78;
  background: center / 14px 14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M12.5 8H5' stroke='%235A3E66' stroke-width='1.7' stroke-linecap='round'/%3E%3Cpath d='M8 4.5 4.5 8 8 11.5' stroke='%235A3E66' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  transition: transform .18s ease, opacity .18s ease;
}

.plx-mobile-menu .plx-mobile-submenu-panel a:hover,
.plx-mobile-menu .plx-mobile-submenu-panel a:focus-visible {
  border-color: rgba(90, 62, 102, 0.36);
  background: #fff;
  color: var(--plx-accent-dark);
}

.plx-mobile-menu .plx-mobile-submenu-panel a:hover::before,
.plx-mobile-menu .plx-mobile-submenu-panel a:focus-visible::before,
.plx-mobile-menu .plx-mobile-submenu-panel .current-menu-item > a::before,
.plx-mobile-menu .plx-mobile-submenu-panel .current_page_item > a::before {
  opacity: 1;
  transform: translateX(-2px);
}

.plx-mobile-menu .plx-mobile-submenu-panel .current-menu-item > a,
.plx-mobile-menu .plx-mobile-submenu-panel .current_page_item > a {
  border-color: rgba(90, 62, 102, 0.30);
  background: rgba(245, 241, 247, 0.92);
  color: var(--plx-accent-dark);
}

.plx-mobile-menu .plx-mobile-submenu-panel a:focus-visible {
  outline: 3px solid rgba(90, 62, 102, 0.20);
  outline-offset: 2px;
}

.plx-mobile-panel.is-active .plx-mobile-menu > li {
  animation: plx-mobile-menu-item-in .34s cubic-bezier(.22, 1, .36, 1) both;
}

.plx-mobile-panel.is-active .plx-mobile-menu > li:nth-child(1) { animation-delay: .02s; }
.plx-mobile-panel.is-active .plx-mobile-menu > li:nth-child(2) { animation-delay: .05s; }
.plx-mobile-panel.is-active .plx-mobile-menu > li:nth-child(3) { animation-delay: .08s; }
.plx-mobile-panel.is-active .plx-mobile-menu > li:nth-child(4) { animation-delay: .11s; }
.plx-mobile-panel.is-active .plx-mobile-menu > li:nth-child(5) { animation-delay: .14s; }
.plx-mobile-panel.is-active .plx-mobile-menu > li:nth-child(6) { animation-delay: .17s; }
.plx-mobile-panel.is-active .plx-mobile-menu > li:nth-child(7) { animation-delay: .20s; }
.plx-mobile-panel.is-active .plx-mobile-menu > li:nth-child(8) { animation-delay: .23s; }
.plx-mobile-panel.is-active .plx-mobile-menu > li:nth-child(9) { animation-delay: .26s; }
.plx-mobile-panel.is-active .plx-mobile-menu > li:nth-child(10) { animation-delay: .29s; }

@keyframes plx-mobile-menu-item-in {
  from {
    opacity: 0;
    transform: translate3d(0, -6px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.plx-mobile-utilities {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.plx-mobile-utilities .plx-language-switcher {
  width: 100%;
  justify-self: stretch;
}

.plx-mobile-utilities .plx-language-switcher > summary {
  width: 100%;
  min-height: 48px;
}

.plx-mobile-utilities .plx-language-switcher-current { margin-inline-end: auto; }

.plx-mobile-utilities .plx-language-switcher-menu {
  inset-inline: 0;
  min-width: 0;
}

.plx-mobile-utilities .plx-btn { width: 100%; }

.plx-mobile-contact-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.plx-mobile-contact-row a {
  flex: 1 1 150px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid var(--plx-border);
  color: var(--plx-brand);
  background: rgba(255,255,255,0.70);
  font-weight: 800;
}

@media (prefers-reduced-motion: reduce) {
  body::before,
  .plx-mobile-panel,
  .plx-mobile-menu > li,
  .plx-mobile-menu > li > a,
  .plx-mobile-menu-parent,
  .plx-mobile-submenu-toggle,
  .plx-mobile-submenu-icon,
  .plx-mobile-menu .plx-mobile-submenu-panel,
  .plx-mobile-menu .plx-mobile-submenu-panel a {
    animation: none !important;
    transition-duration: .01ms !important;
  }
}

.plx-section { padding-block: 80px; }

.plx-site-footer {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 14% 14%, rgba(199,182,216,0.08), transparent 30%),
    radial-gradient(circle at 86% 84%, rgba(255,255,255,0.055), transparent 28%),
    linear-gradient(135deg, #111827 0%, #172033 54%, #0b1120 100%);
  color: rgba(249,250,251,0.88);
  margin-top: 0;
  padding-top: 50px;
}

.plx-footer-cta {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  width: min(100%, 1300px);
  margin: 0 auto;
  padding: clamp(22px, 3.2vw, 32px);
  border: 1px solid rgba(199,182,216,0.18);
  border-radius: 26px;
  background: rgba(31,41,55,0.78);
  box-shadow: 0 26px 90px rgba(0,0,0,0.22);
  backdrop-filter: blur(12px);
}

.plx-footer-cta-content span {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--plx-accent-on-dark);
  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.plx-footer-cta-content h2 {
    margin: 0;
    color: #fff;
    font-weight: 600;
    font-size: clamp(1.35rem, 2.6vw, 2.0rem);
    line-height: 1.7;
}

.plx-footer-cta-content p,
.plx-footer-cta-copy {
  max-width: 760px;
  margin: 10px 0 0;
  color: rgba(209,213,219,0.88);
}
.plx-footer-cta-copy > p { margin: 0; }

.plx-footer-cta-button {
  white-space: nowrap;
}

.plx-site-footer .plx-btn-primary {
  background: #f7f2ea;
  color: #111827;
  box-shadow: 0 18px 34px rgba(0,0,0,0.18);
}

.plx-site-footer .plx-btn-primary:hover {
  background: var(--plx-accent-on-dark);
  color: #111827;
}

.plx-footer-cta-button .plx-btn-label {
	font-weight: 500;
}

.plx-footer-cta-button svg path {
	stroke-width: 1.8 !important;
}

.plx-footer-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.45fr 0.9fr 0.9fr 1.1fr;
  gap: clamp(24px, 4vw, 42px);
  padding-block: clamp(48px, 6vw, 72px);
}

.plx-footer-brand-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}

.plx-footer-brand-link img {
  width: auto;
  max-width: 132px;
  max-height: 64px;
  object-fit: contain;
}

.plx-footer-brand-text {
  display: grid;
  gap: 4px;
}

.plx-footer-brand strong { display: block; color: #f9fafb; font-size: 1.12rem; }
.plx-footer-brand small { color: rgba(209,213,219,0.78); font-size: 0.9rem; }
.plx-footer-brand p,
.plx-footer-brand-description { max-width: 440px; margin: 0; color: rgba(209,213,219,0.82); line-height: 2; }
.plx-footer-brand-description > p { margin: 0; }

.plx-footer-column h3 {
  margin: 0 0 16px;
  color: #f9fafb;
  font-size: 1rem;
}

.plx-footer-menu { display: flex; align-items: flex-start; flex-direction: column; gap: 11px; margin: 0; padding: 0; list-style: none; }
.plx-footer-menu a { color: rgba(209,213,219,0.82); transition: color .18s ease, transform .18s ease; }
.plx-footer-menu a:hover { color: var(--plx-accent-on-dark); transform: translateX(-2px); }
.plx-dir-ltr .plx-footer-menu a:hover { transform: translateX(2px); }

.plx-footer-contact {
  text-align: start;
}

.plx-footer-contact-list {
  display: grid;
  gap: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.plx-footer-contact-list li {
  position: relative;
  display: grid;
  gap: 4px;
  color: rgba(209,213,219,0.84);
  line-height: 1.85;
  text-align: inherit;
}

/* Keep each contact category visually distinct without separating the two phone numbers. */
.plx-footer-contact-list li + li {
  margin-block-start: 15px;
  padding-block-start: 17px;
}

.plx-footer-contact-list li + li::before {
  content: '';
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  width: min(74%, 238px);
  border-block-start: 1px dashed rgba(199,182,216,0.32);
  pointer-events: none;
}

.plx-footer-contact-list span {
  color: var(--plx-accent-on-dark);
  font-size: 0.82rem;
  font-weight: 900;
}

.plx-footer-contact-phone-group {
  gap: 6px;
}

.plx-footer-phone-links {
  display: grid;
  width: 100%;
  gap: 5px;
}

.plx-footer-phone-links a {
  display: block;
  width: 100%;
  direction: ltr;
  unicode-bidi: isolate;
  font-variant-numeric: tabular-nums;
}

.plx-dir-rtl .plx-footer-contact {
  text-align: right;
}

.plx-dir-rtl .plx-footer-phone-links a {
  text-align: right;
}

.plx-dir-ltr .plx-footer-phone-links a {
  text-align: left;
}

.plx-footer-contact a:hover { color: var(--plx-accent-on-dark); }

.plx-footer-map-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: fit-content;
  margin-top: 18px;
  padding: 10px 14px;
  border: 1px solid rgba(199,182,216,0.20);
  border-radius: 999px;
  color: #f9fafb;
  background: rgba(255,255,255,0.065);
  font-weight: 600;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}

.plx-footer-map-label {
  display: inline-block;
}

.plx-footer-map-arrow {
  flex: 0 0 19px;
  width: 19px;
  height: 19px;
  color: currentColor;
  overflow: visible;
}

.plx-footer-map-link:hover {
  border-color: var(--plx-accent-on-dark);
  background: rgba(199,182,216,0.10);
  color: #fff;
}

.plx-footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.plx-footer-social a {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(199,182,216,0.18);
  border-radius: 999px;
  color: rgba(249,250,251,0.86);
  background: rgba(255,255,255,0.055);
  font-size: 0.78rem;
  font-weight: 900;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}

.plx-footer-social svg {
  width: 17px;
  height: 17px;
  display: block;
  fill: currentColor;
}

.plx-footer-social a:hover {
  border-color: var(--plx-accent-on-dark);
  color: #fff;
  background: rgba(199,182,216,0.12);
  transform: translateY(-2px);
}

.plx-footer-bottom {
  position: relative;
  z-index: 1;
  border-top: 1px solid rgba(199,182,216,0.14);
  padding-block: 18px;
  font-size: 0.9rem;
  color: rgba(255,255,255,0.62);
}

.plx-footer-bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.plx-footer-bottom a { color: rgba(255,255,255,0.78); }
.plx-footer-bottom a:hover { color: var(--plx-accent-on-dark); }

@media (max-width: 1180px) {
  .plx-header-contact { display: none; }
  .plx-menu { gap: 16px; }
}

@media (max-width: 1020px) {
  .plx-mobile-search-toggle { display: inline-flex; }

  .plx-mobile-search-toggle,
  .plx-mobile-toggle {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
    background: rgba(255,255,255,0.72);
  }

  .plx-mobile-panel {
    position: absolute;
    inset-block-start: 100%;
    inset-inline: 0;
    width: 100%;
    height: calc(100dvh - var(--plx-mobile-header-height, 73px));
    min-height: calc(100dvh - var(--plx-mobile-header-height, 73px));
    max-height: calc(100dvh - var(--plx-mobile-header-height, 73px));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }

  .plx-mobile-panel-inner {
    padding-block-end: max(24px, env(safe-area-inset-bottom));
  }
}

@media (max-width: 1020px) {
  .plx-container,
  .plx-mobile-panel-inner {
    width: min(calc(100% - 48px), var(--plx-container));
  }

  .plx-primary-nav,
  .plx-header-actions { display: none; }

  .plx-header-inner {
    min-height: 72px;
    gap: 16px;
  }

  .plx-brand { margin-inline-end: auto; }

  .plx-mobile-toggle { display: inline-flex; }

  .plx-footer-inner { grid-template-columns: 1fr; }
}

@media (min-width: 1021px) {
  .plx-mobile-panel { display: none !important; }
}

@media (max-width: 520px) {
  .plx-container,
  .plx-mobile-panel-inner { width: min(calc(100% - 24px), var(--plx-container)); }
  .plx-brand-logo { max-height: 46px; }
  .plx-brand-text { max-width: 170px; }
}

/* Site search results */
.plx-search-results-hero {
  background: linear-gradient(180deg, #fdfbf7, #f7f2ea);
}

.plx-search-results-heading {
  max-width: 900px;
}

.plx-search-results-heading h1 {
  margin: 0;
  color: var(--plx-brand);
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.25;
}

.plx-search-results-heading p {
  margin: 16px 0 0;
  color: var(--plx-muted);
}

.plx-search-results-list {
  display: grid;
  gap: 16px;
  max-width: 920px;
}

.plx-search-result {
  padding: clamp(22px, 4vw, 30px);
  border: 1px solid rgba(231,222,210,.88);
  border-radius: var(--plx-radius-md);
  background: #fff;
  box-shadow: 0 16px 46px rgba(31,41,55,.06);
}

.plx-search-result h2 {
  margin: 0;
  color: var(--plx-brand);
  font-size: clamp(1.12rem, 2vw, 1.4rem);
  line-height: 1.55;
}

.plx-search-result h2 a:hover { color: var(--plx-accent-dark); }

.plx-search-result p {
  margin: 12px 0 0;
  color: #52616f;
  line-height: 1.95;
}

.plx-search-result-link {
  display: inline-flex;
  margin-top: 16px;
  color: var(--plx-accent-dark);
  font-weight: 800;
}

@media (max-width: 620px) {
  .plx-search-overlay { padding: 16px 12px; }
  .plx-search-dialog { padding: 28px 18px 18px; border-radius: 24px; }
  .plx-form-success-modal { padding: 16px 12px; }
  .plx-form-success-dialog { padding: 32px 22px 24px; border-radius: 24px; }
  .plx-form-success-icon { width: 62px; height: 62px; margin-bottom: 16px; }
  .plx-form-success-icon svg { width: 29px; height: 29px; }
  .plx-search-close { inset-block-start: 14px; inset-inline-end: 14px; }
  .plx-search-form { margin-top: 20px; }
  .plx-search-field-wrap { align-items: stretch; flex-wrap: wrap; padding: 12px; }
  .plx-search-field-wrap input { height: 42px; padding-inline: 4px; }
  .plx-search-submit { width: 100%; min-height: 46px; }
}

/* Generic archive/single content for custom post types */
.plx-section {
  padding-block: clamp(70px, 8vw, 118px);
}

.plx-archive-hero,
.plx-service-hero {
  background:
    radial-gradient(circle at 82% 10%, rgba(90,62,102,0.14), transparent 28%),
    linear-gradient(180deg, #fdfbf7, #f7f2ea);
}

.plx-archive-content {
  background: var(--plx-bg);
}

.plx-service-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, .78fr);
  align-items: center;
  gap: clamp(34px, 6vw, 82px);
}

html[dir="rtl"] .plx-service-hero-inner { direction: rtl; }
html[dir="ltr"] .plx-service-hero-inner { direction: ltr; }

.plx-service-hero-media img {
  width: 100%;
  border-radius: var(--plx-radius-lg);
  border: 1px solid rgba(231,222,210,.84);
  box-shadow: var(--plx-shadow);
  object-fit: cover;
}

.plx-content-narrow {
  max-width: 860px;
}

.plx-service-content {
  background: #fff;
}

.plx-service-content :where(p, ul, ol) {
  color: #374957;
  font-size: 1.04rem;
  line-height: 2;
}

.plx-service-content :where(h2, h3, h4) {
  color: var(--plx-brand);
  line-height: 1.35;
  margin-block-start: 2.2em;
}

.nav-links {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-block-start: 34px;
}

.nav-links a,
.nav-links span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  border: 1px solid var(--plx-border);
  border-radius: 999px;
  padding-inline: 12px;
  color: var(--plx-brand);
  background: #fff;
}

.nav-links .current {
  background: var(--plx-brand);
  color: #fff;
  border-color: var(--plx-brand);
}

@media (max-width: 860px) {
  .plx-service-hero-inner { grid-template-columns: 1fr; }
}


/* Treatment case archive/single */
.plx-case-hero {
  background:
    radial-gradient(circle at 18% 10%, rgba(90,62,102,0.13), transparent 30%),
    linear-gradient(180deg, #fdfbf7, #f7f2ea);
}

.plx-case-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(320px, .86fr);
  align-items: center;
  gap: clamp(34px, 6vw, 82px);
}

.plx-case-hero-media img {
  width: 100%;
  border-radius: var(--plx-radius-lg);
  border: 1px solid rgba(231,222,210,.84);
  box-shadow: var(--plx-shadow);
  object-fit: cover;
}

.plx-case-before-after,
.plx-case-content {
  background: #fff;
}

.plx-before-after-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.plx-before-after-grid figure {
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--plx-border);
  border-radius: var(--plx-radius-lg);
  background: #fff;
  box-shadow: 0 18px 48px rgba(31, 41, 55, 0.08);
}

.plx-before-after-grid img {
  width: 100%;
  display: block;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.plx-before-after-grid figcaption {
  padding: 14px 18px;
  color: var(--plx-brand);
  font-weight: 900;
  text-align: center;
}

.plx-case-content :where(p, ul, ol) {
  color: #374957;
  font-size: 1.04rem;
  line-height: 2;
}

.plx-case-content :where(h2, h3, h4) {
  color: var(--plx-brand);
  line-height: 1.35;
  margin-block-start: 2.2em;
}

@media (max-width: 860px) {
  .plx-case-hero-inner,
  .plx-before-after-grid { grid-template-columns: 1fr; }
}

@media (max-width: 1120px) {
  .plx-footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* In tablet and mobile footer columns, make the contact-group dash easier to scan. */
  .plx-footer-contact-list li + li::before {
    width: min(90%, 420px);
  }
}

@media (max-width: 760px) {
  .plx-footer-cta { grid-template-columns: 1fr; align-items: start; }
  .plx-footer-cta-button { width: 100%; justify-content: center; }

  .plx-footer-inner {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .plx-footer-inner > * + * {
    margin-block-start: 28px;
    padding-block-start: 28px;
    border-block-start: 1px solid rgba(255, 255, 255, 0.12);
  }

  .plx-footer-bottom-inner {
    align-items: center;
    flex-direction: column;
    text-align: center;
  }
}


/* Compact desktop rhythm for archive and search result pages.
 * Smaller breakpoints retain their approved, more spacious mobile/tablet rules. */
@media (min-width: 1024px) {
  .plx-section.plx-archive-hero,
  .plx-section.plx-search-results-hero,
  .plx-section.plx-system-archive-hero {
    padding-block: 50px 64px;
  }

  .plx-section.plx-archive-content {
    padding-block-start: 72px;
  }

  /* Retain the established top spacing of the individual treatment-case page. */
  .plx-section.plx-case-hero {
    padding-block-start: 50px;
  }
}

/* Editable system archive heroes */
.plx-system-archive-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.plx-system-archive-hero-inner {
  position: relative;
  z-index: 1;
}

.plx-system-archive-hero .plx-section-title {
  font-size: var(--plx-system-archive-title-size, 50px);
}

.plx-system-archive-hero-media {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.plx-system-archive-hero.has-system-archive-image::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background: linear-gradient(90deg, rgba(253,251,247,.94), rgba(247,242,234,.86));
}

html[dir="ltr"] .plx-system-archive-hero.has-system-archive-image::after {
  background: linear-gradient(270deg, rgba(253,251,247,.94), rgba(247,242,234,.86));
}

.plx-system-archive-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-block-start: 28px;
}

.plx-section-heading-centered .plx-system-archive-hero-actions {
  justify-content: center;
}

@media (max-width: 1023px) {
  .plx-system-archive-hero .plx-section-title {
    font-size: min(var(--plx-system-archive-title-size, 50px), 42px);
  }
}

@media (max-width: 720px) {
  .plx-system-archive-hero .plx-section-title {
    font-size: min(var(--plx-system-archive-title-size, 50px), 32px);
  }

  .plx-system-archive-hero-actions { margin-block-start: 22px; }
}
