/* oneRide — component styles, v2 (whole site). Plain CSS on the tokens; no script, no web fonts. Prefix: or- */

/* ---------- Base ---------- */
html { scroll-padding-bottom: calc(var(--stickybar-height) + env(safe-area-inset-bottom) + 16px); }
body { margin: 0; background: var(--surface); color: var(--ink); font-family: var(--font-sans); font-size: 17px; line-height: 1.6; -webkit-text-size-adjust: 100%; }
.or-page { position: relative; display: flex; flex-direction: column; min-height: 100vh; background: var(--surface); color: var(--ink); font-family: var(--font-sans); font-size: 17px; line-height: 1.6; overflow-x: hidden; }
.or-page > main { flex: 1 0 auto; }
[dir="rtl"], :lang(ar) { font-family: var(--font-arabic); line-height: 1.8; }
:lang(ar) * { letter-spacing: 0 !important; text-transform: none !important; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: 2px; }
.or-icon { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
[dir="rtl"] .or-icon-dir { transform: scaleX(-1); }
.or-ltr { direction: ltr; unicode-bidi: isolate; white-space: nowrap; }
.or-nowrap { white-space: nowrap; }
.or-vh { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.or-container { max-width: var(--container); margin-inline: auto; padding-inline: var(--space-4); }
.or-measure { max-width: var(--measure); }
.or-muted { color: var(--ink-muted); }
@media (min-width: 768px) { .or-container { padding-inline: var(--space-6); } }
@media (min-width: 1024px) { html { scroll-padding-bottom: 0; } }

/* ---------- Sections and headings ---------- */
.or-section { padding-block: var(--space-8); }
.or-section-tint { background: var(--tint); }
.or-section-flush { padding-top: 0; }
.or-h2 { margin: 0 0 var(--space-5); font-size: 26px; line-height: 34px; font-weight: 600; letter-spacing: -0.01em; }
:lang(ar) .or-h2 { line-height: 1.55; }
.or-eyebrow { margin: 0 0 var(--space-3); font-size: 15px; line-height: 24px; font-weight: 600; color: var(--green); }
:lang(ar) .or-eyebrow { line-height: 1.8; }
.or-split { display: grid; gap: var(--space-2); }
@media (min-width: 1024px) {
  .or-section { padding-block: var(--space-9); }
  .or-h2 { font-size: 32px; line-height: 40px; }
  :lang(ar) .or-h2 { line-height: 1.5; }
  .or-split { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-8); }
}

/* ---------- SkipLink ---------- */
.or-skip { position: absolute; z-index: 40; top: var(--space-2); inset-inline-start: var(--space-4); padding: 10px var(--space-4); border-radius: var(--radius-md); background: var(--ink); color: var(--surface); font-weight: 600; text-decoration: none; transform: translateY(-200%); }
.or-skip:focus, .or-skip.is-shown { transform: none; outline: 2px solid var(--focus); outline-offset: 2px; }

/* ---------- Button and ActionLink ---------- */
.or-btn { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: var(--button-height); padding: 0 var(--space-5); border: 0; border-radius: var(--radius-md); font: inherit; font-size: 17px; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer; white-space: nowrap; }
.or-btn-whatsapp { background: var(--whatsapp); color: var(--on-whatsapp); }
.or-btn-whatsapp:hover { background: var(--whatsapp-hover); }
.or-btn-whatsapp:active { background: var(--whatsapp-hover); transform: translateY(1px); }
.or-btn-outline { background: var(--surface); color: var(--green); box-shadow: inset 0 0 0 1.5px var(--green); }
.or-btn-outline:hover { color: var(--green-strong); box-shadow: inset 0 0 0 1.5px var(--green-strong); }
.or-btn-quiet { background: var(--tint); color: var(--green); }
.or-btn-quiet:hover { color: var(--green-strong); }
.or-btn-sm { min-height: var(--tap-min); padding: 0 var(--space-4); font-size: 15px; gap: 8px; }
.or-btn-sm .or-icon { width: 18px; height: 18px; }
.or-btn-icon { width: var(--button-height); padding: 0; }
.or-link { color: var(--green); font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.or-link:hover { color: var(--green-strong); }
.or-action { display: inline-flex; align-items: center; gap: 6px; min-height: var(--tap-min); color: var(--green); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.or-action:hover { color: var(--green-strong); }
.or-action .or-icon { width: 18px; height: 18px; }
.or-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--space-5); }

/* ---------- LanguageSwitcher ---------- */
.or-lang { display: flex; align-items: center; font-size: 15px; }
.or-lang a { display: inline-flex; align-items: center; justify-content: center; min-width: var(--tap-min); min-height: var(--tap-min); color: var(--ink-muted); text-decoration: none; font-weight: 500; }
.or-lang a:hover { color: var(--ink); }
.or-lang a[aria-current="true"] { color: var(--ink); font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; text-decoration-color: var(--green); }
.or-lang .or-sep { color: var(--ink-muted); }

/* ---------- SiteHeader and MobileMenu ---------- */
.or-header { position: relative; z-index: 20; background: var(--surface); border-bottom: 1px solid var(--line); }
.or-header-inner { display: flex; align-items: center; gap: var(--space-2); min-height: var(--header-height-mobile); }
.or-logo { display: inline-flex; align-items: center; min-height: var(--tap-min); }
.or-logo img { display: block; height: 36px; width: auto; }
.or-nav { display: none; }
.or-nav a { display: inline-flex; align-items: center; min-height: var(--tap-min); min-width: var(--tap-min); color: var(--ink); text-decoration: none; font-size: 16px; font-weight: 500; }
.or-nav a:hover { color: var(--green); }
.or-nav a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--green); text-decoration-thickness: 2px; text-underline-offset: 8px; }
.or-header .or-lang { margin-inline-start: auto; }
.or-header .or-lang .or-sep { display: none; }
.or-header .or-btn-header { display: none; }
.or-menu > summary { display: inline-flex; align-items: center; gap: 6px; min-height: var(--tap-min); padding: 0 12px; border: 1px solid var(--line); border-radius: var(--radius-md); color: var(--ink); font-size: 15px; font-weight: 600; cursor: pointer; list-style: none; }
.or-menu > summary::-webkit-details-marker { display: none; }
.or-menu > summary .or-icon { width: 18px; height: 18px; }
.or-menu .or-when-open { display: none; }
.or-menu[open] .or-when-open { display: inline-flex; }
.or-menu[open] .or-when-closed { display: none; }
.or-menu[open] > summary { background: var(--tint); border-color: var(--tint); }
.or-menu-panel { position: absolute; z-index: 20; inset-inline: 0; top: 100%; padding: var(--space-2) var(--space-4) var(--space-5); background: var(--surface); border-bottom: 1px solid var(--line); }
.or-menu-panel ul { margin: 0; padding: 0; list-style: none; }
.or-menu-panel li a { display: flex; align-items: center; justify-content: space-between; min-height: 52px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; font-size: 18px; font-weight: 500; }
.or-menu-panel li a[aria-current="page"] { color: var(--green); font-weight: 600; }
.or-menu-panel li a[aria-current="page"]::after { content: ""; width: 8px; height: 8px; border-radius: 2.5px; background: var(--green); }
.or-menu-panel .or-btn { width: 100%; margin-top: var(--space-4); }
@media (min-width: 1024px) {
  .or-header-inner { min-height: var(--header-height); gap: var(--space-5); }
  .or-logo img { height: 40px; }
  .or-nav { display: flex; gap: var(--space-5); margin-inline-start: auto; }
  .or-header .or-lang { margin-inline-start: 0; }
  .or-header .or-lang .or-sep { display: inline; }
  .or-header .or-btn-header { display: inline-flex; }
  .or-menu { display: none; }
}

