/* =========================================================
   Mohajerat360 public theme: INSTITUTIONAL
   Complete stylesheet. Section order is shared by all themes.
   ========================================================= */

/* 01 fonts */
@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/fraunces/fraunces-500.woff2') format('woff2'); }
@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/fraunces/fraunces-600.woff2') format('woff2'); }
@font-face { font-family: 'Noto Naskh Arabic'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/noto-naskh-arabic/noto-naskh-arabic-600.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('../../vendor/google-fonts/files/e3237528af752eed937e7103.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('../../vendor/google-fonts/files/1e8edb2fc100b7f74bc3269a.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('../../vendor/google-fonts/files/95b9ea830580b57efca1e8c3.woff2') format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }

/* 02 root tokens */
:root {
    --c-bg: #f7f5f0; --c-surface: #ffffff; --c-surface-2: #efebe2; --c-ink: #101a33; --c-ink-2: #3d4661; --c-muted: #565d74;
    --c-brand: #0f2450; --c-brand-2: #1a3b7a; --c-accent: #c8a24a; --c-accent-ink: #0f2450; --c-line: #e3ded2;
    --c-info: #1f5aa6; --c-success: #1f7a4d; --c-warning: #a8681c; --c-danger: #a8323a;
    --r-sm: 4px; --r-md: 6px; --r-lg: 8px; --shadow-1: 0 1px 2px rgba(16,26,51,.08); --shadow-2: 0 8px 24px rgba(16,26,51,.10);
    --f-display: 'Fraunces', Georgia, 'Times New Roman', serif; --f-body: 'Inter', 'Segoe UI', Arial, sans-serif;
    --fs-0: .875rem; --fs-1: 1rem; --fs-2: 1.125rem; --fs-3: 1.375rem; --fs-4: 1.75rem; --fs-5: clamp(2rem, 1.2rem + 2.4vw, 3.5rem);
    --lh-body: 1.6; --measure: 68ch; --container: 1200px; --gutter: 1rem; --space-1: .5rem; --space-2: 1rem; --space-3: 1.5rem; --space-4: 2.5rem; --space-5: 4rem;
}

/* 03 locale font stacks */
html[lang="fa"] { --f-body: 'IRANYekan', 'Vazirmatn', Tahoma, sans-serif; --f-display: 'IRANYekan', 'Vazirmatn', Tahoma, sans-serif; --fs-1: 1.06rem; }
html[lang="ar"], html[lang="ur"], html[lang="ps"], html[lang="ku"] { --f-body: 'Noto Sans Arabic', Tahoma, sans-serif; --f-display: 'Noto Naskh Arabic', 'Noto Sans Arabic', Tahoma, serif; --fs-1: 1.06rem; }
html[lang="bn"] { --f-body: 'Noto Sans Bengali', sans-serif; --f-display: 'Noto Sans Bengali', sans-serif; }
html[lang="hi"] { --f-body: 'Noto Sans Devanagari', sans-serif; --f-display: 'Noto Sans Devanagari', sans-serif; }
html[lang="zh"] { --f-body: 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif; --f-display: 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif; }
html[lang="ru"] { --f-display: 'Inter', 'Segoe UI', Arial, sans-serif; }
html[lang="ja"] { --f-body: 'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', sans-serif; --f-display: 'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', sans-serif; }

/* 04 reset and base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html, body { overflow-x: clip; }
body { margin: 0; background: var(--c-bg); color: var(--c-ink); font-family: var(--f-body); font-size: var(--fs-1); line-height: var(--lh-body); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { font-family: var(--f-display); font-weight: 600; line-height: 1.2; margin: 0 0 var(--space-2); color: var(--c-brand); letter-spacing: -.005em; }
h1 { font-size: var(--fs-5); } h2 { font-size: var(--fs-4); } h3 { font-size: var(--fs-3); } h4 { font-size: var(--fs-2); }
html[lang="ru"] h1, html[lang="ru"] h2, html[lang="ru"] h3 { font-weight: 700; }
h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }
p { margin: 0 0 var(--space-2); } a { color: var(--c-brand-2); text-decoration-thickness: 1px; text-underline-offset: .15em; }
a:hover { color: var(--c-brand); } img, svg, video { max-width: 100%; height: auto; display: block; }
ul, ol { padding-inline-start: 1.25rem; } :focus-visible { outline: 3px solid var(--c-accent); outline-offset: 2px; }
.ds-icon { display: inline-block; vertical-align: -.2em; }
.visually-hidden { position: absolute; inset-inline-start: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* 05 layout primitives */
.ds-container { width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }
.ds-section { padding-block: var(--space-5); }
.ds-section--soft { background: var(--c-surface-2); }
.ds-section__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: var(--space-2); margin-block-end: var(--space-3); }
.ds-grid { display: grid; gap: var(--space-3); }
.ds-grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.ds-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.ds-grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.ds-prose { max-width: var(--measure); } .ds-prose h2 { margin-block-start: var(--space-4); } .ds-prose table { width: 100%; border-collapse: collapse; }

