/* Omanzil website: a few page layouts on top of brand/components.css (every token and component comes from brand/). */
.om-hero { display: grid; gap: var(--om-space-6); padding-block: var(--om-space-6) 0; align-items: center; }
@media (min-width: 820px) { .om-hero { grid-template-columns: 1.1fr .9fr; padding-block: var(--om-space-7) var(--om-space-5); } }
.om-hero .om-arch { max-height: 520px; }
.om-actions { display: flex; flex-wrap: wrap; gap: var(--om-space-3); margin-top: var(--om-space-5); }
.om-actions .om-btn { min-width: 160px; }
.ws-strip { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--om-space-4) var(--om-space-5); padding-block: var(--om-space-5); border-top: 1px solid var(--om-sand); border-bottom: 1px solid var(--om-sand); }
@media (min-width: 700px) { .ws-strip { grid-template-columns: repeat(4, 1fr); } }
.om-stat b { font-size: 26px; font-weight: 500; color: var(--om-sea); font-variant-numeric: tabular-nums; }
.om-stat span { font-size: 14px; color: var(--om-stone); }
.ws-grid { display: grid; gap: var(--om-space-4); grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.ws-grid--areas { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.om-card__img { position: relative; aspect-ratio: 4 / 3; background: var(--om-sand); overflow: hidden; }
.om-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.om-card__img .om-tag { position: absolute; top: 10px; inset-inline-start: 10px; }
.om-card__body { padding: var(--om-space-4); display: grid; gap: 6px; align-content: start; }
.om-card__meta { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 14px; color: var(--om-stone); }
.om-card__actions { margin-top: 8px; }
.ws-section-head { display: grid; gap: 8px; margin-bottom: var(--om-space-5); }
.ws-two { display: grid; gap: var(--om-space-6); }
@media (min-width: 820px) { .ws-two { grid-template-columns: 1fr 1fr; } }
.ws-prose p { max-width: 68ch; margin: 0 0 1em; }
.ws-prose h2 { margin-top: var(--om-space-6); }
.ws-prose ul { padding-inline-start: 20px; }
.ws-why { display: grid; gap: var(--om-space-4); grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.ws-why b { display: block; margin-bottom: 4px; font-weight: 500; }
.ws-why p { margin: 0; color: var(--om-stone); font-size: 15px; }

/* the map: a light coastline (OpenStreetMap, ODbL) with a frankincense-tear pin per collection */
.ws-map { position: relative; background: var(--om-shallows); border-radius: var(--om-radius-card); overflow: hidden; border: 1px solid var(--om-sand); }
.ws-map svg { display: block; width: 100%; height: auto; }
.ws-map .land { fill: var(--om-cream); stroke: var(--om-gold); stroke-width: .8; }
.ws-map .pin { fill: var(--om-sea); stroke: var(--om-white); stroke-width: 1; cursor: pointer; }
.ws-map .pin:hover, .ws-map .pin.is-on { fill: var(--om-copper); }
.ws-map .pin-label { font: 500 11px/1 var(--om-font); fill: var(--om-ink); pointer-events: none; }
.ws-map .pin-count { font: 600 10px/1 var(--om-font); fill: var(--om-white); pointer-events: none; text-anchor: middle; }
.ws-map__credit { position: absolute; bottom: 4px; inset-inline-end: 8px; font-size: 10px; color: var(--om-stone); }
.ws-map__credit a { color: inherit; }
.ws-map__tip { position: absolute; left: 8px; right: 8px; bottom: 8px; background: var(--om-white); border: 1px solid var(--om-sand); border-radius: var(--om-radius); padding: 10px 12px; font-size: 14px; display: none; }
.ws-map__tip.is-on { display: block; }

/* explorer filters */
.ws-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-block: var(--om-space-4); }
.ws-filters select, .ws-select { min-height: 40px; padding: 6px 10px; border: 1px solid var(--om-input-border); border-radius: var(--om-radius); background: var(--om-white); font: inherit; font-size: 15px; }
.ws-count { font-size: 14px; color: var(--om-stone); margin-inline-start: auto; }
.ws-empty { display: none; padding: var(--om-space-5); color: var(--om-stone); }
.ws-grid:has(> :not([hidden])) ~ .ws-empty { display: none; }
.ws-grid.is-empty ~ .ws-empty { display: block; }
[hidden] { display: none !important; }

/* currency switch in the header and the sticky bar */
.om-switch { min-height: 36px; padding: 4px 8px; border: 1px solid var(--om-sand); border-radius: var(--om-radius); background: var(--om-white); font: inherit; font-size: 14px; color: var(--om-ink); }
.om-header__util .om-btn { min-height: 40px; padding: 8px 14px; font-size: 14px; }
.ws-burger { display: none; background: none; border: 1px solid var(--om-sand); border-radius: var(--om-radius); min-height: 40px; padding: 6px 10px; font: inherit; color: var(--om-ink); }
@media (max-width: 900px) { .ws-burger { display: inline-flex; } .om-header__util .om-btn { display: none; } }
.ws-menu { display: none; border-top: 1px solid var(--om-sand); background: var(--om-cream); }
.ws-menu.is-open { display: block; }
.ws-menu a { display: block; padding: 12px 0; color: var(--om-ink); text-decoration: none; border-bottom: 1px solid var(--om-sand); }
.om-sticky-cta { background: var(--om-white); border-top: 1px solid var(--om-sand); padding: 10px max(16px, env(safe-area-inset-left, 0px)) calc(10px + env(safe-area-inset-bottom, 0px)); }
.om-sticky-cta span { font-size: 14px; color: var(--om-stone); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* invitation block */
.ws-invite { display: grid; gap: var(--om-space-5); }
@media (min-width: 820px) { .ws-invite { grid-template-columns: 1.2fr .8fr; align-items: center; } }
.ws-invite .om-h2 { color: var(--om-white); }
.ws-invite p { color: var(--om-on-deep-text); max-width: 60ch; }
.ws-invite .om-list-peaks { color: var(--om-on-deep-text); }
.om-list-peaks { list-style: none; padding: 0; margin: var(--om-space-4) 0 0; display: grid; gap: 8px; }
.om-list-peaks li { position: relative; padding-inline-start: 26px; }
.om-list-peaks li::before { content: ""; position: absolute; inset-inline-start: 0; top: .45em; width: 16px; height: 10px; background: currentColor; clip-path: polygon(0 100%, 30% 0, 50% 45%, 65% 20%, 100% 100%); opacity: .8; }

/* collection page */
.ws-gallery { display: grid; gap: 8px; grid-template-columns: repeat(2, 1fr); }
.ws-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--om-radius); display: block; background: var(--om-sand); }
.ws-gallery > :first-child { grid-column: 1 / -1; }
.ws-gallery > :first-child img { aspect-ratio: 16 / 9; }
@media (min-width: 820px) { .ws-gallery { grid-template-columns: 2fr 1fr 1fr; } .ws-gallery > :first-child { grid-column: 1; grid-row: 1 / 3; } .ws-gallery > :first-child img { aspect-ratio: 4 / 3; height: 100%; } }
.ws-glance { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--om-space-4); padding: var(--om-space-5); background: var(--om-white); border: 1px solid var(--om-sand); border-radius: var(--om-radius-card); }
@media (min-width: 700px) { .ws-glance { grid-template-columns: repeat(4, 1fr); } }
.ws-glance .om-label { display: block; margin-bottom: 4px; }
.ws-glance b { font-weight: 500; font-size: 18px; }
.om-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.om-table th, .om-table td { padding: 10px 8px; border-bottom: 1px solid var(--om-sand); text-align: start; vertical-align: top; }
.om-table th { font-size: var(--om-size-label); letter-spacing: .1em; text-transform: uppercase; color: var(--om-stone); font-weight: 500; }
.om-table .num { text-align: end; font-variant-numeric: tabular-nums; white-space: nowrap; }
.om-table .om-total td { font-weight: 600; border-bottom: 0; }
.om-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.om-steps { gap: 14px; }
.om-step { position: relative; padding-block-end: 4px; display: grid; }
.om-step::before { content: ""; position: absolute; inset-inline-start: -25px; top: 7px; width: 12px; height: 12px; border-radius: 50%; background: var(--om-cream); border: 2px solid var(--om-sea); }
.om-step b { font-weight: 500; }
.om-step span { color: var(--om-stone); font-size: 14px; }
.ws-mapimg { border-radius: var(--om-radius-card); overflow: hidden; border: 1px solid var(--om-sand); background: var(--om-white); }
.ws-mapimg img { width: 100%; height: auto; display: block; }
.ws-times { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; font-size: 15px; }
.ws-times li { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--om-sand); padding: 6px 0; }
.ws-times .om-num { color: var(--om-sea); font-weight: 500; }
.ws-amen { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; list-style: none; }
.ws-amen li { padding: 6px 12px; background: var(--om-white); border: 1px solid var(--om-sand); border-radius: 999px; font-size: 14px; }
.ws-note { font-size: 13px; color: var(--om-stone); }
.ws-contours { position: relative; min-height: 180px; background: var(--om-cream); border-radius: var(--om-radius-card); overflow: hidden; border: 1px solid var(--om-sand); }
.ws-contours .om-contours { opacity: .5; }
.ws-photo { border-radius: var(--om-radius-card); overflow: hidden; }
.ws-photo img { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 4 / 3; }
.ws-credit { font-size: 11px; color: var(--om-stone); margin-top: 4px; }
.ws-credit a { color: inherit; }
.ws-wa { position: fixed; inset-inline-end: 16px; bottom: 76px; z-index: 14; width: 52px; height: 52px; border-radius: 50%; background: #25D366; color: #fff; display: grid; place-items: center; box-shadow: 0 2px 8px rgba(0,0,0,.2); }
@media (min-width: 900px) { .ws-wa { bottom: 24px; } }
.ws-wa svg { width: 28px; height: 28px; fill: currentColor; }
.ws-breadcrumb { font-size: 14px; color: var(--om-stone); margin-bottom: var(--om-space-3); }
.ws-breadcrumb a { color: inherit; }
.ws-advisors { display: grid; gap: var(--om-space-4); grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.om-avatar { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; background: var(--om-shallows); display: block; }
.om-avatar--lg { width: 112px; height: 112px; }
.ws-calc { display: grid; gap: var(--om-space-4); padding: var(--om-space-5); background: var(--om-white); border: 1px solid var(--om-sand); border-radius: var(--om-radius-card); }
.ws-calc output { display: block; font-size: 22px; font-weight: 600; color: var(--om-sea); font-variant-numeric: tabular-nums; }
.ws-calc input[type=range] { width: 100%; accent-color: var(--om-sea); }
.ws-compact { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14px; color: var(--om-stone); }
.ws-lang { font-size: 14px; }
.ws-lang a { color: inherit; }
.ws-hide-sm { display: none; } @media (min-width: 700px) { .ws-hide-sm { display: initial; } }
img { max-width: 100%; height: auto; }

/* answer-first block on area pages: the plain answer search engines and AI tools quote */
.ws-answer { font-size: 18px; line-height: 1.6; max-width: 60ch; margin: var(--om-space-3) 0 0; padding: 14px 18px; border-inline-start: 3px solid var(--om-sea); background: var(--om-white); border-radius: var(--om-radius); }
.ws-facts th { width: 34%; font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--om-ink); font-weight: 500; }
.ws-facts td { font-size: 15px; }
sup a { text-decoration: none; font-size: 11px; }
img.om-contours { object-fit: cover; opacity: .5; }
.om-footer img.om-contours { opacity: .14; }

/* ---------- top of an area page: status, headline, key facts with sources, and the card ---------- */
.ws-top { padding-block: var(--om-space-5) var(--om-space-7); background: linear-gradient(var(--om-white), var(--om-bg) 220px); border-bottom: 1px solid var(--om-sand); }
.ws-top__grid { display: grid; gap: var(--om-space-6); align-items: start; }
@media (min-width: 960px) { .ws-top__grid { grid-template-columns: minmax(0, 1.25fr) minmax(320px, .85fr); gap: var(--om-space-7); } .ws-card { position: sticky; top: 84px; } }
.ws-pill { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; background: var(--om-shallows); color: var(--om-sea); font-size: 14px; font-weight: 500; }
.ws-pill i { width: 8px; height: 8px; border-radius: 50%; background: var(--om-good); box-shadow: 0 0 0 3px var(--om-good-bg); }
.ws-top__h1 { margin-top: var(--om-space-4); }
.ws-top__lead { font-size: 18px; line-height: 1.55; color: var(--om-text-muted); margin: var(--om-space-4) 0 var(--om-space-5); max-width: 56ch; }
.ws-glance-list { margin: 0; border-top: 1px solid var(--om-sand); }
.ws-g { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--om-sand); }
.ws-g dt { font-size: 15px; color: var(--om-text-muted); }
.ws-g dt small { display: block; font-size: 13px; line-height: 1.4; color: var(--om-stone); opacity: .85; margin-top: 2px; }
.ws-g dd { margin: 0; text-align: end; font-size: 20px; font-weight: 600; color: var(--om-ink); font-variant-numeric: tabular-nums; line-height: 1.25; max-width: 15ch; }
.ws-g dd small { display: block; font-size: 13px; font-weight: 400; color: var(--om-stone); margin-top: 2px; }
.ws-g__price { font-size: 20px; font-weight: 600; color: var(--om-sea); }
.ws-g__price small { display: block; font-size: 13px; font-weight: 400; color: var(--om-stone); }
@media (min-width: 700px) {
  .ws-g { grid-template-columns: 180px minmax(0, 1fr) minmax(0, 1fr); }
  .ws-g dt { display: contents; }
  .ws-g dt small { grid-column: 3; grid-row: 1; margin: 0; }
  .ws-g dd { grid-column: 2; grid-row: 1; text-align: start; max-width: none; }
}
.ws-ticks { list-style: none; padding: 0; margin: var(--om-space-5) 0 0; display: grid; gap: 8px 24px; grid-template-columns: 1fr; font-size: 15px; }
@media (min-width: 560px) { .ws-ticks { grid-template-columns: 1fr 1fr; } }
.ws-ticks li { position: relative; padding-inline-start: 26px; }
.ws-ticks li::before { content: ""; position: absolute; inset-inline-start: 2px; top: .38em; width: 12px; height: 7px; border-inline-start: 2px solid var(--om-good); border-bottom: 2px solid var(--om-good); transform: rotate(-45deg); }
[dir="rtl"] .ws-ticks li::before { transform: rotate(45deg); }