/* ---------- RoadShape ---------- */
.or-road { display: block; width: 100%; height: auto; }
.or-road .or-road-field { fill: var(--green); }
.or-road .or-road-way { fill: var(--surface); }
.or-road .or-road-car { fill: none; stroke: var(--on-green); stroke-opacity: .25; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.or-road .or-road-car * { vector-effect: non-scaling-stroke; }
[dir="rtl"] .or-road-mirror { transform: scaleX(-1); }
.or-road-band { height: 112px; border-radius: var(--radius-xl); overflow: hidden; }
.or-road-band .or-road { width: 100%; height: 100%; }
.or-road-mark { width: 96px; }

/* ---------- Hero ---------- */
.or-hero { padding-block: var(--space-5) var(--space-6); }
.or-hero-grid { display: grid; gap: var(--space-6); align-items: center; }
.or-hero .or-eyebrow { margin-bottom: var(--space-2); font-size: 14px; line-height: 22px; }
.or-h1 { margin: 0 0 var(--space-3); font-size: 32px; line-height: 40px; font-weight: 600; letter-spacing: -0.015em; text-wrap: balance; }
:lang(ar) .or-h1 { line-height: 1.5; }
.or-h1-sub { margin: calc(var(--space-2) * -1) 0 var(--space-4); font-size: 19px; line-height: 28px; font-weight: 600; color: var(--green); }
:lang(ar) .or-h1-sub { line-height: 1.8; }
.or-lead { margin: 0 0 var(--space-5); font-size: 18px; line-height: 28px; color: var(--ink-muted); }
:lang(ar) .or-lead { line-height: 1.85; }
.or-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-5); }
.or-hero-alt { margin: var(--space-1) 0 0; font-size: 15px; line-height: 24px; color: var(--ink-muted); }
.or-hero-alt a { display: inline-block; padding-block: 10px; }
.or-availability { margin: 0 0 var(--space-3); font-size: 14px; line-height: 22px; color: var(--ink-muted); }
.or-hero-band { margin-top: var(--space-5); }
.or-hero-art { display: none; }
@media (min-width: 1024px) {
  .or-hero { padding-block: var(--space-8) var(--space-9); }
  .or-hero-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-8); }
  .or-hero .or-eyebrow { margin-bottom: var(--space-3); font-size: 15px; line-height: 24px; }
  .or-h1 { margin-bottom: var(--space-5); font-size: 52px; line-height: 62px; }
  :lang(ar) .or-h1 { font-size: 50px; line-height: 1.45; }
  .or-lead { font-size: 20px; line-height: 32px; }
  .or-hero-alt { margin-top: var(--space-3); }
  .or-availability { margin: var(--space-1) 0 var(--space-5); font-size: 15px; line-height: 24px; }
  .or-hero-art { display: block; justify-self: end; width: 100%; max-width: 460px; }
  .or-hero-band { display: none; }
}

