/* ============================================================
   Aviation ONE — design system
   Desktop-first, token-driven, light + dark aware.
   ============================================================ */

:root{
  --paper:#F2F4F6;
  --paper-2:#E8EBEF;
  --card:#FFFFFF;
  --night:#0A1017;
  --slate:#17222C;
  --ink:#0B1116;
  --ink-2:#3D4A56;
  --muted:#6E7B89;
  --rule:#D5DBE1;
  --blue:#0B5CA8;
  --blue-lt:#5AA2E4;
  --blue-soft:#E4EEF8;
  --on-blue:#FFFFFF;
  --focus:#4E9BE0;
  --maxw:1440px;
  --gut:clamp(20px,4.4vw,84px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0B1116;--paper-2:#101A22;--card:#131E27;
    --ink:#E9EEF3;--ink-2:#BCC7D2;--muted:#8B98A6;--rule:#233240;
    --blue:#5AA2E4;--blue-soft:#12222F;--on-blue:#04121F;
  }
}
:root[data-theme="dark"]{
  --paper:#0B1116;--paper-2:#101A22;--card:#131E27;
  --ink:#E9EEF3;--ink-2:#BCC7D2;--muted:#8B98A6;--rule:#233240;
  --blue:#5AA2E4;--blue-soft:#12222F;--on-blue:#04121F;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,sans-serif;
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;}
a{color:inherit;}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--focus);outline-offset:3px;}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}
.skip{position:absolute;left:-9999px;}
.skip:focus{left:12px;top:12px;z-index:200;background:var(--card);padding:10px 16px;}

.shell{max-width:var(--maxw);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut);}
.shell-narrow{max-width:920px;margin:0 auto;padding-left:var(--gut);padding-right:var(--gut);}

h1,h2,h3,h4{font-family:"Newsreader",Georgia,"Times New Roman",serif;font-weight:300;letter-spacing:-.014em;margin:0;}
h1{font-size:clamp(2.4rem,5vw,4.4rem);line-height:1.02;text-wrap:balance;}
h2{font-size:clamp(2rem,3.6vw,3.5rem);line-height:1.06;text-wrap:balance;}
h3{font-size:clamp(1.25rem,1.9vw,1.75rem);line-height:1.14;}
h4{font-size:1.12rem;line-height:1.25;}
p{margin:0 0 18px;}
.lead{font-size:clamp(1.05rem,1.35vw,1.3rem);line-height:1.62;color:var(--ink-2);}
.measure{max-width:64ch;}
.measure-tight{max-width:54ch;}

.eyebrow{
  font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace;
  font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  display:block;margin:0 0 20px;line-height:1.5;
}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace;}

/* ── header ───────────────────────────────────────────── */
.site-header{position:sticky;top:0;z-index:70;background:var(--card);border-bottom:1px solid var(--rule);}
.bar{display:flex;align-items:center;gap:28px;height:84px;}
@media (max-width:900px){.bar{height:64px;}}
.brand{position:relative;display:inline-flex;align-items:center;flex:0 0 auto;}
.brand::after{content:"";position:absolute;left:-8px;right:-8px;top:-10px;bottom:-10px;}
.brand-mark{display:block;line-height:0;}
.brand-mark img{height:54px;width:auto;display:block;}
.brand-mark .mark-dark{display:none;}
@media (max-width:900px){.brand-mark img{height:38px;}}

/* The dark scheme must never be served the black artwork. */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .brand-mark .mark-light{display:none;}
  :root:not([data-theme="light"]) .brand-mark .mark-dark{display:block;}
}
:root[data-theme="dark"] .brand-mark .mark-light{display:none;}
:root[data-theme="dark"] .brand-mark .mark-dark{display:block;}

.nav-main{margin-left:auto;}
.nav-main > ul{list-style:none;display:flex;align-items:center;gap:30px;margin:0;padding:0;}
.nav-main li{position:relative;}
.nav-main a{
  text-decoration:none;font-size:15px;letter-spacing:.01em;color:var(--ink-2);
  padding:30px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s;display:block;white-space:nowrap;
}
.nav-main > ul > li > a:hover,
.nav-main .current-menu-item > a,
.nav-main .current_page_item > a,
.nav-main .current-menu-ancestor > a,
.nav-main .current_page_parent > a{color:var(--ink);border-bottom-color:var(--blue);}

/* service dropdown */
.nav-main .menu-item-has-children > a::after{
  content:"";display:inline-block;width:5px;height:5px;margin-left:8px;vertical-align:2px;
  border-right:1.3px solid currentColor;border-bottom:1.3px solid currentColor;transform:rotate(45deg);opacity:.6;
}
.nav-main .sub-menu{
  position:absolute;top:100%;left:-22px;min-width:320px;list-style:none;margin:0;padding:10px 0;
  background:var(--card);border:1px solid var(--rule);box-shadow:0 26px 60px -32px rgba(11,26,44,.5);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .22s ease,transform .22s ease,visibility .22s;z-index:80;
}
.nav-main li:hover > .sub-menu,
.nav-main li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:none;}
.nav-main .sub-menu a{padding:9px 24px;font-size:14.5px;border-bottom:none;color:var(--ink-2);}
.nav-main .sub-menu a:hover{color:var(--blue);background:var(--paper);}

