/* ==========================================================================
   WE-Vira — site styles
   Layout: one 1200px column on ink; sections divided by hairlines, never by
   background bands; sand appears once per area as the accent.
   ========================================================================== */

/* Fonts (self-hosted, subset by script) ------------------------------------ */
@font-face { font-family: "Schibsted Grotesk"; font-weight: 600; font-style: normal; font-display: swap; src: url("../fonts/schibsted-grotesk-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Schibsted Grotesk"; font-weight: 700; font-style: normal; font-display: swap; src: url("../fonts/schibsted-grotesk-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Alexandria"; font-weight: 600; font-style: normal; font-display: swap; src: url("../fonts/alexandria-arabic-600-normal.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+200C-200E, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "Alexandria"; font-weight: 700; font-style: normal; font-display: swap; src: url("../fonts/alexandria-arabic-700-normal.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+200C-200E, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "IBM Plex Sans"; font-weight: 400; font-style: normal; font-display: swap; src: url("../fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 500; font-style: normal; font-display: swap; src: url("../fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 600; font-style: normal; font-display: swap; src: url("../fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans Arabic"; font-weight: 400; font-style: normal; font-display: swap; src: url("../fonts/ibm-plex-sans-arabic-arabic-400-normal.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+200C-200E, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "IBM Plex Sans Arabic"; font-weight: 500; font-style: normal; font-display: swap; src: url("../fonts/ibm-plex-sans-arabic-arabic-500-normal.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+200C-200E, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "IBM Plex Sans Arabic"; font-weight: 600; font-style: normal; font-display: swap; src: url("../fonts/ibm-plex-sans-arabic-arabic-600-normal.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+200C-200E, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "IBM Plex Mono"; font-weight: 400; font-style: normal; font-display: swap; src: url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-weight: 500; font-style: normal; font-display: swap; src: url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2"); }

/* Tokens ------------------------------------------------------------------- */
:root {
	--bg: #0B1418;
	--surface: #111E23;
	--raised: #18282E;
	--line: #2A3E45;
	--control-border: #5E747B;
	--text: #EEE7D8;
	--text-muted: #9CABA7;
	--sand: #D6B36F;
	--sand-strong: #E4C98F;
	--on-sand: #0B1418;
	--lapis: #7FAAD0;
	--focus: #7FAAD0;
	--success: #6CC596;
	--warning: #E5AA48;
	--danger: #EE806C;
	--shadow-overlay: 0 16px 48px rgba(0, 0, 0, 0.5);

	--font-display: "Schibsted Grotesk", "Alexandria", system-ui, sans-serif;
	--font-sans: "IBM Plex Sans", "IBM Plex Sans Arabic", system-ui, sans-serif;
	--font-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;

	--space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-6: 24px;
	--space-8: 32px; --space-12: 48px; --space-16: 64px; --space-24: 96px; --space-32: 128px;
	--radius-sm: 2px; --radius-md: 4px; --radius-lg: 8px;
	--container: 1200px;
	--gutter: max(var(--space-4), env(safe-area-inset-left, 0px));
	color-scheme: dark;
}
[dir="rtl"] {
	--font-display: "Alexandria", "IBM Plex Sans Arabic", system-ui, sans-serif;
	--font-sans: "IBM Plex Sans Arabic", "IBM Plex Sans", system-ui, sans-serif;
}

/* Base --------------------------------------------------------------------- */
html { scroll-padding-top: 88px; -webkit-text-size-adjust: 100%; }
html.wv-lock { overflow: hidden; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font-sans); font-size: 16px; line-height: 1.625; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
[dir="rtl"] body { font-size: 17px; line-height: 1.75; }
img { max-width: 100%; height: auto; }
a { color: var(--lapis); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--text); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
::selection { background: var(--sand); color: var(--on-sand); }
h1, h2, h3, h4 { font-family: var(--font-display); color: var(--text); margin: 0; text-wrap: balance; font-weight: 700; }
h1 { font-size: 44px; line-height: 50px; letter-spacing: -0.02em; }
h2 { font-size: 32px; line-height: 38px; letter-spacing: -0.015em; font-weight: 650; }
h3 { font-size: 22px; line-height: 28px; letter-spacing: -0.01em; font-weight: 600; }
[dir="rtl"] :is(h1, h2, h3, h4) { letter-spacing: 0; }
[dir="rtl"] h1 { font-size: 42px; line-height: 58px; }
[dir="rtl"] h2 { line-height: 46px; }
[dir="rtl"] h3 { line-height: 34px; }
p { margin: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.wv-skip { position: absolute; inset-inline-start: var(--space-4); top: -60px; z-index: 100; background: var(--sand); color: var(--on-sand); padding: var(--space-2) var(--space-4); border-radius: var(--radius-md); font-weight: 600; text-decoration: none; }
.wv-skip:focus { top: var(--space-4); }
.wv-hp { position: absolute !important; inset-inline-start: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Neutralise parent-theme spacing on our wrappers */
.wp-site-blocks { padding: 0 !important; }
.wp-site-blocks > * { margin-block: 0 !important; }
.wv-main { margin: 0; }
.wv-content > * { margin-block: 0; }
.wv-content.is-layout-flow > * + *, .wv-section.is-layout-flow > * + * { margin-block-start: 0; }

/* Type helpers --------------------------------------------------------------- */
.wv-eyebrow { font-family: var(--font-mono); font-size: 12px; line-height: 16px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sand); font-weight: 500; margin: 0; }
[dir="rtl"] .wv-eyebrow { letter-spacing: 0.04em; font-size: 13px; }
.wv-lead { font-size: 19px; line-height: 30px; color: var(--text-muted); max-width: 62ch; }
[dir="rtl"] .wv-lead { font-size: 19px; line-height: 34px; }
.wv-muted { color: var(--text-muted); }
.wv-mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.wv-display { font-size: 64px; line-height: 68px; letter-spacing: -0.025em; }
[dir="rtl"] .wv-display { font-size: 56px; line-height: 80px; letter-spacing: 0; }
.wv-display em { font-style: normal; color: var(--sand); }

/* Layout --------------------------------------------------------------------- */
.wv-wrap { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); box-sizing: border-box; }
@media (min-width: 600px) { :root { --gutter: var(--space-8); } }
.wv-section { padding-block: var(--space-24); border-top: 1px solid var(--line); }
.wv-section--hero { border-top: 0; padding-block: var(--space-24) var(--space-16); }
.wv-section--tight { padding-block: var(--space-16); }
.wv-section__head { display: grid; gap: var(--space-4); margin-block-end: var(--space-12); max-width: 760px; }
.wv-stack { display: grid; gap: var(--space-6); align-content: start; }
.wv-stack--sm { gap: var(--space-3); }
.wv-row { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
.wv-split { display: grid; gap: var(--space-12); }
@media (min-width: 900px) { .wv-split { grid-template-columns: 5fr 7fr; gap: var(--space-16); align-items: start; } .wv-split--even { grid-template-columns: 1fr 1fr; } .wv-split--form { grid-template-columns: 4fr 7fr; } }
.wv-grid { display: grid; gap: var(--space-4); grid-template-columns: 1fr; list-style: none; margin: 0; padding: 0; }
@media (min-width: 600px) { .wv-grid--2, .wv-grid--3, .wv-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .wv-grid--3 { grid-template-columns: repeat(3, 1fr); } .wv-grid--4 { grid-template-columns: repeat(4, 1fr); } }
.wv-grid > li { display: grid; }

/* Header --------------------------------------------------------------------- */
.wv-header-part { position: sticky; top: 0; z-index: 50; }
.wv-header { background: var(--bg); border-bottom: 1px solid var(--line); }
.wv-header__inner { display: flex; align-items: center; gap: var(--space-6); min-height: 72px; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); box-sizing: border-box; }
.wv-header__logo { display: inline-flex; align-items: center; min-height: 44px; flex: none; }
.wv-header__logo img { height: 32px; width: auto; display: block; }
.wv-nav { display: flex; align-items: center; gap: var(--space-8); margin-inline-start: auto; }
.wv-nav__list { display: flex; gap: var(--space-6); list-style: none; margin: 0; padding: 0; }
.wv-nav__list a { display: inline-flex; align-items: center; min-height: 44px; color: var(--text-muted); text-decoration: none; font-weight: 500; font-size: 15px; border-bottom: 2px solid transparent; box-sizing: border-box; padding-top: 2px; transition: color .15s ease, border-color .15s ease; }
.wv-nav__list a:hover { color: var(--text); }
.wv-nav__list a[aria-current="page"], .wv-nav__list .current-menu-item > a { color: var(--text); border-bottom-color: var(--sand); }
.wv-nav__actions { display: flex; align-items: center; gap: var(--space-4); }
.wv-lang { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; box-sizing: border-box; font-family: var(--font-sans); font-size: 15px; font-weight: 600; color: var(--text-muted); text-decoration: none; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.wv-lang:hover { color: var(--text); border-color: var(--control-border); }
.wv-menu-btn { display: none; margin-inline-start: auto; min-height: 44px; padding: 0 var(--space-4); background: transparent; color: var(--text); border: 1px solid var(--control-border); border-radius: var(--radius-md); font: 600 15px/1 var(--font-sans); cursor: pointer; }
@media (max-width: 899px) {
	.wv-menu-btn { display: inline-flex; align-items: center; }
	.wv-nav { display: none; position: fixed; inset: 73px 0 0 0; background: var(--bg); flex-direction: column; align-items: stretch; gap: var(--space-8); padding: var(--space-8) var(--gutter); overflow-y: auto; box-shadow: var(--shadow-overlay); }
	.wv-header.is-open .wv-nav { display: flex; }
	.wv-nav__list { flex-direction: column; gap: 0; }
	.wv-nav__list a { font-size: 22px; font-family: var(--font-display); color: var(--text); min-height: 56px; width: 100%; border-bottom: 1px solid var(--line); }
	.wv-nav__list a[aria-current="page"] { color: var(--sand); border-bottom-color: var(--line); }
	.wv-nav__actions { justify-content: space-between; }
	.wv-nav__actions .wv-btn { flex: 1; }
}
.admin-bar .wv-header-part { top: 32px; }
@media (max-width: 782px) { .admin-bar .wv-header-part { top: 46px; } }

/* Buttons -------------------------------------------------------------------- */
.wv-btn, .wp-block-button__link { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: 44px; padding: 0 var(--space-6); border-radius: var(--radius-md); border: 1px solid transparent; font: 600 15px/20px var(--font-sans); text-decoration: none; cursor: pointer; transition: background-color .15s ease, border-color .15s ease, color .15s ease; white-space: nowrap; }
.wv-btn--primary, .wp-block-button__link { background: var(--sand); color: var(--on-sand); }
.wv-btn--primary:hover, .wp-block-button__link:hover { background: var(--sand-strong); color: var(--on-sand); }
.wv-btn--secondary, .is-style-outline .wp-block-button__link { background: transparent; color: var(--text); border-color: var(--control-border); }
.wv-btn--secondary:hover, .is-style-outline .wp-block-button__link:hover { border-color: var(--text); color: var(--text); background: transparent; }
.wv-btn--ghost { background: transparent; color: var(--sand); padding: 0; min-height: 44px; }
.wv-btn--ghost:hover { color: var(--sand-strong); text-decoration: underline; text-underline-offset: 4px; }
.wv-btn[disabled] { opacity: .45; cursor: not-allowed; }
.wv-btn--block { width: 100%; }
.wv-arrow::after { content: "→"; display: inline-block; margin-inline-start: 2px; }
[dir="rtl"] .wv-arrow::after { content: "←"; }

/* Hero ----------------------------------------------------------------------- */
.wv-hero { display: grid; gap: var(--space-12); }
@media (min-width: 1000px) { .wv-hero { grid-template-columns: 7fr 5fr; align-items: end; } }
.wv-hero__text { display: grid; gap: var(--space-6); }
.wv-hero__figure { margin: 0; display: grid; gap: var(--space-2); }
.wv-hero__figure img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius-md); border: 1px solid var(--line); display: block; filter: saturate(.92); }
.wv-hero__figure figcaption { font-family: var(--font-mono); font-size: 12px; color: var(--text-muted); letter-spacing: .04em; direction: ltr; text-align: start; }
[dir="rtl"] .wv-hero__figure figcaption { text-align: end; }
@media (max-width: 999px) { .wv-hero__figure img { aspect-ratio: 16 / 10; } }
.wv-facts { display: flex; flex-wrap: wrap; gap: var(--space-6) var(--space-12); margin: var(--space-6) 0 0; padding: var(--space-6) 0 0; border-top: 1px solid var(--line); list-style: none; }
.wv-facts li { display: grid; gap: 2px; }
.wv-facts strong { font-family: var(--font-mono); font-weight: 500; font-size: 28px; line-height: 32px; color: var(--text); font-variant-numeric: tabular-nums; }
.wv-facts span { font-size: 14px; color: var(--text-muted); }
@media (max-width: 599px) { .wv-display { font-size: 40px; line-height: 44px; } [dir="rtl"] .wv-display { font-size: 36px; line-height: 54px; } h1 { font-size: 34px; line-height: 40px; } [dir="rtl"] h1 { font-size: 32px; line-height: 48px; } h2 { font-size: 26px; line-height: 32px; } .wv-section { padding-block: var(--space-16); } }

/* Doors (the three lines of business) ---------------------------------------- */
.wv-doors { display: grid; grid-template-columns: 1fr; border: 1px solid var(--line); border-radius: var(--radius-md); list-style: none; margin: 0; padding: 0; overflow: hidden; }
@media (min-width: 900px) { .wv-doors { grid-template-columns: repeat(3, 1fr); } }
.wv-door { display: grid; grid-template-rows: auto auto 1fr auto; gap: var(--space-4); padding: var(--space-8); background: var(--surface); border-bottom: 1px solid var(--line); }
@media (min-width: 900px) { .wv-door { border-bottom: 0; border-inline-end: 1px solid var(--line); } .wv-door:last-child { border-inline-end: 0; } }
.wv-door:last-child { border-bottom: 0; }
.wv-door__mark { display: block; width: 40px; height: 40px; }
.wv-door h3 { font-size: 26px; line-height: 32px; }
.wv-door ul { list-style: none; margin: 0; padding: 0; display: grid; }
.wv-door li { padding-block: var(--space-2); border-top: 1px solid var(--line); color: var(--text-muted); font-size: 15px; }
.wv-door .wv-btn { justify-self: start; margin-top: var(--space-2); }

/* Cards ---------------------------------------------------------------------- */
.wv-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-8); display: grid; gap: var(--space-3); align-content: start; color: var(--text); text-decoration: none; }
.wv-card p { color: var(--text-muted); }
.wv-card__index { font: 500 12px/16px var(--font-mono); letter-spacing: .12em; color: var(--text-muted); text-transform: uppercase; }
[dir="rtl"] .wv-card__index { letter-spacing: .02em; font-family: var(--font-sans); font-size: 13px; }
a.wv-card { transition: border-color .15s ease, background-color .15s ease; }
a.wv-card:hover { border-color: var(--sand); background: var(--raised); color: var(--text); }
.wv-card--plain { background: transparent; }
.wv-card__foot { margin-top: var(--space-2); font-size: 14px; color: var(--sand); font-weight: 600; }

/* Service list (definition rows) -------------------------------------------- */
.wv-services { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.wv-services li { display: grid; gap: var(--space-2); padding-block: var(--space-6); border-bottom: 1px solid var(--line); }
@media (min-width: 900px) { .wv-services li { grid-template-columns: 4fr 7fr; gap: var(--space-8); } }
.wv-services h3 { font-size: 20px; line-height: 28px; }
.wv-services p { color: var(--text-muted); }

/* Steps (a real sequence) ----------------------------------------------------- */
.wv-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); counter-reset: step; }
@media (min-width: 900px) { .wv-steps { grid-template-columns: repeat(4, 1fr); } }
.wv-steps li { counter-increment: step; display: grid; gap: var(--space-2); padding-top: var(--space-4); border-top: 2px solid var(--line); }
.wv-steps li::before { content: counter(step, decimal-leading-zero); font: 500 13px/16px var(--font-mono); color: var(--sand); }
.wv-steps li:first-child { border-top-color: var(--sand); }
.wv-steps h3 { font-size: 19px; line-height: 26px; }
.wv-steps p { color: var(--text-muted); font-size: 15px; }

/* Properties ------------------------------------------------------------------ */
.wv-props { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); grid-template-columns: 1fr; }
@media (min-width: 600px) { .wv-props { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .wv-props { grid-template-columns: repeat(3, 1fr); } }
.wv-prop { display: grid; grid-template-rows: auto 1fr; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; }
.wv-prop__media { aspect-ratio: 3 / 2; background: var(--raised); }
.wv-prop__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wv-prop__body { display: grid; gap: var(--space-3); padding: var(--space-6); align-content: start; grid-template-rows: auto auto auto 1fr auto auto; }
.wv-prop__body h3 { font-size: 20px; line-height: 26px; }
.wv-prop__place { font-size: 14px; color: var(--sand); }
.wv-prop__body > p:not(.wv-prop__place) { color: var(--text-muted); font-size: 15px; }
.wv-prop .wv-btn { justify-self: start; }
.wv-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.wv-tags li { font-size: 13px; line-height: 20px; padding: 2px var(--space-2); border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--text-muted); }

/* Work ----------------------------------------------------------------------- */
.wv-work { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.wv-work > li { display: grid; gap: var(--space-4); padding-block: var(--space-8); border-bottom: 1px solid var(--line); }
@media (min-width: 900px) { .wv-work > li { grid-template-columns: 3fr 6fr 3fr; gap: var(--space-8); align-items: start; } }
.wv-work h3 { font-size: 24px; line-height: 30px; }
.wv-work dl { margin: 0; display: grid; gap: var(--space-2); font-size: 14px; }
.wv-work dt { font: 500 12px/16px var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.wv-work dd { margin: 0 0 var(--space-2); }

/* Product teaser ------------------------------------------------------------- */
.wv-product { display: grid; gap: var(--space-8); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); padding: var(--space-8); }
@media (min-width: 900px) { .wv-product { grid-template-columns: 1fr 1fr; padding: var(--space-12); } }
.wv-price { font: 500 36px/40px var(--font-mono); letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--text); }
.wv-price small { font: 400 14px/20px var(--font-sans); color: var(--text-muted); letter-spacing: 0; }
.wv-checklist { list-style: none; margin: 0; padding: 0; display: grid; }
.wv-checklist li { padding: var(--space-3) 0; border-top: 1px solid var(--line); padding-inline-start: 28px; position: relative; }
.wv-checklist li::before { content: ""; position: absolute; inset-inline-start: 4px; top: 21px; width: 10px; height: 5px; border-left: 2px solid var(--sand); border-bottom: 2px solid var(--sand); transform: rotate(-45deg); }

/* Badge ---------------------------------------------------------------------- */
.wv-badge { display: inline-flex; align-items: center; gap: 6px; padding: 2px var(--space-2); border: 1px solid currentColor; border-radius: var(--radius-sm); font: 500 12px/18px var(--font-mono); letter-spacing: .06em; text-transform: uppercase; width: max-content; }
.wv-badge::before { content: ""; width: 6px; height: 6px; background: currentColor; border-radius: 50%; }
.wv-badge--success { color: var(--success); } .wv-badge--warning { color: var(--warning); } .wv-badge--neutral { color: var(--text-muted); }

/* Forms ---------------------------------------------------------------------- */
.wv-form-wrap { display: grid; gap: var(--space-6); }
.wv-form { display: grid; gap: var(--space-6); grid-template-columns: 1fr; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-6); }
@media (min-width: 700px) { .wv-form { grid-template-columns: 1fr 1fr; padding: var(--space-8); } .wv-field--wide, .wv-form__foot { grid-column: 1 / -1; } }
.wv-field { display: grid; gap: var(--space-2); align-content: start; min-width: 0; }
.wv-field label, .wv-field legend { font: 500 14px/20px var(--font-sans); color: var(--text); }
.wv-field fieldset { border: 0; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.wv-req { color: var(--sand); }
.wv-input { box-sizing: border-box; width: 100%; min-height: 44px; padding: 10px var(--space-3); background: var(--bg); color: var(--text); border: 1px solid var(--control-border); border-radius: var(--radius-sm); font: 400 16px/24px var(--font-sans); }
.wv-input::placeholder { color: var(--text-muted); opacity: .8; }
.wv-input:focus { outline: 2px solid var(--focus); outline-offset: 1px; border-color: var(--focus); }
select.wv-input { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%); background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-inline-end: 36px; }
[dir="rtl"] select.wv-input { background-position: 18px 50%, 13px 50%; }
textarea.wv-input { min-height: 132px; resize: vertical; }
input[type="date"].wv-input { color-scheme: dark; }
.wv-help { font-size: 14px; line-height: 22px; color: var(--text-muted); }
.wv-help a { color: var(--lapis); }
.wv-field--error .wv-input { border-color: var(--danger); }
.wv-error { font-size: 14px; line-height: 22px; color: var(--danger); font-weight: 500; }
.wv-checks { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6); }
.wv-check { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 44px; font-size: 15px; color: var(--text); cursor: pointer; }
.wv-check input { width: 18px; height: 18px; accent-color: var(--sand); }
.wv-form__foot { display: grid; gap: var(--space-3); justify-items: start; }
.wv-notice { border: 1px solid currentColor; border-radius: var(--radius-md); padding: var(--space-4) var(--space-6); display: grid; gap: var(--space-1); }
.wv-notice p { color: var(--text); }
.wv-notice--success { color: var(--success); }
.wv-notice--danger { color: var(--danger); }
.wv-note { font-size: 14px; line-height: 22px; }
.wv-note--success { color: var(--success); } .wv-note--danger { color: var(--danger); } .wv-note--neutral { color: var(--text-muted); }

