/* ── Aeroinis homepage — the quiet-authority pass ──────────────────
   One idea carries the page: AEROINIS = TIME. Two worlds share it —
   private aviation sells control over time, time-critical sells
   certainty under it — so the first screen is a self-selection
   instrument, not a brochure. Every rule below obeys the same law:
   confidence moves slowly, gold is scarce, and nothing asks twice. */

.hm-page { background: #FBFAF6; }
.hm { --navy: #0B0F1E; --navy2: #0B0F1E; --ivory: #FBFAF6; --ink: #10151C;
      --gold: #C8A96A; --gold-soft: #E9C87F; --hair-d: rgba(245, 244, 240, .14);
      --hair-l: rgba(11, 15, 30, .12); --mute-d: rgba(245, 244, 240, .68);
      --mute-l: rgba(22, 24, 29, .62); --serif: "Newsreader", Georgia, serif;
      --sans: "Satoshi", -apple-system, sans-serif;
      --slow: 1050ms cubic-bezier(.23, .6, .18, 1);
      --brisk: 700ms cubic-bezier(.3, .6, .2, 1); }
.hm-wrap { width: min(calc(100% - 40px), 1120px); margin-inline: auto; }
.hm em { font: 700 .68rem/1 var(--sans); font-style: normal; letter-spacing: .3em;
         text-transform: uppercase; color: var(--gold); display: block; }
.hm h2 { font: 400 clamp(1.9rem, 3.6vw, 3rem)/1.12 var(--serif); letter-spacing: -.02em; margin: 14px 0 0; }

/* ── hero: the split ── */
.hm-hero { position: relative; background: var(--navy); isolation: isolate; }
.hm-brand { position: absolute; inset: 0 0 auto; z-index: 4; text-align: center;
            padding-top: clamp(84px, 12vh, 132px); pointer-events: none; }
.hm-eyebrow { margin: 0 0 10px; font: 700 .72rem/1 var(--sans); letter-spacing: .5em;
              text-indent: .5em; color: rgba(245, 244, 240, .82); }
.hm-line { margin: 0 auto; max-width: 15ch; font: 340 clamp(2.15rem, 5vw, 4rem)/1.06 var(--serif);
           letter-spacing: -.025em; color: #F5F4F0;
           text-shadow: 0 1px 30px rgba(5, 8, 18, .55); }
.hm-split { display: flex; min-height: 100svh; }
.hm-side { position: relative; flex: 1 1 0; display: flex; align-items: flex-end;
           overflow: hidden; text-decoration: none; color: #F5F4F0;
           transition: flex-grow var(--slow); }
.hm-side--t { transition: flex-grow var(--brisk); }
@media (hover: hover) {
  .hm-split:has(.hm-side--p:hover) .hm-side--p,
  .hm-split:has(.hm-side--t:hover) .hm-side--t { flex-grow: 1.42; }
}
.hm-side:focus-visible { outline: 2px solid var(--gold); outline-offset: -6px; flex-grow: 1.42; }
.hm-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
          transform: scale(1.02); transition: transform var(--slow); }
@media (hover: hover) { .hm-side:hover .hm-img { transform: scale(1.06); } }
.hm-veil { position: absolute; inset: 0;
           background: linear-gradient(180deg, rgba(11, 15, 30, .62) 0%, rgba(11, 15, 30, .12) 42%, rgba(11, 15, 30, .78) 100%); }
.hm-side--p .hm-veil { background: linear-gradient(180deg, rgba(11, 15, 30, .62) 0%, rgba(11, 15, 30, .1) 45%, rgba(11, 15, 30, .82) 100%); }
.hm-side + .hm-side { border-left: 1px solid rgba(245, 244, 240, .18); }
.hm-body { position: relative; z-index: 2; width: 100%; padding: 0 clamp(22px, 4vw, 56px) clamp(34px, 6vh, 64px); }
.hm-body em { margin-bottom: 12px; }
.hm-body strong { display: block; font: 400 clamp(1.5rem, 2.6vw, 2.3rem)/1.15 var(--serif);
                  letter-spacing: -.015em; font-weight: 400; max-width: 14ch; }