.hdr-tel{
  margin-left:12px;text-decoration:none;display:flex;flex-direction:column;gap:2px;
  padding:6px 0 6px 22px;border-left:1px solid var(--rule);white-space:nowrap;transition:color .2s;
}
.hdr-tel-l{font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
.hdr-tel-n{font-family:"IBM Plex Mono",monospace;font-size:14.5px;letter-spacing:.05em;color:var(--ink);}
.hdr-tel:hover .hdr-tel-n{color:var(--blue);}
@media (max-width:1120px){.nav-main,.hdr-tel{display:none;}}
.burger{margin-left:auto;display:none;background:none;border:none;padding:10px;cursor:pointer;color:var(--ink);}
@media (max-width:1120px){.burger{display:block;}}
.burger span{display:block;width:22px;height:1.5px;background:currentColor;margin:5px 0;transition:transform .3s,opacity .2s;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

.drawer{
  position:fixed;inset:0 0 0 auto;width:min(88vw,400px);background:var(--card);z-index:75;
  transform:translateX(100%);transition:transform .38s cubic-bezier(.16,.75,.3,1);
  padding:92px 30px 40px;border-left:1px solid var(--rule);overflow-y:auto;
}
.drawer.open{transform:none;}
.drawer ul{list-style:none;margin:0;padding:0;}
.drawer > ul > li > a{display:block;text-decoration:none;font-family:"Newsreader",Georgia,serif;font-weight:300;
  font-size:1.45rem;padding:15px 0;border-bottom:1px solid var(--rule);}
.drawer .sub-menu{margin:2px 0 10px;padding:0 0 8px;}
.drawer .sub-menu a{display:block;text-decoration:none;font-size:.94rem;line-height:1.45;padding:9px 0 9px 14px;
  color:var(--ink-2);border-left:1px solid var(--rule);}
.drawer .sub-menu a:hover{color:var(--blue);}
.drawer-tel{display:block;font-family:"IBM Plex Mono",monospace;font-size:13.5px;letter-spacing:.06em;
  margin-top:26px;color:var(--blue);text-decoration:none;padding:10px 0;}
.scrim{position:fixed;inset:0;background:rgba(10,16,23,.5);z-index:74;opacity:0;pointer-events:none;transition:opacity .3s;}
.scrim.on{opacity:1;pointer-events:auto;}

/* ── sections ─────────────────────────────────────────── */
.sec{padding:clamp(72px,8.5vw,144px) 0;}
.sec-sm{padding:clamp(52px,5.5vw,92px) 0;}
.sec-paper{background:var(--paper);}
.sec-paper2{background:var(--paper-2);}
.sec-card{background:var(--card);}
.sec-slate{background:var(--slate);color:#E5ECF3;}
.sec-night{background:var(--night);color:#E5ECF3;}
.sec-slate .eyebrow,.sec-night .eyebrow{color:rgba(229,236,243,.55);}
.sec-slate .lead,.sec-night .lead{color:rgba(229,236,243,.8);}
.sec-slate a,.sec-night a{color:inherit;}

/* ── hero ─────────────────────────────────────────────
   No panel, no card, no box. The headline is placed in a quadrant of the
   photograph that carries no subject; a soft directional wash from that same
   edge keeps the type legible without covering the aircraft.
   ──────────────────────────────────────────────────── */
/* The hero box takes its shape from the photograph, not from the viewport.
   Height is capped by a vw term, so the box can never be narrower than the
   art's own ratio: cover therefore never crops horizontally, and the only
   trimming that can happen is a few percent off the top and bottom on short
   windows. This is what stops aircraft being sliced.
   Home art is 16:9 (56.25vw). Interior art is 2.2:1 (45.45vw). */
.hero{position:relative;min-height:min(86vh,56.25vw);display:grid;background:var(--night);overflow:hidden;isolation:isolate;}
.hero-sm{min-height:min(74vh,45.45vw);}
.hero-frame{position:absolute;inset:0;z-index:0;display:block;}
.hero .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:1;transition:transform 9s ease-out;transform:scale(1.03);}
.hero .hero-bg.in{opacity:1;transform:none;}
.hero-frame::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,13,19,.40) 0%,rgba(8,13,19,.08) 34%,rgba(8,13,19,.44) 100%);}
.hero-wash{position:absolute;inset:0;display:block;}
.hero--bl .hero-wash,.hero--bls .hero-wash{background:linear-gradient(72deg,rgba(8,13,19,.72) 0%,rgba(8,13,19,.34) 34%,rgba(8,13,19,0) 62%);}
.hero--br .hero-wash{background:linear-gradient(-72deg,rgba(8,13,19,.72) 0%,rgba(8,13,19,.34) 34%,rgba(8,13,19,0) 62%);}
.hero--tl .hero-wash{background:linear-gradient(148deg,rgba(8,13,19,.74) 0%,rgba(8,13,19,.32) 38%,rgba(8,13,19,0) 66%);}
.hero--tr .hero-wash{background:linear-gradient(212deg,rgba(8,13,19,.74) 0%,rgba(8,13,19,.32) 38%,rgba(8,13,19,0) 66%);}