/* Contact aside -------------------------------------------------------------- */
.wv-contact-list { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--line); }
.wv-contact-list li { display: grid; gap: 2px; padding-block: var(--space-4); border-bottom: 1px solid var(--line); }
.wv-contact-list span { font: 500 12px/16px var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
[dir="rtl"] .wv-contact-list span { font-family: var(--font-sans); letter-spacing: 0; font-size: 13px; }
.wv-contact-list a { color: var(--text); font-size: 18px; text-decoration: none; }
.wv-contact-list a:hover { color: var(--sand); }

/* Posts ---------------------------------------------------------------------- */
.wv-posts { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); grid-template-columns: 1fr; }
@media (min-width: 700px) { .wv-posts { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .wv-posts { grid-template-columns: repeat(3, 1fr); } }
.wv-posts > li { display: grid; }
.wv-query .wp-block-post { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-8); display: grid; gap: var(--space-3); }
.wv-query .wp-block-post-title a { color: var(--text); text-decoration: none; }
.wv-query .wp-block-post-excerpt { color: var(--text-muted); }
.wv-empty { border: 1px dashed var(--control-border); border-radius: var(--radius-md); padding: var(--space-8); color: var(--text-muted); max-width: 640px; }
.wv-h1 { margin-block-end: var(--space-12); }