/* 06 topbar */
.ds-topbar { position: sticky; top: 0; z-index: 50; background: var(--c-brand); color: #fff; border-block-end: 1px solid rgba(255,255,255,.08); }
.ds-topbar__nav { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); min-height: 72px; width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }
.ds-topbar__brand { font-family: var(--f-display); font-weight: 600; font-size: 1.25rem; color: #fff; text-decoration: none; letter-spacing: .02em; }
.ds-topbar__toggle { display: none; background: none; border: 1px solid rgba(255,255,255,.3); border-radius: var(--r-sm); color: #fff; padding: .4rem .6rem; position: relative; }
.ds-topbar__toggle-icon { display: inline-block; vertical-align: middle; }
.ds-topbar__toggle-icon[data-state="close"] { display: none; }
.ds-topbar__toggle[aria-expanded="true"] .ds-topbar__toggle-icon[data-state="open"] { display: none; }
.ds-topbar__toggle[aria-expanded="true"] .ds-topbar__toggle-icon[data-state="close"] { display: inline-block; }
.ds-nav { display: flex; align-items: center; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.ds-nav__link { display: inline-flex; align-items: center; gap: .35rem; padding: .55rem .8rem; border-radius: var(--r-sm); color: rgba(255,255,255,.88); text-decoration: none; font-weight: 500; font-size: var(--fs-0); }
.ds-nav__link:hover, .ds-nav__link[aria-current="page"] { background: rgba(255,255,255,.1); color: #fff; }
.ds-mega { position: relative; } .ds-mega__panel { display: none; position: absolute; inset-inline-start: 0; top: 100%; min-width: 640px; background: var(--c-surface); color: var(--c-ink); border: 1px solid var(--c-line); border-radius: var(--r-md); box-shadow: var(--shadow-2); padding: var(--space-3); columns: 2; gap: var(--space-3); }
.ds-mega__panel.show, .ds-mega.is-open .ds-mega__panel { display: block; }
.ds-mega__link { display: block; padding: .35rem 0; color: var(--c-ink); text-decoration: none; break-inside: avoid; } .ds-mega__link:hover { color: var(--c-brand-2); text-decoration: underline; }
.ds-mega__group-title { font-family: var(--f-display); font-size: var(--fs-1); color: var(--c-brand); margin-block: 0 .35rem; }
.ds-lang { position: relative; } .ds-lang__panel { display: none; position: absolute; inset-inline-end: 0; top: 100%; background: var(--c-surface); color: var(--c-ink); border: 1px solid var(--c-line); border-radius: var(--r-md); box-shadow: var(--shadow-2); padding: var(--space-1); min-width: 220px; max-height: 70vh; overflow: auto; }
.ds-lang__panel.show, .ds-lang.is-open .ds-lang__panel { display: block; }
.ds-lang__panel a { display: flex; gap: .5rem; align-items: center; padding: .45rem .6rem; border-radius: var(--r-sm); color: var(--c-ink); text-decoration: none; } .ds-lang__panel a:hover { background: var(--c-surface-2); }
.ds-topbar__cta { background: var(--c-accent); color: var(--c-accent-ink); border-radius: var(--r-sm); padding: .55rem 1rem; font-weight: 600; text-decoration: none; }
/* utility bar account controls: one language switcher and one login / register pair on desktop; the mobile menu repeats them below 992px */
.ds-topbar__account { display: inline-flex; align-items: center; gap: .5rem; }
.ds-topbar__account .ds-lang > button, .ds-topbar__account .ds-topbar__cta, .ds-topbar__account .dropdown > .btn { padding-block: .35rem; font-size: var(--fs-0); }
.ds-topbar__account .ds-lang__panel { z-index: 60; }
.ds-topbar__utility-link { display: inline-flex; align-items: center; gap: .1rem; background: none; border: 0; padding: .35rem .15rem; font-size: .875rem; font-weight: 500; color: #fff; text-decoration: none; cursor: pointer; white-space: nowrap; }
.ds-topbar__utility-link:hover, .ds-topbar__utility-link:focus-visible { text-decoration: underline; color: #fff; }
.ds-topbar .text-light, .ds-topbar .localized-brand { color: #fff; }
.collapse:not(.show) { display: none; }
@media (min-width: 992px) { .ds-topbar__collapse.collapse:not(.show) { display: flex; flex: 1 1 auto; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--space-2); row-gap: .4rem; } .ds-topbar__nav { position: relative; } .ds-mega { position: static; } .ds-mega__panel { inset-inline-end: 0; width: min(640px, 100%); margin-inline: auto; max-height: calc(100vh - 96px); overflow: auto; } }
@media (max-width: 991px) {
    .ds-topbar__toggle { display: inline-flex; }
    .ds-topbar__collapse { display: none; position: fixed; inset: 72px 0 0 0; background: var(--c-brand); overflow: auto; padding: var(--space-2) var(--gutter); }
    .ds-topbar__collapse.show, .ds-topbar__collapse.is-open { display: block; }
    .navbar-toggler-icon { display: none; }
    .ds-nav { flex-direction: column; align-items: stretch; }
    .ds-mega__panel { position: static; min-width: 0; columns: 1; box-shadow: none; }
}

/* 06b mega-menu anchor containment */
@media (min-width: 992px) {
    .ds-mega { position: relative; }
    .ds-mega__panel { inset-inline-start: auto; inset-inline-end: 0; width: min(640px, calc(100vw - 2 * var(--gutter))); margin-inline: 0; z-index: 70; }
    .ds-mega__panel--viewport { position: fixed; inset-block-start: var(--ds-mega-top); inset-inline-start: var(--ds-mega-start); inset-inline-end: auto; width: var(--ds-mega-width); margin: 0; }
}

/* payment notice strip: .csp-crypto-strip-bg paints a fixed dark gradient in every theme */
.payment-notice__sentence, .ds-topbar .csp-crypto-strip-bg { color: #fff; }

/* localized brand mark and wordmark (ported from the retired Travela stylesheet) */
.localized-brand { --brand-mark-size: clamp(2.2rem, 4vw, 3.25rem); --brand-wordmark-size: clamp(1rem, 2.2vw, 1.55rem); display: inline-flex; align-items: center; gap: clamp(.45rem, 1.1vw, .7rem); min-width: 0; line-height: 1; text-decoration: none; flex: 0 1 auto; }
.localized-brand__mark { inline-size: var(--brand-mark-size); block-size: var(--brand-mark-size); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.localized-brand__icon { display: block; inline-size: 100%; block-size: 100%; }
.localized-brand__pin { fill: var(--c-accent); }
.localized-brand__plane { fill: #fff; }
.localized-brand__wordmark { display: block; min-width: 0; max-inline-size: 100%; white-space: nowrap; overflow-wrap: normal; color: currentColor; font-family: var(--f-display); font-size: var(--brand-wordmark-size); font-weight: 700; letter-spacing: .02em; line-height: 1.1; text-decoration: none; }
.localized-brand[data-brand-script="arabic"] .localized-brand__wordmark,
.localized-brand[data-brand-script="han"] .localized-brand__wordmark,
.localized-brand[data-brand-script="bengali"] .localized-brand__wordmark,
.localized-brand[data-brand-script="devanagari"] .localized-brand__wordmark { letter-spacing: 0; }
.ds-topbar .localized-brand--header { color: #fff; }

/* 07 footer */
.ds-footer { background: var(--c-brand); color: rgba(255,255,255,.85); padding-block: var(--space-5) var(--space-3); margin-block-start: var(--space-5); }
.ds-footer__grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.ds-footer__col { min-width: 0; }
.ds-footer__title { font-family: var(--f-display); color: #fff; font-size: var(--fs-2); margin-block-end: var(--space-2); }
.ds-footer a { color: rgba(255,255,255,.85); text-decoration: none; } .ds-footer a:hover { color: #fff; text-decoration: underline; }
.ds-footer__list { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; }
.ds-footer .localized-brand--footer { --brand-mark-size: 1.65rem; --brand-wordmark-size: 1rem; max-inline-size: min(100%, 18rem); color: #fff; vertical-align: middle; }
.ds-footer__legal { border-block-start: 1px solid rgba(255,255,255,.15); margin-block-start: var(--space-4); padding-block-start: var(--space-2); display: flex; flex-wrap: wrap; gap: var(--space-2); justify-content: space-between; font-size: var(--fs-0); }

/* 08 hero */
.ds-hero { background: var(--c-brand); color: #fff; padding-block: var(--space-5); position: relative; overflow: hidden; }
.ds-hero::after { content: ""; position: absolute; inset-inline-end: -10%; top: -20%; width: 40%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(closest-side, rgba(200,162,74,.25), transparent); pointer-events: none; }
.ds-hero__grid { display: grid; gap: var(--space-4); grid-template-columns: 1fr; align-items: center; position: relative; }
.ds-hero--landing .ds-hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.ds-hero--page { padding-block: var(--space-4); } .ds-hero--page .ds-hero__title { font-size: var(--fs-4); }
.ds-hero__copy { min-width: 0; }
.ds-hero__eyebrow { color: var(--c-accent); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: var(--fs-0); margin-block-end: var(--space-1); }
.ds-hero__title { color: #fff; margin-block-end: var(--space-2); } .ds-hero__lead { font-size: var(--fs-2); color: rgba(255,255,255,.85); max-width: 60ch; }
.ds-hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block-start: var(--space-3); }
.ds-hero__visual img { border-radius: var(--r-lg); box-shadow: var(--shadow-2); } .ds-hero__meta { margin-block-start: var(--space-2); font-size: var(--fs-0); color: rgba(255,255,255,.75); }
@media (max-width: 991px) { .ds-hero--landing .ds-hero__grid { grid-template-columns: 1fr; } }

/* 09 stat */
.ds-stats { display: grid; gap: var(--space-2); grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); }
.ds-stat { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md); padding: var(--space-2) var(--space-3); box-shadow: var(--shadow-1); }
.ds-stat__value { display: block; font-family: var(--f-display); font-size: var(--fs-4); color: var(--c-brand); line-height: 1.1; } .ds-stat__label { font-size: var(--fs-0); color: var(--c-muted); }

/* 10 card */
.ds-card { display: flex; flex-direction: column; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md); overflow: hidden; color: inherit; text-decoration: none; box-shadow: var(--shadow-1); transition: box-shadow .18s ease, transform .18s ease; }
a.ds-card:hover { box-shadow: var(--shadow-2); transform: translateY(-2px); }
.ds-card__media img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; } .ds-card__body { padding: var(--space-3); flex: 1; }
.ds-card__eyebrow { color: var(--c-accent-ink); background: rgba(200,162,74,.18); display: inline-block; padding: .2rem .55rem; border-radius: var(--r-sm); font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; margin-block-end: var(--space-1); }
.ds-card__title { font-size: var(--fs-2); margin-block-end: var(--space-1); } .ds-card__text { color: var(--c-ink-2); font-size: var(--fs-0); }
.ds-card__footer { padding: var(--space-2) var(--space-3); border-block-start: 1px solid var(--c-line); font-size: var(--fs-0); }
.ds-card--service { border-inline-start: 4px solid var(--c-accent); } .ds-card--destination .ds-card__title { display: flex; align-items: center; gap: .5rem; }
.ds-card--package { border-block-start: 4px solid var(--c-brand); } .ds-card--tool { background: var(--c-surface-2); border-style: dashed; }

/* 11 steps */
.ds-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); counter-reset: step; }
.ds-steps--horizontal { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); overflow-x: clip; }
.ds-steps__item { position: relative; display: grid; grid-template-columns: auto 1fr; gap: var(--space-2); }
.ds-steps__number { width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--c-brand); color: #fff; font-family: var(--f-display); display: grid; place-items: center; }
.ds-steps__body { min-width: 0; }
.ds-steps__title { font-size: var(--fs-2); margin-block-end: .25rem; } .ds-steps__text { font-size: var(--fs-0); color: var(--c-ink-2); margin: 0; }
/* The horizontal connector line only fits once the steps grid actually lays
   out side by side (see .ds-steps--horizontal's auto-fit breakpoint above);
   below that its negative inset-inline-end overflows the single-column
   mobile layout, so it is scoped to the same width the columns need. */
@media (min-width: 576px) { .ds-steps--horizontal .ds-steps__item:not(:last-child)::after { content: ""; position: absolute; top: 1.1rem; inset-inline-start: 2.6rem; inset-inline-end: -1.5rem; border-block-start: 1px dashed var(--c-line); } }

/* 12 features */
.ds-features { display: grid; gap: var(--space-3); } .ds-features--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); } .ds-features--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); } .ds-features--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.ds-features__item { min-width: 0; }
.ds-features__icon { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: var(--r-sm); background: rgba(15,36,80,.08); color: var(--c-brand); margin-block-end: var(--space-1); }
.ds-features__title { font-size: var(--fs-2); } .ds-features__text { color: var(--c-ink-2); font-size: var(--fs-0); margin: 0; }

/* 13 accordion */
.ds-accordion { border-block-start: 1px solid var(--c-line); } .ds-accordion__item { border-block-end: 1px solid var(--c-line); }
.ds-accordion__question { cursor: pointer; padding: var(--space-2) 0; font-family: var(--f-display); font-size: var(--fs-2); color: var(--c-brand); list-style: none; display: flex; justify-content: space-between; gap: var(--space-2); }
.ds-accordion__question::-webkit-details-marker { display: none; } .ds-accordion__question::after { content: "+"; color: var(--c-accent); } .ds-accordion__item[open] .ds-accordion__question::after { content: "\2212"; }
.ds-accordion__answer { padding-block: 0 var(--space-2); color: var(--c-ink-2); max-width: var(--measure); }

/* 14 tabs */
.ds-tabs { display: block; }
.ds-tabs__list { display: flex; flex-wrap: wrap; gap: .25rem; border-block-end: 1px solid var(--c-line); margin-block-end: var(--space-2); }
.ds-tabs__tab { background: none; border: 0; border-block-end: 2px solid transparent; padding: .6rem .9rem; font: inherit; font-weight: 500; color: var(--c-ink-2); cursor: pointer; }
.ds-tabs__tab[aria-selected="true"] { color: var(--c-brand); border-color: var(--c-accent); }
.ds-tabs__panels { display: block; }
.ds-tabs__panel { display: block; }
.ds-tabs__panel[hidden] { display: none; }

/* 15 table */
.ds-table-wrap { overflow-x: auto; } .ds-table { width: 100%; border-collapse: collapse; background: var(--c-surface); border: 1px solid var(--c-line); font-size: var(--fs-0); }
.ds-table th, .ds-table td { padding: .7rem .9rem; border-block-end: 1px solid var(--c-line); text-align: start; vertical-align: top; }
.ds-table thead th { background: var(--c-surface-2); font-family: var(--f-display); color: var(--c-brand); font-weight: 600; }
@media (max-width: 767px) { .ds-table--stack thead { display: none; } .ds-table--stack tr { display: block; border-block-end: 1px solid var(--c-line); } .ds-table--stack td { display: grid; grid-template-columns: 40% 1fr; border: 0; } .ds-table--stack td::before { content: attr(data-label); font-weight: 600; color: var(--c-muted); } }

/* 16 field and buttons */
.ds-field { display: grid; gap: .35rem; margin-block-end: var(--space-2); } .ds-field__label { font-weight: 600; font-size: var(--fs-0); } .ds-field__required { color: var(--c-danger); margin-inline-start: .2rem; }
.ds-field__control { width: 100%; font: inherit; padding: .65rem .8rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); background: var(--c-surface); color: var(--c-ink); }
.ds-field__control:focus { border-color: var(--c-brand-2); outline: 3px solid rgba(26,59,122,.18); outline-offset: 0; }
.ds-field--invalid .ds-field__control { border-color: var(--c-danger); } .ds-field__help { font-size: .8rem; color: var(--c-muted); margin: 0; } .ds-field__error { font-size: .8rem; color: var(--c-danger); margin: 0; }
.ds-field__check { display: flex; gap: .5rem; align-items: start; font-size: var(--fs-0); }
.ds-btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; padding: .7rem 1.25rem; border-radius: var(--r-sm); border: 1px solid transparent; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; line-height: 1.2; }
.ds-btn--primary { background: var(--c-accent); color: var(--c-accent-ink); } .ds-btn--primary:hover { background: #b8923d; color: var(--c-accent-ink); }
.ds-btn--secondary { background: var(--c-brand); color: #fff; } .ds-btn--secondary:hover { background: var(--c-brand-2); color: #fff; }
.ds-btn--outline { background: transparent; border-color: currentColor; color: var(--c-brand); } .ds-hero .ds-btn--outline, .ds-cta .ds-btn--outline { color: #fff; }
.ds-btn--ghost { background: transparent; color: var(--c-brand-2); } .ds-btn--sm { padding: .45rem .8rem; font-size: var(--fs-0); } .ds-btn--lg { padding: .9rem 1.6rem; font-size: var(--fs-2); }
.ds-btn[disabled], .ds-btn[aria-disabled="true"] { opacity: .55; pointer-events: none; }

/* 17 badge and alert */
.ds-badge { display: inline-block; padding: .2rem .55rem; border-radius: var(--r-sm); font-size: .75rem; font-weight: 600; letter-spacing: .04em; }
.ds-badge--neutral { background: var(--c-surface-2); color: var(--c-ink-2); } .ds-badge--info { background: rgba(31,90,166,.12); color: var(--c-info); } .ds-badge--success { background: rgba(31,122,77,.12); color: var(--c-success); } .ds-badge--warning { background: rgba(168,104,28,.14); color: var(--c-warning); } .ds-badge--danger { background: rgba(168,50,58,.12); color: var(--c-danger); }
.ds-alert { border: 1px solid var(--c-line); border-inline-start-width: 4px; border-radius: var(--r-sm); padding: var(--space-2) var(--space-3); background: var(--c-surface); margin-block-end: var(--space-2); }
.ds-alert__title { font-weight: 600; margin-block-end: .25rem; } .ds-alert__body p:last-child { margin: 0; }
.ds-alert--info { border-inline-start-color: var(--c-info); } .ds-alert--success { border-inline-start-color: var(--c-success); } .ds-alert--warning { border-inline-start-color: var(--c-warning); } .ds-alert--danger { border-inline-start-color: var(--c-danger); }

/* 18 cta */
.ds-cta { background: var(--c-brand); color: #fff; padding-block: var(--space-4); } .ds-cta__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); }
.ds-cta__copy { min-width: 0; }
.ds-cta__title { color: #fff; margin-block-end: .25rem; } .ds-cta__text { color: rgba(255,255,255,.85); margin: 0; max-width: 60ch; } .ds-cta__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }

/* 19 breadcrumb, toc, side panel, pagination, empty */
.ds-breadcrumb { display: block; }
.ds-breadcrumb__list { display: flex; flex-wrap: wrap; gap: .35rem; list-style: none; margin: 0 0 var(--space-2); padding: 0; font-size: var(--fs-0); color: var(--c-muted); }
.ds-hero .ds-breadcrumb__list { color: #fff; }
.ds-breadcrumb__item + .ds-breadcrumb__item::before { content: "/"; margin-inline-end: .35rem; opacity: .6; } .ds-hero .ds-breadcrumb { color: rgba(255,255,255,.8); } .ds-hero .ds-breadcrumb a { color: #fff; }
.ds-toc { position: sticky; top: 88px; font-size: var(--fs-0); } .ds-toc__list { list-style: none; padding: 0; margin: 0; border-inline-start: 2px solid var(--c-line); }
.ds-toc__link { display: block; padding: .35rem .75rem; color: var(--c-ink-2); text-decoration: none; margin-inline-start: -2px; border-inline-start: 2px solid transparent; } .ds-toc__link:hover, .ds-toc__link.is-active { color: var(--c-brand); border-color: var(--c-accent); }
.ds-side { position: sticky; top: 88px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md); padding: var(--space-3); box-shadow: var(--shadow-1); }
.ds-side__title { font-size: var(--fs-2); } .ds-side__body { display: grid; gap: var(--space-2); } .ds-side .ds-table { border: 0; font-size: .85rem; } .ds-side .ds-btn { width: 100%; margin-block-start: var(--space-2); }
.ds-pagination { display: flex; align-items: center; justify-content: center; gap: var(--space-2); margin-block-start: var(--space-4); } .ds-pagination__link { padding: .4rem .8rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); text-decoration: none; } .ds-pagination__link.is-disabled { opacity: .4; }
.ds-pagination__status { font-size: var(--fs-0); color: var(--c-muted); }
.ds-empty { text-align: center; padding: var(--space-5) var(--space-3); color: var(--c-muted); background: var(--c-surface-2); border-radius: var(--r-md); } .ds-empty__title { color: var(--c-brand); margin-block: var(--space-2) var(--space-1); }
.ds-empty__text { margin: 0 auto var(--space-2); max-width: 48ch; } .ds-empty__action { margin-block-start: var(--space-2); }

/* 20 templates */
.tpl-landing .ds-section--audience .ds-card__title { font-size: var(--fs-3); }
.tpl-hub .ds-hero--page { padding-block: var(--space-3); } .tpl-hub__filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-block-start: var(--space-2); } .tpl-hub__filters a { background: rgba(255,255,255,.12); color: #fff; padding: .35rem .8rem; border-radius: var(--r-sm); text-decoration: none; font-size: var(--fs-0); }
.tpl-detail__layout { display: grid; gap: var(--space-4); grid-template-columns: minmax(0, 1fr); } .tpl-detail__facts { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block-start: var(--space-2); } .tpl-detail__facts dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.7); } .tpl-detail__facts dd { margin: 0; font-weight: 600; }
.tpl-guide__layout { display: grid; gap: var(--space-4); grid-template-columns: minmax(0, 1fr); } .tpl-guide__meta { color: var(--c-muted); font-size: var(--fs-0); display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block-end: var(--space-3); }
.tpl-tool__layout { display: grid; gap: var(--space-3); grid-template-columns: minmax(0, 1fr); } .tpl-tool__workspace { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md); padding: var(--space-3); } .tpl-tool__results { background: var(--c-surface-2); border-radius: var(--r-md); padding: var(--space-3); }
.tpl-utility { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; } .tpl-utility__layout { display: grid; gap: 0; grid-template-columns: minmax(0, 1fr); } .tpl-utility__brand { background: var(--c-brand); color: #fff; padding: var(--space-3) var(--gutter); display: block; } .tpl-utility__form { display: grid; place-items: center; padding: var(--space-4) var(--gutter); } .tpl-utility__card { width: min(100%, 480px); background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md); padding: var(--space-4); box-shadow: var(--shadow-2); }
@media (min-width: 992px) { .tpl-detail__layout { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); } .tpl-guide__layout { grid-template-columns: 240px minmax(0, 1fr); } .tpl-tool__layout { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } .tpl-utility__layout { grid-template-columns: 5fr 7fr; } .tpl-utility__brand { padding: var(--space-5) var(--space-4); } }

/* utility pages */
.tpl-utility__card--wide { width: min(100%, 860px); }
.tpl-utility__block { width: 100%; }
.tpl-utility__brand a { color: #fff; }
.tpl-utility__brand .ds-btn--outline { color: #fff; border-color: rgba(255,255,255,.6); }
.tpl-utility__contact-eyebrow { display: flex; align-items: center; gap: .4rem; margin-block-start: var(--space-3); }
.tpl-utility__contacts { margin: 0; color: rgba(255,255,255,.85); }
.tpl-utility__contacts dt { display: flex; align-items: center; gap: .4rem; font-weight: 600; color: #fff; margin-block-start: var(--space-2); }
.tpl-utility__contacts dd { margin: 0; margin-inline-start: 1.4rem; }
.tpl-utility__maps { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); margin-block-start: var(--space-2); }
.tpl-utility__map-block { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1); }
.tpl-utility__map-name { display: flex; align-items: center; gap: .4rem; margin: 0; font-weight: 600; }
.tpl-utility__lead { font-size: var(--fs-2); }
.tpl-utility__doc-section { border-block-end: 1px solid var(--c-line); margin-block-end: var(--space-3); padding-block-end: var(--space-2); }
.tpl-utility__doc-section:last-of-type { border-block-end: 0; }
.tpl-utility__ticket { margin-block-start: var(--space-4); }
.tpl-utility__ticket-head.ds-cluster { align-items: start; justify-content: space-between; margin-block-end: var(--space-2); }
.tpl-utility__notice { background: var(--c-surface-2); border-radius: var(--r-md); padding: var(--space-3); }
.tpl-utility__codes { list-style: none; margin: 0 0 var(--space-3); padding: 0; display: grid; gap: var(--space-1); grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); }
.tpl-utility__code { display: block; border: 1px solid var(--c-line); border-radius: var(--r-sm); padding: var(--space-1); text-align: center; }
.tpl-utility__secret { overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.tpl-utility__details { margin-block-end: var(--space-3); }
.tpl-utility__banner { border-inline-start: 3px solid var(--c-accent); padding-inline-start: var(--space-2); margin-block-end: var(--space-3); }
.tpl-utility__legal-note { font-size: var(--fs-0); color: rgba(255,255,255,.75); margin-block-start: var(--space-1); }
.tpl-utility__code-mark { font-family: var(--f-display); font-size: var(--fs-4); color: var(--c-muted); margin-block-end: var(--space-1); }

/* guide pages */
.tpl-guide__article--wide { max-width: none; }
.tpl-guide .ds-prose h1, .tpl-guide .ds-prose h2, .tpl-guide .ds-prose h3, .tpl-guide .ds-prose p, .tpl-guide .ds-prose li { overflow-wrap: anywhere; }
.tpl-guide .ds-prose h1 { margin-block-start: 0; }
.tpl-guide__lead { font-size: var(--fs-2); line-height: 1.9; }
.tpl-guide__eyebrow { display: flex; align-items: center; gap: .4rem; font-size: var(--fs-0); font-weight: 600; letter-spacing: .04em; color: var(--c-muted); margin-block-end: var(--space-1); }
.tpl-guide__statement { font-size: var(--fs-2); font-weight: 600; }
.tpl-guide__section { border-block-end: 1px solid var(--c-line); margin-block-end: var(--space-3); padding-block-end: var(--space-3); }
.tpl-guide__section:last-of-type { border-block-end: 0; padding-block-end: 0; }
.tpl-guide__section > h2 { margin-block-start: 0; }
.tpl-guide__list { display: grid; gap: .65rem; padding-inline-start: 1.25rem; margin-block: var(--space-2) 0; }
.tpl-guide__list li { line-height: 1.9; }
.tpl-guide__checklist { list-style: none; display: grid; gap: var(--space-1); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); padding: 0; margin-block: var(--space-2) 0; }
.tpl-guide__checklist li { display: flex; align-items: start; gap: .5rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); padding: var(--space-2); background: var(--c-surface); }
.tpl-guide__checkmark { color: var(--c-success); flex: none; margin-block-start: .15rem; }
.tpl-guide__figure { margin: 0 0 var(--space-3); }
.tpl-guide__figure img { display: block; width: 100%; height: auto; border-radius: var(--r-md); }
.tpl-guide__note { margin-block-end: var(--space-3); }
.tpl-guide__cta { margin-block-start: var(--space-4); }
.tpl-guide__links { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block: var(--space-2); }
.tpl-guide__related { border-block-start: 1px solid var(--c-line); margin-block-start: var(--space-3); padding-block-start: var(--space-3); }
.tpl-guide__related h2 { margin-block-start: 0; }

/* landing */
.tpl-landing__body { display: block; }
.tpl-landing .ds-hero--landing { padding-block: 0; }
.tpl-landing .ds-hero--landing::after { content: none; }
.tpl-landing__head-copy { min-width: 0; max-width: var(--measure); }
.tpl-landing__eyebrow { display: flex; align-items: center; gap: .4rem; font-size: var(--fs-0); font-weight: 600; letter-spacing: .04em; color: var(--c-muted); margin-block-end: var(--space-1); }
.tpl-landing__stats { padding-block: var(--space-4); }
.tpl-landing__product-lead { font-size: var(--fs-2); color: var(--c-ink-2); }
.tpl-landing__product-note { font-weight: 600; }
.tpl-landing__badges { gap: .4rem; margin-block-end: 0; }
.tpl-landing__checklist { list-style: none; display: grid; gap: var(--space-1); padding: 0; margin-block: 0; }
.tpl-landing__checklist li { display: flex; align-items: start; gap: .5rem; }
.tpl-landing__checkmark { flex: none; margin-block-start: .2rem; }
.tpl-landing .ds-card__footer { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1); }
.tpl-landing__product--corporate { background: var(--c-brand); color: #fff; }
.tpl-landing__product--corporate .ds-card__title { color: #fff; }
.tpl-landing__product--corporate .ds-card__eyebrow { color: #fff; background: rgba(255, 255, 255, .16); }
.tpl-landing__product--corporate .ds-card__text { color: rgba(255, 255, 255, .85); }
.tpl-landing__product--corporate .ds-card__footer { border-block-start-color: rgba(255, 255, 255, .2); }
.tpl-landing__product--corporate .ds-btn--outline { color: #fff; }
.tpl-landing .ds-steps__title { font-size: var(--fs-1); }
.m360-corporate-trust-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--space-1) var(--space-2); margin: 0; padding: var(--space-1) var(--gutter); background: var(--c-brand-2); color: #fff; font-size: var(--fs-0); text-align: center; }
.m360-corporate-trust-strip a { color: #fff; font-weight: 600; }
.m360-hero-slide { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; block-size: 33rem; }
.m360-hero-slide > picture, .m360-hero-slide > img { position: absolute; inset: 0; }
.m360-hero-slide > picture img, .m360-hero-slide > img { inline-size: 100%; block-size: 100%; max-inline-size: none; object-fit: cover; }
.m360-hero-slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to right, rgba(7, 23, 40, .9), rgba(7, 23, 40, .74) 55%, rgba(7, 23, 40, .46)); pointer-events: none; }
[dir="rtl"] .m360-hero-slide::after { background: linear-gradient(to left, rgba(7, 23, 40, .9), rgba(7, 23, 40, .74) 55%, rgba(7, 23, 40, .46)); }
.m360-hero-shell { position: relative; z-index: 1; }
.m360-hero-content { max-inline-size: 46rem; padding-block: var(--space-3); }
.m360-hero-mini { display: inline-flex; align-items: center; gap: .4rem; color: var(--c-accent); font-weight: 600; font-size: var(--fs-0); margin-block-end: var(--space-1); }
.m360-hero-heading { font-size: var(--fs-4); color: #fff; margin-block-end: var(--space-2); }
.m360-hero-content .lead { font-size: var(--fs-1); color: rgba(255, 255, 255, .9); margin-block-end: 0; }
.m360-carousel-toggle { position: absolute; inset-block-start: 0; inset-inline: 0; z-index: 3; display: grid; place-items: center; inline-size: 3rem; block-size: 3.4rem; margin-inline: auto; padding: var(--space-1) 0 0; border: 0; background: none; color: #fff; cursor: pointer; }
.m360-carousel-toggle__glyph { display: grid; place-items: center; inline-size: 2.25rem; block-size: 2.25rem; border-radius: 50%; background: rgba(7, 23, 40, .55); }
.m360-carousel-toggle__glyph::before { content: ""; display: block; }
[data-carousel-state="playing"] .m360-carousel-toggle__glyph::before { inline-size: .7rem; block-size: .85rem; border-inline-start: .24rem solid #fff; border-inline-end: .24rem solid #fff; }
[data-carousel-state="paused"] .m360-carousel-toggle__glyph::before { inline-size: 0; block-size: 0; border-block-start: .42rem solid transparent; border-block-end: .42rem solid transparent; border-inline-start: .64rem solid #fff; }
@media (min-width: 992px) {
    .m360-hero-slide { block-size: 40rem; }
    .m360-hero-heading { font-size: var(--fs-5); }
    .m360-hero-content { padding-block: var(--space-4); }
    .m360-hero-content .lead { font-size: var(--fs-2); }
}
.ds-section--testimonials { padding-block-start: 0; }
.ds-testimonials__head { display: block; }
.ds-testimonials__eyebrow { font-size: var(--fs-0); font-weight: 600; letter-spacing: .04em; color: var(--c-muted); margin-block-end: var(--space-1); }
.testimonial-list { display: grid; gap: var(--space-3); }
.testimonial-item { text-align: center; }
.testimonial-img { inline-size: 6rem; margin-inline: auto; margin-block-end: var(--space-2); }
.testimonial-img img { inline-size: 6rem; block-size: 6rem; object-fit: cover; border-radius: 50%; }
.testimonial-name { font-weight: 600; margin-block-end: 0; }
.testimonial-role { color: var(--c-muted); font-size: var(--fs-0); margin-block-end: var(--space-1); }
.testimonial-rating { display: flex; justify-content: center; gap: .15rem; color: var(--c-brand-2); margin-block-end: 0; }
.testimonial-comment { background: var(--c-surface-2); border-radius: var(--r-md); padding: var(--space-2); margin-block-start: var(--space-2); }
@media (min-width: 768px) {
    .testimonial-list { grid-auto-flow: column; grid-auto-columns: minmax(min(100%, 20rem), 1fr); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); padding-block-end: var(--space-1); }
    .testimonial-list > .testimonial-item { scroll-snap-align: start; }
}

/* hub pages */
.ds-legal-note { display: block; font-size: var(--fs-0); color: var(--c-muted); }
.ds-alert__title { display: block; } .ds-alert__body { display: block; }
.tpl-hub__body { display: block; }
.tpl-hub__span-all { grid-column: 1 / -1; }
.tpl-hub__eyebrow { display: flex; align-items: center; gap: .4rem; font-size: var(--fs-0); font-weight: 600; letter-spacing: .04em; color: var(--c-muted); margin-block-end: var(--space-1); }
.tpl-hub__statement { font-size: var(--fs-2); font-weight: 600; }
.tpl-hub__card-lead { color: var(--c-ink-2); }
.tpl-hub__checklist { list-style: none; display: grid; gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); padding: 0; margin-block: var(--space-2); }
.tpl-hub__checklist li { display: flex; align-items: start; gap: .4rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); padding: var(--space-1); }
.tpl-hub__checkmark { color: var(--c-success); flex: none; margin-block-start: .15rem; }
.tpl-hub__filters button { background: rgba(255,255,255,.16); color: #fff; border: 0; padding: .35rem .8rem; border-radius: 999px; font: inherit; font-size: var(--fs-0); cursor: pointer; }
.tpl-hub__filters button.active, .tpl-hub__filters button.is-active, .tpl-hub__filters button[aria-pressed="true"] { background: var(--c-accent); color: var(--c-accent-ink); }
.tpl-hub__facts { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-3); margin-block-start: var(--space-2); }
.tpl-hub__facts > div { min-width: 0; }
.tpl-hub__facts strong { display: block; font-family: var(--f-display); font-size: var(--fs-3); color: #fff; line-height: 1.1; }
.tpl-hub__facts span { font-size: var(--fs-0); color: rgba(255,255,255,.75); }
.tpl-hub__search { display: grid; gap: .35rem; margin-block-start: var(--space-2); max-width: 28rem; }
.tpl-hub__search label { font-weight: 600; font-size: var(--fs-0); color: #fff; }
.tpl-hub__panel { background: var(--c-surface); border-radius: var(--r-md); padding: var(--space-3); box-shadow: var(--shadow-2); margin-block-end: var(--space-3); }
.tpl-hub__panel [data-corporate-count] strong { display: block; color: var(--c-brand); font-family: var(--f-display); font-size: var(--fs-3); line-height: 1.1; }
.tpl-hub__links { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block-start: var(--space-2); }
.tpl-hub__section { margin-block-start: var(--space-4); }
.tpl-hub__section > h2 { margin-block-end: var(--space-1); }
.tpl-hub__section-intro { color: var(--c-ink-2); max-width: var(--measure); }
.tpl-hub__gallery-card { display: flex; width: 100%; border: 0; cursor: pointer; text-align: start; font: inherit; color: inherit; padding: 0; }
.tpl-hub__gallery-card img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.tpl-hub__gallery-caption { display: block; font-size: var(--fs-0); color: var(--c-ink-2); }
.tpl-hub__filters--inline button { background: var(--c-surface-2); color: var(--c-ink); }
.tpl-hub__filters--inline button.is-active, .tpl-hub__filters--inline button[aria-pressed="true"] { background: var(--c-brand); color: #fff; }
.tpl-hub__gallery { margin-block-start: var(--space-3); }
.tpl-hub__pathways .ds-card__title { font-size: var(--fs-2); }
.tpl-hub__lightbox { display: none; position: fixed; inset: 0; z-index: 80; background: rgba(12,20,28,.82); padding: var(--space-3); place-items: center; }
.tpl-hub__lightbox.is-open { display: grid; }
.tpl-hub__lightbox-panel { position: relative; background: var(--c-surface); border-radius: var(--r-lg); padding: var(--space-3); max-width: min(100%, 60rem); }
.tpl-hub__lightbox-panel img { display: block; width: 100%; height: auto; border-radius: var(--r-md); }
.tpl-hub__lightbox-close { position: absolute; inset-block-start: .35rem; inset-inline-end: .5rem; background: none; border: 0; font-size: var(--fs-3); line-height: 1; cursor: pointer; color: var(--c-ink); }
.tpl-hub__lightbox-caption { margin-block-start: var(--space-2); font-size: var(--fs-0); color: var(--c-ink-2); }
.tpl-hub__price { font-family: var(--f-display); font-size: var(--fs-3); color: var(--c-brand); margin-block-end: var(--space-1); }
.tpl-hub__meta { font-size: var(--fs-0); color: var(--c-muted); margin-block-end: var(--space-1); }
.tpl-hub__badges { display: flex; flex-wrap: wrap; gap: .35rem; margin-block-end: var(--space-1); }
.tpl-hub__card-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.tpl-hub__iso { font-size: var(--fs-0); color: var(--c-muted); font-weight: 600; margin-inline-start: auto; }
.tpl-hub .ds-prose { max-width: none; }
.tpl-hub__prose { max-width: var(--measure); }
.tpl-hub__prose h2 { margin-block-start: var(--space-4); }
.tpl-hub__faq details { background: var(--c-surface); border-radius: var(--r-sm); box-shadow: var(--shadow-1); padding: var(--space-1) var(--space-2); margin-block-end: .5rem; }
.tpl-hub__faq summary { cursor: pointer; font-family: var(--f-display); font-size: var(--fs-2); color: var(--c-brand); padding-block: var(--space-1); }
.tpl-hub__reviewed { font-size: var(--fs-0); color: var(--c-muted); margin-block-start: var(--space-2); }

/* detail pages */
.tpl-detail__body { display: block; }
.tpl-detail__main { min-width: 0; }
.tpl-detail__layout--full { grid-template-columns: minmax(0, 1fr); }
.tpl-detail__facts > div { min-width: 0; }
.tpl-detail__eyebrow { display: flex; align-items: center; gap: .4rem; font-size: var(--fs-0); font-weight: 600; letter-spacing: .04em; color: var(--c-muted); margin-block-end: var(--space-1); }
.ds-hero .tpl-detail__eyebrow { color: #fff; }
.tpl-detail__section { border-block-end: 1px solid var(--c-line); margin-block-end: var(--space-3); padding-block-end: var(--space-3); }
.tpl-detail__section:last-of-type { border-block-end: 0; padding-block-end: 0; }
.tpl-detail__section > h2 { margin-block-start: 0; }
.tpl-detail__section > h2 .ds-icon { margin-inline-end: .4rem; vertical-align: middle; }
.tpl-detail__lead { font-size: var(--fs-2); color: var(--c-ink-2); }
.tpl-detail__statement { font-size: var(--fs-2); font-weight: 600; }
.tpl-detail__list { display: grid; gap: .6rem; padding-inline-start: 1.25rem; margin-block: var(--space-2) 0; }
.tpl-detail__list li { line-height: 1.85; }
.tpl-detail__checklist { list-style: none; display: grid; gap: var(--space-1); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); padding: 0; margin-block: var(--space-2) 0; }
.tpl-detail__checklist li { display: flex; align-items: start; gap: .5rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); padding: var(--space-2); background: var(--c-surface); }
.tpl-detail__checkmark { color: var(--c-success); flex: none; margin-block-start: .15rem; }
.tpl-detail__grid { display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); margin-block-start: var(--space-2); }
.tpl-detail__grid--wide { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.tpl-detail__figure { margin: 0; }
.tpl-detail__figure img { display: block; width: 100%; height: auto; border-radius: var(--r-md); }
.tpl-detail__figure figcaption { font-size: var(--fs-0); color: var(--c-ink-2); margin-block-start: var(--space-1); }
.tpl-detail__note { margin-block-start: var(--space-2); }
.tpl-detail__badges { display: flex; flex-wrap: wrap; gap: .35rem; margin-block: var(--space-2); }
.tpl-detail__links { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block-start: var(--space-2); }
.tpl-detail__faq > h2 { margin-block-start: 0; }
.tpl-detail__side-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-1); }
.tpl-detail__side-list a { display: flex; align-items: center; gap: .4rem; text-decoration: none; color: var(--c-brand); overflow-wrap: anywhere; }
.tpl-detail__side-note { font-size: var(--fs-0); color: var(--c-muted); margin: 0; }
.tpl-detail__price { font-family: var(--f-display); font-size: var(--fs-3); color: var(--c-brand); margin-block: var(--space-1); }
.tpl-detail__steps { list-style: none; margin: var(--space-2) 0 0; padding: 0; display: grid; gap: var(--space-2); grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); counter-reset: none; }
.tpl-detail__step { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-2); align-items: start; }
.tpl-detail__step > span { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--c-brand); color: #fff; font-family: var(--f-display); flex: none; }
.tpl-detail .ds-side .ds-btn { width: 100%; }
.m360-source-list { display: grid; gap: var(--space-2); margin-block-start: var(--space-2); }
.m360-source-list a { display: grid; gap: .2rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); padding: var(--space-2); background: var(--c-surface); text-decoration: none; color: var(--c-ink); overflow-wrap: anywhere; }
.m360-source-list a:hover { border-color: var(--c-brand-2); }
.m360-source-list a span { font-size: var(--fs-0); color: var(--c-muted); }
.tpl-detail__panel { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md); padding: var(--space-3); box-shadow: var(--shadow-1); min-width: 0; }
.tpl-detail__panel > h3, .tpl-detail__panel > h4 { margin-block-start: 0; }
.m360-service-badge { display: inline-flex; align-items: center; gap: .3rem; }
.m360-journey-stages { display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); margin-block-start: var(--space-3); }
.m360-journey-stages > article { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-2); border: 1px solid var(--c-line); border-radius: var(--r-md); padding: var(--space-3); background: var(--c-surface); }
.m360-journey-stages > article > span { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--c-brand); color: #fff; font-family: var(--f-display); }
.m360-journey-stages > article h3 { margin-block-start: 0; font-size: var(--fs-2); }
.m360-journey-boundary { font-size: var(--fs-0); color: var(--c-muted); margin-block-end: 0; }
.m360-journey-links { display: grid; gap: var(--space-1); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); margin-block-start: var(--space-2); }
.m360-journey-links a { display: block; border: 1px solid var(--c-line); border-radius: var(--r-sm); padding: var(--space-1) var(--space-2); text-decoration: none; color: var(--c-brand); overflow-wrap: anywhere; }
.m360-journey-links a:hover { border-color: var(--c-brand-2); }
.m360-journey-hero-headline { font-family: var(--f-display); font-size: var(--fs-3); color: #fff; margin-block-end: var(--space-1); }
.m360-journey-cta { display: block; margin-block-start: var(--space-4); background: var(--c-surface-2); border-radius: var(--r-md); padding: var(--space-3); }
.m360-journey-cta h2 { margin-block-start: 0; }

/* carousel compat */
.carousel { position: relative; }
.carousel-inner { position: relative; overflow: hidden; width: 100%; }
.carousel-item { display: none; position: relative; width: 100%; transition: transform .5s ease; }
.carousel-item.active, .carousel-item-next, .carousel-item-prev { display: block; }
.carousel-fade .carousel-item { opacity: 0; transition: opacity .4s ease; }
.carousel-fade .carousel-item.active { opacity: 1; }
.carousel-control-prev, .carousel-control-next { position: absolute; inset-block: 0; z-index: 2; display: flex; align-items: center; justify-content: center; width: 15%; padding: 0; border: 0; background: none; color: #fff; opacity: .8; cursor: pointer; }
.carousel-control-prev { inset-inline-start: 0; }
.carousel-control-next { inset-inline-end: 0; }
.carousel-control-prev:hover, .carousel-control-next:hover, .carousel-control-prev:focus-visible, .carousel-control-next:focus-visible { opacity: 1; }
.carousel-control-prev > *, .carousel-control-next > * { display: inline-grid; place-items: center; background: rgba(7, 23, 40, .55); border-radius: 50%; padding: .5rem; }
.carousel-control-prev-icon, .carousel-control-next-icon { display: inline-block; width: 1.25rem; height: 1.25rem; background-repeat: no-repeat; background-position: 50%; background-size: 100% 100%; }
.carousel-control-prev-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); }
.carousel-control-next-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); }
[dir="rtl"] .carousel-control-prev-icon, [dir="rtl"] .carousel-control-next-icon { transform: scaleX(-1); }
.carousel-indicators { position: absolute; inset-inline: 15%; inset-block-end: .75rem; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.carousel-indicators button, .carousel-indicators [data-bs-slide-to] { width: 2rem; height: .4rem; padding: 0; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .55); cursor: pointer; }
.carousel-indicators .active { background: #fff; }

/* student visa */
.student-region-page { display: block; }
.student-visa-hero-collage { display: grid; gap: var(--space-2); }
.student-visa-hero-collage figcaption { color: rgba(255, 255, 255, .85); }
.student-visa-panel { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md); padding: var(--space-3); box-shadow: var(--shadow-1); }
.student-visa-detail-panel { margin-block-end: var(--space-2); }
.student-visa-section-eyebrow { display: flex; align-items: center; gap: .4rem; font-size: var(--fs-0); font-weight: 600; letter-spacing: .04em; color: var(--c-muted); margin-block-end: var(--space-1); }
.student-visa-section-heading { margin-block-start: 0; }
.student-visa-section-heading .ds-icon { margin-inline-end: .4rem; vertical-align: middle; }
.student-visa-gallery-card { border: 1px solid var(--c-line); border-radius: var(--r-md); overflow: hidden; background: var(--c-surface); }
.student-visa-gallery-card.carousel .carousel-item img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.student-visa-gallery-caption { position: static; display: flex; align-items: center; justify-content: center; min-height: 5.5rem; margin: 0; padding: var(--space-2) var(--space-3); border-radius: 0; background: var(--c-brand); color: #fff; text-align: center; }
.student-visa-gallery-caption p { margin: 0; }
.student-visa-gallery-card.carousel .carousel-control-prev, .student-visa-gallery-card.carousel .carousel-control-next { inset-block-end: 5.5rem; }
.student-visa-gallery-card.carousel .carousel-indicators { inset-block-end: 6.25rem; }
.student-visa-university-card img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.student-visa-summary-item { display: flex; align-items: start; gap: var(--space-2); border: 1px solid var(--c-line); border-radius: var(--r-sm); padding: var(--space-2); background: var(--c-surface); min-width: 0; }
.student-visa-summary-number { display: grid; place-items: center; flex: none; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--c-brand); color: #fff; font-family: var(--f-display); font-size: var(--fs-0); }
.student-visa-check-badge { display: grid; place-items: center; flex: none; width: 1.75rem; height: 1.75rem; border-radius: 50%; color: var(--c-success); background: var(--c-surface-2); }
.student-visa-sidebar-card { display: block; }
.student-visa-price-box { border: 1px solid var(--c-line); border-radius: var(--r-sm); padding: var(--space-2); background: var(--c-surface-2); }

/* tool pages */
.tpl-tool__shell { display: block; }
.tpl-tool__meta { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: end; }
.tpl-tool__intro { display: grid; gap: var(--space-3); margin-block-end: var(--space-3); }
.tpl-tool__workspace > :last-child, .tpl-tool__results > :last-child { margin-block-end: 0; }
.tpl-tool__results--empty { display: none; }
.tpl-tool__layout--full { grid-template-columns: minmax(0, 1fr); }
.tpl-tool__results .ds-grid { gap: var(--space-2); }
.tpl-tool__visual { margin-block-end: var(--space-3); }
.tpl-tool__visual img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: var(--r-md); }
.tpl-tool__facts { display: grid; gap: .25rem; margin: 0; }
.tpl-tool__facts > div { display: grid; grid-template-columns: minmax(8rem, .5fr) 1fr; gap: var(--space-2); padding-block: .5rem; border-block-end: 1px solid var(--c-line); }
.tpl-tool__facts dt { font-weight: 600; color: var(--c-muted); }
.tpl-tool .ds-hero__eyebrow { color: var(--c-muted); }
.tpl-tool__facts dd { margin: 0; overflow-wrap: anywhere; }
.tpl-tool__results.world-navigator { padding: 0; }