.hero-in{position:relative;z-index:2;width:100%;display:grid;color:#EDF2F7;
  padding-top:clamp(30px,4.4vw,64px);padding-bottom:clamp(34px,4.8vw,70px);}
.hero-type{max-width:min(100%,640px);}
.hero--bl .hero-in,.hero--bls .hero-in{align-content:end;justify-items:start;}
.hero--br .hero-in{align-content:end;justify-items:end;}
.hero--tl .hero-in{align-content:start;justify-items:start;}
.hero--tr .hero-in{align-content:start;justify-items:end;}
.hero--br .hero-type,.hero--tr .hero-type{text-align:right;}
.hero--br .acts,.hero--tr .acts{justify-content:flex-end;}
.hero--bls .hero-type{max-width:min(100%,420px);}
@media (min-width:761px){
  .hero--bls .crumb{max-width:min(78vw,620px);white-space:nowrap;}
}
/* ── phone: the photograph stops being a backdrop ──────
   A phone frame is far narrower than any of this artwork, so cover-cropping
   would cut every aircraft in half. Below 760px the picture is shown whole,
   at its own ratio, and the type sits beneath it on the night ground. Nothing
   is cropped and nothing sits on top of a subject.
   ──────────────────────────────────────────────────── */
@media (max-width:760px){
  .hero{display:block;min-height:0;height:auto;background:var(--night);}
  .hero-frame{position:relative;inset:auto;width:100%;display:block;aspect-ratio:16/9;}
  .hero-sm .hero-frame{aspect-ratio:2.2;}
  .hero .hero-bg{position:absolute;inset:0;}
  .hero-wash{display:none;}
  .hero-frame::after{background:linear-gradient(180deg,rgba(8,13,19,0) 62%,rgba(8,13,19,.55) 100%);}
  .hero-in{display:block;padding:22px 0 34px;}
  .hero-type,.hero--br .hero-type,.hero--tr .hero-type{text-align:left;max-width:100%;}
  .hero--br .acts,.hero--tr .acts{justify-content:flex-start;}
  .hero h1{max-width:100%;text-shadow:none;margin-bottom:16px;}
  .hero .lead{text-shadow:none;margin-bottom:24px;}
  .hero .eyebrow{text-shadow:none;margin-bottom:14px;}
  .hero .crumb{text-shadow:none;}
  .hero--br h1,.hero--tr h1{margin-left:0;}
}
.hero .eyebrow{color:rgba(237,242,247,.84);text-shadow:0 1px 14px rgba(8,13,19,.7);}
.hero h1{max-width:17ch;margin-bottom:20px;font-weight:200;text-shadow:0 2px 26px rgba(8,13,19,.52);}
.hero--br h1,.hero--tr h1{margin-left:auto;}
.hero h1 em{font-style:normal;font-weight:400;}
.hero .lead{color:rgba(237,242,247,.92);max-width:52ch;margin-bottom:30px;text-shadow:0 1px 18px rgba(8,13,19,.6);}
.hero .crumb{text-shadow:0 1px 12px rgba(8,13,19,.7);}
.acts{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.btn{display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  padding:16px 30px;font-size:15px;font-weight:500;letter-spacing:.01em;
  transition:background .2s,border-color .2s,transform .2s,color .2s;}
.btn-solid{background:#EDF2F7;color:#0A1017;}
.btn-solid:hover{background:#fff;transform:translateY(-1px);}
.btn-line{border:1px solid rgba(237,242,247,.45);color:#EDF2F7;backdrop-filter:blur(2px);}
.btn-line:hover{border-color:rgba(237,242,247,.85);background:rgba(237,242,247,.1);}
@media (max-width:640px){.btn{padding:14px 22px;font-size:14.5px;}}

/* ── the band under a hero ────────────────────────────
   Carries the lede when the photograph above is too full to take one,
   so a page never opens on a bare title.
   ──────────────────────────────────────────────────── */
.sec-under{background:var(--card);border-bottom:1px solid var(--rule);}
.under-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  gap:clamp(22px,4vw,72px);align-items:center;padding-top:clamp(26px,3vw,44px);padding-bottom:clamp(26px,3vw,44px);}
@media (max-width:900px){.under-grid{grid-template-columns:1fr;gap:24px;}}
.under-lede{margin:0;font-size:clamp(1.05rem,1.35vw,1.28rem);line-height:1.6;color:var(--ink);max-width:56ch;}
.spec-row{display:flex;flex-wrap:wrap;gap:clamp(14px,2.2vw,34px);list-style:none;margin:0;padding:0;justify-content:flex-start;}
@media (min-width:901px){.spec-row{justify-content:flex-end;}}
.spec-row li{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:baseline;gap:6px;white-space:nowrap;}
.spec-row .sv{font-family:"Newsreader",Georgia,serif;font-weight:400;font-size:clamp(1rem,1.3vw,1.15rem);line-height:1;color:var(--ink);}
.spec-row .sl{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);}
.under-link{grid-column:1/-1;}

/* ── quiet link ───────────────────────────────────────── */
.qlink{
  position:relative;display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  font-size:15px;color:var(--ink);border-bottom:1px solid var(--blue);padding-bottom:5px;
  transition:gap .25s,color .2s;
}
.qlink::after{content:"";position:absolute;left:0;right:0;top:-13px;bottom:-13px;}
.qlink:hover{gap:16px;color:var(--blue);}
.qlink svg{flex:0 0 auto;}
.sec-slate .qlink,.sec-night .qlink{color:#E5ECF3;border-bottom-color:var(--blue-lt);}
.sec-slate .qlink:hover,.sec-night .qlink:hover{color:var(--blue-lt);}

/* ── two-column intro ─────────────────────────────────── */
.split-2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(36px,6vw,110px);align-items:center;}
@media (max-width:960px){.split-2{grid-template-columns:1fr;gap:40px;}}
/* alternate the image side without reversing text direction */
.split-2.is-flipped > *:first-child{order:2;}
.split-2.is-flipped > *:last-child{order:1;}
@media (max-width:960px){
  .split-2.is-flipped > *:first-child{order:1;}
  .split-2.is-flipped > *:last-child{order:2;}
}
.head-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(30px,5vw,90px);align-items:end;margin-bottom:52px;}
@media (max-width:860px){.head-2{grid-template-columns:1fr;gap:18px;margin-bottom:36px;}}
figure{margin:0;}
figcaption{font-family:"IBM Plex Mono",monospace;font-size:12.5px;color:var(--muted);letter-spacing:.04em;margin-top:12px;line-height:1.65;}
.sec-slate figcaption,.sec-night figcaption{color:rgba(229,236,243,.55);}

.tagrow{display:flex;flex-wrap:wrap;gap:10px 0;margin:34px 0 0;padding:26px 0 0;list-style:none;border-top:1px solid var(--rule);}
.tagrow li{font-family:"IBM Plex Mono",monospace;font-size:12.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink-2);padding-right:20px;margin-right:20px;border-right:1px solid var(--rule);line-height:1.9;}
.tagrow li:last-child{border-right:none;}

