/* Written by build/fonts.py. Outfit and DM Sans, SIL Open Font Licence. */
@font-face {font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/dm-sans-latin-ext-1.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face {font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/dm-sans-latin-2.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face {font-family:'Outfit';font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/outfit-latin-ext-1.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face {font-family:'Outfit';font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/outfit-latin-2.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* Network London. Fresh Lime.
   The lime leads. Big type, round photos, stickers, and the logo riding in its own blue pill.
   Depth: surface colour shifts on soft, overlapping shapes. No shadows. Spacing base 8px.
   Built into public/css/site.css by build/build.py. Edit this file, not the copy. */

*{box-sizing:border-box}
html{scroll-behavior:smooth}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
address{font-style:normal}
h1,h2,h3,h4{margin:0}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}
.skip{position:absolute;left:-999px;top:8px;background:#fff;color:#0F1440;padding:12px 16px;border-radius:8px;z-index:99}
.skip:focus{left:8px}
a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid #B5E14E;outline-offset:3px;border-radius:4px}
.intro p a,.source a{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}
.source em{display:block;margin-top:8px}
figure{margin:0}
.scribble,.ring,.arrow,.cross,.tick{fill:none;stroke-linecap:round;stroke-linejoin:round}
.scribble path,.ring path{vector-effect:non-scaling-stroke}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}

:root{
  --zest:#B5E14E;           /* london in the logo, turned up to fill the room */
  --zest-hot:#C6EE66;
  --zest-pale:#EEF7D2;
  --zest-deep:#5F8F14;      /* london on white */
  --ink:#0F1440;
  --ink-soft:#474D72;
  --ink-faint:#626889;
  --pill-blue:#053F9C;
  --pill-navy:#222B76;
  --pill:linear-gradient(100deg,var(--pill-blue),var(--pill-navy));
  --paper:#FDFDF8;
  --haze:#EDF2FC;
  --blob:58% 42% 50% 50%/52% 60% 40% 48%;
  --blob-b:42% 58% 46% 54%/60% 44% 56% 40%;
  --display:"Outfit",system-ui,sans-serif;
  --body:"DM Sans",system-ui,sans-serif;
}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.6 var(--body);-webkit-font-smoothing:antialiased;overflow-x:clip}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
h1,h2,h3,h4{font-family:var(--display);font-weight:500;letter-spacing:-.045em}
h2{font-size:clamp(36px,4.8vw,72px);line-height:1}
.btn{display:inline-flex;align-items:center;gap:10px;font:600 16.5px/1 var(--display);padding:19px 30px;border-radius:100px;background:var(--ink);color:#fff;border:0;cursor:pointer;transition:background .15s ease-out,transform .15s ease-out}
.btn:hover{background:var(--pill-blue);transform:translateY(-2px) rotate(-1deg)}
.btn.zest{background:var(--zest);color:var(--ink)}
.btn.zest:hover{background:var(--zest-hot)}
.btn.line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.btn.line:hover{background:var(--ink);color:#fff}
.btn[disabled]{opacity:.6;cursor:default;transform:none}
.ring{position:absolute;left:-4%;top:-2%;width:109%;height:112%;stroke:var(--zest);stroke-width:4}
.arrow{stroke:var(--ink);stroke-width:4;width:96px}
.cross{stroke:var(--pill-blue);stroke-width:3;width:26px;flex:none;margin-top:3px}
.tick{stroke:var(--zest-deep);stroke-width:3.4;width:28px;flex:none;margin-top:2px}

/* ---------- the room at the top: dark like the homepage film, lime for accents ---------- */
.zest-room{background:radial-gradient(110% 90% at 88% 0%,rgba(5,63,156,.65),transparent 62%),radial-gradient(70% 60% at 0% 100%,rgba(34,43,118,.7),transparent 60%),var(--ink);color:#fff;padding-top:14px;position:relative}
.zest-room .quick a:hover{border-color:#fff}
.zest-room h1{color:#fff}
.zest-room .btn:not(.line):not(.zest){background:var(--zest);color:var(--ink)}
.zest-room .btn:not(.line):not(.zest):hover{background:var(--zest-hot)}
.zest-room .btn.line{color:#fff;box-shadow:inset 0 0 0 2px #fff}
.zest-room .btn.line:hover{background:#fff;color:var(--ink)}
.zest-room .call a{border-color:#fff}
.quick{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:6px 26px;margin:0 0 12px;padding:0 34px;font:500 14.5px/1 var(--display)}
.quick a{padding:4px 0;border-bottom:1.5px solid transparent;transition:border-color .15s ease-out}
.quick a:hover{border-color:var(--ink)}
.bar{color:#fff;height:84px;padding:0;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:5}
.bar ul{display:flex;gap:30px;list-style:none;margin:0;padding:0;font:500 16px/1 var(--display);color:rgba(255,255,255,.88)}
.bar li a{transition:color .15s ease-out}
.bar li a:hover,.bar li a[aria-current]{color:var(--zest)}
.bar .btn{padding:16px 24px}
.bar .ends{display:flex;align-items:center;gap:10px}
details.menu{display:none;background:none;padding:0;margin:0;border-radius:0}
.menu summary:after{display:none}
.menu a{text-decoration:none}
.menu summary:focus-visible{border-radius:100px}
.menu summary{font:600 15.5px/1 var(--display);padding:15px 22px;border-radius:100px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.5);display:flex;align-items:center;gap:10px}
.menu summary:before{content:"";width:18px;height:12px;border-top:2px solid currentColor;border-bottom:2px solid currentColor}
.menu[open] summary{background:#fff;color:var(--ink);box-shadow:none}
.sheet{position:absolute;left:0;right:0;top:calc(100% + 10px);background:var(--ink);box-shadow:0 0 0 1px rgba(255,255,255,.16),0 20px 50px rgba(0,0,0,.35);border-radius:36px;padding:28px 32px 32px;display:grid;gap:2px;font:500 24px/1 var(--display);letter-spacing:-.03em}
.sheet a{padding:14px 0}
.sheet a:hover{color:var(--zest)}
.sheet .small{display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:16px;padding-top:20px;border-top:1px solid rgba(255,255,255,.16);font:500 16px/1 var(--display);letter-spacing:0;color:rgba(255,255,255,.75)}
.sheet .small a{padding:8px 0}

.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;padding:72px 0 112px}
.hello{display:inline-block;margin:0 0 28px;font:500 16px/1 var(--display);background:var(--zest);color:var(--ink);padding:11px 18px;border-radius:100px;transform:rotate(-2deg)}
a.hello:hover{background:#fff}
h1{font-size:clamp(44px,6.6vw,104px);line-height:.96}
h1 span{position:relative;display:inline-block;color:var(--zest)}
.answer{font-size:20px;line-height:1.55;max-width:600px;margin:36px 0}
.actions{display:flex;gap:12px;flex-wrap:wrap}
.call{margin:24px 0 0;font-size:16px}
.call a{font-weight:700;border-bottom:2px solid var(--ink)}

/* the dock: once the bar has scrolled away, the phone number and a way in stay on screen */
.dock{position:fixed;top:10px;left:50%;z-index:40;width:min(1176px,calc(100% - 24px));transform:translate(-50%,-150%);visibility:hidden;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--ink);color:#fff;border-radius:100px;padding:8px 8px 8px 28px;box-shadow:0 0 0 1px rgba(255,255,255,.16),0 10px 30px rgba(15,20,64,.28);transition:transform .25s ease-out,visibility 0s .25s}
.dock.on{transform:translate(-50%,0);visibility:visible;transition:transform .25s ease-out}
.dock img{display:block;height:28px;width:auto}
.dock .ends{display:flex;align-items:center;gap:8px}
.dock .btn{padding:14px 22px;font-size:15.5px}
.dock .btn.line{color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.55)}
.dock .btn.line:hover{background:#fff;color:var(--ink)}
[id]{scroll-margin-top:96px}

/* the homepage: a film fills the room, behind the bar and the headline */
.zest-room:has(.film):before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(15,20,64,.86),rgba(15,20,64,.6) 55%,rgba(15,20,64,.3))}
.zest-room:has(.film) .quick,.zest-room:has(.film)>.wave,.zest-room:has(.film) .bar,.hero.over>div{position:relative;z-index:2}
.film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%}
.hero.over{grid-template-columns:1fr}
.hero.over>div{max-width:900px}

/* signature: round photos and stickers, stuck on by hand */
.cluster{position:relative;aspect-ratio:1/1.05}
.cluster img{position:absolute;border-radius:50%;object-fit:cover;aspect-ratio:1;border:8px solid var(--zest)}
.cluster img:nth-of-type(1){width:78%;right:0;top:0;object-position:50% 20%}
.cluster img:nth-of-type(2){width:42%;left:0;bottom:8%}
.cluster img:nth-of-type(3){width:30%;right:8%;bottom:2%}
.cap{position:absolute;left:44%;right:0;bottom:-44px;margin:0;text-align:right;font:500 14px/1.3 var(--display);transform:rotate(-2deg)}
.sticker{position:absolute;left:4%;top:8%;width:136px;height:136px;border-radius:50%;background:var(--zest);color:var(--ink);display:grid;place-content:center;text-align:center;transform:rotate(-10deg);font:500 13px/1.2 var(--display);margin:0}
.sticker b{display:block;font:500 42px/1 var(--display);letter-spacing:-.05em}
.wave{display:block;width:100%;height:72px;fill:var(--paper)}

.trail{margin:30px 0 -30px;font:500 14.5px/1.3 var(--display)}
.trail ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 0}
.trail li+li:before{content:"/";margin:0 10px;opacity:.45}
.trail a{border-bottom:1.5px solid transparent}
.trail a:hover{border-color:#fff}
.trail [aria-current]{opacity:.7}
.place{margin:-12px 0 0;max-width:640px;font:500 17px/1.45 var(--display);letter-spacing:-.01em}

/* inner page heroes: one round photo on a loose shape */
.hero.inner{grid-template-columns:1.2fr .8fr;gap:72px;padding:64px 0 104px}
.hero.inner h1{font-size:clamp(38px,5vw,78px);line-height:1}
.hero.inner .answer{margin:28px 0 32px;max-width:640px}
.hero.solo{grid-template-columns:1fr;max-width:920px}
.portrait{position:relative;z-index:0;margin:0 4% 0 0}
.portrait img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%}
.portrait:before{content:"";position:absolute;inset:7% -9% -5% 12%;border-radius:var(--blob);background:var(--zest-hot);z-index:-1;transform:rotate(-6deg)}
.portrait:after{content:"";position:absolute;left:-3%;bottom:6%;width:22%;aspect-ratio:1;border-radius:var(--blob-b);background:var(--pill-blue);transform:rotate(12deg)}
.portrait .sticker{left:auto;right:-4%;top:2%;z-index:1}
.goods{list-style:none;margin:40px 0 0;padding:0;display:grid;gap:14px;font-size:17.5px;max-width:620px}
.goods li{display:flex;gap:14px;align-items:flex-start}
.goods .tick{stroke:var(--zest)}

.byline{display:flex;align-items:center;gap:16px;margin:32px 0 0;font-size:16px;line-height:1.4}
.byline img{width:60px;height:60px;border-radius:50%;object-fit:cover;flex:none;border:3px solid var(--zest)}
.byline a{font:600 17px/1.2 var(--display);border-bottom:2px solid var(--zest)}
.byline span{display:block;margin-top:4px}
.about-author{margin:16px 0 0;font-size:15.5px;line-height:1.5;max-width:560px;opacity:.85}

/* ---------- homepage pieces, reused everywhere ---------- */
.belt{overflow:hidden;padding:36px 0 28px}
.ticker{background:var(--ink);color:var(--zest);transform:rotate(-1.6deg);margin:0 -3%;padding:20px 0;overflow:hidden;white-space:nowrap;font:500 26px/1 var(--display);letter-spacing:-.02em}
.ticker div{display:inline-flex;animation:roll 36s linear infinite}
.ticker span{padding:0 20px}
.ticker span:nth-child(even){color:#fff}
@keyframes roll{to{transform:translateX(-50%)}}
/* the belt keeps rolling even with motion turned down: standing still, it cuts its words off at the edges */
@media(prefers-reduced-motion:reduce){.ticker div{animation:roll 36s linear infinite!important}}

.numbers{list-style:none;margin:72px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.numbers.three{grid-template-columns:repeat(3,1fr)}
.numbers li{position:relative;z-index:0}
.numbers b{display:inline-block;position:relative;font:500 clamp(48px,5.4vw,76px)/1 var(--display);letter-spacing:-.055em}
.numbers b:before{content:"";position:absolute;inset:18% -14% -6% -10%;background:var(--zest);border-radius:var(--blob);z-index:-1}
.numbers li:nth-child(even) b:before{border-radius:var(--blob-b);background:var(--haze)}
.numbers span{display:block;margin-top:20px;color:var(--ink-soft);font-size:17px;line-height:1.4}

section{padding:136px 0 0}
.intro{max-width:860px;margin:0 0 64px}
.intro p{margin:24px 0 0;color:var(--ink-soft);font-size:20px;max-width:640px}
.intro.tight{margin-bottom:40px}
.sub{font:500 clamp(22px,2.2vw,28px)/1.2 var(--display);letter-spacing:-.03em;margin:0 0 28px}

.stack article{display:grid;grid-template-columns:1.25fr .75fr;gap:56px;align-items:center;border-radius:64px;padding:72px;position:relative}
.stack article+article{margin-top:-28px}
.stack article:nth-child(3n+1){background:var(--pill);color:#fff;transform:rotate(-.7deg)}
.stack article:nth-child(3n+2){background:var(--ink);color:#fff;transform:rotate(.6deg)}
.stack article:nth-child(3n){background:var(--zest);transform:rotate(-.4deg)}
.stack h3{font-size:clamp(36px,4.6vw,68px);line-height:1}
.stack p{margin:20px 0 0;font-size:19px;max-width:560px;opacity:.86}
.stack .also{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;font:500 15.5px/1 var(--display)}
.stack .also li a,.stack .also li span{display:block;padding:11px 16px;border-radius:100px;box-shadow:inset 0 0 0 1.5px currentColor;transition:background .15s ease-out,color .15s ease-out}
.stack .also li a:hover{background:#fff;color:var(--ink)}
.stack .btn{margin-top:36px}
.stack article:nth-child(3n) .btn.zest{background:var(--ink);color:#fff}
.stack img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%}
.stack.slim article{padding:56px 64px;grid-template-columns:1.4fr .6fr}
.stack.slim h3{font-size:clamp(30px,3.4vw,50px)}
.stack details{background:none;padding:0;margin:28px 0 0;border-radius:0}
.stack details[open]{background:none}
.stack details summary{display:inline-flex;justify-content:flex-start;gap:12px;font:500 17px/1 var(--display);padding:12px 18px 12px 12px;border-radius:100px;box-shadow:inset 0 0 0 1.5px currentColor}
.stack details summary:after{order:-1;width:30px;height:30px;font-size:19px}
.stack article:nth-child(3n+1) summary:after,.stack article:nth-child(3n+2) summary:after{background:var(--zest);color:var(--ink)}
.stack details .feats{margin-top:32px;columns:2;column-gap:48px}
.stack details .feats li{padding-bottom:24px}
.stack details .feats h4{font-size:19px}
.stack details .feats p{font-size:16px;margin-top:4px;opacity:.8}

.familiar{display:grid;grid-template-columns:.8fr 1.2fr;gap:88px;align-items:center}
.familiar.flip{grid-template-columns:1.2fr .8fr}
.familiar.flip .round{order:2}
.familiar.top{align-items:start}
.familiar .round{position:relative;z-index:0}
.familiar .round img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%}
.familiar .round:before{content:"";position:absolute;inset:-5% 10% 10% -6%;border-radius:50%;background:var(--zest);z-index:-1}
.familiar.flip .round:before{inset:8% -6% -5% 10%;background:var(--haze);border-radius:var(--blob)}
.familiar>div>p{margin:24px 0 0;color:var(--ink-soft);font-size:20px}
.familiar>div>p+p{font-size:18px;margin-top:16px}
.familiar h2{font-size:clamp(34px,4.2vw,62px)}
.familiar .btn{margin-top:36px}
.worries{list-style:none;margin:36px 0 44px;padding:0;display:grid;gap:20px;font-size:19px}
.worries li{display:flex;gap:16px;align-items:flex-start}
.worries+.btn{margin-top:0}
.familiar>div>p.said,.said{position:relative;margin:48px 0 0;padding:0 0 0 52px;font:500 clamp(22px,2.1vw,28px)/1.3 var(--display);letter-spacing:-.03em;max-width:640px;color:var(--ink)}
.said:before{content:"\201C";position:absolute;left:-4px;top:-10px;font:500 96px/1 var(--display);color:var(--zest-deep)}
.familiar .said+.btn{margin-top:32px}

.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:64px;counter-reset:s}
.steps li{counter-increment:s;position:relative;z-index:0}
.steps li:before{content:counter(s);display:block;font:500 150px/.9 var(--display);letter-spacing:-.06em;color:var(--ink)}
.steps li:after{content:"";position:absolute;left:-16px;top:40px;width:150px;height:96px;background:var(--zest);border-radius:var(--blob);z-index:-1;transform:rotate(-8deg)}
.steps li:nth-child(2):after{background:var(--haze);transform:rotate(6deg)}
.steps li:nth-child(2){margin-top:48px}
.steps h3{font-size:27px;line-height:1.12;letter-spacing:-.03em;margin-top:20px}
.steps p{margin:12px 0 0;color:var(--ink-soft)}

.deep{background:var(--pill);color:#fff;border-radius:72px;margin:136px 20px 0;padding:112px 0}
.deep .intro p{color:rgba(255,255,255,.8)}
.deep.ink{background:var(--ink)}
.risks{display:grid;grid-template-columns:repeat(3,1fr);gap:64px}
.risks b{display:block;font:500 clamp(76px,9vw,132px)/1 var(--display);letter-spacing:-.06em;color:var(--zest)}
.risks p{margin:12px 0 0;color:rgba(255,255,255,.84);font-size:18px;line-height:1.45}
.source{margin:40px 0 0;font-size:15px;color:rgba(255,255,255,.6)}
.source a{border-bottom:1px solid rgba(255,255,255,.4)}
.ask{display:flex;align-items:center;gap:32px;flex-wrap:wrap;margin-top:56px}
.ask p{margin:0;font:500 26px/1.2 var(--display);letter-spacing:-.03em;flex:1 1 320px}
.ask.plain{margin-top:64px}

.reel{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 32px 28px;margin:0 -32px;scrollbar-width:thin}
.reel figure{flex:0 0 min(460px,84vw);scroll-snap-align:center;margin:0;background:var(--zest-pale);border-radius:40px 40px 40px 10px;padding:36px;display:flex;flex-direction:column}
.reel figure:nth-child(even){background:var(--haze);border-radius:40px 40px 10px 40px;margin-top:32px}
.reel blockquote{margin:0 0 28px;font:400 21px/1.45 var(--display);letter-spacing:-.015em}
.reel figcaption{margin-top:auto;font:600 16px/1 var(--display)}
.reel figcaption span{color:var(--ink-faint);font-weight:400;margin-left:8px}
.clients{display:flex;gap:64px;align-items:center;flex-wrap:wrap;margin-top:40px}
.clients img{height:32px;width:auto;opacity:.6}

.places h3{font:500 15px/1 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:40px 0 16px}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;font:500 clamp(18px,2vw,24px)/1 var(--display);letter-spacing:-.02em}
.tags a,.tags span{display:block;padding:16px 24px;border-radius:100px;box-shadow:inset 0 0 0 2px var(--ink);transition:background .15s ease-out,transform .15s ease-out}
.tags a:hover{background:var(--zest);box-shadow:none;transform:rotate(-2deg)}
.tags li:nth-child(3n) a:hover{transform:rotate(2deg)}
.tags.small{font-size:17px;letter-spacing:-.01em;gap:8px}
.tags.small a,.tags.small span{padding:12px 18px;box-shadow:inset 0 0 0 1.5px var(--ink)}

.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:88px;align-items:start}
.faq .intro{position:sticky;top:32px;margin:0}
.faq .intro .btn{margin-top:32px}
.faq .intro h2{font-size:clamp(34px,4.2vw,62px)}
details{background:var(--zest-pale);border-radius:32px;padding:26px 32px;margin-bottom:12px;transition:background .2s ease-out}
details[open]{background:var(--zest)}
summary{display:flex;justify-content:space-between;align-items:center;gap:24px}
summary h3{font-size:23px;line-height:1.2;letter-spacing:-.03em}
summary:after{content:"+";flex:none;width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--zest);display:grid;place-items:center;font:400 24px/1 var(--display)}
details[open]>summary:after{content:"\2212"}
details p{margin:16px 48px 0 0}
details ul{margin:16px 48px 0 0;padding:0 0 0 22px;display:grid;gap:8px}
details a{text-decoration:underline;text-underline-offset:3px}

.vault{background:var(--zest);border-radius:72px;padding:88px 72px;display:grid;grid-template-columns:1.3fr auto;gap:48px;align-items:center;position:relative}
.vault p{margin:24px 0 0;max-width:600px;font-size:19px}
.vault .arrow{position:absolute;right:312px;bottom:48px}
.vault h2{font-size:clamp(34px,4.4vw,66px)}

/* ---------- rows, not cards ---------- */
.feats{list-style:none;margin:0;padding:0;columns:2;column-gap:96px}
.feats li{break-inside:avoid;position:relative;padding:0 0 44px 46px}
.feats li:before{content:"";position:absolute;left:0;top:7px;width:24px;height:18px;border-radius:var(--blob);background:var(--zest);transform:rotate(-10deg)}
.feats li:nth-child(even):before{border-radius:var(--blob-b);transform:rotate(8deg)}
.feats h3,.feats h4{font-size:25px;line-height:1.15;letter-spacing:-.03em}
.feats p{margin:8px 0 0;color:var(--ink-soft)}
.feats.three{columns:3;column-gap:64px}
.deep .feats p{color:rgba(255,255,255,.8)}
.zest-panel .feats li:before{background:var(--ink)}

.index{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.index a{display:grid;grid-template-columns:120px 1fr 56px;gap:36px;align-items:center;padding:18px 28px 18px 18px;margin:0 -18px;border-radius:100px 48px 48px 100px;transition:background .15s ease-out}
.index a:hover{background:var(--zest-pale)}
.index img{width:120px;height:120px;border-radius:50%;object-fit:cover}
.index h3{font-size:clamp(22px,2.2vw,30px);line-height:1.12;letter-spacing:-.035em}
.index p{margin:8px 0 0;color:var(--ink-soft);font-size:16.5px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.index .kind{display:block;margin:0 0 8px;font:500 14px/1 var(--display);color:var(--zest-deep)}
.index .go{width:56px;height:56px;border-radius:50%;background:var(--ink);display:grid;place-items:center;transition:background .15s ease-out,transform .15s ease-out}
.index .go svg{width:22px;stroke:var(--zest);stroke-width:2.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.index a:hover .go{background:var(--pill-blue);transform:rotate(-12deg)}
.more{margin:40px 0 0}

.facts{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin:56px 0 0}
.facts h3{font-size:24px;letter-spacing:-.03em;margin:0 0 16px}
.facts ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;color:var(--ink-soft)}
.facts li{display:flex;gap:12px;align-items:flex-start}
.facts li:before{content:"";flex:none;width:14px;height:11px;margin-top:9px;border-radius:var(--blob);background:var(--zest)}
.facts a{text-decoration:underline;text-underline-offset:3px}

.packs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start}
.packs article{background:var(--zest-pale);border-radius:48px 48px 48px 12px;padding:44px 40px 48px}
.packs article:nth-child(2){background:var(--haze);border-radius:48px 48px 12px 48px;margin-top:40px}
.packs article:nth-child(3){background:var(--zest);border-radius:12px 48px 48px 48px;margin-top:16px}
.packs h3{font-size:clamp(30px,3vw,44px);line-height:1}
.packs p{margin:16px 0 0;color:var(--ink-soft);font-size:17px}
.packs article:nth-child(3) p{color:var(--ink)}
.packs ul{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:12px;font:500 17px/1.3 var(--display)}
.packs li{display:flex;gap:12px;align-items:flex-start}
.packs .tick{width:22px;stroke:var(--ink);margin-top:1px}
.packs.stories h3{font-size:clamp(26px,2.6vw,36px)}
.packs.stories .more{margin-top:28px}
.packs.stories article:nth-child(3) .btn.line{box-shadow:inset 0 0 0 2px var(--ink)}
.kind{margin:0 0 14px;font:500 14px/1.3 var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--zest-deep)}
.shot{margin:0 0 56px}
.shot img{width:100%;height:auto;border-radius:36px;box-shadow:0 20px 60px rgba(15,20,64,.18)}
.shot figcaption{margin-top:14px;font:500 14.5px/1.3 var(--display);color:var(--ink-faint)}
.now{margin:48px 0 0;max-width:760px;font:500 clamp(20px,1.9vw,26px)/1.35 var(--display);letter-spacing:-.025em}

.plain h2{max-width:860px}
.plain>p{margin:24px 0 0;max-width:760px;color:var(--ink-soft);font-size:20px}
.plain>p+p{font-size:18px;margin-top:16px}
.plain .btn{margin-top:36px}
.plain .facts{max-width:980px}
.cap.still{position:static;text-align:left;margin-top:24px}
.menu-list{columns:2;column-gap:96px}
.menu-list>div{break-inside:avoid;padding-bottom:72px}
.menu-list h3{font-size:clamp(28px,2.8vw,40px);line-height:1;margin:0 0 28px;display:inline-block;position:relative;z-index:0}
.menu-list h3:before{content:"";position:absolute;inset:30% -12% -14% -8%;background:var(--zest);border-radius:var(--blob);z-index:-1}
.menu-list>div:nth-child(even) h3:before{background:var(--haze);border-radius:var(--blob-b)}
.menu-list dl{margin:0;display:grid;gap:18px}
.menu-list dt{font:500 20px/1.2 var(--display);letter-spacing:-.02em}
.menu-list dd{margin:4px 0 0;color:var(--ink-soft);font-size:16.5px;line-height:1.5}

/* ---------- guides ---------- */
.read{display:grid;grid-template-columns:250px minmax(0,780px);gap:96px;justify-content:center;align-items:start;padding-top:88px}
.toc{position:sticky;top:32px;max-height:calc(100vh - 64px);overflow:auto;scrollbar-width:thin;font:500 15.5px/1.35 var(--display)}
.toc p{margin:0 0 12px;font:500 15px/1 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}
.toc ol{list-style:none;margin:0;padding:0}
.toc a{display:block;padding:9px 0;color:var(--ink-soft);transition:color .15s ease-out}
.toc a:hover{color:var(--pill-blue)}
.toc details{display:none}
.prose>:first-child{margin-top:0}
.prose h2{font-size:clamp(30px,3.4vw,48px);line-height:1.05;margin:88px 0 0;scroll-margin-top:24px}
.prose h3{font-size:clamp(23px,2.2vw,30px);line-height:1.15;letter-spacing:-.035em;margin:52px 0 0}
.prose h4,.prose h5,.prose h6{font:500 21px/1.25 var(--display);letter-spacing:-.02em;margin:36px 0 0}
.prose p{margin:20px 0 0}
.prose h2+p{margin-top:28px}
.prose a{color:var(--pill-blue);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}
.prose a:hover{background:var(--zest-pale)}
.prose ul,.prose ol{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:14px}
.prose li{position:relative;padding-left:36px}
.prose ul>li:before{content:"";position:absolute;left:2px;top:.5em;width:16px;height:12px;border-radius:var(--blob);background:var(--zest);transform:rotate(-10deg)}
.prose ol{counter-reset:n}
.prose ol>li{counter-increment:n;padding-left:48px}
.prose ol>li:before{content:counter(n);position:absolute;left:0;top:-.12em;width:34px;font:500 25px/1.4 var(--display);letter-spacing:-.04em;color:var(--pill-blue)}
.prose li ul,.prose li ol{margin-top:12px}
.prose blockquote{margin:44px 0 0;padding:36px 40px;background:var(--zest-pale);border-radius:40px 40px 40px 10px;font:400 21px/1.5 var(--display);letter-spacing:-.015em}
.prose figure{margin:52px 0 0}
.prose figure img{width:100%;border-radius:40px 40px 10px 40px}
.prose figcaption{margin-top:14px;font-size:15px;color:var(--ink-faint)}
.prose hr{border:0;height:2px;background:var(--zest-pale);margin:64px 0 0}
.prose .scroll{overflow-x:auto;margin:40px 0 0}
.prose table{border-collapse:collapse;width:100%;font-size:16.5px}
.prose th,.prose td{text-align:left;vertical-align:top;padding:14px 20px 14px 0;border-bottom:2px solid var(--zest-pale)}
.prose th{font:500 16px/1.3 var(--display)}
.nudge{display:grid;grid-template-columns:200px 1fr;gap:48px;align-items:center;margin:88px 0 0;padding:52px 56px;border-radius:56px;background:var(--pill);color:#fff;transform:rotate(-.5deg)}
.nudge.b{background:var(--zest);color:var(--ink);transform:rotate(.4deg)}
.nudge img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%}
.nudge h2{font-size:clamp(26px,2.6vw,36px);line-height:1.08;margin:0}
.nudge ul{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:14px;font-size:17px;line-height:1.5}
.nudge li{display:flex;gap:14px;align-items:flex-start;padding:0}
.nudge li:before{display:none}
.nudge .cross{stroke:var(--zest);width:22px}
.nudge .tick{stroke:var(--ink);width:24px}
.nudge .btn{margin-top:28px}
.nudge.b .btn{background:var(--ink);color:#fff}

/* ---------- forms ---------- */
.form{background:var(--zest-pale);border-radius:56px 56px 56px 14px;padding:56px}
.form h2{font-size:clamp(30px,3.2vw,46px);margin:0 0 32px}
.form .fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form .wide{grid-column:1/-1}
.form label{display:block;font:500 15.5px/1 var(--display);margin:0 0 10px}
.form input,.form textarea{width:100%;font:400 17px/1.4 var(--body);color:var(--ink);background:#fff;border:0;border-radius:100px;padding:18px 24px}
.form textarea{border-radius:28px;min-height:168px;resize:vertical}
.form input:focus,.form textarea:focus{outline:3px solid var(--pill-blue);outline-offset:2px}
.form .btn{margin-top:28px}
.visit{margin:28px 0 0;color:var(--ink-soft);font-size:17px;line-height:1.55}
.form .trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .note{margin:20px 0 0;font:500 18px/1.4 var(--display);border-radius:24px;padding:18px 22px}
.form .note.ok{background:var(--zest)}
.form .note.bad{background:#fff;box-shadow:inset 0 0 0 2px var(--ink)}
.form[data-state=done] form{display:none}
.form.bare{background:none;padding:0;border-radius:0;margin:8px 0 0;max-width:600px}
.form.bare .lead{font:500 22px/1.2 var(--display);letter-spacing:-.03em;margin:0 0 20px}
.form.bare .note.ok{background:var(--ink);color:#fff}
.find{display:flex;gap:10px;max-width:560px;margin:8px 0 0}
.find input{flex:1;min-width:0;font:400 17px/1.4 var(--body);color:var(--ink);background:#fff;border:0;border-radius:100px;padding:17px 24px}
.find input:focus{outline:3px solid var(--pill-blue);outline-offset:2px}
.found{max-width:860px}
.found article{padding:0 0 40px}
.found h2{font-size:clamp(24px,2.4vw,32px);line-height:1.15;letter-spacing:-.035em}
.found h2 a:hover{color:var(--pill-blue)}
.found p{margin:10px 0 0;color:var(--ink-soft)}
.found .url{font-size:15px;color:var(--zest-deep)}

/* ---------- foot ---------- */
footer.site{background:var(--ink);color:rgba(255,255,255,.7);border-radius:72px 72px 0 0;margin-top:136px;padding:104px 0 40px;font-size:16px}
.cols{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:40px}
.cols h2{margin:0 0 18px;font:500 15px/1 var(--display);letter-spacing:0;color:#fff}
.cols a{display:block;padding:4px 0}
.cols a:hover{color:var(--zest)}
.cols img{margin-bottom:24px}
.cols .tel{display:inline;color:#fff;font-weight:600}
.cols p a{display:inline}
.owner{margin:64px 0 0;max-width:860px;font-size:15px;line-height:1.55;color:rgba(255,255,255,.62)}
.owner a{text-decoration:underline;text-underline-offset:3px}
.owner+.legal{margin-top:24px}
.whois{margin:88px 0 0;padding:44px 48px;background:var(--haze);border-radius:40px 40px 10px 40px}
.whois h2{font-size:clamp(24px,2.4vw,32px);margin:0}
.whois p{margin:16px 0 0;font-size:17px;line-height:1.55;color:var(--ink-soft)}
.whois .btn{margin-top:24px;color:#fff;text-decoration:none}
.whois .btn:hover{background:var(--pill-blue)}
.legal{margin-top:64px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:16px 32px;flex-wrap:wrap;font-size:14.5px;color:rgba(255,255,255,.5)}
.legal a{display:inline-block;margin-right:18px;padding:4px 0}
.legal a:hover{color:var(--zest)}

@media(max-width:1120px){
  .bar ul{display:none}
  details.menu{display:block}
  .vault .arrow{display:none}
  .read{grid-template-columns:minmax(0,780px);padding-top:64px}
  .toc{position:static;max-height:none}
  .toc>p,.toc>ol{display:none}
  .toc details{display:block;margin:0}
  .toc details ol{margin-top:12px}
  .toc summary{font:500 19px/1.2 var(--display);letter-spacing:-.02em}
  .read{gap:40px}
}
@media(max-width:980px){
  .wrap{padding:0 20px}
  .zest-room{padding-top:10px}
  .quick{justify-content:center;padding:0 8px;gap:4px 18px;font-size:13.5px;margin-bottom:10px}
  .quick .wide{display:none}
  .bar{height:68px}
  .bar img{height:28px;width:auto}
  .bar .btn{padding:13px 16px;font-size:14.5px}
  .menu summary{padding:12px 16px;font-size:14.5px}
  .hero,.hero.inner,.familiar,.familiar.flip,.faq,.vault{grid-template-columns:1fr;gap:48px}
  .hero,.hero.inner{padding:48px 0 72px}
  .cluster{max-width:420px}
  .portrait{max-width:340px;margin:0 8% 0 0}
  .sticker{width:112px;height:112px}
  .sticker b{font-size:34px}
  .wave{height:36px}
  .ticker{font-size:20px;padding:16px 0}
  .numbers,.numbers.three{grid-template-columns:1fr 1fr;gap:48px 24px;margin-top:80px}
  section{padding-top:96px}
  .intro{margin-bottom:44px}
  .stack article,.stack.slim article{grid-template-columns:1fr;gap:36px;padding:44px 28px;border-radius:40px}
  .stack article:nth-child(n){transform:none}
  .stack article+article{margin-top:-20px}
  .stack img{width:56%;order:-1}
  .stack details .feats{columns:1}
  .familiar .round,.familiar.flip .round{width:min(300px,80%);order:0}
  .steps,.risks{grid-template-columns:1fr;gap:40px}
  .steps li:nth-child(2){margin-top:0}
  .steps li:before{font-size:112px}
  .steps li:after{top:24px;width:120px;height:80px}
  .deep{margin:96px 0 0;border-radius:44px;padding:80px 0}
  .reel{padding:8px 20px 24px;margin:0 -20px;gap:16px}
  .reel figure{padding:28px}
  .reel figure:nth-child(even){margin-top:0}
  .faq .intro{position:static}
  details{padding:22px 24px;border-radius:26px}
  details p,details ul{margin-right:0}
  .vault{padding:48px 28px;border-radius:44px}
  footer.site{border-radius:44px 44px 0 0;margin-top:96px;padding-top:72px}
  .cols{grid-template-columns:1fr 1fr}
  .cols>div:first-child{grid-column:1/-1}
  .feats,.feats.three{columns:1}
  .feats li{padding-bottom:32px}
  .index a{grid-template-columns:76px 1fr;gap:18px;padding:14px 18px 14px 12px;margin:0 -12px;border-radius:60px 32px 32px 60px}
  .index img{width:76px;height:76px}
  .index .go{display:none}
  .facts,.packs{grid-template-columns:1fr;gap:40px}
  .menu-list{columns:1}
  .menu-list>div{padding-bottom:48px}
  .packs{gap:16px}
  .packs article:nth-child(n){margin-top:0}
  .nudge{grid-template-columns:1fr;gap:28px;padding:36px 28px;border-radius:40px;transform:none;margin-top:64px}
  .nudge.b{transform:none}
  .nudge img{width:132px}
  .prose h2{margin-top:64px}
  .form{padding:32px 24px;border-radius:40px 40px 40px 12px}
  .form .fields{grid-template-columns:1fr}
}
@media(max-width:520px){.dock{padding:6px}.dock>a{display:none}.dock .ends{width:100%}.dock .btn{flex:1;justify-content:center;padding:14px 8px;font-size:14.5px}.bar>.ends>.btn{display:none}.find{flex-direction:column}.find .btn{justify-content:center}}

@media(min-width:981px){#enquire>.familiar,#message>.familiar{grid-template-columns:.85fr 1.15fr;gap:72px}}