/* ---------- FactList ---------- */
.or-facts { display: flex; flex-wrap: wrap; gap: 4px var(--space-4); margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 22px; font-weight: 500; }
.or-facts li { display: inline-flex; align-items: center; gap: var(--space-2); }
.or-facts li::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 2.5px; background: var(--green); }
@media (min-width: 1024px) { .or-facts { gap: var(--space-2) var(--space-5); padding-top: var(--space-4); border-top: 1px solid var(--line); font-size: 15px; line-height: 24px; } }

/* ---------- Steps ---------- */
.or-steps { display: grid; gap: var(--space-5); margin: 0; padding: 0; list-style: none; }
.or-step { display: grid; grid-template-columns: 2.25rem 1fr; column-gap: var(--space-3); align-content: start; }
.or-step-num { grid-row: span 2; font-size: 28px; line-height: 28px; font-weight: 600; color: var(--green); font-variant-numeric: tabular-nums; }
.or-step h3 { grid-column: 2; margin: 0 0 var(--space-1); font-size: 20px; line-height: 28px; font-weight: 600; }
.or-step p { grid-column: 2; margin: 0; color: var(--ink-muted); }
:lang(ar) .or-step h3 { line-height: 1.6; }
@media (min-width: 1024px) {
  .or-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-7); padding-top: var(--space-6); border-top: 1px solid var(--line); }
  .or-step { grid-template-columns: 1fr; }
  .or-step-num { grid-row: auto; margin-bottom: var(--space-4); font-size: 44px; line-height: 44px; }
  .or-step h3, .or-step p { grid-column: 1; }
}