/* ── ONE standard grid ────────────────────────────────── */
.one-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(229,236,243,.2);}
.one-grid > div{padding:32px 30px 10px;border-right:1px solid rgba(229,236,243,.2);}
.one-grid > div:last-child{border-right:none;}
.one-grid .k{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.14em;color:var(--blue-lt);display:block;margin-bottom:16px;}
.one-grid h3{margin-bottom:12px;font-weight:400;}
.one-grid p{font-size:1rem;line-height:1.65;color:rgba(229,236,243,.8);margin:0;}
@media (max-width:980px){
  .one-grid{grid-template-columns:1fr 1fr;}
  .one-grid > div{border-bottom:1px solid rgba(229,236,243,.2);padding:26px 24px;}
  .one-grid > div:nth-child(2n){border-right:none;}
  .one-grid > div:nth-last-child(-n+2){border-bottom:none;}
}
@media (max-width:600px){
  .one-grid{grid-template-columns:1fr;}
  .one-grid > div{border-right:none;padding:24px 0;}
  .one-grid > div:last-child{border-bottom:none;}
}
/* self-contained principles block dropped into page content */
.entry > .principles-block{max-width:none;margin:clamp(40px,5vw,68px) 0;}
.principles-block .one-grid{grid-template-columns:1fr 1fr;border-top:1px solid var(--rule);}
.principles-block .one-grid > div{padding:26px 26px 26px 0;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.principles-block .one-grid > div:nth-child(2n){border-right:none;padding-right:0;padding-left:26px;}
.principles-block .one-grid > div:nth-last-child(-n+2){border-bottom:none;}
.principles-block .one-grid p{color:var(--ink-2);}
.principles-block .one-grid .k{color:var(--blue);}
@media (max-width:700px){
  .principles-block .one-grid{grid-template-columns:1fr;}
  .principles-block .one-grid > div,
  .principles-block .one-grid > div:nth-child(2n){border-right:none;padding:24px 0;}
  .principles-block .one-grid > div:last-child{border-bottom:none;}
}

/* light variant used on The ONE Way */
.one-grid.on-paper{border-top-color:var(--rule);}
.one-grid.on-paper > div{border-right-color:var(--rule);border-bottom-color:var(--rule);}
.one-grid.on-paper .k{color:var(--blue);}
.one-grid.on-paper p{color:var(--ink-2);}

/* ── service tiles (homepage preview) ─────────────────
   grid-auto-rows:1fr plus a column flex on the card keeps every tile the
   same height at every breakpoint, whatever the copy length.
   ──────────────────────────────────────────────────── */
.svc-preview{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;
  gap:clamp(18px,1.9vw,32px) clamp(14px,1.6vw,26px);}
@media (max-width:1080px){.svc-preview{grid-template-columns:repeat(3,1fr);}}
@media (max-width:760px){.svc-preview{grid-template-columns:repeat(2,1fr);gap:26px 16px;}}
/* <picture> is a delivery wrapper, not a layout box. display:contents keeps
   every existing `.ph img` / `figure img` rule applying against the real
   container, so object-fit and absolute positioning behave unchanged. */
picture{display:contents;}

.svc{display:flex;flex-direction:column;height:100%;text-decoration:none;}
.svc .ph{display:block;position:relative;overflow:hidden;background:var(--paper-2);flex:0 0 auto;}
.svc .ph img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.2s cubic-bezier(.16,.7,.3,1),filter .5s;filter:saturate(.94);}
.svc:hover .ph img{transform:scale(1.05);filter:saturate(1.05);}
.svc .sv-body{display:flex;flex-direction:column;flex:1 1 auto;}
.svc-minor .ph{aspect-ratio:3/2;}
.svc-minor h3{font-size:1.02rem;font-family:"IBM Plex Sans",sans-serif;font-weight:600;
  margin:15px 0 5px;line-height:1.35;}
