/* PORTAL20 · HANDLE Studio landing (design supplied by Tom) — all rules scoped to #landing */
html.ld-on,html.ld-on body{overflow:hidden}
#landing{--ink:#181916;--muted:#535650;--paper:#f4f3f1;--line:#d8d8d1;--yellow:#f3ff51;--purple:#ccaed0;--blue:#3a5bff;--gutter:clamp(20px,5vw,80px);
  position:fixed;inset:0;z-index:100;overflow-y:auto;background:#fff;color:var(--ink);font-family:"ABC Oracle",Oracle,Arial,sans-serif;-webkit-font-smoothing:antialiased}
#landing *{box-sizing:border-box}
#landing figure,#landing h1,#landing h2,#landing h3,#landing p{margin:0}
#landing a{color:inherit;text-decoration:none}
#landing a:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
#landing h1,#landing h2,#landing h3{font-family:inherit!important;font-weight:400!important}
.lx-head,.lx-foot{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:18px var(--gutter);min-height:76px}
.lx-head{border-bottom:1px solid var(--line)}
.lx-mark{display:inline-flex;align-items:center;gap:11px;white-space:nowrap}
.lx-logo svg{display:block;height:29px;width:auto}.lx-logo.sm svg{height:24px}
.lx-sub{font-size:17px;border-left:1px solid var(--line);padding-left:11px}
#landing nav{display:flex;align-items:center;gap:clamp(14px,2vw,34px);font-size:14px}
.lx-enter{border:1px solid var(--line);padding:10px 13px;white-space:nowrap}
.lx-enter:hover{border-color:var(--ink)}
.lx-opt:hover,.lx-secondary:hover,.lx-foot>a:hover{text-decoration:underline;text-underline-offset:5px}
.lx-hero{display:grid;grid-template-columns:1fr 1fr;min-height:clamp(525px,48vw,690px);background:var(--paper)}
.lx-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:55px 36px 64px var(--gutter)}
.lx-eye{display:flex;align-items:center;gap:9px;font-size:11px;letter-spacing:.15em}
.lx-dot{width:9px;height:9px;flex:none;border-radius:50%;background:var(--yellow)}
.lx-dot.purple{background:var(--purple)}.lx-dot.blue{background:var(--blue)}
#landing h1{margin:25px 0 21px;font-size:clamp(48px,7.5vw,115px);line-height:.92;letter-spacing:-.065em}
#landing h2{font-size:clamp(32px,4vw,57px);line-height:1.04;letter-spacing:-.055em}
.lx-intro,.lx-mcopy p{max-width:36ch;color:var(--muted);font-size:clamp(16px,1.4vw,21px);line-height:1.5}
.lx-actions{display:flex;flex-wrap:wrap;align-items:center;gap:15px 24px;margin-top:30px}
.lx-primary,.lx-secondary{display:inline-flex;align-items:center;gap:20px;min-height:46px;padding:13px 17px}
.lx-primary{background:var(--yellow)}
.lx-primary:hover{background:var(--ink);color:#fff}
.lx-secondary{padding-inline:0}
.lx-media{position:relative;overflow:hidden;background-position:50% 43%!important}
.lx-media figcaption{position:absolute;right:18px;bottom:18px;padding:9px 11px;background:var(--paper);font-size:10px;letter-spacing:.12em}
.lx-mission{display:grid;grid-template-columns:minmax(120px,.58fr) 1.75fr 1.15fr;align-items:start;gap:clamp(20px,4vw,64px);padding:70px var(--gutter);border-bottom:1px solid var(--line)}
.lx-mission>.lx-eye{margin-top:9px}
.lx-mcopy p{margin-top:16px}
.lx-mimg{width:100%;height:185px}
.lx-work{padding:65px var(--gutter) 78px}
.lx-work h2{margin:13px 0 30px!important}
.lx-routes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--line)}
.lx-routes a{position:relative;padding:18px 18px 24px;min-height:158px;border-right:1px solid var(--line)}
.lx-routes a:first-child{border-left:1px solid var(--line)}
.lx-routes a:hover{background:var(--paper)}
.lx-num{color:var(--muted);font-size:12px}
#landing .lx-routes h3{margin:15px 0 7px;font-size:clamp(18px,1.7vw,25px);letter-spacing:-.035em}
.lx-routes p{max-width:23ch;color:var(--muted);font-size:14px;line-height:1.4}
.lx-arrow{position:absolute;right:17px;top:15px}
.lx-foot{flex-wrap:wrap;border-top:1px solid var(--line);background:var(--paper);font-size:14px}
.lx-foot small{color:var(--muted)}
@media(max-width:850px){.lx-mission{grid-template-columns:1fr 1fr}.lx-mission>.lx-eye{grid-column:1/-1}.lx-routes{grid-template-columns:repeat(2,1fr)}.lx-routes a:nth-child(3){border-left:1px solid var(--line)}.lx-routes a:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:610px){.lx-head{min-height:62px;padding-block:12px}.lx-logo svg{height:20px}.lx-sub{font-size:14px}.lx-opt{display:none}.lx-enter{font-size:12px;padding:8px}
  .lx-hero,.lx-mission{grid-template-columns:1fr}.lx-copy{padding:35px var(--gutter) 34px}.lx-media{min-height:330px;background-position:50% 37%!important}.lx-mission,.lx-work{padding-block:40px}.lx-routes a{padding-inline:12px}}