/* smart start wizard */
.smart-start-shell { display: block; color: var(--c-ink); }
.smart-start-progress { display: grid; grid-template-columns: auto minmax(8rem, 1fr) auto; align-items: center; gap: .75rem; margin-block-end: var(--space-3); font-size: .78rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); }
.smart-start-progress__track { height: .55rem; border-radius: 999px; background: var(--c-surface-2); overflow: hidden; }
.smart-start-progress__track span { display: block; width: 5.55%; height: 100%; background: linear-gradient(90deg, var(--c-brand-2), var(--c-accent)); transition: width .25s ease; }
.smart-start-card { display: flex; flex-direction: column; min-height: 34rem; }
.smart-start-step { border: 0; margin: 0; padding: 0; }
.smart-start-step legend, .smart-start-summary h2 { font-family: var(--f-display); font-size: var(--fs-4); font-weight: 600; line-height: 1.2; color: var(--c-brand); margin-block-end: var(--space-3); }
.smart-start-options { display: grid; gap: .75rem; }
.smart-start-options--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.smart-start-options label { display: block; position: relative; }
.smart-start-options input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 1; }
.smart-start-options span { display: block; padding: 1rem 1.15rem; border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-surface); font-weight: 600; cursor: pointer; pointer-events: none; }
.smart-start-options input:checked + span { background: var(--c-brand); border-color: var(--c-brand); color: #fff; }
.smart-start-options input:focus-visible + span, .smart-start-field :is(input, select):focus-visible, .world-navigator__canvas:focus-visible, .world-navigator button:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 3px; }
.world-navigator svg [tabindex]:focus { outline: none; }
.smart-start-field, .smart-start-verify label { display: grid; gap: .4rem; margin-block-end: var(--space-2); font-size: var(--fs-0); font-weight: 600; }
.smart-start-field :is(input, select), .smart-start-verify input { min-height: 3.15rem; padding: .7rem .9rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); background: var(--c-surface); color: var(--c-ink); font: inherit; }
.smart-start-navigation { display: flex; justify-content: space-between; gap: .75rem; margin-block-start: auto; padding-block-start: var(--space-4); }
.smart-start-verify { display: grid; grid-template-columns: 1fr auto; gap: .5rem; margin-block-start: var(--space-2); padding-block-start: var(--space-2); border-block-start: 1px solid var(--c-line); }
.smart-start-result { margin-block-end: var(--space-2); padding: var(--space-2); border-inline-start: .35rem solid var(--c-accent); border-radius: var(--r-sm); background: var(--c-surface-2); }