.ws-card { background: var(--om-white); border: 1px solid var(--om-sand); border-radius: var(--om-radius-card); padding: var(--om-space-5); display: grid; gap: var(--om-space-4); box-shadow: 0 1px 2px rgba(47, 41, 40, .04); }
.ws-card__title { margin: 0; font-size: 22px; font-weight: 500; line-height: 1.25; }
.ws-card__text { margin: 0; color: var(--om-text-muted); font-size: 15px; }
.ws-card__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 15px; }
.ws-card__list li { position: relative; padding-inline-start: 18px; }
.ws-card__list li::before { content: ""; position: absolute; inset-inline-start: 0; top: .6em; width: 7px; height: 7px; border-radius: 2px; background: var(--om-sea); }
.ws-choose { border: 0; margin: 0; padding: 0; display: grid; gap: 8px; }
.ws-choose legend { font-size: 14px; font-weight: 500; margin-bottom: 8px; padding: 0; }
.ws-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ws-card__micro { margin: 0; font-size: 13px; color: var(--om-stone); line-height: 1.5; }
.ws-answer { background: var(--om-white); }

/* phone: WhatsApp sits in the sticky bar, so no floating bubble covers the page */
@media (max-width: 899px) { .ws-wa { display: none; } }
.ws-sticky__text { display: grid; min-width: 0; line-height: 1.3; flex: 1; }
.ws-sticky__text b { font-size: 15px; font-weight: 600; color: var(--om-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ws-sticky__text small { font-size: 13px; color: var(--om-stone); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ws-sticky__wa { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--om-sand); color: #1E7A4A; }
.ws-sticky__wa svg { width: 22px; height: 22px; fill: currentColor; }
.om-sticky-cta { gap: 10px; }
.om-sticky-cta > span.ws-sticky__text { white-space: normal; }
@media (max-width: 480px) { .ws-top__h1 { font-size: 31px; } .ws-top__lead { font-size: 17px; } }

/* ---------- WhatsApp first (Denis, 2026-10-21) ---------- */
.ws-btn-ico { gap: 10px; }
.ws-ico { width: 20px; height: 20px; flex: none; }
.ws-team { display: flex; align-items: center; gap: 12px; margin-top: var(--om-space-4); font-size: 14px; color: var(--om-text-muted); }
.ws-card .ws-team { margin-top: 0; }
.ws-team__faces { display: flex; flex: none; }
.ws-team__faces img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 2px solid var(--om-white); background: var(--om-shallows); }
.ws-team__faces img + img { margin-inline-start: -12px; }
.ws-team--deep { color: var(--om-on-deep-muted); margin-top: 4px; }
.ws-team--deep .ws-team__faces img { border-color: var(--om-sea-deep); }
/* phone vs computer: the phone goes straight to WhatsApp, the computer shows the number field */
.ws-m { display: block; }
.ws-d { display: none; }
.ws-lead-wrap { display: none; }
.ws-card.is-call-open .ws-lead-wrap { display: block; }
.ws-card.is-call-open [data-open-call] { display: none; }
@media (min-width: 900px) { .ws-m { display: none; } .ws-d { display: block; } .ws-lead-wrap { display: block; } }
.ws-lead { display: grid; gap: 10px; }
.ws-lead__label { font-size: 14px; font-weight: 500; }
.ws-phone { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; }
.ws-cc { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 10px; border: 1px solid var(--om-input-border); border-radius: var(--om-radius); background: var(--om-white); font: inherit; font-size: 16px; color: var(--om-ink); cursor: pointer; font-variant-numeric: tabular-nums; }
.ws-cc:focus-visible { outline: none; border-color: var(--om-sea); box-shadow: 0 0 0 3px var(--om-shallows); }
.ws-cc__pop { position: absolute; z-index: 30; top: calc(100% + 6px); inset-inline: 0; background: var(--om-white); border: 1px solid var(--om-sand); border-radius: var(--om-radius-card); box-shadow: 0 8px 24px rgba(47, 41, 40, .14); padding: 8px; }
.ws-cc__pop ul { list-style: none; margin: 8px 0 0; padding: 0; max-height: 260px; overflow-y: auto; }
.ws-cc__pop li { display: flex; gap: 10px; align-items: center; padding: 9px 8px; border-radius: var(--om-radius); cursor: pointer; font-size: 15px; }
.ws-cc__pop li span:last-child { margin-inline-start: auto; color: var(--om-stone); font-variant-numeric: tabular-nums; }
.ws-cc__pop li:hover, .ws-cc__pop li[aria-selected="true"] { background: var(--om-shallows); }
.ws-cc__pop li.ws-cc__sep { cursor: default; padding: 6px 8px 2px; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--om-stone); }
.ws-cc__pop li.ws-cc__sep:hover { background: none; }
.ws-hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; opacity: 0; }
.ws-linkbtn { background: none; border: 0; padding: 4px 0; font: inherit; font-size: 14px; color: var(--om-sea); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ws-lead__switch, .ws-lead__alt { margin: 0; font-size: 14px; text-align: center; }
.ws-lead__err { margin: 0; font-size: 14px; color: var(--om-error); }
.ws-lead__ok { margin: 0; padding: 12px 14px; border-radius: var(--om-radius); background: var(--om-good-bg); color: var(--om-good); font-size: 15px; }
/* the phone's bottom bar: WhatsApp large, the video call small */
.om-sticky-cta { gap: 10px; }
.ws-sticky__wa-btn { flex: 1; min-height: 46px; }
.ws-sticky__call { flex: none; min-height: 46px; padding-inline: 12px; }
@media (max-width: 360px) { .ws-sticky__call span { display: none; } }
.ws-top__grid > * { min-width: 0; }
.om-sticky-cta .om-btn span { color: inherit; font-size: inherit; overflow: visible; white-space: nowrap; }
.om-sticky-cta .om-btn--primary { color: #fff; }

.ws-card__promise { margin: 6px 0 0; font-size: 15px; color: var(--om-text-muted); }
.ws-card__go { display: grid; gap: 8px; }
.ws-center { text-align: center; }
.ws-card__more { display: grid; gap: 10px; padding-top: var(--om-space-4); border-top: 1px solid var(--om-sand); }
.ws-inline-ico { display: inline-flex; align-items: center; }
.ws-inline-ico .ws-ico { width: 18px; height: 18px; }
@media (max-width: 899px) { .ws-card.is-call-open .ws-card__go .om-btn { display: none; } .ws-card.is-call-open .ws-card__go .ws-card__micro { display: none; } }
@media (min-width: 900px) { .ws-card__go { display: none; } }

/* ---------- light top of an area page (Denis, 2026-10-21: "too busy", "the form is crazy long") ---------- */
.ws-btn--wa { background: var(--om-whatsapp); color: #fff; border-color: transparent; }
.ws-btn--wa:hover { background: var(--om-whatsapp-hover); color: #fff; }
.ws-btn--wa-outline { background: var(--om-white); color: var(--om-whatsapp); border-color: var(--om-whatsapp); font-weight: 500; }
.ws-btn--wa-outline:hover { background: #E3F3E9; }
.ws-vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ws-top { padding-block: var(--om-space-4) var(--om-space-7); }
@media (min-width: 960px) { .ws-top__grid { grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); align-items: center; } }
.ws-top__h1 { font-size: clamp(30px, 4vw, 44px); line-height: 1.12; }
.ws-top__lead { margin: var(--om-space-3) 0 var(--om-space-5); }
.ws-keys { list-style: none; margin: 0 0 var(--om-space-5); padding: 0; display: flex; flex-wrap: wrap; gap: 14px 32px; }
.ws-keys li { display: grid; gap: 2px; }
.ws-keys__v, .ws-keys .ws-keys__v .ws-main { font-size: 20px; font-weight: 600; color: var(--om-ink); font-variant-numeric: tabular-nums; line-height: 1.2; }
.ws-keys .ws-keys__v small { display: none; }
.ws-keys li > span { font-size: 13px; color: var(--om-stone); }
.ws-act { display: grid; gap: 10px; max-width: 520px; }
.ws-act__links { margin: 0; font-size: 14px; color: var(--om-stone); }
.ws-act__form { display: none; }
.ws-act.is-call-open .ws-act__form { display: block; }
.ws-act.is-call-open .ws-act__phone .om-btn, .ws-act.is-call-open [data-open-call] { display: none; }
@media (min-width: 900px) { .ws-act__form { display: block; } }
.ws-lead--compact { gap: 8px; }
.ws-lead--compact .ws-card__micro { font-size: 12px; }
@media (min-width: 900px) {
  /* one row on a computer: [code][number] [Get 3 options], everything else under it */
  .ws-lead--compact { grid-template-columns: minmax(0, 1fr) auto; column-gap: 8px; }
  .ws-lead--compact > * { grid-column: 1 / -1; }
  .ws-lead--compact > .ws-phone { grid-column: 1; grid-row: 1; }
  .ws-lead--compact > [data-submit] { grid-column: 2; grid-row: 1; white-space: nowrap; min-height: 44px; }
}
.ws-top__pic img { width: 100%; max-height: 520px; }
@media (max-width: 959px) { .ws-top__pic { max-width: 520px; } .ws-top__pic img { aspect-ratio: 4 / 3; clip-path: none; border-radius: var(--om-radius-card); } }
/* the drawn map and its numbered places */
.ws-figmap { margin: 0 0 14px; border: 1px solid var(--om-sand); border-radius: var(--om-radius-card); overflow: hidden; background: var(--om-white); }
.ws-figmap img { display: block; width: 100%; height: auto; }
.ws-legend { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 0; }
.ws-legend li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--om-sand); font-size: 15px; }
.ws-legend .om-num { margin-inline-start: auto; color: var(--om-sea); font-weight: 500; }
.ws-legend__n { flex: none; width: 24px; height: 24px; border-radius: 50%; border: 1.6px solid var(--om-sea); color: var(--om-sea); font-size: 12px; font-weight: 600; display: grid; place-items: center; }
/* tables with room to breathe (Denis, 2026-10-21) */
.om-table-scroll { background: var(--om-white); border: 1px solid var(--om-sand); border-radius: var(--om-radius-card); }
.om-table { font-size: 15px; }
.om-table th, .om-table td { padding: 16px 20px; }
.om-table thead th { padding-block: 14px; background: var(--om-cream); border-bottom: 1px solid var(--om-sand); }
.om-table tbody tr:last-child td { border-bottom: 0; }
.om-table td:first-child, .om-table th:first-child { padding-inline-start: 24px; }
.om-table td:last-child, .om-table th:last-child { padding-inline-end: 24px; }
@media (max-width: 700px) { .om-table th, .om-table td { padding: 14px 14px; } .om-table td:first-child, .om-table th:first-child { padding-inline-start: 16px; } .om-table td:last-child, .om-table th:last-child { padding-inline-end: 16px; } }
.ws-facts th { background: none; }
.om-table td.num, .om-table th.num, .om-table td.nw { white-space: nowrap; }
.ws-lead--compact .ws-lead__switch { text-align: start; }

/* nothing ever widens the page (Denis, 2026-10-21: horizontal scrolling on phone and computer) */
html, body { overflow-x: clip; }
.ws-two > *, .ws-top__grid > *, .ws-invite > *, .om-footer__grid > *, .ws-grid > * { min-width: 0; }
.ws-prose, .ws-note { overflow-wrap: anywhere; }
.om-table-scroll { overflow-x: auto; max-width: 100%; }
/* phones: a table becomes a list of cards, one per row, each cell with its heading */
@media (max-width: 700px) {
  .ws-stack thead { display: none; }
  .ws-stack, .ws-stack tbody, .ws-stack tr, .ws-stack td { display: block; width: 100%; }
  .ws-stack tr { padding: 12px 16px; border-bottom: 1px solid var(--om-sand); }
  .ws-stack tr:last-child { border-bottom: 0; }
  .ws-stack td { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0 !important; border: 0; text-align: end; white-space: normal; }
  .ws-stack td::before { content: attr(data-label); color: var(--om-stone); font-size: 13px; text-align: start; flex: none; }
  .ws-stack td:first-child { font-weight: 500; font-size: 16px; justify-content: flex-start; }
  .ws-stack td:first-child::before { display: none; }
  .ws-stack td:empty { display: none; }
  .ws-stack tr.om-total td { font-weight: 600; }
  .ws-facts th { display: block; padding: 10px 16px 0 !important; border: 0; }
  .ws-facts td { display: block; padding: 2px 16px 10px !important; }
}
tr[hidden] { display: none !important; }

/* ---------- information first, one calm call to action (Denis, 2026-10-21) ---------- */
.ws-head-link { font-size: 15px; color: var(--om-sea); text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
@media (max-width: 900px) { .ws-head-link { display: none; } }
.ws-top { padding-block: var(--om-space-4) var(--om-space-7); }
@media (min-width: 960px) { .ws-top__grid { grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); align-items: start; gap: var(--om-space-7); } .ws-top .ws-card { position: sticky; top: 84px; } }
.ws-top__lead { margin: var(--om-space-3) 0 var(--om-space-5); max-width: 56ch; }
.ws-top .ws-glance-list { margin-bottom: 0; }
/* the form */
.ws-card { gap: var(--om-space-4); }
.ws-card__title { font-size: 21px; }
.ws-lead { display: grid; gap: 12px; }
.ws-lead__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 330px) { .ws-lead__row { grid-template-columns: 1fr; } }
.ws-field { display: grid; gap: 6px; font-size: 14px; font-weight: 500; color: var(--om-ink); min-width: 0; }
.ws-field .ws-select { width: 100%; min-height: 44px; font-size: 16px; font-weight: 400; padding: 8px 10px; }
.ws-lead__phone, .ws-lead__consent { display: none; }
.ws-card.is-phone .ws-lead__phone { display: grid; gap: 6px; }
.ws-card.is-phone .ws-lead__consent { display: block; }
.ws-lead__links { margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; font-size: 14px; text-align: center; }
.ws-only-desk { display: none; }
@media (min-width: 900px) { .ws-only-desk { display: inline; } }
.ws-card__more { padding-top: var(--om-space-4); border-top: 1px solid var(--om-sand); display: grid; gap: 10px; }
.ws-card__more .ws-team { margin: 0; justify-content: center; text-align: start; }
/* the invite band holding the form on pages without one at the top */
.ws-invite .ws-card { color: var(--om-ink); }
.ws-invite .ws-card p { color: var(--om-stone); }
.ws-invite .ws-card .ws-card__title { color: var(--om-ink); }
/* the bottom bar: one quiet button, out of the way while the form is on screen */
.ws-sticky { display: flex; align-items: center; gap: 12px; background: var(--om-white); border-top: 1px solid var(--om-sand); box-shadow: 0 -2px 10px rgba(47, 41, 40, .06);
  padding: 10px max(16px, env(safe-area-inset-left, 0px)) calc(10px + env(safe-area-inset-bottom, 0px)); transition: transform .25s ease; }
.ws-sticky.is-away { transform: translateY(110%); }
.ws-sticky .ws-sticky__text { flex: 1; min-width: 0; }
.ws-sticky .om-btn { flex: none; }
/* collection pages: on a phone three pictures, then the facts */
@media (max-width: 819px) { .ws-top--collection .ws-gallery > :nth-child(n+4) { display: none; } }
@media (min-width: 900px) { .ws-sticky { display: none; } }
.ws-lead__row { align-items: end; }

/* the form fits a phone screen under the header (Denis, 2026-10-21: "I can see the whole form") */
#options { scroll-margin-top: 80px; }
@media (max-width: 899px) {
  .ws-card { padding: 18px 18px 16px; gap: 12px; }
  .ws-card__title { font-size: 19px; line-height: 1.25; }
  .ws-card__promise { font-size: 14px; margin-top: 4px; }
  .ws-card__list { font-size: 14px; gap: 3px; }
  .ws-card__list li::before { top: .55em; }
  .ws-lead { gap: 10px; }
  .ws-field { font-size: 13px; gap: 4px; }
  .ws-card__micro { font-size: 12.5px; }
  .ws-card__more { padding-top: 12px; gap: 6px; }
  .ws-card__more .ws-team { font-size: 13px; gap: 10px; }
  .ws-card__more .ws-team__faces img { width: 32px; height: 32px; }
}
@media (max-width: 899px) and (max-height: 760px) {
  /* small phones: the three promises on fewer lines, so the questions and the button fit under the header */
  .ws-card__promise { display: none; }
  .ws-card__list { font-size: 13.5px; }
  .ws-card__title { font-size: 18px; }
}

/* the phone menu (Denis, 2026-10-21): a white panel under the header, the page dimmed behind it, and a Close button */
.ws-burger { align-items: center; gap: 8px; cursor: pointer; }
.ws-burger__ico { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.ws-burger__x { display: none; }
.ws-burger.is-open .ws-burger__open { display: none; }
.ws-burger.is-open .ws-burger__x { display: inline; }
.ws-burger.is-open { background: var(--om-white); border-color: var(--om-sea); color: var(--om-sea); }
.om-header { position: sticky; }
.ws-menu { position: absolute; top: 100%; inset-inline: 0; z-index: 25; background: var(--om-white); border-top: 1px solid var(--om-sand);
  box-shadow: 0 18px 30px rgba(8, 42, 53, .18); padding-bottom: 8px; }
.ws-menu[hidden] { display: none; }
.ws-menu.is-open { display: block; }
.ws-menu a { font-size: 17px; padding: 14px 0; }
.ws-menu a:last-of-type { border-bottom: 0; }
.ws-menu-backdrop { position: fixed; inset: 0; z-index: 19; background: rgba(8, 42, 53, .35); }
.ws-menu-backdrop[hidden] { display: none; }
@media (min-width: 901px) { .ws-menu, .ws-menu-backdrop { display: none !important; } }
/* "(optional)" quieter than the question */
.ws-opt { font-weight: 400; color: var(--om-stone); font-size: .92em; }
.ws-vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

/* "Why people buy here" as reasons, not footer columns (Denis, 2026-10-21): a real heading, each reason a card with the brand's peaks mark */
.ws-why { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--om-space-4); grid-template-columns: 1fr; }
@media (min-width: 640px) { .ws-why { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .ws-why { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ws-why__item { background: var(--om-white); border: 1px solid var(--om-sand); border-radius: var(--om-radius-card); padding: 22px 22px 24px; display: grid; gap: 8px; align-content: start; }
.ws-why__head { margin: 0; font-size: 18px; font-weight: 500; line-height: 1.3; color: var(--om-ink); }
.ws-why__item p { margin: 0; color: var(--om-stone); font-size: 15px; line-height: 1.55; }
@media (max-width: 639px) {
  /* phones: the mark beside the heading, tighter cards, so six reasons stay a short scroll */
  .ws-why { gap: 10px; }
  .ws-why__item { grid-template-columns: 40px minmax(0, 1fr); column-gap: 14px; row-gap: 2px; padding: 16px 16px 18px; }
  .ws-why__ico { grid-row: 1 / span 2; width: 40px; height: 40px; margin: 0; }
  .ws-why__head { font-size: 17px; grid-column: 2; grid-row: 1; }
  .ws-why__item p { grid-column: 2; font-size: 14.5px; }
}

/* each reason with its own line icon (Lucide, ISC licence; Denis, 2026-10-21) in a soft sea circle */
.ws-why__ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--om-shallows); color: var(--om-sea); margin-bottom: 6px; }
.ws-why__ico svg { width: 22px; height: 22px; }
