/*
 * سیراوند -- the theme's only stylesheet.
 *
 * Colours: the logo's purple #642c69 and yellow #ffc600, on a pale «map paper» ground. Motifs, all from surveying:
 * topographic contour lines (img/contours.svg as a mask), the triangulation-point sign △ (.sv-glyph) and an
 * instrument's coordinate readout (.sv-hud). No dashed borders or stripes (owner, 2026-10-20).
 *
 * Fonts: IRANSansX in three weights (400, 700, 800); 500 falls back to 400.
 *
 * Right to left throughout: logical properties (inline-start = right) wherever direction matters.
 */

/* ------------------------------------------------------------------ fonts */

@font-face { font-family: IRANSansX; font-weight: 400; font-display: swap; src: url(../fonts/IRANSansXFaNum-Regular.woff2) format("woff2"); }
@font-face { font-family: IRANSansX; font-weight: 700; font-display: swap; src: url(../fonts/IRANSansXFaNum-Bold.woff2) format("woff2"); }
@font-face { font-family: IRANSansX; font-weight: 800 900; font-display: swap; src: url(../fonts/IRANSansXFaNum-ExtraBold.woff2) format("woff2"); }

/* ------------------------------------------------------------------ tokens */

:root {
	--brand: #642c69;
	--brand-2: #7a3a80;
	--brand-3: #86478c;
	--deep: #2b1130;
	--deeper: #1e0b22;
	--ink: #22122a;
	--text: #3a2e40;
	--muted: #64586b;
	--line: #e8dfea;
	--line-2: #d8cadc;
	--paper: #f7f3f8;
	--paper-2: #efe6f1;
	--white: #fff;
	--yellow: #ffc600;
	--yellow-2: #ffd640;
	--yellow-soft: #fff4cc;
	--yellow-ink: #7a5900;
	--on-dark: #eadff0;
	--on-dark-2: #c3b1c8;
	--r: 16px;
	--r-sm: 10px;
	--shadow: 0 22px 48px -28px rgba(43, 17, 48, .5);
	--shadow-sm: 0 10px 28px -18px rgba(43, 17, 48, .45);
	--wrap: 1240px;
	--gut: 24px;
	--header: 78px;
	--ease: cubic-bezier(.2, .7, .2, 1);
	--contours: url(../img/contours.svg);
}

/* ------------------------------------------------------------------ base */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header) + 16px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; font: 400 1rem/1.95 IRANSansX, Tahoma, sans-serif; color: var(--text); background: var(--white); direction: rtl; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--brand); text-decoration-thickness: 1px; text-underline-offset: .3em; }
a:hover { color: var(--brand-3); }
h1, h2, h3, h4 { color: var(--ink); line-height: 1.45; margin: 0 0 .6em; font-weight: 800; }
p { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--yellow); color: var(--ink); }
.screen-reader-text, .sv-hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sv-skip { position: absolute; inset-inline-start: 12px; top: -60px; z-index: 100; background: var(--yellow); color: var(--ink); padding: 10px 18px; border-radius: 8px; font-weight: 700; }
.sv-skip:focus { top: 12px; }
.sv-main { display: block; outline: 0; }
bdi { unicode-bidi: isolate; direction: ltr; }

.sv-wrap { width: 100%; max-width: calc(var(--wrap) + var(--gut) * 2); margin-inline: auto; padding-inline: var(--gut); }
.sv-narrow { max-width: calc(860px + var(--gut) * 2); }
@media (max-width: 640px) { :root { --gut: 16px; } }

.sv-ico { width: 1.25em; height: 1.25em; flex: none; }
.sv-ico.is-prev { transform: scaleX(-1); }
.sv-glyph { width: 1em; height: .9em; flex: none; fill: none; stroke: var(--yellow); stroke-width: 2; stroke-linejoin: round; }
.sv-glyph circle { fill: var(--yellow); stroke: none; }

/* ------------------------------------------------------------------ sections and headings */

.sv-sec { position: relative; isolation: isolate; }
.sv-sec.pad-sm { padding-block: 48px; }
.sv-sec.pad-md { padding-block: 96px; }
.sv-sec.pad-lg { padding-block: 128px; }
.sv-sec.pad-none { padding-block: 0; }
@media (max-width: 760px) { .sv-sec.pad-md { padding-block: 64px; } .sv-sec.pad-lg { padding-block: 84px; } .sv-sec.pad-sm { padding-block: 36px; } }
.tone-paper { background: var(--paper); }
.tone-white { background: var(--white); }
.tone-brand { background: var(--brand); }
.tone-deep { background: var(--deep); }
.tone-none { background: transparent; }
.is-dark { color: var(--on-dark); }
.is-dark h1, .is-dark h2, .is-dark h3, .is-dark h4, .is-dark .sv-title { color: var(--white); }
.is-dark a:not(.sv-btn) { color: var(--white); }

.sv-head { display: grid; gap: 12px 48px; margin-bottom: 44px; }
.sv-head.is-split { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: end; }
.sv-head.is-center { text-align: center; justify-items: center; max-width: 760px; margin-inline: auto; }
.sv-head.is-start { max-width: 820px; }
.sv-head--gap { margin-top: 72px; }
.sv-head-side .sv-btn { margin-top: 8px; }
.sv-head-side { display: grid; gap: 12px; justify-items: start; }
@media (max-width: 900px) { .sv-head.is-split { grid-template-columns: 1fr; } }
.sv-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: .85rem; font-weight: 700; color: var(--brand-2); letter-spacing: .01em; margin-bottom: 10px; }
.is-dark .sv-eyebrow { color: var(--yellow); }
.sv-title { font-size: clamp(1.6rem, 1.15rem + 1.9vw, 2.55rem); line-height: 1.4; margin: 0; letter-spacing: -.01em; }
.sv-title .hl, .sv-ph-title .hl, .sv-hero-title .hl { position: relative; white-space: normal; background: linear-gradient(transparent 62%, rgba(255, 198, 0, .55) 62%, rgba(255, 198, 0, .55) 92%, transparent 92%); padding-inline: 2px; }
.is-dark .sv-title .hl, .is-dark .sv-ph-title .hl, .sv-hero-title .hl { background: none; color: var(--yellow); }
.sv-desc, .sv-lead { font-size: 1.06rem; color: var(--muted); margin: 0; }
.is-dark .sv-desc, .is-dark .sv-lead { color: var(--on-dark-2); }

/* ------------------------------------------------------------------ buttons */

.sv-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.sv-actions.is-stack { flex-direction: column; align-items: stretch; }
.sv-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 22px; border-radius: 12px; border: 1.5px solid transparent; font-weight: 700; font-size: .98rem; line-height: 1.2; text-decoration: none; transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s; cursor: pointer; }
.sv-btn .sv-ico { width: 1.2em; height: 1.2em; }
.sv-btn--yellow { background: var(--yellow); color: var(--ink); box-shadow: 0 10px 24px -14px rgba(255, 198, 0, .9); }
.sv-btn--yellow:hover { background: var(--yellow-2); color: var(--ink); }
.sv-btn--brand { background: var(--brand); color: var(--white); }
.sv-btn--brand:hover { background: var(--brand-2); color: var(--white); }
.sv-btn--line { border-color: var(--line-2); color: var(--brand); background: var(--white); }
.sv-btn--line:hover { border-color: var(--brand); color: var(--brand); }
.is-dark .sv-btn--line { background: transparent; border-color: rgba(255, 255, 255, .28); color: var(--white); }
.is-dark .sv-btn--line:hover { border-color: var(--yellow); color: var(--yellow); }
.sv-btn--glass { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .22); color: var(--white); }
.sv-btn--glass:hover { background: rgba(255, 255, 255, .14); color: var(--white); }
.sv-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; text-decoration: none; color: var(--brand); }
.sv-link:hover .sv-ico { transform: translateX(-3px); }
.sv-link .sv-ico { transition: transform .2s; }
.is-wide { grid-column: 1 / -1; }

/* ------------------------------------------------------------------ ornaments */

.sv-contours { position: absolute; inset: 0; z-index: -1; pointer-events: none; color: rgba(255, 255, 255, .06); background: currentColor; -webkit-mask: var(--contours) center / cover no-repeat; mask: var(--contours) center / cover no-repeat; }
.tone-paper .sv-contours, .tone-white .sv-contours { color: rgba(100, 44, 105, .07); }

/* A photo frame: a white mat around the picture. */
.sv-sheet { position: relative; display: block; padding: 10px; background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); }
.sv-sheet > img { width: 100%; border-radius: 10px; }

/* ------------------------------------------------------------------ top bar and header */

.sv-topbar { background: var(--deeper); color: var(--on-dark-2); font-size: .82rem; }
.sv-topbar-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; }
.sv-topbar p { margin: 0; display: flex; align-items: center; gap: 8px; }
.sv-topbar a { color: var(--on-dark); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.sv-topbar a:hover { color: var(--yellow); }
.sv-topbar .sv-ico { width: 1.05em; height: 1.05em; color: var(--yellow); }
.sv-topbar-end { display: flex; align-items: center; gap: 20px; }
@media (max-width: 860px) { .sv-topbar-place, .sv-topbar-mail { display: none !important; } .sv-topbar-in { justify-content: center; } }
@media (max-width: 420px) { .sv-topbar .sv-socials { display: none; } }

.sv-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .97); border-bottom: 1px solid var(--line); transition: box-shadow .25s; }
.sv-header.is-stuck { box-shadow: 0 10px 30px -22px rgba(43, 17, 48, .6); }
@supports (backdrop-filter: blur(1px)) { .sv-header { background: rgba(255, 255, 255, .88); backdrop-filter: saturate(1.4) blur(14px); } }
.sv-header-in { display: flex; align-items: center; gap: 24px; min-height: var(--header); }
.sv-logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--brand); flex: none; }
.sv-logo:hover { color: var(--brand); }
.sv-logo-img { display: block; height: 54px; width: auto; }
.sv-logo-t { display: grid; line-height: 1.25; padding-inline-start: 12px; border-inline-start: 1px solid var(--line-2); }
.sv-logo-t strong { font-size: 1.3rem; font-weight: 900; letter-spacing: -.01em; color: var(--brand); }
.sv-logo-t small { font-size: .72rem; color: var(--muted); font-weight: 500; }
.sv-logo.is-light .sv-logo-img { filter: brightness(0) invert(1); }
.sv-logo.is-light .sv-logo-t { border-color: rgba(255, 255, 255, .2); }
.sv-logo.is-light .sv-logo-t strong { color: var(--white); }
.sv-logo.is-light .sv-logo-t small { color: var(--on-dark-2); }