/* embedded world navigator */
.embedded-world-navigator { display: grid; grid-template-columns: minmax(18rem, .65fr) minmax(0, 1.35fr); gap: var(--space-2); margin-block-start: var(--space-3); }
.embedded-world-navigator__controls { display: grid; gap: .75rem; }
.embedded-world-navigator__controls fieldset { padding: var(--space-2); border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-surface); }
.embedded-world-navigator__controls fieldset.is-active { border-color: var(--c-accent); box-shadow: 0 0 0 3px var(--c-surface-2); }
.embedded-world-navigator__controls legend { float: none; width: auto; margin: 0 0 .65rem; font-size: var(--fs-1); font-weight: 600; }
.embedded-world-navigator__controls label { display: grid; gap: .25rem; margin-block-start: .5rem; font-size: .72rem; font-weight: 600; }
.embedded-world-navigator__controls select { min-height: 2.75rem; padding: .45rem .65rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); background: var(--c-surface); color: var(--c-ink); font: inherit; }
.embedded-world-navigator > .world-navigator { position: relative; inset-block-start: auto; }
.embedded-world-navigator > [data-smart-start-continuation] { grid-column: 1 / -1; justify-self: start; }
@media (max-width: 991.98px) { .embedded-world-navigator { grid-template-columns: 1fr; } }

