/* JET SET GLOBAL — site styles
   Palette: ink on warm ivory, one brass accent. Serif (Cormorant Garamond) for English headings,
   DM Sans for text, JetBrains Mono for prices and aircraft figures. Arabic and Chinese keep their
   own sans fonts throughout. Logical properties throughout for Arabic (RTL). */

:root {
  --ink: #121212;
  --ink-2: #2B2925;
  --ink-3: #403C36;
  --gold: #947B53;        /* brass: fills, dots, rules. Not for small text */
  --gold-hover: #A88E64;
  --gold-text: #7A6442;   /* brass dark enough for text on ivory (5.1:1) */
  --paper: #F7F3EE;       /* ivory page */
  --field: #FFFDF9;       /* form fields, a shade lighter than the page */
  --mist: #EFEAE2;
  --mist-2: #F2EEE7;
  --line: #DCD5C9;
  --line-strong: #8C8476; /* field borders: 3:1 against ivory */
  --slate: #5A564E;
  --danger: #A33A2F;
  --ok: #2F6E52;

  --font: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-ar: 'IBM Plex Sans Arabic', 'DM Sans', system-ui, sans-serif;
  --font-zh: 'DM Sans', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Noto Sans SC', sans-serif;
  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  --step--1: 0.875rem;
  --step-0: 1.0625rem;
  --step-1: 1.25rem;
  --step-2: 1.5625rem;
  --step-3: 1.95rem;
  --step-4: 2.45rem;
  --step-5: clamp(2.2rem, 4.6vw, 3.6rem);

  --gutter: clamp(16px, 4vw, 40px);
  --wrap: 1200px;
  --radius: 0;
  --radius-lg: 0;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font);
  font-size: var(--step-0);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
html[lang="ar"] body { font-family: var(--font-ar); line-height: 1.75; }
html[lang="zh"] body { font-family: var(--font-zh); line-height: 1.75; }

img { max-width: 100%; height: auto; display: block; }
a { color: var(--ink); text-decoration-color: var(--gold); text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; border-radius: 2px; }

h1, h2, h3 { line-height: 1.15; letter-spacing: -0.02em; font-weight: 600; margin: 0 0 0.5em; }
html[lang="ar"] h1, html[lang="ar"] h2, html[lang="ar"] h3,
html[lang="zh"] h1, html[lang="zh"] h2, html[lang="zh"] h3 { letter-spacing: 0; line-height: 1.35; }
h1 { font-size: var(--step-4); }
h2 { font-size: var(--step-3); }
h3 { font-size: var(--step-1); letter-spacing: -0.01em; }
p { margin: 0 0 1em; }
.num { font-variant-numeric: tabular-nums lining-nums; }

.wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.narrow { max-width: 760px; }
.lead { font-size: var(--step-1); color: var(--slate); max-width: 62ch; }
.muted { color: var(--slate); }
.small { font-size: var(--step--1); }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; inset-inline-start: 8px; top: -60px; background: var(--ink); color: #fff; padding: 8px 14px; z-index: 100; }
.skip:focus { top: 8px; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 46px; padding: 10px 22px;
  border-radius: var(--radius); border: 1px solid transparent;
  font: inherit; font-weight: 600; font-size: 1rem; line-height: 1.2;
  text-decoration: none; cursor: pointer; white-space: nowrap;
}
.btn-gold { background: var(--gold); color: var(--ink); }
.btn-gold:hover { background: var(--gold-hover); }
.btn-ink { background: var(--ink); color: #fff; }
.btn-ink:hover { background: var(--ink-2); }
.btn-line { background: transparent; border-color: currentColor; color: inherit; }
.btn-line:hover { background: rgba(15, 27, 45, 0.06); }
.btn[disabled] { opacity: 0.6; cursor: progress; }

/* ---------- Header ---------- */
.site-header { border-bottom: 1px solid var(--line); background: var(--paper); position: relative; z-index: 20; }
.site-header .wrap { display: flex; align-items: center; gap: 24px; min-height: 72px; }
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); flex-shrink: 0; }
.brand img { width: 64px; height: auto; }
.brand-word { font-weight: 600; letter-spacing: 0.22em; font-size: 0.95rem; white-space: nowrap; }
.nav { display: flex; align-items: center; gap: 2px; margin-inline-start: auto; }
.nav a { white-space: nowrap; text-decoration: none; padding: 8px 9px; border-radius: var(--radius); font-weight: 500; }
.nav a:hover, .nav a[aria-current="page"] { background: var(--mist); }
.lang-switch { display: flex; gap: 2px; font-size: var(--step--1); }
.lang-switch a { white-space: nowrap; text-decoration: none; padding: 6px 8px; border-radius: var(--radius); color: var(--slate); }
.lang-switch a[aria-current="true"] { color: var(--ink); font-weight: 600; background: var(--mist); }
.header-cta { margin-inline-start: 8px; }
.menu-toggle { display: none; }