.sv-nav { margin-inline-start: auto; }
.sv-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 2px; }
.sv-menu > .sv-mi { position: relative; display: flex; align-items: center; }
.sv-menu > .sv-mi > a, .sv-menu > .sv-mi > .sv-mi-label { display: inline-flex; align-items: center; gap: 4px; padding: 10px 14px; border-radius: 10px; font-weight: 700; font-size: .95rem; color: var(--ink); text-decoration: none; background: none; border: 0; }
.sv-menu > .sv-mi > a:hover, .sv-menu > .sv-mi > .sv-mi-label:hover, .sv-menu > .sv-mi.is-open > .sv-mi-label { color: var(--brand); background: var(--paper); }
.sv-menu > .sv-mi.is-current > a, .sv-menu > .sv-mi.is-current > .sv-mi-label { color: var(--brand); box-shadow: inset 0 -3px 0 var(--yellow); border-radius: 10px 10px 4px 4px; }
.sv-mi-label .sv-ico, .sv-sub-toggle .sv-ico { width: 1em; height: 1em; transition: transform .2s; }
.sv-sub-toggle { background: none; border: 0; padding: 6px 2px; margin-inline-start: -10px; color: var(--muted); }
.sv-mi.is-open > button .sv-ico { transform: rotate(180deg); }
.sv-sub { position: absolute; top: calc(100% + 10px); inset-inline-start: -8px; min-width: 300px; background: var(--white); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); padding: 10px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s, transform .18s, visibility .18s; z-index: 10; }
.sv-sub::before { content: ""; position: absolute; inset-inline: 0; top: -12px; height: 12px; }
.sv-menu > .sv-mi:hover > .sv-sub, .sv-menu > .sv-mi:focus-within > .sv-sub, .sv-menu > .sv-mi.is-open > .sv-sub { opacity: 1; visibility: visible; transform: none; }
.sv-sub-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.sv-menu > .sv-mi:first-child + .sv-mi .sv-sub, .sv-menu .sv-mi.has-sub:nth-child(2) .sv-sub { min-width: 560px; }
.sv-menu .sv-mi.has-sub:nth-child(2) .sv-sub-list { grid-template-columns: 1fr 1fr; }
.sv-sub-list a { display: flex; align-items: flex-start; gap: 12px; padding: 10px 12px; border-radius: 10px; text-decoration: none; color: var(--ink); font-weight: 700; font-size: .93rem; }
.sv-sub-list a:hover { background: var(--paper); color: var(--brand); }
.sv-sub-list a[aria-current] { background: var(--yellow-soft); }
.sv-mi-ico { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--paper-2); color: var(--brand); flex: none; font-style: normal; }
.sv-sub-list a:hover .sv-mi-ico { background: var(--brand); color: var(--yellow); }
.sv-mi-t { display: grid; line-height: 1.5; }
.sv-mi-t small { font-weight: 400; color: var(--muted); font-size: .8rem; }

.sv-header-act { display: flex; align-items: center; gap: 10px; }
.sv-header-tel { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; padding: 6px 6px 6px 16px; border-radius: 14px; background: var(--brand); color: var(--white); }
.sv-header-tel:hover { background: var(--brand-2); color: var(--white); }
.sv-header-tel-ico { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--yellow); color: var(--ink); }
.sv-header-tel-t { display: grid; line-height: 1.3; }
.sv-header-tel-t small { font-size: .72rem; color: var(--on-dark-2); }
.sv-header-tel-t bdi { font-weight: 800; font-size: 1rem; }
.sv-burger { display: none; width: 46px; height: 46px; border-radius: 12px; border: 1px solid var(--line-2); background: var(--white); color: var(--brand); place-items: center; }
.sv-burger .sv-ico { width: 24px; height: 24px; }
@media (max-width: 1140px) { .sv-nav { display: none; } .sv-burger { display: grid; } .sv-header-act { margin-inline-start: auto; } }
@media (max-width: 1280px) and (min-width: 1141px) { .sv-header .sv-logo-t { display: none; } }
@media (max-width: 560px) { .sv-header-tel { padding: 6px; } .sv-header-tel-t { display: none; } .sv-header .sv-logo-t { display: none; } .sv-logo-img { height: 46px; } :root { --header: 68px; } }

/* Drawer (phones and tablets). */
.sv-drawer { position: fixed; inset: 0; z-index: 90; }
.sv-drawer-backdrop { position: absolute; inset: 0; background: rgba(30, 11, 34, .55); opacity: 0; transition: opacity .3s; }
.sv-drawer-panel { position: absolute; inset-block: 0; inset-inline-start: 0; width: min(380px, 88vw); background: var(--deep); color: var(--on-dark); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .34s var(--ease); overflow-y: auto; overscroll-behavior: contain; }
.sv-drawer.is-open .sv-drawer-backdrop { opacity: 1; }
.sv-drawer.is-open .sv-drawer-panel { transform: none; }
.sv-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.sv-drawer-x { width: 44px; height: 44px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .16); background: none; color: var(--white); display: grid; place-items: center; }
.sv-dnav { padding: 10px 12px; }
.sv-dmenu, .sv-dmenu .sv-sub-list { list-style: none; margin: 0; padding: 0; }
.sv-dmenu > .sv-mi { border-bottom: 1px solid rgba(255, 255, 255, .06); display: flex; flex-wrap: wrap; align-items: center; }
.sv-dmenu > .sv-mi > a, .sv-dmenu > .sv-mi > .sv-mi-label { flex: 1; display: flex; align-items: center; justify-content: space-between; padding: 14px 8px; color: var(--white); text-decoration: none; font-weight: 700; background: none; border: 0; text-align: start; }
.sv-dmenu .sv-sub-toggle { color: var(--on-dark-2); padding: 12px; margin: 0; }
.sv-dmenu .sv-sub { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; background: rgba(255, 255, 255, .04); min-width: 0 !important; width: 100%; padding: 4px; display: none; border-radius: 12px; margin-bottom: 10px; }
.sv-dmenu .sv-mi.is-open > .sv-sub { display: block; }
.sv-dmenu .sv-sub-list { grid-template-columns: 1fr !important; }
.sv-dmenu .sv-sub-list a { color: var(--on-dark); }
.sv-dmenu .sv-sub-list a:hover { background: rgba(255, 255, 255, .06); color: var(--white); }
.sv-dmenu .sv-mi-ico { background: rgba(255, 255, 255, .08); color: var(--yellow); width: 34px; height: 34px; }
.sv-dmenu .sv-mi-t small { color: var(--on-dark-2); }
.sv-drawer-foot { margin-top: auto; padding: 20px; display: grid; gap: 16px; border-top: 1px solid rgba(255, 255, 255, .08); }
.sv-drawer-foot .sv-btn--line { background: transparent; color: var(--white); border-color: rgba(255, 255, 255, .25); }
.sv-drawer-addr { display: flex; gap: 10px; font-size: .88rem; color: var(--on-dark-2); margin: 0; }
.sv-drawer-addr .sv-ico { color: var(--yellow); margin-top: 6px; }

/* Channels as small square icons. */
.sv-socials { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; }
.sv-socials a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: rgba(255, 255, 255, .07); color: var(--white); border: 1px solid rgba(255, 255, 255, .12); transition: background-color .2s, color .2s; }
.sv-socials a:hover { background: var(--yellow); color: var(--ink); border-color: var(--yellow); }
.sv-socials.is-mini { gap: 4px; }
.sv-socials.is-mini a { width: 28px; height: 28px; background: none; border: 0; color: var(--on-dark-2); }
.sv-socials.is-mini a:hover { color: var(--yellow); background: none; }
.sv-socials.is-mini .sv-ico { color: inherit; }
.sv-socials.is-boxed a { background: var(--paper); color: var(--brand); border-color: var(--line); width: 46px; height: 46px; }
.sv-socials.is-boxed a:hover { background: var(--brand); color: var(--yellow); }

/* ------------------------------------------------------------------ hero */