.svc-minor p{font-size:.95rem;color:var(--ink-2);margin:0;line-height:1.55;}

/* ── Services for You — eight cards, matched height ───
   The anchor itself is the flex column, the body grows, and the "Read more"
   line is pinned to the bottom so every card ends on the same line.
   ──────────────────────────────────────────────────── */
.svc-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;
  gap:clamp(26px,3vw,52px);}
@media (max-width:900px){.svc-cards{grid-template-columns:1fr;gap:32px;}}
.svc-card{
  display:flex;flex-direction:column;height:100%;text-decoration:none;background:var(--card);
  border:1px solid var(--rule);
  transition:border-color .3s cubic-bezier(.16,.7,.3,1),transform .4s cubic-bezier(.16,.7,.3,1),box-shadow .4s;
}
.svc-card:hover{border-color:var(--blue-lt);transform:translateY(-3px);
  box-shadow:0 18px 46px -28px rgba(11,26,44,.42);}
.svc-card .ph{display:block;overflow:hidden;background:var(--paper-2);aspect-ratio:16/10;flex:0 0 auto;}
.svc-card .ph img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.3s cubic-bezier(.16,.7,.3,1),filter .5s;filter:saturate(.95);}
.svc-card:hover .ph img{transform:scale(1.045);filter:saturate(1.05);}
.svc-card .cbody{display:flex;flex-direction:column;flex:1 1 auto;
  padding:clamp(22px,2.2vw,32px) clamp(22px,2.2vw,34px) clamp(22px,2.2vw,30px);}
.svc-card .rank{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--blue);display:block;margin:0 0 12px;}
.svc-card h3{font-size:clamp(1.24rem,1.75vw,1.6rem);margin:0 0 12px;line-height:1.2;}
.svc-card .ccard{display:block;font-family:"Newsreader",Georgia,serif;font-weight:300;font-style:italic;
  font-size:1.06rem;color:var(--ink);margin:0 0 12px;line-height:1.5;}
.svc-card .cshort{display:block;font-size:1rem;color:var(--ink-2);margin:0 0 20px;line-height:1.6;max-width:46ch;}
.svc-card .go{display:inline-flex;align-items:center;gap:9px;margin-top:auto;
  font-family:"IBM Plex Mono",monospace;font-size:12.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--blue);transition:gap .25s;}
.svc-card:hover .go{gap:15px;}
@media (max-width:520px){
  .svc-card .cbody{padding:22px 20px 24px;}
  .svc-card h3{font-size:1.2rem;}
  .svc-card .cshort{font-size:.96rem;}
}

/* ── service detail page ──────────────────────────────── */
.svc-what{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(30px,5vw,88px);align-items:start;}
@media (max-width:900px){.svc-what{grid-template-columns:1fr;gap:26px;}}
.svc-what h2{font-size:clamp(1.8rem,3vw,2.7rem);margin:0;}
.ex-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule);}
.ex-list li{
  display:grid;grid-template-columns:46px minmax(0,1fr);gap:clamp(12px,1.6vw,26px);
  align-items:baseline;padding:18px 0;border-bottom:1px solid var(--rule);
  font-size:1.06rem;line-height:1.6;color:var(--ink);
}
.ex-list li .n{font-family:"IBM Plex Mono",monospace;font-size:12.5px;letter-spacing:.12em;
  color:var(--blue);}
@media (max-width:520px){
  .ex-list li{grid-template-columns:34px minmax(0,1fr);gap:10px;padding:15px 0;font-size:.99rem;}
}
.svc-why{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(32px,5vw,90px);align-items:center;}
@media (max-width:960px){.svc-why{grid-template-columns:1fr;gap:34px;}}
.svc-why p{max-width:58ch;}
.svc-note{border-left:2px solid var(--blue-lt);padding-left:22px;margin-top:26px;
  font-size:1.02rem;line-height:1.72;color:var(--ink-2);max-width:52ch;}
.sec-slate .svc-note,.sec-night .svc-note{color:rgba(229,236,243,.82);}
.svc-exp{max-width:64ch;}