@media (max-width: 1279px) {
  .site-header .wrap { flex-wrap: wrap; gap: 12px; min-height: 64px; }
  .brand-word { font-size: 0.85rem; }
  .menu-toggle { display: block; margin-inline-start: auto; }
  .menu-toggle summary { list-style: none; cursor: pointer; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius); font-weight: 500; }
  .menu-toggle summary::-webkit-details-marker { display: none; }
  .nav, .header-cta, .lang-switch.desktop { display: none; }
  .menu-toggle[open] { width: 100%; }
  .menu-panel { display: grid; gap: 4px; padding: 12px 0 16px; }
  .menu-panel a { text-decoration: none; padding: 10px 4px; border-bottom: 1px solid var(--line); font-weight: 500; }
  .menu-panel .lang-switch { padding-top: 8px; }
}
@media (min-width: 1280px) { .menu-toggle { display: none; } }

/* ---------- Hero ---------- */
/* Split hero: copy on navy, photograph uncropped by text on the other side */
.hero { color: #fff; background: var(--ink); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.hero-copy {
  align-self: center;
  padding-block: clamp(56px, 8vw, 112px);
  padding-inline-end: clamp(24px, 4vw, 56px);
  padding-inline-start: max(var(--gutter), calc((100vw - var(--wrap)) / 2 + var(--gutter)));
}
.hero-media { position: relative; min-height: 520px; }
.hero-media picture, .hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-media img { object-fit: cover; object-position: 50% 62%; }
.hero-media figcaption a { color: inherit; }
.hero-media figcaption { position: absolute; inset-block-end: 12px; inset-inline-end: 14px; font-size: 0.75rem; color: rgba(255,255,255,0.85); text-shadow: 0 1px 3px rgba(0,0,0,0.6); }
@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; }
  .hero-media { order: -1; min-height: 240px; height: 42vw; max-height: 340px; }
  .hero-copy { padding-inline: var(--gutter); padding-block: 36px 48px; }
}
.hero h1 { font-size: var(--step-5); max-width: 16ch; font-weight: 600; }
.hero .lead { color: #D5DCE6; max-width: 46ch; }
.ask { margin-top: 28px; max-width: 620px; }
.ask label { display: block; font-weight: 600; margin-bottom: 8px; color: #fff; }
.ask-row { display: flex; gap: 8px; background: #fff; padding: 6px; border-radius: var(--radius-lg); }
.ask-row input { flex: 1; min-width: 0; border: 0; font: inherit; padding: 10px 12px; color: var(--ink); background: transparent; }
.ask-row input:focus { outline: none; }
.ask-row:focus-within { box-shadow: 0 0 0 3px var(--gold); }
@media (max-width: 560px) {
  .ask-row { flex-direction: column; }
  .ask-row .btn { width: 100%; }
}
/* "Tell Ava…" on sub-pages: same box on a light background */
.ask-page { margin-top: 20px; }
.ask-page label { color: var(--ink); }
.ask-page .ask-row { border: 1px solid var(--line); box-shadow: 0 1px 2px rgba(15, 27, 45, .05); }
.ask-page .ask-row:focus-within { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201, 168, 76, .35); }
.ask-aside { margin-top: 0; }
.ask-aside label { font-size: var(--step--1, .95rem); }
.ask-aside .ask-row { flex-direction: column; }
.ask-aside .ask-row .btn { width: 100%; }

/* ---------- Sections ---------- */
.section { padding-block: clamp(48px, 7vw, 88px); }
.section-mist { background: var(--mist-2); }
.section-ink { background: var(--ink); color: #fff; }
.section-ink .muted, .section-ink .lead { color: #C3CCD8; }
.section-ink a { color: #fff; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.section-head h2 { margin: 0; }
.page-head { padding-block: clamp(36px, 6vw, 64px) 24px; }
.page-head h1 { max-width: 22ch; }

/* Three paths */
.paths { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid var(--ink); }
.path { padding: 28px 28px 32px 0; }
.path + .path { padding-inline-start: 28px; border-inline-start: 1px solid var(--line); }
.path h3 { font-size: var(--step-2); }
.path p { color: var(--slate); }
@media (max-width: 860px) {
  .paths { grid-template-columns: 1fr; }
  .path, .path + .path { padding: 24px 0; border-inline-start: 0; border-bottom: 1px solid var(--line); }
}

/* ---------- Listing cards ---------- */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 28px 24px; }
.card { display: flex; flex-direction: column; text-decoration: none; color: inherit; }
.card-photo { aspect-ratio: 4 / 3; background: var(--mist); border-radius: var(--radius); overflow: hidden; position: relative; }
.card-photo img { width: 100%; height: 100%; object-fit: cover; }
.card-photo .no-photo { position: absolute; inset: 0; display: grid; place-items: center; color: var(--slate); font-size: var(--step--1); }
.card-body { padding-top: 14px; }
.card h3 { margin: 0 0 4px; font-size: 1.125rem; }
.card:hover h3 { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px; }
.card-price { font-weight: 600; margin-bottom: 8px; }
.card-data { display: flex; flex-wrap: wrap; gap: 4px 16px; color: var(--slate); font-size: var(--step--1); margin: 0; padding: 0; list-style: none; }
.card .badge { margin-top: 10px; }
.sold-flag { position: absolute; inset-block-start: 10px; inset-inline-start: 10px; background: var(--ink); color: #fff; font-size: var(--step--1); font-weight: 600; padding: 4px 10px; border-radius: 4px; }

/* ---------- Verification badge ---------- */
.badge { display: inline-flex; align-items: center; gap: 8px; font-size: var(--step--1); font-weight: 600; color: var(--ink); }
.pips { display: inline-flex; gap: 3px; }
.pips i { width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid var(--gold-text); display: block; }
.pips i.on { background: var(--gold); border-color: var(--gold); }

/* ---------- Empty states ---------- */
.empty { border: 1px dashed var(--line); border-radius: var(--radius-lg); padding: clamp(24px, 4vw, 40px); background: var(--paper); }
.empty h3 { margin-bottom: 6px; }
.empty p { color: var(--slate); max-width: 60ch; }

/* ---------- Filters ---------- */
.listing-layout { display: grid; grid-template-columns: 260px 1fr; gap: 40px; align-items: start; }
.filters { position: sticky; top: 16px; display: grid; gap: 16px; }
.filters h2 { font-size: var(--step-1); margin: 0; }
.results-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
@media (max-width: 900px) {
  .listing-layout { grid-template-columns: 1fr; gap: 24px; }
  .filters { position: static; grid-template-columns: repeat(2, 1fr); }
  .filters h2, .filters .clear { grid-column: 1 / -1; }
}

/* ---------- Forms ---------- */
.field { display: grid; gap: 6px; align-content: start; }
.field label, .field legend { font-weight: 600; font-size: 0.95rem; }
.field .hint { font-size: var(--step--1); color: var(--slate); margin-top: -2px; }
.field .opt { font-weight: 400; color: var(--slate); }
input[type="text"], input[type="search"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], select, textarea {
  width: 100%; font: inherit; color: var(--ink); background: var(--paper);
  border: 1px solid #B9C3D0; border-radius: var(--radius); padding: 10px 12px; min-height: 46px;
}
textarea { min-height: 120px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(201,168,76,0.45); }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: 0.95rem; }
.check input { width: 20px; height: 20px; margin-top: 3px; accent-color: var(--ink); flex-shrink: 0; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
.form-grid .full { grid-column: 1 / -1; }
@media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } }
fieldset { border: 0; padding: 0; margin: 0 0 36px; min-width: 0; }
fieldset > legend { font-size: var(--step-2); font-weight: 600; letter-spacing: -0.01em; margin-bottom: 16px; padding: 0; }
.form-status { margin-top: 16px; padding: 14px 16px; border-radius: var(--radius); display: none; }
.form-status.ok { display: block; background: #E6F2EC; color: var(--ok); }
.form-status.err { display: block; background: #F8E9E7; color: var(--danger); }
.hp { position: absolute; inset-inline-start: -9999px; width: 1px; height: 1px; overflow: hidden; }
.photo-previews { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; margin-top: 10px; }
.photo-previews img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; width: 100%; }

.steps { counter-reset: step; list-style: none; padding: 0; margin: 0 0 40px; display: grid; gap: 14px; }
.steps li { counter-increment: step; display: grid; grid-template-columns: 36px 1fr; gap: 12px; align-items: start; }
.steps li::before {
  content: counter(step); width: 30px; height: 30px; border-radius: 50%;
  border: 1.5px solid var(--ink); display: grid; place-items: center; font-weight: 600; font-size: 0.9rem;
  font-variant-numeric: tabular-nums;
}

/* ---------- Data plate (aircraft key figures) ---------- */
.plate {
  background: var(--ink); color: #fff; border-radius: var(--radius-lg);
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  padding: 6px; gap: 0;
}
.plate div { padding: 16px 18px; border-inline-start: 1px solid rgba(255,255,255,0.12); }
.plate div:first-child { border-inline-start: 0; }
.plate dt { font-size: var(--step--1); color: #AEB9C8; margin-bottom: 4px; }
.plate dd { margin: 0; font-size: var(--step-2); font-weight: 600; font-variant-numeric: tabular-nums lining-nums; letter-spacing: -0.01em; }
.plate dd.long { font-size: var(--step-1); line-height: 1.3; }
.plate dd small { display: block; font-size: var(--step--1); font-weight: 400; color: #AEB9C8; letter-spacing: 0; }
@media (max-width: 640px) {
  .plate { grid-template-columns: repeat(2, 1fr); }
  .plate div { border-inline-start: 0; border-top: 1px solid rgba(255,255,255,0.12); }
  .plate div:nth-child(-n+2) { border-top: 0; }
}

/* ---------- Listing detail ---------- */
.detail-head { display: flex; justify-content: space-between; align-items: end; gap: 20px; flex-wrap: wrap; margin-bottom: 20px; }
.detail-head h1 { margin: 0; max-width: 24ch; }
.detail-price { font-size: var(--step-3); font-weight: 600; font-variant-numeric: tabular-nums; }
.gallery { display: grid; grid-template-columns: 2fr 1fr; gap: 8px; margin-bottom: 28px; }
.gallery figure { margin: 0; border-radius: var(--radius); overflow: hidden; background: var(--mist); }
.gallery figure img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.gallery .main { grid-row: span 2; }
.gallery.single { grid-template-columns: 1fr; }
.gallery.single .main img { aspect-ratio: 16 / 8; }
.gallery .main img { aspect-ratio: auto; height: 100%; }
.gallery-strip { display: flex; gap: 8px; overflow-x: auto; margin: -16px 0 28px; padding-bottom: 6px; }
.gallery-strip a { flex: 0 0 120px; }
.gallery-strip img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; }
@media (max-width: 720px) { .gallery { grid-template-columns: 1fr; } .gallery .main { grid-row: auto; } }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 48px; align-items: start; margin-top: 36px; }
@media (max-width: 960px) { .detail-layout { grid-template-columns: 1fr; } }
.spec-table { width: 100%; border-collapse: collapse; margin-bottom: 28px; }
.spec-table th, .spec-table td { text-align: start; padding: 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.spec-table th { font-weight: 500; color: var(--slate); width: 42%; padding-inline-end: 16px; }
.aside-box { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 24px; background: var(--paper); }
.aside-box + .aside-box { margin-top: 20px; }
.aside-box h2 { font-size: var(--step-1); margin-bottom: 6px; }
.aside-box form { display: grid; gap: 14px; margin-top: 16px; }
.safety { background: var(--mist); border-color: var(--mist); }
.safety h2 { font-size: 1.05rem; }
.highlights { padding-inline-start: 1.1em; }
.highlights li { margin-bottom: 6px; }
.highlights li::marker { color: var(--gold-text); }

/* ---------- Tiles (directory categories, guides) ---------- */
.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 0; border-top: 1px solid var(--line); }
.tile { display: block; padding: 20px 20px 22px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: inherit; }
.tile strong { display: block; font-size: 1.075rem; margin-bottom: 4px; }
.tile span { color: var(--slate); font-size: var(--step--1); }
.tile:hover strong { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px; }
.section-ink .tiles, .section-ink .tile { border-color: rgba(255,255,255,0.14); }
.section-ink .tile span { color: #AEB9C8; }

.guide-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }
.guide-card { text-decoration: none; color: inherit; display: block; border-top: 2px solid var(--ink); padding-top: 14px; }
.guide-card .make { color: var(--slate); font-size: var(--step--1); }
.guide-card h3 { margin: 2px 0 10px; }
.guide-card dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 0; font-size: var(--step--1); }
.guide-card dt { color: var(--slate); }
.guide-card dd { margin: 0; }
.guide-card:hover h3 { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px; }

/* ---------- Model page ---------- */
.model-photo { margin: 0 0 32px; }
.model-photo img { width: 100%; border-radius: var(--radius-lg); aspect-ratio: 16 / 8; object-fit: cover; }
.model-photo figcaption { font-size: var(--step--1); color: var(--slate); margin-top: 8px; }
.sponsor-slot { border: 1px solid var(--gold); border-radius: var(--radius-lg); padding: 22px; background: #FBF7EC; }
.sponsor-slot h2 { font-size: var(--step-1); }
.prose { max-width: 70ch; }
.prose h2 { font-size: var(--step-2); margin-top: 1.6em; }
.legal-meta { color: var(--slate); font-size: var(--step--1); }

/* Trust strip */
.trust { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center; }
.trust img { border-radius: var(--radius-lg); }
@media (max-width: 860px) { .trust { grid-template-columns: 1fr; } }
.levels { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 14px; }
.levels li { display: grid; grid-template-columns: 60px 1fr; gap: 14px; align-items: baseline; }
.levels strong { display: block; }

/* Founder line */
.founder { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 28px; }
.founder p { margin: 0; max-width: 70ch; color: var(--slate); }

/* ---------- Footer ---------- */
.site-footer { background: var(--ink); color: #C3CCD8; padding-block: 56px 32px; margin-top: 0; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; text-decoration-color: var(--gold); }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; }
.footer-grid h2 { font-size: 1rem; color: #fff; margin-bottom: 12px; letter-spacing: 0; }
.footer-grid ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.footer-brand img { width: 132px; height: auto; margin-bottom: 12px; }
.footer-legal { border-top: 1px solid rgba(255,255,255,0.14); margin-top: 40px; padding-top: 20px; font-size: var(--step--1); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
@media (max-width: 760px) { .footer-grid { grid-template-columns: 1fr; } }

/* ---------- Ava ---------- */
.ava-launcher {
  position: fixed; inset-block-end: 20px; inset-inline-end: 20px; z-index: 60;
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--ink); color: #fff; border: 0; border-radius: 999px;
  padding: 12px 20px 12px 14px; font: inherit; font-weight: 600; cursor: pointer;
  box-shadow: 0 8px 24px rgba(15,27,45,0.28);
}
.ava-launcher .dot { width: 30px; height: 30px; border-radius: 50%; background: var(--gold); color: var(--ink); display: grid; place-items: center; font-weight: 700; font-size: 0.9rem; }
.ava-launcher:hover { background: var(--ink-2); }
.ava-panel {
  position: fixed; inset-block-end: 20px; inset-inline-end: 20px; z-index: 70;
  width: min(400px, calc(100vw - 24px)); height: min(620px, calc(100vh - 40px));
  background: var(--paper); border-radius: 16px; box-shadow: 0 18px 50px rgba(15,27,45,0.35);
  display: none; flex-direction: column; overflow: hidden;
}
.ava-panel.open { display: flex; }
.ava-top { background: var(--ink); color: #fff; padding: 14px 16px; display: flex; align-items: center; gap: 12px; }
.ava-top .dot { width: 36px; height: 36px; border-radius: 50%; background: var(--gold); color: var(--ink); display: grid; place-items: center; font-weight: 700; }
.ava-top strong { display: block; }
.ava-top span { font-size: var(--step--1); color: #AEB9C8; }
.ava-top .ava-actions { margin-inline-start: auto; display: flex; gap: 4px; }
.ava-top button { white-space: nowrap; background: transparent; border: 0; color: #fff; font: inherit; font-size: var(--step--1); padding: 6px 8px; border-radius: 6px; cursor: pointer; }
.ava-top button:hover { background: rgba(255,255,255,0.1); }
.ava-log { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; background: var(--mist-2); }
.ava-msg { max-width: 88%; padding: 10px 14px; border-radius: 14px; font-size: 0.97rem; line-height: 1.55; overflow-wrap: anywhere; }
.ava-msg p { margin: 0 0 0.6em; } .ava-msg p:last-child { margin: 0; }
.ava-msg ul { margin: 0.2em 0 0.6em; padding-inline-start: 1.2em; }
.ava-msg.bot { background: var(--paper); border: 1px solid var(--line); align-self: flex-start; border-end-start-radius: 4px; }
.ava-msg.me { background: var(--ink); color: #fff; align-self: flex-end; border-end-end-radius: 4px; }
.ava-msg.me a { color: #fff; }
.ava-msg.typing { color: var(--slate); font-style: italic; }
.ava-form { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--line); background: var(--paper); }
.ava-form textarea { min-height: 44px; max-height: 120px; resize: none; padding: 10px 12px; }
.ava-form .btn { min-height: 44px; padding-inline: 16px; }
.ava-note { font-size: 0.75rem; color: var(--slate); padding: 0 14px 10px; background: var(--paper); }
@media (max-width: 520px) {
  .ava-panel { inset: 0; width: 100%; height: 100%; border-radius: 0; }
  .ava-launcher { inset-block-end: 14px; inset-inline-end: 14px; }
}

@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
@media print { .site-header, .site-footer, .ava-launcher, .ava-panel { display: none !important; } }

/* Keep numbers and units in reading order inside Arabic text */
html[dir="rtl"] .card-data li, html[dir="rtl"] .guide-card dd, html[dir="rtl"] .plate dd,
html[dir="rtl"] .spec-table td, html[dir="rtl"] .card-price, html[dir="rtl"] .detail-price { unicode-bidi: plaintext; }

/* Service category banner */
.category-photo img { aspect-ratio: 16 / 6; }

/* ---------- Services directory lists ---------- */
.loc-list { list-style: none; padding: 0; margin: 0 0 8px; columns: 4 200px; column-gap: 32px; border-top: 1px solid var(--line); }
.loc-list li { break-inside: avoid; display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.loc-list a { text-decoration: none; }
.loc-list a:hover { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px; }
.loc-list .num { color: var(--slate); font-size: var(--step--1); }
.dir-list { list-style: none; padding: 0; margin: 0 0 16px; display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); column-gap: 32px; border-top: 1px solid var(--line); }
.dir-list li { padding: 12px 0; border-bottom: 1px solid var(--line); }
.dir-list a { display: block; font-weight: 500; text-decoration: none; }
.dir-list a:hover { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px; }
.dir-list span { display: block; color: var(--slate); font-size: var(--step--1); margin-top: 2px; }
.dir-list .tag { font-style: normal; color: var(--gold-text); }
@media (max-width: 480px) { .dir-list { grid-template-columns: 1fr; } }

/* ---------- Events ---------- */
.ev-month { margin: 36px 0 8px; font-size: var(--step-1, 1.25rem); }
.ev-list { list-style: none; padding: 0; margin: 0 0 8px; border-top: 1px solid var(--line); }
.ev-list li { border-bottom: 1px solid var(--line); }
.ev-list a { display: grid; grid-template-columns: minmax(150px, 220px) 1fr; column-gap: 24px; row-gap: 2px; padding: 14px 0; text-decoration: none; color: inherit; }
.ev-list a:hover strong { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px; }
.ev-date { grid-row: span 2; color: var(--gold-text); font-weight: 600; font-size: var(--step--1); padding-top: 2px; }
.ev-list strong { font-size: 1.05rem; }
.ev-meta { color: var(--slate); font-size: var(--step--1); }
@media (max-width: 560px) { .ev-list a { grid-template-columns: 1fr; } .ev-date { grid-row: auto; } }

/* ---------- Buyer alerts ---------- */
.alert-box { margin: 40px 0 0; padding: clamp(20px, 3vw, 28px); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--mist); }
.alert-box h2 { margin-top: 0; }
.alert-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px 18px; margin-top: 16px; align-items: end; }
.alert-form .full { grid-column: 1 / -1; }
.alert-box.wide { margin-top: 56px; }
.guide-group { margin: 40px 0 16px; }
.guide-group:first-child { margin-top: 0; }
.alert-form .btn { justify-self: start; min-width: 220px; }

/* ---------- Comparisons and FAQs ---------- */
.cmp-facts { padding-inline-start: 1.1em; margin: 12px 0 0; }
.cmp-facts li { margin: 4px 0; }
.table-scroll { overflow-x: auto; }
.cmp-table thead th { text-align: start; font-size: 1.05rem; padding-bottom: 10px; }
.cmp-table td { vertical-align: top; }
.cmp-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 32px; }
@media (max-width: 760px) { .cmp-cols { grid-template-columns: 1fr; gap: 16px; } }
.faq details { border-bottom: 1px solid var(--line); padding: 12px 0; }
.faq summary { cursor: pointer; font-weight: 600; }
.faq p { margin: 8px 0 0; color: var(--slate); }
.cmp-table { table-layout: fixed; width: 100%; min-width: 560px; }
.cmp-table th[scope="row"], .cmp-table thead th:first-child { width: 22%; }

/* Charter operator check */
.check-out { margin-top: 20px; min-height: 24px; }
.check-found { font-weight: 600; color: #1F6B45; margin: 0 0 8px; }
.check-none { padding: 14px 16px; background: #FBF6E9; border-left: 3px solid #C9A84C; margin: 0; }
.az-list { grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); }

/* Featured placement */
.featured-flag { position: absolute; inset-block-start: 10px; inset-inline-start: 10px; background: var(--gold); color: var(--ink); font-size: var(--step--1); font-weight: 600; padding: 4px 10px; border-radius: 4px; }
.tag-featured { background: #FBF6E9; color: var(--gold-text); }
.price-box { border: 1px solid #E4D3A1; background: #FBF8EF; border-radius: 10px; padding: 24px; margin: 24px 0; }
.price-box .price { font-size: 2rem; font-weight: 600; margin: 0 0 4px; }
.feat-item { border: 1px solid var(--line); border-inline-start: 3px solid var(--gold); background: var(--mist-2); border-radius: 10px; padding: 16px 20px; margin: 16px 0 8px; }
.feat-item[hidden], [data-feat-field][hidden], [data-feat-intro][hidden] { display: none; }
.feat-title { font-size: var(--step-1); font-weight: 600; margin: 4px 0; }
.link-btn { background: none; border: 0; padding: 0; font: inherit; color: var(--ink); text-decoration: underline; cursor: pointer; }
.feature-own { margin-top: 8px; }

/* ---------- Job board ---------- */
.job-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line); }
.job-list li { padding: 14px 0; border-bottom: 1px solid var(--line); display: grid; gap: 3px; }
.job-list li[hidden] { display: none; }
.job-title { font-weight: 600; text-decoration: none; }
.job-title:hover { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px; }
.job-title::after { content: " ↗"; color: var(--gold-text); font-weight: 400; }
.job-meta { color: var(--slate); }
.job-summary { color: var(--slate); max-width: 72ch; }

/* =====================================================================
   Variant redesign layer (November 2026)
   Ivory, ink and brass; serif headings in English; hairlines instead of boxes.
   Everything visual that differs from the earlier navy theme lives here.
   ===================================================================== */

/* Type */
html[lang="en"] h1, html[lang="en"] h2 { font-family: var(--serif); font-weight: 500; letter-spacing: -0.005em; line-height: 1.08; font-variant-numeric: lining-nums; }
html[lang="en"] h3 { font-variant-numeric: lining-nums; }
html[lang="en"] h1 { font-size: clamp(2.4rem, 4.4vw, 3.4rem); }
html[lang="en"] h2 { font-size: clamp(1.9rem, 3vw, 2.4rem); }
html[lang="en"] .page-head h1 { font-size: clamp(2.4rem, 4.4vw, 3.4rem); }
html[lang="en"] fieldset > legend { font-family: var(--serif); font-weight: 500; font-size: 1.85rem; }
.lead { color: var(--slate); }
a { text-decoration-color: var(--gold); }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; border-radius: 0; }
.eyebrow { text-transform: uppercase; letter-spacing: 0.15em; font-size: 0.72rem; font-weight: 500; color: var(--gold-text); }
html:not([lang="en"]) .eyebrow { letter-spacing: 0; text-transform: none; font-size: 0.85rem; }

/* Buttons: ink, square, brass on hover */
.btn { border-radius: 0; font-weight: 500; letter-spacing: 0.02em; }
.btn-gold, .btn-ink { background: var(--ink); color: var(--paper); }
.btn-gold:hover, .btn-ink:hover { background: var(--gold-text); }
.btn-line { border-color: var(--ink); color: var(--ink); }
.btn-line:hover { background: var(--ink); color: var(--paper); }

/* Header */
.site-header { background: var(--paper); border-bottom: 0.75px solid var(--line); position: sticky; top: 0; z-index: 40; }
.brand-word { font-weight: 400; letter-spacing: 0.38em; }
.nav { gap: clamp(4px, 1.2vw, 18px); }
.nav a { background: none !important; padding: 8px 4px; border-radius: 0; font-weight: 400; border-bottom: 1px solid transparent; }
html[lang="en"] .nav a { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.75rem; }
.nav a:hover { color: var(--gold-text); }
.nav a[aria-current="page"] { border-bottom-color: var(--ink); }
.lang-switch a { border-radius: 0; background: none !important; }
.lang-switch a[aria-current="true"] { font-weight: 500; }
html[lang="en"] .header-cta { text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.75rem; min-height: 42px; }
.menu-toggle summary { border-radius: 0; border-color: var(--ink); }
.menu-panel a { border-color: var(--line); }

/* Hero: full-width photograph, copy on a soft shade (desktop); photo above copy (mobile) */
@media (min-width: 901px) {
  .hero { display: block; position: relative; margin: 20px; min-height: min(calc(100svh - 112px), 680px); background: var(--ink); overflow: hidden; }
  .hero-media { position: absolute; inset: 0; min-height: 0; }
  .hero-media img { object-position: 70% 62%; }
  .hero-media::after { content: ""; position: absolute; inset: 0; background:
    linear-gradient(to right, rgba(10,10,10,.84) 0%, rgba(10,10,10,.74) 32%, rgba(10,10,10,.35) 52%, rgba(10,10,10,0) 70%),
    linear-gradient(to top, rgba(10,10,10,.45) 0%, rgba(10,10,10,0) 45%); }
  .hero-copy { position: absolute; inset-block-end: 0; inset-inline-start: 0; z-index: 1; max-width: 760px; padding: 0 clamp(32px, 5vw, 72px) clamp(36px, 5vw, 64px); }
}
html[dir="rtl"] .hero-media::after { transform: scaleX(-1); }
.hero h1 { color: #fff; max-width: 17ch; font-weight: 500; text-shadow: 0 1px 24px rgba(0,0,0,.25); }
html[lang="en"] .hero h1 { font-size: clamp(2.6rem, 5.2vw, 4.2rem); line-height: 1.02; }
.hero .lead { color: rgba(255,255,255,.9); }
.ask-row { border-radius: 0; padding: 0; background: var(--paper); border: 0.75px solid var(--ink); }
.ask-row input { padding: 16px 18px; font-size: 1.05rem; }
.ask-row { gap: 0; }
.ask-row .btn { min-height: auto; padding-inline: 28px; }
.hero .ask-row .btn { background: var(--gold); color: var(--ink); }
.hero .ask-row .btn:hover { background: var(--gold-hover); }
@media (max-width: 560px) { .ask-row .btn { min-height: 48px; } }
html[lang="en"] .ask-row .btn { text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.75rem; }
.ask-row:focus-within { box-shadow: none; outline: 2px solid var(--gold); outline-offset: 2px; }
.ask-page .ask-row { border-color: var(--ink); box-shadow: none; }
.ask-page .ask-row:focus-within { box-shadow: none; }
@media (max-width: 900px) {
  .hero { background: var(--ink); }
  .hero-media img { object-position: 50% 58%; }
}

/* Sections */
.section-mist { background: var(--mist-2); }
.section-head { border-bottom: 0.75px solid var(--line); padding-bottom: 14px; }
.section-head > a, .section-head a:last-child { text-decoration: none; color: var(--gold-text); }
html[lang="en"] .section-head > a { text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.75rem; font-weight: 500; }
.paths { border-top: 0.75px solid var(--ink); }
html[lang="en"] .path h3 { font-family: var(--serif); font-weight: 500; font-size: 1.75rem; letter-spacing: 0; }

/* The dark band becomes an editorial list on light stone */
.section-ink { background: var(--mist); color: var(--ink); }
.section-ink .muted, .section-ink .lead { color: var(--slate); }
.section-ink a { color: var(--ink); }
.section-ink .tiles, .section-ink .tile { border-color: var(--line); }
.tiles { border-top-color: var(--line); }
.tile { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-inline-end: 24px; }
.tile::after { content: "→"; font-family: var(--serif); color: var(--gold-text); transition: transform .3s; }
html[dir="rtl"] .tile::after { content: "←"; }
.tile:hover::after { transform: translateX(4px); }
html[dir="rtl"] .tile:hover::after { transform: translateX(-4px); }
html[lang="en"] .tile strong { font-family: var(--serif); font-weight: 500; font-size: 1.35rem; }
.tile:hover strong { text-decoration: none; color: var(--gold-text); }

/* Listing cards */
.card-photo { border-radius: 0; background: var(--mist); }
.card-photo img { transition: transform .8s cubic-bezier(.16,1,.3,1); }
.card:hover .card-photo img { transform: scale(1.035); }
.card-body { padding-top: 18px; }
html[lang="en"] .card h3 { font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 1.55rem; line-height: 1.15; letter-spacing: 0; margin-bottom: 10px; }
.card:hover h3 { text-decoration: none; color: var(--gold-text); }
.card-price { font-family: var(--mono); font-weight: 400; font-size: 1rem; color: var(--gold-text); letter-spacing: -0.02em; }
html[lang="ar"] .card-price, html[lang="zh"] .card-price { font-family: inherit; font-weight: 600; }
.card-data { border-top: 0.75px solid var(--line); padding-top: 10px; }
.featured-flag, .sold-flag { border-radius: 0; font-weight: 500; padding: 5px 10px; font-size: 0.75rem; }
.featured-flag { background: var(--paper); color: var(--ink); border: 0.75px solid var(--ink); }
html[lang="en"] .featured-flag, html[lang="en"] .sold-flag { text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.68rem; }
.badge { font-weight: 500; }

/* Guide cards */
.guide-card { border-top: 0.75px solid var(--ink); }
html[lang="en"] .guide-card h3 { font-family: var(--serif); font-weight: 500; font-size: 1.6rem; letter-spacing: 0; }
.guide-card:hover h3 { text-decoration: none; color: var(--gold-text); }
.guide-card dd { font-variant-numeric: tabular-nums; }

/* Forms */
input[type="text"], input[type="search"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], select, textarea {
  background: var(--field); border: 0.75px solid var(--line-strong); border-radius: 0;
}
input:focus, select:focus, textarea:focus { border-color: var(--ink); box-shadow: 0 0 0 2px rgba(148,123,83,.45); }
.field label, .field legend { font-weight: 500; }
.check input { accent-color: var(--ink); }
.empty { border-radius: 0; border-color: var(--line-strong); background: var(--field); }
.alert-box, .aside-box, .price-box, .feat-item, .sponsor-slot { border-radius: 0; }
.alert-box { background: var(--mist-2); border-color: var(--line); }
.aside-box { background: var(--field); border-color: var(--line); }
.safety { background: var(--mist); border-color: var(--mist); }
html[lang="en"] .alert-box h2, html[lang="en"] .aside-box h2 { font-size: 1.7rem; }
html[lang="en"] .filters h2 { font-size: 1.6rem; }
.steps li::before { border-color: var(--ink); font-weight: 500; }

/* Aircraft figures: a term sheet, not a dark panel */
.plate { background: transparent; color: var(--ink); border-radius: 0; padding: 0; border-block: 0.75px solid var(--ink); }
.plate div { border-inline-start-color: var(--line); padding: 18px 20px; }
.plate dt { color: var(--gold-text); font-size: 0.75rem; margin-bottom: 6px; }
html[lang="en"] .plate dt { text-transform: uppercase; letter-spacing: 0.12em; font-weight: 500; }
.plate dd { font-family: var(--mono); font-weight: 400; font-size: 1.3rem; letter-spacing: -0.02em; }
.plate dd.long { font-family: var(--font); font-weight: 500; }
html[lang="ar"] .plate dd, html[lang="zh"] .plate dd { font-family: inherit; font-weight: 600; }
.plate dd small { color: var(--slate); font-family: var(--font); }
@media (max-width: 640px) { .plate div { border-top-color: var(--line); } }
.detail-price { font-family: var(--mono); font-weight: 400; color: var(--gold-text); letter-spacing: -0.02em; }
html[lang="ar"] .detail-price, html[lang="zh"] .detail-price { font-family: inherit; font-weight: 600; }
.gallery figure, .gallery-strip img, .photo-previews img, .model-photo img { border-radius: 0; }
.spec-table th, .spec-table td { border-bottom-width: 0.75px; }
.spec-table td { font-variant-numeric: tabular-nums; }

/* Trust and founder */
.trust img { border-radius: 0; }
.founder { border-top-width: 0.75px; }

/* Footer: light, with hairline rules */
.site-footer { background: var(--mist-2); color: var(--slate); border-top: 0.75px solid var(--line); }
.site-footer a { color: var(--ink); }
.site-footer a:hover { color: var(--gold-text); text-decoration: none; }
html[lang] .footer-grid h2 { color: var(--ink); font-family: var(--font); font-size: 0.75rem; font-weight: 500; line-height: 1.4; }
html[lang="en"] .footer-grid h2 { text-transform: uppercase; letter-spacing: 0.15em; }
.footer-brand img { width: 112px; }
.footer-legal { border-top: 0.75px solid var(--line); }

/* Ava */
.ava-launcher { border-radius: 0; padding: 14px 22px; gap: 12px; font-weight: 500; background: var(--ink); color: var(--paper); box-shadow: 0 6px 20px rgba(18,18,18,.18); }
html[lang="en"] .ava-launcher { text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.75rem; }
.ava-launcher .dot { width: 7px; height: 7px; font-size: 0; background: var(--gold); }
.ava-launcher:hover { background: var(--gold-text); }
.ava-launcher:hover .dot { background: var(--paper); }
.ava-panel { border-radius: 0; box-shadow: 0 18px 50px rgba(18,18,18,.25); }
.ava-top .dot { background: var(--gold); color: var(--ink); }
.ava-top span { color: rgba(247,243,238,.7); }
.ava-msg { border-radius: 0; }
.ava-msg.bot { background: var(--field); }
.ava-log { background: var(--mist-2); }

/* Remaining warm tints */
.tag-featured, .check-none { background: var(--mist); }
.check-none { border-left-color: var(--gold); }