.sv-hero { overflow: hidden; padding-block: 72px 0; }
.sv-hero-contours { color: rgba(205, 160, 214, .12); animation: sv-drift 60s linear infinite alternate; inset: -6%; }
@keyframes sv-drift { to { transform: translate3d(-3%, 2%, 0) scale(1.04); } }
.sv-hero-grid-bg { position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px); background-size: 80px 80px; -webkit-mask: linear-gradient(180deg, #000, transparent 85%); mask: linear-gradient(180deg, #000, transparent 85%); }
.sv-hero::after { content: ""; position: absolute; z-index: -1; width: 720px; height: 720px; border-radius: 50%; inset-inline-end: -220px; top: -260px; background: radial-gradient(closest-side, rgba(134, 71, 140, .55), transparent); }
.sv-hero-in { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr); gap: 56px; align-items: center; }
.sv-hero-title { font-size: clamp(2.05rem, 1.2rem + 3.3vw, 3.75rem); line-height: 1.3; color: var(--white); margin: 6px 0 18px; letter-spacing: -.02em; }
.sv-hero-lead { font-size: 1.2rem; font-weight: 700; color: var(--white); margin-bottom: 10px; }
.sv-hero-text { font-size: 1.05rem; color: var(--on-dark-2); max-width: 560px; margin-bottom: 30px; }
.sv-hero-vis { position: relative; --x: 50%; --y: 50%; }
.sv-hero-photo { position: relative; margin: 0; aspect-ratio: 5 / 4; border-radius: 22px; overflow: hidden; box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .8); border: 1px solid rgba(255, 255, 255, .12); background: var(--brand); }
.sv-hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.sv-hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(200deg, rgba(43, 17, 48, 0) 40%, rgba(43, 17, 48, .65)); pointer-events: none; }
.sv-hero-flight { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.sv-hf-path { fill: none; stroke: var(--yellow); stroke-width: 1.6; stroke-dasharray: 7 6; vector-effect: non-scaling-stroke; animation: sv-dash 18s linear infinite; opacity: .9; }
@keyframes sv-dash { to { stroke-dashoffset: -260; } }
.sv-hf-shots rect { fill: rgba(255, 198, 0, .12); stroke: rgba(255, 255, 255, .7); stroke-width: 1; vector-effect: non-scaling-stroke; opacity: 0; animation: sv-shot 6s var(--d, 0s) infinite; }
@keyframes sv-shot { 0%, 8% { opacity: 0; } 14%, 60% { opacity: 1; } 75%, 100% { opacity: 0; } }
.sv-reticle { position: absolute; z-index: 2; left: var(--x); top: var(--y); width: 132px; height: 132px; margin: -66px 0 0 -66px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, .85); box-shadow: 0 0 0 999px rgba(30, 11, 34, 0), inset 0 0 0 18px rgba(255, 255, 255, .05); pointer-events: none; transition: left .12s linear, top .12s linear; }
.sv-reticle::before, .sv-reticle::after { content: ""; position: absolute; background: rgba(255, 255, 255, .9); }
.sv-reticle::before { left: 50%; top: -14px; bottom: -14px; width: 1.5px; margin-left: -.75px; -webkit-mask: linear-gradient(#000 0 42%, transparent 42% 58%, #000 58%); mask: linear-gradient(#000 0 42%, transparent 42% 58%, #000 58%); }
.sv-reticle::after { top: 50%; left: -14px; right: -14px; height: 1.5px; margin-top: -.75px; -webkit-mask: linear-gradient(90deg, #000 0 42%, transparent 42% 58%, #000 58%); mask: linear-gradient(90deg, #000 0 42%, transparent 42% 58%, #000 58%); }
.sv-reticle i { position: absolute; inset: 50%; width: 8px; height: 8px; margin: -4px; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 4px rgba(255, 198, 0, .3); }
.sv-hero-cap { position: absolute; z-index: 3; inset-inline-start: 24px; bottom: 22px; display: inline-flex; align-items: center; gap: 6px; color: var(--white); font-size: .85rem; font-weight: 700; }
.sv-hero-cap .sv-ico { color: var(--yellow); }
.sv-hud { position: absolute; z-index: 4; left: -26px; bottom: 34px; display: grid; gap: 2px; min-width: 214px; padding: 14px 16px; border-radius: 14px; background: rgba(30, 11, 34, .86); border: 1px solid rgba(255, 255, 255, .14); box-shadow: var(--shadow); color: var(--on-dark); direction: ltr; font-size: .86rem; backdrop-filter: blur(8px); }
.sv-hud span { display: flex; justify-content: space-between; gap: 18px; }
.sv-hud i { font-style: normal; color: var(--yellow); font-weight: 800; }
.sv-hud b { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--white); }
.sv-hud .sv-hud-h { font-size: .72rem; color: var(--on-dark-2); letter-spacing: .06em; border-bottom: 1px solid rgba(255, 255, 255, .1); padding-bottom: 6px; margin-bottom: 4px; }
.sv-hero-badge { position: absolute; z-index: 4; top: -18px; inset-inline-start: 26px; display: inline-flex; align-items: center; gap: 8px; max-width: 300px; margin: 0; padding: 10px 14px; border-radius: 12px; background: var(--yellow); color: var(--ink); font-size: .82rem; font-weight: 800; line-height: 1.55; box-shadow: 0 16px 34px -18px rgba(255, 198, 0, .9); }
.sv-hero-badge .sv-ico { width: 26px; height: 26px; }
/*
 * The figures under the hero: a white card across the hero's lower edge -- the hero's dark ground ends halfway down
 * the card (--tail), and the section after it continues in its paper colour.
 */
.sv-hero.has-stats { --tail: 64px; padding-bottom: 0; background: linear-gradient(var(--deep) calc(100% - var(--tail)), var(--paper) calc(100% - var(--tail))); }
.sv-hero.has-stats .sv-hero-contours, .sv-hero.has-stats .sv-hero-grid-bg { bottom: var(--tail); }
.sv-hero-foot { position: relative; z-index: 3; margin-top: 64px; }
.sv-hero-stats { list-style: none; margin: 0; padding: 10px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--white); border-radius: 22px; box-shadow: 0 30px 60px -30px rgba(30, 11, 34, .55), 0 0 0 1px rgba(43, 17, 48, .06); }
.sv-hero-stats li { position: relative; display: flex; align-items: center; gap: 14px; padding: 18px 20px; border-radius: 16px; transition: background-color .2s; }
.sv-hero-stats li + li::before { content: ""; position: absolute; inset-inline-start: 0; top: 22%; bottom: 22%; width: 1px; background: var(--line); }
.sv-hero-stats li:hover { background: var(--paper); }
.sv-hero-stat-ico { display: grid; place-items: center; width: 52px; height: 52px; flex: none; border-radius: 14px; background: var(--yellow); color: var(--ink); }
.sv-hero-stat-ico .sv-ico { width: 26px; height: 26px; }
.sv-hero-stats li:nth-child(even) .sv-hero-stat-ico { background: var(--brand); color: var(--yellow); }
.sv-hero-stat-t { display: grid; line-height: 1.4; min-width: 0; }
.sv-hero-stat-t strong { font-size: clamp(1.25rem, 1rem + .9vw, 1.7rem); font-weight: 900; color: var(--ink); }
.sv-hero-stat-t span { color: var(--muted); font-size: .86rem; }
@media (max-width: 1100px) { .sv-hero-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sv-hero-stats li:nth-child(3)::before { display: none; } .sv-hero.has-stats { --tail: 110px; } }
@media (max-width: 520px) { .sv-hero-stats li { flex-direction: column; align-items: flex-start; gap: 10px; padding: 14px; } .sv-hero-stat-ico { width: 44px; height: 44px; } .sv-hero-foot { margin-top: 44px; } }
@media (max-width: 1000px) {
	.sv-hero { padding-top: 48px; }
	.sv-hero-in { grid-template-columns: 1fr; gap: 48px; }
	.sv-hud { left: 12px; bottom: 12px; min-width: 190px; }
	.sv-hero-badge { inset-inline-start: 12px; }
}
@media (max-width: 640px) {
	.sv-hud { font-size: .76rem; min-width: 168px; padding: 10px 12px; }
	.sv-hero-badge { font-size: .74rem; max-width: 240px; top: -14px; }
	.sv-reticle { width: 96px; height: 96px; margin: -48px 0 0 -48px; }
	.sv-hero-photo { aspect-ratio: 4 / 3.6; }
	.sv-hero-actions .sv-btn, .sv-hero .sv-actions .sv-btn { flex: 1 1 auto; }
}

/* ------------------------------------------------------------------ services as GIS layers */

.sv-gis { display: grid; grid-template-columns: 340px minmax(0, 1fr); background: var(--white); border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--shadow); overflow: hidden; }
.sv-gis-panel { background: var(--deep); color: var(--on-dark); padding: 0 0 12px; }
.sv-gis-bar { display: flex; align-items: center; justify-content: space-between; margin: 0; padding: 14px 18px; border-bottom: 1px solid rgba(255, 255, 255, .08); font-size: .78rem; color: var(--on-dark-2); direction: ltr; letter-spacing: .08em; text-transform: uppercase; }
.sv-gis-dots { display: flex; gap: 6px; }
.sv-gis-dots i { width: 10px; height: 10px; border-radius: 50%; background: rgba(255, 255, 255, .18); }
.sv-gis-dots i:first-child { background: var(--yellow); }
.sv-gis-list { display: grid; gap: 2px; padding: 10px; }
.sv-gis-list [role="tab"] { display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; gap: 12px; padding: 12px; border-radius: 12px; border: 1px solid transparent; background: none; color: var(--on-dark); text-align: start; transition: background-color .2s, border-color .2s; }
.sv-gis-list [role="tab"]:hover { background: rgba(255, 255, 255, .05); }
.sv-gis-list [aria-selected="true"] { background: rgba(255, 255, 255, .08); border-color: rgba(255, 198, 0, .5); }
.sv-gis-check { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 5px; border: 1.5px solid rgba(255, 255, 255, .3); color: transparent; }
.sv-gis-check .sv-ico { width: 14px; height: 14px; stroke-width: 3; }
[aria-selected="true"] .sv-gis-check { background: var(--yellow); border-color: var(--yellow); color: var(--ink); }
.sv-gis-ico { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: rgba(255, 255, 255, .06); color: var(--yellow); }
.sv-gis-t { display: grid; line-height: 1.5; }
.sv-gis-t strong { font-size: .97rem; color: var(--white); }
.sv-gis-t small { font-size: .78rem; color: var(--on-dark-2); }
.sv-gis-n { font-size: .78rem; color: var(--on-dark-2); font-weight: 700; }
.sv-gis-views { min-width: 0; }
.sv-gis-view { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); height: 100%; }
.sv-gis-view[data-hidden] { display: none; }
.sv-gis-canvas { position: relative; background: var(--paper); border-inline-end: 1px solid var(--line); display: grid; place-items: center; padding: 28px; }
.sv-gis-coord { position: absolute; top: 14px; inset-inline-start: 18px; font-size: .72rem; color: var(--muted); direction: ltr; letter-spacing: .06em; }
.sv-gis-copy { padding: 40px 40px 36px; display: flex; flex-direction: column; align-items: flex-start; }
.sv-gis-h { display: flex; align-items: center; gap: 12px; font-size: 1.45rem; margin-bottom: 14px; }
.sv-gis-h-ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--yellow); color: var(--ink); flex: none; }
.sv-gis-copy p { color: var(--text); }
.sv-gis-copy .sv-btn { margin-top: auto; }
.sv-gis-view:not([data-hidden]) .sv-gis-copy > * { animation: sv-in .45s var(--ease) both; }
.sv-gis-view:not([data-hidden]) .sv-gis-copy > :nth-child(2) { animation-delay: .05s; }
.sv-gis-view:not([data-hidden]) .sv-gis-copy > :nth-child(3) { animation-delay: .1s; }
@keyframes sv-in { from { opacity: 0; transform: translateY(10px); } }
@media (max-width: 1180px) { .sv-gis-view { grid-template-columns: 1fr; } .sv-gis-canvas { border-inline-end: 0; border-bottom: 1px solid var(--line); } }
@media (max-width: 860px) {
	.sv-gis { grid-template-columns: minmax(0, 1fr); }
	.sv-gis-panel { min-width: 0; }
	.sv-gis-bar { display: none; }
	.sv-gis-list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 10px; gap: 8px; }
	.sv-gis-list::-webkit-scrollbar { display: none; }
	.sv-gis-list [role="tab"] { flex: none; grid-template-columns: auto auto; scroll-snap-align: start; padding: 10px 14px 10px 10px; }
	.sv-gis-check, .sv-gis-n, .sv-gis-t small { display: none; }
	.sv-gis-ico { width: 34px; height: 34px; }
	.sv-gis-t strong { font-size: .9rem; white-space: nowrap; }
	.sv-gis-copy { padding: 26px 20px 28px; }
	.sv-gis-canvas { padding: 16px; }
}

