@font-face{ font-family:'Display'; src:url('/assets/fonts/display.ttf') format('truetype-variations');
            font-weight:400 700; font-display:swap; }
@font-face{ font-family:'Sans'; src:url('/assets/fonts/sans.ttf') format('truetype'); font-weight:400; font-display:swap; }
@font-face{ font-family:'Sans'; src:url('/assets/fonts/sans-md.ttf') format('truetype'); font-weight:500 600; font-display:swap; }

:root{
  --paper:#FBF6EC;
  --ink:#0E0719;
  --cream:#FDF7EC;
  --muted:#544A5E;
  --line:#E6DACA;
  --gold:#E9B23C;
  --gold-soft:#FAEDD3;
  --mag:#E12471;
  --mag-soft:#FADFE8;
  --teal:#3E9E9B;
  --teal-soft:#DCEEED;
  --plum:#0E0719;
  --accent:var(--gold);
  --accent-soft:var(--gold-soft);
  --accent-ink:#8A6208;
  --wrap:1220px;
}
[data-area="none"]{ --accent:var(--ink); --accent-soft:#EFE6DA; --accent-ink:var(--ink); }
[data-area="none"] header.site nav a.on{ background:var(--cream); color:var(--ink); }
[data-area="none"] .btn.tint:not([class*="c-"]){ background:var(--ink); border-color:var(--ink); color:#fff; }
[data-area="mag"]{ --accent:var(--mag); --accent-soft:var(--mag-soft); --accent-ink:#B01659; }
[data-area="teal"]{ --accent:var(--teal); --accent-soft:var(--teal-soft); --accent-ink:#2A6E6C; }

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scrollbar-gutter:stable; }
body{ margin:0; background:var(--paper); color:var(--ink);
      font-family:'Sans',system-ui,sans-serif; font-size:17.5px; line-height:1.58; font-weight:400;
      -webkit-font-smoothing:antialiased; overflow-x:hidden;
      transition:background .7s ease; }
body:after{ content:''; position:fixed; inset:0; pointer-events:none; z-index:1; opacity:.5;
            background:url('/assets/art/grain.svg'); mix-blend-mode:multiply; }
body > *{ position:relative; z-index:2; }

h1,h2,h3{ font-family:'Display',Georgia,serif; margin:0; font-weight:500;
          letter-spacing:-.02em; line-height:.98; }
h1{ font-size:clamp(3.2rem,8.6vw,7rem); }
h2{ font-size:clamp(2.2rem,5vw,4rem); }
h3{ font-size:1.6rem; line-height:1.08; }
p{ margin:0 0 1.05rem; max-width:56ch; }
a{ color:inherit; }
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 34px; }
.skip{ position:absolute; left:-9999px; }
.skip:focus{ left:18px; top:14px; z-index:90; background:var(--ink); color:#fff; padding:11px 18px; border-radius:8px; }
:focus-visible{ outline:3px solid var(--accent); outline-offset:3px; border-radius:4px; }

.pill{ display:inline-flex; align-items:center; gap:9px; font-size:.75rem; font-weight:700;
       letter-spacing:.13em; text-transform:uppercase; background:var(--accent-soft); color:var(--accent-ink);
       padding:8px 15px; border-radius:100px; margin:0 0 26px -15px;
       transition:background .6s ease, color .6s ease; }

/* ---------- header ---------- */
header.site{ position:sticky; top:0; z-index:70; background:var(--ink); }
.head-in{ max-width:var(--wrap); margin:0 auto; padding:16px 34px; display:flex; align-items:center; gap:32px; }
.brand{ display:block; text-decoration:none; line-height:0; }
.brand img{ height:29px; width:auto; display:block; }
footer.site .brand img{ height:34px; }
header.site nav{ display:flex; gap:6px; margin-left:auto; }
header.site nav a{ white-space:nowrap; text-decoration:none; font-size:.93rem; font-weight:500;
                   color:rgba(253,247,236,.68); padding:8px 14px; border-radius:100px;
                   transition:background .2s, color .2s; }
header.site nav a:hover{ color:#fff; background:rgba(253,247,236,.09); }
header.site nav a.on{ color:var(--ink); background:var(--accent); }
.cta{ text-decoration:none; font-size:.9rem; font-weight:600; background:var(--cream); color:var(--ink);
      padding:12px 22px; border-radius:100px; transition:transform .2s, background .3s ease; }
.cta:hover{ background:#fff; }
.cta:hover{ transform:translateY(-2px); }

/* ---------- hero ---------- */
.hero{ position:relative; padding:120px 0 208px; overflow:hidden; }
/* fill the fold and centre the content in it, rather than sitting high */
@media (min-width:981px){
  .hero{ min-height:calc(100vh - 79px); display:flex; flex-direction:column;
         justify-content:center; padding:110px 0 110px; }
  .hero > .wrap{ width:100%; }   /* keep the column full width, so it stays left aligned */
  .hero .h-circle{ top:calc(50% - 224px); }
  .hero .h-third{ top:calc(50% + 56px); }
}
.hero .blobs{ position:absolute; inset:0; pointer-events:none; }
.hero .blobs img{ position:absolute; }
.hero .h-arch{ top:-140px; right:196px; width:190px; }
.hero .h-circle{ top:150px; right:-140px; width:291px; }
.hero .h-third{ top:430px; right:-140px; width:291px; left:auto; bottom:auto; }
@keyframes sway{ to{ transform:translate3d(-18px,14px,0) rotate(-3deg); } }



.hero .inner{ position:relative; }
.hero h1{ max-width:none; }
.hero h1 .sw{ display:inline-block; position:relative; }
.hero .rot{ display:inline-block; color:var(--accent); transition:color .5s ease; }
.hero .stand{ font-size:clamp(1.02rem,1.5vw,1.26rem); line-height:1.4; color:var(--muted);
              max-width:62ch; margin-top:24px; }
.btnrow{ display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }
.btnrow .btn{ margin-top:0; }
.btn{ display:inline-flex; align-items:center; gap:10px; text-decoration:none; font-size:.95rem;
      font-weight:600; background:var(--ink); color:#fff; padding:15px 28px; border:2px solid var(--ink);
      border-radius:100px; margin-top:13px; cursor:pointer;
      transition:transform .2s, background .3s, color .3s, border-color .3s; }
.btn:hover{ transform:translateY(-2px); }
.btn.tint{ background:var(--accent); border-color:var(--accent); color:var(--ink); }
.btn.line{ background:transparent; color:var(--ink); border-color:var(--ink); }
.btn.line:hover{ background:var(--ink); color:#fff; }
.btn svg{ width:18px; height:18px; }

/* ---------- doors ---------- */
.doors{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; padding-bottom:112px; }
.door{ position:relative; display:block; text-decoration:none; border-radius:26px; padding:34px 30px 30px;
       min-height:400px; overflow:hidden; background:var(--c-soft); color:var(--ink);
       transition:transform .4s cubic-bezier(.2,.8,.25,1), box-shadow .4s ease; }
.door:hover{ transform:translateY(-8px); box-shadow:0 30px 60px -34px rgba(36,26,43,.4); }
.door .shape{ position:absolute; right:-46px; bottom:-46px; width:190px;
              transition:transform .55s cubic-bezier(.2,.8,.25,1); }
.door:hover .shape{ transform:translate3d(-10px,-10px,0) scale(1.06); }
.door .in{ position:relative; height:100%; display:flex; flex-direction:column; }
.door .who{ font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
            color:var(--c-ink); margin-bottom:20px; }
.door h2{ font-size:2.5rem; margin-bottom:14px; }
.door p{ font-size:1rem; color:var(--ink); opacity:.72; margin:0 0 20px; max-width:26ch; }
.door ul{ list-style:none; margin:0 0 auto; padding:0; display:flex; gap:7px; flex-wrap:wrap; }
.door li{ font-size:.79rem; font-weight:500; background:rgba(255,255,255,.72); padding:6px 12px; border-radius:100px; }
.door .go{ display:inline-flex; align-items:center; gap:9px; font-size:.92rem; font-weight:600;
           margin-top:22px; }
.door .go svg{ width:19px; height:19px; transition:transform .3s ease; }
.door:hover .go svg{ transform:translateX(6px); }
.door.recruitment{ --c-soft:var(--gold-soft); --c-ink:#8A660A; }
.door.consultancy{ --c-soft:var(--mag-soft); --c-ink:#AF1558; }
.door.pod{ --c-soft:var(--teal-soft); --c-ink:#04635C; }

/* ---------- sections ---------- */
.sec{ padding:104px 0; }
.sec.tight{ padding:100px 0; }
.sec.tone{ background:var(--accent-soft); transition:background .7s ease; }
.two{ display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:center; }
.two p{ color:var(--muted); }
.big, .two p.big, .sec p.big{ font-family:'Display',serif; font-weight:600; font-size:clamp(1.7rem,3vw,2.5rem);
      line-height:1.16; letter-spacing:-.02em; max-width:22ch; color:var(--ink);
      }

/* marquee of values */
.band{ background:var(--ink); color:var(--paper); padding:26px 0; overflow:hidden; }
.band-in{ display:flex; gap:44px; width:max-content; animation:slide 30s linear infinite; }
.band span{ font-family:'Display',serif; font-size:1.7rem; font-weight:500; white-space:nowrap;
            display:inline-flex; align-items:center; gap:44px; }
.band b{ width:11px; height:11px; border-radius:50%; display:inline-block; }
@keyframes slide{ to{ transform:translateX(-50%); } }

/* figures */
.figs{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.figs > div{ background:#fff; border:2px solid var(--line); border-radius:22px; padding:32px 28px; }
.figs .f{ font-family:'Display',serif; font-weight:700; font-size:3.2rem; line-height:1; letter-spacing:-.03em; }
.figs .f i{ font-style:normal; color:var(--accent); }
.figs .t{ font-size:.95rem; color:var(--muted); margin-top:12px; }

/* steps */
.steps{ display:grid; gap:16px; }
.step{ background:#fff; border:2px solid var(--line); border-radius:22px; padding:26px 30px;
       display:grid; grid-template-columns:56px .7fr 1.3fr; gap:26px; align-items:center;
       transition:border-color .3s ease, transform .3s ease; }
.step:hover{ border-color:var(--accent); transform:translateX(6px); }
.step .n{ font-family:'Display',serif; font-weight:700; font-size:1.6rem; color:var(--accent); }
.step h3{ font-size:1.4rem; }
.step p{ color:var(--muted); margin:0; font-size:.98rem; }

/* product cards */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.card{ display:flex; flex-direction:column; text-decoration:none; border-radius:24px; padding:32px 28px 28px;
       background:#fff; border:2px solid var(--line); position:relative; overflow:hidden;
       transition:transform .35s cubic-bezier(.2,.8,.25,1), border-color .3s, background .3s; }
.card:hover{ transform:translateY(-7px); border-color:var(--accent); background:var(--accent-soft); }
.card .tier{ display:flex; gap:5px; margin-bottom:22px; }
.card .tier i{ width:22px; height:5px; border-radius:100px; background:var(--line); }
.card .tier i.on{ background:var(--accent); }
.card h3{ font-size:2.1rem; margin-bottom:4px; }
.card .kind{ font-size:.73rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
             color:var(--accent-ink); margin-bottom:16px; }
.card p{ font-size:.97rem; color:var(--muted); margin:0 0 18px; }
.card .fee{ font-size:.88rem; font-weight:600; margin-top:auto; }
.card .go{ display:inline-flex; align-items:center; gap:8px; font-size:.9rem; font-weight:600; margin-top:16px; }
.card .go svg{ width:18px; height:18px; transition:transform .3s ease; }
.card:hover .go svg{ transform:translateX(6px); }

/* quote */
.quote{ background:var(--ink); color:var(--paper); border-radius:30px; padding:78px 64px;
        display:grid; grid-template-columns:1.1fr .9fr; gap:52px; align-items:center; }
.quote q{ font-family:'Display',serif; font-size:clamp(1.6rem,2.7vw,2.3rem); line-height:1.2;
          quotes:none; display:block; font-weight:500; }
.quote cite{ font-style:normal; font-size:.9rem; opacity:.6; display:block; margin-top:22px; }
.quote .r p{ color:rgba(255,252,246,.76); }
.quote .r .btn{ background:var(--accent); border-color:var(--accent); color:var(--ink); }

/* rows */
.rows{ display:grid; gap:16px; }
.rw{ background:#fff; border:2px solid var(--line); border-radius:22px; padding:30px 32px;
     display:grid; grid-template-columns:.65fr 1.35fr; gap:36px; align-items:center; }
.rw h2{ font-size:1.55rem; margin:0; }
.rw p{ color:var(--muted); margin-bottom:.7rem; }
.rw p:last-child{ margin-bottom:0; }
.rw ul{ margin:0; padding:0; list-style:none; }
.rw li{ position:relative; padding-left:24px; margin-bottom:8px; color:var(--muted); font-size:.97rem; }
.rw li:before{ content:''; position:absolute; left:0; top:10px; width:10px; height:10px;
               border-radius:50%; background:var(--accent-soft); border:2px solid var(--accent); }
.todo{ background:var(--accent-soft); border-radius:14px; padding:14px 18px; font-size:.9rem;
       color:var(--accent-ink); max-width:56ch; }
.night .todo{ color:var(--accent-ink); }
.night .btn.line{ background:transparent; color:var(--accent); border-color:var(--accent); }
.night .btn.line:hover, .night .btn.line.c-gold:hover, .night .btn.line.c-mag:hover,
.night .btn.line.c-teal:hover{ background:var(--accent); color:var(--ink); }
.prose{ max-width:64ch; }

/* forms */
.form{ max-width:560px; background:#fff; border:2px solid var(--line); border-radius:24px; padding:36px 34px; }
.form label{ display:block; font-size:.85rem; font-weight:600; margin-bottom:20px; }
.form input,.form textarea,.form select{ display:block; width:100%; margin-top:8px; font:inherit;
  font-size:.96rem; padding:13px 15px; border:2px solid var(--line); background:var(--paper);
  color:var(--ink); border-radius:12px; }
.form input:focus,.form textarea:focus,.form select:focus{ border-color:var(--accent); outline:none; }

/* reveal */
.anim .rv{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.25,1); }
.anim .rv.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; } *{ animation:none !important; transition:none !important; }
  .anim .rv{ opacity:1; transform:none; }
}

footer.site{ background:var(--plum); color:rgba(255,252,246,.68); padding:66px 0 30px; margin-top:0; }
footer.site .brand{ color:#fff; }
.foot{ display:grid; grid-template-columns:1.8fr 1fr 1fr; gap:40px; }
.foot h4{ font-size:.73rem; letter-spacing:.15em; text-transform:uppercase; color:#fff; margin:0 0 15px; }
.foot a{ display:block; text-decoration:none; font-size:.93rem; color:rgba(255,252,246,.66); margin-bottom:8px; }
.foot a:hover{ color:#fff; }
.foot p{ font-size:.92rem; margin-top:14px; color:rgba(255,252,246,.52); }
.legal{ margin-top:44px; padding-top:20px; border-top:1px solid rgba(255,255,255,.14); }
.legal p{ margin:0; font-size:.84rem; color:rgba(255,252,246,.42); }

@media (max-width:980px){
  .doors,.figs,.cards,.two,.rw,.quote,.foot{ grid-template-columns:1fr; }
  .step{ grid-template-columns:40px 1fr; gap:12px 18px; }
  .step p{ grid-column:2; }
  .quote{ padding:40px 28px; border-radius:24px; }
  .sec{ padding:66px 0; }
  .wrap{ padding:0 22px; }
  .hero{ padding:56px 0 120px; }
  .hero .h-arch{ width:120px; top:-92px; right:26px; }
  .hero .h-circle{ width:196px; top:132px; bottom:auto; right:-104px; }
  .hero .h-third{ width:196px; top:262px; bottom:auto; right:-104px; }
  .head-in{ flex-wrap:wrap; gap:10px 18px; padding:14px 22px; }
  header.site nav{ order:3; width:100%; margin-left:0; overflow-x:auto; gap:4px; }
  .cta{ margin-left:auto; }
}


/* ---------- product family ---------- */
.mark{ width:46px; height:46px; color:var(--accent); display:block; margin-bottom:22px;
       transition:color .5s ease, transform .5s cubic-bezier(.2,.8,.25,1); }
.door .mark{ color:var(--c-ink); width:52px; height:52px; margin-bottom:24px; }
.door:hover .mark{ transform:translateY(-4px); }
.card .mark{ width:42px; height:42px; margin-bottom:20px; }
.hero .mark{ width:60px; height:60px; margin-bottom:26px; }

.name{ display:flex; align-items:baseline; gap:12px; }
.name .fam{ font-size:.8rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
            color:var(--accent-ink); }

/* compare table */
.compare{ width:100%; border-collapse:separate; border-spacing:0; background:#fff;
          border:2px solid var(--line); border-radius:24px; overflow:hidden; }
.compare th, .compare td{ padding:20px 22px; text-align:left; font-size:.95rem;
                          border-bottom:1px solid var(--line); vertical-align:top; }
.compare thead th{ font-family:'Display',serif; font-size:1.45rem; font-weight:600; letter-spacing:-.02em;
                   background:var(--accent-soft); border-bottom:2px solid var(--line); transition:background .6s ease; }
.compare thead th:first-child{ font-family:'Sans',sans-serif; font-size:.75rem; font-weight:600;
                               letter-spacing:.14em; text-transform:uppercase; color:var(--accent-ink); }
.compare tbody th{ font-weight:600; width:22%; color:var(--ink); }
.compare td{ color:var(--muted); }
.compare tr:last-child th, .compare tr:last-child td{ border-bottom:none; }
.compare .tick{ color:var(--accent-ink); font-weight:600; }
.scroller{ overflow-x:auto; }

@media (max-width:980px){
  .compare th, .compare td{ padding:14px 14px; font-size:.9rem; }
  .compare{ min-width:660px; }
}


/* the sweep, reused small as a divider */
.rule-sweep{ width:120px; height:auto; opacity:.9; margin-bottom:22px; }


/* ---------- aubergine bands, built like their social template ---------- */
.night{ position:relative; background:var(--ink); color:var(--cream); overflow:hidden;
        padding:132px 0; }
.night h2, .night h3{ color:#fff; }
.night p{ color:rgba(253,247,236,.76); }
.night .shapes{ position:absolute; inset:0; pointer-events:none; }
.night .shapes img{ position:absolute; }
.night .s-arch{ top:-131px; right:15%; width:190px; }
.night .s-circle{ top:160px; bottom:auto; right:-131px; width:291px; }
/* bands without the stat row place it from the top instead */
.night:not(:has(.figs)) .s-circle{ display:none; }
.night > .wrap{ position:relative; }
.night .eyeb{ font-size:.8rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
              color:var(--teal); margin-bottom:18px; display:block; }

.testi{ max-width:none; }
.testi blockquote{ margin:0; }
.testi q{ quotes:none; display:block; font-family:'Display',serif; font-weight:400;
          font-size:clamp(1.7rem,3.2vw,2.7rem); line-height:1.22; color:#fff; max-width:26ch; }
.testi cite{ font-style:normal; display:block; margin-top:34px; font-size:.92rem;
             color:rgba(253,247,236,.6); }
.testi .aside{ border-left:2px solid rgba(253,247,236,.2); padding-left:26px; }
.testi .aside p{ font-size:.97rem; margin-bottom:14px; }

.night .figs > div{ background:rgba(253,247,236,.05); border-color:rgba(253,247,236,.16); }
.night .figs{ border:none; gap:16px; }
.night .figs .t{ color:rgba(253,247,236,.68); }
.night .figs .f{ color:#fff; }
.night .figs .f i{ color:var(--teal); }

@media (max-width:980px){
  .testi{ grid-template-columns:1fr; gap:30px; }
  .night{ padding:84px 0; }
  .night .s-arch{ width:118px; right:8%; top:-96px; }
  .night .s-circle{ width:172px; top:85px; bottom:auto; right:-87px; }
  .testi .aside{ border-left:none; border-top:2px solid rgba(253,247,236,.2); padding:22px 0 0; }
}


/* CTAs carry the colour of the place they lead to, not the section they sit in */
.c-gold{ --accent:var(--gold); --accent-soft:var(--gold-soft); --accent-ink:#8A6208; }
.c-mag { --accent:var(--mag);  --accent-soft:var(--mag-soft);  --accent-ink:#B01659; }
.c-teal{ --accent:var(--teal); --accent-soft:var(--teal-soft); --accent-ink:#2A6E6C; }
.btn.tint{ transition:background .2s, border-color .2s, transform .2s; }
.btn.line.c-gold{ border-color:var(--gold); }
.btn.line.c-mag{ border-color:var(--mag); }
.btn.line.c-teal{ border-color:var(--teal); }
.btn.line.c-gold:hover{ background:var(--gold-soft); color:var(--accent-ink); }
.btn.line.c-mag:hover{ background:var(--mag-soft); color:var(--accent-ink); }
.btn.line.c-teal:hover{ background:var(--teal-soft); color:var(--accent-ink); }

.c-ink{ --accent:var(--ink); --accent-soft:#EFE6DA; --accent-ink:var(--ink); }
.btn.tint.c-ink{ background:var(--cream); border-color:var(--cream); color:var(--ink); }

/* secondary button inside a dark closing card: outline in the area colour, not a fill */
.quote .r .btn.line{ background:transparent; color:var(--accent); border-color:var(--accent); }
.quote .r .btn.line:hover{ background:var(--accent); color:var(--ink); }
.quote .r .btn.line.c-gold{ color:var(--gold); border-color:var(--gold); }
.quote .r .btn.line.c-gold:hover{ background:var(--gold); color:var(--ink); }
.quote .r .btn.line.c-teal{ color:var(--teal); border-color:var(--teal); }
.quote .r .btn.line.c-teal:hover{ background:var(--teal); color:var(--ink); }


/* motion detail */
.anim .card .tier i{ transform:scaleX(.2); transform-origin:left; transition:transform .55s cubic-bezier(.2,.8,.25,1); }
.anim .card.in .tier i{ transform:scaleX(1); }
.anim .card.in .tier i:nth-child(2){ transition-delay:.1s; }
.anim .card.in .tier i:nth-child(3){ transition-delay:.2s; }
.anim .door .shape{ transform:translate3d(14px,14px,0) scale(.94); }
.anim .door.in .shape{ transform:none; transition:transform .8s cubic-bezier(.2,.8,.25,1); }
.anim .door.in:hover .shape{ transform:translate3d(-10px,-10px,0) scale(1.06); }
.anim .compare tbody tr{ opacity:0; transform:translateY(12px); transition:opacity .5s ease, transform .5s ease; }
.anim .compare tbody tr.in{ opacity:1; transform:none; }
.step{ transition:border-color .3s ease, transform .3s ease, opacity .7s ease; }
.hero .blobs img, .night .shapes img{ will-change:transform; }
@media (prefers-reduced-motion: reduce){
  .anim .card .tier i, .anim .door .shape, .anim .compare tbody tr{ transform:none !important; opacity:1 !important; }
}

/* on a neutral page the dark closing card still needs a light primary button */
[data-area="none"] .quote .r .btn.tint{ background:var(--cream); border-color:var(--cream); color:var(--ink); }


/* contact: form and the direct routes side by side */
.contact-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:start; }
.contact-grid .form{ max-width:none; }
.reach .pill{ margin-bottom:18px; }
.reach-row{ display:flex; flex-direction:column; gap:3px; text-decoration:none; padding:18px 0;
            border-top:1px solid var(--line); transition:padding-left .25s ease; }
.reach-row:last-of-type{ border-bottom:1px solid var(--line); }
.reach-row:hover{ padding-left:10px; }
.reach-row .rl{ font-family:'Display',serif; font-size:1.35rem; color:var(--ink); }
.reach-row .rv2{ font-size:.92rem; color:var(--muted); }
.reach-note{ margin-top:30px; }
.reach-note p{ font-size:.96rem; color:var(--muted); margin-bottom:10px; }
.reach-note strong{ color:var(--ink); }
@media (max-width:980px){ .contact-grid{ grid-template-columns:1fr; gap:40px; } }


/* the contact fold has no other call to action, so it points down to the detail */
.btn.cue{ gap:12px; }
.btn.cue .chev{ display:inline-flex; }
.btn.cue svg{ width:17px; height:17px; animation:nudge 2.2s ease-in-out infinite; }
@keyframes nudge{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(4px); } }
#say{ scroll-margin-top:92px; }
@media (prefers-reduced-motion: reduce){ .btn.cue svg{ animation:none; } }

.form .btn{ margin-top:14px; }
.quote .r .btnrow{ margin-top:30px; }


/* phones: the pair still enters from the right, just tucked further out of the text */
@media (max-width:620px){
  .night .s-circle{ width:150px; right:-75px; top:74px; }
  .night .s-arch{ width:104px; top:-84px; }
  .testi q{ max-width:16ch; }
  .hero .h-arch{ width:104px; top:-78px; right:20px; }
  .hero .h-circle{ width:138px; top:148px; right:-57px; }
  .hero .h-third{ width:138px; top:250px; right:-57px; }
  .hero{ padding:52px 0 104px; }
}

/* legal pages and footer credit */
.note-date{ font-size:.86rem; color:var(--muted); margin-bottom:34px; }
.prose h2{ font-size:1.5rem; margin:44px 0 12px; }
.prose h2:first-of-type{ margin-top:0; }
.prose a{ color:inherit; text-decoration:underline; text-underline-offset:3px; }
.legal{ display:flex; flex-wrap:wrap; gap:14px 28px; align-items:baseline; }
.legal p{ margin:0; }
.legal-links a{ color:rgba(242,236,230,.6); text-decoration:none; margin-right:18px; font-size:.83rem; }
.legal-links a:hover{ color:#fff; }
.madeby{ margin-left:auto !important; font-size:.83rem; color:rgba(242,236,230,.45); }
.madeby a{ color:rgba(242,236,230,.7); text-decoration:none; }
.madeby a:hover{ color:#fff; }
@media (max-width:620px){ .madeby{ margin-left:0 !important; } }

.todo-inline{ background:var(--accent-soft); color:var(--accent-ink); padding:1px 7px; border-radius:6px; }


/* ---------- small screens ---------- */
.burger{ display:none; }

@media (max-width:900px){
  .head-in{ flex-wrap:nowrap; align-items:center; gap:16px; padding:14px 22px; }
  .brand{ margin-right:auto; }
  .cta-bar{ display:none; }
  .burger{ display:flex; flex-direction:column; justify-content:center; gap:6px;
           width:42px; height:42px; padding:0 9px; background:none; border:0; cursor:pointer;
           border-radius:100px; }
  .burger span{ display:block; height:2px; width:100%; background:var(--cream); border-radius:2px;
                transition:transform .3s cubic-bezier(.2,.8,.25,1), opacity .2s ease; }
  body.menu-open .burger span:first-child{ transform:translateY(4px) rotate(45deg); }
  body.menu-open .burger span:last-child{ transform:translateY(-4px) rotate(-45deg); }

  header.site nav{ position:absolute; left:0; right:0; top:100%; order:0; width:auto;
                   flex-direction:column; align-items:stretch; gap:0; overflow:hidden;
                   background:var(--ink); max-height:0; transition:max-height .35s cubic-bezier(.2,.8,.25,1);
                   border-top:1px solid rgba(253,247,236,.1); }
  body.menu-open header.site nav{ max-height:420px; }
  header.site nav a{ padding:16px 22px; border-radius:0; font-size:1.02rem;
                     border-bottom:1px solid rgba(253,247,236,.08); }
  header.site nav a.on{ background:var(--accent); color:var(--ink); }
  header.site nav a.cta-in-menu{ margin:16px 22px 22px; text-align:center;
                                 background:var(--cream); color:var(--ink); border-bottom:0;
                                 padding:14px 22px; border-radius:100px; font-weight:600; }
}
@media (min-width:901px){ .cta-in-menu{ display:none; } }

/* the shapes hold the top right corner on small screens, as they do on desktop */
@media (max-width:980px){
  .hero .h-circle{ top:118px; }
  .hero .h-third{ top:236px; }
  .hero .stand{ max-width:34ch; }
}
@media (max-width:620px){
  .hero .h-circle{ top:92px; }
  .hero .h-third{ top:186px; }
  .hero .stand{ max-width:27ch; }      /* keep the line clear of the shapes */
  .hero h1{ max-width:14ch; }
}

/* footer small print: centred on small screens, so each line has something to balance */
@media (max-width:720px){
  .legal{ flex-direction:row; flex-wrap:wrap; justify-content:center; align-items:baseline;
          text-align:center; gap:12px 20px; margin-top:52px; padding-top:30px; }
  .legal p, .legal a{ font-size:.83rem; }
  .legal-links{ flex-basis:100%; order:-1; }
  .legal-links a{ margin:0 13px; }
  .madeby{ margin-left:0 !important; }
  footer.site{ padding-bottom:46px; }
}

/* the very narrowest phones need the line pulled in a touch further */
@media (max-width:380px){
  .testi q{ max-width:12ch; }
  .hero .stand{ max-width:22ch; }
  .hero .h-circle, .hero .h-third{ right:-84px; }
}

/* footer: keep the two link columns beside each other rather than stacked */
@media (max-width:720px){
  footer.site .foot{ grid-template-columns:1fr 1fr; gap:36px 22px; }
  footer.site .foot > div:first-child{ grid-column:1 / -1; }
}

/* one rule for the gap under a section heading, and for a section's opening line */
.sec-h{ margin-bottom:32px; }
.sec-h.sec-h-tight{ margin-bottom:16px; }
.lede{ max-width:52ch; margin-bottom:30px; }
.figs-under{ margin-top:112px; padding:0; }

.rw h2 .role{ display:block; font-family:'Sans',sans-serif; font-size:.74rem; font-weight:600;
              letter-spacing:.16em; text-transform:uppercase; color:var(--accent-ink);
              margin-top:8px; }

/* partner logos sit where the name would */
/* a logo needs less room than a heading, and should sit near its text */
.rw.logo-row{ grid-template-columns:200px 1fr; gap:48px; }
.rw.logo-row .plogo{ justify-self:center; }
.plogo{ line-height:0; }
.plogo img{ width:auto; height:42px; max-width:100%; display:block; }
.plogo img[alt="Keybridge IT Solutions"]{ height:32px; }
.plogo img[alt="Bristow and Hardy"]{ height:56px; }
@media (max-width:760px){
  .rw.logo-row{ grid-template-columns:1fr; gap:24px; }
  .rw.logo-row .plogo{ justify-self:start; }
}

/* the embedded player */
.player{ margin:0 0 30px; border-radius:16px; overflow:hidden; max-width:680px; }
.player iframe{ display:block; border:0; }

/* bullets hang into the margin so their text lines up with the paragraph above */
.rw ul{ margin:18px 0 0; }
.rw li{ padding-left:26px; }
.rw li:before{ left:0; top:7px; }
.rw p + ul{ margin-top:20px; }

/* team rows: the photo is the subject, so it sets the column */
.rw.team{ grid-template-columns:262px minmax(0,616px); justify-content:center;
          gap:76px; padding:40px 36px; }
.rw.team h2{ display:flex; flex-direction:column; align-items:center; gap:0;
             text-align:center; }
.face{ width:232px; height:290px; border-radius:20px; object-fit:cover; display:block;
       margin-bottom:22px; }
.rw.team h2 .role{ margin-top:10px; }
@media (max-width:760px){
  .rw.team{ grid-template-columns:1fr; gap:24px; padding:28px 26px; }
  .rw.team h2{ display:flex; flex-direction:column; align-items:center; }
  .face{ width:168px; height:210px; border-radius:16px; margin-bottom:16px; }
  .rw.team h2 .role{ margin-top:8px; }
}

/* cookie notice */
.ck[hidden]{ display:none; }
.ck{ position:fixed; left:22px; right:22px; bottom:22px; z-index:90; display:flex;
     justify-content:center; pointer-events:none; }
.ck-in{ pointer-events:auto; background:var(--ink); color:var(--cream); border-radius:20px;
        padding:22px 26px; max-width:720px; width:100%; display:flex; gap:26px;
        align-items:center; flex-wrap:wrap;
        box-shadow:0 18px 50px rgba(14,7,25,.28);
        transform:translateY(14px); opacity:0;
        transition:transform .32s cubic-bezier(.2,.8,.25,1), opacity .32s ease; }
.ck.in .ck-in{ transform:translateY(0); opacity:1; }
.ck-in p{ margin:0; flex:1 1 320px; font-size:.92rem; line-height:1.55;
          color:rgba(253,247,236,.78); max-width:none; }
.ck-in p strong{ color:var(--cream); }
.ck-in a{ color:var(--cream); text-underline-offset:3px; }
.ck-btns{ display:flex; gap:12px; }
.ck .btn{ padding:12px 24px; font-size:.92rem; }
.ck-in .ck-btns .btn.tint{ background:var(--cream); color:var(--ink); border-color:var(--cream); }
.ck-in .ck-btns .btn.line{ background:transparent; color:var(--cream); border-color:rgba(253,247,236,.42); }
.ck-in .ck-btns .btn.line:hover{ background:rgba(253,247,236,.12); color:var(--cream); }
.ck-in .ck-btns .btn.tint:hover{ background:#fff; color:var(--ink); }
@media (max-width:620px){
  .ck{ left:14px; right:14px; bottom:14px; }
  .ck-in{ padding:20px; gap:18px; }
  .ck-btns{ width:100%; }
  .ck-btns .btn{ flex:1; justify-content:center; }
}

/* door cards: the tags and the link sit on the same line across all three */
.door ul{ margin-top:auto; }
.door .go{ margin-top:22px; }

.hp{ position:absolute; left:-9999px; }

/* non-clickable rows in the aside, and its closing note */
/* a lone form sits closer to the hero and centres itself */
.guest-sec{ padding:10px 0 96px; }
.guest-sec .form{ margin:0 auto; }
/* this page has no hero action, so the fold does not need to fill the screen */
@media (min-width:981px){
  body:has(.guest-sec) .hero, .pg:has(.guest-sec) .hero{ min-height:auto; padding:96px 0 40px; }
}