/* ── why-choose list (homepage) ───────────────────────── */
.why-list{margin-top:30px;border-top:1px solid rgba(229,236,243,.2);}
.why-list > div{display:grid;grid-template-columns:44px minmax(0,1fr);gap:clamp(12px,1.4vw,22px);
  padding:16px 0;border-bottom:1px solid rgba(229,236,243,.2);align-items:baseline;}
.why-list .k{font-family:"IBM Plex Mono",monospace;font-size:12.5px;letter-spacing:.12em;
  color:var(--blue-lt);}
.why-list p{margin:0;font-size:1rem;line-height:1.62;color:rgba(229,236,243,.78);}
.why-list p b{color:#EDF2F7;font-weight:500;}
@media (max-width:520px){
  .why-list > div{grid-template-columns:32px minmax(0,1fr);gap:10px;}
  .why-list p{font-size:.95rem;}
}

/* ── the ONE Way — long-form editorial blocks ─────────── */
.way-nav{display:flex;flex-wrap:wrap;gap:10px 28px;padding:20px 0;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  font-family:"IBM Plex Mono",monospace;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;}
.way-nav a{color:var(--ink-2);text-decoration:none;transition:color .25s;}
.way-nav a:hover{color:var(--blue);}
.way-head{margin-bottom:clamp(26px,3vw,44px);max-width:32ch;}
.way-head h2{margin:0;}
.way-body{max-width:62ch;}
.way-body .tagrow{margin-top:28px;}
.way-body p{margin:0 0 18px;}
.way-body p:last-child{margin-bottom:0;}
.way-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(26px,3.4vw,60px);}
@media (max-width:820px){.way-two{grid-template-columns:1fr;gap:24px;}}
.way-two p{margin:0 0 16px;color:var(--ink-2);line-height:1.68;}
.way-two p:last-child{margin-bottom:0;}
.way-two p b{color:var(--ink);font-weight:600;}
.sec-slate .way-two p,.sec-night .way-two p{color:rgba(229,236,243,.8);}
.sec-slate .way-two p b,.sec-night .way-two p b{color:#EDF2F7;font-weight:500;}
.sec-slate .ex-list,.sec-night .ex-list{border-top-color:rgba(229,236,243,.2);}
.sec-slate .ex-list li,.sec-night .ex-list li{border-bottom-color:rgba(229,236,243,.2);color:rgba(229,236,243,.82);}
.sec-slate .ex-list li .n,.sec-night .ex-list li .n{color:var(--blue-lt);}
.ex-list li b{font-weight:600;color:var(--ink);}
.sec-slate .ex-list li b,.sec-night .ex-list li b{color:#EDF2F7;font-weight:500;}
.tl{border-top:1px solid var(--rule);margin-top:8px;}
.tl > div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:clamp(14px,2vw,40px);
  padding:20px 0;border-bottom:1px solid var(--rule);align-items:baseline;}
.tl .yr{font-family:"IBM Plex Mono",monospace;font-size:13px;letter-spacing:.1em;color:var(--blue);}
.tl p{margin:0;font-size:1.02rem;line-height:1.65;color:var(--ink-2);max-width:56ch;}
.sec-slate .tl,.sec-night .tl{border-top-color:rgba(229,236,243,.2);}
.sec-slate .tl > div,.sec-night .tl > div{border-bottom-color:rgba(229,236,243,.2);}
.sec-slate .tl p,.sec-night .tl p{color:rgba(229,236,243,.78);}
.sec-slate .tl .yr,.sec-night .tl .yr{color:var(--blue-lt);}
@media (max-width:560px){
  .tl > div{grid-template-columns:1fr;gap:6px;padding:16px 0;}
  .tl p{font-size:.97rem;}
}

/* ── past operations ──────────────────────────────────
   Equal card heights were the brief. grid-auto-rows:1fr sets the row, the
   card fills it, and the metadata row is pushed to the bottom.
   ──────────────────────────────────────────────────── */
.filterbar{display:flex;flex-wrap:wrap;gap:8px 10px;list-style:none;margin:0 0 clamp(34px,3.6vw,52px);padding:0;}
.filterbar a{display:block;text-decoration:none;padding:8px 17px;border:1px solid var(--rule);
  font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-2);transition:border-color .2s,color .2s,background .2s;}
.filterbar a:hover{border-color:var(--blue-lt);color:var(--blue);}
.filterbar a.on{background:var(--blue);border-color:var(--blue);color:var(--on-blue);}

.rec-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(30px,4vw,72px);align-items:start;}
@media (max-width:980px){.rec-grid{grid-template-columns:1fr;gap:52px;}}
.rec{display:flex;flex-direction:column;height:100%;text-decoration:none;}
.rec .ph{display:block;overflow:hidden;background:var(--paper-2);aspect-ratio:3/2;flex:0 0 auto;}
.rec .ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.3s cubic-bezier(.16,.7,.3,1);}
.rec:hover .ph img{transform:scale(1.035);}
.rec .rbody{display:flex;flex-direction:column;flex:1 1 auto;}
.rec .tag{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--blue);display:block;margin:22px 0 10px;}
.rec h3{margin-bottom:12px;font-size:clamp(1.18rem,1.5vw,1.45rem);}
.rec p{font-size:.97rem;color:var(--ink-2);max-width:52ch;}
.rec .meta-row{margin-top:auto;}