/* Ticks: a list with checkmarks. */
.sv-ticks { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 8px; }
.sv-ticks li { position: relative; padding-inline-start: 30px; font-weight: 500; }
.sv-ticks li::before { content: ""; position: absolute; inset-inline-start: 0; top: .55em; width: 18px; height: 18px; border-radius: 5px; background: var(--yellow-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23642c69' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.2 4.2L19 7'/%3E%3C/svg%3E") center / 12px no-repeat; border: 1px solid rgba(255, 198, 0, .7); }
.is-dark .sv-ticks li::before { background-color: rgba(255, 198, 0, .16); }

/* The drawings (inc/scenes.php). */
.sv-scene { width: 100%; height: auto; max-height: 340px; direction: ltr; overflow: visible; font-family: IRANSansX, sans-serif; }
.sv-scene text { unicode-bidi: plaintext; }
.s-grid { stroke: rgba(100, 44, 105, .08); stroke-width: 1; fill: none; }
.s-land { fill: #ece3ee; }
.s-txt { fill: var(--ink); font-size: 13px; font-weight: 700; }
.s-small { font-size: 11px; font-weight: 500; fill: var(--muted); }
.s-strong { font-size: 14px; font-weight: 800; fill: var(--ink); }
.s-scale path { stroke: var(--ink); stroke-width: 1.5; fill: none; }
.s-scale text { font-size: 10px; fill: var(--muted); }
.s-inst rect, .s-inst circle { fill: var(--yellow); stroke: var(--ink); stroke-width: 2; }
.s-inst path { stroke: var(--ink); stroke-width: 3; stroke-linecap: round; fill: none; }
.s-pole path { stroke: var(--ink); stroke-width: 3; }
.s-y { fill: var(--yellow); stroke: var(--ink); stroke-width: 2; }
.s-sight, .s-ray { stroke: var(--brand-3); stroke-width: 2; stroke-dasharray: 8 7; fill: none; animation: sv-dash 6s linear infinite; }
.s-tag rect { fill: var(--white); stroke: var(--line-2); }
.s-trav { stroke: var(--brand); stroke-width: 1.5; stroke-dasharray: 3 5; fill: none; }
.s-bm path { fill: var(--brand); }
.s-block { fill: rgba(255, 198, 0, .07); stroke: var(--yellow); stroke-width: 1.5; stroke-dasharray: 6 5; }
.s-foot { fill: rgba(100, 44, 105, .1); stroke: var(--brand-3); stroke-width: 1; opacity: 0; animation: sv-shot 4.5s var(--d, 0s) infinite; }
.s-path { fill: none; stroke: var(--brand); stroke-width: 1.6; stroke-dasharray: 6 6; }
.s-plane { offset-rotate: auto; animation: sv-fly 12s linear infinite; fill: var(--yellow); stroke: var(--ink); stroke-width: 1.2; }
@keyframes sv-fly { from { offset-distance: 0%; } to { offset-distance: 100%; } }
.s-water { fill: #e6e4f5; }
.s-wave { fill: none; stroke: var(--brand-3); stroke-width: 2; }
.s-bed { fill: #d9c9dc; stroke: var(--brand); stroke-width: 2; }
.s-beam { fill: rgba(255, 198, 0, .22); animation: sv-pulse 2.6s ease-in-out infinite; }
.s-beam-lines { stroke: rgba(255, 170, 0, .8); stroke-width: 1; fill: none; }
@keyframes sv-pulse { 50% { opacity: .45; } }
.s-boat path { fill: var(--brand); stroke: var(--ink); stroke-width: 1.5; }
.s-boat .s-y { fill: none; stroke: var(--yellow); stroke-width: 3; }
.s-depth { font-size: 12px; fill: var(--brand); }
.s-contour path { fill: none; stroke: var(--brand-2); stroke-width: 1.3; stroke-dasharray: 900; stroke-dashoffset: 900; animation: sv-draw 2.4s var(--d, 0s) var(--ease) forwards; }
.s-contour path.is-index { stroke-width: 2.6; stroke: var(--brand); }
.s-outer { stroke-dasharray: none !important; stroke-dashoffset: 0 !important; animation: none !important; opacity: .4; }
@keyframes sv-draw { to { stroke-dashoffset: 0; } }
.s-elev { font-size: 11px; fill: var(--brand); }
.s-spot path { fill: var(--yellow); stroke: var(--ink); }
.s-north path { fill: var(--ink); }
.s-north text { font-size: 12px; font-weight: 800; fill: var(--ink); }
.s-photo { fill: rgba(255, 198, 0, .14); stroke: var(--brand); stroke-width: 1.3; animation: sv-pop .5s var(--d, 0s) var(--ease) both; }
@keyframes sv-pop { from { opacity: 0; transform: translateY(-6px); } }
.s-gcp rect { fill: var(--white); stroke: var(--ink); stroke-width: 1.5; }
.s-gcp path { stroke: var(--ink); stroke-width: 1.5; }
.s-cam rect { fill: var(--brand); }
.s-cam circle { fill: var(--yellow); }
.s-pile { fill: #e6c97a; stroke: var(--ink); stroke-width: 2; stroke-linejoin: round; }
.s-mesh { stroke: rgba(34, 18, 42, .45); stroke-width: 1; fill: none; }
.s-base { stroke: var(--ink); stroke-width: 2; }
.s-dims path { stroke: var(--muted); stroke-width: 1.2; fill: none; }
.s-drone-mini rect { fill: var(--brand); }
.s-drone-mini path { stroke: var(--brand); stroke-width: 2; stroke-linecap: round; }
.s-rays { stroke: rgba(255, 170, 0, .55); stroke-width: 1; fill: none; }
.s-cloud circle { fill: var(--brand-2); animation: sv-pop .4s var(--d, 0s) both; }
.s-pit { fill: none; stroke: var(--ink); stroke-width: 3; }
.s-nails { stroke: var(--brand-3); stroke-width: 2; }
.s-bldg rect { fill: var(--white); stroke: var(--ink); stroke-width: 2; }
.s-bldg path { stroke: var(--brand-3); stroke-width: 6; }
.s-prism circle { fill: var(--yellow); stroke: var(--ink); stroke-width: 1.5; }
.s-vec { stroke: #c0392b; stroke-width: 2.5; stroke-linecap: round; }
@media (prefers-reduced-motion: reduce) { .s-plane, .s-sight, .s-ray, .s-foot, .s-beam, .sv-hf-path, .sv-hf-shots rect, .sv-hero-contours { animation: none !important; } .s-foot, .sv-hf-shots rect { opacity: 1; } .s-contour path { stroke-dashoffset: 0; animation: none; } }

/* ------------------------------------------------------------------ split */

.sv-split-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; }
.sv-split.is-reverse .sv-split-media { order: -1; }
.sv-split-copy .sv-title { margin-bottom: 18px; }
.sv-split-copy .sv-lead { margin-bottom: 16px; font-weight: 500; color: var(--brand); }
.sv-split-copy > p { text-align: justify; }
.sv-split-copy .sv-actions { margin-top: 26px; }
.sv-split-media { position: relative; padding-bottom: 40px; padding-inline-end: 40px; }
.sv-split-media .sv-sheet img { aspect-ratio: 5 / 4; object-fit: cover; }
.sv-sheet figcaption { position: absolute; inset-inline-end: 22px; top: 22px; background: rgba(43, 17, 48, .82); color: var(--white); font-size: .8rem; padding: 6px 12px; border-radius: 8px; }
.sv-split-small { position: absolute; margin: 0; inset-inline-end: 0; bottom: 0; width: 42%; border: 6px solid var(--white); border-radius: 12px; overflow: hidden; box-shadow: var(--shadow); }
.sv-split-small img { aspect-ratio: 1; object-fit: cover; width: 100%; }
.sv-split-fig { position: absolute; top: 28px; inset-inline-start: -28px; margin: 0; display: grid; text-align: center; padding: 18px 22px; border-radius: 14px; background: var(--yellow); color: var(--ink); box-shadow: var(--shadow-sm); line-height: 1.4; }
.sv-split-fig strong { font-size: 2.3rem; font-weight: 900; }
.sv-split-fig span { font-size: .82rem; font-weight: 700; max-width: 120px; }
.sv-points { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 14px; }
.sv-points li { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border-radius: 14px; background: var(--paper); border: 1px solid var(--line); }
.tone-paper .sv-points li { background: var(--white); }
.sv-points-ico { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--brand); flex: none; }
.sv-points-ico .sv-glyph { width: 18px; height: 16px; }
.sv-points strong { color: var(--ink); display: block; }
@media (max-width: 1000px) { .sv-split-in { grid-template-columns: 1fr; gap: 48px; } .sv-split.is-reverse .sv-split-media { order: 0; } .sv-split-fig { inset-inline-start: 8px; top: -18px; } }
@media (max-width: 560px) { .sv-split-media { padding-inline-end: 22px; padding-bottom: 28px; } .sv-split-fig strong { font-size: 1.8rem; } .sv-split-fig { padding: 12px 16px; } }

/* ------------------------------------------------------------------ stats as an elevation profile */

.sv-stats { overflow: hidden; }
.sv-stats .sv-contours { color: rgba(255, 255, 255, .05); }
.sv-profile { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 48px; align-items: end; }
.sv-profile-total { margin: 0; display: grid; gap: 6px; padding: 28px; border-radius: 18px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); }
.sv-profile-total strong { font-size: clamp(3rem, 2rem + 4vw, 5.2rem); line-height: 1; font-weight: 900; color: var(--yellow); }
.sv-profile-total span { color: var(--on-dark); font-weight: 500; }
.sv-profile-chart { position: relative; padding-inline-start: 34px; }
.sv-profile-staff { position: absolute; inset-inline-start: 0; top: 0; bottom: 64px; width: 14px; background: repeating-linear-gradient(180deg, var(--yellow) 0 22px, var(--white) 22px 44px); border-radius: 3px; }
.sv-profile-staff::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(180deg, rgba(34, 18, 42, .6) 0 1px, transparent 1px 5.5px); }
.sv-profile-bars { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 12px; height: 340px; align-items: end; }
.sv-profile-bars li { display: grid; grid-template-rows: 1fr 64px; height: 100%; text-align: center; }
.sv-bar { align-self: end; position: relative; height: var(--h); min-height: 34px; border-radius: 10px 10px 0 0; background: linear-gradient(180deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, .06)); border-top: 3px solid var(--yellow); transform-origin: bottom; transition: transform .9s calc(var(--i) * 70ms) var(--ease); }
.js [data-sv-reveal]:not(.is-in) .sv-bar { transform: scaleY(.05); }
.sv-bar b { position: absolute; inset-inline: 0; top: -34px; font-size: 1.35rem; font-weight: 900; color: var(--white); }
.sv-bar-l { font-size: .82rem; line-height: 1.5; color: var(--on-dark); padding-top: 10px; font-weight: 500; }
.sv-profile-line { position: absolute; inset-inline-start: 34px; inset-inline-end: 0; top: 0; height: calc(100% - 64px); width: calc(100% - 34px); overflow: visible; pointer-events: none; }
.sv-profile-line polyline { fill: none; stroke: var(--yellow); stroke-width: 2; stroke-dasharray: 5 5; vector-effect: non-scaling-stroke; opacity: .65; }
@media (max-width: 1000px) {
	.sv-profile { grid-template-columns: 1fr; }
	.sv-profile-total { grid-template-columns: auto 1fr; align-items: center; gap: 20px; }
}
@media (max-width: 720px) {
	.sv-profile-chart { padding: 0; }
	.sv-profile-staff, .sv-profile-line { display: none; }
	.sv-profile-bars { grid-auto-flow: row; height: auto; gap: 10px; }
	.sv-profile-bars li { grid-template-rows: none; grid-template-columns: 116px 1fr; align-items: center; text-align: start; }
	.sv-bar-l { order: -1; padding: 0; }
	.sv-bar { height: 32px; width: var(--h); min-width: 52px; min-height: 0; border-radius: 0 8px 8px 0; border-top: 0; border-inline-end: 3px solid var(--yellow); transform-origin: right; align-self: center; }
	.js [data-sv-reveal]:not(.is-in) .sv-bar { transform: scaleX(.05); }
	.sv-bar b { position: static; display: block; font-size: 1rem; line-height: 32px; padding-inline-end: 10px; text-align: end; }
}

/* ------------------------------------------------------------------ projects map */

.sv-map { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.sv-map-stage { position: relative; padding: 18px; border-radius: 20px; background: var(--paper); border: 1px solid var(--line); }
.sv-map-svg { width: 100%; height: auto; display: block; direction: ltr; overflow: visible; }
.sv-map-grid path { stroke: rgba(100, 44, 105, .12); stroke-width: 1.5; stroke-dasharray: 4 6; }
.sv-map-grid text { font-size: 18px; fill: var(--muted); font-family: IRANSansX, sans-serif; }
.sv-map-land { fill: #e6d9e9; stroke: var(--brand); stroke-width: 2.5; stroke-linejoin: round; }
.sv-pin { cursor: pointer; }
.sv-pin-dot { fill: var(--white); stroke: var(--brand); stroke-width: 4; transition: r .2s; }
.sv-pin.is-province .sv-pin-dot { fill: var(--yellow); stroke: var(--ink); }
.sv-pin-tri { fill: var(--brand); }
.sv-pin.is-province .sv-pin-tri { fill: var(--ink); }
.sv-pin-pulse { fill: rgba(255, 198, 0, .3); transform-box: fill-box; transform-origin: center; animation: sv-ping 2.6s ease-out infinite; }
.sv-pin.is-project .sv-pin-pulse { fill: rgba(100, 44, 105, .2); }
@keyframes sv-ping { from { transform: scale(.4); opacity: 1; } to { transform: scale(1.8); opacity: 0; } }
.sv-pin:hover .sv-pin-dot, .sv-pin.is-hot .sv-pin-dot, .sv-pin:focus .sv-pin-dot { r: 14; }
.sv-map-legend { display: flex; gap: 18px; margin: 10px 4px 0; font-size: .8rem; color: var(--muted); }
.sv-map-legend span { display: inline-flex; align-items: center; gap: 6px; }
.sv-map-legend span::before { content: ""; width: 12px; height: 12px; border-radius: 50%; border: 2.5px solid var(--brand); background: var(--white); }
.sv-map-legend .is-province::before { background: var(--yellow); border-color: var(--ink); }
.sv-maplist { list-style: none; margin: 0; padding: 6px; display: grid; gap: 4px; max-height: 560px; overflow-y: auto; border: 1px solid var(--line); border-radius: 20px; background: var(--white); scrollbar-width: thin; }
.sv-maplist a { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 14px; text-decoration: none; color: var(--ink); transition: background-color .2s; }
.sv-maplist a:hover, .sv-maplist a.is-hot { background: var(--paper); }
.sv-maplist strong { display: block; font-size: .95rem; line-height: 1.6; }
.sv-maplist small { color: var(--muted); font-size: .8rem; }
.sv-maplist .sv-ico { color: var(--muted); width: 18px; height: 18px; }
.sv-maplist-dot { width: 14px; height: 14px; border-radius: 50%; border: 3px solid var(--brand); background: var(--white); }
.sv-maplist .is-province .sv-maplist-dot { background: var(--yellow); border-color: var(--ink); }
@media (max-width: 960px) { .sv-map { grid-template-columns: 1fr; } .sv-maplist { max-height: none; grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .sv-maplist { grid-template-columns: 1fr; } .sv-map-stage { padding: 10px; } }

/* ------------------------------------------------------------------ process as a traverse */

.sv-trav { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); gap: 0; position: relative; }
.sv-trav-st { position: relative; padding-top: 74px; padding-inline-end: 18px; }
.sv-trav-st::before { content: ""; position: absolute; top: 25px; inset-inline-start: 22px; inset-inline-end: 0; border-top: 2px dashed var(--brand-3); }
.sv-trav-st:last-child::before { display: none; }
.sv-trav-mark { position: absolute; top: 0; inset-inline-start: 0; display: grid; justify-items: center; gap: 2px; z-index: 1; }
.sv-trav-mark .sv-glyph { width: 46px; height: 42px; stroke: var(--brand); stroke-width: 1.6; fill: var(--yellow); }
.sv-trav-mark .sv-glyph circle { fill: var(--ink); }
.sv-trav-mark b { font-size: .72rem; color: var(--brand); direction: ltr; }
.sv-trav-leg { position: absolute; top: 2px; inset-inline-start: 60px; inset-inline-end: 8px; text-align: center; }
.sv-trav-leg i { font-style: normal; font-size: .7rem; color: var(--muted); direction: ltr; display: inline-block; background: var(--paper); padding: 0 6px; white-space: nowrap; }
.sv-trav-card { background: var(--white); border: 1px solid var(--line); border-radius: 16px; padding: 22px 20px; height: 100%; box-shadow: var(--shadow-sm); transition: border-color .2s; }
.sv-trav-card:hover { border-color: var(--yellow); }
.sv-trav-ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--paper-2); color: var(--brand); margin-bottom: 12px; }
.sv-trav-card h3 { font-size: 1.05rem; margin-bottom: 6px; }
.sv-trav-card p { font-size: .9rem; color: var(--muted); margin: 0; line-height: 1.85; }
.js .sv-trav:not(.is-in) .sv-trav-st::before { transform: scaleX(0); }
.sv-trav-st::before { transform-origin: right; transition: transform .7s calc(var(--i) * 140ms) var(--ease); }
@media (max-width: 1060px) {
	.sv-trav { grid-template-columns: 1fr; gap: 18px; }
	.sv-trav-st { padding: 0; padding-inline-start: 64px; }
	.sv-trav-st::before { top: 46px; bottom: -18px; inset-inline-start: 22px; inset-inline-end: auto; border-top: 0; border-inline-start: 2px dashed var(--brand-3); transform-origin: top; }
	.js .sv-trav:not(.is-in) .sv-trav-st::before { transform: scaleY(0); }
	.sv-trav-leg { display: none; }
}

/* ------------------------------------------------------------------ mosaic of field photos */

.sv-mosaic-sec { overflow: hidden; }
.sv-mosaic { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 220px; grid-auto-flow: dense; gap: 14px; }
.sv-mosaic-i.is-w { grid-column: span 2; }
.sv-mosaic-i.is-t { grid-row: span 2; }
.sv-mosaic-i.is-b { grid-column: span 2; grid-row: span 2; }
.sv-mosaic a { position: relative; display: block; height: 100%; border-radius: 16px; overflow: hidden; background: var(--brand); }
.sv-mosaic img { width: 100%; height: 100%; object-fit: cover; transition: opacity .3s, filter .3s; }
.sv-mosaic a:hover img { filter: saturate(1.15); opacity: .92; }
.sv-mosaic-cap { position: absolute; inset: auto 0 0; padding: 40px 16px 14px; background: linear-gradient(transparent, rgba(30, 11, 34, .9)); color: var(--white); display: grid; line-height: 1.6; }
.sv-mosaic-cap strong { font-size: .95rem; }
.sv-mosaic-cap small { display: inline-flex; align-items: center; gap: 4px; color: var(--on-dark-2); font-size: .78rem; }
.sv-mosaic-cap .sv-ico { width: 14px; height: 14px; color: var(--yellow); }
.sv-mosaic a::after { content: ""; position: absolute; top: 12px; inset-inline-start: 12px; width: 26px; height: 26px; border-top: 2px solid var(--yellow); border-inline-start: 2px solid var(--yellow); opacity: 0; transition: opacity .25s; }
.sv-mosaic a:hover::after { opacity: 1; }
@media (max-width: 900px) { .sv-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 180px; } }
@media (max-width: 480px) { .sv-mosaic { grid-auto-rows: 150px; gap: 8px; } .sv-mosaic-i.is-b { grid-row: span 2; } .sv-mosaic-cap { padding: 26px 10px 8px; } .sv-mosaic-cap strong { font-size: .82rem; } }

/* ------------------------------------------------------------------ videos and channels */

.sv-embed { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 9; width: 100%; border-radius: 16px; overflow: hidden; background: var(--deep); isolation: isolate; margin: 0; }
.sv-embed::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(205, 160, 214, .16); -webkit-mask: var(--contours) center / cover; mask: var(--contours) center / cover; }
.sv-embed > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; opacity: .75; }
.sv-embed iframe, .sv-embed video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #000; }
.sv-embed-btn { max-width: calc(100% - 24px); display: inline-flex; align-items: center; gap: 10px; padding: 12px 20px 12px 16px; border-radius: 999px; border: 0; background: var(--yellow); color: var(--ink); font-weight: 800; box-shadow: 0 16px 34px -14px rgba(0, 0, 0, .6); transition: transform .2s; }
.sv-embed-btn .sv-ico { width: 28px; height: 28px; }
.sv-embed-btn:hover { transform: scale(1.04); }
.sv-videos-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.sv-video { margin: 0; }
.sv-video.is-main { grid-column: span 2; grid-row: span 2; }
.sv-video.is-main .sv-embed { height: calc(100% - 44px); aspect-ratio: auto; min-height: 260px; }
.sv-video figcaption { display: flex; line-height: 1.7; align-items: center; gap: 8px; padding-top: 10px; font-weight: 700; font-size: .92rem; color: var(--white); }
.sv-video figcaption .sv-ico { color: var(--yellow); }
.sv-channels { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.sv-channels a { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 16px; border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .05); text-decoration: none; transition: background-color .2s, border-color .2s; }
.sv-channels a:hover { background: rgba(255, 255, 255, .1); border-color: var(--yellow); }
.sv-channels strong { display: block; color: var(--white); }
.sv-channels small { color: var(--on-dark); font-size: .82rem; }
.sv-channels-ico { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; color: var(--white); }
.sv-channels .is-aparat .sv-channels-ico { background: #ed145b; }
.sv-channels .is-youtube .sv-channels-ico { background: #e62117; }
.sv-channels .is-instagram .sv-channels-ico { background: linear-gradient(45deg, #f9a825, #e1306c, #833ab4); }
.sv-channels .is-linkedin .sv-channels-ico { background: #0a66c2; }
.sv-channels .is-telegram .sv-channels-ico { background: #229ed9; }
.sv-channels a > .sv-ico { color: var(--on-dark-2); }
@media (max-width: 1100px) { .sv-videos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sv-video.is-main { grid-column: 1 / -1; grid-row: auto; } .sv-video.is-main .sv-embed { height: auto; aspect-ratio: 16 / 9; } }
@media (max-width: 760px) { .sv-channels { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .sv-videos-grid { grid-template-columns: minmax(0, 1fr); } }

/* ------------------------------------------------------------------ cards: articles, projects */

.sv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1000px) { .sv-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .sv-grid { grid-template-columns: 1fr; } }
.sv-card { position: relative; display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.sv-card:hover { border-color: var(--line-2); box-shadow: var(--shadow); }
.sv-card-media { position: relative; display: block; aspect-ratio: 3 / 2; background: var(--paper-2); overflow: hidden; }
.sv-card-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sv-card-reticle { position: absolute; inset: 50%; width: 64px; height: 64px; margin: -32px; border: 1.5px solid rgba(255, 255, 255, .9); border-radius: 50%; opacity: 0; transform: scale(.6); transition: opacity .25s, transform .3s var(--ease); }
.sv-card-reticle::before, .sv-card-reticle::after { content: ""; position: absolute; background: rgba(255, 255, 255, .9); }
.sv-card-reticle::before { left: 50%; top: -10px; bottom: -10px; width: 1.5px; }
.sv-card-reticle::after { top: 50%; left: -10px; right: -10px; height: 1.5px; }
.sv-card:hover .sv-card-reticle { opacity: 1; transform: none; }
.sv-card-ph { display: grid; place-items: center; width: 100%; height: 100%; color: var(--brand-3); background: var(--paper-2); position: relative; }
.sv-card-ph::before { content: ""; position: absolute; inset: 0; background: rgba(100, 44, 105, .1); -webkit-mask: var(--contours) center / cover; mask: var(--contours) center / cover; }
.sv-card-ph .sv-ico { width: 54px; height: 54px; position: relative; }
.sv-card-body { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 22px; }
.sv-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: .8rem; color: var(--muted); margin-bottom: 8px; }
.sv-card-cat { color: var(--yellow-ink); background: var(--yellow-soft); padding: 2px 10px; border-radius: 6px; font-weight: 700; }
.sv-card-title { font-size: 1.08rem; line-height: 1.7; margin: 0 0 8px; }
.sv-card-title a { color: var(--ink); text-decoration: none; }
.sv-card-title a::after { content: ""; position: absolute; inset: 0; }
.sv-card-title a:hover { color: var(--brand); }
.sv-card-excerpt { font-size: .9rem; color: var(--muted); line-height: 1.9; margin: 0 0 14px; }
.sv-card-more { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; font-weight: 700; color: var(--brand); }
.sv-card-more .sv-ico { width: 1em; height: 1em; transition: transform .2s; }
.sv-card:hover .sv-card-more .sv-ico { transform: translateX(-4px); }
.sv-card--feature .sv-card-media { aspect-ratio: 16 / 9; }
.sv-card--feature .sv-card-title { font-size: 1.35rem; }
.sv-card--row { flex-direction: row; align-items: center; }
.sv-card--row .sv-card-media { width: 120px; flex: none; aspect-ratio: 1; margin: 10px; border-radius: 12px; }
.sv-card--row .sv-card-reticle { display: none; }
.sv-card--row .sv-card-body { padding: 12px 6px 12px 16px; }
.sv-card--row .sv-card-title { font-size: .98rem; margin: 0; }
.sv-mag { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 24px; }
.sv-mag-list { display: grid; gap: 14px; align-content: start; }
.sv-list-feature { margin-bottom: 24px; }
.sv-list-feature .sv-card { display: grid; grid-template-columns: 1.2fr 1fr; }
.sv-list-feature .sv-card-media { aspect-ratio: auto; min-height: 320px; }
.sv-list-feature .sv-card-body { padding: 36px; justify-content: center; }
@media (max-width: 900px) { .sv-mag { grid-template-columns: 1fr; } .sv-list-feature .sv-card { grid-template-columns: 1fr; } .sv-list-feature .sv-card-media { min-height: 0; aspect-ratio: 16 / 9; } .sv-list-feature .sv-card-body { padding: 22px; } }
@media (max-width: 480px) { .sv-card--row .sv-card-media { width: 92px; } }

/* ------------------------------------------------------------------ cards: equipment, documents, certificates */

.sv-cardrow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.sv-cardrow.is-cert { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1060px) { .sv-cardrow { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) {
	/* Phones: the cards slide sideways instead of stacking. */
	.sv-cardrow, .sv-cardrow.is-cert { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; gap: 14px; margin-inline: calc(var(--gut) * -1); padding: 4px var(--gut) 16px; scroll-padding-inline: var(--gut); }
	.sv-cardrow::-webkit-scrollbar { display: none; }
	.sv-c { flex: 0 0 82%; scroll-snap-align: start; }
}
.sv-c { display: flex; }
.sv-equip { display: flex; flex-direction: column; width: 100%; background: var(--white); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.sv-equip-media { position: relative; aspect-ratio: 4 / 3; background: var(--paper-2); }
.sv-equip-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sv-equip-ico { position: absolute; bottom: -22px; inset-inline-start: 18px; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--yellow); color: var(--ink); box-shadow: var(--shadow-sm); border: 3px solid var(--white); }
.sv-equip-body { padding: 34px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.sv-equip-body h3 { font-size: 1.08rem; margin-bottom: 6px; }
.sv-equip-body p { font-size: .9rem; color: var(--muted); }
.sv-specs { margin: auto 0 0; display: grid; gap: 0; border-top: 1px dashed var(--line-2); }
.sv-specs div { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px dashed var(--line-2); font-size: .84rem; }
.sv-specs dt { color: var(--muted); }
.sv-specs dd { margin: 0; font-weight: 700; color: var(--ink); }
.sv-doc { position: relative; display: flex; flex-direction: column; width: 100%; padding: 26px 22px 22px; border-radius: 8px; background: var(--white); border: 1px solid var(--line-2); text-decoration: none; color: var(--text); box-shadow: var(--shadow-sm); transition: border-color .2s, transform .2s; overflow: hidden; }
.sv-doc::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(180deg, transparent 0 27px, rgba(100, 44, 105, .06) 27px 28px); pointer-events: none; }
.sv-doc:hover { border-color: var(--brand); color: var(--text); }
.sv-doc-fold { position: absolute; top: -1px; left: -1px; width: 32px; height: 32px; background: linear-gradient(135deg, var(--paper) 50%, var(--line-2) 50%); border-radius: 0 0 8px 0; }
.sv-doc-tag { align-self: flex-start; font-size: 1.6rem; font-weight: 900; color: var(--brand); line-height: 1; margin-bottom: 14px; padding-bottom: 8px; border-bottom: 4px solid var(--yellow); }
.sv-doc-ico { color: var(--brand-3); margin-bottom: 6px; }
.sv-doc h3 { font-size: 1rem; line-height: 1.8; margin-bottom: 6px; position: relative; }
.sv-doc p { font-size: .86rem; color: var(--muted); position: relative; }
.sv-doc-more { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--brand); font-size: .88rem; position: relative; }
.sv-cert { margin: 0; width: 100%; display: flex; flex-direction: column; }
.sv-cert-frame { position: relative; display: block; padding: 14px; background: var(--white); border: 1px solid var(--line-2); border-radius: 8px; box-shadow: var(--shadow-sm); outline: 6px solid var(--paper); outline-offset: -20px; }
.sv-cert-frame img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: top; border: 1px solid var(--line); }
.sv-cert figcaption { padding: 16px 4px 0; display: grid; gap: 4px; }
.sv-cert figcaption strong { color: var(--ink); }
.sv-cert figcaption span { font-size: .88rem; color: var(--muted); }
.sv-gallery-zoom { position: absolute; top: 22px; inset-inline-end: 22px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: rgba(43, 17, 48, .75); color: var(--white); opacity: 0; transition: opacity .2s; }
a:hover > .sv-gallery-zoom, a:focus-visible > .sv-gallery-zoom { opacity: 1; }

/* ------------------------------------------------------------------ FAQ */

.sv-faq-grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: 56px; align-items: start; }
.sv-faq-side { position: sticky; top: calc(var(--header) + 24px); }
.sv-faq-card { position: relative; isolation: isolate; overflow: hidden; padding: 28px; border-radius: 20px; background: var(--deep); color: var(--on-dark); }
.sv-faq-card .sv-contours { color: rgba(255, 255, 255, .07); }
.sv-faq-card strong { display: block; color: var(--white); font-size: 1.15rem; margin-bottom: 6px; }
.sv-faq-card .sv-btn--line { background: transparent; color: var(--white); border-color: rgba(255, 255, 255, .25); }
.sv-faq-list { display: grid; gap: 12px; }
.sv-qa { border: 1px solid var(--line); border-radius: 16px; background: var(--white); transition: border-color .2s, box-shadow .2s; }
.tone-white .sv-qa { background: var(--paper); }
.sv-qa[open] { border-color: var(--brand-3); box-shadow: var(--shadow-sm); background: var(--white); }
.sv-qa summary { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 18px 20px; cursor: pointer; list-style: none; font-weight: 700; color: var(--ink); }
.sv-qa summary::-webkit-details-marker { display: none; }
.sv-qa-n { font-size: .8rem; color: var(--brand-3); font-weight: 800; }
.sv-qa-x { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; background: var(--paper-2); color: var(--brand); transition: transform .25s, background-color .2s; }
.sv-qa[open] .sv-qa-x { transform: rotate(45deg); background: var(--yellow); color: var(--ink); }
.sv-qa-a { padding: 0 20px 18px 60px; padding-inline-start: 58px; padding-inline-end: 20px; color: var(--text); }
.sv-qa-a p:last-child { margin: 0; }
@media (max-width: 900px) { .sv-faq-grid { grid-template-columns: 1fr; gap: 32px; } .sv-faq-side { position: static; } .sv-qa-a { padding-inline-start: 20px; } }

/* ------------------------------------------------------------------ call band */

.sv-cta-band { position: relative; isolation: isolate; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 32px; align-items: center; padding: 46px 48px 40px; border-radius: 24px; background: var(--yellow); color: var(--ink); }
.sv-cta-band .sv-contours { color: rgba(34, 18, 42, .08); }
.sv-cta-h { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem); font-weight: 900; color: var(--ink); margin-bottom: 8px; line-height: 1.45; }
.sv-cta-copy p:last-child { margin: 0; font-weight: 500; }
.sv-cta-act { display: grid; gap: 12px; }
.sv-cta-phone { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 16px; background: var(--ink); color: var(--white); text-decoration: none; transition: background-color .2s; }
.sv-cta-phone:hover { background: var(--brand); color: var(--white); }
.sv-cta-phone.is-alt { background: rgba(255, 255, 255, .55); color: var(--ink); }
.sv-cta-phone.is-alt:hover { background: var(--white); color: var(--ink); }
.sv-cta-phone > span:last-child { display: grid; line-height: 1.4; }
.sv-cta-phone small { font-size: .78rem; opacity: .8; }
.sv-cta-phone bdi { font-size: 1.25rem; font-weight: 900; }
.sv-cta-phone-ico { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: var(--yellow); color: var(--ink); }
.sv-cta-phone.is-alt .sv-cta-phone-ico { background: var(--ink); color: var(--yellow); }
@media (max-width: 860px) { .sv-cta-band { grid-template-columns: 1fr; padding: 38px 22px 26px; } }

/* ------------------------------------------------------------------ inner page heading */

.sv-sec.sv-page-hero { overflow: hidden; padding-block: 64px 80px; }
.sv-page-hero .sv-contours, .sv-list-hero .sv-contours, .sv-404 .sv-contours { color: rgba(205, 160, 214, .1); }
.sv-ph-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 48px; align-items: center; }
.sv-page-hero.has-img .sv-ph-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
.sv-ph-title { font-size: clamp(1.8rem, 1.2rem + 2.4vw, 3rem); line-height: 1.35; margin: 6px 0 14px; color: var(--white); }
.sv-ph-title small { font-size: .5em; color: var(--on-dark-2); font-weight: 500; }
.sv-ph-text { font-size: 1.08rem; color: var(--on-dark-2); max-width: 720px; margin-bottom: 22px; }
.sv-ph-media { margin: 0; }
.sv-ph-media img { aspect-ratio: 3 / 2; object-fit: cover; }
@media (max-width: 900px) { .sv-page-hero.has-img .sv-ph-grid { grid-template-columns: 1fr; } .sv-sec.sv-page-hero { padding-block: 44px 60px; } }

.sv-crumbs { font-size: .84rem; color: var(--on-dark-2); margin-bottom: 14px; }
.sv-crumbs a { color: var(--on-dark) !important; text-decoration: none; }
.sv-crumbs a:hover { color: var(--yellow) !important; }
.sv-crumbs .breadcrumb_last { color: var(--yellow); }

/* ------------------------------------------------------------------ contact */

.sv-contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 32px; align-items: stretch; }
.sv-contact-cards { display: grid; gap: 14px; align-content: start; }
.sv-contact-addr { display: flex; gap: 14px; font-style: normal; padding: 22px; border-radius: 18px; background: var(--deep); color: var(--white); font-weight: 700; line-height: 1.9; }
.sv-contact-addr small, .sv-contact-list small { display: block; font-weight: 500; font-size: .8rem; color: var(--muted); }
.sv-contact-addr small { color: var(--on-dark-2); }
.sv-contact-ico { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: var(--yellow); color: var(--ink); flex: none; }
.sv-contact-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sv-contact-list li { display: flex; gap: 14px; align-items: center; padding: 18px; border-radius: 18px; border: 1px solid var(--line); background: var(--white); font-weight: 800; color: var(--ink); }
.sv-contact-list li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.sv-contact-list .sv-contact-ico { background: var(--paper-2); color: var(--brand); }
.sv-contact-list a { color: var(--ink); text-decoration: none; }
.sv-contact-list a:hover { color: var(--brand-3); }
.sv-gmap { display: grid; place-items: center; align-content: center; gap: 14px; min-height: 380px; overflow: hidden; isolation: isolate; background: var(--paper); }
.sv-gmap .sv-contours { color: rgba(100, 44, 105, .12); inset: 12px; }
.sv-gmap-pin { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--yellow); color: var(--ink); box-shadow: 0 0 0 12px rgba(255, 198, 0, .25); }
.sv-gmap-pin .sv-ico { width: 30px; height: 30px; }
.sv-gmap-link { font-size: .88rem; font-weight: 700; }
.sv-gmap iframe { position: absolute; inset: 12px; width: calc(100% - 24px); height: calc(100% - 24px); border: 0; z-index: 3; }
@media (max-width: 900px) { .sv-contact-grid { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .sv-contact-list { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------ form */

.sv-form-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 56px; align-items: start; }
.sv-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 32px; border-radius: 22px; background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow); }
.sv-field { display: grid; gap: 6px; }
.sv-field label { font-size: .88rem; font-weight: 700; color: var(--ink); }
.sv-field input, .sv-field select, .sv-field textarea { width: 100%; min-height: 50px; padding: 10px 14px; border-radius: 12px; border: 1.5px solid var(--line-2); background: var(--paper); transition: border-color .2s, background-color .2s; }
.sv-field textarea { resize: vertical; min-height: 110px; }
.sv-field input:focus, .sv-field select:focus, .sv-field textarea:focus { outline: 0; border-color: var(--brand); background: var(--white); box-shadow: 0 0 0 4px rgba(100, 44, 105, .1); }
.sv-form .sv-btn { min-height: 54px; }
.sv-form-msg { margin: 0; font-weight: 700; font-size: .92rem; }
.sv-form-msg.is-ok { color: #1e7a46; }
.sv-form-msg.is-err { color: #b42318; }
.sv-form.is-busy { opacity: .7; pointer-events: none; }
@media (max-width: 900px) { .sv-form-grid { grid-template-columns: 1fr; gap: 28px; } }
@media (max-width: 560px) { .sv-form { grid-template-columns: 1fr; padding: 20px; } }

/* ------------------------------------------------------------------ long text */

.sv-prose { font-size: 1.04rem; line-height: 2.05; color: var(--text); }
.sv-prose > * { margin-block: 0 1.1em; }
.sv-prose h2 { font-size: 1.5rem; margin-top: 1.8em; padding-inline-start: 18px; border-inline-start: 4px solid var(--yellow); line-height: 1.6; }
.sv-prose :is(h2, h3, h4):has(> img, > a > img) { border: 0; padding: 0; }
.sv-prose h3 { font-size: 1.22rem; margin-top: 1.5em; color: var(--brand); }
.sv-prose h4 { font-size: 1.06rem; margin-top: 1.3em; }
.sv-prose a { color: var(--brand-3); font-weight: 500; }
.sv-prose a.sv-btn { text-decoration: none; font-weight: 700; }
.sv-prose a.sv-btn--yellow { color: var(--ink); }
.sv-prose a.sv-btn--brand { color: var(--white); }
.sv-prose ul, .sv-prose ol { padding-inline-start: 1.5em; }
.sv-prose li { margin-bottom: .4em; }
.sv-prose ul li::marker { color: var(--yellow-ink); }
.sv-prose img { border-radius: 12px; margin-inline: auto; }
.sv-prose figure, .sv-prose .wp-caption { margin-inline: 0; max-width: 100% !important; }
.sv-prose figcaption, .sv-prose .wp-caption-text { font-size: .85rem; color: var(--muted); text-align: center; margin-top: 8px; }
.sv-prose .aligncenter { margin-inline: auto; }
.sv-prose blockquote { margin-inline: 0; padding: 18px 22px; border-radius: 14px; background: var(--paper); border-inline-start: 4px solid var(--brand); font-weight: 500; }
.sv-prose table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .92rem; line-height: 1.8; }
.sv-table { margin-block: 0 1.4em; overflow-x: auto; border: 1px solid var(--line-2); border-radius: 14px; background: var(--white); box-shadow: var(--shadow-sm); -webkit-overflow-scrolling: touch; }
.sv-table table { margin: 0; }
.sv-table table:has(tr > :nth-child(3)) { min-width: 520px; }
.sv-prose th, .sv-prose td { padding: 12px 16px; text-align: start; vertical-align: top; border-bottom: 1px solid var(--line); }
.sv-prose td + td, .sv-prose th + th { border-inline-start: 1px solid var(--line); }
.sv-prose thead th, .sv-prose thead td { background: var(--brand); color: var(--white); font-weight: 800; border-bottom: 0; white-space: nowrap; }
.sv-prose thead th + th { border-inline-start-color: rgba(255, 255, 255, .15); }
.sv-prose thead th, .sv-prose thead td { color: var(--white) !important; }
.sv-prose th *, .sv-prose thead td * { color: inherit !important; }
.sv-prose tbody tr:nth-child(even) td { background: var(--paper); }
.sv-prose tbody tr:last-child td { border-bottom: 0; }
.sv-prose tbody td:first-child { font-weight: 700; color: var(--ink); }
.sv-prose tbody tr:hover td { background: var(--yellow-soft); }
.sv-prose strong { color: var(--ink); }
.sv-prose .sv-lead-in { margin-bottom: .3em; }
.sv-prose .sv-lead-in strong { color: var(--brand); }
.sv-prose figure, .sv-prose .wp-block-image { margin: 1.6em 0; text-align: center; }
.sv-prose figure img { border-radius: 14px; box-shadow: var(--shadow-sm); }

/* «خلاصه‌ی مطلب»: the key points at the top of an article. */
.sv-keypoints { position: relative; margin: 1.6em 0 2em; padding: 22px 24px 18px; border-radius: 18px; background: var(--paper); border: 1px solid var(--line); border-inline-start: 5px solid var(--yellow); }
.sv-keypoints-t { margin: 0 0 .6em !important; font-weight: 900; color: var(--brand); display: flex; align-items: center; gap: 8px; }
.sv-keypoints-t::before { content: ""; width: 14px; height: 12px; background: var(--yellow); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.sv-keypoints ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.sv-keypoints li { position: relative; padding-inline-start: 26px; margin: 0; }
.sv-keypoints li::before { content: ""; position: absolute; inset-inline-start: 0; top: .6em; width: 16px; height: 16px; border-radius: 5px; background: var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffc600' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.2 4.2L19 7'/%3E%3C/svg%3E") center / 11px no-repeat; }

/* «بیشتر بخوانید»: one related article inside the text. */
.sv-readmore { display: flex; align-items: center; gap: 14px; margin: 1.8em 0; padding: 16px 20px; border-radius: 16px; background: var(--white); border: 1px solid var(--line-2); box-shadow: var(--shadow-sm); }
.sv-readmore::before { content: ""; flex: none; width: 44px; height: 44px; border-radius: 12px; background: var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffc600' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 6.5C10 5 7 4.5 4 5v13c3-.5 6 0 8 1.5 2-1.5 5-2 8-1.5V5c-3-.5-6 0-8 1.5Zm0 0V19'/%3E%3C/svg%3E") center / 24px no-repeat; }
.sv-readmore-k { flex: none; font-size: .8rem; font-weight: 800; color: var(--muted); padding-inline-end: 12px; border-inline-end: 1px solid var(--line); }
.sv-prose .sv-readmore a { color: var(--ink); font-weight: 800; text-decoration: none; line-height: 1.7; }
.sv-prose .sv-readmore a:hover { color: var(--brand); }
@media (max-width: 560px) { .sv-readmore { flex-wrap: wrap; } .sv-readmore-k { border: 0; padding: 0; } }

/* The article's FAQ. */
.sv-art-faq { margin-top: 40px; display: grid; gap: 12px; }
.sv-art-faq h2 { font-size: 1.45rem; margin: 0 0 6px; }
.sv-art-faq .sv-qa { background: var(--paper); }
.sv-art-faq .sv-qa[open] { background: var(--white); }
.sv-prose hr { border: 0; height: 1px; background: var(--line-2); margin-block: 2em; }
.sv-prose p[style*="justify"] { text-align: justify; }
.sv-rt.is-collapsed { max-height: 420px; overflow: hidden; -webkit-mask: linear-gradient(#000 60%, transparent); mask: linear-gradient(#000 60%, transparent); }
.sv-rt-more { margin-top: 8px; }
.sv-rt-more[aria-expanded="true"] .sv-ico { transform: rotate(180deg); }

/* The old site's WPBakery layout (inc/legacy.php). */
.sv-lg-row { display: flex; flex-wrap: wrap; gap: 0 32px; margin-bottom: 1.2em; }
.sv-lg-col { flex: 1 1 100%; min-width: 0; }
.sv-lg-col.is-6 { flex: 1 1 calc(50% - 16px); }
.sv-lg-col.is-4 { flex: 1 1 calc(33.33% - 22px); }
.sv-lg-col.is-8 { flex: 1 1 calc(66.66% - 11px); }
.sv-lg-col.is-3 { flex: 1 1 calc(25% - 24px); }
@media (max-width: 760px) { .sv-lg-col[class*="is-"] { flex-basis: 100%; } }
.sv-lg-fig { margin: 0 0 1.2em; }
.sv-lg-btn { text-align: center; }
.sv-lg-btn .sv-btn { text-decoration: none; }
.sv-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 1.4em; }
.sv-gallery.is-single { grid-template-columns: 1fr; }
.sv-gallery-item { position: relative; display: block; border-radius: 12px; overflow: hidden; background: var(--paper-2); }
.sv-gallery-item img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 0 !important; transition: opacity .2s; }
.sv-gallery.is-single .sv-gallery-item img { aspect-ratio: auto; }
.sv-gallery-item:hover img { opacity: .88; }
.sv-gallery-item .sv-gallery-zoom { top: 10px; inset-inline-end: 10px; }
@media (max-width: 560px) { .sv-gallery { grid-template-columns: 1fr 1fr; } }
.sv-zoom { display: block; }
.sv-content .sv-embed { margin-bottom: 1.4em; }

/* ------------------------------------------------------------------ article */

.sv-progress { position: fixed; top: 0; inset-inline: 0; height: 4px; z-index: 60; pointer-events: none; }
.sv-progress i { display: block; height: 100%; width: 100%; background: var(--yellow); transform-origin: right; transform: scaleX(0); }
.sv-art-head { position: relative; isolation: isolate; overflow: hidden; background: var(--deep); padding: 56px 0 88px; }
.sv-art-head .sv-contours { color: rgba(205, 160, 214, .1); }
.sv-art-head-in { max-width: calc(980px + var(--gut) * 2); }
.sv-art-cat { display: inline-flex; align-items: center; gap: 8px; font-size: .86rem; font-weight: 700; color: var(--yellow) !important; text-decoration: none; margin-bottom: 8px; }
.sv-art-title { font-size: clamp(1.7rem, 1.2rem + 2.1vw, 2.7rem); line-height: 1.5; color: var(--white); margin-bottom: 18px; }
.sv-art-meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: .88rem; color: var(--on-dark-2); }
.sv-art-meta li { display: inline-flex; align-items: center; gap: 6px; }
.sv-art-meta .sv-ico { color: var(--yellow); width: 1.1em; height: 1.1em; }
.sv-art-cover { margin: -56px auto 0; position: relative; z-index: 2; max-width: calc(1080px + var(--gut) * 2); }
.sv-art-cover img { width: 100%; max-height: 560px; object-fit: cover; }
.sv-art-grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 56px; align-items: start; padding-block: 56px 72px; }
.sv-art-aside { position: sticky; top: calc(var(--header) + 20px); display: grid; gap: 18px; order: 0; }
.sv-toc { border: 1px solid var(--line); border-radius: 18px; background: var(--paper); overflow: hidden; }
.sv-toc summary { display: flex; align-items: center; gap: 10px; padding: 16px 18px; font-weight: 800; color: var(--ink); cursor: pointer; list-style: none; font-size: .95rem; }
.sv-toc summary::-webkit-details-marker { display: none; }
.sv-toc summary .sv-ico { color: var(--brand); }
.sv-toc-chev { margin-inline-start: auto; transition: transform .2s; }
.sv-toc[open] .sv-toc-chev { transform: rotate(180deg); }
.sv-toc ol { list-style: none; margin: 0; padding: 0 10px 12px; counter-reset: toc; max-height: 50vh; overflow-y: auto; }
.sv-toc li { counter-increment: toc; }
.sv-toc a { display: grid; grid-template-columns: auto 1fr; gap: 8px; padding: 7px 10px; border-radius: 10px; text-decoration: none; color: var(--text); font-size: .88rem; line-height: 1.75; }
.sv-toc a::before { content: counter(toc, persian) "."; color: var(--brand-3); font-weight: 800; }
.sv-toc a:hover { background: var(--white); color: var(--brand); }
.sv-toc a.is-active { background: var(--white); color: var(--brand); box-shadow: inset -3px 0 0 var(--yellow); }
.sv-art-card { position: relative; isolation: isolate; overflow: hidden; padding: 22px; border-radius: 18px; background: var(--deep); color: var(--on-dark); font-size: .9rem; }
.sv-art-card .sv-contours { color: rgba(255, 255, 255, .07); }
.sv-art-card strong { display: block; color: var(--white); font-size: 1.02rem; margin-bottom: 4px; }
.sv-art-card .sv-btn { min-height: 46px; font-size: .9rem; }
.sv-art-card .sv-btn--line { background: transparent; color: var(--white); border-color: rgba(255, 255, 255, .25); }
.sv-inbox { display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; padding: 22px; margin-block: 2em; border-radius: 18px; background: var(--yellow-soft); border: 1px solid rgba(255, 198, 0, .7); }
.sv-inbox > .sv-ico { width: 46px; height: 46px; color: var(--brand); }
.sv-inbox strong { display: block; color: var(--ink); }
.sv-inbox p { margin: 0; font-size: .92rem; }
.sv-inbox .sv-btn { text-decoration: none; }
.sv-tags { list-style: none; margin: 32px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sv-tags a { display: inline-block; padding: 4px 12px; border-radius: 8px; background: var(--paper); border: 1px solid var(--line); font-size: .82rem; color: var(--muted); text-decoration: none; }
.sv-tags a:hover { border-color: var(--brand); color: var(--brand); }
.sv-art-author { display: flex; gap: 16px; align-items: center; margin-top: 32px; padding: 22px; border-radius: 18px; border: 1px solid var(--line); background: var(--paper); }
.sv-art-author-ico { flex: none; padding: 10px 12px; border-radius: 12px; background: var(--white); border: 1px solid var(--line); }
.sv-art-author-ico .sv-logo-img { height: 44px; }
.sv-art-author strong { color: var(--ink); }
.sv-art-author p { margin: 4px 0 0; font-size: .9rem; color: var(--muted); }
.sv-art-comments { padding-bottom: 72px; max-width: calc(860px + var(--gut) * 2); }
@media (max-width: 1040px) {
	.sv-art-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-top: 36px; }
	.sv-art-aside { position: static; }
	.sv-art-card { display: none; }
}
@media (max-width: 600px) { .sv-inbox { grid-template-columns: 1fr; text-align: center; justify-items: center; } .sv-art-cover { margin-top: -40px; } .sv-art-head { padding-bottom: 70px; } }

/* A project. */
.sv-project-head { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 32px; align-items: center; max-width: calc(1080px + var(--gut) * 2); }
.sv-project-place { display: inline-flex; gap: 6px; align-items: center; color: var(--on-dark); margin: 0; }
.sv-project-place .sv-ico { color: var(--yellow); }
.sv-project-mini { width: 100%; height: auto; direction: ltr; overflow: visible; }
.sv-project-mini .sv-map-land { fill: rgba(255, 255, 255, .08); stroke: rgba(255, 255, 255, .5); stroke-width: 3; }
.sv-project-body { padding-block: 56px 72px; max-width: calc(1080px + var(--gut) * 2); }
.sv-project-content .sv-lg-row { gap: 0 40px; align-items: flex-start; }
.sv-project-content .sv-lg-col.is-6:has(.sv-gallery) { flex: 1 1 calc(38% - 20px); position: sticky; top: calc(var(--header) + 20px); }
.sv-project-content .sv-lg-col.is-6:has(.sv-lg-text) { flex: 1 1 calc(62% - 20px); }
.sv-project-content p:empty { display: none; }
.sv-project-content .sv-lg-text p { position: relative; padding: 14px 18px; padding-inline-start: 46px; margin-bottom: 10px; border-radius: 12px; background: var(--paper); border: 1px solid var(--line); text-align: start !important; }
.sv-project-content .sv-lg-text p::before { content: ""; position: absolute; inset-inline-start: 16px; top: 22px; width: 16px; height: 14px; background: var(--brand); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.sv-project-content .sv-gallery.is-single .sv-gallery-item { border: 1px solid var(--line); padding: 10px; background: var(--white); }
.sv-project-content .sv-gallery.is-single img { max-height: 70vh; object-fit: contain; }
@media (max-width: 760px) { .sv-project-content .sv-lg-col.is-6:has(.sv-gallery) { position: static; } }
@media (max-width: 700px) { .sv-project-head { grid-template-columns: 1fr; } .sv-project-mini { max-width: 180px; } }

/* Lists. */
.sv-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; list-style: none; padding: 0; }
.sv-chips a { display: inline-flex; padding: 8px 16px; border-radius: 10px; background: var(--white); border: 1px solid var(--line); text-decoration: none; color: var(--ink); font-weight: 700; font-size: .9rem; }
.sv-chips a:hover { border-color: var(--brand); }
.sv-chips a[aria-current] { background: var(--brand); color: var(--white); border-color: var(--brand); }
.sv-pages { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 40px; }
.sv-pages .page-numbers { display: grid; place-items: center; min-width: 46px; height: 46px; padding: 0 10px; border-radius: 12px; border: 1px solid var(--line); background: var(--white); text-decoration: none; color: var(--ink); font-weight: 700; }
.sv-pages .page-numbers.current { background: var(--brand); color: var(--white); border-color: var(--brand); }
.sv-pages a.page-numbers:hover { border-color: var(--brand); }
.sv-empty { text-align: center; padding: 48px 0; color: var(--muted); }
.sv-empty .sv-ico { width: 48px; height: 48px; color: var(--brand-3); }
.sv-search { position: relative; display: flex; max-width: 560px; }
.sv-search input { width: 100%; min-height: 54px; padding: 0 18px; padding-inline-end: 60px; border-radius: 14px; border: 1px solid rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .08); color: var(--white); }
.sv-search input::placeholder { color: var(--on-dark-2); }
.sv-search input:focus { outline: 0; border-color: var(--yellow); }
.sv-search button { position: absolute; inset-inline-end: 6px; top: 6px; width: 42px; height: 42px; border-radius: 10px; border: 0; background: var(--yellow); color: var(--ink); display: grid; place-items: center; }
.sv-404 { text-align: center; overflow: hidden; }
.sv-404 .sv-search { margin: 0 auto 24px; }
.sv-404-n { font-size: clamp(5rem, 3rem + 8vw, 9rem); font-weight: 900; line-height: 1; color: var(--yellow); margin: 0; }
.sv-404 .sv-chips { justify-content: center; }
.sv-404 .sv-chips a { background: rgba(255, 255, 255, .06); color: var(--white); border-color: rgba(255, 255, 255, .15); }

/* Comments. */
.sv-comments { border-top: 1px solid var(--line); padding-top: 40px; }
.sv-comment-list { list-style: none; padding: 0; margin: 0 0 32px; display: grid; gap: 14px; }
.sv-comment-list .comment-body { padding: 18px 20px; border-radius: 14px; background: var(--paper); border: 1px solid var(--line); }
.sv-comment-list .children { list-style: none; padding-inline-start: 28px; margin-top: 12px; display: grid; gap: 12px; }
.sv-comment-list .comment-meta { font-size: .82rem; color: var(--muted); margin-bottom: 8px; }
.sv-comment-list .fn { font-style: normal; font-weight: 800; color: var(--ink); }
.comment-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.comment-form > p { margin: 0; }
.comment-form .comment-form-comment, .comment-form .sv-form-note, .comment-form .form-submit, .comment-form .comment-form-cookies-consent, .comment-form .logged-in-as { grid-column: 1 / -1; }
.comment-form label { display: block; font-weight: 700; font-size: .88rem; margin-bottom: 4px; }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea { width: 100%; padding: 12px 14px; border-radius: 12px; border: 1.5px solid var(--line-2); background: var(--paper); }
.comment-form .comment-form-url { display: none; }
@media (max-width: 600px) { .comment-form { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------ footer */

.sv-footer { position: relative; isolation: isolate; overflow: hidden; background: var(--deeper); color: var(--on-dark-2); padding-top: 84px; font-size: .92rem; }
.sv-footer .sv-contours { color: rgba(205, 160, 214, .07); }
.sv-footer-grid { display: grid; grid-template-columns: 1.45fr 1fr 1fr 1.35fr; gap: 40px; padding-bottom: 56px; }
.sv-footer-brand p { margin: 18px 0 20px; line-height: 2; }
.sv-footer-t { color: var(--white); font-weight: 800; font-size: 1rem; margin-bottom: 18px; display: flex; align-items: center; gap: 10px; }
.sv-footer-t::before { content: ""; width: 12px; height: 11px; background: var(--yellow); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.sv-footer-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.sv-footer-links a { color: var(--on-dark-2); text-decoration: none; transition: color .2s; }
.sv-footer-links a:hover { color: var(--yellow); }
.sv-footer-contact p { display: flex; gap: 10px; margin-bottom: 12px; line-height: 1.9; }
.sv-footer-contact .sv-ico { color: var(--yellow); margin-top: 5px; }
.sv-footer-contact a { color: var(--white); text-decoration: none; }
.sv-footer-contact .sv-btn { margin-top: 6px; }
.sv-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .08); }
.sv-footer-bottom-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; font-size: .84rem; }
.sv-footer-bottom p { margin: 0; }
.sv-footer-coord { direction: ltr; color: rgba(195, 177, 200, .6); letter-spacing: .04em; }
.sv-top { display: inline-flex; align-items: center; gap: 8px; background: none; border: 1px solid rgba(255, 255, 255, .14); color: var(--on-dark); padding: 8px 14px; border-radius: 10px; font-size: .84rem; }
.sv-top:hover { border-color: var(--yellow); color: var(--yellow); }
@media (max-width: 1060px) { .sv-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .sv-footer-grid { grid-template-columns: 1fr; gap: 32px; } .sv-footer { padding-top: 60px; } .sv-footer-bottom-in { flex-direction: column; justify-content: center; padding-block: 16px 90px; text-align: center; } .sv-footer-coord { display: none; } }

/* Phones: a call bar at the bottom, after the first screen. */
.sv-mbar { display: none; }
@media (max-width: 760px) {
	.sv-mbar { position: fixed; z-index: 40; inset-inline: 10px; bottom: 10px; display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 6px; padding: 6px; border-radius: 18px; background: rgba(30, 11, 34, .94); box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .6); transform: translateY(140%); transition: transform .35s var(--ease); backdrop-filter: blur(10px); }
	.sv-mbar.is-on { transform: none; }
	.sv-mbar a { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 48px; border-radius: 13px; color: var(--white); text-decoration: none; font-size: .82rem; font-weight: 700; }
	.sv-mbar a.is-main { background: var(--yellow); color: var(--ink); }
	.sv-mbar .sv-ico { width: 20px; height: 20px; }
}