.hm-go { display: inline-flex; align-items: center; gap: 10px; margin-top: 20px;
         font: 700 .74rem/1 var(--sans); letter-spacing: .22em; text-transform: uppercase;
         color: #F5F4F0; border: 1px solid rgba(245, 244, 240, .45); border-radius: 999px;
         padding: 15px 22px; transition: border-color .45s, background .45s, color .45s; }
.hm-go i { font-style: normal; transition: transform .45s; }
.hm-side:hover .hm-go, .hm-side:focus-visible .hm-go {
  border-color: var(--gold); background: rgba(200, 169, 106, .14); color: var(--gold-soft); }
.hm-side:hover .hm-go i { transform: translateX(4px); }
.hm-hint { display: block; margin-top: 10px; max-width: 34ch; font: 500 .82rem/1.5 var(--sans);
           color: var(--mute-d); opacity: .72; transition: opacity .5s; }
.hm-side:hover .hm-hint, .hm-side:focus-visible .hm-hint { opacity: 1; }
.hm-body .hm-go { margin-top: 18px; }

/* ── trust strip: typography does the work ── */
.hm-trust { background: var(--navy); border-top: 1px solid var(--hair-d); }
.hm-trust__row { display: grid; grid-template-columns: repeat(4, 1fr); }
.hm-trust__row > div { padding: clamp(22px, 3vw, 34px) 10px; text-align: center; }
.hm-trust__row > div + div { border-left: 1px solid var(--hair-d); }
.hm-trust b { display: block; font: 400 clamp(1.05rem, 1.6vw, 1.35rem)/1.2 var(--serif);
              color: #F5F4F0; letter-spacing: -.01em; }
.hm-trust span { display: block; margin-top: 5px; font: 700 .62rem/1.4 var(--sans);
                 letter-spacing: .24em; text-transform: uppercase; color: var(--mute-d); }

/* ── one desk, two missions ── */
.hm-onedesk { background: var(--ivory); color: var(--ink); text-align: center;
              padding: clamp(74px, 10vw, 130px) 0; }
.hm-onedesk h2 { margin: 0; }
.hm-onedesk p { max-width: 52ch; margin: 22px auto 0; font: 400 1.06rem/1.75 var(--sans); color: var(--mute-l); }
.hm-onedesk p b { color: var(--ink); font-weight: 500; }

/* ── previews ── */
.hm-prev { padding: clamp(58px, 8vw, 110px) 0; }
.hm-prev--p { background: var(--ivory); color: var(--ink); border-top: 1px solid var(--hair-l); }
.hm-prev--t { background: var(--navy2); color: #F5F4F0; }
.hm-prev__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 76px); align-items: center; }
.hm-prev--t .hm-prev__grid { direction: rtl; }
.hm-prev--t .hm-prev__grid > * { direction: ltr; }
.hm-prev__media img { width: 100%; height: clamp(300px, 34vw, 460px); object-fit: cover; display: block; }
.hm-prev__copy h2 { max-width: 15ch; }
.hm-prev__copy > p { max-width: 46ch; margin: 18px 0 0; font: 400 1rem/1.75 var(--sans); }
.hm-prev--p .hm-prev__copy > p { color: var(--mute-l); }
.hm-prev--t .hm-prev__copy > p { color: var(--mute-d); }
.hm-kinds { margin: 20px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px 10px; }
.hm-kinds li { font: 700 .66rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase;
               color: var(--mute-d); border: 1px solid var(--hair-d); border-radius: 999px; padding: 8px 13px; }
.hm-links { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; margin: 28px 0 0; }
.hm-btn { display: inline-block; font: 700 .74rem/1 var(--sans); letter-spacing: .22em;
          text-transform: uppercase; text-decoration: none; border-radius: 999px;
          padding: 16px 26px; transition: background .4s, color .4s, border-color .4s; }
