.lp{--ink:#22282b;--teal:#45b7c2;--teal-dark:#167986;--paper:#f4efe6;--line:rgba(34,40,43,.24);--gutter:28px;color:var(--ink);background:#fff;max-width:1180px;margin:0 auto;padding:0 var(--gutter);font-size:17px;line-height:1.58}.lp,.lp *,.lp *::before,.lp *::after{box-sizing:border-box;min-width:0}.lp h1,.lp h2,.lp h3,.lp h4{line-height:1.02;letter-spacing:-.045em;margin:0}.lp p{margin:0 0 16px}.lp p,.lp li,.lp dd,.lp summary,.lp h1,.lp h2,.lp h3{overflow-wrap:anywhere}.lp-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:16px max(var(--gutter),calc((100vw - 1180px)/2 + var(--gutter))) 12px;background:#fff;border-bottom:2px solid var(--ink)}.lp-logo img{height:34px;width:auto;display:block}.lp-nav-links{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.lp-nav-links a:not(.btn){color:var(--ink);text-decoration:none;font-size:12px;font-weight:760;text-transform:uppercase;letter-spacing:.045em}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 19px;border-radius:2px;font-size:15px;font-weight:760;text-decoration:none;cursor:pointer;border:2px solid var(--ink);transition:transform 120ms ease,background 120ms ease;box-shadow:5px 5px 0 var(--teal)}.btn:hover,.btn:focus-visible{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--teal)}.btn-primary{background:var(--ink);color:#fff}.btn-secondary{color:var(--ink);background:#fff}.btn-light{background:#fff;color:var(--ink)}.btn-outline-light{border-color:#fff;color:#fff}.btn-small{min-height:38px;padding:7px 14px;font-size:13px;box-shadow:none}.btn-full{width:100%}.btn-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:22px}.kicker{position:relative;display:inline-block;width:max-content;font-size:12px;font-weight:820;letter-spacing:.11em;text-transform:uppercase;color:var(--ink);margin-bottom:22px}.kicker::after{content:"";position:absolute;left:-4px;right:-4px;bottom:-4px;height:5px;background:var(--teal);clip-path:polygon(0 4%,100% 67%,100% 100%,0 100%);border-radius:60% 12% 42% 18%;transform:rotate(-.35deg)}.lp-hero{min-height:680px;padding:88px 0 82px;border-bottom:2px solid var(--ink);display:flex;flex-direction:column;align-items:flex-start}.lp-hero h1{font-size:clamp(58px,7.2vw,92px);font-weight:820;max-width:14ch;margin-bottom:30px}.lp-hero>p{max-width:66ch}.lede{font-size:21px;font-weight:560}.hero-statement{font-weight:780;font-size:19px}.marker-box{display:inline-block;padding:1px 16px 3px;border:2.5px solid var(--teal);border-radius:255px 18px 225px 18px/18px 225px 18px 255px;transform:rotate(-.7deg)}.lp-section{padding:78px 0;border-bottom:1px solid var(--line)}.lp-section>p{max-width:76ch}.lp-paper{background:var(--paper);padding:76px 40px;margin:0 -40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-head{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:30px}.section-head h2{font-size:clamp(42px,5.3vw,66px);font-weight:790;max-width:17ch}.section-lede{font-size:21px;max-width:62ch;font-weight:560}.workshop-card{display:grid;grid-template-columns:1.45fr .9fr;background:#fff;border:2px solid var(--ink);margin-top:36px;box-shadow:10px 10px 0 var(--teal)}.workshop-main{padding:34px;border-right:2px dashed var(--ink)}.workshop-main h3{font-size:44px;margin-bottom:20px}.workshop-facts{display:grid;grid-template-columns:1fr 1fr;margin:0 0 24px;border-top:1px solid var(--ink);border-left:1px solid var(--ink)}.workshop-facts div{padding:10px 12px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink)}.workshop-facts .fact-venue{grid-column:1/-1}.workshop-facts dt{font-size:11px;font-weight:820;text-transform:uppercase;letter-spacing:.09em;color:rgba(34,40,43,.70)}.workshop-facts dd{margin:3px 0 0;font-size:15px;font-weight:680}.workshop-tickets{background:var(--paper);padding:34px 28px}.workshop-tickets h4{font-size:13px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:16px}.ticket{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:13px 0;border-bottom:1px solid var(--ink);font-size:14px}.ticket b{font-size:22px;white-space:nowrap}.ticket small{font-size:12px;font-weight:560}.workshop-tickets .btn{margin-top:24px}.learning-panel{margin-top:64px;padding:38px;background:#fff;border:1px solid var(--ink)}.learning-panel h3{font-size:clamp(34px,4vw,50px);max-width:18ch}.check-grid{list-style:none;padding:0;margin:30px 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink)}.check-grid li{position:relative;padding:14px 16px 14px 42px;font-size:15.5px;border-bottom:1px solid var(--ink)}.check-grid li:nth-child(odd){border-right:1px solid var(--ink)}.check-grid li::before{content:"✓";position:absolute;left:14px;top:12px;color:var(--teal-dark);font-size:18px;font-weight:900;transform:rotate(-8deg)}.aim-strip{display:flex;gap:12px 22px;align-items:baseline;border-left:8px solid var(--teal);background:var(--paper);padding:22px 26px}.aim-strip strong{white-space:nowrap}.about-grid{display:grid;grid-template-columns:minmax(280px,.72fr) 1.28fr;gap:60px;align-items:start}.about-portrait{margin:0}.about-portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:10% 50%;display:block;border:2px solid var(--ink);box-shadow:12px 12px 0 var(--teal)}.about-portrait figcaption{font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-top:18px;color:rgba(34,40,43,.70)}.about-copy{font-size:18px}.about-close{font-weight:760;font-size:20px}.founder-strip{margin-top:62px;padding-top:34px;border-top:2px solid var(--ink)}.business-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;border-top:1px solid var(--ink);border-left:1px solid var(--ink)}.business{padding:24px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);background:#fff}.business-featured{background:var(--paper)}.logo-placeholder{height:72px;display:flex;align-items:center;justify-content:center;border:1px dashed rgba(34,40,43,.45);font-size:12px;text-align:center;text-transform:uppercase;letter-spacing:.07em;color:rgba(34,40,43,.70);margin-bottom:22px}.business h3{font-size:21px;margin-bottom:8px}.business p{font-size:14px;margin:0}.private-layout{display:grid;grid-template-columns:1.18fr .82fr;gap:50px;margin-top:28px}.private-layout aside{border:2px solid var(--ink);padding:28px;box-shadow:8px 8px 0 var(--teal)}.private-layout aside h3{font-size:28px;margin-bottom:16px}.faq-list{max-width:880px;border-top:2px solid var(--ink)}.faq-item{border-bottom:1px solid var(--ink)}.faq-item summary{cursor:pointer;list-style:none;position:relative;padding:20px 50px 20px 0;font-size:18px;font-weight:720}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:"+";position:absolute;right:10px;top:13px;font-size:30px;color:var(--teal-dark)}.faq-item[open] summary::after{content:"−"}.faq-item p{padding:0 44px 20px 0;margin:0;max-width:66ch}.lp-enquire{background:var(--ink);color:#fff;padding:72px 60px;margin:0 -28px;border-bottom:0}.lp-enquire h2{font-size:clamp(44px,5vw,64px);max-width:15ch;margin-bottom:30px}.service-choices{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #fff;border-left:1px solid #fff}.service-choices>div{padding:26px;border-right:1px solid #fff;border-bottom:1px solid #fff;display:flex;flex-direction:column;align-items:flex-start;gap:13px}.service-choices span{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.7)}.service-choices strong{font-size:20px}.service-choices .btn{margin-top:auto}.lp-footer{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:32px 0 44px;color:rgba(34,40,43,.65);font-size:13px;border-top:2px solid var(--ink)}.lp-footer img{height:28px;width:auto}.lp-footer p{margin:0}.btn:focus-visible,.lp a:focus-visible,.lp summary:focus-visible{outline:3px solid var(--teal-dark);outline-offset:4px}
@media(max-width:900px){.lp{--gutter:18px;font-size:16px}.lp-nav-links{gap:12px}.lp-hero{min-height:0;padding:62px 0 68px}.lp-hero h1{font-size:clamp(50px,12vw,76px)}.lp-section{padding:62px 0}.lp-paper{padding:62px 36px;margin:0 -18px}.workshop-card{grid-template-columns:1fr}.workshop-main{border-right:0;border-bottom:2px dashed var(--ink)}.about-grid,.private-layout{grid-template-columns:1fr}.about-portrait{max-width:520px}.business-grid{grid-template-columns:1fr 1fr}.business-featured{grid-column:1/-1}.lp-enquire{margin:0 -18px;padding:62px 36px}}
@media(max-width:520px){.lp{--gutter:20px;padding:0 20px}.lp-nav{padding-left:var(--gutter);padding-right:var(--gutter)}.lp-logo img{height:29px}.lp-nav .btn-small{width:auto;max-width:132px;text-align:center}.lp-hero{padding-top:46px}.lp-hero h1{font-size:48px}.btn-row{flex-direction:column;align-items:stretch}.btn{width:100%}.lp-paper{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}.section-head h2{font-size:40px}.workshop-card{width:calc(100% - 10px)}.workshop-main,.workshop-tickets{padding:24px 18px}.workshop-main h3{font-size:36px}.workshop-facts{grid-template-columns:1fr}.workshop-facts .fact-venue{grid-column:auto}.ticket{align-items:flex-start;flex-direction:column}.ticket b{white-space:normal}.learning-panel{padding:26px 18px}.check-grid{grid-template-columns:1fr}.check-grid li:nth-child(odd){border-right:0}.aim-strip{flex-direction:column}.aim-strip strong{white-space:normal}.business-grid,.service-choices{grid-template-columns:1fr}.business-featured{grid-column:auto}.lp-enquire{margin-left:-20px;margin-right:-20px;padding:58px 20px}.lp-footer{flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){.btn{transition:none}}
.business-logo{height:108px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(34,40,43,.18);margin-bottom:22px;background:#111}.business-logo img{width:100%;height:100%;display:block;object-fit:contain}.business-featured .business-logo{height:132px}
/* Generation 7 refinements */
.lp-nav-links{gap:28px}
.lp-hero .hl{font-style:normal;position:relative;white-space:nowrap}
.lp-hero .hl::after{content:"";position:absolute;left:-1%;right:-1%;bottom:.2em;height:.085em;background:var(--teal);clip-path:polygon(0 5%,100% 64%,100% 100%,0 100%);transform:rotate(-.4deg)}
.workshop-tickets>p{margin-top:28px;padding-top:4px}
.business-grid{display:flex;flex-direction:column;border:1px solid var(--ink);border-bottom:0;max-width:820px}
.business,.business-featured{display:grid;grid-template-columns:minmax(240px,42%) 1fr;grid-template-rows:auto auto;column-gap:28px;align-items:center;padding:22px;background:#fff;border:0;border-bottom:1px solid var(--ink)}
.business-featured{background:var(--paper)}
.business-logo,.business-featured .business-logo{grid-row:1/3;width:100%;height:auto;aspect-ratio:1.394/1;margin:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(34,40,43,.18)}
.business-logo img{width:100%;height:100%;display:block;object-fit:contain}
.business h3{align-self:end}.business p{align-self:start}
@media(max-width:520px){.business,.business-featured{grid-template-columns:1fr;grid-template-rows:auto;padding:16px}.business-logo,.business-featured .business-logo{grid-row:auto;margin-bottom:18px}.business h3{align-self:auto}}
.business:nth-child(1) .business-logo{background:#69c4ca}
.business:nth-child(2) .business-logo{background:#090001}
.business:nth-child(3) .business-logo{background:#003c3e}

/* Generation 8: nav menu + two main buttons */
.lp-nav-right{display:flex;align-items:center;gap:28px}
.lp-menu{display:none}
@media(max-width:900px){
.lp-nav{flex-wrap:wrap;row-gap:12px;padding-top:14px;padding-bottom:12px}
.lp-nav-right{display:contents}
.lp-logo{order:1}
.lp-menu{order:2;margin-left:auto;display:block;position:relative}
.lp-menu summary{list-style:none;display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:6px 15px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}
.lp-menu summary::-webkit-details-marker{display:none}
.lp-menu summary::after{content:"\25BE";font-size:11px}
.lp-menu[open] summary::after{content:"\25B4"}
.lp-menu-list{position:absolute;right:0;top:calc(100% + 8px);z-index:40;display:flex;flex-direction:column;min-width:196px;background:#fff;border:2px solid var(--ink);box-shadow:5px 5px 0 var(--teal)}
.lp-menu-list a{padding:13px 16px;font-size:12px;font-weight:760;text-transform:uppercase;letter-spacing:.05em;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.lp-menu-list a:last-child{border-bottom:0}
.lp-menu-list a:hover{background:var(--paper)}
.lp-nav-links{order:3;width:100%;display:flex;gap:12px}
.lp-nav-links a:not(.btn){flex:1;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 10px;border:2px solid var(--ink);background:#fff;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;box-shadow:3px 3px 0 var(--teal);text-align:center}
}

/* Generation 9: single dropdown menu everywhere, floating portrait, logo strip, workshop reorder */
.lp-menu{display:block;position:relative}
.lp-menu summary{list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:8px 18px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;box-shadow:3px 3px 0 var(--teal);user-select:none}
.lp-menu summary::-webkit-details-marker{display:none}
.lp-menu summary::after{content:"\25BE";font-size:12px}
.lp-menu[open] summary::after{content:"\25B4"}
.lp-menu-list{position:absolute;right:0;top:calc(100% + 8px);z-index:40;display:flex;flex-direction:column;min-width:216px;background:#fff;border:2px solid var(--ink);box-shadow:5px 5px 0 var(--teal)}
.lp-menu-list a{padding:14px 18px;font-size:12px;font-weight:760;text-transform:uppercase;letter-spacing:.05em;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.lp-menu-list a:last-child{border-bottom:0}
.lp-menu-list a:hover{background:var(--paper)}
.aim-strip{flex-direction:column;gap:8px;align-items:flex-start}
.aim-strip strong{white-space:normal;font-size:15px;text-transform:uppercase;letter-spacing:.06em}
.aim-strip span{font-size:19px;font-weight:600}
.hl-underline{font-weight:800;text-decoration:underline;text-decoration-color:var(--teal-dark);text-decoration-thickness:3px;text-underline-offset:4px}
.ticket-info{display:flex;flex-direction:column;gap:2px}
.ticket-name{font-weight:640;font-size:15px}
.ticket-sub{font-size:12px;color:rgba(34,40,43,.70);text-transform:uppercase;letter-spacing:.05em}
.about-portrait{position:relative;z-index:2;margin-bottom:-34px}
.about-portrait img{width:108%;max-width:none;margin-left:-4%;height:auto;aspect-ratio:auto;object-fit:contain;border:0;box-shadow:none;transform:rotate(-1.2deg);filter:drop-shadow(13px 13px 0 rgba(69,183,194,.92)) drop-shadow(0 20px 22px rgba(34,40,43,.16))}
.logo-strip{display:flex;align-items:center;justify-content:center;gap:clamp(26px,5vw,64px);flex-wrap:wrap;margin-top:64px;padding-top:30px;border-top:1px solid var(--line)}
.logo-strip img{height:42px;width:auto;display:block;opacity:.9}
@media(max-width:900px){.about-portrait{margin-bottom:-22px}}
@media(max-width:520px){.about-portrait img{width:104%;margin-left:-2%}.logo-strip{margin-top:48px}.logo-strip img{height:33px}.aim-strip span{font-size:17px}}

/* Generation 11: quieter logo strip - smaller tiles, wider spread, ~75% opacity */
.context-close{font-weight:780;font-size:20px;margin-top:24px!important}
.workshop-facts .fact-venue dd{white-space:nowrap;font-size:14px}
.logo-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2.5vw,28px);align-items:center;margin-top:54px;padding-top:0;border-top:0}
.logo-tile{width:78%;aspect-ratio:1.898/1;display:flex;align-items:center;justify-content:center;overflow:hidden;opacity:.75}
.logo-tile:first-child{justify-self:start}
.logo-tile:nth-child(2){justify-self:center}
.logo-tile:last-child{justify-self:end}
.logo-tile img{width:100%;height:100%;display:block;object-fit:contain;opacity:1}
.logo-new-homes{background:rgb(104,201,207)}
.logo-eat-sleep{background:#090001}
.logo-pathway{background:rgb(3,54,58)}
@media(max-width:900px){.workshop-facts .fact-venue dd{white-space:normal}.logo-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}}
@media(max-width:520px){.logo-strip{grid-template-columns:1fr;gap:12px;margin-top:38px;justify-items:center}.logo-tile{width:min(72%,236px);justify-self:center!important}}

/* Launch build additions */

/* Typeface: Jost, self-hosted variable woff2, so there is no request to Google. */
@font-face{font-family:"Jost";src:url("/fonts/jost-variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
.lp{font-family:"Jost",system-ui,sans-serif}

/* Footer: brand block on the left, legal block on the right, stacked under 900px.
   The border and padding on .lp-footer are the original ones and are untouched. */
.lp-footer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:44px;align-items:start}
.lp-footer-brand img{height:28px;width:auto;display:block;margin-bottom:16px}
.lp-footer-brand p{margin:0 0 6px}
.lp-footer-brand a{color:var(--ink);text-decoration:underline}
.lp-footer-legal{font-size:13px;color:rgba(34,40,43,.65)}
.lp-footer-legal p{margin:0 0 10px}
.lp-footer-legal p:last-child{margin-bottom:0}
.lp-footer-legal a{color:var(--ink);text-decoration:underline}

/* Contact section: enquiry form on the left, booking panel on the right. */
.enquire-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:48px;align-items:start}
.enquiry-form .field{margin-bottom:18px}
.enquiry-form label{display:block;margin-bottom:7px;font-size:12px;font-weight:820;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.85)}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{width:100%;font-family:inherit;font-size:16px;line-height:1.4;color:var(--ink);background:#fff;border:2px solid var(--ink);border-radius:2px;padding:11px 13px}
.enquiry-form textarea{resize:vertical;min-height:120px}
.enquiry-form input:focus-visible,.enquiry-form select:focus-visible,.enquiry-form textarea:focus-visible{background:var(--paper);outline:3px solid var(--teal-dark);outline-offset:3px}
.enquiry-form button{margin-top:6px}
.enquire-options{display:flex;flex-direction:column;gap:22px}
.enquire-option{border:2px solid #fff;padding:26px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.enquire-option h3{font-size:25px}
.enquire-option p{margin:0;font-size:15px;color:rgba(255,255,255,.82)}
.enquire-prices{list-style:none;margin:0;padding:0;width:100%;border-top:1px solid rgba(255,255,255,.35)}
.enquire-prices li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.35);font-size:15px}
.enquire-prices b{white-space:nowrap}
.enquire-option .text-link{color:#fff;font-size:15px;text-decoration:underline;text-underline-offset:3px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* Cookie banner. It sits outside .lp, so it carries its own copy of the tokens. */
.cookie-banner{--ink:#22282b;--teal:#45b7c2;--teal-dark:#167986;--paper:#f4efe6;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;color:var(--ink);border-top:2px solid var(--ink);font-family:"Jost",system-ui,sans-serif;font-size:15px;line-height:1.5;animation:cookie-rise 220ms ease-out}
.cookie-banner[hidden]{display:none}
.cookie-inner{max-width:1180px;margin:0 auto;padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px 28px;flex-wrap:wrap}
.cookie-text{margin:0;max-width:60ch}
.cookie-text a{color:var(--ink);text-decoration:underline}
.cookie-actions{display:flex;gap:12px;flex-wrap:wrap}
.cookie-actions .btn{flex:1 1 210px}
.cookie-banner .btn:focus-visible,.cookie-banner a:focus-visible{outline:3px solid var(--teal-dark);outline-offset:4px}
@keyframes cookie-rise{from{transform:translateY(100%)}to{transform:none}}

@media(max-width:900px){
.lp-footer{grid-template-columns:1fr;gap:28px}
.enquire-layout{grid-template-columns:1fr;gap:34px}
}
@media(max-width:520px){
.cookie-inner{padding:16px 20px}
.cookie-actions{width:100%;flex-direction:column;gap:10px}
.cookie-actions .btn{width:100%;flex:0 0 auto}
}
@media(prefers-reduced-motion:reduce){.cookie-banner{animation:none}}

/* Nav: the shared nav puts two items inside .lp-nav-right. Under 900px the
   existing rule turns that wrapper into display:contents, so both items become
   direct flex children of the nav and the button needs its own order value.
   Measured at 390px the logo, Menu and button cannot share a row, so under
   520px the button takes a row of its own, as the nav links used to. */
@media(max-width:900px){
.lp-nav-right>.btn{order:3}
}
@media(max-width:520px){
.lp-nav-right>.btn{width:100%;max-width:none}
}

/* --- Adversarial review fixes --- */

/* H1: the horizontal clip now lives here rather than on .lp, so the nav can
   run the full width of the window and nothing inside .lp is cut off. */
html,body{overflow-x:clip}

/* M7: skip link, out of sight until it is focused. */
.skip-link{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip-link:focus{position:fixed;top:14px;left:14px;z-index:100;width:auto;height:auto;clip-path:none;padding:12px 18px;background:var(--ink);color:#fff;font-size:14px;font-weight:760;letter-spacing:.02em;text-decoration:none;border:2px solid var(--ink);outline:3px solid var(--teal-dark);outline-offset:3px}

/* M2: on the dark contact section the focus ring is white, which stands out
   against the ink background far better than the teal does. */
.lp-enquire .btn:focus-visible,.lp-enquire a:focus-visible,.enquiry-form input:focus-visible,.enquiry-form select:focus-visible,.enquiry-form textarea:focus-visible{outline-color:#fff}


/* H1 follow-up: on a single-column layout the portrait's deliberate desktop
   overhang pushed it off the left edge of the window, where it was cropped.
   Under 900px it now sits inside its own box. */
@media(max-width:900px){.about-portrait img{width:100%;margin-left:0}}

/* --- 25 September changes --- */

/* Links to a section on the same page glide there (site.js does the gliding,
   and skips it for anyone who has asked for reduced motion). Arriving from
   another page at an address such as /#contact jumps straight there, because
   a glide that starts before the images above have loaded stops short.
   scroll-padding-top stops each section landing underneath the sticky menu
   bar: site.js keeps --nav-h equal to the bar's real height, and the fallback
   values cover the moment before the script runs. */
html{scroll-padding-top:var(--nav-h,72px)}
@media(max-width:900px){html{scroll-padding-top:var(--nav-h,122px)}}

/* site.js moves keyboard focus to the section a link points at, so the next
   Tab carries on from there. The section itself needs no visible ring. */
.lp [tabindex="-1"]:focus{outline:none}

/* Ordinal dates such as 3rd of November: the letters sit small and raised,
   without pushing the line apart. */
.lp sup{font-size:.6em;line-height:0;vertical-align:super}

/* A brief teal pulse on the enquiry dropdown when a link has just picked an
   option for you, so you can see what changed. */
.field-flash select,.field-flash textarea{animation:field-flash 1.4s ease-out}
@keyframes field-flash{from{box-shadow:0 0 0 5px var(--teal)}to{box-shadow:0 0 0 0 rgba(69,183,194,0)}}
@media(prefers-reduced-motion:reduce){.field-flash select,.field-flash textarea{animation:none}}

/* Footer credit line. */
.lp-footer-credit{margin-top:14px}

/* Private workshop request form (light background, unlike the dark
   enquiry form on the home page). */
.booking-form{max-width:760px;margin-top:10px}
.booking-form fieldset{border:0;margin:0 0 38px;padding:0;min-width:0}
.booking-form legend{padding:0;margin-bottom:18px;font-size:26px;font-weight:790;letter-spacing:-.035em;line-height:1.1}
.booking-form .field{margin-bottom:18px}
.booking-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
/* The questions here are longer than the home page labels, so they are set
   in sentence case rather than small capitals, which are hard to read at length. */
.booking-form label,.booking-form .field-label{display:block;margin-bottom:7px;font-size:15px;font-weight:720;letter-spacing:0;color:var(--ink)}
.booking-form .hint{margin:-2px 0 10px;font-size:14px;color:rgba(34,40,43,.72);max-width:60ch}
.booking-form input:not([type=radio]),.booking-form select,.booking-form textarea{width:100%;font-family:inherit;font-size:16px;line-height:1.4;color:var(--ink);background:#fff;border:2px solid var(--ink);border-radius:2px;padding:11px 13px}
.booking-form textarea{resize:vertical;min-height:120px}
.booking-form input:focus-visible,.booking-form select:focus-visible,.booking-form textarea:focus-visible{background:var(--paper);outline:3px solid var(--teal-dark);outline-offset:3px}
.choice-row{display:flex;flex-wrap:wrap;gap:10px}
.choice-row label{display:inline-flex;align-items:center;gap:9px;margin:0;padding:10px 16px;border:2px solid var(--ink);background:#fff;font-size:16px;font-weight:560;text-transform:none;letter-spacing:0;cursor:pointer}
.choice-row input{accent-color:var(--teal-dark);width:18px;height:18px;margin:0}
.choice-row label:has(input:checked){background:var(--paper)}
.choice-row input:focus-visible{outline:3px solid var(--teal-dark);outline-offset:3px}
.booking-form .btn{margin-top:4px}

/* The date picker. */
.date-picker{max-width:440px;padding:18px;background:#fff;border:2px solid var(--ink);box-shadow:8px 8px 0 var(--teal)}
.date-picker[hidden]{display:none}
.dp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.dp-title{margin:0;font-size:18px;font-weight:760}
.dp-nav{width:44px;height:44px;border:2px solid var(--ink);border-radius:2px;background:var(--paper);color:var(--ink);font:inherit;font-size:20px;line-height:1;cursor:pointer}
.dp-nav:disabled{opacity:.35;cursor:default}
.dp-nav:focus-visible,.dp-day:focus-visible,.dp-remove:focus-visible{outline:3px solid var(--teal-dark);outline-offset:2px}
.dp-grid{width:100%;border-collapse:collapse;table-layout:fixed}
.dp-grid th{padding:0 0 8px;font-size:11px;font-weight:820;text-transform:uppercase;letter-spacing:.06em;color:rgba(34,40,43,.72);text-align:center}
.dp-grid td{padding:2px;text-align:center}
.dp-day{width:100%;min-height:44px;border:1px solid transparent;border-radius:2px;background:transparent;color:var(--ink);font:inherit;font-size:15px;font-weight:640;cursor:pointer}
.dp-day:hover{border-color:var(--ink)}
.dp-day[aria-disabled=true]{color:rgba(34,40,43,.38);font-weight:400;cursor:default}
.dp-day[aria-disabled=true]:hover{border-color:transparent}
.dp-day[aria-pressed=true]{background:var(--ink);color:#fff}
.dp-chosen{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.dp-count{margin:0;font-size:15px;font-weight:620}
.dp-chosen ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.dp-chosen li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--ink);background:var(--paper);font-size:15px}
.dp-remove{border:0;background:none;padding:4px 2px;color:var(--ink);font:inherit;font-size:14px;text-decoration:underline;cursor:pointer}
.dp-error{margin:12px 0 0;color:#a3261b;font-weight:640}
.dp-error:empty{margin:0}

@media(max-width:520px){
.booking-form .field-row{grid-template-columns:1fr}
.date-picker{padding:14px;box-shadow:6px 6px 0 var(--teal)}
}
.booking-form .field-spaced{margin-top:24px}
.booking-form .form-note{margin-top:18px}
.booking-form .form-note a{color:var(--ink)}
.lp .nowrap{white-space:nowrap}

/* The portrait's original rule sets aspect-ratio:auto, which throws away the
   space the browser reserves from the image's width and height, so the photo
   had no height until it downloaded and everything below it jumped. This
   keeps the reserved space (the same proportions as the photo). */
.about-portrait img{aspect-ratio:auto 1195/1253}

/* Meet Ben logo strip (26th of September): 20% smaller than the original
   tiles, grouped closer together and further below the photo. On phones
   all three sit in one row. */
.logo-strip{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:24px;margin-top:90px}
.logo-tile{flex:0 0 auto;width:222px}
@media(max-width:900px){.logo-strip{gap:14px;margin-top:70px}.logo-tile{width:146px}}
@media(max-width:520px){.logo-strip{flex-wrap:nowrap;gap:10px;margin-top:60px}.logo-tile{width:calc((100% - 20px)/3)}}
/* The Pathway Padel Leagues artwork fills only 37% of its image's height,
   against 47% and 62% for the other two, so it is enlarged inside its tile
   (which trims the empty border) to bring its lettering up to the others. */
.logo-pathway img{transform:scale(1.45)}


/* Generation 12: digital business card (/card) */
.vcard-section{padding-top:48px}
.vcard{display:grid;grid-template-columns:minmax(220px,.62fr) 1.38fr;gap:40px;align-items:center;background:#fff;border:2px solid var(--ink);padding:36px 40px 40px;box-shadow:10px 10px 0 var(--teal)}
.vcard-portrait{margin:0;align-self:end}
.vcard-portrait img{width:100%;height:auto;display:block;transform:rotate(-1.2deg);filter:drop-shadow(10px 10px 0 rgba(69,183,194,.92)) drop-shadow(0 16px 18px rgba(34,40,43,.14))}
.vcard h1{font-size:clamp(44px,6vw,68px);font-weight:820;margin-bottom:10px}
.vcard-role{font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:18px}
.vcard-intro{font-size:18px;max-width:46ch}
.vcard-actions{display:flex;flex-direction:column;gap:14px;margin-top:26px;max-width:420px}
.vcard-actions .btn{width:100%}
.vcard-offers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:64px;border-top:1px solid var(--ink);border-left:1px solid var(--ink)}
.vcard-offer{padding:26px 24px 28px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);display:flex;flex-direction:column;align-items:flex-start;gap:12px;background:#fff}
.vcard-offer .kicker{margin-bottom:6px}
.vcard-offer h2{font-size:24px;font-weight:790}
.vcard-offer p{font-size:15px;margin:0}
.vcard-offer .text-link{margin-top:auto;font-weight:760;color:var(--ink);text-decoration:underline;text-decoration-color:var(--teal-dark);text-decoration-thickness:3px;text-underline-offset:4px}
.vcard-share{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;margin-top:64px;padding:36px 40px;background:var(--paper);border:1px solid var(--ink)}
.vcard-share h2{font-size:clamp(28px,3.4vw,40px);margin-bottom:14px}
.vcard-share p{max-width:52ch}
.vcard-share .btn-row{margin-top:18px}
.vcard-share-note{min-height:1.6em;font-size:14px;font-weight:600;margin:12px 0 0}
.vcard-qr{width:240px;height:240px;display:block;background:#fff;border:2px solid var(--ink);padding:12px;box-shadow:8px 8px 0 var(--teal)}
.qr-screen{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;background:#fff;color:var(--ink);text-align:center}
.qr-screen[hidden]{display:none}
.qr-screen img{width:min(84vw,58vh);height:auto;border:2px solid var(--ink);padding:14px;background:#fff;box-shadow:10px 10px 0 var(--teal)}
.qr-screen-name{margin:18px 0 0;font-size:22px;font-weight:800}
.qr-screen-url{margin:0;font-size:15px;font-weight:600;letter-spacing:.04em}
.vcard-share .btn,.qr-screen .btn{font-family:inherit}.qr-screen .btn{margin-top:10px;min-width:140px}
@media(max-width:900px){.vcard{grid-template-columns:1fr;gap:18px;padding:26px 24px 30px}.vcard-portrait{max-width:300px;margin:-56px auto 0}.vcard-offers{grid-template-columns:1fr}.vcard-share{grid-template-columns:1fr;padding:30px 24px}.vcard-qr{margin:0 auto}}
@media(max-width:520px){.vcard-section{padding-top:70px}.vcard{width:calc(100% - 10px)}.vcard h1{font-size:44px}.vcard-actions{max-width:none}.vcard-portrait{max-width:240px;margin-top:-70px}}
.vcard-debs{grid-template-columns:1fr;margin-top:34px;padding:30px 40px 34px;box-shadow:8px 8px 0 var(--teal)}
.vcard-debs h2{font-size:clamp(32px,4vw,44px);font-weight:820;margin-bottom:10px}
.vcard-actions-row{flex-direction:row;flex-wrap:wrap;max-width:none}
.vcard-actions-row .btn{width:auto;flex:1 1 220px}
@media(max-width:900px){.vcard-debs{padding:26px 24px 30px}}
@media(max-width:520px){.vcard-debs{margin-top:28px}.vcard-actions-row{flex-direction:column}.vcard-actions-row .btn{flex:none;width:100%}}