/* The photo viewer. */
.sv-viewer { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; background: rgba(20, 8, 23, .94); padding: 64px 70px; }
.sv-viewer[hidden] { display: none; }
.sv-viewer figure { margin: 0; display: grid; gap: 12px; justify-items: center; max-height: 100%; }
.sv-viewer img { max-width: 100%; max-height: calc(100vh - 160px); width: auto; border-radius: 8px; }
.sv-viewer figcaption { color: var(--on-dark); font-size: .9rem; text-align: center; }
.sv-viewer button { position: absolute; display: grid; place-items: center; width: 50px; height: 50px; border-radius: 14px; border: 1px solid rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .06); color: var(--white); }
.sv-viewer button:hover { background: var(--yellow); color: var(--ink); }
.sv-viewer-x { top: 16px; inset-inline-start: 16px; }
.sv-viewer-nav.is-prev { inset-inline-start: 12px; top: 50%; margin-top: -25px; }
.sv-viewer-nav.is-next { inset-inline-end: 12px; top: 50%; margin-top: -25px; }
@media (max-width: 600px) { .sv-viewer { padding: 70px 10px; } .sv-viewer-nav { top: auto !important; bottom: 14px; margin: 0 !important; } }

/* ------------------------------------------------------------------ motion */

.js [data-sv-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.js [data-sv-reveal].is-in, .no-motion [data-sv-reveal] { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js [data-sv-reveal] { opacity: 1; transform: none; transition: none; } .sv-pin-pulse { animation: none; opacity: 0; } }

/* Elementor: its containers hold the theme's sections edge to edge. */
.sv-builder .elementor-section-wrap, .sv-builder .e-con { --gap: 0; }
.elementor-widget-container:empty { display: none; }
.elementor-editor-active [data-sv-reveal] { opacity: 1 !important; transform: none !important; }