/* Article -------------------------------------------------------------------- */
.wv-article { padding-block: var(--space-16) var(--space-24); }
.wv-article__head, .wv-prose, .wv-article__img { max-width: 720px; margin-inline: auto; padding-inline: var(--gutter); box-sizing: content-box; }
.wv-article__head { display: grid; gap: var(--space-4); margin-block-end: var(--space-12); }
.wv-article__head .wp-block-post-date { font-family: var(--font-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--sand); }
.wv-article__head .wp-block-post-excerpt__excerpt { font-size: 19px; line-height: 30px; color: var(--text-muted); }
.wv-article__img img { border-radius: var(--radius-md); border: 1px solid var(--line); }
.wv-prose { font-size: 18px; line-height: 30px; }
.wv-prose > * + * { margin-block-start: var(--space-6) !important; }
.wv-prose h2 { font-size: 28px; line-height: 34px; margin-block-start: var(--space-12) !important; }
.wv-prose h3 { margin-block-start: var(--space-8) !important; }
.wv-prose ul, .wv-prose ol { padding-inline-start: 1.25em; }
.wv-prose li + li { margin-top: var(--space-2); }
.wv-prose blockquote { margin-inline: 0; padding-block: var(--space-6); border-block: 1px solid var(--line); color: var(--text); font-family: var(--font-display); font-size: 22px; line-height: 32px; }
.wv-prose code { font-family: var(--font-mono); font-size: .9em; background: var(--surface); padding: 2px 6px; border-radius: var(--radius-sm); }