/* ---------- ServiceList ---------- */
.or-services { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.or-service { padding-block: var(--space-5); border-bottom: 1px solid var(--line); }
.or-service h3 { margin: 0 0 var(--space-2); font-size: 20px; line-height: 28px; font-weight: 600; }
:lang(ar) .or-service h3 { line-height: 1.6; }
.or-service p { margin: 0; color: var(--ink-muted); max-width: var(--measure); }
.or-service p + p { margin-top: var(--space-3); }
.or-service .or-service-lead { margin: 0 0 var(--space-2); color: var(--ink); font-weight: 500; }
.or-destinations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-1) var(--space-4); margin: 0 0 var(--space-4); padding: 0; list-style: none; color: var(--ink); font-weight: 500; }
.or-destinations li { display: flex; align-items: baseline; gap: var(--space-2); }
[dir="rtl"] .or-destinations li > bdi { text-align: right; }
.or-destinations li::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 2px; background: var(--green); transform: translateY(-3px); }
@media (min-width: 768px) {
  .or-service { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-6); padding-block: var(--space-6); }
  .or-service h3 { margin: 0; }
  .or-destinations { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) { .or-service { gap: var(--space-8); } }

/* ---------- TownList ---------- */
.or-towns { columns: 2; column-gap: var(--space-5); margin: var(--space-5) 0; padding: 0; list-style: none; font-weight: 500; }
.or-towns li { break-inside: avoid; padding-block: 3px; }
@media (min-width: 768px) { .or-towns { columns: 3; } }

/* ---------- Faq ---------- */
.or-faq { max-width: 780px; border-top: 1px solid var(--line); }
.or-faq details { border-bottom: 1px solid var(--line); }
.or-faq summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); min-height: var(--tap-min); padding: var(--space-4) 0; font-size: 18px; line-height: 28px; font-weight: 600; cursor: pointer; list-style: none; }
:lang(ar) .or-faq summary { line-height: 1.7; }
.or-faq summary::-webkit-details-marker { display: none; }
.or-faq summary:hover { color: var(--green); }
.or-faq summary .or-icon { color: var(--green); transition: transform .2s ease; }
.or-faq details[open] summary .or-icon { transform: rotate(180deg); }
.or-faq details p { margin: 0; padding: 0 0 var(--space-5); color: var(--ink-muted); max-width: var(--measure); }
@media (prefers-reduced-motion: reduce) { .or-faq summary .or-icon { transition: none; } }

/* ---------- Notice ---------- */
.or-notice { display: flex; align-items: flex-start; gap: var(--space-3); max-width: var(--measure); padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--tint); color: var(--ink); font-size: 15px; line-height: 24px; }
.or-notice .or-icon { margin-top: 2px; color: var(--green); }
.or-notice p { margin: 0; color: var(--ink); }
.or-notice a { color: var(--green); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
:lang(ar) .or-notice { line-height: 1.8; }

/* ---------- OnlineRequest ---------- */
.or-online { display: grid; gap: var(--space-3); padding-block: var(--space-6); border-top: 1px solid var(--line); }
.or-online h2 { margin: 0; font-size: 20px; line-height: 28px; font-weight: 600; }
:lang(ar) .or-online h2 { line-height: 1.6; }
.or-online-body { display: grid; gap: var(--space-4); justify-items: start; }
.or-online-body > p { margin: 0; color: var(--ink-muted); font-size: 16px; max-width: var(--measure); }
@media (min-width: 1024px) { .or-online { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-8); padding-block: var(--space-7); } }

/* ---------- Booker (TaxiWebBooker inline widget, Booking pages, opened on click) ---------- */
.or-booker { display: block; max-width: 100%; min-height: 240px; margin-bottom: var(--space-4); }
.or-booker[hidden] { display: none; }
.or-booker:focus { outline: none; }
.or-booker inline-webbooker { display: block; max-width: 100%; }
.or-booker-status { margin: 0 0 var(--space-4); color: var(--ink-muted); }
.or-booker-alt { font-size: 15px; }