/* world navigator */
.world-navigator { position: sticky; inset-block-start: 6.5rem; align-self: start; overflow: hidden; border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-surface); box-shadow: var(--shadow-1); }
body.m360-map-open .site-header { pointer-events: none; }
body.m360-map-open .world-navigator { pointer-events: auto; }
body.m360-map-open { overflow: hidden; }
.world-navigator__heading { display: flex; justify-content: space-between; align-items: flex-start; padding: var(--space-2) var(--space-3); background: var(--c-brand); color: #fff; }
.world-navigator__heading span { font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.world-navigator__heading h2, .world-navigator__heading h3 { margin: .25rem 0 0; font-size: var(--fs-2); color: #fff; }
.world-navigator__heading button { display: none; border: 0; background: transparent; color: #fff; font-size: 1.7rem; line-height: 1; }
.world-navigator__help { margin: 0; padding: .75rem var(--space-2); font-size: var(--fs-0); color: var(--c-muted); }
.world-navigator__toolbar { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .5rem; padding: .55rem .75rem; border-block-end: 1px solid var(--c-line); }
.embedded-world-navigator .world-navigator__toolbar { grid-template-columns: auto 1fr auto auto auto auto; }
.world-navigator__toolbar button, .world-navigator__regions button { min-height: 2.25rem; padding: .35rem .6rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); background: var(--c-surface); color: var(--c-brand); font: inherit; font-size: .78rem; font-weight: 600; }
.world-navigator__toolbar [data-map-search] { min-width: 0; padding: .35rem .6rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); background: var(--c-surface); color: var(--c-ink); font: inherit; font-size: .78rem; }
.world-navigator__breadcrumbs { min-width: 0; font-size: .78rem; font-weight: 600; }
.world-navigator__breadcrumbs button { min-height: auto; padding: 0; border: 0; }
.world-navigator__zoom { display: flex; gap: .3rem; }
.world-navigator__zoom button { min-width: 2.25rem; font-size: 1rem; }
.world-navigator__canvas { position: relative; min-height: 22rem; overflow: hidden; touch-action: none; user-select: none; background: radial-gradient(circle at center, var(--c-surface-2), var(--c-line)); }
.world-navigator__canvas svg { display: block; width: 100%; height: 100%; min-height: 22rem; }
.world-navigator__canvas path { fill: var(--c-surface); stroke: var(--c-muted); stroke-width: .6; vector-effect: non-scaling-stroke; }
.world-navigator__canvas path.is-selectable:hover, .world-navigator__canvas path.is-selectable:focus, .world-navigator__canvas path.is-selected { fill: var(--c-brand-2); stroke: var(--c-brand); stroke-width: 1.5; }
.world-navigator__country-fallback-layer circle { fill: var(--c-surface); stroke: var(--c-brand-2); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.world-navigator__country-fallback-layer [data-country-fallback] { cursor: pointer; outline: none; }
.world-navigator__country-fallback-layer [data-country-fallback]:hover circle, .world-navigator__country-fallback-layer [data-country-fallback]:focus circle, .world-navigator__country-fallback-layer [data-country-fallback].is-selected circle { fill: var(--c-brand-2); stroke: var(--c-brand); stroke-width: 2; }
.world-navigator__country-fallback-layer [data-country-fallback]:focus-visible circle { stroke: var(--c-brand); stroke-width: 3; }
.world-navigator__country-fallback-layer [data-country-fallback-label] { fill: var(--c-brand); font-size: 7px; font-weight: 700; pointer-events: none; text-anchor: middle; dominant-baseline: central; }
.world-navigator__subdivision-layer path { fill: var(--c-surface); stroke: var(--c-brand-2); stroke-width: 1; }
.world-navigator__subdivision-layer path:hover, .world-navigator__subdivision-layer path:focus, .world-navigator__subdivision-layer path.is-selected { fill: var(--c-warning); stroke: var(--c-brand); stroke-width: 1.8; }
.world-navigator__city-layer circle { fill: var(--c-danger); stroke: #fff; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.world-navigator__city-layer circle:hover, .world-navigator__city-layer circle:focus, .world-navigator__city-layer circle.is-selected { fill: var(--c-brand); outline: none; r: 5; }
.world-navigator__city-layer [data-city-cluster] circle { fill: var(--c-brand); stroke: #fff; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.world-navigator__canvas .world-navigator__city-layer circle.world-navigator__city-hit { fill: transparent; stroke: none; pointer-events: all; }
.world-navigator__city-layer [data-city-cluster] text { fill: #fff; font-size: 5px; font-weight: 700; pointer-events: none; }
.world-navigator__city-layer [data-city-cluster]:focus circle, .world-navigator__city-layer [data-city-cluster]:hover circle, .world-navigator__city-layer [data-city-cluster].is-selected circle { fill: var(--c-danger); outline: none; }
.world-navigator__canvas path.world-navigator__route-arc { fill: none; stroke: var(--c-danger); stroke-dasharray: 8 5; stroke-width: 2.5; }
.world-navigator__regions { max-height: 9rem; padding: .7rem .85rem; overflow: auto; border-block-start: 1px solid var(--c-line); }
.world-navigator__regions strong { display: block; margin-block-end: .55rem; font-size: .78rem; }
.world-navigator__regions div { display: flex; flex-wrap: wrap; gap: .4rem; }
.world-navigator__fallback { padding: .7rem .85rem; border-block-start: 1px solid var(--c-line); }
.world-navigator__fallback-note { margin: 0 0 .55rem; font-size: .78rem; line-height: 1.6; color: var(--c-ink-2); }
.world-navigator__fallback summary { font-size: .78rem; font-weight: 600; color: var(--c-brand); cursor: pointer; }
.world-navigator__fallback-options { display: flex; flex-wrap: wrap; gap: .4rem; margin-block-start: .55rem; max-height: 9rem; overflow: auto; }
.world-navigator__fallback-options button { padding: .35rem .55rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); background: var(--c-surface); color: var(--c-brand); font: inherit; font-size: .78rem; cursor: pointer; }
.world-navigator__fallback-options button:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
.world-navigator__tooltip { position: absolute; padding: .45rem .6rem; border-radius: var(--r-sm); background: var(--c-brand); color: #fff; font-size: .78rem; pointer-events: none; transform: translate(-50%, -120%); }
@media (max-width: 991px) {
    .world-navigator { position: fixed; inset: 0; z-index: 1100; height: 100dvh; min-height: 100dvh; border: 0; border-radius: 0; background: var(--c-surface); opacity: 0; pointer-events: none; transform: translateY(2rem); transition: opacity .2s ease, transform .2s ease; }
    .world-navigator.is-open { opacity: 1; pointer-events: auto; transform: none; }
    .world-navigator__heading button { display: block; }
    .world-navigator__canvas, .world-navigator__canvas svg { min-height: 56vh; }
    .world-navigator__regions { max-height: 15vh; }
}
@media (max-width: 575px) {
    .smart-start-progress { grid-template-columns: 1fr auto; }
    .smart-start-progress__track { grid-column: 1 / -1; grid-row: 2; }
    .smart-start-card { min-height: 31rem; }
    .smart-start-verify { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .smart-start-progress__track span, .world-navigator { transition: none; } }

/* immigration ecosystem pages */
.ecosystem-shell { color: var(--c-ink); background: var(--c-bg); overflow: hidden; }
.ecosystem-hero { position: relative; display: grid; place-items: center; isolation: isolate; min-height: clamp(34rem, 76vh, 54rem); overflow: hidden; color: #fff; }
.ecosystem-hero > picture, .ecosystem-hero > img, .ecosystem-hero picture, .ecosystem-hero picture img { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; }
.ecosystem-hero__veil { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(5, 20, 37, .94) 0%, rgba(5, 20, 37, .73) 48%, rgba(5, 20, 37, .18) 100%), linear-gradient(0deg, rgba(8, 26, 42, .48), transparent 44%); }
[dir="rtl"] .ecosystem-hero__veil { background: linear-gradient(-90deg, rgba(5, 20, 37, .94) 0%, rgba(5, 20, 37, .73) 48%, rgba(5, 20, 37, .18) 100%), linear-gradient(0deg, rgba(8, 26, 42, .48), transparent 44%); }
.ecosystem-hero__content { padding-block: 7rem 5rem; }
.ecosystem-hero__content > * { max-width: 47rem; }
.ecosystem-hero h1, .ecosystem-resource-hero h1 { margin: 0 0 1.35rem; color: #fff; font-size: var(--fs-5); line-height: 1.05; text-wrap: balance; }
.ecosystem-hero .ecosystem-kicker { color: #fff; }
.ecosystem-hero__content > p:not(.ecosystem-kicker) { font-size: var(--fs-2); line-height: 1.7; color: rgba(255, 255, 255, .85); }
.ecosystem-kicker { display: flex; align-items: center; gap: .7rem; margin-block-end: var(--space-2); font-size: .78rem; font-weight: 600; letter-spacing: .17em; text-transform: uppercase; }
.ecosystem-kicker::before { content: ""; width: 2.5rem; height: 2px; background: currentColor; opacity: .7; }
.ecosystem-kicker--preserve-case { letter-spacing: .04em; text-transform: none; }
.ecosystem-actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-block-start: var(--space-4); }
.ecosystem-section { position: relative; padding-block: var(--space-5); }
.ecosystem-section--ink { color: #fff; background: var(--c-brand); }
.ecosystem-section--ink h2, .ecosystem-section--ink h3 { color: #fff; }
.ecosystem-section--soft { background: var(--c-surface-2); }
.ecosystem-section__heading { max-width: 50rem; margin-block-end: var(--space-4); }
.ecosystem-section__heading h2, .ecosystem-resource-panel h2 { font-size: var(--fs-4); line-height: 1.15; }
.ecosystem-section__heading p:last-child { max-width: 42rem; font-size: var(--fs-2); line-height: 1.75; color: var(--c-ink-2); }
.ecosystem-section__heading--light p:last-child { color: rgba(255, 255, 255, .7); }
.ecosystem-theme--doccheck, .ecosystem-theme--mission-control, .ecosystem-theme--managed, .ecosystem-theme--global-counsel, .ecosystem-theme--smart-start { --eco-accent: var(--c-brand-2); }
.ecosystem-hero.ecosystem-theme--doccheck, .ecosystem-hero.ecosystem-theme--mission-control, .ecosystem-hero.ecosystem-theme--managed, .ecosystem-hero.ecosystem-theme--global-counsel, .ecosystem-hero.ecosystem-theme--smart-start { --eco-accent: var(--c-accent); }
.ecosystem-hero--service .ecosystem-kicker, .ecosystem-theme--smart-start .ecosystem-kicker, .ecosystem-theme--doccheck .ecosystem-kicker, .ecosystem-theme--mission-control .ecosystem-kicker, .ecosystem-theme--managed .ecosystem-kicker, .ecosystem-theme--global-counsel .ecosystem-kicker { color: var(--eco-accent, #fff); }
.ecosystem-responsibility-grid, .ecosystem-scope-grid, .ecosystem-price-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-2); }
.ecosystem-responsibility-grid article, .ecosystem-scope-grid article, .ecosystem-price-grid article { padding: var(--space-3); border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-surface); }
.ecosystem-responsibility-grid span, .ecosystem-price-grid span { font-size: .76rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: var(--c-brand-2); }
.ecosystem-responsibility-grid h2, .ecosystem-scope-grid h2 { margin: var(--space-3) 0 var(--space-2); font-size: var(--fs-3); }
.ecosystem-responsibility-grid p, .ecosystem-scope-grid p { line-height: 1.75; color: var(--c-ink-2); }
.ecosystem-scope-grid { grid-template-columns: repeat(3, 1fr); }
.ecosystem-scope-grid dl { margin: var(--space-3) 0 0; }
.ecosystem-scope-grid dl div { display: flex; justify-content: space-between; gap: var(--space-2); padding-block: .85rem; border-block-start: 1px solid var(--c-line); }
.ecosystem-scope-grid dd { margin: 0; color: var(--c-brand-2); font-weight: 600; text-align: end; }
.ecosystem-price-grid { grid-template-columns: repeat(3, 1fr); }
.ecosystem-price-grid article { display: grid; min-height: 14rem; align-content: space-between; }
.ecosystem-price-grid h3 { font-size: var(--fs-2); }
.ecosystem-price-grid strong { font-size: var(--fs-4); }
.ecosystem-resource-hero { position: relative; padding-block: clamp(8rem, 15vw, 14rem) var(--space-5); color: #fff; background: var(--c-brand); }
.ecosystem-resource-hero p:last-child { max-width: 50rem; font-size: var(--fs-2); line-height: 1.7; color: rgba(255, 255, 255, .72); }
.ecosystem-resource-hero h1, .ecosystem-resource-panel, .ecosystem-card, .ecosystem-panel { overflow-wrap: anywhere; }
.ecosystem-panel { padding: var(--space-3); border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-surface); box-shadow: var(--shadow-1); }
.ecosystem-resource-panel { display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(2rem, 7vw, 7rem); align-items: center; padding: var(--space-4); border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-surface); box-shadow: var(--shadow-2); }
.ecosystem-availability-note { padding: var(--space-3); border-inline-start: 4px solid var(--c-accent); background: var(--c-surface-2); }
@media (max-width: 991.98px) { .ecosystem-scope-grid, .ecosystem-price-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767.98px) {
    .ecosystem-hero { min-height: 42rem; align-items: end; }
    .ecosystem-hero__content { padding-block: 8rem var(--space-5); }
    .ecosystem-hero h1, .ecosystem-resource-hero h1 { font-size: clamp(2.25rem, 12vw, var(--fs-5)); }
    .ecosystem-resource-panel { grid-template-columns: 1fr; }
    .ecosystem-responsibility-grid, .ecosystem-scope-grid, .ecosystem-price-grid { grid-template-columns: 1fr; }
}

/* public document samples */
.sample-safety-banner { display: flex; justify-content: space-between; gap: var(--space-2); padding: var(--space-2) var(--space-3); border: 2px solid var(--c-danger); color: var(--c-danger); background: var(--c-surface-2); font-weight: 700; }
.sample-document { position: relative; max-width: 900px; margin: var(--space-4) auto; padding: var(--space-4); overflow: hidden; border: 1px solid var(--c-line); color: var(--c-ink); background: var(--c-surface); box-shadow: var(--shadow-2); }
.sample-watermark { position: absolute; inset: 40% -20%; z-index: 0; transform: rotate(-24deg); color: rgba(126, 17, 17, .6); font-size: clamp(3rem, 12vw, 8rem); font-weight: 700; text-align: center; pointer-events: none; }
.sample-document > * { position: relative; z-index: 1; }
.sample-document__verification-url { overflow-wrap: anywhere; unicode-bidi: isolate; }
.sample-document__checksum { display: inline-block; max-width: 100%; overflow-wrap: anywhere; unicode-bidi: isolate; word-break: break-all; }
.sample-document__fields > div { display: grid; grid-template-columns: minmax(10rem, .4fr) 1fr; gap: var(--space-2); padding: var(--space-2) 0; border-block-end: 1px solid var(--c-line); }

/* demo artifacts */
.demo-artifact { position: relative; overflow: hidden; border-inline-start: 5px solid var(--c-brand-2); }
.demo-artifact--map { border-inline-start-color: var(--c-info); }
.demo-artifact--graph { border-inline-start-color: var(--c-warning); }
.demo-artifact--financial { border-inline-start-color: var(--c-success); }
.demo-artifact--timeline { border-inline-start-color: var(--c-brand); }
.demo-artifact-watermark { position: absolute; inset-block-start: 50%; inset-inline-start: 50%; z-index: 0; color: var(--c-danger); font-family: var(--f-display); font-size: var(--fs-5); font-weight: 600; opacity: .1; pointer-events: none; transform: translate(-50%, -50%) rotate(-24deg); }
.demo-artifact > *:not(.demo-artifact-watermark) { position: relative; z-index: 1; }
.demo-artifact-table th:first-child { width: 30%; }
.demo-artifact-table td { overflow-wrap: anywhere; }
@media (max-width: 575.98px) { .demo-artifact-table th, .demo-artifact-table td { min-width: 9rem; } }

/* service experiences */
.service-experience .ecosystem-panel { border-radius: var(--r-md); }
.document-page { display: grid; gap: var(--space-2); min-height: 25rem; padding: var(--space-4); border: 1px solid var(--c-line); background: var(--c-surface); box-shadow: var(--shadow-1); }
.document-page > span { font-size: .72rem; font-weight: 600; letter-spacing: .1em; color: var(--c-brand-2); }
.document-page mark { padding: .65rem; border-inline-start: 4px solid var(--c-danger); }
.issue-ledger, .comparison-grid, .managed-lanes, .counsel-gates { display: grid; gap: var(--space-2); }
.issue-ledger { grid-template-columns: repeat(3, 1fr); }
.issue-ledger article, .comparison-grid article, .managed-lanes article, .counsel-gates article { padding: var(--space-2); border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-surface); }
.issue-ledger b, .issue-ledger span { display: block; }
.comparison-grid, .managed-lanes { grid-template-columns: repeat(3, 1fr); margin-block-start: var(--space-2); }
.mission-console { display: grid; grid-template-columns: .8fr 1.4fr .8fr; gap: var(--space-2); padding: var(--space-3); border: 1px solid var(--c-brand-2); border-radius: var(--r-md); background: var(--c-brand); color: #fff; }
.mission-console > * { padding: var(--space-2); border-radius: var(--r-sm); background: rgba(255, 255, 255, .08); }
.mission-console li { margin: .6rem 0; }
.counsel-gates { grid-template-columns: repeat(2, 1fr); }
.service-experience--counsel .counsel-gates article { border-color: var(--c-accent); background: var(--c-surface-2); }
@media (max-width: 767.98px) { .issue-ledger, .comparison-grid, .managed-lanes, .mission-console, .counsel-gates { grid-template-columns: 1fr; } }

/* 21 utilities */
.ds-mt-0 { margin-block-start: 0; } .ds-mb-0 { margin-block-end: 0; } .ds-text-muted { color: var(--c-muted); } .ds-text-center { text-align: center; } .ds-flow > * + * { margin-block-start: var(--space-2); } .ds-cluster { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; }

/* The layout pins the spinner markup for E2B, so the themes have to be what
   keeps it off the page. Its `d-flex` class is answered by a forced
   `display: flex` from bootstrap-grid that no plain `display` can beat, so
   the spinner is taken out of flow and hidden the way the retired Travela
   stylesheet did (Bootstrap used to supply the `position-fixed` half). */
#spinner { position: fixed; inset-block-start: 0; inset-inline-start: 0; visibility: hidden; opacity: 0; }
.sr-only { position: absolute; inset-inline-start: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* cookie consent shell */
.cookie-consent-shell { display: none; position: fixed; inset-block-end: 0; inset-inline: 0; z-index: 60; background: var(--c-surface); border-block-start: 1px solid var(--c-line); box-shadow: var(--shadow-2); padding: var(--space-3); }
.cookie-consent-shell.is-visible { display: block; }
.cookie-consent-card { display: block; }
.cookie-consent-inner { display: block; }
.cookie-consent-kicker { display: inline-flex; align-items: center; gap: .4rem; color: var(--c-brand); font-weight: 600; font-size: var(--fs-0); margin-block-end: .35rem; }
.cookie-consent-title { font-size: var(--fs-2); margin-block-end: .35rem; }
.cookie-consent-body { color: var(--c-ink-2); font-size: var(--fs-0); margin-block-end: var(--space-2); }
.cookie-consent-actions { display: flex; flex-wrap: wrap; gap: var(--space-1); }
.cookie-consent-options { display: none; margin-block-start: var(--space-2); border-block-start: 1px solid var(--c-line); padding-block-start: var(--space-2); }
.cookie-consent-options.is-open { display: block; }
.cookie-consent-option { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); padding-block: .5rem; border-block-end: 1px solid var(--c-line); }
.cookie-consent-option:last-child { border-block-end: 0; }
.cookie-toggle { position: relative; display: inline-flex; align-items: center; width: 2.4rem; height: 1.4rem; }
.cookie-toggle input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.cookie-toggle span { position: absolute; inset: 0; background: var(--c-line); border-radius: 999px; transition: background .15s ease; }
.cookie-toggle input:checked + span { background: var(--c-brand-2); }
@media (min-width: 768px) {
    .cookie-consent-shell { inset-inline-start: auto; inset-inline-end: 1rem; inset-block-end: 1rem; max-width: 560px; border: 1px solid var(--c-line); border-radius: var(--r-lg); }
}

/* legacy topbar utilities */
.me-2 { margin-inline-end: .5rem; } .me-3 { margin-inline-end: 1rem; }
.btn-sm { padding: .35rem .65rem; font-size: var(--fs-0); }
.rounded-circle { border-radius: 50%; } .rounded-pill { border-radius: 999px; }
.d-inline-flex { display: inline-flex; } .align-items-center { align-items: center; } .text-center { text-align: center; }
.dropdown-divider { border: 0; border-block-start: 1px solid var(--c-line); margin-block: .5rem; }
.dropdown-item { display: block; padding: .45rem .8rem; color: var(--c-ink); text-decoration: none; background: none; border: 0; width: 100%; text-align: start; }
.dropdown-item:hover { background: var(--c-surface-2); }
.nav-item { display: block; }
.container-fluid { width: 100%; padding-inline: var(--gutter); margin-inline: auto; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; padding: .7rem 1.25rem; border-radius: var(--r-sm); font-weight: 600; text-decoration: none; cursor: pointer; }
.btn-primary { background: var(--c-accent); color: var(--c-accent-ink); }
.btn-outline-primary { background: transparent; border: 1px solid currentColor; color: var(--c-brand); }
.btn-outline-light { background: transparent; border: 1px solid rgba(255,255,255,.6); color: #fff; }
.btn-sm-square { width: 2.25rem; height: 2.25rem; padding: 0; display: inline-grid; place-items: center; }
.navbar-toggler { background: none; border: 1px solid rgba(255,255,255,.3); border-radius: var(--r-sm); color: #fff; padding: .4rem .6rem; position: relative; }
.dropdown-toggle::after { display: none; }
@media (min-width: 992px) { .ms-lg-auto { margin-inline-start: auto; } }
.d-flex { display: flex; }

/* back to top (ported from the retired Travela stylesheet; ds.js toggles is-visible) */
.back-to-top { position: fixed; inset-inline-end: 2rem; inset-block-end: 2rem; z-index: 55; display: none; inline-size: 2.75rem; block-size: 2.75rem; padding: 0; }
.back-to-top.is-visible { display: inline-flex; }

/* the legacy .btn-* rules above are brand-coloured and outrank .ds-topbar__cta,
   which sinks the language trigger and both auth controls into the topbar. */
.ds-topbar .ds-topbar__cta { background: var(--c-accent); color: var(--c-accent-ink); }
.ds-topbar .btn-outline-primary, .ds-topbar .btn-outline-light { color: #fff; border-color: rgba(255,255,255,.6); background: transparent; }

/* 22 rtl adjustments */
[dir="rtl"] .ds-breadcrumb__item + .ds-breadcrumb__item::before { content: "\\"; }
[dir="rtl"] .ds-steps--horizontal .ds-steps__item:not(:last-child)::after { inset-inline-start: 2.6rem; }
[dir="rtl"] .ds-hero__eyebrow, [dir="rtl"] .ds-card__eyebrow { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .ds-field__control { direction: rtl; text-align: start; }
[dir="ltr"] .ds-field__control { direction: ltr; text-align: start; }
/* the wordmark stays Latin (dir="ltr" on the link) but the mark must sit on the page-start side, so RTL pages flip the flex order */
html[dir="rtl"] .localized-brand { flex-direction: row-reverse; }

/* 23 print */
@media print { .ds-topbar, .ds-footer, .ds-cta, .ds-toc, .ds-hero::after, .cookie-consent-shell { display: none; } body { background: #fff; color: #000; } .ds-card, .ds-side { box-shadow: none; } a::after { content: " (" attr(href) ")"; font-size: .8em; } }

/* 24 FusionPointAI office directory */
.ds-office-summary { display: grid; gap: var(--space-2); grid-template-columns: repeat(3, minmax(0, 1fr)); margin-block-start: var(--space-3); }
.ds-office-filters { display: grid; gap: var(--space-2); }
.ds-office-pills { display: flex; flex-wrap: wrap; gap: .5rem; }
.ds-office-pill { min-block-size: 2.5rem; }
.ds-office-pill.is-active { background: var(--c-brand); color: var(--c-brand-ink, #fff); }
.ds-office-search { display: block; max-inline-size: 32rem; }
.ds-office-search input { box-sizing: border-box; inline-size: 100%; min-block-size: 2.75rem; padding-inline: .85rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); background: var(--c-surface); color: var(--c-ink); }
.ds-office-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ds-office-card { min-inline-size: 0; display: flex; flex-direction: column; gap: .75rem; padding: var(--space-3); border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-surface); box-shadow: var(--shadow-1); }
.ds-office-card__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.ds-office-card__city { margin: 0; overflow-wrap: anywhere; }
.ds-office-card__country, .ds-office-card__address, .ds-office-card__phone { margin: 0; }
.ds-office-card__country { display: flex; align-items: center; gap: .35rem; color: var(--c-muted); }
.ds-office-card__address { overflow-wrap: anywhere; line-height: 1.55; }
.ds-office-card__phone { display: flex; flex-wrap: wrap; gap: .35rem; }
.ds-office-card__phone a { direction: ltr; unicode-bidi: isolate; }
.ds-office-card__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-block-start: auto; }
.ds-office-card__actions .ds-btn { min-block-size: 2.5rem; padding-inline: .75rem; }
.ds-office-count { color: var(--c-muted); font-size: .75em; font-weight: 500; }
.ds-office-empty { padding-block: var(--space-4); text-align: center; }
.ds-office-card[hidden], .ds-office-region[hidden], .ds-office-empty[hidden] { display: none; }
@media (max-width: 991px) { .ds-office-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ds-office-summary { grid-template-columns: 1fr; } .ds-office-grid { grid-template-columns: minmax(0, 1fr); } .ds-office-card__actions { flex-direction: column; align-items: stretch; } }

/* Application route workspace */
.immigration-application-route-page .tpl-utility__layout { grid-template-columns: minmax(0, 1fr); }
.immigration-application-route-page .tpl-utility__brand { display: none; }
.immigration-application-route-page .tpl-utility__form { align-items: stretch; padding-block: var(--space-4); }
.immigration-application-route-page .tpl-utility__card { width: min(100%, 1440px); }
.immigration-route-workspace { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); gap: var(--space-3); align-items: start; }
.immigration-route-workspace__map { min-width: 0; }
.immigration-route-workspace__map .embedded-world-navigator { display: block; margin-block-start: 0; }
.immigration-route-workspace__map .embedded-world-navigator__controls { display: none; }
.immigration-route-workspace__map .world-navigator { position: relative; inset-block-start: auto; }
.immigration-route-workspace__map .world-navigator__canvas, .immigration-route-workspace__map .world-navigator__canvas svg { min-height: min(58vh, 38rem); }
.immigration-route-workspace__selection { display: grid; gap: var(--space-2); }
@media (max-width: 991px) { .immigration-route-workspace { grid-template-columns: minmax(0, 1fr); } .immigration-route-workspace__map { order: 2; } .immigration-route-workspace__selection { order: 1; } }