/* Legal pages ----------------------------------------------------------------- */
.wv-legal { max-width: 760px; }
.wv-legal h2 { font-size: 24px; line-height: 30px; margin-top: var(--space-12); }
.wv-legal p, .wv-legal li { color: var(--text-muted); }
.wv-legal > * + * { margin-top: var(--space-4); }

/* CTA band ------------------------------------------------------------------- */
.wv-cta { display: grid; gap: var(--space-6); align-items: end; }
@media (min-width: 900px) { .wv-cta { grid-template-columns: 1fr auto; } }

/* Footer --------------------------------------------------------------------- */
.wv-footer { border-top: 1px solid var(--line); background: var(--bg); color: var(--text-muted); font-size: 15px; }
.wv-footer__inner { max-width: var(--container); margin-inline: auto; padding: var(--space-16) var(--gutter) var(--space-12); box-sizing: border-box; display: grid; gap: var(--space-12); grid-template-columns: 1fr; }
@media (min-width: 700px) { .wv-footer__inner { grid-template-columns: repeat(3, 1fr); } .wv-footer__brand, .wv-footer__news { grid-column: 1 / -1; } }
@media (min-width: 1100px) { .wv-footer__inner { grid-template-columns: 4fr 2fr 2fr 2fr 4fr; } .wv-footer__brand, .wv-footer__news { grid-column: auto; } }
.wv-footer__brand { display: grid; gap: var(--space-4); align-content: start; }
.wv-footer__logo img { height: 28px; width: auto; display: block; }
.wv-footer__tag { color: var(--text); font-family: var(--font-display); font-size: 18px; line-height: 24px; }
.wv-footer__h { font: 500 12px/16px var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text); margin-bottom: var(--space-4); }
[dir="rtl"] .wv-footer__h { font-family: var(--font-sans); letter-spacing: 0; font-size: 14px; }
.wv-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-1); }
.wv-footer a { color: var(--text-muted); text-decoration: none; display: inline-flex; min-height: 32px; align-items: center; }
.wv-footer a:hover { color: var(--text); }
.wv-footer__contact a { color: var(--text); }
.wv-footer__news { display: grid; gap: var(--space-3); align-content: start; }
.wv-newsletter { display: grid; gap: var(--space-3); }
.wv-newsletter__form { display: flex; gap: var(--space-2); flex-wrap: wrap; }
.wv-newsletter__form .wv-input { flex: 1 1 200px; width: auto; }
.wv-footer__bar { max-width: var(--container); margin-inline: auto; padding: var(--space-6) var(--gutter); box-sizing: border-box; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6); justify-content: space-between; font-size: 14px; }
.wv-footer__bar a { min-height: 24px; }

/* Store and account (WE-Vira License Server) --------------------------------- */
.wvls-store, .wvls-account {
	--wvls-ink: var(--text);
	--wvls-paper: var(--bg);
	--wvls-surface: var(--surface);
	--wvls-accent: var(--sand);
	--wvls-accent-ink: var(--on-sand);
	--wvls-muted: var(--text-muted);
	--wvls-line: var(--line);
	--wvls-ok: var(--success);
	--wvls-warn: var(--warning);
	--wvls-bad: var(--danger);
	--wvls-radius: var(--radius-md);
	font-family: var(--font-sans);
}
.wvls-store :is(h1, h2, h3), .wvls-account :is(h1, h2, h3) { font-family: var(--font-display); }
.wvls-store input, .wvls-store select, .wvls-account input, .wvls-account select, .wvls-account textarea { background: var(--bg); color: var(--text); border-color: var(--control-border); }
.wv-store-page .wvls-store, .wv-store-page .wvls-account { max-width: none; }

/* Editor --------------------------------------------------------------------- */
.editor-styles-wrapper { background: var(--bg); color: var(--text); }
.wv-editor-preview { pointer-events: none; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