/* ---------- PageIntro ---------- */
.or-intro { padding-block: var(--space-6); border-bottom: 1px solid var(--line); }
.or-intro h1 { margin: 0 0 var(--space-3); max-width: 22ch; font-size: 30px; line-height: 38px; font-weight: 600; letter-spacing: -0.015em; text-wrap: balance; }
:lang(ar) .or-intro h1 { line-height: 1.5; max-width: 26ch; }
.or-intro .or-lead { max-width: var(--measure); }
@media (min-width: 1024px) { .or-intro { padding-block: var(--space-8) var(--space-7); } .or-intro h1 { font-size: 44px; line-height: 52px; } :lang(ar) .or-intro h1 { font-size: 42px; line-height: 1.45; } }

/* ---------- Page body (article + aside) ---------- */
.or-page-body { display: grid; gap: var(--space-7); padding-block: var(--space-7) var(--space-8); }
.or-page-body > * { min-width: 0; }
@media (min-width: 1024px) { .or-page-body { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--space-8); padding-block: var(--space-8) var(--space-9); } }

/* ---------- ArticleBody (also legal text) ---------- */
.or-prose { max-width: var(--measure); }
.or-prose h2 { margin: var(--space-7) 0 var(--space-3); font-size: 24px; line-height: 32px; font-weight: 600; }
.or-prose h2:first-child { margin-top: 0; }
.or-prose h3 { margin: var(--space-5) 0 var(--space-2); font-size: 19px; line-height: 28px; font-weight: 600; }
:lang(ar) .or-prose h2, :lang(ar) .or-prose h3 { line-height: 1.6; }
.or-prose p { margin: 0 0 var(--space-4); }
.or-prose ul, .or-prose ol { margin: 0 0 var(--space-4); padding-inline-start: 1.4em; }
.or-prose li { margin-bottom: var(--space-1); }
.or-prose li::marker { color: var(--green); }
.or-prose ul[class] { padding-inline-start: 0; }
.or-prose ul[class] li { margin-bottom: 0; }
.or-prose :is(p, ol, ul:not([class])) a:not(.or-btn):not(.or-action) { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.or-prose > .or-notice, .or-prose > .or-online-body { margin-bottom: var(--space-5); }
.or-prose-meta { margin-top: var(--space-6); font-size: 15px; color: var(--ink-muted); }
.or-placeholder { padding: 0 4px; border-radius: 4px; background: var(--tint); color: var(--ink-muted); }
.or-subnav { display: flex; flex-wrap: wrap; gap: 0 var(--space-5); margin: var(--space-3) 0 0; padding: 0; list-style: none; }
.or-subnav a { display: inline-flex; align-items: center; min-height: var(--tap-min); min-width: var(--tap-min); color: var(--ink-muted); text-decoration: none; font-weight: 500; }
.or-subnav a:hover { color: var(--ink); }
.or-subnav a[aria-current="page"] { color: var(--ink); text-decoration: underline; text-decoration-color: var(--green); text-decoration-thickness: 2px; text-underline-offset: 8px; }

/* ---------- FactsBlock ---------- */
.or-factsblock { padding-top: var(--space-4); border-top: 2px solid var(--green); }
.or-factsblock + .or-factsblock { margin-top: var(--space-7); }
.or-factsblock h2 { margin: 0 0 var(--space-2); font-size: 17px; line-height: 26px; font-weight: 600; }
.or-factsblock dl { margin: 0; }
.or-factsblock dl > div { display: grid; gap: 2px; padding-block: var(--space-3); border-bottom: 1px solid var(--line); }
.or-factsblock dt { font-size: 14px; line-height: 22px; color: var(--ink-muted); }
.or-factsblock dd { margin: 0; font-size: 16px; line-height: 24px; font-weight: 500; }
:lang(ar) .or-factsblock dt, :lang(ar) .or-factsblock dd { line-height: 1.8; }

/* ---------- ContactList ---------- */
.or-contacts { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.or-contacts a { display: flex; align-items: center; gap: var(--space-4); min-height: 72px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.or-contact-icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; border-radius: var(--radius-md); background: var(--tint); color: var(--green); }
.or-contact-label { display: block; font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.or-contact-value { display: block; font-size: 18px; line-height: 26px; font-weight: 600; }
.or-contacts a:hover .or-contact-value { color: var(--green); text-decoration: underline; }

/* ---------- CtaBand ---------- */
.or-cta { display: grid; gap: var(--space-4); padding: var(--space-6) var(--space-5); border-radius: var(--radius-lg); background: var(--tint); }
.or-cta h2 { margin: 0; font-size: 24px; line-height: 32px; font-weight: 600; }
:lang(ar) .or-cta h2 { line-height: 1.6; }
.or-cta p { margin: 0; color: var(--ink-muted); }
.or-cta-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-5); }
@media (min-width: 1024px) { .or-cta { grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-8); align-items: center; padding: var(--space-7); } .or-cta-actions { grid-column: 2; grid-row: 1 / span 2; } }