/* small record cards used on the homepage preview */
.rec-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:clamp(22px,2.8vw,44px);}
@media (max-width:860px){.rec-preview{grid-template-columns:1fr;gap:34px;}}
.rec-mini{display:flex;flex-direction:column;height:100%;text-decoration:none;}
.rec-mini .ph{display:block;overflow:hidden;background:var(--paper-2);aspect-ratio:3/2;flex:0 0 auto;}
.rec-mini .ph img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.2s cubic-bezier(.16,.7,.3,1),filter .5s;filter:saturate(.94);}
.rec-mini:hover .ph img{transform:scale(1.045);filter:saturate(1.04);}
.rec-mini .rm-body{display:flex;flex-direction:column;flex:1 1 auto;}
.rec-mini h3{font-size:clamp(1.1rem,1.4vw,1.3rem);margin:16px 0 8px;line-height:1.3;}
.rec-mini p{margin:0;font-size:.97rem;line-height:1.6;color:var(--ink-2);}

.meta-row{display:flex;flex-wrap:wrap;gap:6px 24px;margin-top:18px;padding-top:14px;
  border-top:1px solid var(--rule);font-family:"IBM Plex Mono",monospace;font-size:12.5px;
  color:var(--ink-2);letter-spacing:.03em;line-height:1.7;}
.meta-row b{color:var(--ink-2);font-weight:500;}
.sec-slate .meta-row,.sec-night .meta-row{border-top-color:rgba(229,236,243,.2);color:rgba(229,236,243,.6);}
.sec-slate .meta-row b,.sec-night .meta-row b{color:rgba(229,236,243,.85);}

/* archive grid */
.rec-archive{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:clamp(24px,2.6vw,44px);}
@media (max-width:1000px){.rec-archive{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.rec-archive{grid-template-columns:1fr;gap:36px;}}
.rec-archive .rec .ph{aspect-ratio:4/3;}
.rec-archive .rec p{font-size:.94rem;}

/* ── bleed figure ─────────────────────────────────────── */
.bleedfig img{width:100%;height:clamp(300px,54vh,620px);object-fit:cover;display:block;}
.detail-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  gap:clamp(28px,5vw,90px);align-items:start;padding-top:clamp(34px,4vw,58px);}
@media (max-width:820px){.detail-copy{grid-template-columns:1fr;gap:16px;}}
.detail-copy h2{font-size:clamp(1.7rem,2.8vw,2.6rem);}

/* ── history / quote ──────────────────────────────────── */
.hist{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(36px,5.5vw,100px);align-items:start;}
@media (max-width:960px){.hist{grid-template-columns:1fr;gap:44px;}}
.stat-row{display:flex;gap:clamp(24px,4vw,64px);margin:32px 0 34px;flex-wrap:wrap;}
.stat .v{font-family:"Newsreader",Georgia,serif;font-weight:300;font-size:clamp(2rem,3.4vw,3rem);line-height:1;display:block;}
.stat .l{font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;
  color:rgba(229,236,243,.7);margin-top:9px;display:block;}
.sec-paper .stat .l,.sec-paper2 .stat .l,.sec-card .stat .l{color:var(--muted);}
.quote-zh{font-family:"Newsreader",Georgia,serif;font-weight:300;font-size:clamp(1.1rem,1.65vw,1.4rem);
  line-height:1.95;margin:0 0 24px;color:#EDF2F7;}
.quote-en{font-size:1.05rem;line-height:1.78;color:rgba(229,236,243,.84);
  border-left:2px solid var(--blue-lt);padding-left:22px;margin:0 0 22px;}
.quote-attr{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(229,236,243,.68);margin:0;}

/* ── client voice ─────────────────────────────────────── */
.quote-band{max-width:74ch;}
.quote-lg{font-family:"Newsreader",Georgia,serif;font-weight:300;font-style:italic;
  font-size:clamp(1.25rem,2.1vw,1.85rem);line-height:1.5;margin:0 0 22px;color:#EDF2F7;
  border-left:2px solid var(--blue-lt);padding-left:clamp(20px,2.4vw,34px);}
.sec-night .quote-attr,.sec-slate .quote-attr{color:rgba(229,236,243,.66);}

/* ── contact ──────────────────────────────────────────── */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,96px);align-items:start;}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr;gap:40px;}}
.contact-lines a{display:block;text-decoration:none;}
.contact-lines .tel{font-family:"Newsreader",Georgia,serif;font-weight:300;
  font-size:clamp(2.1rem,4vw,3.2rem);line-height:1.1;letter-spacing:-.01em;
  border-bottom:1px solid var(--rule);padding-bottom:14px;margin-bottom:14px;transition:border-color .25s;}
.contact-lines .tel:hover{border-bottom-color:var(--blue);}
.contact-lines .mail{font-size:1.05rem;color:var(--ink-2);padding:4px 0;transition:color .2s;}
.contact-lines .mail:hover{color:var(--blue);}
.contact-lines .where{font-family:"IBM Plex Mono",monospace;font-size:12.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-2);margin-top:18px;line-height:1.7;}