/* guard against site-wide heading/paragraph rules */
#landing h3{text-transform:none!important;color:inherit!important;letter-spacing:-.035em!important;font-size:clamp(18px,1.7vw,25px)!important}
#landing .lx-mcopy p{margin-top:16px}
#landing h2{margin:0}

/* ---------- PORTAL20 colour options (comb removed) ---------- */
#landing{--red:#f9423a;--green:#00ab84}
.lx-art{position:absolute;inset:0;display:grid}
.lx-art .t{display:none;position:relative}
.lx-art .t em{position:absolute;left:18px;bottom:16px;font-style:normal;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.lx-h{display:none}
.lx-h svg{width:100%;height:auto;display:block}
.lx-h svg g{fill:currentColor}
.lx-routes a{transition:background .2s,color .2s}
/* A · Colour field: blue panel, yellow H, coloured route bars */
.lx-a .lx-media{background:var(--blue)}
.lx-a .lx-h{display:block;position:absolute;left:50%;top:50%;width:46%;transform:translate(-50%,-52%);color:var(--yellow)}
.lx-a .lx-routes a{border-top:6px solid var(--c)}
.lx-a .lx-mimg{background:var(--purple)!important}
/* B · Swatch grid: four brand-colour tiles */
.lx-b .lx-art{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.lx-b .lx-art .t{display:block}
.lx-b .t1{background:var(--yellow)}.lx-b .t2{background:var(--purple)}.lx-b .t3{background:var(--blue);color:#fff}.lx-b .t4{background:var(--green);color:#fff}
.lx-b .lx-h{display:block;position:absolute;right:28px;top:26px;width:58px;color:var(--ink)}
.lx-b .lx-routes a:hover{background:var(--c);color:var(--ct)}.lx-b .lx-routes a:hover p,.lx-b .lx-routes a:hover .lx-num{color:inherit;opacity:.8}
.lx-b .lx-mimg{background:var(--yellow)!important}
/* C · Bold: yellow panel, black H, full-colour route cards, colour stripe */
#landing.lx-c{border-top:6px solid;border-image:linear-gradient(90deg,var(--yellow) 0 25%,var(--purple) 25% 50%,var(--blue) 50% 75%,var(--green) 75%) 1}
.lx-c .lx-media{background:var(--yellow)}
.lx-c .lx-h{display:block;position:absolute;left:50%;top:50%;width:40%;transform:translate(-50%,-52%);color:var(--ink)}
.lx-c .lx-routes{border:0;gap:12px}
.lx-c .lx-routes a{background:var(--c);color:var(--ct);border:0!important}
.lx-c .lx-routes a p,.lx-c .lx-routes a .lx-num{color:inherit;opacity:.8}
.lx-c .lx-routes a:hover{filter:brightness(.95)}
.lx-c .lx-mimg{background:var(--blue)!important}
.lx-c .lx-primary{background:var(--ink);color:#fff}.lx-c .lx-primary:hover{background:var(--blue)}
/* route colours */
.lx-routes a:nth-child(1){--c:var(--yellow);--ct:var(--ink)}
.lx-routes a:nth-child(2){--c:var(--purple);--ct:var(--ink)}
.lx-routes a:nth-child(3){--c:var(--blue);--ct:#fff}
.lx-routes a:nth-child(4){--c:var(--green);--ct:#fff}
.lx-media figcaption{z-index:2}
#landing.lx-c .lx-primary{background:var(--ink);color:#fff}#landing.lx-c .lx-primary:hover{background:var(--blue)}

/* PORTAL21 · mission = circular flow wheel */
.lx-mission{grid-template-columns:minmax(120px,.5fr) 1.5fr 1.2fr!important;align-items:center!important}
.lx-wheelbox{width:100%;max-width:440px;justify-self:center}
.lx-wheel{width:100%;height:auto;display:block;font-family:"ABC Oracle",Oracle,Arial,sans-serif}
.lx-steps{list-style:none;counter-reset:s;padding:0;margin:24px 0 0;display:grid;gap:8px;font-size:14px;color:var(--muted)}
.lx-steps li{counter-increment:s;display:flex;gap:10px;align-items:baseline}
.lx-steps li:before{content:counter(s,decimal-leading-zero);font-size:11px;color:var(--ink);min-width:20px}
.lx-steps b{font-weight:400;color:var(--ink)}
#landing .lx-mission h2{max-width:16ch}
@media(max-width:850px){.lx-mission{grid-template-columns:1fr!important}.lx-wheelbox{max-width:360px}}
.lx-b .lx-media figcaption{display:none}
.lx-mission>.lx-eye{align-self:start!important}
.lx-steps li{display:block}
.lx-steps li:before{display:inline-block;width:28px}

/* PORTAL23 · What we do: swap statements */
.lx-swaps{list-style:none;padding:0;margin:26px 0 22px;display:grid;gap:10px}
.lx-swaps li{font-size:clamp(20px,2vw,30px);line-height:1.2;letter-spacing:-.03em}
.lx-swaps s{color:var(--muted);text-decoration-thickness:2px}
.lx-swaps mark{color:var(--ink);padding:0 .15em}
.lx-swaps mark.y{background:var(--yellow)}.lx-swaps mark.p{background:var(--purple)}.lx-swaps mark.g{background:var(--green);color:#fff}
#landing .lx-mcopy p{margin-top:0}
#landing .lx-mission h2{max-width:18ch}

.lx-uk{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.lx-uk span{border:1px solid var(--ink);padding:7px 12px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}

/* PORTAL26 · two-line headline, no swap lines */
.lx-mission{grid-template-columns:minmax(110px,.42fr) 1.9fr 1fr!important}
#landing .lx-mission h2{max-width:none;font-size:clamp(28px,3vw,46px)}
#landing .lx-mission h2 span{display:block;white-space:nowrap}
.lx-uk{margin:24px 0 22px}
@media(max-width:850px){#landing .lx-mission h2 span{white-space:normal}}
/* PORTAL28 · route cards: A = coloured number squares, B = full colour fill */
.rt-num .lx-routes .lx-num{display:inline-grid;place-items:center;width:34px;height:34px;background:var(--c);color:var(--ct)!important;font-size:13px}
.rt-fill .lx-routes{border:0;gap:10px}
.rt-fill .lx-routes a,.rt-fill .lx-routes a:first-child{background:var(--c);color:var(--ct);border:0!important}
.rt-fill .lx-routes a p,.rt-fill .lx-routes a .lx-num{color:inherit!important;opacity:.85}
.rt-fill .lx-routes a:hover{background:var(--c);filter:brightness(.94)}
#landing.rt-fill .lx-routes a{color:var(--ct)}#landing.rt-fill .lx-routes a p,#landing.rt-fill .lx-routes a .lx-num{color:var(--ct)!important}#landing.rt-num .lx-routes .lx-num{color:var(--ct)!important}

/* ---------- PORTAL30 · one-screen landing with top-nav views ---------- */
#landing.lx-app{display:flex;flex-direction:column}
.lx-app .lx-views{flex:1;display:flex;min-height:0}
.lx-app .lx-view{display:none!important;flex:1;animation:lxIn .35s ease}
.lx-app .lx-view.on{display:grid!important}
@keyframes lxIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.lx-app .lx-opt.cur{text-decoration:underline;text-underline-offset:6px}
.lx-app .lx-enter{background:var(--ink);color:#fff!important;border-color:var(--ink)}
.lx-app .lx-enter:hover{background:#000}
/* home: copy left, four route tiles right */
.lx-app .lx-hero{min-height:calc(100vh - 77px)}
.lx-tiles{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.lx-tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:22px 24px 24px;cursor:pointer;background:var(--c);color:var(--ct);outline:none;transition:filter .2s}
.lx-tile.t1{--c:var(--yellow);--ct:var(--ink)}.lx-tile.t2{--c:var(--purple);--ct:var(--ink)}.lx-tile.t3{--c:var(--blue);--ct:#fff}.lx-tile.t4{--c:var(--green);--ct:#fff}
.lx-tile:hover,.lx-tile:focus-visible{filter:brightness(.96)}
.lx-tile .lx-num{position:absolute;left:22px;top:20px;font-size:12px;color:inherit!important;opacity:.75}
.lx-tile>b{font-weight:400;font-size:clamp(30px,3.4vw,52px);letter-spacing:-.05em;line-height:1}
.lx-plus{position:absolute;right:20px;top:16px;font-style:normal;font-size:26px;line-height:1;transition:transform .25s}
.lx-tile.open .lx-plus{transform:rotate(45deg)}
.lx-blurb{max-height:0;overflow:hidden;opacity:0;transition:max-height .35s ease,opacity .3s ease,margin .3s}
.lx-tile.open .lx-blurb{max-height:220px;opacity:1;margin-top:12px}
.lx-blurb p{font-size:14.5px;line-height:1.45;max-width:30ch;margin:0 0 12px!important}
.lx-blurb a{display:inline-flex;gap:10px;align-items:center;font-size:14px;border-bottom:1px solid currentColor;padding-bottom:2px}
.lx-tiles .lx-h{display:block!important;position:absolute;left:50%;top:50%;width:54px;transform:translate(-50%,-50%);color:var(--ink);background:#fff;padding:10px 9px;pointer-events:none}
/* pages behind the nav */
.lx-app .lx-page{align-content:center;padding:60px var(--gutter);background:var(--paper)}
.lx-app .lx-page h2{margin:16px 0 18px;max-width:20ch;font-size:clamp(34px,4.4vw,66px)!important}
.lx-app .lx-page .lx-intro{max-width:48ch}
.lx-app .lx-page2{border:0;background:var(--paper);align-content:center}
.lx-feat{list-style:none;padding:0;margin:8px 0 6px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:1100px}
.lx-feat li{background:#fff;border:1px solid var(--line);padding:16px;font-size:13.5px;line-height:1.45;color:var(--muted)}
.lx-feat b{display:block;font-weight:400;color:var(--ink);font-size:17px;margin-bottom:6px;letter-spacing:-.02em}
#landing.lx-app .lx-primary{background:var(--yellow);color:var(--ink)}
#landing.lx-app .lx-primary:hover{background:var(--ink);color:#fff}
@media(max-width:850px){.lx-feat{grid-template-columns:1fr 1fr}}
@media(max-width:610px){.lx-app .lx-hero{min-height:0}.lx-tiles{min-height:420px}.lx-app .lx-opt{display:inline;font-size:12px}.lx-app nav{gap:10px}.lx-feat{grid-template-columns:1fr}}
#landing.lx-app .lx-page h2{margin:16px 0 22px!important}
/* PORTAL31 · nav links top left beside logo, login stays top right */
.lx-app .lx-head{justify-content:flex-start;gap:40px}
.lx-app .lx-head nav{flex:1;display:flex;align-items:center;gap:26px}
.lx-app .lx-head #lxLogin{margin-left:auto}
/* PORTAL37 · landing on phones */
@media (max-width:760px){
  #landing.lx-app .lx-head{flex-wrap:wrap;gap:10px 12px;padding:14px 18px}
  #landing.lx-app .lx-head .lx-logo{width:118px}
  #landing.lx-app .lx-head .lx-sub{display:none}
  #landing.lx-app .lx-head nav{display:contents}
  #landing.lx-app .lx-head #lxLogin{order:2;margin-left:auto;padding:8px 14px;font-size:13px}
  #landing.lx-app .lx-head .lx-opt{order:3;display:inline-block!important;font-size:13px;white-space:nowrap}
  #landing.lx-app .lx-head .lx-opt:first-of-type{margin-left:0}
  #landing.lx-app .lx-head::after{content:'';order:2;flex-basis:100%;height:0}
  .lx-app .lx-hero.on{display:block!important;min-height:0}
  .lx-app .lx-hero .lx-copy{padding:28px 18px 26px}
  .lx-app .lx-hero h1{font-size:46px!important}
  .lx-tiles{min-height:0!important;grid-template-columns:1fr;grid-template-rows:none}
  .lx-tile{min-height:0;padding:44px 18px 18px}
  .lx-tiles .lx-h{display:none!important}
  .lx-blurb p{max-width:none}
  .lx-tile>b{font-size:30px}
  .lx-app .lx-page{padding:34px 18px}
  .lx-app .lx-page2.on{display:block!important;padding:34px 18px}
  .lx-app .lx-page2 .lx-mcopy,.lx-app .lx-page2 h2{max-width:100%}
  .lx-app .lx-page2 h2{font-size:34px!important}
  .lx-uk{flex-wrap:wrap}
  .lx-wheelbox{max-width:280px;margin:24px auto 0}
}
/* PORTAL38 · phones: headline + Enter Studio only (no nav pages, no Buy/Customise/Design/Build) */
@media (max-width:760px){
  #landing.lx-app .lx-head .lx-opt,#landing.lx-app .lx-head::after,.lx-app .lx-tiles{display:none!important}
  #landing.lx-app .lx-head{flex-wrap:nowrap}
  .lx-app .lx-hero.on{display:flex!important;align-items:center;min-height:calc(100svh - 70px)}
  .lx-app .lx-hero .lx-copy{padding:24px 22px 40px}
  .lx-app .lx-hero h1{font-size:54px!important}
}
/* PORTAL39 · keep "Studio" next to the logo on phones */
@media (max-width:760px){#landing.lx-app .lx-head .lx-sub{display:inline-block!important;font-size:15px;margin-left:10px;padding-left:10px}}
@media (max-width:760px){#landing.lx-app .lx-mark{display:flex;align-items:center;min-width:0}#landing.lx-app .lx-head .lx-logo{width:104px;flex:none;display:block}#landing.lx-app .lx-head .lx-logo svg{width:100%!important;height:auto!important;display:block}#landing.lx-app .lx-head #lxLogin{white-space:nowrap;padding:8px 12px}}
/* PORTAL40 · phones: landing top bar matches the catalogue top bar */
@media (max-width:760px){
  #landing.lx-app .lx-head{background:rgba(245,243,238,.95);border-bottom:1px solid #e5e0d6}
  #landing.lx-app .lx-head .lx-sub{font-family:Inter,system-ui,sans-serif;font-size:13px;color:#1b1b19}
  #landing.lx-app .lx-head #lxLogin{background:#faf9f6!important;color:#1b1b19!important;border:1px solid #e5e0d6!important;border-radius:99px;font-family:Inter,system-ui,sans-serif;font-weight:500;font-size:13px;padding:7px 12px}
}
/* PORTAL42 · phones: Our Mission / What We Do / Why Us / Partners as four colour blocks */
.lx-itiles{display:none}
@media (max-width:760px){
  .lx-app .lx-hero.on{display:block!important;min-height:0}
  .lx-app .lx-hero .lx-copy{padding:34px 22px 30px}
  .lx-itiles{display:grid;grid-template-columns:1fr}
  .lx-itiles .lx-tile{min-height:0;padding:40px 20px 18px}
  .lx-itiles .lx-tile>b{font-size:32px}
  .lx-itiles .lx-tile.open .lx-blurb{max-height:420px}
  .lx-itiles .lx-blurb p{font-size:15px;line-height:1.45;margin:0 0 8px!important;max-width:none}
  .lx-itiles .lx-blurb p:first-child{font-size:18px;line-height:1.3}
  .lx-itiles .lx-blurb ul{margin:0;padding:0 0 0 18px;font-size:15px;line-height:1.5}
  .lx-itiles .lx-blurb li{margin:0 0 4px}
  .lx-mtags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
  .lx-mtags span{border:1px solid currentColor;padding:5px 8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
  .lx-plogos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
  .lx-plogos span{display:grid;place-items:center;height:44px;background:rgba(255,255,255,.18);border:1px dashed currentColor;font-size:11px;opacity:.85}
}
/* PORTAL43 · phones: square blocks, tapped block fills the whole area */
@media (max-width:760px){
  .lx-itiles{grid-template-columns:1fr 1fr;scroll-margin-top:70px}
  .lx-itiles .lx-tile{aspect-ratio:1/1;padding:16px 16px 18px;justify-content:flex-end}
  .lx-itiles .lx-tile>b{font-size:26px;line-height:1.02}
  .lx-itiles .lx-tile .lx-num{left:16px;top:14px}
  .lx-itiles .lx-plus{right:14px;top:10px}
  .lx-itiles:has(.lx-tile.open) .lx-tile:not(.open){display:none}
  .lx-itiles .lx-tile.open{grid-column:1/-1;aspect-ratio:auto;min-height:100vw;justify-content:flex-start;padding:52px 22px 26px;cursor:default}
  .lx-itiles .lx-tile.open>b{font-size:38px}
  .lx-itiles .lx-tile.open .lx-blurb{max-height:none;overflow:visible;margin-top:14px}
  .lx-itiles .lx-tile.open .lx-plus{cursor:pointer;font-size:30px}
  .lx-itiles .lx-lead{font-size:20px!important;line-height:1.25!important;margin:0 0 12px!important}
  .lx-itiles .lx-small{font-size:13px!important;opacity:.9}
  .lx-mwheel{width:210px;margin:6px auto 14px;background:#fff;border-radius:50%;padding:8px}
  .lx-mwheel svg{width:100%;height:auto;display:block}
  .lx-flow{margin:0 0 12px;display:grid;gap:2px}
  .lx-flow dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-top:8px;opacity:.85}
  .lx-flow dd{margin:0;font-size:15px;line-height:1.4}
  .lx-cta{display:inline-flex;gap:8px;margin-top:10px;font-size:14px;border-bottom:1px solid currentColor;padding-bottom:2px;color:inherit!important}
  .lx-plogos span{font-size:14px;font-weight:600;opacity:1;border-style:solid;height:52px}
}
@media (max-width:760px){.lx-itiles{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lx-itiles .lx-tile{min-width:0;overflow:hidden}.lx-itiles .lx-tile:not(.open)>b{font-size:clamp(20px,6.4vw,26px);overflow-wrap:break-word}}
/* PORTAL44 · phones: opened block stays inside the 2×2 square, neutral panel with a small colour tab */
@media (max-width:760px){
  .lx-itiles{position:relative;aspect-ratio:1/1}
  .lx-itiles:has(.lx-tile.open) .lx-tile:not(.open){display:flex}
  .lx-itiles .lx-tile.open{position:absolute;inset:0;z-index:2;min-height:0;aspect-ratio:auto;background:#faf9f6;color:#1b1b19;padding:20px 20px 18px;overflow-y:auto;justify-content:flex-start;border-top:6px solid var(--c);animation:lxIn .25s ease}
  .lx-itiles .lx-tile.open .lx-num{position:static;display:inline-flex;align-items:center;gap:8px;opacity:1;color:#1b1b19!important;margin-bottom:6px}
  .lx-itiles .lx-tile.open .lx-num::before{content:'';width:12px;height:12px;background:var(--c);display:inline-block}
  .lx-itiles .lx-tile.open>b{font-size:28px;color:#1b1b19}
  .lx-itiles .lx-tile.open .lx-plus{top:14px;right:16px;color:#1b1b19;font-size:26px}
  .lx-itiles .lx-tile.open .lx-blurb{margin-top:10px}
  .lx-itiles .lx-lead{font-size:17px!important;line-height:1.3!important;margin:0 0 8px!important}
  .lx-itiles .lx-blurb p{font-size:14px;line-height:1.45}
  .lx-itiles .lx-blurb ul{font-size:14px;line-height:1.45}
  .lx-wtop{display:grid;grid-template-columns:1fr 84px;gap:12px;align-items:center}
  .lx-wtop .lx-mwheel{width:84px;margin:0;padding:0;background:none}
  .lx-wtop .lx-mwheel text{display:none}
  .lx-flow{grid-template-columns:auto 1fr;gap:5px 12px;margin:6px 0 4px}
  .lx-flow dt{margin:0;font-size:10.5px;padding-top:2px}
  .lx-flow dd{font-size:14px;line-height:1.3}
  .lx-cta{margin-top:8px;font-size:13.5px}
  .lx-mtags span{border-color:#1b1b19}
  .lx-plogos span{background:#fff;border:1px solid #e5e0d6;color:#1b1b19;height:46px}
}
@media (max-width:360px){.lx-wtop{grid-template-columns:1fr 56px}.lx-wtop .lx-mwheel{width:56px}.lx-itiles .lx-tile.open{padding:14px 16px}.lx-itiles .lx-tile.open>b{font-size:24px}.lx-itiles .lx-lead{font-size:15px!important}.lx-flow dd{font-size:13px}.lx-itiles .lx-blurb p,.lx-itiles .lx-blurb ul{font-size:13px}}
/* PORTAL45 · mission pillars + supply chain partners */
@media (max-width:760px){
  .lx-pillars{list-style:none;padding:0!important;margin:4px 0 0!important;display:grid;gap:8px}
  .lx-pillars li{display:grid;grid-template-columns:62px 1fr;gap:10px;font-size:14px;line-height:1.35;margin:0!important}
  .lx-pillars b{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding-top:2px;font-weight:600}
  .lx-itiles .t4:not(.open)>b{font-size:clamp(18px,5.6vw,24px)}
  .lx-pflow{grid-template-columns:96px 1fr;gap:8px 10px}
  .lx-pflow dd{display:flex;flex-wrap:wrap;gap:6px}
  .lx-chip{display:inline-flex;align-items:center;justify-content:center;min-width:76px;height:34px;padding:0 10px;background:#fff;border:1px solid #e5e0d6;font-size:12.5px;font-style:normal;font-weight:600}
  .lx-chip i{font-style:normal}
  .lx-chip img{max-height:22px;max-width:84px;object-fit:contain}
  .lx-chip.has i{display:none}
  .lx-chip.open{border-style:dashed;font-weight:400;color:#6f6c66}
}
@media (max-width:760px){.lx-pflow{grid-template-columns:118px 1fr}.lx-pflow dt{font-size:10px;line-height:1.35}}

/* PORTAL53 · catalogue edition: four info squares replace the journey tiles on desktop */
#landing.cat-only .lx-tiles,#landing.cat-only [data-view="studio"]{display:none!important}
#landing.cat-only .lx-itiles{display:grid;grid-template-columns:1fr}
#landing.cat-only .lx-itiles .lx-tile{min-height:0;padding:40px 20px 18px}
#landing.cat-only .lx-itiles .lx-tile>b{font-size:32px}
#landing.cat-only .lx-itiles .lx-tile.open .lx-blurb{max-height:420px}
#landing.cat-only .lx-itiles .lx-blurb p{font-size:15px;line-height:1.45;margin:0 0 8px!important;max-width:none}
#landing.cat-only .lx-itiles .lx-blurb p:first-child{font-size:18px;line-height:1.3}
#landing.cat-only .lx-itiles .lx-blurb ul{margin:0;padding:0 0 0 18px;font-size:15px;line-height:1.5}
#landing.cat-only .lx-itiles .lx-blurb li{margin:0 0 4px}
#landing.cat-only .lx-mtags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
#landing.cat-only .lx-mtags span{border:1px solid currentColor;padding:5px 8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
#landing.cat-only .lx-plogos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
#landing.cat-only .lx-plogos span{display:grid;place-items:center;height:44px;background:rgba(255,255,255,.18);border:1px dashed currentColor;font-size:11px;opacity:.85}
#landing.cat-only .lx-itiles{grid-template-columns:1fr 1fr;scroll-margin-top:70px}
#landing.cat-only .lx-itiles .lx-tile{aspect-ratio:1/1;padding:16px 16px 18px;justify-content:flex-end}
#landing.cat-only .lx-itiles .lx-tile>b{font-size:26px;line-height:1.02}
#landing.cat-only .lx-itiles .lx-tile .lx-num{left:16px;top:14px}
#landing.cat-only .lx-itiles .lx-plus{right:14px;top:10px}
#landing.cat-only .lx-itiles:has(.lx-tile.open) .lx-tile:not(.open){display:none}
#landing.cat-only .lx-itiles .lx-tile.open{grid-column:1/-1;aspect-ratio:auto;min-height:100vw;justify-content:flex-start;padding:52px 22px 26px;cursor:default}
#landing.cat-only .lx-itiles .lx-tile.open>b{font-size:38px}
#landing.cat-only .lx-itiles .lx-tile.open .lx-blurb{max-height:none;overflow:visible;margin-top:14px}
#landing.cat-only .lx-itiles .lx-tile.open .lx-plus{cursor:pointer;font-size:30px}
#landing.cat-only .lx-itiles .lx-lead{font-size:20px!important;line-height:1.25!important;margin:0 0 12px!important}
#landing.cat-only .lx-itiles .lx-small{font-size:13px!important;opacity:.9}
#landing.cat-only .lx-mwheel{width:210px;margin:6px auto 14px;background:#fff;border-radius:50%;padding:8px}
#landing.cat-only .lx-mwheel svg{width:100%;height:auto;display:block}
#landing.cat-only .lx-flow{margin:0 0 12px;display:grid;gap:2px}
#landing.cat-only .lx-flow dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-top:8px;opacity:.85}
#landing.cat-only .lx-flow dd{margin:0;font-size:15px;line-height:1.4}
#landing.cat-only .lx-cta{display:inline-flex;gap:8px;margin-top:10px;font-size:14px;border-bottom:1px solid currentColor;padding-bottom:2px;color:inherit!important}
#landing.cat-only .lx-plogos span{font-size:14px;font-weight:600;opacity:1;border-style:solid;height:52px}
#landing.cat-only .lx-itiles{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
#landing.cat-only .lx-itiles .lx-tile{min-width:0;overflow:hidden}
#landing.cat-only .lx-itiles .lx-tile:not(.open)>b{font-size:clamp(20px,6.4vw,26px);overflow-wrap:break-word}
#landing.cat-only .lx-itiles{position:relative;aspect-ratio:1/1}
#landing.cat-only .lx-itiles:has(.lx-tile.open) .lx-tile:not(.open){display:flex}
#landing.cat-only .lx-itiles .lx-tile.open{position:absolute;inset:0;z-index:2;min-height:0;aspect-ratio:auto;background:#faf9f6;color:#1b1b19;padding:20px 20px 18px;overflow-y:auto;justify-content:flex-start;border-top:6px solid var(--c);animation:lxIn .25s ease}
#landing.cat-only .lx-itiles .lx-tile.open .lx-num{position:static;display:inline-flex;align-items:center;gap:8px;opacity:1;color:#1b1b19!important;margin-bottom:6px}
#landing.cat-only .lx-itiles .lx-tile.open .lx-num::before{content:'';width:12px;height:12px;background:var(--c);display:inline-block}
#landing.cat-only .lx-itiles .lx-tile.open>b{font-size:28px;color:#1b1b19}
#landing.cat-only .lx-itiles .lx-tile.open .lx-plus{top:14px;right:16px;color:#1b1b19;font-size:26px}
#landing.cat-only .lx-itiles .lx-tile.open .lx-blurb{margin-top:10px}
#landing.cat-only .lx-itiles .lx-lead{font-size:17px!important;line-height:1.3!important;margin:0 0 8px!important}
#landing.cat-only .lx-itiles .lx-blurb p{font-size:14px;line-height:1.45}
#landing.cat-only .lx-itiles .lx-blurb ul{font-size:14px;line-height:1.45}
#landing.cat-only .lx-wtop{display:grid;grid-template-columns:1fr 84px;gap:12px;align-items:center}
#landing.cat-only .lx-wtop .lx-mwheel{width:84px;margin:0;padding:0;background:none}
#landing.cat-only .lx-wtop .lx-mwheel text{display:none}
#landing.cat-only .lx-flow{grid-template-columns:auto 1fr;gap:5px 12px;margin:6px 0 4px}
#landing.cat-only .lx-flow dt{margin:0;font-size:10.5px;padding-top:2px}
#landing.cat-only .lx-flow dd{font-size:14px;line-height:1.3}
#landing.cat-only .lx-cta{margin-top:8px;font-size:13.5px}
#landing.cat-only .lx-mtags span{border-color:#1b1b19}
#landing.cat-only .lx-plogos span{background:#fff;border:1px solid #e5e0d6;color:#1b1b19;height:46px}
#landing.cat-only .lx-pillars{list-style:none;padding:0!important;margin:4px 0 0!important;display:grid;gap:8px}
#landing.cat-only .lx-pillars li{display:grid;grid-template-columns:62px 1fr;gap:10px;font-size:14px;line-height:1.35;margin:0!important}
#landing.cat-only .lx-pillars b{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding-top:2px;font-weight:600}
#landing.cat-only .lx-itiles .t4:not(.open)>b{font-size:clamp(18px,5.6vw,24px)}
#landing.cat-only .lx-pflow{grid-template-columns:96px 1fr;gap:8px 10px}
#landing.cat-only .lx-pflow dd{display:flex;flex-wrap:wrap;gap:6px}
#landing.cat-only .lx-chip{display:inline-flex;align-items:center;justify-content:center;min-width:76px;height:34px;padding:0 10px;background:#fff;border:1px solid #e5e0d6;font-size:12.5px;font-style:normal;font-weight:600}
#landing.cat-only .lx-chip i{font-style:normal}
#landing.cat-only .lx-chip img{max-height:22px;max-width:84px;object-fit:contain}
#landing.cat-only .lx-chip.has i{display:none}
#landing.cat-only .lx-chip.open{border-style:dashed;font-weight:400;color:#6f6c66}
#landing.cat-only .lx-pflow{grid-template-columns:118px 1fr}
#landing.cat-only .lx-pflow dt{font-size:10px;line-height:1.35}
@media (min-width:761px){#landing.cat-only .lx-itiles{display:grid;grid-template-columns:1fr 1fr;aspect-ratio:auto;min-height:calc(100vh - 77px);position:relative}#landing.cat-only .lx-itiles .lx-tile{aspect-ratio:auto;padding:24px}#landing.cat-only .lx-itiles .lx-tile:not(.open)>b{font-size:clamp(28px,3vw,46px)}#landing.cat-only .lx-itiles .lx-tile.open{padding:30px 34px}#landing.cat-only .lx-itiles .lx-blurb p,#landing.cat-only .lx-itiles .lx-blurb ul,#landing.cat-only .lx-flow dd{font-size:16px}#landing.cat-only .lx-itiles .lx-lead{font-size:22px!important}}
#landing.cat-only .lx-jm{display:none!important}
@media (min-width:761px){#landing .lx-jm{display:none!important}}
/* PORTAL54 · desktop info panels: larger type to fill the space */
@media (min-width:761px){
  #landing.cat-only .lx-itiles .lx-tile.open{padding:44px 48px}
  #landing.cat-only .lx-itiles .lx-tile.open>b{font-size:48px}
  #landing.cat-only .lx-itiles .lx-lead{font-size:30px!important;line-height:1.2!important;margin-bottom:22px!important}
  #landing.cat-only .lx-pillars{gap:16px}
  #landing.cat-only .lx-pillars li{grid-template-columns:120px 1fr;font-size:20px}
  #landing.cat-only .lx-pillars b{font-size:12px}
  #landing.cat-only .lx-flow{grid-template-columns:120px 1fr;gap:14px 18px}
  #landing.cat-only .lx-flow dt{font-size:12px}
  #landing.cat-only .lx-flow dd{font-size:20px!important;line-height:1.35}
  #landing.cat-only .lx-wtop{grid-template-columns:1fr 150px}
  #landing.cat-only .lx-wtop .lx-mwheel{width:150px}
  #landing.cat-only .lx-small{font-size:15px!important;margin-top:18px!important}
  #landing.cat-only .lx-cta{font-size:16px;margin-top:20px}
  #landing.cat-only .lx-mtags span{font-size:13px;padding:8px 12px}
}
@media (max-width:360px){#landing .lx-flow dd{font-size:12.5px!important;line-height:1.25}#landing .lx-flow{gap:3px 10px}#landing .lx-itiles .lx-lead{font-size:14px!important}}