/* ---------- SiteFooter ---------- */
.or-footer { padding-block: var(--space-7) var(--space-5); background: var(--tint); border-top: 1px solid var(--line); font-size: 15px; line-height: 24px; }
:lang(ar) .or-footer { line-height: 1.8; }
.or-footer-grid { display: grid; gap: var(--space-6); }
.or-footer .or-logo img { height: 34px; }
.or-footer-tag { margin: var(--space-2) 0 0; color: var(--ink-muted); }
.or-footer h2 { margin: 0 0 var(--space-1); font-size: 15px; line-height: 24px; font-weight: 600; }
.or-footer-links { display: flex; flex-wrap: wrap; gap: 0 var(--space-5); margin: 0; padding: 0; list-style: none; }
.or-footer-links a { display: inline-flex; align-items: center; min-height: var(--tap-min); min-width: var(--tap-min); color: var(--ink); text-decoration: none; font-weight: 500; }
.or-footer-links a:hover, .or-footer-links a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--green); text-underline-offset: 6px; }
.or-contact-list { margin: 0; padding: 0; list-style: none; }
.or-contact-list a { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--tap-min); color: var(--ink); text-decoration: none; }
.or-contact-list a .or-icon { color: var(--green); }
.or-contact-list a:hover span { text-decoration: underline; }
.or-footer-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2) var(--space-5); margin-top: var(--space-6); padding-top: var(--space-4); border-top: 1px solid var(--line); color: var(--ink-muted); }
.or-footer-meta .or-footer-links a { color: var(--ink-muted); font-weight: 400; }
@media (min-width: 768px) { .or-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .or-footer-grid { grid-template-columns: minmax(0, 4fr) minmax(0, 2fr) minmax(0, 3fr) minmax(0, 3fr); gap: var(--space-7); } .or-footer-pages { flex-direction: column; } }

/* ---------- StickyBar (mobile only) ---------- */
.or-stickybar { position: fixed; z-index: 10; inset-inline: 0; bottom: 0; display: flex; gap: var(--space-2); padding: 8px var(--space-4) calc(8px + env(safe-area-inset-bottom)); background: var(--surface); border-top: 1px solid var(--line); }
.or-stickybar .or-btn { min-height: 48px; }
.or-stickybar .or-btn-whatsapp { flex: 1; font-size: 16px; }
.or-stickybar .or-btn-icon { width: 48px; }
.or-has-stickybar { padding-bottom: calc(var(--stickybar-height) + env(safe-area-inset-bottom)); }
@media (min-width: 1024px) { .or-stickybar { display: none; } .or-has-stickybar { padding-bottom: 0; } }

/* ---------- Preview helpers (component cards only) ---------- */
.or-pv { padding: var(--space-5); }
.or-pv-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.or-pv-label { margin: 0 0 var(--space-2); font-size: 13px; line-height: 20px; font-weight: 600; color: var(--ink-muted); }
.or-pv-stack { display: grid; gap: var(--space-5); }