.hm-prev--p .hm-btn, .hm-onelight .hm-btn { background: var(--navy); color: #F5F4F0; border: 1px solid var(--navy); }
.hm-prev--p .hm-btn:hover { background: #172433; }
.hm-prev--t .hm-btn { background: var(--gold); color: var(--navy); border: 1px solid var(--gold); }
.hm-prev--t .hm-btn:hover { background: var(--gold-soft); border-color: var(--gold-soft); }
.hm-quiet { font: 600 .86rem/1 var(--sans); color: inherit; text-decoration: none;
            border-bottom: 1px solid var(--gold); padding-bottom: 3px; }
.hm-quiet:hover { color: var(--gold); }

/* ── intelligence: authority through usefulness ── */
.hm-intel { background: var(--ivory); color: var(--ink); padding: clamp(64px, 9vw, 120px) 0;
            border-top: 1px solid var(--hair-l); }
.hm-intel__sub { max-width: 50ch; margin: 16px 0 0; font: 400 1rem/1.7 var(--sans); color: var(--mute-l); }
.hm-intel ul { margin: 34px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--hair-l); }
.hm-intel li a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: baseline;
                 padding: 18px 6px; border-bottom: 1px solid var(--hair-l); text-decoration: none;
                 color: inherit; transition: background .35s; }
.hm-intel li a:hover { background: rgba(200, 169, 106, .07); }
.hm-intel li b { font: 400 1.12rem/1.3 var(--serif); letter-spacing: -.01em; font-weight: 400; }
.hm-intel li small { display: block; margin-top: 3px; font: 400 .84rem/1.5 var(--sans); color: var(--mute-l); }
.hm-intel li i { font-style: normal; color: var(--gold); font-size: .95rem; }
.hm-live { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #3DD68C;
           margin-right: 8px; vertical-align: 1px; }

/* ── family office signal ── */
.hm-fo { background: var(--navy); color: #F5F4F0; padding: clamp(70px, 9vw, 120px) 0; }
.hm-fo h2 { max-width: 24ch; }
.hm-fo p { max-width: 48ch; margin: 18px 0 26px; font: 400 1rem/1.75 var(--sans); color: var(--mute-d); }

/* ── final: calm and obvious ── */
.hm-final { background: var(--ivory); color: var(--ink); text-align: center;
            padding: clamp(80px, 11vw, 150px) 0; border-top: 1px solid var(--hair-l); }
.hm-final h2 { margin: 0; }
.hm-final__row { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; margin: 34px 0 0; }
.hm-final .hm-btn--p { background: var(--navy); color: #F5F4F0; }
.hm-final .hm-btn--p:hover { background: #172433; }
.hm-final .hm-btn--t { border: 1px solid var(--navy); color: var(--navy); background: transparent; }
.hm-final .hm-btn--t:hover { border-color: var(--gold); color: var(--gold); }
.hm-mail { margin: 26px 0 0; font: 400 .88rem/1.6 var(--sans); color: var(--mute-l); }
.hm-mail a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--gold); }

/* ── phones: two cinematic entrances, no hover dependence ── */
@media (max-width: 900px) {
  .hm-brand { position: static; background: var(--navy); padding: 96px 18px 34px; pointer-events: auto; }
  .hm-split { flex-direction: column; min-height: 0; }
  .hm-side { min-height: 58svh; flex: none; }
  .hm-side + .hm-side { border-left: 0; border-top: 1px solid rgba(245, 244, 240, .18); }
  .hm-hint { opacity: 1; }
  .hm-trust__row { grid-template-columns: 1fr 1fr; }
  .hm-trust__row > div:nth-child(3) { border-left: 0; }
  .hm-trust__row > div:nth-child(n+3) { border-top: 1px solid var(--hair-d); }
  .hm-prev__grid { grid-template-columns: 1fr; }
  .hm-prev__media img { height: 46vw; min-height: 220px; }
}
@media (prefers-reduced-motion: reduce) {
  .hm-side, .hm-side--t, .hm-img, .hm-go, .hm-go i, .hm-hint { transition: none !important; }
  .hm-side:hover .hm-img { transform: scale(1.02); }
  .hm-split:has(.hm-side:hover) .hm-side { flex-grow: 1; }
}

/* touch-type:start — generated by tools/touch-type.mjs, do not edit by hand */
/* iOS zooms the page when a focused control's text is under 16px and does not
   zoom back. max(16px, 1em) raises only what is below the floor: a control
   designed larger keeps its size, and nothing has to be listed by name — which
   matters, because the worst offenders inherit their size rather than being
   given one. Checkboxes and radios are left alone; they have no text. */
@media (pointer: coarse) {
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea { font-size: max(16px, 1em) !important; }
}
/* touch-type:end */