/* ── editor content (pages) ───────────────────────────── */
.entry{max-width:none;}
.entry > *{max-width:66ch;}
.entry > .alignwide,.entry > .alignfull,.entry > figure,.entry > .wp-block-columns,
.entry > .wp-block-group,.entry > .wp-block-image{max-width:none;}
.entry h2{margin:clamp(48px,5vw,80px) 0 18px;}
.entry h3{margin:38px 0 12px;font-size:clamp(1.15rem,1.6vw,1.45rem);}
.entry h4{margin:30px 0 10px;font-family:"IBM Plex Sans",sans-serif;font-weight:600;font-size:1.02rem;letter-spacing:0;}
.entry p{margin:0 0 18px;}
.entry ul,.entry ol{margin:0 0 20px;padding-left:22px;max-width:64ch;}
.entry li{margin-bottom:9px;}
.entry hr{border:none;border-top:1px solid var(--rule);margin:clamp(44px,5vw,72px) 0;}
.entry blockquote{margin:32px 0;padding-left:24px;border-left:2px solid var(--blue);}
.entry blockquote p{font-family:"Newsreader",Georgia,serif;font-size:1.3rem;line-height:1.6;color:var(--ink);}
.entry .wp-block-image{margin:clamp(34px,4vw,60px) 0;}
.entry figcaption{margin-top:10px;}
.entry strong{font-weight:600;}
.entry a:not(.btn):not(.qlink){color:var(--blue);text-decoration:none;border-bottom:1px solid currentColor;}

/* two-col prose helper used on long pages */
.prose-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,72px);}
@media (max-width:860px){.prose-2{grid-template-columns:1fr;gap:0;}}
.prose-2 p{max-width:56ch;}

/* numbered principle list */
.principles{border-top:1px solid var(--rule);margin-top:44px;}
.principle{display:grid;grid-template-columns:60px minmax(0,1fr) minmax(0,1.2fr);gap:clamp(20px,3vw,48px);
  padding:34px 0;border-bottom:1px solid var(--rule);align-items:start;}
@media (max-width:820px){.principle{grid-template-columns:1fr;gap:10px;padding:26px 0;}}
.principle .k{font-family:"IBM Plex Mono",monospace;font-size:11.5px;color:var(--blue);padding-top:8px;}
.principle h3{margin:0;}
.principle p{margin:0;color:var(--ink-2);}

/* ── footer ───────────────────────────────────────────── */
.site-footer{background:var(--night);color:rgba(229,236,243,.7);padding:clamp(56px,6vw,86px) 0 40px;}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;}
@media (max-width:860px){.fgrid{grid-template-columns:1fr 1fr;gap:34px;}}
@media (max-width:520px){.fgrid{grid-template-columns:1fr;}}
.fmark{display:block;margin-bottom:22px;}
.fmark img{height:52px;width:auto;display:block;}
@media (max-width:860px){.fmark img{height:44px;}}
.site-footer a{color:rgba(229,236,243,.82);text-decoration:none;display:block;padding:6px 0;font-size:15px;}
.site-footer a:hover{color:#fff;}
.site-footer ul{list-style:none;margin:0;padding:0;}
.fh{font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;
  color:rgba(229,236,243,.6);margin-bottom:14px;}
.legal{border-top:1px solid rgba(229,236,243,.13);margin-top:46px;padding-top:22px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13.5px;color:rgba(229,236,243,.6);}

/* ── breadcrumb / page head ───────────────────────────── */
.crumb{font-family:"IBM Plex Mono",monospace;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(237,242,247,.78);margin-bottom:18px;line-height:1.6;}
.crumb a{text-decoration:none;border-bottom:1px solid transparent;}
.crumb a:hover{border-bottom-color:currentColor;}

/* ── reveal ───────────────────────────────────────────── */
.rv{opacity:0;transform:translateY(20px);transition:opacity .9s ease,transform .9s cubic-bezier(.16,.7,.3,1);}
.rv.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none;}
  .hero .hero-bg{transition:none;transform:none;opacity:1;}
  .svc .ph img,.rec .ph img{transition:none;}
}

/* ── pagination ───────────────────────────────────────── */
.pagination{margin-top:clamp(44px,5vw,72px);display:flex;gap:14px;flex-wrap:wrap;
  font-family:"IBM Plex Mono",monospace;font-size:14px;}
.pagination .page-numbers{padding:9px 14px;border:1px solid var(--rule);text-decoration:none;}
.pagination .current{background:var(--blue);color:var(--on-blue);border-color:var(--blue);}

/* ── drawer submenu toggle ────────────────────────────── */
.drawer .menu-item-has-children{position:relative;}
.drawer .sub-toggle{position:absolute;top:6px;right:-6px;width:46px;height:46px;background:none;border:none;
  cursor:pointer;color:var(--ink-2);display:grid;place-items:center;}
.drawer .sub-toggle span{display:block;width:9px;height:9px;border-right:1.4px solid currentColor;
  border-bottom:1.4px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .25s;}
.drawer .sub-toggle[aria-expanded="true"] span{transform:rotate(-135deg) translate(-2px,-2px);}
