/* SUP Bristol site stylesheet. Generated from the prototype's src/01-tokens.html,
   02-shell.html and 03-panels.html on 2026-10-09; edit here, the prototype is
   the design reference only. */

/* ===== from src/01-tokens.html ===== */

/* ============================================================
   SUP BRISTOL, prototype design system
   Palette grounded in Bristol Floating Harbour: dock-water navy,
   hero cyan (actions only), crane-rust orange (scarcity only),
   sea-glass teal, cyan-biased paper, SUP Bristol yellow reserved
   for the one theme private groups get everywhere they appear.
   ============================================================ */
:root{
  --paper:color-mix(in srgb,var(--brand-grey) 10%,white);
  --surface:#FFFFFF;
  --surface-2:#EAF0F2;
  --surface-3:#DDE6E9;
  /* the one dark ground is the brand sheet's SUP Dark Grey: --harbour takes
     its value from --brand-slate in every theme, so the two cannot differ */
  --harbour:var(--brand-slate);
  --harbour-2:#123C52;

  --ink:#0B2B3C;
  --ink-2:#3C5464;
  --muted:#586F7D;
  --on-dark:#EAF6FB;       /* text on the dark ground: dark buttons, panel heads, the hero, the toast */
  --on-dark-2:#C4DEEA;     /* quieter text on the dark ground: straplines, labels, fine print */
  --white:#FFFFFF;         /* text and fills that must stay white whatever the theme: text on blue
                              and on photos, the search bar. Not --surface, which is a background
                              and would follow a dark theme. */
  --holding-cap:#4F6572;   /* muted fails AA on --surface-3, this clears it */
  --rule:#CBD8DD;
  --rule-soft:#E1EAED;

  --sup:#28ADE4;           /* brand reference: Primary Colour */
  --accent-on-dark:#3DBEF0;
  --sup-deep:#0A7099;
  --sup-hover:#1C9BD4;     /* a button under the pointer: one step down the blue */
  --sup-wash:#E2F3FB;
  --on-sup:#04222F;
  /* The top menu bar: its ground, what sits on it, and the wash under the
     pointer. Compare, "Top menu bar", tries four ways of getting the menu
     past AA contrast by resetting these. Buttons are not touched. */
  --hdr-bg:var(--sup);
  --hdr-fg:var(--white);
  --hdr-hover:var(--fill-on-dark);
  --sup-large:#1B9FD6;     /* the nearest blue to SUP blue that carries large white text: 3.01 to 1 */
  /* The house button: its fill, its fill under the pointer, and its label.
     Compare, "Buttons", tries two ways of getting the label past AA contrast
     by resetting these. */
  --btn-bg:var(--sup);
  --btn-hover:var(--sup-hover);
  --btn-fg:var(--white);
  --sup-deep-hover:#085C7E;  /* a deep blue button under the pointer */
  /* the phone search calendar's date range: the days between the two chosen
     dates, and the paler run shown while the second is being picked */
  --range:#B9DFF2;
  --range-preview:#DDEFF8;

  /* Display sizes: the headings, which scale with the screen. Every heading
     takes one of these; none sets a formula of its own. On phones and small
     tablets --d1, --d2 and --act-title step down (see 02-shell, at 760px). */
  --d1:clamp(2.5rem,6.8vw,4.6rem);         /* page titles, the home title, the About years */
  --d2:clamp(1.85rem,4vw,2.9rem);          /* section headings */
  --d3:clamp(1.45rem,2.7vw,2rem);          /* sub-headings */
  --d4:clamp(1.18rem,1.9vw,1.4rem);        /* card and panel headings */
  --act-title:clamp(2rem,4.6vw,3.2rem);    /* a product page's title, beside its photo */
  --lede:clamp(1.02rem,1.5vw,1.14rem);     /* the opening line under a title */

  /* Private groups get the SUP Bristol yellow, the one warm accent
     against the cyan hero and navy ink. */
  --groups:#DCC63E;        /* brand reference: Bristol Sunflower */

  --go:#256B45;
  --go-wash:#E2F0E8;
  --rope:#9C4813;
  --rope-bright:#E4813F;
  --rope-wash:#FBEBDF;
  --tide:#5E959E;
  --tide-ink:#3D6F78;
  --star:#A61E5B;          /* brand reference: Bristol Maroon */
  --pink:#DD87BC;          /* brand reference: Secondary Colour pink */
  --tide-wash:#E7F0F1;
  --stop:#A32C2C;
  --stop-wash:#FDEEEE;     /* the pale fill behind stop: the sold out tag */

  /* Scrims: a see-through navy laid over the page or a photo. Three weights,
     and nothing typed by hand. Heavy is behind popups and on the controls
     that sit on photos; light is behind the search dropdowns and the hero's
     pause button. (Shadows are not scrims and keep their own values.) */
  --scrim-heavy:rgba(5,24,34,.55);
  --scrim-light:rgba(5,24,34,.28);
  --scrim-solid:rgba(5,24,34,.78);   /* nearly opaque: captions on photos, a control on a photo under the pointer */

  /* See-through whites, for a dark ground: a hairline and a quiet fill. */
  --line-on-dark:rgba(255,255,255,.26);
  --fill-on-dark:rgba(255,255,255,.14);

  /* Shadows: three, by how far the thing floats above the page.
     low   menus, carousel arrows, the map pin
     mid   dropdowns, the search bar, the toast, floating panels
     high  popups */
  --shadow-low:0 4px 14px rgba(5,24,34,.18);
  --shadow-mid:0 10px 30px rgba(5,24,34,.22);
  --shadow-high:0 18px 50px rgba(5,24,34,.35);

  /* Stacking: six named layers, lowest first. Nothing is numbered by hand.
     content   the page itself. It has no token: content sets no layer, and
               inside one component 0 to 5 orders its parts
     sticky    what rides over the page but under the header: the booking
               bar, the checkout summary, an open search and its dropdown
     header    the site header
     dropdown  menus and the phone menu, which open over the header
     sheet     the phone search sheet and its scrim, the toast
     popup     popups, and the loading screen
     Within a layer, calc(var(--z-sheet) + 1) and so on, up to + 4, puts one
     thing above another; mostly the review tools use that. */
  --z-sticky:10;
  --z-header:20;
  --z-dropdown:30;
  --z-sheet:40;
  --z-popup:50;

  /* Calendar availability and the "spaces left" reminder: the brand
     green/pink/grey pair, used nowhere else so the wider "available"
     (--go) and "scarce" (--rope) colours keep their existing meaning
     everywhere else on the site. */
  --brand-green:#87A554;   /* brand reference: Bristol Green */
  --brand-slate:#152B3B;   /* brand reference: Secondary Colour, dark grey */
  --brand-grey:#9BAEBC;    /* brand reference: Secondary Colour, grey-blue */
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#08202C;
    --surface:#0E2E3E;
    --surface-2:#143A4C;
    --surface-3:#1B4759;
    --harbour-2:#0B2B3C;

    --ink:#E6F1F4;
    --ink-2:#B3C9D2;
    --muted:#8AA6B2;
    --holding-cap:#9DB6C1;
    --rule:#23495C;
    --rule-soft:#193B4C;

    --sup:#3DBEF0;
    --accent-on-dark:#5FCDF5;
    --sup-deep:#6FD2F7;
    --sup-hover:#5CC8F4;
    --sup-wash:#0E3A4E;
    --on-sup:#04222F;

    --groups:#E3D165;

    --go:#6DC796;
    --go-wash:#0F3527;
    --rope:#EC9863;
    --rope-bright:#F0A470;
    --rope-wash:#3A2314;
    --tide:#8FBCC3;
    --tide-ink:#9FC8CE;
    --star:#E5A0C0;
    --pink:#DD87BC;
    --tide-wash:#12333A;
    --stop:#E77070;

    --brand-green:#87A554;
    --brand-slate:#152B3B;
    --brand-grey:#9BAEBC;
  }
}
:root[data-theme="dark"]{
  --paper:#08202C;
  --surface:#0E2E3E;
  --surface-2:#143A4C;
  --surface-3:#1B4759;
  --harbour-2:#0B2B3C;

  --ink:#E6F1F4;
  --ink-2:#B3C9D2;
  --muted:#8AA6B2;
  --holding-cap:#9DB6C1;
  --rule:#23495C;
  --rule-soft:#193B4C;

  --sup:#3DBEF0;
  --accent-on-dark:#5FCDF5;
  --sup-deep:#6FD2F7;
    --sup-hover:#5CC8F4;
  --sup-wash:#0E3A4E;
  --on-sup:#04222F;

  --groups:#E3D165;        /* brand reference: Bristol Sunflower */

  --go:#6DC796;
  --go-wash:#0F3527;
  --rope:#EC9863;
  --rope-bright:#F0A470;
  --rope-wash:#3A2314;
  --tide:#8FBCC3;
  --tide-ink:#9FC8CE;
  --star:#E5A0C0;
  --pink:#DD87BC;
  --tide-wash:#12333A;
  --stop:#E77070;

  --brand-green:#87A554;
  --brand-slate:#152B3B;
  --brand-grey:#9BAEBC;
}

/* SUP Bristol mark. Plain <img> with the artwork inlined, so it
   renders wherever the page is served from. */
.brand-mark{
  /* The artwork arrives through content:url(), not a src attribute, so the
     element has no intrinsic size: width:auto collapses it to a square and
     object-fit then squashes the mark into it. The artwork is 931x393, so
     both sides are stated outright. Keep them in that ratio. */
  display:block;width:114px;height:48px;flex:none;
  content:url("data:image/png;base64,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");
}
@media(max-width:600px){.brand-mark{width:110px;height:46px}}

*{box-sizing:border-box}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Poppins","Helvetica Neue",Arial,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--sup-deep);text-underline-offset:3px}
/* ---------- THE FOCUS RING ----------
   3px, 2px clear of the element, in --focus. A focus ring has to stand 3 to 1
   against what is behind it (WCAG 1.4.11), and no one colour does that on
   every ground the site has, so --focus follows the ground:
     light grounds (the default)   --sup-deep   5.5 to 1 on white
     the blue header               navy         5.8 to 1 on SUP blue
     dark grounds                  white        14.6 to 1 on SUP Dark Grey
   A new dark or coloured surface sets --focus for what is inside it. Every
   focus rule on the site uses var(--focus); none names a colour. */
:root{--focus:var(--sup-deep)}
.hdr{--focus:var(--ink)}
.ftr,.hero,.pagehero,.about-story,.adv-body,.promo-bar,.dev-bar,.brandp-top{--focus:var(--white)}
/* white surfaces that sit on a dark ground go back to the default */
.qf-fields,.qf-pop,.qf-sheet,.navdd-menu,.drawer,.acct-menu{--focus:var(--sup-deep)}
/* the booking tabs draw the ring inside the tab, on blue, yellow or grey */
.booktab{--focus:var(--ink)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--focus);outline-offset:2px;border-radius:2px;
}
/* The real heading face. supbristol.com self-hosts it through Divi at
   wp-content/uploads/et-fonts/RiftSoft-Bold.ttf, so this is their own
   licensed copy rather than a stand-in. It is inlined as a data URI
   because the artifact sandbox blocks external font files, and the live
   site only has the Bold weight uploaded, which is the weight every
   heading there uses anyway. */
@font-face{
  font-family:"Rift Soft Bold";
  font-style:normal;font-weight:400 900;font-display:swap;
  src:url(data:font/ttf;base64,AAEAAAAPAIAAAwBwRkZUTXM2GMYAARucAAAAHEdERUYILwYuAADyEAAAAERHUE9TvHFq1wAA/CwAAB9wR1NVQucIhmAAAPJUAAAJ1k9TLzJp4YxtAAABeAAAAGBjbWFwWRhgQQAACQgAAAN2Z2FzcP//AAMAAPIIAAAACGdseWbnqrhZAAAQHAAA0NxoZWFkHiXodAAAAPwAAAA2aGhlYQYgA9AAAAE0AAAAJGhtdHj5AkSGAAAB2AAABy5sb2Nhz7GbSgAADIAAAAOabWF4cAIYAHsAAAFYAAAAIG5hbWXAjFfTAADg+AAABIlwb3N0XlCmMQAA5YQAAAyBAAEAAAABAABzGP/bXw889QALA+gAAAAA3l5SUwAAAADeXlJT/yf+vwMiBCoAAQAIAAIAAAAAAAAAAQAAA9T/JAAAA0T/J/+cAyIAAQAAAAAAAAAAAAAAAAAAAcsAAQAAAcwAeAAKAAAAAAACAAAAAQABAAAAQAAAAAAAAAADAaACvAAFAAgCigJYAAAASwKKAlgAAAFeADIBLAAAAAAIAAAAAAAAAAAAAAcAAAAAAAAAAAAAAABVS1dOACAAICJgAwz/JADIA9QA3AAAAJMAAAAAArwCvAAAACAAAwH0AF0AAAAAAU0AAACgAAAAwgAnAWcAGgJWAAoBogAkAf8AHgHPACQAvgAaARQAMgEUABABVgAdAaQAKgDCACgBFAAUAMIAKAE/AAwBtAAuAOwAPAGKACIBkQAeAXoACAGYACoBpAAuAVUABAGbACQBpAAqAMIAKADCACgBpAA6AaQAKgGkAEgBfgAaAmsALgGoABABuQAyAboALgHDADIBgAAyAWsAMgHCAC4B0QAyAOAANgEaAAwBrgAyAWUAMgJTADIB1QAyAcQALgGvADIBxAAuAcMAMgGiACQBagAGAcAAMAGYABACggARAacAGgGeABYBdwAUARQAMgE/AAwBFAAQAXgAGAFs//sBxQCDAagAEAG5ADIBugAuAcMAMgGAADIBawAyAcIALgHRADIA4AA2ARoADAGuADIBZQAyAlMAMgHVADIBxAAuAa8AMgHEAC4BwwAyAaIAJAFqAAYBwAAwAZgAEAKCABEBpwAaAZ4AFgF3ABQBNAAMAPYARgE0ABABjAAeAMIAJwGcAB4BnAASAZ4AFgD2AEYBpAAlAbgAVAJrAC4A5AAWAYoACgFJABgBggBQARkAEAGkACoBxQCrAlMAGADCACgBYABYAOkAFgGKABgCAQAoAhEAKAJsACgBfgAaAagAEAGoABABqAAQAagAEAGoABABqAAQAnIAEAG6AC4BgAAyAYAAMgGAADIBgAAyAOD//gDgADYA4AAFAOD/6AHNAA4B1QAyAcQALgHEAC4BxAAuAcQALgHEAC4BpABZAcQALgHAADABwAAwAcAAMAHAADABngAWAa8AMgNEACQBqAAQAagAEAGoABABqAAQAagAEAGoABACcgAQAboALgGAADIBgAAyAYAAMgGAADIA4P/+AOAANgDgAAUA4P/oAc0ADgHVADIBxAAuAcQALgHEAC4BxAAuAcQALgGkACoBxAAuAcAAMAHAADABwAAwAcAAMAGeABYBrwAyAZ4AFgGoABABqAAQAagAEAGoABABqAAQAagAEAG6AC4BugAuAboALgG6AC4BugAuAboALgHDADIBwwAyAc0ADgHNAA4BgAAyAYAAMgGAADIBgAAyAYAAMgGAADIBgAAyAYAAMgGAADIBgAAyAcIALgHCAC4BwgAuAcIALgHCAC4BwgAuAeUACgHlAAoA4P//AOD//wDgAAIA4AACAOD//ADg//wA4AA2AZIAMgGSADIBrgAyAa4AMgFlADIBZQAyAWUAMgFlADIBZQAyAWUAMgFlADIBZQAyAW8ACgFvAAoB1QAyAdUAMgHVADIB1QAyAdUAMgHVADIB1QAyAdUAMgHEAC4BxAAuAcQALgHEAC4BxAAuAcQALgJrAC4CawAuAcMAMgHDADIBwwAyAcMAMgHDADIBwwAyAaIAJAGiACQBogAkAaIAJAGiACQBogAkAWoABgFqAAYBagAGAWoABgFqAAYBagAGAcAAMAHAADABwAAwAcAAMAHAADABwAAwAcAAMAHAADABwAAwAcAAMAKCABECggARAZ4AFgGeABYBngAWAXcAFAF3ABQBdwAUAXcAFAF3ABQBdwAUAVgADgGoABABqAAQAnIAEAJyABABxAAuAcQALgGiACQBogAkAbQAbwG0AHIB2AB+AR4AWgF9AGkBiQBuAeYAWgLuAN4AAP8nAoIAEQKCABECggARAoIAEQKCABECggARAZ4AFgGeABYBZAAUAfoAFADCACgAwgAoAMIAKAFYACgBWAAoAVgAKAFKAAwBSgAM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RgBvAHUAbgBkAHIAeQAARm9ydCBGb3VuZHJ5AABNAGEAdAB0AG8AeAAgAFMAaAB1AGwAZQByAABNYXR0b3ggU2h1bGVyAABoAHQAdABwADoALwAvAGYAbwByAHQAZgBvAHUAbgBkAHIAeQAuAGMAbwBtAABodHRwOi8vZm9ydGZvdW5kcnkuY29tAABoAHQAdABwADoALwAvAGYAbwByAHQAZgBvAHUAbgBkAHIAeQAuAGMAbwBtAABodHRwOi8vZm9ydGZvdW5kcnkuY29tAABSAGkAZgB0ACAAUwBvAGYAdAAAUmlmdCBTb2Z0AABCAG8AbABkAABCb2xkAAAAAAACAAAAAAAA/7UAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAcwAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAKMAhACFAJYA6ACGAI4AiwCdAKkAigDaAIMAkwCNAIgAwwDeAJ4AqgD1APQA9gCiAK0AyQDHAK4AYgBjAJAAZADLAGUAyADKAM8AzADNAM4A6QBmANMA0ADRAK8AZwDwAJEA1gDUANUAaADrAO0AiQBqAGkAawBtAGwAbgCgAG8AcQBwAHIAcwB1AHQAdgB3AOoAeAB6AHkAewB9AHwAuAChAH8AfgCAAIEA7ADuALoBAgEDAQQBBQEGAQcA/QD+AQgBCQD/AQABCgELAQwBAQENAQ4BDwEQAREBEgETARQBFQEWAPgA+QEXARgBGQEaARsBHAEdAR4BHwEgASEBIgD6ASMBJAElASYBJwEoASkBKgErASwBLQEuAOIA4wEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwAsACxAT0BPgE/AUABQQFCAUMBRAD7APwA5ADlAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAC7AVkBWgFbAVwA5gDnAKYBXQFeAV8BYAFhAWIBYwFkANgA4QDbANwA3QDgANkA3wFlAWYBZwFoAWkBagFrAWwBbQCyALMAtgC3AMQAtAC1AMUAggDCAIcAqwDGAL4AvwC8AW4BbwCMAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AO8AjwF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMB5AdBbWFjcm9uB2FtYWNyb24GQWJyZXZlBmFicmV2ZQdBb2dvbmVrB2FvZ29uZWsKQ2RvdGFjY2VudApjZG90YWNjZW50BkRjYXJvbgZkY2Fyb24GRGNyb2F0B0VtYWNyb24HZW1hY3JvbgZFYnJldmUGZWJyZXZlCkVkb3RhY2NlbnQKZWRvdGFjY2VudAdFb2dvbmVrB2VvZ29uZWsGRWNhcm9uBmVjYXJvbgpHZG90YWNjZW50Cmdkb3RhY2NlbnQMR2NvbW1hYWNjZW50DGdjb21tYWFjY2VudARIYmFyBGhiYXIHSW1hY3JvbgdpbWFjcm9uBklicmV2ZQZpYnJldmUHSW9nb25lawdpb2dvbmVrAklKAmlqDEtjb21tYWFjY2VudAxrY29tbWFhY2NlbnQGTGFjdXRlBmxhY3V0ZQxMY29tbWFhY2NlbnQMbGNvbW1hYWNjZW50BkxjYXJvbgZsY2Fyb24ETGRvdARsZG90Bk5hY3V0ZQZuYWN1dGUMTmNvbW1hYWNjZW50DG5jb21tYWFjY2VudAZOY2Fyb24GbmNhcm9uA0VuZwNlbmcHT21hY3JvbgdvbWFjcm9uBk9icmV2ZQZvYnJldmUNT2h1bmdhcnVtbGF1dA1vaHVuZ2FydW1sYXV0BlJhY3V0ZQZyYWN1dGUMUmNvbW1hYWNjZW50DHJjb21tYWFjY2VudAZSY2Fyb24GcmNhcm9uBlNhY3V0ZQZzYWN1dGUHdW5pMDE2Mgd1bmkwMTYzBlRjYXJvbgZ0Y2Fyb24EVGJhcgR0YmFyB1VtYWNyb24HdW1hY3JvbgZVYnJldmUGdWJyZXZlBVVyaW5nBXVyaW5nDVVodW5nYXJ1bWxhdXQNdWh1bmdhcnVtbGF1dAdVb2dvbmVrB3VvZ29uZWsLV2NpcmN1bWZsZXgLd2NpcmN1bWZsZXgLWWNpcmN1bWZsZXgLeWNpcmN1bWZsZXgGWmFjdXRlBnphY3V0ZQpaZG90YWNjZW50Cnpkb3RhY2NlbnQKQXJpbmdhY3V0ZQphcmluZ2FjdXRlB0FFYWN1dGUHYWVhY3V0ZQtPc2xhc2hhY3V0ZQtvc2xhc2hhY3V0ZQxTY29tbWFhY2NlbnQMc2NvbW1hYWNjZW50B3VuaTAzMjYGV2dyYXZlBndncmF2ZQZXYWN1dGUGd2FjdXRlCVdkaWVyZXNpcwl3ZGllcmVzaXMGWWdyYXZlBnlncmF2ZQRFdXJvB3VuaTIxMjAHdW5pMjE1Mwd1bmkyMTU0B3VuaTIxNTUHdW5pMjE1Ngd1bmkyMTU3B3VuaTIxNTgHdW5pMjE1OQd1bmkyMTVBCW9uZWVpZ2h0aAx0aHJlZWVpZ2h0aHMLZml2ZWVpZ2h0aHMMc2V2ZW5laWdodGhzBkEuc3MwMQtBYWN1dGUuc3MwMQtBYnJldmUuc3MwMRBBY2lyY3VtZmxleC5zczAxDkFkaWVyZXNpcy5zczAxC0FncmF2ZS5zczAxDEFtYWNyb24uc3MwMQxBb2dvbmVrLnNzMDEKQXJpbmcuc3MwMQ9BcmluZ2FjdXRlLnNzMDELQXRpbGRlLnNzMDEHQUUuc3MwMQxBRWFjdXRlLnNzMDEGRy5zczAxC0dicmV2ZS5zczAxEUdjb21tYWFjY2VudC5zczAxD0dkb3RhY2NlbnQuc3MwMQZNLnNzMDEGTi5zczAxC05hY3V0ZS5zczAxC05jYXJvbi5zczAxEU5jb21tYWFjY2VudC5zczAxCEVuZy5zczAxC050aWxkZS5zczAxBlEuc3MwMQZSLnNzMDELUmFjdXRlLnNzMDELUmNhcm9uLnNzMDERUmNvbW1hYWNjZW50LnNzMDEGVy5zczAxC1dhY3V0ZS5zczAxEFdjaXJjdW1mbGV4LnNzMDEOV2RpZXJlc2lzLnNzMDELV2dyYXZlLnNzMDEGWS5zczAxC1lhY3V0ZS5zczAxEFljaXJjdW1mbGV4LnNzMDEOWWRpZXJlc2lzLnNzMDELWWdyYXZlLnNzMDEJaS5sb2NsVFJLBmEuc3MwMQthYWN1dGUuc3MwMQthYnJldmUuc3MwMRBhY2lyY3VtZmxleC5zczAxDmFkaWVyZXNpcy5zczAxC2FncmF2ZS5zczAxDGFtYWNyb24uc3MwMQxhb2dvbmVrLnNzMDEKYXJpbmcuc3MwMQ9hcmluZ2FjdXRlLnNzMDELYXRpbGRlLnNzMDEHYWUuc3MwMQxhZWFjdXRlLnNzMDEGZy5zczAxC2dicmV2ZS5zczAxEWdjb21tYWFjY2VudC5zczAxD2dkb3RhY2NlbnQuc3MwMQZtLnNzMDEGbi5zczAxC25hY3V0ZS5zczAxC25jYXJvbi5zczAxEW5jb21tYWFjY2VudC5zczAxCGVuZy5zczAxC250aWxkZS5zczAxBnEuc3MwMQZyLnNzMDELcmFjdXRlLnNzMDELcmNhcm9uLnNzMDERcmNvbW1hYWNjZW50LnNzMDEGdy5zczAxC3dhY3V0ZS5zczAxEHdjaXJjdW1mbGV4LnNzMDEOd2RpZXJlc2lzLnNzMDELd2dyYXZlLnNzMDEGeS5zczAxC3lhY3V0ZS5zczAxEHljaXJjdW1mbGV4LnNzMDEOeWRpZXJlc2lzLnNzMDELeWdyYXZlLnNzMDEIb25lLnNzMDEHemVyby50ZgZvbmUudGYGdHdvLnRmCHRocmVlLnRmB2ZvdXIudGYHZml2ZS50ZgZzaXgudGYIc2V2ZW4udGYIZWlnaHQudGYHbmluZS50Zghjb2xvbi50Zghjb21tYS50Zg1udW1iZXJzaWduLnRmCXBlcmlvZC50ZgxzZW1pY29sb24udGYIc3BhY2UudGYHY2VudC50Zglkb2xsYXIudGYHRXVyby50ZglmbG9yaW4udGYLc3RlcmxpbmcudGYGeWVuLnRmCnBlcmNlbnQudGYGYmFyLnRmDGJyb2tlbmJhci50ZgAAAAAAAAH//wACAAEAAAAOAAAAPAAAAAAAAgAHAAMAdQABAHYAeAACAHkBOAABATkBOQADAToBVAABAVUBYAACAWEBywABAAQAAAACAAAAAQAAAAoBKAHgAAJERkxUAA5sYXRuACYABAAAAAD//wAHAAAAAQAKAAsADAANAA4ANAAIQVpFIABIQ0FUIABe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AAIBYwFtAAEBbgFvAAMBcAF6AAEBewF7AAgBfAF/AAoBgAGJAA0BiwGVAAEBlgGXAAMBmAGiAAEBowGjAAgBpAGnAAoBqAGxAA0AAgBwAAMAAwAVAAUABQAPAAcABwAEAAkACQAlAAoACgAPAAwADAAZAA0ADQAKAA8ADwAbABAAEAABABEAEQAbABIAEgAaABMAEwADABQAFAATABUAFQAkABYAFgAgABcAFwASABgAGAAeABkAGQADABoAGgAUABsAGwADABwAHAAfAB0AHgAjACIAIgAOACQAJAACACYAJgADACoAKgADAC0ALQAdADIAMgADADQANAADADYANgAEADcANwAFADgAOAAGADkAOQAHADoAOgAIADsAOwAXADwAPAAJAD0APQAYAD8APwARAEAAQAAZAEEAQQAQAEQARAACAEYARgADAEoASgADAE0ATQAdAFIAUgADAFQAVAADAFYAVgAEAFcAVwAFAFgAWAAGAFkAWQAHAFoAWgAIAFsAWwAXAFwAXAAJAF0AXQAYAGAAYAAZAGEAYQABAGkAaQADAGsAawAMAGwAbAADAHIAcgALAHUAdQANAHkAeQAiAHoAfwACAIAAgAAWAIEAgQADAIwAkAADAJIAkgADAJMAlgAGAJcAlwAJAJkAmQAEAJoAnwACAKAAoAAWAKEAoQADAKwAsAADALIAsgADALMAtgAGALcAtwAJALkAuQAJALoAvwACAMAAxQADANQA2QADAPkBAAADAQcBDAAEAQ0BEgAFARMBHAAGAR0BHgAIAR8BIQAJASIBJwAYASgBKAAhASkBKgACASsBLAAWAS0BLgADAS8BMAAEAToBPwAIAUABQQAJAUIBQwABAUQBRQAPAUcBSAAPAUwBTAALAU0BTQAbAU8BTwAMAVABUAANAVMBVAAKAWEBYQABAWMBbwAcAXABcwADAXsBewADAYABiQAGAYsBlwAcAZgBmwADAaMBowADAagBsQAGAAIAGgAHAAcAAAATABMAAQAWABYAAgAbABwAAwAkACoABQAtAC8ADAAyAD0ADwBEAEoAGwBNAE8AIgBSAF0AJQBpAGkAMQBsAGwAMgB6AIUAMwCKAIoAPwCMAJAAQACSAKUARQCqAKoAWQCsALAAWgCyANkAXwDjAPAAhwD5AScAlQEpATAAxAE6AUEAzAFSAVIA1AFjAYkA1QGLAbEA/AACACQABAAAABQAHAABAAIAAP/sAAEAAAABAAAAAQAXAAEAAQABAAMAagBuAHQAAgDuAAQAAAA0ADwAAgAJAAD/7P/s//r/+P/w//D/9gAAAAD/zv/s//D/8P/i/+z/7P/iAAEAQQABAAEAAgAdACQAJAAIAC0ALQABADcANwACADkAOQADADoAOgAEADsAOwAFADwAPAAGAD0APQAHAEQARAAIAE0ATQABAFcAVwACAFkAWQADAFoAWgAEAFsAWwAFAFwAXAAGAF0AXQAHAHoAfwAIAJcAlwAGAJoAnwAIALcAtwAGALkAuQAGALoAvwAIAQ0BEgACAR0BHgAEAR8BIQAGASIBJwAHASkBKgAIAToBPwAEAUABQQAGAAEAAgAJAEEAAgIqAAQAAACIAJoABQAMAAD//f/8AAAAAAAAAAAAAAAAAAAAAAAAAAD/8P/n//b/+v/s//T/8v/4/+IAAAAAAAD/0wAA/9j/+wAAAAAAAAAAAAD/4v/9AAD//QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/6AAAAAAAAAAAAAAAAAAAAAAAAAAEAFQAGAAQAAAABAAAAAwACAAIAQgAHAAcABAATABMACwAZABkACwAbABsACwAkACQACgAmACYACwAqACoACwAtAC0AAQAyADIACwA0ADQACwA2ADYABAA3ADcABQA5ADkABgA6ADoABwA8ADwAAgA9AD0ACABEAEQACgBGAEYACwBKAEoACwBNAE0AAQBSAFIACwBUAFQACwBWAFYABABXAFcABQBZAFkABgBaAFoABwBcAFwAAgBdAF0ACABpAGkACwBqAGoACQBsAGwACwBuAG4ACQB0AHQACQB6AH8ACgCAAIAAAwCBAIEACwCMAJAACwCSAJIACwCXAJcAAgCZAJkABACaAJ8ACgCgAKAAAwChAKEACwCsALAACwCyALIACwC3ALcAAgC5ALkAAgC6AL8ACgDAAMUACwDUANkACwD5AQAACwEHAQwABAENARIABQEdAR4ABwEfASEAAgEiAScACAEpASoACgErASwAAwEtAS4ACwEvATAABAE6AT8ABwFAAUEAAgFwAXMACwF7AXsACwGYAZsACwGjAaMACwABAAUAFQAXABgAGQAaAAIAyAAEAAAAIAAoAAEACAAA//b/9v/2//b/9v/2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) format("truetype");
}

h1,h2,h3,h4,h5{
  font-family:"Rift Soft Bold","Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  /* supbristol.com sets its Rift Soft headings at normal tracking. The
     -0.035em here was tightening Baloo 2, which is a much wider face and
     needed it; on a condensed one it reads cramped. */
  text-transform:uppercase;font-weight:700;letter-spacing:normal;
  line-height:1.05;margin:0;text-wrap:balance;
}
p{margin:0}
/* buttons default to the UA's black `buttontext`, which is unreadable on
   dark surfaces, inherit instead, and let the button classes override. */
button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer}
ul{margin:0}

/* ---------- type scale ---------- */
.d1{font-size:var(--d1)}
.d2{font-size:var(--d2)}
.d3{font-size:var(--d3)}
.d4{font-size:var(--d4)}
.d5{font-size:1.0625rem}
/* The steps inside the booking panel. Real headings so the panel has a
   readable structure rather than a run of small grey labels, but sized
   for a 350px column rather than the page. */
.bookstep{font-size:1.6875rem;letter-spacing:normal;margin:0}
/* Sized down from .d1 to share the activity hero with a photo, price
   and description rather than fill it the way a page title would. */
.act-title{font-size:var(--act-title)}
.lede{font-size:var(--lede);color:var(--ink-2);line-height:1.6}
.body-sm{font-size:.875rem;line-height:1.6;color:var(--ink-2)}
.tiny{font-size:.8125rem;line-height:1.5;color:var(--muted)}
/* body copy runs the full width of its column, the same everywhere */
.prose p{margin-bottom:14px;color:var(--ink-2)}
.prose p:last-child{margin-bottom:0}
.prose ul{padding-left:20px;margin-bottom:14px;color:var(--ink-2)}
.prose li{margin-bottom:7px}
.prose li::marker{color:var(--sup-deep)}

.label{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;font-weight:600;
  font-size:.8125rem;letter-spacing:.08em;line-height:1.2;color:var(--muted);
}
.label-ink{color:var(--ink)}
/* Helpers that go with the text classes above, in place of style
   attributes: .ink for the main text colour on a quieter class (body-sm,
   tiny), .m0 to drop a paragraph's own margin inside a stack. */
.ink{color:var(--ink)!important}
.m0{margin:0!important}
.go{color:var(--go)!important}          /* the success green: a saving, a discount */
.center{text-align:center!important}
.num{font-variant-numeric:tabular-nums}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 clamp(20px,4vw,32px)}
.wrap-narrow{width:100%;max-width:780px;margin:0 auto;padding:0 clamp(20px,4vw,32px)}
.stack{display:flex;flex-direction:column}
.stack-1{gap:4px}.stack-2{gap:8px}.stack-3{gap:12px}.stack-4{gap:16px}
.stack-5{gap:24px}.stack-6{gap:32px}
.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.row-tight{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.spread{display:flex;align-items:center;justify-content:space-between;gap:16px}
.spread-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.section{padding:clamp(38px,5.5vw,68px) 0}
.section-tight{padding:clamp(26px,3.5vw,40px) 0}
/* The space above a page's first section, under the header. One class, in
   place of the same padding typed into a style attribute on every page. */
.page-top{padding-top:clamp(20px,4vw,32px)!important}
/* a product page starts closer to the header: its title block is the top of the page */
.page-top-tight{padding-top:clamp(12px,2vw,20px)!important}
/* the space under a page's last section, above the footer */
.page-end{padding-bottom:clamp(40px,6vw,72px)!important}
.grid{display:grid;gap:clamp(14px,2vw,20px)}
.grid > *{min-width:0}
.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(196px,1fr))}
.hr{height:1px;background:var(--rule-soft);border:0;margin:0}
.fill{flex:1}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;font-weight:700;letter-spacing:.05em;
  font-size:1.0625rem;line-height:1;
  padding:15px 24px;border:2px solid transparent;border-radius:999px;
  text-decoration:none;white-space:nowrap;
  transition:background .12s ease,border-color .12s ease,color .12s ease;
  /* the default is the brand blue with white text: a button says nothing
     extra to be the usual one */
  background:var(--btn-bg);color:var(--btn-fg);border-color:var(--btn-bg);
}
/* hover is one step down the blue, not the deep shade, which read as a
   different colour rather than the same button under the pointer */
.btn:hover{background:var(--btn-hover);border-color:var(--btn-hover);color:var(--btn-fg)}
/* Compare, "Buttons": two fixes for white on SUP blue (2.56 to 1), switched
   by data-btn on <html>. With nothing set the button is as it was.
   navy: the fill stays SUP blue, the label goes navy.
   deep: the label stays white, the fill goes deep blue.
   large: the fill goes a shade under SUP blue and every blue button's label
     grows to the smallest size that counts as large text (14pt bold), which
     needs only 3 to 1. It passes by a hair: 3.01, and 3.14 under the pointer. */
html[data-btn="navy"]{--btn-fg:var(--harbour)}
html[data-btn="deep"]{--btn-bg:var(--sup-deep);--btn-hover:var(--sup-deep-hover)}
html[data-btn="large"]{--btn-bg:var(--sup-large)}
html[data-btn="large"] .btn:not(.btn-ghost):not(.btn-dark):not(.btn-google){font-weight:700}
html[data-btn="large"] .btn:not(.btn-ghost):not(.btn-dark):not(.btn-google):not(.btn-lg){
  /* style-ok: 14pt, 18.67px, is the legal floor for large bold text and sits between two steps */
  font-size:1.1667rem}
/* on a phone the big button drops to 17px, under the floor, so it is held at it */
@media(max-width:600px){
  html[data-btn="large"] .btn-lg:not(.btn-ghost):not(.btn-dark):not(.btn-google){
    /* style-ok: the same 14pt floor */
    font-size:1.1667rem}
}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--rule)}
.btn-ghost:hover{border-color:var(--ink);background:var(--surface-2)}
.btn-dark{background:var(--harbour);color:var(--on-dark);border-color:var(--harbour)}
.btn-dark:hover{background:var(--harbour-2);border-color:var(--harbour-2)}
.btn-sm{padding:10px 18px;font-size:.9375rem;border-radius:999px}
.btn-lg{padding:18px 30px;font-size:1.25rem}
.btn-block{width:100%}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.4;pointer-events:none}
.btn-link{
  background:none;border:0;padding:0;color:var(--sup-deep);font-family:inherit;
  font-size:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;
}
.btn-link-quiet{color:var(--muted);text-decoration:underline}

/* ---------- tags ---------- */
.tag{
  display:inline-flex;align-items:center;gap:5px;
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;font-weight:600;letter-spacing:.08em;
  font-size:.8125rem;line-height:1;padding:5px 8px;
  border:1px solid var(--rule);color:var(--ink-2);background:var(--surface);
  border-radius:2px;white-space:nowrap;
}
.tag-go{border-color:var(--go);color:var(--go);background:var(--go-wash)}
/* "Best value" recommends, it does not warn, so it takes the pink at
   full strength rather than the soft tint .tag-scarce uses for spaces
   running out. Same family, different job, and they never share a row. */
.tag-best{
  background:var(--pink);border-color:var(--pink);color:var(--harbour);
  border-radius:999px;padding:5px 12px;
}
.tag-rope{border-color:var(--rope);color:var(--rope);background:var(--rope-wash)}
.tag-stop{border-color:var(--stop);color:var(--stop);background:var(--stop-wash)}
/* "Spaces left" scarcity reminder: a pink tint rather than the solid
   fill .tag-groups uses, so it reads as gentler than a full-colour
   badge. Text stays on the site's standard ink grey (not a one-off
   shade) so it keeps the same contrast and feel as every other tag. */
.tag-scarce{
  background:color-mix(in srgb,var(--pink) 38%,var(--surface));
  border-color:color-mix(in srgb,var(--pink) 38%,var(--surface));
  color:var(--ink-2);border-radius:999px;padding:5px 12px;
}
.tag-tide{border-color:var(--tide);color:var(--tide-ink);background:var(--tide-wash)}
.tag-sup{border-color:var(--sup-deep);color:var(--sup-deep);background:var(--sup-wash)}
/* Private groups are one yellow everywhere they appear: solid brand
   yellow with harbour ink on it, badge, pill and tab alike. */
.tag-groups{border-color:var(--groups);color:var(--harbour);background:var(--groups);border-radius:999px;padding:5px 12px}
.tag-off{border-color:var(--rule);color:var(--muted);background:var(--surface-2)}

/* ---------- filter pills ---------- */
.pill{
  display:inline-flex;align-items:center;gap:6px;
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;font-weight:600;letter-spacing:.05em;font-size:.9375rem;
  padding:9px 14px;border:1px solid var(--rule);background:var(--surface);
  color:var(--ink-2);border-radius:2px;cursor:pointer;line-height:1;
  transition:border-color .12s,background .12s,color .12s;
}
.pill:hover{border-color:var(--ink-2)}
.pill[aria-pressed="true"]{background:var(--harbour);border-color:var(--harbour);color:var(--on-dark)}
/* Fits the All Sessions / Private Groups pair next to the price on the
   product page, mobile included, without the row wrapping. */

/* A pill as a rounded lozenge on a quiet fill: the date chips in the search.
   Hover and the chosen state are .pill's own. */
.pill-tag{
  border-radius:999px;padding:9px 16px;
  background:var(--surface-2);border-color:var(--rule);color:var(--ink-2);
}

/* ---------- cards ---------- */
.card{
  background:var(--surface);border:1px solid var(--rule);border-radius:2px;
  display:flex;flex-direction:column;overflow:hidden;
}
.card-pad{padding:clamp(16px,2.2vw,22px)}
.card-link{text-decoration:none;color:inherit;transition:border-color .12s ease}
.card-link:hover{border-color:var(--sup-deep)}
.card-link:hover .card-title{color:var(--sup-deep)}
.card-title{transition:color .12s ease}

/* ---------- holding image ----------
   A plain neutral fill stands in for a photo that hasn't been shot or
   chosen yet, conventional rather than illustrative so it reads as a
   placeholder, not a design choice. */
.holding{
  position:relative;
  background:var(--surface-3);
  aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;overflow:hidden;
}
/* A real photo, when there is one, sits under the caption slot. The image
   itself lives on a pseudo-element a couple of percent oversized on every
   side, not on this element directly: a grid track sized by calc() can
   land the box on a fractional device pixel, and a background sized
   "cover" to that exact fraction can then leave a sliver of whatever sits
   behind it (the placeholder grey, or a neighbouring card) showing along
   one edge. The oversized pseudo-element gets clipped by this element's
   own overflow:hidden, so the crop still lands exactly on the box; only
   the risk of a fractional-pixel gap goes away. The image comes in via the
   --ph custom property, set inline where each photo is used, because a
   custom property is the one way an inline value reaches a ::before. */
.holding-photo::before{
  content:"";position:absolute;inset:-2%;
  background-image:var(--ph);background-size:cover;background-position:center;
}
.holding-photo .holding-cap{display:none}
/* Inline video sits over its poster and fills the frame the same way. */
.hero-video,.gallery-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;background:#000}
.holding-hero .hero-video{z-index:0}
.holding-cap{
  position:relative;z-index:2;width:100%;text-align:center;
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;font-weight:600;letter-spacing:.08em;font-size:.75rem;
  color:var(--holding-cap);padding:7px 14px;
}
.holding-wide{aspect-ratio:21/9}

.holding-sq{aspect-ratio:1/1}
/* the video hero sits behind light text on the dark hero section, so
   its placeholder stays dark rather than switching to the neutral fill */
.holding-hero{aspect-ratio:auto;position:absolute;inset:0;background:var(--harbour-2)}
.holding-hero .holding-cap{color:var(--on-dark);background:var(--scrim-solid);text-align:left}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:6px}
input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="date"],input[type="time"],
input[type="number"],input[type="search"],select,textarea{
  font-family:inherit;font-size:1rem;color:var(--ink);
  background:var(--surface);border:1px solid var(--rule);border-radius:2px;
  padding:12px 13px;width:100%;
}
input::placeholder,textarea::placeholder{color:var(--muted)}
textarea{resize:vertical;min-height:96px;line-height:1.6}
.check{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.check input{margin-top:4px;width:18px;height:18px;accent-color:var(--sup-deep);flex:none}

/* ---------- table ---------- */
.tbl-scroll{overflow-x:auto;border:1px solid var(--rule);border-radius:2px;background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:.9375rem}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--rule-soft);vertical-align:top}
th{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;font-weight:600;letter-spacing:.08em;font-size:.8125rem;
  color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--rule);
}
tbody tr:last-child td{border-bottom:0}
td.r,th.r{text-align:right;font-variant-numeric:tabular-nums}

/* ---------- notice ---------- */
/* Style rule: notice boxes are a tinted fill only, never a coloured line
   down the left. The tint carries the meaning (cyan info, orange warning,
   green success). */
.notice{border:0;background:var(--sup-wash);padding:14px 16px;border-radius:2px}
.notice-rope{background:var(--rope-wash)}
/* a notice that carries its meaning in an icon does not also need a bar
   down its side */
.notice-plain{border-left:0;padding-left:16px}
.notice-plain.notice-icon{display:flex;gap:11px;align-items:flex-start}
.notice-icon .mi{flex:none;margin-top:1px}

/* ---------- icons ---------- */
.mi{
  font-family:"Material Symbols Rounded";font-weight:400;font-style:normal;
  font-size:20px;line-height:1;letter-spacing:normal;text-transform:none;
  display:inline-block;white-space:nowrap;direction:ltr;vertical-align:-4px;
  -webkit-font-feature-settings:"liga";font-feature-settings:"liga";
  -webkit-font-smoothing:antialiased;
}
.mi-sm{font-size:17px;vertical-align:-3px}

/* the review count goes to the Google listing, but it is a fact on the
   page first and a link second, so it is not dressed as one */
.plainlink{color:inherit;text-decoration:none}
/* the required-field star, in the scarcity colour so it reads as a flag */
.req{color:var(--rope);font-weight:700;margin-left:2px}
.plainlink:hover{text-decoration:underline}

/* A grid that becomes a swipeable rail on a phone, rather than a column
   of cards you have to scroll past to reach the next section. */


/* The voucher promo: picture beside the pitch on a wide screen, stacked
   below it on a narrow one. Named vpromo because .promo is already a
   dark promotional card elsewhere, and reusing it made this one dark
   with light-on-light text inside. */
.vpromo{overflow:hidden}
.vpromo-img{aspect-ratio:16/10}
@media(min-width:761px){
  .vpromo{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
  .vpromo-img{aspect-ratio:auto;height:100%}
  .vpromo-body{align-content:center;padding:clamp(24px,3vw,40px)}
}
.notice-go{background:var(--go-wash)}

/* The group-too-big notice. It only ever appears in the booking column,
   which stays near 350px even on a wide screen, so it is built to stack
   rather than pretending it will ever fit on one line. The action goes
   full width because the button below it, add to basket, is disabled at
   this point and this is the live way forward. */
.overcap{padding:16px}
.overcap-msg{margin:0 0 12px;color:var(--ink);font-size:.9375rem;line-height:1.5}
.overcap-msg b{font-weight:700;white-space:nowrap}
.overcap .btn{width:100%}

/* A locked private tick. It is disabled, but it is on and it is a fact
   about the booking, so it must not read as greyed out or unavailable. */
.check input[type=checkbox]:disabled{opacity:1;cursor:default}
.check:has(input:disabled){cursor:default}

/* ---------- prototype annotation ---------- */
.anno{
  border:1px dashed var(--rope);background:var(--rope-wash);color:var(--rope);
  padding:9px 12px;border-radius:2px;font-size:.8125rem;line-height:1.5;
}
.anno b{font-weight:600}
body.no-anno .anno{display:none}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* ===== from src/02-shell.html ===== */

/* ============================================================
   SHELL, header, nav, sticky action bar, footer
   ============================================================ */

/* The header is the brand cyan in every theme, with the mark, icons and
   nav all knocked out to white on it. */
.hdr{
  position:sticky;top:0;z-index:var(--z-header);background:var(--hdr-bg);
}
.hdr-in{display:flex;align-items:center;gap:16px;height:72px}
/* The mark is a flat PNG on a white ground, so a plain invert would leave
   a white block. Crush it to black-on-white, flip it to white-on-black,
   then screen it so the black ground disappears into the cyan. */
.hdr .brand-mark{filter:brightness(.6) grayscale(1) contrast(9) invert(1);mix-blend-mode:screen}
.hdr .icobtn{color:var(--hdr-fg)}
.hdr .icobtn:hover{background:var(--hdr-hover);color:var(--hdr-fg)}
.hdr .nav a{color:var(--hdr-fg)}
/* an underline on hover, the same affordance the current page already
   carries, rather than a background wash: it reads as "here" either way,
   and unlike a fill it never looks like the item has become a button */
/* the current page is a block of Bristol pink behind the item, as the
   Outdoor Instructor Training menu has it; hover is a quieter wash */
.hdr .nav a{padding:10px 12px;border-bottom:0;border-radius:0}
.hdr .nav a:hover{color:var(--hdr-fg);background:var(--hdr-hover)}
.hdr .nav a[aria-current="page"],.hdr .nav a[aria-current="page"]:hover{color:var(--harbour);background:var(--pink)}
/* About dropdown in the header */
.navdd{position:relative;display:flex}
.navdd-btn{display:inline-flex;align-items:center;font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;font-weight:600;letter-spacing:.05em;font-size:1rem;color:var(--hdr-fg);background:none;border:0;
  padding:10px 12px;border-radius:0;cursor:pointer;white-space:nowrap}
.navdd-btn[aria-current="page"]{background:var(--pink);color:var(--harbour)}
.navdd:hover .navdd-btn,.navdd:focus-within .navdd-btn{background:var(--hdr-hover)}
.navdd:hover .navdd-btn[aria-current="page"],.navdd:focus-within .navdd-btn[aria-current="page"]{background:var(--pink);color:var(--harbour)}
.navdd-menu{display:none;position:absolute;top:100%;left:0;z-index:var(--z-dropdown);min-width:210px;padding:6px;margin-top:4px;
  background:var(--surface);border:1px solid var(--rule);border-radius:12px;box-shadow:var(--shadow-low)}
.navdd:hover .navdd-menu,.navdd:focus-within .navdd-menu{display:block}
.navdd-menu::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}
.hdr .nav .navdd-menu a{display:block;color:var(--ink);text-transform:none;letter-spacing:0;font-family:inherit;
  font-weight:500;font-size:.9375rem;padding:9px 12px;border-bottom:0;border-radius:6px}
.hdr .nav .navdd-menu a:hover{background:var(--surface-2);color:var(--ink)}
.hdr .nav .navdd-menu a[aria-current="page"]{background:var(--sup-wash)}

/* Compare, "Top menu bar": four ways of getting the menu past AA contrast,
   switched by data-bar on <html>. With nothing set the bar is as it was:
   white on SUP blue, which fails. Each one only resets the header tokens,
   plus what a token cannot carry (the mark's filter, the focus ring's
   ground). Nothing outside the bar changes.
   In all four the current page loses its pink block and is not marked. The
   pointer draws a line under the words in place of the wash, in the menu's
   own colour: it grows out from their middle, then draws back in. */
html[data-bar]{--hdr-line:var(--hdr-fg)}
html[data-bar] .hdr .nav > a[aria-current="page"],html[data-bar] .hdr .nav > a[aria-current="page"]:hover,
html[data-bar] .navdd-btn[aria-current="page"],
html[data-bar] .navdd:hover .navdd-btn[aria-current="page"],
html[data-bar] .navdd:focus-within .navdd-btn[aria-current="page"]{color:var(--hdr-fg);background:none}
html[data-bar] .hdr .nav > a,html[data-bar] .navdd-btn{position:relative}
html[data-bar] .hdr .nav > a::after,html[data-bar] .navdd-btn::after{
  content:"";position:absolute;left:12px;right:12px;bottom:5px;height:2px;background:var(--hdr-line);
  transform:scaleX(0);transition:transform .25s ease}
html[data-bar] .hdr .nav > a:hover,html[data-bar] .navdd:hover .navdd-btn,html[data-bar] .navdd:focus-within .navdd-btn{background:none}
html[data-bar] .hdr .nav > a:hover::after,html[data-bar] .navdd:hover .navdd-btn::after,html[data-bar] .navdd:focus-within .navdd-btn::after{transform:scaleX(1)}
/* the page you are on keeps its line (George, 2026-10-09) */
html[data-bar] .hdr .nav > a[aria-current="page"]::after,html[data-bar] .navdd-btn[aria-current="page"]::after{transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){
  html[data-bar] .hdr .nav > a::after,html[data-bar] .navdd-btn::after{transition:none}
}
/* 1 white: a white bar, the mark in its own blue, dark grey menu. The line
     is SUP blue, to match the mark. At 2.6 to 1 on white it is decoration
     only: nothing depends on seeing it. */
html[data-bar="white"]{--hdr-bg:var(--surface);--hdr-fg:var(--harbour);--hdr-line:var(--sup)}
html[data-bar="white"] .hdr{--focus:var(--sup-deep);box-shadow:inset 0 -1px 0 var(--rule)}
html[data-bar="white"] .hdr .brand-mark{filter:none;mix-blend-mode:normal}
html[data-bar="white"] .hdr .icobtn:hover{background:var(--surface-2)}
/* 2 grey: the bar in SUP Dark Grey, white mark and menu. */
html[data-bar="grey"]{--hdr-bg:var(--brand-slate)}
/* 3 deep: the bar in the deep blue, white mark and menu. */
html[data-bar="deep"]{--hdr-bg:var(--sup-deep)}
html[data-bar="grey"] .hdr,html[data-bar="deep"] .hdr{--focus:var(--white)}
/* 5 large: the bar a shade under SUP blue, white mark and menu, and the
   menu words at the smallest size that counts as large text (14pt bold),
   which needs only 3 to 1. It passes by a hair: 3.01. */
html[data-bar="large"]{--hdr-bg:var(--sup-large)}
html[data-bar="large"] .hdr .nav > a,html[data-bar="large"] .navdd-btn{
  /* style-ok: 14pt, 18.67px, is the legal floor for large bold text and sits between two steps */
  font-size:1.1667rem;font-weight:700}
/* 4 navy: the blue stays, the mark and the menu go navy. The mark is
   crushed to black on white and multiplied onto the bar, a little
   see-through so it lands on navy rather than black. */
html[data-bar="navy"]{--hdr-fg:var(--harbour)}
html[data-bar="navy"] .hdr .brand-mark{filter:brightness(.6) grayscale(1) contrast(9);mix-blend-mode:multiply;opacity:.88}

/* What is being booked, carried in the header rather than a bar over the
   bottom of the page. The header is already sticky, so it follows you
   down without covering anything. */
.bookstrip{
  background:var(--surface);
  padding:8px clamp(12px,4vw,20px);text-align:center;
  font-size:.875rem;line-height:1.5;color:var(--ink-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.bookstrip[hidden]{display:none}
/* home page activity carousel: snap-scrolling row, arrows beside the heading link */
.carousel{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 60px)/4);gap:20px;
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding-bottom:4px}
.carousel::-webkit-scrollbar{display:none}
.carousel{cursor:grab;user-select:none}
.carousel-item{scroll-snap-align:start;display:flex}
.carousel-item>*{flex:1}
/* not bookable on the dates chosen: greyed out, still there to open */
/* not bookable on the dates chosen: the photo goes grey and a band says so
   with the next date; the text and Book Now stay at full strength */
.off-band{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;padding:9px clamp(14px,2vw,20px);
  background:var(--brand-slate);color:var(--white);font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:600;line-height:1.2}
.off-band b{font-weight:700}
.off-band .mi{font-size:18px}
.off-band .off-sep{opacity:.5}
/* quick find, Airbnb-style: two dropdown fields side by side, Search beneath */
.qf{display:flex;flex-direction:column;gap:12px}
/* the Quick Find bar with no card behind it: it keeps the vertical position
   the card used to give it, and nothing else */
.qf-bare{margin-top:clamp(20px,5vw,56px)}
.section-tight .qf-bare,.book-head .qf-bare{margin-top:0}
/* wider than a phone: Activity, Date and Search on one line */
@media(min-width:601px){
  .qf{flex-direction:row;align-items:stretch}
  .qf-fields{flex:1;min-width:0}
  .qf-go{width:auto;flex:none;padding-inline:28px;border-radius:12px}
}
.qf-fields{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--rule);border-radius:12px;background:var(--surface)}
.qf-cell{position:relative;min-width:0}
.qf-cell+.qf-cell{border-left:1px solid var(--rule)}
.qf-field{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:12px 16px;border:0;background:transparent;
  font:inherit;color:var(--ink);text-align:left;cursor:pointer;border-radius:12px}
.qf-field b{font-size:1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* Choose activity / Choose date read as plain sentence-case captions, not
   a shouted heading, so they take the body face and drop .label's caps and
   its bold weight (traced from the mockup: a plain regular-weight caption) */
.qf-field .label{
  font-family:"Poppins","Helvetica Neue",Arial,sans-serif;
  text-transform:none;letter-spacing:0;font-size:.875rem;font-weight:400;color:var(--muted);
}
.qf-field:hover{background:var(--surface-2)}
.qf-field[aria-expanded="true"]{background:var(--surface);box-shadow:0 0 0 2px var(--sup-deep)}
/* the typed field carries aria-expanded on the input inside it, so the ring
   has to come from the focus landing anywhere within */
.qf-field:focus-within{background:var(--surface);box-shadow:0 0 0 2px var(--sup-deep)}
/* a small down-chevron after each value, hidden once the X takes its place */
.qf-chev{display:none;font-size:18px;color:var(--ink-2);flex:none}
.qf-fieldwrap:has(.qf-clear) .qf-chev{display:none!important}
/* Home hero bar, traced from mockup: one white pill rather than a bordered
   box with a separate button beside it, narrow and content-width rather
   than stretched the full card, a short hairline between the two fields
   instead of a border the height of the row, and the Search button its own
   smaller pill inset by the outer one's own padding. Single-line fields:
   the caption above the value only earns its place once there is a second
   line of information to separate it from, which a placeholder-style value
   does not need. Same breakpoint as the centred hero block below, so a
   tablet width does not land on a pill bar sitting left of a centred
   title. */
@media(min-width:1000px){
  .qf-pill .qf{
    --focus:var(--sup-deep);   /* a white bar, wherever it sits */
    width:fit-content;max-width:100%;background:var(--white);border-radius:999px;padding:6px;gap:0;
    box-shadow:var(--shadow-mid);
  }
  /* Equal-width fields, not each shrinking to its own text: unequal
     widths were what put the two chevrons at different distances from
     the divider, the inconsistency more visible than either field being
     narrower than the bar itself. */
    /* one row whatever the number of fields: two on the home and book bars, three with the group size */
  .qf-pill .qf-fields{border:0;background:transparent;border-radius:0;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr)}
  /* the activity is the longest value, so its field gets the extra room */
  .qf-pill .qf-cell:first-child{min-width:320px}
  .qf-pill .qf-cell+.qf-cell{border-left:0}
  .qf-pill .qf-cell+.qf-cell::before{
    content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--rule);
  }
  .qf-pill .qf-field{
    flex-direction:row;align-items:center;justify-content:space-between;gap:6px;width:100%;
    padding:10px 20px 10px 22px;border-radius:999px;
  }
  /* the small Choose activity / Choose date label sits over the value, as on mobile and tablet */
  .qf-pill .qf-field{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 24px;column-gap:6px;row-gap:0;padding-block:4px;align-items:center}
  .qf-pill .qf-field .label{display:block;grid-column:1;grid-row:1;margin:0}
  .qf-pill .qf-field b,.qf-pill .qf-field .qf-typed{grid-column:1;grid-row:2}
  .qf-pill .qf-field .qf-chev{grid-column:2;grid-row:1 / 3}
  /* the text side flex-grows to fill the row, so the chevron and the X
     land at the same distance from the right edge on both fields
     regardless of how long the value itself is */
  .qf-pill .qf-field b,
  .qf-pill .qf-field .qf-typed{flex:1;min-width:0}
  .qf-pill .qf-chev{flex:none}
  .qf-pill .qf-field b,
  .qf-pill .qf-field .qf-typed{font-size:.9375rem;font-weight:600;color:var(--ink);font-family:"Poppins","Helvetica Neue",Arial,sans-serif}
  .qf-pill .qf-typed::placeholder{font-weight:500}
  /* the prompt is longer than any choice, so it runs a little smaller; the
     row it sits in keeps its height either way, so nothing shifts */
  .qf-pill .qf-field .qf-typed:placeholder-shown{font-size:.8125rem;font-weight:500}
  .qf-pill .qf-typed::placeholder{color:var(--ink-2);opacity:1}
  .qf-pill .qf-chev{display:inline-block}
  .qf-pill .qf-go{
    /* a wider, shallower pill, so the bar reads as one slim strip */
    /* an even 10px of white all round the pill, inside the bar */
    border-radius:999px;padding:0 42px;min-height:0;height:42px;align-self:center;margin-left:10px;margin-right:4px;
    font-family:"Poppins","Helvetica Neue",Arial,sans-serif;
    text-transform:none;letter-spacing:normal;font-weight:700;font-size:.9375rem;
    color:var(--btn-fg);
  }
  .qf-pill .qf-go:hover{color:var(--btn-fg)}
  .qf-pill .qf-go .mi{display:none}
  .qf-pill .qf-clear{right:6px}
  /* hover and open states: a soft pill filling the field's full height,
     and the divider steps aside while either field is lit */
  .qf-pill .qf-cell,.qf-pill .qf-fieldwrap{display:flex;align-items:stretch}
  .qf-pill .qf-fieldwrap{flex:1}
  .qf-pill .qf-field{height:100%;transition:background-color .12s}
  .qf-pill .qf-field:hover,
  .qf-pill .qf-field[aria-expanded="true"],
  .qf-pill .qf-field-typed:focus-within{background:var(--surface-2);box-shadow:none}
  .qf-pill .qf-fields:has(.qf-field:hover, .qf-field[aria-expanded="true"], .qf-field-typed:focus-within) .qf-cell+.qf-cell::before{opacity:0}
}
.qf-pop{position:absolute;top:calc(100% + 8px);left:0;z-index:var(--z-sticky);width:min(360px,calc(100vw - 48px));
  background:var(--surface);border:1px solid var(--rule);border-radius:12px;box-shadow:var(--shadow-mid);padding:10px}
.qf-cell+.qf-cell .qf-pop{left:auto;right:0}
/* the hero clips its video, which also cut an open dropdown off at the
   hero's edge and let the next section sit on top of it; while one is
   open, let it spill out and stack above what follows */
.hero:has(.qf-pop:not([hidden])){overflow:visible;z-index:var(--z-sticky)}
/* the same for a page hero and for the group finder on a plain page: while a
   dropdown is open it sits above what follows (the gallery's video and arrows
   carry a z-index of their own and were painting over the open calendar) */
.pagehero:has(.qf-pop:not([hidden])){z-index:var(--z-sticky)}
.groups-finder:has(.qf-pop:not([hidden])){position:relative;z-index:var(--z-sticky)}
.qf-pop[hidden]{display:none}
/* the activity field is the search box: the input is dressed as the value it
   replaces, so nothing about the bar looks different until you type in it */
/* outranks the shared input[type="text"] rule, which would otherwise put its
   own border, background and padding back around the value */
.qf-field-typed{cursor:text}
.qf-field .qf-typed{
  width:100%;min-width:0;border:0;outline:0;background:transparent;padding:0;border-radius:0;
  font:inherit;font-size:1rem;font-weight:600;color:var(--ink);text-overflow:ellipsis;
}
.qf-field .qf-typed::placeholder{color:var(--ink);font-weight:600;opacity:1}
.qf-field .qf-typed:focus::placeholder{color:var(--muted)}
.qf-list{display:flex;flex-direction:column}
/* phone search box at the top of the activity list: a soft grey pill */
.qf-msearch{display:flex;align-items:center;gap:8px;margin:2px 2px 8px;padding:0 14px;height:44px;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.qf-msearch .mi{font-size:20px}
.qf-msearch input{flex:1;min-width:0;border:0;background:transparent;padding:0;font:inherit;font-size:1rem;color:var(--ink);outline:none}
.qf-msearch:focus-within{box-shadow:0 0 0 2px var(--sup-deep)}
.qf-opt{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:12px 14px;border:0;border-radius:6px;
  background:transparent;font:inherit;color:var(--ink);text-align:left;cursor:pointer;width:100%;text-decoration:none}
.qf-opt span{font-size:.8125rem;color:var(--muted)}
.qf-opt:hover{background:var(--surface-2)}
.qf-opt[aria-pressed="true"]{background:var(--sup-wash)}
/* Gift vouchers sits apart from the activities above it: a fixed way out
   of the list rather than one more result among them */
.qf-opt-link{border-top:1px solid var(--rule-soft);border-radius:0;margin-top:4px;padding-top:12px}
/* phones: a tighter open list, so Search stays on screen below it */
@media(max-width:760px){
  .qf-field{padding:8px 14px}
  .qf-msearch{height:38px;margin:0 0 4px}
  .qf-opt{padding:8px 12px}
  .qf-opt-link{margin-top:2px;padding-top:8px}
  .qf-pop{padding-top:6px;padding-bottom:6px}
  .qf-cals{margin-top:8px}
  .qf-calmon{line-height:30px;margin-bottom:0}
  .qf-cal .cal{gap:2px}
  .qf .qf-cal .cday{aspect-ratio:auto;height:32px;min-height:0}
  .qf-cal .calnav{width:30px;height:30px}
}
/* the pair of months, and the arrows that move the window across both */
.qf-cals{position:relative;display:grid;grid-template-columns:1fr;gap:22px;margin-top:14px}
.qf-cal-next{display:none}
/* sits in the same column the left month occupies, one month or two */
/* the month name gets a band as tall as the arrows beside it, so they never
   reach down over the day-of-week row */
.qf-calmon{display:block;text-align:center;line-height:34px;margin-bottom:4px}
.qf-calnav{position:absolute;top:0;z-index:1}
.qf-calnav-prev{left:0}
.qf-calnav-next{right:0}
/* day columns may shrink below their content so the month always fits the dropdown */
.qf-cal .cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.qf-cal .cday{min-width:0;font-size:.875rem}
/* There is no single product to colour these days against, so they carry no
   fill at all: a dark number for a day you can book, grey for one that has
   gone, and grey only under the cursor. Anything else would imply an
   availability this picker has not checked. */
.qf-cal .cday-plain{background:transparent}
/* A day that has gone takes the pale brand grey from the shared rule, and
   here only it is also struck through: this picker offers every date in the
   month, so it needs to say "gone" without relying on tint alone. The
   product calendars colour their days by availability, where a rule through
   every past number would be noise. */
.qf-cal .cday[data-past="1"] span{text-decoration:line-through;text-decoration-thickness:1px}
.qf-cal .cday[data-inrange="1"]{background:var(--sup-wash)}
.qf-cal .cday:not([aria-pressed="true"]):hover{background:var(--surface-2);border-color:transparent}
/* quick choices: pills that hug their words and wrap, rather than a fixed
   row of equal columns that squeezes the longest label. They are the
   product page's tag pills, left clear so the calendar under them stays the
   loudest thing in the dropdown, and taking the brand grey rather than
   harbour blue once chosen. */
.qf-chips{display:flex;flex-wrap:wrap;gap:8px}
.qf-chip{flex:0 0 auto;background:var(--surface);white-space:nowrap}
.qf-chip:hover,
.qf-chip[aria-pressed="true"]{background:var(--brand-slate);border-color:var(--brand-slate);color:var(--white)}

/* Clearing a field puts it back to Anytime or All activities, so the X only
   exists once there is something to clear. It hangs off this wrapper rather
   than the cell, which on a phone also contains the open dropdown. */
.qf-fieldwrap{position:relative}
.qf-clear{
  position:absolute;top:50%;right:12px;transform:translateY(-50%);z-index:2;
  width:30px;height:30px;border:0;border-radius:999px;background:var(--surface-2);
  color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
}
.qf-clear:hover{background:var(--rule);color:var(--ink)}
.qf-clear .mi{font-size:18px}
.qf-fieldwrap:has(.qf-clear) .qf-field{padding-right:52px}
/* Room for the second month, and for the quick choices above to sit on one
   line. The dropdown is right-aligned to the Date field, so it needs the
   field row itself to be wider than the dropdown; below this the wider
   dropdown would hang off the left of the screen, so a single month stays. */
@media(min-width:1000px){
  /* Activity matches Date's width so picking an activity and landing
     straight on the calendar (it auto-advances) does not change the
     popover's own footprint mid-flow. */
  #qf-pop-date,#qf-pop-act{width:min(620px,calc(100vw - 48px))}
  .qf-cals{grid-template-columns:1fr 1fr;gap:26px}
  .qf-cal-next{display:block}
}
@media(max-width:600px){
  /* the dropdown already sits inside the card here, so drop its own frame.
     It opens in normal flow on a phone, so it carries its own gap above:
     without one the first row of pills butts into the field it belongs to. */
  .qf-pop,.qf-cell+.qf-cell .qf-pop{border:0;padding:14px 4px 8px;margin:0 8px}
}
/* --on-sup is a dark navy, meant for the paler tints of --sup; against the
   button's own solid mid-blue it reads as a washed-out grey rather than
   text, so Search gets plain white instead */
.qf-go{gap:8px;font-family:"Poppins","Helvetica Neue",Arial,sans-serif;text-transform:none;letter-spacing:normal;font-weight:700;font-size:.9375rem;color:var(--btn-fg)}
/* vouchers page basket column */
.vb-line{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;font-size:.9375rem}
/* Groups page search sits straight on the page, no card around it */
.entry.groups-finder{background:transparent;border:0;padding:0}
.vb-remove{border:0;background:none;color:var(--muted);cursor:pointer;padding:2px;display:inline-flex}
.vb-remove:hover{color:var(--stop)}
.vb-remove .mi{font-size:18px}
.vb-fee{display:flex;justify-content:space-between;padding-top:10px;border-top:1px solid var(--rule);font-size:.9375rem;color:var(--ink-2)}
.vb-total{display:flex;justify-content:space-between;align-items:baseline}
@media(max-width:999px){.vbasket{display:none}}
/* gift options on a voucher line */
.gift-opts{padding-top:10px;border-top:1px solid var(--rule-soft)}
.gift-tick{display:inline-flex;align-items:center;gap:10px;font-weight:600;cursor:pointer}
.gift-tick input{width:20px;height:20px}
.gift-fields textarea.gift-message{width:100%;min-height:0;height:auto;resize:vertical;line-height:1.5}
.gift-line + .gift-line{padding-top:14px;border-top:1px solid var(--rule)}
/* the gift cards on the confirmation: room under the last one before the summary */
.gift-send{margin-bottom:24px}
/* gift vouchers: one quick-buy row each */
.card.vrow{display:grid;grid-template-columns:132px 1fr auto;align-items:center;gap:20px;padding:12px 20px 12px 12px}
.vrow-img{width:132px;height:100px;border-radius:6px;background-size:cover;background-position:center}
.vrow-buy{display:flex;align-items:center;gap:18px}
.vrow-price{display:flex;flex-direction:column;align-items:flex-end;line-height:1.05}
.vrow-amt{display:flex;flex-direction:column;gap:2px}
.vrow-amt select{padding:6px 8px;border:1px solid var(--rule);border-radius:6px;font:inherit;font-weight:600;background:var(--surface);color:var(--ink)}
.vrow-btns{display:flex;gap:8px}
@media(max-width:760px){
  .card.vrow{grid-template-columns:88px 1fr;gap:12px 14px;padding:12px;align-items:start}
  .vrow-img{width:88px;height:72px}
  /* price on its own line, then both buttons side by side at equal width */
  .vrow-buy{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
  .vrow-price,.vrow-amt{grid-column:1 / -1;flex-direction:row;align-items:baseline;gap:8px}
  .vrow-amt{flex-direction:column;align-items:stretch}
  .vrow-btns{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .vrow-btns .btn{width:100%;justify-content:center;padding-left:8px;padding-right:8px}
}
.wallet-note{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:.875rem;color:var(--ink-2)}
.wallet-note .wallet-mark{width:22px;height:22px;color:var(--ink)}
/* Groups page search: a third field for People */
.qf-fields:has(> .qf-cell:nth-child(3)){grid-template-columns:1fr 1fr .7fr}
@media(min-width:601px){.qf-cell+.qf-cell:nth-child(3){border-left:1px solid var(--rule)}}
@media(max-width:600px){.qf-fields:has(> .qf-cell:nth-child(3)){grid-template-columns:1fr}.qf-cell:nth-child(3){border-top:1px solid var(--rule)}}
/* home page adventure cards: photo led, text on a dark fade */
.adv-card{position:relative;display:flex;flex-direction:column;flex:1;border-radius:12px;overflow:hidden;
  color:var(--white);text-decoration:none;background:var(--harbour)}
/* the photo takes a fixed shape at the top with nothing laid over it, so
   the people in it stay in view; the text runs underneath on the dark
   background, as tall as it needs, the photo fading into it */
.adv-imgwrap{position:relative;flex:none;aspect-ratio:4/5;overflow:hidden}
.adv-img{position:absolute;inset:0;background-size:cover;background-position:center 55%;transition:transform .35s ease}
.adv-card:hover .adv-img{transform:scale(1.04)}
/* SUP Dark Grey (--brand-slate), matching the footer and every other scrim on
   the site, via color-mix rather than a hardcoded rgb triple so it
   stays correct if SUP Dark Grey's hex ever changes */
.adv-imgwrap::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,color-mix(in srgb,var(--brand-slate) 0%,transparent) 64%,color-mix(in srgb,var(--brand-slate) 80%,transparent) 82%,var(--brand-slate) 97%)}
.adv-flag{position:absolute;top:12px;left:12px;z-index:2;padding:4px 10px;border-radius:999px;background:var(--groups);color:var(--ink);
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}
/* The text block overlaps the photo by 118px and turns solid card colour
   just above where the photo box ends, so the photo's antialiased bottom
   edge is covered rather than drawn as a faint line across the card. */
.adv-body{position:relative;flex:1;z-index:2;margin-top:-118px;padding:0 18px 18px;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--brand-slate) 0%,transparent) 114px,var(--brand-slate) 117px)}
.adv-title{margin:0;font-family:"Rift Soft Bold","Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;
  font-size:1.25rem;line-height:1.05;color:var(--white)}
.adv-strap{margin:0;font-size:.875rem;line-height:1.5;color:var(--on-dark);display:-webkit-box;-webkit-box-orient:vertical;
  -webkit-line-clamp:2;overflow:hidden;height:calc(2em * 1.45)}
.adv-price{margin:0;padding-top:6px;font-size:.9375rem;line-height:1.2;color:var(--on-dark)}
.adv-price b{font-family:"Rift Soft Bold","Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;font-size:1.25rem;color:var(--white);margin-left:2px}
.adv-meta{display:flex;flex-direction:column;gap:8px;padding-top:10px;margin-top:6px;
  font-size:.8125rem;color:var(--on-dark-2)}
/* group cards keep the earlier look: square photo, text beneath it */
/* the fade starts just above the title, so a shadow keeps the first lines readable on the photo */
.adv-title,.adv-strap{text-shadow:0 1px 10px rgba(5,24,34,.6)}
.adv-card-group .adv-imgwrap{aspect-ratio:1/1}
.adv-card-group .adv-imgwrap::after{background:linear-gradient(180deg,color-mix(in srgb,var(--brand-slate) 0%,transparent) 70%,var(--brand-slate) 100%)}
.adv-card-group .adv-body{margin-top:-18px;justify-content:flex-start;background:linear-gradient(180deg,color-mix(in srgb,var(--brand-slate) 0%,transparent) 14px,var(--brand-slate) 17px)}
.slotchip{border:0;font-family:inherit;text-decoration:none}
/* sold out, nothing to book: greyed like the unavailable book page cards */
.adv-soldout .adv-img{filter:grayscale(1);opacity:.6}
.adv-flag-day{background:var(--sup);color:var(--white)}
/* the yellow is for groups only; an event card takes the pink */
.adv-flag-event{background:var(--pink);color:var(--harbour)}
.adv-soldout .adv-flag{background:var(--brand-grey);color:var(--ink)}
.adv-ages{margin:0;padding-top:4px;font-size:.8125rem;color:var(--on-dark-2);display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.adv-ages .tag{font-size:.75rem}
.adv-buy{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-top:4px}
.adv-buy .adv-price{padding-top:0}
.adv-member{font-size:.8125rem;color:var(--pink)}
.adv-meta .tag{align-self:flex-start}
/* book page: the same card inverted, the photo fading to white with dark type */
.adv-card-browse{background:var(--white);border:1px solid var(--rule)}
/* the text sits on white below the photo, which only softens into it at its bottom edge */
.adv-card-browse .adv-imgwrap{aspect-ratio:4/3}
/* the fade reaches solid white a little before the photo's edge and overlaps
   it by a pixel, so no seam shows where the photo meets the card */
.adv-card-browse .adv-imgwrap::after{bottom:-1px;background:linear-gradient(180deg,rgba(255,255,255,0) 70%,var(--white) 94%)}
/* the text block overlaps the photo's bottom edge by 10px and is solid white
   from 6px in, so the photo's antialiased edge is covered rather than shown */
.adv-card-browse .adv-body{margin-top:-10px;justify-content:flex-start;padding-top:0;
  background:linear-gradient(180deg,rgba(255,255,255,0) 0,var(--white) 6px)}
.adv-card-browse .adv-title{color:var(--ink)}
.adv-card-browse .adv-strap{color:var(--ink-2)}
.adv-card-browse .adv-title,.adv-card-browse .adv-strap{text-shadow:none}
.adv-card-browse .adv-buy{margin-top:auto;padding-top:12px}
.adv-card-browse .adv-price,.adv-card-browse .adv-ages{color:var(--ink-2)}
.adv-card-browse .adv-price b{color:var(--ink)}
.adv-card-browse .adv-member{color:var(--pink)}
.adv-card-browse .adv-meta{color:var(--ink-2)}
.adv-card:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
/* the next date and its first few times, on an activity card */
.card-next{display:flex;flex-direction:column;gap:8px;
  margin:12px calc(-1 * clamp(16px,2.2vw,22px)) calc(-1 * clamp(16px,2.2vw,22px));
  padding:12px clamp(16px,2.2vw,22px) clamp(14px,2vw,18px);
  background:var(--harbour);color:var(--on-dark)}
.card-next .tiny{color:var(--on-dark-2)}
.slotchips{display:flex;flex-wrap:wrap;gap:6px}
.slotchip{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:6px;
  background:var(--fill-on-dark);color:var(--white);font-size:.8125rem;font-weight:600;line-height:1;cursor:pointer}
.slotchip:hover{background:var(--white);color:var(--harbour)}
/* book page results: the count as a heading, Amend your search on the right */
/* the book page search card must not clip its dropdowns, and sits above the results */
#browse-finder{overflow:visible;position:relative;z-index:var(--z-sticky)}
.results-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 20px;flex-wrap:wrap}
.results-head .btn{gap:6px;flex:none}
/* what was searched for, in plain text under the Results heading */
.results-sub{margin:0;font-size:1rem;color:var(--ink-2)}
.results-amend{font-weight:500;letter-spacing:.05em}
/* phones: Amend your search as a plain text link to the right of the heading,
   the same as "Enquire here" on the Groups page */
@media(max-width:600px){
  /* heading and the small link share the first line; the search sits beneath */
  .results-head{display:grid;grid-template-columns:1fr auto;align-items:baseline;column-gap:12px;row-gap:2px}
  .results-head > .stack{display:contents}
  .results-head h2{grid-column:1;grid-row:1}
  .results-amend{grid-column:2;grid-row:1;border:0;background:transparent;padding:0;min-height:0;
    font-family:"Poppins","Helvetica Neue",Arial,sans-serif;text-transform:none;letter-spacing:0;font-weight:400;font-size:.8125rem;
    color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
  .results-amend .mi{display:none}
  .results-sub{grid-column:1 / -1;grid-row:2;font-size:.9375rem}
}
@media(max-width:600px){
  .qf-fields{grid-template-columns:1fr}
  .qf-cell+.qf-cell{border-left:0;border-top:1px solid var(--rule)}
  /* phones: the dropdown opens in place under its field and pushes the
     page down, rather than floating over the card and the next section */
  .qf-pop,.qf-cell+.qf-cell .qf-pop{position:static;width:auto;margin:0 8px 8px;box-shadow:none;border-color:var(--rule-soft)}
  .qf-list{max-height:none;overflow:visible}
  /* Fields and Search read as one solid block rather than a box with a
     separate button under it: no gap between them, square where they
     meet, rounded only at the very top and the very bottom. */
  .qf{gap:0}
  .qf-fields{border-radius:12px 12px 0 0}
  .qf-go{border-radius:0 0 12px 12px}
}
/* Phone search card, traced from the mockup: one white rounded card, the two
   fields stacked with a hairline between, each a small caption over a
   semibold value with a chevron at the right, and Search a full-width blue
   pill. The star rating above the card also runs smaller here, per the
   same mockup. */
@media(max-width:600px){
  /* .hero .hero-reviews, not .hero-reviews alone: needs to outrank the
     base .hero-reviews rule further down the file, which carries the same
     specificity and would otherwise win on source order */
  .hero .hero-reviews{font-size:.75rem}
  /* a distinctly smaller, plainly-card radius rather than something that
     reads as a near-miss at matching Search's full pill curve */
  .qf-pill .qf{--focus:var(--sup-deep);background:var(--white);border-radius:12px;padding:4px 18px 18px;gap:14px;box-shadow:var(--shadow-mid)}
  .qf-pill .qf-fields{border:0;border-radius:0;background:transparent;grid-template-columns:1fr}
  .qf-pill .qf-cell+.qf-cell{border-top:1px solid var(--rule)}
  .qf-pill .qf-field{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:8px;row-gap:0;padding:12px 2px}
  .qf-pill .qf-field .label{grid-column:1;grid-row:1;margin:0}
  .qf-pill .qf-field b,.qf-pill .qf-field .qf-typed,.qf-pill .qf-field-select select{grid-column:1;grid-row:2;font-size:1.0625rem;font-weight:600;color:var(--ink)}
  .qf-pill .qf-field .qf-typed::placeholder{font-size:1.0625rem;font-weight:600;color:var(--ink)}
  .qf-pill .qf-field .qf-chev{display:inline-block;grid-column:2;grid-row:1 / 3;font-size:26px;color:var(--ink)}
  .qf-pill .qf-fieldwrap:has(.qf-clear) .qf-field{padding-right:44px}
  .qf-pill .qf-clear{right:0}
  .qf-pill .qf-field:hover,.qf-pill .qf-field[aria-expanded="true"],.qf-pill .qf-field:focus-within{background:transparent;box-shadow:none}
  .qf-pill .qf-go{border-radius:999px;min-height:56px;font-family:"Poppins","Helvetica Neue",Arial,sans-serif;text-transform:none;letter-spacing:normal;font-weight:700;font-size:1.0625rem}
}
/* the open sheet on a phone or tablet */
/* the jump back to the booking panel only exists where the panel is above the copy */
.book-jump{display:none}
@media(max-width:999px){.book-jump{display:inline-flex;margin-top:8px}}
body.qf-open{overflow:hidden}
/* the sheet lives inside the hero (or the book and groups finders), which
   stack low; while it is open its holder rises above everything else on the
   page, so card tags and sticky bars cannot show through it */
body.qf-open :is(.hero-in,#browse-finder,.groups-finder){position:relative;z-index:calc(var(--z-sheet) + 1)}
.qf-scrim{position:fixed;inset:0;z-index:var(--z-sheet);background:var(--scrim-light)}
.qf.qf-sheet{position:fixed;left:12px;right:12px;top:calc(var(--hdr-h,70px) + 12px);z-index:var(--z-sheet);
  max-height:calc(100vh - var(--hdr-h,70px) - 24px);overflow:auto;-webkit-overflow-scrolling:touch;
  /* a distinctly smaller, plainly-card radius rather than something that
     reads as a near-miss at matching Done's full pill curve */
  background:var(--white);border-radius:16px;padding:12px 14px 16px;gap:8px;box-shadow:var(--shadow-high);will-change:transform}
.qf-sheet.is-moving{transition:transform .32s cubic-bezier(.2,.7,.2,1),opacity .22s ease}
/* the sheet's top row stays put while the months scroll beneath it */
.qf-sheet-head{display:flex;align-items:center;gap:8px;position:sticky;top:-12px;z-index:3;margin:-12px -14px 0;padding:12px 14px 8px;background:var(--white)}
.qf-sheet-close{width:44px;height:44px;flex:none;border:0;background:transparent;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}
.qf-sheet-close .mi{font-size:30px}
.qf-sheet-title{font-weight:600;font-size:1.0625rem;color:var(--ink)}
.qf-sheet .qf-msearch{flex:1;margin:0;height:46px;border-radius:12px;background:var(--white);border:1px solid var(--rule);color:var(--muted)}
.qf-sheet .qf-msearch input{font-size:1.0625rem}
.qf-sheet .qf-msearch input::placeholder{color:var(--muted)}
.qf-sheet .qf-list{padding:4px 2px 0}
.qf-sheet .qf-opt{padding:10px 12px;font-size:1.0625rem}
.qf-sheet .qf-opt b{font-weight:600}
.qf-sheet .qf-opt[aria-pressed="true"]{background:transparent}
.qf-sheet .qf-chips{padding:4px 2px}
/* two months stacked, each named on its own line, no arrows */
.qf-sheet .qf-cals{grid-template-columns:1fr;gap:16px;margin-top:6px;padding:0 2px}
.qf-sheet .qf-cal-next{display:block}
.qf-sheet .qf-calnav{display:none}
.qf-sheet .qf-calmon{text-align:left;line-height:1.2;margin:0 0 8px;padding-top:10px;border-top:1px solid var(--rule);
  font-family:"Poppins","Helvetica Neue",Arial,sans-serif;text-transform:none;letter-spacing:normal;font-weight:500;font-size:1.0625rem;color:var(--ink-2)}
.qf-sheet .qf-cal:first-of-type .qf-calmon{border-top:0;padding-top:4px}
.qf-sheet .qf-cal .cal{gap:6px}
.qf-sheet .qf-cal .cday{height:40px;border-radius:6px;font-size:1rem}
/* a day you can pick sits on a grey square; one that has gone is bare */
.qf-sheet .qf-cal .cday-plain{background:var(--surface-2)}
.qf-sheet .qf-cal .cday[data-past="1"]{background:transparent;color:var(--muted)}
.qf-sheet .qf-cal .cday[data-past="1"] span{text-decoration:none}
/* the days between the two ends of a range take the pale wash, as on desktop */
.qf-sheet .qf-cal .cday[data-inrange="1"]{background:var(--range);color:var(--ink);font-weight:600}
.qf-sheet .qf-cal .cday[aria-pressed="true"]{background:var(--sup);color:var(--white);font-weight:700}
/* the Search button only exists once a first date is picked, and fades up into place */
.qf-sheet-foot{position:sticky;bottom:-16px;margin:6px -14px -16px;padding:24px 22px 22px;
  background:linear-gradient(180deg,rgba(255,255,255,0),var(--white) 60%);
  animation:qf-foot-in .28s cubic-bezier(.2,.7,.2,1) both}
@keyframes qf-foot-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
/* same treatment as Search: --on-sup is a dark navy for the paler tints of
   --sup, not this solid mid-blue, so it reads as washed-out grey there too */
.qf-sheet-done{border-radius:999px;min-height:52px;font-family:"Poppins","Helvetica Neue",Arial,sans-serif;text-transform:none;letter-spacing:normal;color:var(--btn-fg)}
.qf-cals-endless{padding-bottom:4px}
/* a half-picked range previews under the cursor */
.qf-cal .cday[data-preview]{background:var(--sup-wash)}
.qf-cal .cday[data-preview-end]{box-shadow:inset 0 0 0 2px var(--sup)}
.qf-sheet .qf-cal .cday[data-preview]{background:var(--range-preview)}
.carousel-wrap{position:relative}
.carousel-wrap.all-shown .carousel-btn{display:none}
.carousel-btn{position:absolute;top:calc(50% - 22px);z-index:3;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--rule);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-low);
  display:flex;align-items:center;justify-content:center;cursor:pointer}
.carousel-prev{left:-22px}.carousel-next{right:-22px}
/* phones: swipe only, no arrows */
@media(max-width:600px){.carousel-btn{display:none}}
.carousel-btn:hover{border-color:var(--ink-2)}
.carousel-btn:disabled{opacity:.4;cursor:default}
@media(max-width:999px){.carousel{grid-auto-columns:calc((100% - 20px)/2.3)}}
/* phones: the carousel runs edge to edge, cards starting at the page's own
   inset and sliding out under the screen edge */
@media(max-width:600px){
  .carousel-wrap{margin-inline:calc(-1 * clamp(20px,4vw,32px))}
  .carousel{grid-auto-columns:82%;gap:14px;padding-inline:clamp(20px,4vw,32px);scroll-padding-inline:clamp(20px,4vw,32px)}
}
/* basket to confirmation: three steps, a coloured bar over the current one */
.book-steps ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.book-steps li{padding:9px 0 0;border-top:4px solid var(--rule);text-align:center;
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em;
  font-size:.8125rem;font-weight:600;color:var(--muted)}
.book-steps li[data-state="done"]{border-top-color:var(--sup);color:var(--ink-2)}
.book-steps li[data-state="now"]{border-top-color:var(--sup);color:var(--ink);font-weight:700}
.book-hold{margin:0;text-align:center;color:var(--ink-2);font-size:.9375rem}
.book-hold strong{color:var(--ink);font-variant-numeric:tabular-nums}
.book-hold[data-urgent="1"] strong{color:var(--stop);animation:hold-pulse 1.2s ease-in-out infinite}
@keyframes hold-pulse{50%{opacity:.55}}
@media (prefers-reduced-motion:reduce){.book-hold[data-urgent="1"] strong{animation:none}}
/* Change and Remove on a basket line: small bordered buttons with an icon,
   Remove quieter so it is not the obvious thing to press */
.lineacts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
/* quiet text links rather than buttons: the line's price and details lead */
.lineact{display:inline-flex;align-items:center;gap:4px;padding:6px 4px;border:0;
  background:transparent;color:var(--ink-2);font:inherit;font-size:.8125rem;font-weight:500;
  text-decoration:none;cursor:pointer;line-height:1}
.lineact:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.bmeta-rows{display:flex;flex-direction:column;gap:6px;margin-top:4px;color:var(--ink-2)}
.lineact .mi{font-size:16px}
.lineact:hover{border-color:var(--ink-2);background:var(--surface-2)}
.lineact-remove{color:var(--ink-2)}
.lineact-remove:hover{color:var(--stop);border-color:var(--stop)}
/* a wallet button, Apple Pay or Google Pay */
.wallet{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:8px 12px;
  border-radius:999px;border:1px solid transparent;cursor:pointer;
  font-family:"Helvetica Neue",Arial,sans-serif;font-weight:600;font-size:1rem;text-transform:none;letter-spacing:0}
.wallet-mark{width:1.35em;height:1.35em;flex:none}
/* "or" between two ways through: the word alone, centred, no lines */
.or-rule{display:flex;align-items:center;justify-content:center;margin:0;color:var(--muted);font-size:.8125rem}
/* checkout voucher box: plain, not a coloured panel */
.vc-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.vc-form .field{flex:1 1 12rem;margin:0}
.vc-form .btn{min-height:44px}
.vc-note{margin:0;font-size:.875rem;color:var(--ink-2)}
.vc-ok{margin:0;color:var(--go);font-weight:600;font-size:.9375rem}
.vc-err{margin:0;color:var(--stop);font-size:.875rem}
.vc-login{align-self:flex-start;font-size:.8125rem;color:var(--ink-2)}
.vc-mine{padding-top:6px;border-top:1px solid var(--rule-soft)}
.vrow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--rule-soft)}
.vrow:last-child{border-bottom:0}
/* basket line details: one row on a wide screen, one line each on a phone */
.bmeta{display:flex;flex-wrap:wrap;font-size:.875rem;line-height:1.5;color:var(--ink-2)}
.bline-side{text-align:right;align-items:flex-end}
/* on a phone the price and Change/Remove drop under the details, so each
   detail line has the full width and none of them wraps */
@media(max-width:600px){
  .bmeta{flex-direction:column}
  .bline .spread-top{flex-direction:column;gap:12px}
  .bline-side{flex-direction:row;align-items:center;justify-content:space-between;width:100%;text-align:left}
}
/* the next-available button: a small label over the date, arrow on the
   right, so a long date wraps inside the button instead of clipping */
.nextbtn{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;white-space:normal;padding:12px 16px;min-height:0}
.nextbtn-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.nextbtn-label{font-size:.75rem;letter-spacing:.05em;opacity:.85}
.nextbtn-date{font-size:1.0625rem;line-height:1.2}
.nextbtn .mi{flex:none;font-size:22px}
/* confirmation */
.arrive{display:flex;align-items:center;gap:8px;margin:0;font-weight:600;color:var(--ink)}
.arrive .mi{color:var(--sup-deep);font-size:20px}
/* disclaimers */
.field-err{margin:4px 0 0;color:var(--stop);font-size:.8125rem}
.yn{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.yn legend{margin-bottom:8px}
.yn-opts{display:flex;gap:10px}
.yn-opt{display:inline-flex;align-items:center;justify-content:center;min-width:88px;padding:9px 18px;border:1px solid var(--rule);
  border-radius:6px;background:var(--surface);cursor:pointer;font-size:.9375rem}
.yn-opt input{position:absolute;opacity:0;width:1px;height:1px}
.yn-opt:hover{border-color:var(--sup-deep)}
.yn-opt:has(input:checked){background:var(--sup-deep);border-color:var(--sup-deep);color:var(--white);font-weight:600}
.yn-opt:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
.decl-check{display:flex;gap:12px;align-items:flex-start;cursor:pointer;position:relative}
.decl-check input{position:absolute;opacity:0;width:1px;height:1px}
.decl-box{flex:none;width:24px;height:24px;border:2px solid var(--sup-deep);border-radius:6px;background:var(--white);position:relative;transition:background .12s}
.decl-box::after{content:"";position:absolute;left:6px;top:1px;width:7px;height:13px;border:solid var(--white);border-width:0 2.5px 2.5px 0;transform:rotate(45deg) scale(0);transition:transform .12s}
.decl-check input:checked + .decl-box{background:var(--sup-deep)}
.decl-check input:checked + .decl-box::after{transform:rotate(45deg) scale(1)}
.decl-check input:focus-visible + .decl-box{outline:3px solid var(--focus);outline-offset:2px}
.decl-label{font-weight:600;line-height:1.5;color:var(--ink)}
.decl-text{margin:6px 0 0 36px}
.decl-text summary{list-style:none;cursor:pointer;display:inline;color:var(--sup-deep);font-weight:600;font-size:.875rem;text-decoration:underline;text-underline-offset:3px}
.decl-text summary::-webkit-details-marker{display:none}
.decl-text[open] summary{display:block;margin-bottom:8px}
.decl-text .prose{font-size:.875rem;color:var(--ink-2)}
.decl .field-err{margin-left:36px}
/* The declaration form reads at body size. Labels are sentence case at
   15px rather than the small uppercase used on other forms, and the hints,
   options and legal text are never smaller than 14px, so the questions are
   as easy to read as the tick box. */
[data-disclaimer] .label{font-family:"Poppins","Helvetica Neue",Arial,sans-serif;text-transform:none;letter-spacing:0;font-size:.9375rem;font-weight:600;color:var(--ink)}
[data-disclaimer] .tiny{font-size:.875rem;color:var(--ink-2)}
[data-disclaimer] .yn-opt{font-size:1rem}
[data-disclaimer] .decl-label{font-size:1rem}
[data-disclaimer] .decl-text summary{font-size:.9375rem}
[data-disclaimer] .decl-text .prose{font-size:.9375rem;color:var(--ink)}
[data-disclaimer] input,[data-disclaimer] textarea{font-size:1rem}
/* ---------- THE STANDARD POPUP ----------
   One box and one scrim for every popup: yes/no confirms, the mailing list
   ask, terms, the Mendip Foundation, share, receipts, declarations and the
   account forms. 16px corners, 34px above the content (room for the close
   button) and 26px around it, the same shadow, over the same dark scrim.
   Each kind then only sets its own width and how its content is laid out. */
.confirm,.mailpop,.discpop{position:fixed;inset:0;z-index:var(--z-popup);background:var(--scrim-heavy);display:flex;justify-content:center}
.confirm-box,.mailpop-box,.discpop-box{position:relative;background:var(--surface);color:var(--ink);border-radius:16px;width:100%;
  padding:34px clamp(16px,4vw,26px) 26px;box-shadow:var(--shadow-high)}
/* yes/no dialog: a short question, centred, with its two answers under it */
.confirm{align-items:center;padding:20px}
.confirm-box{max-width:440px;display:flex;flex-direction:column;gap:18px;text-align:center}
.confirm-msg{margin:0;font-size:1.0625rem;line-height:1.6}
/* the mailing list ask on the confirmation page */
.mailpop{align-items:center;padding:20px;animation:mailpop-in .25s ease both}
.mailpop-box{max-width:440px;display:flex;flex-direction:column;gap:18px;text-align:center;
  animation:mailpop-up .32s cubic-bezier(.2,.7,.2,1) both}
.mailpop-x{position:absolute;top:8px;right:8px;width:40px;height:40px;border:0;background:transparent;color:var(--ink-2);cursor:pointer;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.mailpop-x:hover{background:var(--surface-2);color:var(--ink)}
.mailpop-x .mi{font-size:26px}
.mailpop-title{margin:0;color:var(--ink)}
.mailpop-msg{margin:0;font-size:1.0625rem;line-height:1.6}
/* the cookie pop-up: the standard box, a sheet up from the bottom on a phone */
.cookiepop .mailpop-box{max-height:90vh;overflow-y:auto}
.cookiepop-manage{text-align:left;animation:none}
.cookiepop-manage .mailpop-title{text-align:center}
.cookie-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.cookie-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--rule-soft)}
.cookie-row:first-child{border-top:0}
.cookie-text{display:flex;flex-direction:column;gap:2px;cursor:pointer}
.cookie-row .tag{flex:none}
@media(max-width:600px){
  .cookiepop{align-items:flex-end;padding:0}
  .cookiepop .mailpop-box{max-width:none;min-height:50vh;border-radius:16px 16px 0 0;justify-content:flex-end}
}
@keyframes mailpop-in{from{opacity:0}to{opacity:1}}
@keyframes mailpop-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.confirm-actions{display:flex;gap:10px;justify-content:center}
.confirm-actions .btn{min-width:88px}
/* the strip can run to two lines on hire, what and when */
.bookstrip-line{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bookstrip-craft{color:var(--muted);font-size:.8125rem;margin-top:1px}
.bookstrip .sep{opacity:.7;padding:0 8px;font-size:1.25em;line-height:1;vertical-align:-.05em}
.brand{
  display:flex;align-items:center;text-decoration:none;
  flex:0 1 auto;min-width:0;overflow:hidden;
}

/* .hdr-in already puts 16px between the logo and whatever follows it (its
   own flex gap), so this is 35px minus that, not 35px on its own, which
   would have made the true gap 51px */
/* the nav sits centred in the header, between the logo and the icons */
.nav{display:none;gap:36px;margin:0 auto}
@media(min-width:1000px){.nav{display:flex}}
.nav a{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;font-weight:600;letter-spacing:.05em;font-size:1rem;
  color:var(--ink-2);text-decoration:none;padding:9px 0;border-radius:2px;
  border-bottom:2px solid transparent;white-space:nowrap;
}
.nav a:hover{color:var(--sup-deep);background:var(--surface-2)}
.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--sup)}
/* tighten the nav between the breakpoint and comfortable widths so
   seven items stay on one line in both brand directions.
   style-ok: 1090 is not a fourth breakpoint, only where this squeeze stops. */
@media(min-width:1000px) and (max-width:1090px){
  .nav{gap:0}
  .nav a{padding-left:7px;padding-right:7px;font-size:.9375rem}
}

/* logo and actions take equal room either side, so the nav lands on the
   middle of the header rather than the middle of what is left over */
@media(min-width:1000px){
  .hdr-in > .brand{flex:1 1 0;min-width:0}
  .hdr-in > .hdr-actions{flex:1 1 0;min-width:0;justify-content:flex-end}
}
.hdr-actions{display:flex;align-items:center;gap:6px;flex:none}
/* phones and tablets: the logo left, the icons and menu button hard right */
@media(max-width:999px){.hdr-actions{margin-left:auto}}
/* account icon and its small menu: Log in / Sign up, or Your account / Sign out */
.acct{position:relative}
/* The "person" glyph sits smaller within its own em-square than
   "shopping_cart" does at the same font-size (18px of ink vs 14px,
   measured on a canvas), so it reads as a noticeably smaller icon beside
   it even though the CSS size is identical. Sized up to 26px so its own
   ink height (18px) matches the cart's. */
#btn-account .mi{font-size:26px}
.acct-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:var(--z-dropdown);min-width:170px;padding:6px;
  background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:12px;box-shadow:var(--shadow-low)}
.acct-menu[hidden]{display:none}
.acct-menu a,.acct-menu button{display:block;width:100%;text-align:left;padding:10px 12px;border:0;border-radius:6px;background:none;
  font:inherit;font-size:.9375rem;color:var(--ink);text-decoration:none;cursor:pointer}
.acct-menu a:hover,.acct-menu button:hover{background:var(--surface-2)}
/* on a phone the trolley and menu get a bigger target and more room
   between them, so neither is tapped by mistake */
@media(max-width:600px){
  .hdr-actions{gap:12px}
  .hdr .icobtn{width:48px;height:48px}
  .hdr .icobtn .mi{font-size:26px}
}
.icobtn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:none;border:1px solid transparent;border-radius:2px;
  width:40px;height:40px;color:var(--ink-2);position:relative;padding:0;
}
.icobtn:hover{background:var(--surface-2);color:var(--ink)}
.icobtn svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.icobtn .mi{font-size:22px;vertical-align:-5px}
/* The menu icon is three lengths of wave rather than three rules. Watergate
   Bay draw theirs as a filled outline, not a stroke, so it opts out of the
   stroked-icon defaults above. The wave holds still and the lines only rise
   and fall, on the same beat a fraction apart, so a swell passes down
   through the stack: sliding the wave sideways moved the crests around and
   read as noise. */
/* Google's Material Symbols glyphs are solid shapes, not strokes */
/* the count badge: a Bristol pink bubble with navy figures (navy, not white,
   which fails contrast on pink). The basket count is the one on the site. */
.badge{
  position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 4px;
  background:var(--pink);color:var(--harbour);border-radius:999px;
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;font-weight:700;
  font-size:.75rem;line-height:18px;text-align:center;
}


/* mobile drawer */
.drawer-foot{margin-top:auto;padding:18px 0 28px;background:var(--harbour);color:var(--on-dark-2);
  max-width:none;padding-left:clamp(20px,4vw,32px);padding-right:clamp(20px,4vw,32px)}
.drawer-foot a{color:var(--white)}
.drawer{display:flex;flex-direction:column}
.drawer{
  position:fixed;inset:0;z-index:var(--z-dropdown);background:var(--paper);
  display:flex;flex-direction:column;overflow-y:auto;
}
.drawer[hidden]{display:none}
.drawer-top{display:flex;align-items:center;height:66px;border-bottom:1px solid var(--rule);background:var(--surface)}
.drawer nav{display:flex;flex-direction:column;padding:8px 0}
.drawer nav a{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;font-weight:600;letter-spacing:.05em;font-size:1.25rem;
  color:var(--ink);text-decoration:none;padding:14px clamp(20px,4vw,32px);
  border-bottom:1px solid var(--rule-soft);
}
.drawer nav a:hover{background:var(--surface-2);color:var(--sup-deep)}
/* About as an open/close section in the drawer, its links indented beneath */
.drawer-signout{display:block;width:100%;text-align:left;background:none;border:0;cursor:pointer;
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;font-weight:600;letter-spacing:.05em;
  font-size:1.0625rem;color:var(--ink-2);padding:12px clamp(20px,4vw,32px) 12px calc(clamp(20px,4vw,32px) + 16px);
  border-bottom:1px solid var(--rule-soft)}
.drawer-dd summary{
  list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;font-weight:600;letter-spacing:.05em;font-size:1.25rem;
  color:var(--ink);padding:14px clamp(20px,4vw,32px);border-bottom:1px solid var(--rule-soft)}
.drawer-dd summary::-webkit-details-marker{display:none}
.drawer-dd summary .mi{transition:transform .12s}
.drawer-dd[open] summary .mi{transform:rotate(180deg)}
.drawer .drawer-dd a{display:block;padding-left:calc(clamp(20px,4vw,32px) + 16px);font-size:1.0625rem;background:var(--surface)}
.drawer .drawer-dd:not([open]) > a{display:none}
/* Account and Log in icons beside the close button */
/* the open menu's own header: the same icons as the blue one, in ink */
.drawer-acct{display:flex;align-items:center;gap:2px;margin-right:2px}
.drawer-top .icobtn{color:var(--ink);position:relative}
.drawer-top .icobtn:hover{color:var(--sup-deep)}
#btn-close{position:relative}
#btn-close::before{content:"";position:absolute;left:-2px;top:50%;transform:translateY(-50%);width:1px;height:22px;background:var(--rule)}

/* sticky bottom action bar (mobile). Fixed height regardless of stage,
   so the page doesn't jump as the booking progresses; the subtitle
   line truncates rather than wrapping to a second line. */
.sticky-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sticky);
  background:var(--surface);border-top:1px solid var(--rule);
  padding:10px clamp(12px,4vw,20px);
  min-height:76px;
  display:flex;align-items:center;gap:12px;
  box-shadow:0 -6px 20px rgba(11,43,60,.09);   /* style-ok: a bar fixed to the foot of the screen throws its shadow upward */
}
.sticky-bar[hidden]{display:none}
/* The button takes only the room it needs so the booking details are not
   squeezed; the price is the thing being read, so it is the only large
   type in the bar. */
.sticky-bar .btn{flex:0 0 auto;max-width:none;white-space:nowrap}
.sticky-bar .stack.fill{min-width:0}
.sticky-bar .tiny{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sticky-info{gap:1px}
.sticky-info .tiny{font-size:.75rem;line-height:1.5;color:var(--muted)}
.sticky-price{font-size:1.25rem;line-height:1.2;margin-top:1px}
body.has-bar{padding-bottom:96px}

@media(min-width:1000px){
  /* Hidden by default on desktop. The activity page arms it once the
     booking panel has scrolled past, so the CTA is always reachable
     without pinning a panel that is taller than the screen. */
  .sticky-bar{display:none}
  body.has-bar{padding-bottom:0}
  body.bar-armed .sticky-bar[data-desktop="1"]{
    display:flex;justify-content:center;gap:20px;padding:12px 24px;
  }
  body.bar-armed.has-bar{padding-bottom:76px}
  .sticky-bar[data-desktop="1"] > .stack{flex:none}
  .sticky-bar[data-desktop="1"] .btn{flex:none;max-width:none;min-width:200px}
}

/* footer */
/* SUP Dark Grey (--brand-slate), not --harbour: the one dark ground the footer,
   every scrim and the card gradients now share, so they all move
   together if the brand reference ever changes this value. See the
   Brand panel for the swatch. */
.ftr{background:var(--brand-slate);color:var(--white);padding:clamp(36px,5vw,56px) 0 28px;margin-top:auto}
.ftr h4,.ftr h2{color:var(--white);font-size:1.0625rem;letter-spacing:.08em;margin-bottom:12px}
.ftr a{color:var(--white);text-decoration:none;font-size:.9375rem}
.ftr a:hover{color:var(--accent-on-dark);text-decoration:underline}
.ftr-grid{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
/* phones: two columns rather than one long stack */
/* phones: two tighter columns, smaller type, and the rest of the footer pulled in */
@media(max-width:600px){
  .ftr{padding-top:28px}
  .ftr > .wrap{gap:22px}
  .ftr-grid{grid-template-columns:1fr 1fr;gap:20px 16px}
  .ftr h4{font-size:.875rem;margin-bottom:6px}
  .ftr-grid > .stack{gap:6px}
  .ftr-grid .stack-2{gap:5px}
  .ftr a{font-size:.8125rem;line-height:1.5}
  .ftr-social{margin-top:4px}
  .ftr-social a{width:30px;height:30px}
  .ftr-social svg{width:15px;height:15px}
  .ftr-logos{margin-top:10px;gap:12px}
  .ftr-logo-sup,.ftr-logo-ma{height:30px}
  .ml-form{gap:6px}
  .ml-form input{height:38px;font-size:.875rem}
  .ml-form .ml-join{min-height:38px;padding:8px 16px}
}
/* newsletter row: on wider screens the fields sit in one line, with the logos at the right */
.ftr-news{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;padding-top:28px;border-top:1px solid var(--line-on-dark)}
.ftr-news .ftr-logos{margin-top:0}
.ftr-news > .stack{flex:1 1 300px}
@media(min-width:1000px){
  .ftr-news .ml-form{flex-direction:row;max-width:none;align-items:stretch}
  .ftr-news .ml-form input{width:200px}
  .ftr-news .ml-form .ml-join{align-self:stretch}
}
@media(max-width:600px){.ftr-news{padding-top:20px;gap:18px}}
/* the column headings are links to their section */
.ftr-head{color:inherit;text-decoration:none}
.ftr-head:hover{text-decoration:underline;text-underline-offset:3px}
/* footer: Apple Pay and Google Pay marks, as small white card-style badges */
/* checkout voucher box when only vouchers are in the basket */
.vc-blocked .vc-form{opacity:.45;pointer-events:none}
.vc-blocked .vc-err{color:var(--ink-2)}
/* message bar: folded away, then peels down from the menu once the page
   has loaded. The height opens as the strip swings down from its top edge. */
.promo-bar{background:var(--harbour);color:var(--white);max-height:0;overflow:hidden;perspective:600px;
  transition:max-height .7s cubic-bezier(.2,.8,.2,1)}
.promo-bar.is-in{max-height:80px}
.promo-inner{display:flex;align-items:center;justify-content:center;position:relative;
  transform-origin:top center;transform:rotateX(-90deg);opacity:0}
.promo-bar.is-in .promo-inner{animation:promo-peel .8s cubic-bezier(.2,.9,.25,1.15) forwards}
@keyframes promo-peel{
  0%{transform:rotateX(-90deg);opacity:0}
  60%{opacity:1}
  100%{transform:rotateX(0);opacity:1}
}
.promo-lines{padding:8px 44px 9px;text-align:center}
.promo-sub{margin:1px 0 0;font-size:.8125rem;line-height:1.2;color:var(--on-dark-2)}
.promo-sub a{color:var(--white);text-decoration:underline;text-underline-offset:2px}
.promo-text{margin:0;padding:0;line-height:1.2;text-align:center;font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em;font-weight:700;font-size:.9375rem;color:var(--white)}
.promo-close{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--white);cursor:pointer;display:inline-flex;padding:4px;opacity:.8}
.promo-close:hover{opacity:1}
@media (prefers-reduced-motion:reduce){.promo-bar{transition:none}.promo-bar.is-in .promo-inner{animation:none;transform:none;opacity:1}}
/* blog posts */
.guide-hero{width:100%;border-radius:12px;aspect-ratio:16/10;object-fit:cover}
.guide-body h2{margin:28px 0 10px}
.guide-body h3{margin:22px 0 8px}
.guide-body ul,.guide-body ol{margin-bottom:14px}
.guide-fig{margin:18px 0}
.guide-fig img{width:100%;border-radius:12px;display:block}
.guide-quote{margin:14px 0;padding:0 18px;color:var(--ink);font-style:italic}
.guide-btns{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 20px}
.vqty{align-self:flex-end}
.btn-google{display:flex;align-items:center;justify-content:center;gap:10px;text-transform:none;letter-spacing:0;font-family:"Poppins","Helvetica Neue",Arial,sans-serif;font-weight:500;font-size:1rem}
.btn-google svg{width:18px;height:18px}
.booking-ref{margin:0;font-size:1rem;color:var(--ink-2)}
.booking-ref b{color:var(--ink);font-size:1.0625rem;letter-spacing:.05em}
.next-step{display:flex;align-items:center;gap:10px}
.conf-summary .facts{grid-template-columns:1fr 1fr}
.agree-tick{display:flex;align-items:flex-start;gap:10px;font-size:.875rem;color:var(--ink-2);cursor:pointer}
.agree-tick input{width:20px;height:20px;flex:none;margin-top:1px}
.wallet[disabled],.btn[disabled]{opacity:.45;cursor:not-allowed}
/* membership: the pass picker in the join panel, styled like .slot on
   the product page: square corners, and hover is a stroke colour change
   only, never a fill */
.passlist{display:flex;flex-direction:column;gap:8px}
.passopt{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px 14px;
  border:1px solid var(--rule);border-radius:2px;background:var(--surface);font:inherit;color:var(--ink);text-align:left;cursor:pointer;
  transition:border-color .12s}
.passopt:hover{border-color:var(--sup-deep)}
/* Selected (the hidden radio is checked, or aria-checked is set by site.js): solid cyan with no stroke of its own, same as .slot's
   selected state, not the soft wash this carried before */
.passopt:is([aria-checked="true"],:has(input:checked)){border-color:var(--sup);background:var(--sup)}
.passopt:is([aria-checked="true"],:has(input:checked)) .tiny{color:var(--white)}
.passopt:is([aria-checked="true"],:has(input:checked)) .passopt-main b,
.passopt:is([aria-checked="true"],:has(input:checked)) .passopt-price b{color:var(--white)}
/* the recommendation keeps its own colour on a chosen card: turning it
   white would make it read as a generic pip like any other */
.passopt:is([aria-checked="true"],:has(input:checked)) .tag-best{background:var(--pink);border-color:var(--pink);color:var(--harbour)}
.passopt-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.passopt-main .row-tight{align-items:center}
.passopt-price{display:flex;flex-direction:column;align-items:flex-end;flex:none}
/* matches .slot-price, the price style everywhere else in the booking
   flow: Barlow Condensed, not the Rift Soft Bold this carried before */
/* the membership line is fixed, not a choice: it reads as a plain row */
.passopt-price .was{font-size:.875rem;color:var(--muted);margin-bottom:2px}
.passopt-price b{:"Barlow Condensed","Arial Narrow",sans-serif;font-weight:700;font-size:1.25rem;line-height:1;font-variant-numeric:tabular-nums}
/* numbered steps on the membership page */
/* search: pages found by the search box, under their own small heading */
.qf-sep{margin:6px 0 2px;padding:8px 14px 4px;border-top:1px solid var(--rule-soft);
  font-family:"Rift Soft Bold","Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em;font-size:.8125rem;color:var(--muted)}
.qf-opt-page span{font-size:.8125rem;color:var(--muted)}
/* team cards on About: the group card shape, with initials on the dark ground until photos arrive */
/* the team carousel runs smaller than the activity ones: more people across, a shorter card */
.team-carousel .carousel{grid-auto-columns:calc((100% - 5*14px)/6);gap:14px}
@media(max-width:999px){.team-carousel .carousel{grid-auto-columns:calc((100% - 28px)/3.3)}}
@media(max-width:600px){.team-carousel .carousel{grid-auto-columns:44%}}
.team-card .adv-imgwrap{aspect-ratio:1/1}
.team-card .adv-body{padding:0 12px 14px;margin-top:-10px;gap:4px}
.team-card .adv-title{font-size:1rem}
.team-card .team-role{font-size:.75rem}
.team-card .adv-img{display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--sup-deep),var(--harbour))}
.team-initials{font-family:"Rift Soft Bold","Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;font-size:1.6875rem;color:var(--on-dark);letter-spacing:0}
.team-role{margin:0;font-size:.8125rem;color:var(--on-dark-2);font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em}
/* About: the family of businesses, each logo on its own, in Mendip blue, no panel behind */
.family-logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:28px 44px;width:100%;align-self:stretch;box-sizing:border-box;
  padding:8px 0}
.family-logos img{height:64px;width:auto;max-width:none;display:block;flex:none}
@media(max-width:600px){.family-logos{gap:22px 28px;padding:22px 16px}.family-logos img{height:48px}}
/* footer: Mendip Adventure then SUP Bristol, the same height */
.ftr-logos{display:flex;align-items:center;gap:18px;margin-top:18px}
.ftr-logo-sup{height:40px;width:auto}
.ftr-logo-ma{height:40px;width:auto;opacity:.9}
/* account: bookings under two tabs, each one a basket-style card with its people */
.acct-tabbody{padding-top:16px;gap:20px}
.acct-booking{padding:0;overflow:hidden}
.acct-people{width:100%;min-width:0;border-collapse:collapse;font-size:.875rem}
.acct-people th{background:var(--surface-2);text-align:left;font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;
  letter-spacing:.05em;font-size:.75rem;font-weight:600;color:var(--muted);padding:8px 16px;border-top:1px solid var(--rule)}
.acct-people td{padding:10px 16px;border-top:1px solid var(--rule-soft);color:var(--ink)}
.acct-people td.r{text-align:right}
/* declaration status badges: rounded, as the style guide has buttons and fields */
.acct-people .tag{border-radius:999px;padding:5px 10px}
@media(max-width:600px){.acct-people .add-long{display:none}}
/* the declaration form shows and hides parts as it is answered; the layout
   classes on those parts would otherwise override the hidden attribute */
[data-disclaimer] [hidden],.dob [hidden]{display:none!important}
/* date of birth: typed, with a calendar button inside the field's right end */
.dob-row{position:relative}
.dob-row input{padding-right:52px}
.dob-cal{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:999px;background:none;color:var(--sup-deep);display:grid;place-items:center;cursor:pointer}
.dob-cal:hover{background:var(--surface-2)}
.dob-pop{margin-top:8px;padding:12px;border:1px solid var(--rule);border-radius:16px;background:var(--surface);max-width:340px}
.dob-sel{display:grid;grid-template-columns:1.4fr 1fr;gap:8px;margin-bottom:10px}
.dob-sel select{padding:9px 12px;font-size:.9375rem}
.dob-week,.dob-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.dob-week span{font-size:.75rem;color:var(--muted);padding:4px 0}
.dob-grid button{height:38px;border:0;border-radius:999px;background:none;font:inherit;font-size:.9375rem;color:var(--ink);cursor:pointer}
.dob-grid button:hover{background:var(--surface-2)}
.dob-grid button:disabled{color:var(--muted);opacity:.45;cursor:default;background:none}
.dob-grid button.on{background:var(--sup);color:var(--white)}
@media(hover:none){.dob-cal:hover,.dob-grid button:hover{background:none}.dob-grid button.on{background:var(--sup)}}
.next-session{border:1px solid var(--rule);border-radius:6px;overflow:hidden}
.next-session td{border-top:0}
/* the booking's title and price share a line on every screen; details sit beneath in smaller type */
.acct-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.acct-head .stack{min-width:0}
.acct-booking .bmeta-rows{font-size:.8125rem;line-height:1.5}
.acct-booking .lineacts{gap:2px 14px}
.bmeta-rows b{color:var(--ink);font-weight:600}
.acct-booking-meta{font-size:.8125rem;line-height:1.5}
.acct-booking-meta b{color:var(--ink);font-weight:600}
.acct-booking .bmeta-rows b{color:var(--ink);font-weight:600}
/* phones: the completed date drops under "Completed" so the table fits */
@media(max-width:600px){.acct-done{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1.2}}
/* account vouchers: one card each */
.vwallet{display:grid;gap:12px;grid-template-columns:1fr}
/* the two codes share a line where both exist */
.vcard-codes{display:flex;flex-wrap:wrap;gap:4px 24px}
.vcard-codes span{display:flex;gap:6px}
.vcard{display:flex;flex-direction:column;gap:10px}
/* the account's gifted vouchers sit apart from the customer's own */
.vgifted{margin-top:16px}
.gift-when{border:0;margin:0;padding:0;min-width:0}
.vcard-rows{margin:0;display:grid;gap:4px;font-size:.875rem}
.vcard-rows div{display:flex;gap:6px}
.vcard-rows dt{font-weight:600;color:var(--ink)}
.vcard-rows dd{margin:0}
/* account: who is signed in, and the membership band */
/* the account: a menu of sections on the left, the chosen one beside it;
   on phones the menu runs across the top and scrolls sideways */
.acct-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:start}
.acct-nav{display:flex;flex-direction:column;gap:4px;position:sticky;top:calc(var(--hdr-h,72px) + 16px)}
.acct-nav a{color:var(--ink-2);text-decoration:none;font-size:1rem;padding:6px 0}
.acct-nav a:hover{color:var(--ink)}
.acct-nav a[aria-current="page"]{color:var(--sup-deep);font-weight:600}
.acct-panel{background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--sup);padding:clamp(16px,2.5vw,28px);min-width:0}
.acct-nav-m{display:none}
@media(max-width:760px){
  .acct-layout{grid-template-columns:1fr;gap:12px}
  .acct-nav{display:none}
  .acct-nav-m{display:block;background:var(--surface);border:1px solid var(--rule);border-radius:12px}
  .acct-nav-m summary{list-style:none;display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer}
  .acct-nav-m summary::-webkit-details-marker{display:none}
  .acct-nav-m summary .label{margin:0}
  .acct-nav-m summary b{flex:1;font-size:.875rem;color:var(--ink)}
  .acct-nav-m summary .mi{color:var(--ink-2);transition:transform .12s}
  .acct-nav-m[open] summary .mi{transform:rotate(180deg)}
  .acct-nav-m-list{display:flex;flex-direction:column;border-top:1px solid var(--rule-soft)}
  .acct-nav-m-list a{padding:7px 12px;color:var(--ink);text-decoration:none;font-size:.875rem;line-height:1.5;border-bottom:1px solid var(--rule-soft)}
  .acct-nav-m-list a:last-child{border-bottom:0}
  .acct-nav-m-list a[aria-current="page"]{color:var(--sup-deep);font-weight:600;background:var(--sup-wash)}
  .acct-panel{border-left:1px solid var(--rule);padding:16px}
}
.acct-details{margin:0;max-width:560px;border-top:1px solid var(--rule-soft);font-size:.875rem}
.acct-drow{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:8px 12px;padding:8px 0;border-bottom:1px solid var(--rule-soft);margin:0}
.acct-drow dt{font-weight:600;color:var(--ink)}
.acct-drow dd{margin:0;color:var(--ink);min-width:0;overflow-wrap:anywhere}
.acct-drow dd.r{text-align:right}
.acct-dedit{grid-column:2 / -1;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.acct-dedit input{flex:1 1 180px;height:38px}
.acct-form{max-width:460px}
.acct-member-band{background:var(--surface-2)}
.acct-member{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);overflow:hidden;padding:0}
.acct-member-img{width:100%;height:100%;object-fit:cover;min-height:220px;display:block}
@media(max-width:760px){.acct-member{grid-template-columns:1fr}.acct-member-img{min-height:0;aspect-ratio:16/9}}
/* one size for everything in the membership band */
.acct-mtext{margin:0;font-size:.9375rem;line-height:1.6;color:var(--ink)}
.acct-mlist{padding-left:1.2em;display:grid;gap:2px}
/* a field that comes from the sign-in and can't be edited: greyed out */
input.is-locked{background:var(--surface-2);color:var(--muted);border-color:var(--rule-soft);cursor:not-allowed}
/* the disclaimer popup: the form over the page, scrolling inside itself */
/* the longer popups (forms, terms, receipts) use the standard box, set from
   the top of the screen and scrolling when they are taller than it */
.discpop{align-items:flex-start;padding:clamp(12px,4vh,40px) 12px;overflow-y:auto}
.discpop-box{max-width:620px}
.discpop-box h2{padding-right:40px}
body.has-pop{overflow:hidden}
/* in the popup the emergency contact fields run one to a line, so a long label never pushes its box out of line */
.discpop [data-disclaimer] .grid{grid-template-columns:1fr!important}
.acct-pricecol{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
.acct-pricecol .lineact{font-size:.8125rem}
/* a group product page's panel: Book now and Make an enquiry as two
   sections of one panel, each closing on its own heading */
.grpacc-head{list-style:none;display:flex;align-items:flex-start;gap:12px;padding:clamp(14px,2vw,18px);cursor:pointer}
.grpacc-head::-webkit-details-marker{display:none}
.grpacc-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.grpacc-text .bookstep{margin-bottom:4px}
.grpacc-text b{font-size:1.0625rem;color:var(--ink)}
.grpacc-text span{font-size:.875rem;line-height:1.5;color:var(--ink-2)}
.grpacc-chev{flex:none;margin-top:4px;color:var(--ink-2);transition:transform .12s}
.grpacc-sec[open] .grpacc-chev{transform:rotate(180deg)}
.grpacc-or{padding:2px 0}
.grpacc-form{padding:0 clamp(14px,2vw,18px) clamp(14px,2vw,18px)}
/* a panel holding tabs normally goes transparent so the tabs can sit above
   its body (.bookbox:has(.booktabs)). Here the tabs are inside a section of
   the panel, so the panel stays one white card and the body draws no card
   of its own. Written with :has so it outranks that rule wherever it sits. */
.bookbox.grpacc:has(.booktabs){background:var(--surface);border:1px solid var(--rule);border-radius:12px 12px 2px 2px;overflow:hidden}
.bookbox.grpacc:has(.booktabs) .bookbox-body{background:none;border:0;border-radius:0;padding-top:14px}
.grpacc-inner .booktabs{margin:0 clamp(14px,2vw,18px)}
/* the receipt: a plain document in the accounts package's layout */
.receiptpop .discpop-box{max-width:800px}
.rcpt{font-size:.8125rem;line-height:1.5;color:var(--ink);display:flex;flex-direction:column;gap:22px}
.rcpt-top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:20px;align-items:start}
.rcpt-logo{display:block;width:150px;height:auto;margin-bottom:14px}
.rcpt-title{font-family:"Poppins","Helvetica Neue",Arial,sans-serif;font-weight:400;font-size:1.6875rem;letter-spacing:0;text-transform:uppercase;line-height:1;margin:0 0 8px}
.rcpt-who p{margin:0;color:var(--ink-2)}
.rcpt-meta{margin:0;display:grid;gap:8px}
.rcpt-meta dt{font-weight:700}
.rcpt-meta dd{margin:0}
.rcpt-from{font-style:normal}
.rcpt-paid{display:flex;justify-content:flex-end;gap:48px;margin-left:auto;width:min(100%,380px);padding:6px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font-weight:700}
.rcpt-scroll{overflow-x:auto}
.rcpt-lines{width:100%;border-collapse:collapse;min-width:560px}
.rcpt-lines th,.rcpt-lines td{padding:6px 8px 6px 0;text-align:left;vertical-align:top}
.rcpt-lines th.r,.rcpt-lines td.r{text-align:right;padding-right:0;padding-left:8px}
.rcpt .rcpt-lines th{background:none;font-family:inherit;text-transform:none;letter-spacing:0;font-size:inherit;font-weight:700;color:var(--ink);white-space:nowrap}
.rcpt-lines td:first-child,.rcpt-lines td.r{white-space:nowrap}
.rcpt-lines thead th{border-bottom:1px solid var(--ink)}
.rcpt-lines tbody td{border-bottom:1px solid var(--rule)}
.rcpt-lines tfoot th{border-top:1px solid var(--ink)}
.rcpt-totals{margin-left:auto;width:min(100%,320px);border-collapse:collapse}
.rcpt .rcpt-totals th,.rcpt .rcpt-totals td{padding:5px 0;text-align:right;border:0;background:none;font-family:inherit;text-transform:none;letter-spacing:0;font-size:inherit;color:var(--ink)}
.rcpt .rcpt-totals th{font-weight:500;padding-right:24px}
.rcpt-totals .rcpt-grand th,.rcpt-totals .rcpt-grand td{font-weight:700;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.rcpt-foot{margin:28px 0 0;font-size:.75rem;color:var(--ink-2)}
@media(max-width:600px){.rcpt-top{grid-template-columns:1fr 1fr}.rcpt-who{grid-column:1/-1}}
/* printing a receipt prints the receipt alone */
@media print{
  @page{size:A4;margin:16mm}
  body.printing-receipt *{visibility:hidden}
  body.printing-receipt .receiptpop,body.printing-receipt .receiptpop *{visibility:visible}
  body.printing-receipt .receiptpop{position:absolute;inset:0 0 auto 0;background:none;padding:0}
  body.printing-receipt .receiptpop .discpop-box{box-shadow:none;max-width:none;padding:0}
  body.printing-receipt .receiptpop .mailpop-x,body.printing-receipt .receiptpop .row-tight{display:none!important}
  body.printing-receipt .rcpt-top{grid-template-columns:1.3fr 1fr 1fr}
  body.printing-receipt .rcpt-lines{min-width:0}
}
/* About: intro and values side by side, the story as a timeline on the dark band, the team on grey */
.about-intro{display:grid;gap:clamp(24px,4vw,48px);align-items:start}
@media(min-width:1000px){.about-intro{grid-template-columns:3fr 2fr}}
.about-values{display:grid;gap:12px}
.about-value{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;background:var(--sup-wash);border-radius:12px}
.about-value .mi{font-size:32px;color:var(--sup-deep)}
.about-value b{display:block;font-size:1.0625rem;color:var(--ink)}
.about-value span:not(.mi){color:var(--ink-2);font-size:.9375rem}
.about-story{background:var(--brand-slate);color:var(--white)}
.about-story h2{color:var(--white)}
.tl-rail{display:flex;overflow-x:auto;scrollbar-width:none;position:relative;padding:8px 0 4px}
.tl-rail::-webkit-scrollbar{display:none}
.tl-rail::before{content:"";position:absolute;left:0;right:0;top:19px;height:2px;background:var(--line-on-dark)}
.tl-rail [role="tab"]{flex:1 0 96px;display:grid;justify-items:center;gap:10px;background:none;border:0;color:var(--on-dark-2);font-weight:700;font-size:.9375rem;padding:0 4px;position:relative;cursor:pointer;font-family:inherit}
.tl-dot{width:22px;height:22px;border-radius:50%;background:var(--brand-slate);border:3px solid var(--line-on-dark);transition:transform .12s,background .12s}
.tl-rail [role="tab"]:hover .tl-dot{border-color:var(--white)}
.tl-rail [role="tab"][aria-selected="true"]{color:var(--sup)}
.tl-rail [role="tab"][aria-selected="true"] .tl-dot{background:var(--sup);border-color:var(--sup);transform:scale(1.25)}
.tl-stage{position:relative}
.era{display:grid;gap:24px;background:var(--fill-on-dark);padding:clamp(16px,3vw,32px);border-radius:12px}
.era-img{position:relative;overflow:hidden;aspect-ratio:4/3;border-radius:6px}
.era-year{display:inline-block;font-family:"Rift Soft Bold","Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;font-size:var(--d1);line-height:1;color:var(--sup)}
.era-text h3{color:var(--white);margin:6px 0 12px}
.era-text .prose p{color:var(--on-dark)}
.tl-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border:0;border-radius:50%;background:var(--white);color:var(--sup-deep);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-low)}
.tl-nav .mi{font-size:28px}
.tl-nav[disabled]{opacity:0;pointer-events:none}
.tl-prev{left:-22px}.tl-next{right:-22px}
@media(min-width:761px){.era{grid-template-columns:5fr 7fr;align-items:center}}
@media(max-width:760px){.tl-nav{display:none}.tl-rail [role="tab"]{flex-basis:84px}}
.about-team{background:var(--surface-2)}
/* a photo that is still to be taken, with a note of what it should show */
.page-photo{margin:0;display:grid;gap:8px}
.page-photo img{display:block;width:100%;height:auto;border-radius:6px}
.page-photo figcaption{font-size:.875rem;color:var(--ink-2)}
.phshot{margin:0;display:flex;gap:14px;align-items:flex-start;padding:18px;background:var(--surface-2);border:1px dashed var(--rule)}
.phshot .mi{font-size:32px;color:var(--muted)}
.phshot figcaption{font-size:.875rem;color:var(--ink-2)}
.phshot b{color:var(--ink)}
/* Checkout on a phone: the summary as a bar under the header, the total
   always in view and the voucher box one tap away inside it. The column
   on the right is the same block, so they cannot drift apart. */
.co-mini{display:none}
@media(max-width:999px){
  .co-mini{display:block;position:sticky;top:var(--hdr-h,70px);z-index:var(--z-sticky);background:var(--surface);border-bottom:1px solid var(--rule);margin:0 calc(-1 * var(--gutter,20px)) 8px}
  .co-mini-head{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;padding:10px var(--gutter,20px);background:none;border:0;font:inherit;font-size:1rem;color:var(--ink);cursor:pointer}
  .co-mini-head .mi{font-size:22px}
  .co-mini-head .num{font-size:1.0625rem}
  .co-mini-body{padding:0 var(--gutter,20px) 16px;max-height:60vh;overflow-y:auto}
  .co-side{display:none}
}
/* the fields the brand asked for: soft, rounded bars rather than boxes */
.field input,.field select,.vc-form input,.ml-form input,.sharepop-link input,.cmslogin input,
input[type="text"],input[type="email"],input[type="tel"],input[type="password"],input[type="search"],input[type="date"],select{border-radius:999px}
textarea{border-radius:16px}
.acct-dedit input{border-radius:999px}
/* a hairline between the basket and the menu, as on the phone mock */
#btn-menu{position:relative}
#btn-menu::before{content:"";position:absolute;left:-2px;top:50%;transform:translateY(-50%);width:1px;height:22px;background:var(--line-on-dark)}
/* the terms, read where you are rather than on another page */
.termspop .discpop-box{max-width:640px}
/* the foundation note sits in the middle of the screen, closed by the cross or a tap outside */
.foundpop{align-items:center}
.termspop .prose h3{margin:14px 0 4px;font-size:1rem}
.termspop-scroll{max-height:60vh;overflow-y:auto}
/* A phone has no pointer to hover with: the hover states only fire after a
   tap and then stick, which reads as a stuck button. Give them to a mouse. */
@media(hover:none){
  .btn:hover,.slot:hover,.lineact:hover,.booktab:hover,.icobtn:hover,.card:hover,
  .adv-card:hover,.pill:hover,.navdd-btn:hover,.drawer nav a:hover,.acct-menu a:hover,
  .cmsbtn:hover,.payopt:hover,.passopt:hover,.about-value:hover{background:inherit;color:inherit;border-color:inherit;box-shadow:none;transform:none}
  .slot:hover{border-color:var(--rule)}
  .slot[aria-pressed="true"]:hover{border-color:var(--sup)}
  a:hover{text-decoration:inherit}
}
/* the phone header carries the basket and the menu; the account lives in the menu */
@media(max-width:999px){ .hdr-actions .acct{display:none} }
/* the date under Choose a time reads as one line */
.timehead .step-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.timehead .bookstep{margin:0}
/* the confirmation's small step headings: bold body type, not a display size */
.next-step{margin:0;font-family:"Poppins","Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:700;letter-spacing:normal;text-transform:none;color:var(--ink)}
/* a full member session: sold out, but with a way onto the waiting list */
.slot-wait{display:flex;align-items:center;gap:10px;padding-top:8px;border-top:1px solid var(--rule-soft)}
.slot[data-state="soldout"]:has(.slot-wait){opacity:1;background:var(--surface)}
.slot[data-state="soldout"]:has(.slot-wait) .slot-line{opacity:.6}
.pass-table td{vertical-align:middle}
/* the basket: a line's name reads like the extras row, Poppins at body size,
   so the page has one voice rather than headings shouting over rows */
.bline h3.d4{font-family:"Poppins","Helvetica Neue",Arial,sans-serif;text-transform:none;letter-spacing:normal;font-size:1rem;font-weight:700;line-height:1.2}
.bline .bmeta-rows{font-size:.875rem}
/* schools: the form is the panel, the photos the page, as on a product */
.schools-form{padding:0}
/* downloads: a row per file, the button on the right */
.dl-list{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:2px;background:var(--surface)}
.dl-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-top:1px solid var(--rule-soft)}
.dl-row:first-child{border-top:0}
.dl-name{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}
.dl-name .mi{color:var(--sup-deep)}
.dl-type{font-size:.75rem}
.dl-btn-icon{display:none}
/* phones: the title keeps to one line, the type tag goes and the button is just the icon */
@media(max-width:600px){
  .dl-row{padding:10px 8px 10px 10px;gap:8px}
  .dl-name{flex:1 1 auto;flex-wrap:nowrap;gap:8px}
  .dl-name b{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .dl-name>.mi,.dl-type,.dl-btn-text{display:none}
  .dl-btn-icon{display:inline-block}
  .dl-btn{flex:0 0 auto;padding:0;min-width:0;min-height:0;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center}
  .dl-btn .mi{font-size:20px}
}
/* the group book page: the enquiry form sits in a column of its own */
.gb-formwrap{max-width:560px}
.gb-form{padding:0;background:none;border:0;box-shadow:none}
.gb-dates .pill{text-decoration:none}
/* on a phone the first paragraph leads, then the form, then the rest */
.schools-lead{display:none}
@media(max-width:999px){.schools-wrap{display:flex;flex-direction:column}.schools-lead{display:block;order:-2}.schools-form{order:-1}.schools-lead-dup{display:none}}
.acct-arrive{font-style:italic}
.lineact.lineact-add{color:var(--sup-deep);font-weight:600}
.lineact.lineact-add:hover{color:var(--ink)}
@media(max-width:600px){.acct-people th,.acct-people td{padding-left:10px;padding-right:10px}}
.paylist{border:1px solid var(--rule);border-radius:12px;overflow:hidden;background:var(--surface)}
.payopt{display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;border:0;background:transparent;font:inherit;font-size:1rem;color:var(--ink);text-align:left;cursor:pointer}
.payopt + .payopt, .payopt-body + .payopt{border-top:1px solid var(--rule)}
.payopt:hover{background:var(--surface-2)}
.payopt + .payopt{border-top:1px solid var(--rule-soft)}
.payopt[aria-checked="true"]{font-weight:600}
.payopt[aria-checked="true"]{background:var(--sup-wash);font-weight:600}
.payopt-radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--muted);flex:none;position:relative}
.payopt[aria-checked="true"] .payopt-radio{border-color:var(--sup)}
.payopt[aria-checked="true"] .payopt-radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--sup)}
.payopt-marks{display:flex;gap:6px;margin-left:auto}
.payopt-mark{display:inline-flex;align-items:center;justify-content:center;width:48px;height:30px;border:1px solid var(--rule);border-radius:6px;background:var(--white);flex:none}
.payopt-mark svg{max-width:34px;max-height:18px}
.payico-card{width:30px;height:20px;border-radius:2px;background:linear-gradient(#bbb 0 0) 0 5px/100% 4px no-repeat,linear-gradient(#bbb 0 0) 4px 13px/10px 3px no-repeat;border:1px solid #bbb}
.payopt-body{padding:4px 16px 16px;background:var(--surface)}
.wallet.btn-block{width:100%;justify-content:center}
.vline-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}
.vline-head .slot-price{justify-self:end}
.vline-mid{display:flex;align-items:center;gap:8px}
.vline-mid .vqty{align-self:center}
@media (max-width:600px){.vline-head{grid-template-columns:1fr auto}.vline-mid{grid-column:1/-1;grid-row:2}}
.ftr-pay{display:inline-flex;gap:8px;align-items:center}
.pay-badge{display:inline-flex;align-items:center;gap:3px;height:28px;padding:0 9px;border-radius:6px;background:var(--white);
  font-family:"Helvetica Neue",Arial,sans-serif;font-weight:600;font-size:.8125rem;line-height:1}
.pay-apple{color:#000}
.pay-google{color:#3c4043}
.pay-badge .wallet-mark{width:15px;height:15px}
.ftr-bottom{
  border-top:1px solid var(--line-on-dark);margin-top:32px;padding-top:20px;
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;
  font-size:.8125rem;color:var(--white);
}

/* product card meta: always three across, never stacked */

/* ---------- map ----------
   Stands in for a Google Maps iframe, which the artifact sandbox blocks. */
.map{
  position:relative;border:1px solid var(--rule);border-radius:2px;overflow:hidden;
  background:var(--surface-2);aspect-ratio:16/9;min-height:190px;
}
.map-grid{
  position:absolute;inset:0;
  background:
    linear-gradient(var(--rule-soft) 1px,transparent 1px) 0 0/100% 34px,
    linear-gradient(90deg,var(--rule-soft) 1px,transparent 1px) 0 0/44px 100%;
  opacity:.85;
}
.map-water{
  position:absolute;left:-6%;right:-6%;top:48%;height:26%;
  background:var(--tide);opacity:.5;transform:rotate(-4deg);
}
.map-road{position:absolute;left:0;right:0;top:32%;height:7px;background:var(--rule);opacity:.9}
.map-road.b{top:auto;bottom:22%;height:5px}
.map-pin{
  position:absolute;left:50%;top:44%;transform:translate(-50%,-100%);
  width:26px;height:26px;border-radius:50% 50% 50% 0;rotate:-45deg;
  background:var(--sup-deep);border:2px solid var(--surface);
  box-shadow:var(--shadow-low);
}
.map-pin::after{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--surface)}
.map-cap{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  background:var(--scrim-solid);color:var(--on-dark);padding:9px 12px;
  display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.map-cap span{font-size:.8125rem;line-height:1.5;min-width:0;flex:1 1 100%}
.map-cap a{color:var(--white);font-size:.8125rem;white-space:nowrap;flex:none}
@media(min-width:601px){.map-cap span{flex:1 1 auto}}

/* ---------- gallery ----------
   One main image plus a thumbnail strip that swaps it, rather than an
   equal-weight grid, so the image doesn't have to run full width to
   look substantial, and the booking module beside it on desktop
   starts high enough to reach without much scrolling. */
/* the main gallery image or video is widescreen, 16:9 */
.holding-main{aspect-ratio:16/9}
/* the thumbnails are a carousel: five across, the arrows sit over the ends */
.gallery-carousel{position:relative}
.gallery-thumbs{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 32px)/5);gap:8px;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth}
.gallery-thumbs::-webkit-scrollbar{display:none}
.thumb{
  position:relative;aspect-ratio:1/1;padding:0;overflow:hidden;
  background:var(--surface-3);border:2px solid transparent;border-radius:2px;
}
.thumb[aria-pressed="true"]{border-color:var(--sup-deep)}
.thumb-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.thumb-play::before{
  content:"";margin-left:2px;
  border-style:solid;border-width:6px 0 6px 10px;
  border-color:transparent transparent transparent var(--muted);
}
.play{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  z-index:3;background:none;border:0;cursor:pointer;
}
.play i{
  width:54px;height:54px;border-radius:50%;background:var(--scrim-heavy);
  display:flex;align-items:center;justify-content:center;
  border:2px solid var(--white);
}
.play i::after{
  content:"";border-left:15px solid var(--white);border-top:9px solid transparent;
  border-bottom:9px solid transparent;margin-left:4px;
}
.play:hover i{background:var(--scrim-solid)}
/* gallery arrows, on the thumbnail carousel and in the full view */
.gal-nav{position:absolute;z-index:4;border:0;border-radius:50%;cursor:pointer;
  background:var(--scrim-heavy);color:var(--white);display:flex;align-items:center;justify-content:center}
.gal-nav:hover{background:var(--scrim-solid)}
.gal-nav{top:50%;transform:translateY(-50%);width:40px;height:40px}
.gal-nav .mi{font-size:26px}
.gal-prev{left:10px}.gal-next{right:10px}

/* ============================================================
   DEVICE PREVIEW
   The prototype is responsive through media queries, which read the real
   viewport. Rendering it inside a narrow div would keep the desktop
   layout and just squash it, so the preview runs the whole page inside
   an iframe that genuinely is 390 or 834 pixels wide. The frame is then
   scaled down visually to fit the screen it is being viewed on.
   ============================================================ */
.dev-bar{
  position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:calc(var(--z-sheet) + 1);transition:transform .25s ease;
  display:flex;gap:3px;padding:4px;border-radius:999px;
  background:var(--harbour);box-shadow:var(--shadow-mid);
}
/* the hide / show tab sits centred on the bar's top edge; hidden, the bar
   drops below the screen and the tab rests at the bottom */
.dev-bar .dev-toggle{position:absolute;left:50%;bottom:100%;transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:2px;padding:2px 12px 2px 8px;border:0;border-radius:12px 12px 0 0;
  background:var(--harbour);color:var(--on-dark-2);cursor:pointer;
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}
.dev-bar .dev-toggle:hover{color:var(--white);background:var(--harbour)}
/* hidden: the bar drops below the screen, leaving only its tab showing */
body.devbar-hidden .dev-bar{transform:translate(-50%, calc(100% + 14px))}
.dev-bar button{
  border:0;background:transparent;color:var(--on-dark-2);border-radius:999px;
  padding:8px 15px;display:inline-flex;align-items:center;gap:7px;
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;font-weight:700;letter-spacing:.05em;font-size:.875rem;
  transition:background .12s,color .12s;
}
.dev-bar button:hover{color:var(--white)}
.dev-bar button[aria-pressed="true"]{background:var(--sup);color:var(--on-sup)}
.dev-bar svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linejoin:round}
.dev-bar .mi{font-size:16px;vertical-align:-3px}
.dev-sep{width:1px;align-self:stretch;margin:4px 5px;background:var(--line-on-dark);flex:none}
.dev-group{display:flex;gap:3px}
.dev-group[hidden]{display:none}
/* Frozen earlier builds, each its own artifact, so a reviewer can step
   back through the history from the bar. */
.dev-versions{
  position:absolute;right:0;bottom:calc(100% + 10px);flex-direction:column;gap:2px;
  padding:6px;border-radius:12px;background:var(--harbour);
  box-shadow:var(--shadow-mid);min-width:150px;
}
.dev-versions a,.dev-current{
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;
  letter-spacing:.05em;font-size:.8125rem;font-weight:600;line-height:1;
  padding:8px 9px;border-radius:2px;text-decoration:none;color:var(--on-dark);white-space:nowrap;
}
.dev-versions a:hover{background:var(--fill-on-dark);color:var(--white)}
.dev-versions small,.dev-current small{font-weight:500;font-size:.75rem;opacity:.7;margin-left:3px}
.dev-current{color:var(--sup)}

/* a preview tool for a big screen; pointless on the device itself */
@media(max-width:760px){.dev-bar{display:none}}

body.device-mode{overflow:hidden}
/* Compare and Brand are dev-bar overlays, not part of the page being
   previewed, so they still need to open on top of the device frame
   rather than being caught by the "hide everything else" rule below. */
body.device-mode > *:not(#dev-stage):not(.dev-bar):not(#cmp):not(#dev-colours-panel){display:none !important}
#dev-stage{
  position:fixed;inset:0;z-index:var(--z-sheet);background:var(--surface-2);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;padding:24px 20px 78px;
}
#dev-stage[hidden]{display:none}
.dev-shell{transform-origin:center center}
.dev-frame{
  /* content-box so the width set on it is the screen, not the screen
     minus the bezel; a 390px phone must report 390px inside */
  box-sizing:content-box;
  background:var(--white);border:11px solid var(--harbour);border-radius:16px;
  box-shadow:var(--shadow-high);overflow:hidden;position:relative;
}
.dev-frame::before{
  content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);
  width:84px;height:5px;border-radius:2px;background:var(--line-on-dark);z-index:2;
}
.dev-frame iframe{border:0;display:block;width:100%;height:100%;background:var(--white)}
/* the on-screen keyboard's footprint over the phone; clicks pass through so the page stays usable */
.dev-kbd{position:absolute;left:0;right:0;bottom:0;z-index:3;pointer-events:none;
  background:repeating-linear-gradient(135deg,rgba(40,48,56,.55) 0 10px,rgba(40,48,56,.42) 10px 20px);
  border-top:2px dashed #F5C542;display:flex;align-items:flex-start;justify-content:center}
.dev-kbd[hidden]{display:none}
#dev-kbd[hidden]{display:none!important}
.dev-kbd span{margin-top:8px;padding:3px 8px;border-radius:2px;background:#F5C542;color:#0B2230;font:600 .75rem/1.2 "Poppins","Helvetica Neue",Arial,sans-serif}
.dev-note{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-size:.8125rem;
  color:var(--muted);
}

/* ---------- basket extras ----------
   One shape for all three: tick beside the heading, price on the right,
   explanation underneath. */
/* the extras panel: a heading you can close, and rows inside it */
.extras{padding:0;overflow:hidden}
.extras-head{display:flex;align-items:center;gap:10px;padding:14px clamp(16px,2.2vw,22px);cursor:pointer;list-style:none}
.extras-head .d3{font-size:var(--d4)}
.extras-head::-webkit-details-marker{display:none}
.extras-head .d3{margin:0}
.extras-chev{margin-left:auto;color:var(--ink-2);transition:transform .12s}
.extras[open] .extras-chev{transform:rotate(180deg)}
.extras-body{padding:0 clamp(16px,2.2vw,22px) 18px;border-top:1px solid var(--rule-soft)}
.extras-body .extra{border:0;padding:14px 0 0;background:none;gap:4px}
.extras-body .extra-head{gap:10px}
/* the row reads as one sentence: the charity's name is a quiet link inside it */
.extras-body .extra-title{font-family:"Poppins","Helvetica Neue",Arial,sans-serif;text-transform:none;letter-spacing:normal;
  font-size:1rem;font-weight:600;line-height:1.5;color:var(--ink)}
.extras-body .extra-title .btn-link{font:inherit;font-weight:600;color:var(--sup-deep)}
.extras-body .body-sm{padding-left:30px;color:var(--ink-2)}
.extras-body .extra:hover{border:0}
/* a round tick, as the brand uses elsewhere */
.tick-box{appearance:none;width:22px;height:22px;flex:none;margin:0;border:2px solid var(--rule);border-radius:6px;background:var(--white);cursor:pointer;display:inline-grid;place-items:center}
.tick-box:checked{border-color:var(--sup-deep);background:var(--sup-deep)}
.tick-box:checked::after{content:"";width:6px;height:11px;border:solid var(--white);border-width:0 2.5px 2.5px 0;transform:translateY(-1px) rotate(45deg)}
.tick-box:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.extra{
  display:flex;flex-direction:column;gap:10px;cursor:pointer;
  transition:border-color .12s;
}
.extra:hover{border-color:var(--ink-2)}
.extra-head{display:flex;align-items:center;gap:12px}
.extra-head input[type="checkbox"]{
  width:20px;height:20px;flex:none;margin:0;accent-color:var(--sup-deep);cursor:pointer;
}
.extra-title{
  flex:1;min-width:0;
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;font-weight:700;letter-spacing:0;
  font-size:var(--d4);line-height:1.05;color:var(--ink);
}
.extra-head .slot-price{flex:none}

/* ---------- mailing list ---------- */
.ml-form{display:flex;flex-direction:column;align-items:stretch;gap:8px;max-width:420px}
.ml-form .ml-join{align-self:flex-start}
.ml-form input{
  /* one to a line: full width, one line tall, never stretched by the column */
  flex:none;width:100%;height:44px;min-height:0;padding:0 12px;min-width:0;background:none;
  border:2px solid var(--line-on-dark);color:var(--on-dark);border-radius:2px;
}
.ml-form input::placeholder{color:var(--white)}
/* same treatment as Search and Done: --on-sup is a dark navy for the
   paler tints of --sup, not this solid mid-blue, so it reads as
   washed-out grey there too */
.ml-join{font-family:"Poppins","Helvetica Neue",Arial,sans-serif;text-transform:none;letter-spacing:normal;color:var(--btn-fg)}
/* footer social icons */
.ftr-social{display:flex;gap:10px;margin-top:6px}
.ftr-social a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;
  border:1px solid var(--line-on-dark);color:var(--on-dark)}
.ftr-social a:hover{background:var(--fill-on-dark)}
.ftr-social svg{width:18px;height:18px}

/* ============================================================
   HERO, home
   ============================================================ */
.hero{position:relative;background:var(--harbour);color:var(--on-dark);overflow:hidden}
.hero-pause{position:absolute;left:18px;bottom:18px;z-index:4;width:40px;height:40px;border-radius:50%;
  border:1px solid var(--line-on-dark);background:var(--scrim-light);color:var(--white);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .12s,background .12s;
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.hero-pause:hover,.hero-pause[aria-pressed="true"]{opacity:1;background:var(--scrim-heavy)}
.hero-pause .mi{font-size:22px}
/* phones: the card sits over the bottom of the video, so the button moves to
   the top right, smaller and fainter, over open sky */
@media(max-width:600px){
  .hero-pause{left:auto;right:12px;bottom:auto;top:12px;width:30px;height:30px;opacity:.5;
    border-color:var(--line-on-dark);background:var(--scrim-light)}
  .hero-pause .mi{font-size:18px}
}
.hero-in{position:relative;z-index:2;padding-block:clamp(40px,7vw,86px) clamp(28px,4vw,44px)}
.hero h1{color:var(--white);max-width:none}
/* the /book filter card sits on the dark hero but is a light surface, so
   it takes the page ink back rather than inheriting the hero's white */
.hero-title{line-height:1.05}
.hero .lede{color:var(--on-dark-2)}
@media(min-width:1000px){
  /* three comfortable lines across the hero rather than a narrow column */
  /* The whole block sits centred as one group in a hero tall enough to give
     it somewhere to centre within, rather than pinned near the top by
     padding alone. The bar visually leads, title and lede follow, but the
     markup keeps title-before-bar: that is still the right reading order,
     and it is what mobile's own stacked layout, untouched here, already
     relies on. */
  /* on a laptop the hero fills the screen under the menu, so the title,
     rating and search all sit in view together */
  /* a short hero so Our adventures shows on a laptop; the video crops toward the paddlers */
  .hero{min-height:0;width:100%;height:clamp(400px, 32vw, 560px)}
  /* search leads at the top; the title and rating are centred on the hero as a whole (nudged up by half the search bar) */
  .hero .hero-in{padding-top:48px;padding-bottom:24px}
  .hero .hero-in > *{margin-top:0}
  .hero .hero-in > :last-child{order:1;width:100%}
  .hero .hero-in .qf{margin-inline:auto}
  /* title and reviews as one group, auto margins on both ends of it so it
     centres in whatever space is left under the search bar. A leftover
     translateY(-59px) on both (once needed to offset something upstream
     of this) was fighting that centring and pulling the group back up
     toward the search bar instead */
  .hero .hero-in > :first-child{order:2;margin-top:auto}
  .hero .hero-in > .hero-reviews{order:3;margin-top:8px;margin-bottom:auto}
  .hero .hero-video{object-position:50% 70%}
  .hero-in{
    min-height:0;height:100%;
    /* the group sits in the upper part of the hero, not the middle, so an
       open Activity or Date list still fits on a laptop screen and the
       video shows below */
    display:flex;flex-direction:column;justify-content:flex-start;align-items:center;
    padding-top:clamp(34px,6vh,72px);
    text-align:center;
  }
  /* title first, then the rating, then the search, as one centred group */
  .hero-in .hero-reviews{margin-top:-6px}
  .hero-title{text-align:center}

  .qf-bare{margin-top:0}
}
/* phones and tablets follow the desktop order too: rating, search, then the
   centred title and intro */
@media(max-width:999px){
  /* title first, then the rating and search, with clear space beneath so
     the video can be seen */
  .hero-in .hero-reviews{justify-content:center;text-align:center}
  /* the home title is the page-title size, --d1, like every other; it runs
     the full width of the screen so it stays on one line on a phone */
  h1.hero-title{text-align:center;line-height:1.05;
    width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
  /* room for the video above the title, and the card down near the bottom
     edge. Traced from the mockup: the title sits low in the photo, close
     over the card, rather than near the top with most of the photo below
     it. The space above still follows the screen's height, not its width,
     so on a short screen (a phone browser with its bars showing) the card
     still lands within the first screen with Our adventures beneath it */
  .hero .hero-in{padding-top:clamp(120px,32vh,260px);padding-bottom:20px}
  .hero .hero-in .qf-bare{margin-top:16px}
  .hero-in .hero-reviews{margin-top:6px}
  /* traced from the mockup: clear over the top of the photo, solid by the
     very bottom, the fade landing just above the (now lower) title rather
     than at a fixed midpoint. .hero .hero-scrim-gradient, not the class
     alone: needs to outrank the base .hero-scrim-gradient rule further
     down the file, which carries the same specificity and would
     otherwise win on source order */
  .hero .hero-scrim-gradient{background:linear-gradient(to bottom,color-mix(in srgb,var(--brand-slate) 0%,transparent) 45%,var(--brand-slate) 62%)}
}
/* Google rating above the bar. Brand's own colours rather than Google's:
   the stars in the pink used for ratings on a dark ground, the rest in the
   hero's own ink. No link (the brief keeps people on the site), so nothing
   here reads or behaves as a button. */
.hero-reviews{
  display:flex;align-items:center;gap:8px;font-size:.9375rem;
  color:var(--on-dark);text-shadow:0 2px 12px rgba(5,24,34,.5);
}
.hero-reviews b{font-weight:700}
.hero-reviews .stars{color:var(--pink)}

/* Three washes to compare (Compare, "Home hero: dark wash over the video").
   None is the default: instead of a wash, the title and lede carry their
   own drop shadow, so the footage itself stays at full brightness. */
.hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero-scrim-none{display:none}
.hero-scrim-full{background:color-mix(in srgb,var(--brand-slate) 50%,transparent)}
/* traced from the mockup: clear until just past halfway, then down to
   almost fully SUP Dark Grey by the bottom, so the video blends into the card
   sitting on top of it rather than just darkening under it. SUP Dark Grey
   (--brand-slate), not --harbour, matching the footer and card fades */
.hero-scrim-gradient{background:linear-gradient(to bottom,color-mix(in srgb,var(--brand-slate) 0%,transparent) 45%,color-mix(in srgb,var(--brand-slate) 92%,transparent) 100%)}
.hero-scrim-none ~ .hero-in .hero-title{text-shadow:0 2px 16px rgba(5,24,34,.55)}

/* no dark fade over the home video: a soft shadow keeps the heading and intro readable instead */
.hero .hero-title{text-shadow:0 2px 14px rgba(0,0,0,.55)}

/* ============================================================
   PAGE HERO, a full-bleed photo banner with a title and one line
   underneath, for interior pages (About and similar) that want the
   same full-width treatment as the home hero without a video or a
   search bar over it
   ============================================================ */
.pagehero{
  position:relative;display:flex;align-items:center;justify-content:center;text-align:center;
  min-height:clamp(280px,34vw,420px);padding:clamp(24px,4vw,40px) clamp(20px,4vw,32px);
  color:var(--white);overflow:hidden;background:var(--brand-slate) var(--ph) center/cover no-repeat;
  width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
}
.pagehero-scrim{position:absolute;inset:0;background:color-mix(in srgb,var(--brand-slate) 45%,transparent)}
.pagehero-in{position:relative;z-index:1;max-width:640px;display:flex;flex-direction:column;gap:8px}
.pagehero-in h1{color:var(--white);text-shadow:0 2px 14px rgba(0,0,0,.55)}
.pagehero-in .lede{color:var(--on-dark);text-shadow:0 2px 12px rgba(0,0,0,.5)}
/* group pages: the same hero with the group finder in it, as on home. The
   dropdowns hang below the photo, so nothing clips, and the bar gets the
   width its three fields need. */
/* the same height as every other page hero (About, say), so a laptop
   shows the page starting beneath it; the finder sits inside that height */
.pagehero-search{overflow:visible;overflow-x:clip;min-height:clamp(280px,34vw,420px)}
/* the photo layer is normally drawn 2% oversize and trimmed by the box's
   overflow; this box lets the dropdowns overflow, so the layer is sized
   exactly instead, or a strip of unwashed photo hangs below the hero */
.pagehero-search.holding-photo::before{inset:0;background-position:var(--hero-pos,50% 22%)}
/* desktop: the home hero's grade, clear over the top half of the photo
   and near-solid grey at the foot, rather than a flat wash */
.pagehero-search .pagehero-scrim{background:linear-gradient(to bottom,
  color-mix(in srgb,var(--brand-slate) 0%,transparent) 45%,
  color-mix(in srgb,var(--brand-slate) 92%,transparent) 100%)}
.pagehero-search .pagehero-in{max-width:none;width:100%;gap:14px}
.pagehero-search .pagehero-in > h1,.pagehero-search .pagehero-in > .lede{max-width:640px;margin-inline:auto}
.pagehero-search .groups-finder{margin-top:10px;text-align:left}
.pagehero-search .qf{margin-inline:auto}
.pagehero-cta{margin-top:10px}
/* phones and tablets: as on home and membership, the photo shows clear at
   the top and a grey grade climbs from the foot, the title and search
   sitting low on solid grey */
@media(max-width:999px){
  .pagehero-search{align-items:flex-end;padding-top:clamp(120px,22vh,180px);padding-bottom:20px;min-height:0}
  /* the photo fills only the top of the tall hero, so a landscape shot
     keeps its width and its people sit above the title rather than
     behind it; the hero's own grey carries on underneath */
  .pagehero-search.holding-photo::before{bottom:38%;background-position:50% 30%}
  .pagehero-search .pagehero-scrim{background:linear-gradient(to bottom,
    color-mix(in srgb,var(--brand-slate) 0%,transparent) 30%,
    color-mix(in srgb,var(--brand-slate) 70%,transparent) 48%,
    var(--brand-slate) 60%)}
}

/* the entry widget, date-first rail + activity chooser */
.entry{
  background:var(--surface);border:1px solid var(--rule);border-radius:2px;
  padding:clamp(14px,2vw,20px);color:var(--ink);
}
/* home hero: the search sits lower and closer in, so more of the video shows */
.hero .entry{padding:clamp(12px,1.4vw,16px);margin-top:clamp(20px,5vw,56px)}
.hero .entry .stack-4{gap:12px}
.entry-head{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;
  font-weight:700;letter-spacing:.05em;font-size:1.0625rem;color:var(--ink);
}
/* "Quick find" home variant: date, time, people and activity as one
   row, OpenTable-style, wrapping to two lines on a narrow screen
   rather than squeezing every field to unreadable widths. */

/* Date opens a plain calendar panel below the row rather than the
   browser's own native picker, so it can carry the +/- day options
   and match the rest of the site's calendar look. */
.ff-cal-panel{margin-top:14px;padding-top:14px;border-top:1px solid var(--rule-soft)}
.ff-cal-panel[hidden]{display:none}
/* Full width of the card on mobile, Airbnb's mobile date sheet, by
   cancelling the entry card's own side padding just for this panel. */
@media(max-width:600px){
  .ff-cal-panel{
    margin-left:calc(-1 * clamp(14px,2vw,20px));
    margin-right:calc(-1 * clamp(14px,2vw,20px));
    padding-left:clamp(14px,2vw,20px);
    padding-right:clamp(14px,2vw,20px);
  }
}
/* No single product to colour this one against, so every open day
   gets one plain neutral fill rather than borrowing "available"
   green or "sold out" grey and implying something untrue. */
.cday-plain{background:var(--surface-2)}
/* the days between a chosen start and end date */
.cday[data-inrange="1"]{background:var(--sup-wash)}
/* Grid, not flex-wrap, so the date boxes fall into the same evenly
   spaced columns as the "Choose by activity" buttons above them,
   rather than each wrapping row sizing itself independently. */
.daterail{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px 10px;padding-bottom:2px}
.dchip{
  position:relative;flex:none;min-width:74px;padding:9px 12px;border:1px solid var(--rule);
  background:var(--surface);border-radius:2px;cursor:pointer;text-align:left;
  display:flex;flex-direction:column;gap:2px;line-height:1.2;
  transition:border-color .12s,background .12s;
}
.dchip:hover{border-color:var(--ink-2)}
.dchip[aria-pressed="true"]{background:var(--harbour);border-color:var(--harbour)}
.dchip[aria-pressed="true"] .dchip-d,.dchip[aria-pressed="true"] .dchip-n{color:var(--on-dark)}
.dchip-d{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;
  font-weight:700;letter-spacing:.05em;font-size:1rem;color:var(--ink);
}
.dchip-n{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}
/* The date chip matches the fixed chips beside it: a bold label on the
   first line, and the control styled like the small grey date below it. */
/* selected: the whole chip goes dark, so the control has to go light too */

/* ============================================================
   BOOKING MODULE, the centrepiece
   ============================================================ */
.bookwrap{display:grid;gap:clamp(20px,3vw,36px);align-items:start}
.bookwrap > *{min-width:0}
@media(min-width:1000px){.bookwrap{grid-template-columns:minmax(0,1fr) 396px}}
/* On mobile the booking module leads, price and calendar directly under
   the title, ahead of the gallery and the description. The dark harbour
   ground continues from the hero straight through the booking card, so
   the white .bookbox reads as a card sitting on the page rather than a
   plain white panel underneath a photo. -24px cancels the stack-5 gap
   above it, so the two dark blocks touch with no pale seam between. */
@media(max-width:999px){
  #bookbox-mount{
    order:-1;background:var(--brand-slate);
    margin:-24px calc(-1 * clamp(20px,4vw,32px)) 0;
    padding:24px clamp(20px,4vw,32px) 28px;
  }
}
/* Mobile keeps a top photo above the title, same as the browse page;
   desktop drops it since the gallery's own main image, beside the
   booking module, already does that job. */
@media(min-width:1000px){.mobile-photo{display:none}.price-blob{display:none}}
/* membership: the photo sits in the left column on a desktop, in the header on a phone,
   and on a phone the join panel comes straight after the intro */
.desk-photo{aspect-ratio:16/9;border-radius:6px}
@media(max-width:999px){.desk-photo{display:none}.member-wrap > #bookbox-mount{order:-1}}
/* Below the desktop layout the title block sits on the photo itself:
   the photo runs edge to edge, a dark grade climbs from its foot, and
   the label, title, rating and strap sit on that in white. */
@media(max-width:999px){
  .acthero{
    position:relative;margin:0 calc(-1 * clamp(20px,4vw,32px));
    margin-top:calc(-1 * clamp(12px,2vw,20px));
    background:var(--brand-slate);
  }
  /* Square source, portrait frame: zoom in a touch and sit the frame
     low on the image so the paddler lands central and above the fold
     of the text panel. */
  .acthero .mobile-photo{
    aspect-ratio:auto;width:100%;height:clamp(400px,112vw,560px);border-radius:0;border:0;
  }
  .acthero .mobile-photo:not(.holding-photo){
    background:linear-gradient(180deg,var(--surface-3) 0%,var(--surface-3) 42%,var(--brand-slate) 100%);
  }
  /* Cover by default, never tile: a wide photo under a tall frame was
     repeating and showing twice. The square paddleboarding shot alone
     is zoomed and framed low so the paddler lands mid-frame. */
  .acthero .holding-photo{background-size:cover;background-repeat:no-repeat;background-position:50% 40%}
  .acthero .holding-photo[data-photo="paddleboarding"]{background-size:124% auto;background-position:64% 82%}
  .acthero .holding-cap{position:absolute;top:14px;left:clamp(20px,4vw,32px);color:var(--holding-cap)}
  /* Price badge: fixed at the blob's own 217:187 ratio (traced from the
     supplied vector) so it can never stretch or skew, whatever the
     price's digit count. Sits as the first thing in the text panel,
     lifted above its own top edge so it overlaps the photo just above
     the age/duration row, rather than pinned to the top of the hero. */
  .price-blob{position:absolute;top:-5px;left:20px;width:92px;height:80px;z-index:2}
  .price-blob svg{width:100%;height:100%;display:block}
  .price-blob-text{
    position:absolute;inset:10% 32% 8% 2%;display:flex;flex-direction:column;
    align-items:center;justify-content:center;color:var(--white);text-align:center;line-height:1;
  }
  .price-blob-text b{
    display:block;font-weight:600;text-transform:uppercase;
    font-size:.75rem;letter-spacing:.05em;margin-bottom:2px;
  }
  .price-blob-text strong{
    display:block;font-family:"Rift Soft Bold","Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
    font-weight:700;font-size:1.6875rem;line-height:1;
  }
  .acthero-text{
    position:absolute;left:0;right:0;bottom:0;
    /* extra top padding buys the gradient more room to climb, so the
       fade reads as gradual rather than a hard edge partway up the
       photo. */
    padding:90px clamp(20px,4vw,32px) 22px;
    /* SUP Dark Grey (--brand-slate), so the scrim fades into the same colour as
       the solid ground below rather than a darker navy. It still starts
       clear at the top of the padding, but climbs faster so the text
       sits on dark: about .65 at the label, .85 by the title, and fully
       opaque behind the rating and the strap line. color-mix, not a
       hardcoded rgb triple, so it stays correct if SUP Dark Grey's hex changes. */
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--brand-slate) 0%,transparent) 0%,color-mix(in srgb,var(--brand-slate) 35%,transparent) 15%,color-mix(in srgb,var(--brand-slate) 65%,transparent) 32%,
      color-mix(in srgb,var(--brand-slate) 85%,transparent) 50%,color-mix(in srgb,var(--brand-slate) 95%,transparent) 68%,var(--brand-slate) 85%);
    color:var(--white);
    --focus:var(--white);   /* the title block sits on the dark fade here */
  }
  /* the label, title, rating and strap sit a little closer together */
  .acthero-text.stack-3{gap:8px}
  .acthero-text .label{color:var(--on-dark)}
  .acthero-text h1{color:var(--white)}
  .acthero-text .body-sm,.acthero-text .lede{color:var(--white)}
  .acthero-text .stars{color:var(--pink)}
  /* The title leads on mobile; the review line and strap step back so
     the hierarchy reads title first, detail second, at a glance. */
  .acthero-text .lede{font-size:.875rem}
  .acthero-text .body-sm{font-size:.8125rem}
}

.bookbox{background:var(--surface);border:1px solid var(--rule);border-radius:12px 12px 2px 2px;overflow:hidden}
/* With tabs on top, the box itself goes clear so the page shows through the
   tabs' rounded corners; the white and the border move down to the body. */
.bookbox:has(.booktabs){background:transparent;border:0;border-radius:0;overflow:visible}
.bookbox:has(.booktabs) .bookbox-body{background:var(--surface);border:1px solid var(--rule);border-top:0;border-radius:0 0 2px 2px}
/* checkout's card wrapping the same tabs: same fix, the .card's own white
   fill and grey stroke would otherwise show through behind and around the
   tabs' rounded corners; the white and the border move down to the body. */
.co-card:has(.booktabs){background:transparent;border:0;border-radius:0;overflow:visible}
.co-card:has(.booktabs) .card-pad{background:var(--surface);border:1px solid var(--rule);border-top:0;border-radius:0 0 2px 2px}
/* auto-scroll targets for the date -> time -> people steps: keep the
   heading clear of the sticky header when scrollIntoView lands, with
   extra room above it so the last couple of rows of the step just
   finished (the tail of the date grid or time list) stay on screen too. */
/* --snap-top is set from the header's measured height whenever the strip
   changes, so a two-line strip pushes the step headings down with it
   rather than letting the header cover them. */
#book-slots,#book-tickets,#book-craft,#book-dur{scroll-margin-top:var(--snap-top,254px)}
@media(min-width:1000px){
  /* Deliberately not sticky by default: a sticky panel this tall (a full
     calendar and five time slots, say) held its place on screen for
     several seconds of scrolling before it released, which read as the
     page freezing rather than a buy-box holding its spot. The panel scrolls
     in the page at the same rate as the description column beside it, the
     whole time, so there's never a moment where scrolling appears to do
     nothing. This is the "Basic" panel mode in the dev bar; "Sticky if fits"
     re-adds position:sticky, but only while JS has measured the panel as
     short enough to fit under the header (.panel-sticky-fit, toggled in
     armFitWatch) so a tall panel is never stuck showing hidden content. */
  #bookbox-mount{align-self:stretch}
  .bookbox-sticky.panel-sticky-fit{position:sticky;top:calc(var(--hdr-h,70px) + 30px)}
}
.bookbox-head{
  background:var(--harbour);color:var(--on-dark);padding:14px 18px;
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;
}
.bookbox-head .price{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;font-weight:700;
  font-size:1.6875rem;line-height:1;color:var(--white);
}
/* Product page only: no dark bar, price sits directly on the panel so
   the "All Sessions / Private Groups" pair can share the row. */
/* Product page: the session type is a pair of tabs forming the top edge
   of the panel. The chosen tab is white with no stroke, its text in the
   tab's own colour (cyan for All Sessions, sunflower for Private
   Groups); the other sits back in grey, text and fill both. */
/* a line in the chosen tab's colour runs across the top of the panel.
   This is the site's one rounded-tab component: reused as-is wherever
   two views toggle in place (Sessions/Private Groups here, Become a
   Member/Sign In on Membership, Upcoming/Past on the account page, and
   Guest checkout/Sign in at checkout) rather than styled fresh each time. */
.booktabs{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0;background:transparent;
  border-bottom:4px solid var(--sup)}
.booktabs:has(.booktab-private[aria-selected="true"]){border-bottom-color:var(--groups)}
.booktab{
  appearance:none;border:0;margin:0;cursor:pointer;
  background:var(--surface-2);color:var(--ink-2);
  padding:15px 8px 14px;line-height:1;border-radius:12px 12px 0 0;
  /* the tab sits ON the coloured rule: without the overlap a hairline of
     page shows between the two at some zoom levels */
  margin-bottom:-1px;
  /* sentence-case Poppins in the tabs, rather than the condensed capitals */
  font-family:"Poppins","Helvetica Neue",Arial,sans-serif;
  text-transform:none;font-weight:600;letter-spacing:normal;font-size:1.0625rem;
  transition:background .12s,color .12s;
}
.booktab:hover{background:var(--surface-2);color:var(--ink)}
/* the chosen tab takes its own colour: harbour blue for all sessions,
   the groups sunflower for private groups, as on the group tags */
.booktab[aria-selected="true"]{background:var(--sup);color:var(--white)}
.booktab-private[aria-selected="true"]{background:var(--groups);color:var(--ink)}
/* Private Groups hovers and selects exactly like All Sessions */
.booktab:focus-visible{outline-offset:-3px}
.bookbox-body{padding:clamp(14px,2vw,18px);display:flex;flex-direction:column;gap:16px}
/* The people step mounts into a holder that is empty until a time is
   picked. Empty, it must not spend a gap; filled, it spaces its rule
   and heading like the steps above it. */
#book-tickets:empty{display:none}
#book-tickets{display:flex;flex-direction:column;gap:16px}

/* A progress indicator, not a set of controls: no boxes, no borders,
   chevrons between the steps and the current one marked in ink. */
.steps{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  list-style:none;margin:0;padding:0;
}
.stepi{display:inline-flex;align-items:center;gap:7px;color:var(--muted)}
.stepn{
  width:21px;height:21px;flex:none;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--surface-3);color:var(--ink-2);
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  font-weight:700;font-size:.8125rem;line-height:1;
}
.stepl{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;font-weight:600;letter-spacing:.05em;font-size:.8125rem;
}
.stepi[data-state="now"]{color:var(--ink)}
.stepi[data-state="now"] .stepn{background:var(--harbour);color:var(--on-dark)}
.stepi[data-state="done"]{color:var(--go)}
.stepi[data-state="done"] .stepn{background:var(--go);color:var(--white)}
.stepsep{color:var(--rule);font-size:1rem;line-height:1;user-select:none}

/* weather is reassurance, not a booking control, so it sits quietly */
.wx{
  font-size:.75rem;line-height:1.2;color:var(--muted);
  display:inline-flex;align-items:center;gap:5px;
}
.wx::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:var(--go);flex:none;
}

/* month calendar */
.calhead{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
/* the month under "Choose a date", and the date under "Choose a time", read
   as plain text, not a second heading */
.step-sub,
.calhead .label{
  font-family:"Poppins","Helvetica Neue",Arial,sans-serif;
  font-size:1rem;letter-spacing:0;font-weight:400;text-transform:none;color:var(--ink-2);
}
.calnavs{display:flex;gap:6px;flex:none}
.calnav{
  width:34px;height:34px;border:1px solid var(--rule);background:var(--surface);
  border-radius:var(--cal-radius);color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;
  font-size:22px;line-height:1;
}
.calnav:hover{border-color:var(--ink-2);background:var(--surface-2)}
.calnav[disabled]{opacity:.35;pointer-events:none}
/* The day fills live here once, so the key can never drift from the days
   it describes. Each is mixed against the surface so it stays soft in both
   themes: Bristol Green for open, the secondary pink for scarce, the brand
   grey-blue for sold out or no session, and --stop for the pink sold-out
   variant. */
:root{
  --cal-open:color-mix(in srgb,var(--brand-green) 44%,var(--surface));
  --cal-scarce:color-mix(in srgb,var(--pink) 48%,var(--surface));
  --cal-shut:color-mix(in srgb,var(--brand-grey) 30%,var(--surface));
  --cal-soldout:color-mix(in srgb,var(--stop) 34%,var(--surface));
  --cal-radius:6px;
}
/* minmax(0,1fr), not plain 1fr: a bare 1fr column won't shrink below its
   content's min-content width, so two-digit day numbers (19, 26...) could
   force the grid wider than a narrow phone screen and overhang the card */
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.cal-dow{
  text-align:center;font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;
  text-transform:uppercase;font-weight:600;font-size:.75rem;letter-spacing:.05em;
  color:var(--muted);padding-bottom:2px;
}
/* Availability is read from the fill of a rounded tile, not a small dot.
   The tiles stand apart with a clear gap rather than butting together. */
.cday{
  aspect-ratio:1/1;border:1px solid transparent;background:var(--cal-shut);
  border-radius:var(--cal-radius);display:flex;align-items:center;justify-content:center;
  cursor:pointer;padding:2px;font-variant-numeric:tabular-nums;
  color:var(--ink);font-size:.9375rem;line-height:1;font-weight:500;
  transition:border-color .12s,background .12s;
}
.cday[data-avail="some"]{background:var(--cal-open);color:var(--ink)}
.cday[data-avail="low"]{background:var(--cal-scarce);color:var(--ink)}
/* a day with both an open session and a scarce one splits diagonally,
   green top-left into pink bottom-right, rather than averaging to one tint */
.cday[data-avail="mixed"]{
  background:linear-gradient(to bottom right,var(--cal-open) 50%,var(--cal-scarce) 50%);
  color:var(--ink);
}
/* sold out or no session reads as a real day that is full, dark number on
   grey, not a greyed-out number that looks disabled */
.cday[data-avail="none"]{background:var(--cal-shut);color:var(--ink);cursor:pointer}
.cday[data-avail="soldout"]{background:var(--cal-soldout);color:var(--ink)}
/* member sessions: a full day takes the pink and opens onto the waiting list */
.cday[data-avail="wait"]{background:var(--cal-scarce);color:var(--ink);cursor:pointer}
/* Past days carry no fill at all, just a quiet number in the pale brand
   grey. A flat tint rather than a dimmed one: fading --muted to half hid it
   against the tiles beside it instead of simply setting it apart. */
.cday[data-past="1"]{background:transparent;color:var(--brand-grey);opacity:1;pointer-events:none}
.cday:hover{border-color:var(--ink-2)}
.cday[aria-pressed="true"]{
  background:var(--brand-slate);color:var(--white);border-color:var(--brand-slate);
  border-width:2px;padding:1px;font-weight:700;
}
/* key swatches: the same fills and the same rounded corners as the days,
   no outline, and big enough to match against a tile at a glance */
.callegend i.calkey{width:16px;height:16px;border-radius:2px;flex:none;background:var(--cal-shut)}
.callegend i.calkey[data-avail="some"]{background:var(--cal-open)}
.callegend i.calkey[data-avail="low"]{background:var(--cal-scarce)}
.callegend i.calkey[data-avail="mixed"]{background:linear-gradient(to bottom right,var(--cal-open) 50%,var(--cal-scarce) 50%)}
.callegend i.calkey[data-avail="none"]{background:var(--cal-shut)}
.callegend i.calkey[data-avail="soldout"]{background:var(--cal-soldout)}
.callegend i.calkey[data-avail="wait"]{background:var(--cal-scarce)}
.callegend{
  display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.8125rem;color:var(--ink-2);
}
.callegend span{display:inline-flex;align-items:center;gap:7px}
/* spread across the calendar's width: the first entry at the left edge,
   the last at the right, and with the usual three the middle one sits
   exactly in the centre */
.callegend{justify-content:space-between}
.callegend:has(> span:nth-child(3):last-child){display:grid;grid-template-columns:1fr auto 1fr}
.callegend:has(> span:nth-child(3):last-child) > span:first-child{justify-self:start}
.callegend:has(> span:nth-child(3):last-child) > span:last-child{justify-self:end}
.callegend i{width:6px;height:6px;border-radius:50%;display:inline-block}

/* slot list */
.slots{display:flex;flex-direction:column;gap:8px}
/* A duration card holds a time range, a length and sometimes a tag, so
   it needs more room than a one-line session row. */
#book-dur .slot{padding:15px 16px;gap:7px}
#book-dur .slot .spread{align-items:flex-start}
/* the line under a slot time: length, and any tag that goes with it */
.slot-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
#book-dur .slot .slot-meta{gap:12px;margin-top:2px}
.slot{
  border:1px solid var(--rule);border-radius:2px;background:var(--surface);
  padding:12px 14px;display:flex;flex-direction:column;gap:8px;cursor:pointer;
  text-align:left;width:100%;transition:border-color .12s,background .12s;
}
.slot:hover{border-color:var(--sup-deep)}
/* Selected: solid cyan with no stroke (border matches its own fill),
   white text throughout. Any badge inside goes white-on-dark-grey so
   it still reads as a pill rather than disappearing into the cyan. */
.slot[aria-pressed="true"]{border-color:var(--sup);background:var(--sup-wash);box-shadow:inset 0 0 0 1px var(--sup)}
.slot[aria-pressed="true"] .slot-time,
.slot[aria-pressed="true"] .slot-price{color:var(--sup-deep)}
.slot[aria-pressed="true"] .slot-member,
.slot[aria-pressed="true"] .tiny{color:var(--ink-2)}
/* the recommendation keeps its own colour on a chosen card: turning it
   white would make it read as a generic pip like any other */
.slot[aria-pressed="true"] .tag-best{background:var(--pink);border-color:var(--pink);color:var(--harbour)}
.slot[data-state="soldout"]{opacity:.55;cursor:default;background:var(--surface-2)}
.slot[data-state="soldout"]:hover{border-color:var(--rule)}
.slot-time{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;
  font-weight:700;letter-spacing:.05em;font-size:1.25rem;line-height:1;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.slot-price{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;font-weight:700;
  font-size:1.25rem;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;
}
.slot-member{font-size:.8125rem;color:var(--pink);font-weight:500;white-space:nowrap}
.slot-price{white-space:nowrap}
.slot .spread > .stack:last-child{flex:none}
/* Never wrap: a pip on its own line makes that one row taller than
   every other slot in the list. The pip shrinks a little instead, so
   time + pip reliably fit the one line even next to "Private Available". */
.slot-time-row{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;min-width:0}
.slot-time-row .slot-time{white-space:nowrap;flex:none}
.slot-time-row .tag{font-size:.75rem;padding:4px 10px;white-space:nowrap;flex:none}
/* Sold out keeps its grey colouring but takes the same pill shape as
   the scarcity/private pips beside it, here only: .tag-off elsewhere
   (browse cards, membership) stays the plain squared-off tag. */
.slot-time-row .tag-off{border-radius:999px;padding:5px 12px}

/* Hire start times: a grid of half-hour pills. A start with too few
   boats free stays visible but cannot be picked. */
.starts{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}
.starts .pill{justify-content:center;padding:9px 6px;font-variant-numeric:tabular-nums}
.starts .pill[disabled]{opacity:.35;cursor:not-allowed;text-decoration:line-through}

/* the running time of a course or trip, under its date */
.slot-hours{font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;font-weight:600;letter-spacing:.05em;font-size:1rem;color:var(--ink-2);font-variant-numeric:tabular-nums}
/* Pick a time: taller rows, the time in Poppins, the price in Rift Soft,
   and any tag small and right-aligned beside the price. Colours are left
   to the shared slot rules so a chosen row still turns white. */
#book-slots .slot{padding:16px}
#book-slots .slot-line{align-items:center;gap:12px}
#book-slots .slot-time{font-family:"Poppins","Helvetica Neue",Arial,sans-serif;font-weight:600;font-size:1rem;letter-spacing:0;text-transform:none;white-space:nowrap}
#book-slots .slot-price{font-family:"Rift Soft Bold","Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;font-size:1.25rem;line-height:1}
#book-slots .slot-right{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px 8px;min-width:0}
#book-slots .slot-right .tag{font-size:.75rem;padding:3px 8px;white-space:nowrap}

/* ticket rows */
.trow{
  display:flex;align-items:center;gap:12px;padding:8px 0;
  border-bottom:1px solid var(--rule-soft);
}
.trow:last-of-type{border-bottom:0}
/* The private option wears the groups yellow, the same theme as the
   badge and the tab it belongs with. */
.trow-private{
  border:1px solid var(--groups);background:var(--groups);
  border-radius:2px;padding:12px 14px;margin-top:4px;
  /* the ink is pinned rather than inherited: sunflower stays a light
     yellow in dark mode, so the theme's own light ink would vanish */
  color:var(--harbour);
}
/* accent-color alone leaves the native unchecked box with its default
   grey stroke rather than the panel's own yellow, so this one is fully
   custom: appearance:none plus a hand-drawn tick on :checked. */
.trow-private .check input{
  appearance:none;-webkit-appearance:none;position:relative;
  border:1.5px solid var(--harbour);border-radius:2px;background:var(--white);
}
.trow-private .check input:checked{background:var(--harbour);border-color:var(--harbour)}
.trow-private .check input:checked::after{
  content:"";position:absolute;left:5px;top:1px;width:5px;height:9px;
  border:solid var(--white);border-width:0 2px 2px 0;transform:rotate(45deg);
}
.trow-private b{color:var(--harbour)}
.trow-private .tiny{color:var(--harbour);opacity:.82}
.stepper{display:flex;align-items:center;gap:0;flex:none;border:1px solid var(--rule);border-radius:2px}
.stepper button{
  width:38px;height:38px;background:var(--surface);border:0;color:var(--ink);
  font-size:1.25rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;
}
.stepper button:hover{background:var(--surface-2)}
.stepper button[disabled]{opacity:.3;pointer-events:none}
.stepper output{
  width:42px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600;
  border-left:1px solid var(--rule);border-right:1px solid var(--rule);line-height:38px;
}

/* price summary */
.sum{display:flex;flex-direction:column;gap:7px;padding-top:12px;border-top:1px solid var(--rule)}
.sumline{display:flex;justify-content:space-between;gap:12px;font-size:.9375rem;color:var(--ink-2)}
.sumline b{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}
/* the little actions inside a total line sit a size below the line itself */
.sumline .btn-link{font-size:.75rem}
/* remove sits with the figure it belongs to, at the right of the line */
.sumline-end{display:inline-flex;align-items:baseline;gap:10px;flex:none;margin-left:auto;white-space:nowrap}
/* a total line stays on one line: the label does not wrap under its figure */
.sumline > span:first-child{white-space:nowrap}
@media(max-width:600px){.sumline:has(.sumline-end){font-size:.875rem}}
/* one line per item only in the booking panel, where the craft lines are
   short; basket and checkout totals wrap, so "remove" is never cut off */
#bookbox-mount .sumline > span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sumline > span{min-width:0}
.sumtotal{
  display:flex;justify-content:space-between;gap:12px;align-items:baseline;
  padding-top:9px;border-top:1px solid var(--rule);
}
.sumtotal .label{color:var(--ink)}
.sumtotal b{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;font-weight:700;
  font-size:1.6875rem;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;
}

/* quick facts */
.facts{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--rule);border-radius:2px;background:var(--surface)}
.fact{
  flex:1 1 140px;padding:12px 14px;border-right:1px solid var(--rule-soft);
  display:flex;flex-direction:column;gap:3px;
}
.fact:last-child{border-right:0}
.fact b{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;
  font-weight:700;font-size:1.0625rem;letter-spacing:0;color:var(--ink);line-height:1.2;
}

/* accordion */
/* "Label|value" facts as plain text: a small grey label over the value set
   in the heading face, no box and no rules, each centred in its column.
   Three stay three across at every width; four go two by two on a phone. */
.facts.facts-plain{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,3vw,32px);border:0;border-radius:0;background:transparent}
.facts.facts-plain.facts-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:600px){.facts.facts-plain.facts-4{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:16px}}
.facts.facts-plain .fact:nth-child(n){padding:0;border:0;gap:4px;align-items:center;text-align:center}
.facts.facts-plain .fact b{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;font-weight:600;
  font-size:.8125rem;letter-spacing:.08em;line-height:1.2;color:var(--muted);white-space:normal}
.facts.facts-plain .fact .tiny{
  font-family:"Rift Soft Bold","Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;font-weight:700;
  text-transform:uppercase;font-size:var(--d4);line-height:1.05;color:var(--ink)}

/* Help page: the contact details sit beside the FAQs on a desktop, and
   move to the top as "Contact us" on phones and tablets */
.help-contact-top{display:none}
@media(max-width:999px){.help-contact-top{display:flex}.help-contact-side{display:none}}


/* Key information: question and answer, always open, no boxes */
.keyinfo{display:flex;flex-direction:column}
.keyinfo-item{padding:16px 0;border-top:1px solid var(--rule)}
.keyinfo-item:last-child{border-bottom:1px solid var(--rule)}
.keyinfo-item h3{margin:0 0 6px}
.keyinfo-item p{margin:0;font-size:.9375rem;line-height:1.6;color:var(--ink-2)}

.acc{border:1px solid var(--rule);border-radius:2px;background:var(--surface);overflow:hidden}
.acc + .acc{margin-top:-1px}
.acc summary{
  padding:14px 16px;cursor:pointer;list-style:none;display:flex;align-items:center;
  justify-content:space-between;gap:12px;
  font-family:"Poppins","Helvetica Neue",Arial,sans-serif;text-transform:none;
  font-weight:600;letter-spacing:0;font-size:1.0625rem;color:var(--ink);
}
.acc summary::-webkit-details-marker{display:none}
.acc summary:hover{background:var(--surface-2)}
.acc summary::after{content:"+";font-size:1.25rem;line-height:1;color:var(--sup-deep);flex:none}
.acc[open] summary::after{content:"–"}
.acc-body{padding:0 16px 16px;font-size:.9375rem;line-height:1.6;color:var(--ink-2)}
.acc-body p + p{margin-top:10px}

/* review */
.review{background:var(--surface);border:1px solid var(--rule);border-radius:2px;padding:18px}
.stars{color:var(--star);letter-spacing:.08em;font-size:.9375rem}

/* progress / funnel-ish bar used in the notes page */
.bar{height:10px;background:var(--surface-3);border-radius:2px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--sup)}

/* toast */
.toast{
  position:fixed;left:50%;transform:translateX(-50%);bottom:96px;z-index:var(--z-sheet);
  background:var(--harbour);color:var(--on-dark);padding:13px 18px;border-radius:2px;
  font-size:.9375rem;box-shadow:var(--shadow-mid);max-width:90vw;
}
.toast[hidden]{display:none}
@media(min-width:1000px){.toast{bottom:28px}}

/* ============================================================
   LOADING DEVICE
   The logo mark fills with water. Three separate motions run at
   lengths that do not divide into each other, so the combination
   never visibly repeats: the surface scrolls, the whole body tilts
   about the waterline, and the level rises then breathes. The tilt
   is what makes it read as a rocked glass rather than a bar
   sliding up a mask.
   ============================================================ */
.supload{display:inline-block;line-height:0;width:var(--supload-size,132px)}
.supload svg{display:block;width:100%;height:auto}
.supload .sl-pale{fill:var(--sup-wash)}
.supload .sl-body{fill:var(--sup)}
.supload .sl-rise,.supload .sl-tilt,.supload .sl-scroll{transform-box:view-box}

.supload .sl-rise{
  transform:translateY(830px);
  animation:sl-rise 1.7s cubic-bezier(.22,.9,.3,1) forwards,
            sl-breathe 2.8s ease-in-out 1.7s infinite alternate;
}
/* the pivot is the centre of the waterline, where a glass would turn */
.supload .sl-tilt{transform-origin:526.75px 0;animation:sl-tilt 2.6s ease-in-out infinite alternate}
.supload .sl-scroll{animation:sl-scroll 3.1s linear infinite}

@keyframes sl-rise{from{transform:translateY(830px)}to{transform:translateY(2px)}}
@keyframes sl-breathe{from{transform:translateY(38px)}to{transform:translateY(-34px)}}
@keyframes sl-tilt{from{transform:rotate(-3.4deg)}to{transform:rotate(3.4deg)}}
@keyframes sl-scroll{from{transform:translateX(0)}to{transform:translateX(-480px)}}

/* driven by a real progress figure rather than the indeterminate loop.
   No transition: the caller sets the level per frame, and a transition
   would fight it and never quite arrive. */
.supload.is-live .sl-rise{
  animation:none;
  transform:translateY(calc(830px - var(--supload-lvl,0) * 900px));
}

/* the loop stops short of the top so it still reads as working. Once the
   thing being waited for arrives, top it off before it goes. */
.supload.is-done .sl-rise{
  animation:none;transform:translateY(-70px);transition:transform .26s ease-out;
}

@media(prefers-reduced-motion:reduce){
  .supload .sl-tilt,.supload .sl-scroll{animation:none}
  .supload .sl-rise{animation:sl-rise 1.7s ease-out forwards}
}

.supload-overlay{
  position:fixed;inset:0;z-index:var(--z-popup);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  background:var(--paper);animation:sl-fade .18s ease-out;
}
.supload-overlay[hidden]{display:none}
.supload-overlay.is-out{animation:sl-fade .34s ease-in reverse forwards}
@keyframes sl-fade{from{opacity:0}to{opacity:1}}
.supload-cap{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;
  letter-spacing:.08em;font-weight:600;font-size:.875rem;color:var(--muted);
}
@media(min-width:761px){
  .supload-overlay .supload{--supload-size:168px}
}

/* skip link */
.skip{
  position:absolute;left:-9999px;top:0;z-index:var(--z-popup);background:var(--sup);
  color:var(--on-sup);padding:12px 18px;font-weight:600;
}
.skip:focus{left:8px;top:8px}
/* ============================================================
   MOBILE POLISH
   Comfortable tap targets, slightly tighter rhythm, and a few
   components that need a different shape on a small screen.
   ============================================================ */
@media(max-width:760px){
  /* tap targets */
  .pill{min-height:42px;padding:11px 15px}
  /* the three date choices keep their tap height but tuck in sideways, so
     they hold one row on a phone rather than leaving one stranded below */
  .qf-chips{gap:6px}
  .qf-chip{padding-left:11px;padding-right:11px}
  .qf-fieldwrap:has(.qf-clear) .qf-field{padding-right:58px}
  .calnav{width:42px;height:42px}
  .qf-calmon{line-height:42px}
  .qf-clear{width:38px;height:38px}
  .icobtn{width:44px;height:44px}
  .stepper button{width:44px;height:44px}
  .stepper output{line-height:44px}
  .cday{min-height:40px}

  /* legibility */
    .tiny{font-size:.8125rem}

  /* rhythm: a touch tighter so pages do not feel endless on a phone */
  .section{padding:34px 0}
  .section-tight{padding:22px 0}
  .stack-6{gap:26px}
  .hero-in{padding-block:36px 34px}
  .hero .stack-6{gap:28px}
  .entry{padding:18px 16px}
  .entry .stack-4{gap:18px}
  /* a little air between a dark band and the block under it */
  .hero + .section-tight{padding-top:26px}
  /* the display sizes step down: page and product titles share one size here */
  :root{--d1:clamp(2.1rem,8.4vw,2.9rem);--d2:clamp(1.7rem,6.4vw,2.1rem);--act-title:var(--d1)}
  .lede{font-size:1rem}

  /* full-width primary actions read better than floated ones */
  .card-pad > .row-tight > .btn,
  .stack > .row-tight > .btn{flex:1 1 auto}

  /* quick-facts bars: two up rather than four squeezed */
  .fact{flex:1 1 45%;min-width:0}
  .fact:nth-child(2n){border-right:0}
  .fact b{white-space:normal}

  /* tables scroll rather than crush */
  table{font-size:.875rem}

  /* the booking box gets the full width of the screen edge to edge */
  .bookbox-body{padding:14px}
}

@media(max-width:600px){
  .btn{padding:14px 18px;font-size:1rem}
  .btn-lg{padding:16px 22px;font-size:1.0625rem}
  .slot{padding:11px 12px}
}


/* ===== from src/03-panels.html ===== */

/* ============================================================
   COMPARE TRAY
   ============================================================ */
.cmp-open{
  position:fixed;right:14px;bottom:14px;z-index:var(--z-dropdown);
  background:var(--harbour);color:var(--on-dark);border:0;border-radius:999px;
  padding:12px 18px;display:inline-flex;align-items:center;gap:8px;
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;
  font-weight:700;letter-spacing:.05em;font-size:.9375rem;
  box-shadow:var(--shadow-mid);
}
body.has-bar .cmp-open{bottom:82px}
@media(min-width:1000px){body.has-bar .cmp-open{bottom:14px}}
.cmp-open[hidden]{display:none}

.cmp{
  position:fixed;right:0;top:0;bottom:0;width:400px;max-width:100%;z-index:calc(var(--z-sheet) + 3);
  background:var(--surface);border-left:1px solid var(--rule);
  display:flex;flex-direction:column;overflow-y:auto;
  box-shadow:-10px 0 40px rgba(5,24,34,.22);   /* style-ok: a panel on the right edge throws its shadow left */
}
.cmp[hidden]{display:none}
.cmp-head{
  position:sticky;top:0;background:var(--harbour);color:var(--on-dark);
  padding:16px 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;z-index:2;
}
.cmp-head h3{color:var(--white);font-size:1.25rem}
.cmp-body{padding:18px;display:flex;flex-direction:column;gap:22px}
.cmp-grp{display:flex;flex-direction:column;gap:9px}
.cmp-grp > .label{color:var(--ink)}
.cmp-opts{display:flex;flex-direction:column;gap:6px}
.cmp-opt{
  display:flex;gap:10px;align-items:flex-start;padding:11px 13px;
  border:1px solid var(--rule);border-radius:6px;background:var(--surface);
  cursor:pointer;text-align:left;width:100%;transition:border-color .12s,background .12s;
}
.cmp-opt:hover{border-color:var(--ink-2)}
.cmp-opt[aria-pressed="true"]{border-color:var(--sup-deep);border-width:2px;padding:10px 12px;background:var(--sup-wash)}
.cmp-opt b{font-size:.9375rem;font-weight:600;color:var(--ink);display:block;line-height:1.2}
.cmp-opt span{font-size:.8125rem;color:var(--muted);line-height:1.5;display:block;margin-top:2px}
.cmp-dot{
  width:16px;height:16px;border-radius:50%;border:2px solid var(--rule);flex:none;margin-top:2px;
}
.cmp-opt[aria-pressed="true"] .cmp-dot{border-color:var(--sup-deep);background:var(--sup-deep);box-shadow:inset 0 0 0 3px var(--surface)}
.cmp-src{font-size:.75rem;color:var(--muted);font-style:italic}

/* ============================================================
   AVAILABILITY HEATMAP
   ============================================================ */
.heat{display:flex;flex-direction:column;gap:7px}
.heatrow{
  display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;align-items:center;
  border:1px solid var(--rule);border-radius:2px;background:var(--surface);
  padding:9px 11px;cursor:pointer;text-align:left;width:100%;
  transition:border-color .12s;
}
.heatrow:hover{border-color:var(--sup-deep)}
.heatrow[aria-pressed="true"]{border-color:var(--harbour);border-width:2px;padding:8px 10px}
.heatday{display:flex;flex-direction:column;gap:1px;line-height:1.2}
.heatday b{
  font-family:"Barlow Condensed","Helvetica Neue","Arial Narrow",Arial,sans-serif;text-transform:uppercase;
  font-weight:700;font-size:1rem;color:var(--ink);letter-spacing:.05em;
}
.heatday span{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}
.heatcells{display:flex;gap:3px}
.heatcell{
  flex:1;height:34px;border-radius:2px;display:flex;align-items:center;justify-content:center;
  font-size:.75rem;font-weight:600;color:var(--ink);position:relative;
}
.heatcell[data-level="0"]{background:var(--surface-2);color:var(--muted)}
.heatcell[data-level="1"]{background:color-mix(in srgb,var(--sup) 22%,var(--surface-2))}
.heatcell[data-level="2"]{background:color-mix(in srgb,var(--sup) 46%,var(--surface-2))}
.heatcell[data-level="3"]{background:color-mix(in srgb,var(--sup) 72%,var(--surface-2))}
.heatlegend{display:flex;flex-wrap:wrap;gap:12px;font-size:.75rem;color:var(--muted);align-items:center}
.heatkey{width:14px;height:10px;border-radius:2px;display:inline-block;margin-right:5px;vertical-align:-1px}

/* ============================================================
   TEXT SEARCH (Airbnb / Spotify style)
   ============================================================ */
.tsearch{position:relative}
.tsearch input{
  font-size:1.0625rem;padding:19px 56px 19px 20px;border-radius:999px;
  border:1px solid var(--rule);background:var(--surface);
}
.tsearch-go{
  position:absolute;right:7px;top:50%;transform:translateY(-50%);
  width:42px;height:42px;border-radius:50%;border:0;background:var(--sup);
  color:var(--on-sup);display:inline-flex;align-items:center;justify-content:center;
}
.tsearch-go svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2.1;stroke-linecap:round}
.tchips{display:flex;gap:7px;flex-wrap:wrap}
.tchip{
  border:1px solid var(--rule);background:var(--surface);color:var(--ink-2);
  border-radius:999px;padding:7px 14px;font-size:.875rem;cursor:pointer;
}
.tchip:hover{border-color:var(--sup-deep);color:var(--sup-deep)}
.parsed{display:flex;flex-wrap:wrap;gap:6px;align-items:center}

/* ============================================================
   EVENT STREAM (analytics)
   ============================================================ */
.ev-open{
  position:fixed;left:14px;bottom:14px;z-index:var(--z-dropdown);
  background:var(--surface);color:var(--ink-2);border:1px solid var(--rule);
  border-radius:999px;padding:9px 14px;display:inline-flex;align-items:center;gap:7px;
  font-size:.8125rem;box-shadow:var(--shadow-low);
}
body.has-bar .ev-open{bottom:82px}
@media(min-width:1000px){body.has-bar .ev-open{bottom:14px}}
.ev-open[hidden]{display:none}
.ev-panel{
  position:fixed;left:0;bottom:0;right:0;max-height:56vh;z-index:calc(var(--z-sheet) + 4);
  background:var(--surface);border-top:1px solid var(--rule);
  display:flex;flex-direction:column;box-shadow:0 -10px 34px rgba(5,24,34,.2);   /* style-ok: a panel at the foot of the screen throws its shadow upward */
}
@media(min-width:1000px){.ev-panel{right:auto;width:520px;border-right:1px solid var(--rule)}}
.ev-panel[hidden]{display:none}
.ev-head{
  padding:12px 16px;border-bottom:1px solid var(--rule);background:var(--surface-2);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.ev-list{overflow-y:auto;padding:6px 0;font-size:.8125rem}
.ev-row{
  display:grid;grid-template-columns:62px 1fr;gap:10px;padding:8px 16px;
  border-bottom:1px solid var(--rule-soft);align-items:baseline;
}
.ev-row:last-child{border-bottom:0}
.ev-t{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem}
.ev-n{font-weight:600;color:var(--sup-deep);word-break:break-word}
.ev-p{color:var(--muted);font-size:.75rem;word-break:break-word;margin-top:2px}
.ev-empty{padding:20px 16px;color:var(--muted);font-size:.875rem}

/* ============================================================
   HELP / CHAT
   ============================================================ */
.chat-panel{
  position:fixed;right:14px;bottom:70px;width:340px;max-width:calc(100% - 28px);z-index:calc(var(--z-sheet) + 2);
  background:var(--surface);border:1px solid var(--rule);border-radius:12px;
  box-shadow:var(--shadow-mid);overflow:hidden;
}
body.has-bar .chat-panel{bottom:138px}
@media(min-width:1000px){body.has-bar .chat-panel{bottom:70px}}
.chat-panel[hidden]{display:none}
.chat-head{background:var(--harbour);color:var(--on-dark);padding:13px 15px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.chat-body{padding:15px;display:flex;flex-direction:column;gap:11px;max-height:44vh;overflow-y:auto}
.chat-msg{padding:10px 13px;border-radius:12px;font-size:.875rem;line-height:1.5;max-width:88%}
.chat-them{background:var(--surface-2);color:var(--ink);align-self:flex-start;border-bottom-left-radius:2px}
.chat-you{background:var(--sup-wash);color:var(--ink);align-self:flex-end;border-bottom-right-radius:2px}

/* ============================================================
   MISC v2
   ============================================================ */
.person{display:flex;gap:13px;align-items:flex-start}
.person .holding{width:64px;height:64px;flex:none;aspect-ratio:1;border-radius:50%}
.person .holding-cap{display:none}
.kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 14px;font-size:.875rem}
@media(max-width:600px){.kv{grid-template-columns:1fr;gap:2px 0}}
.kv dt{color:var(--muted)}
.kv dd{margin:0;color:var(--ink)}
.code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem;
  background:var(--surface-2);border:1px solid var(--rule);border-radius:2px;
  padding:12px 14px;overflow-x:auto;white-space:pre;color:var(--ink-2);line-height:1.6;
}
.split{display:grid;gap:clamp(14px,2vw,20px);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.split > *{min-width:0}


.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}

/* Mendip Chat (services/chat.php). The chat box sits above the header and
   below the menus, sheets and pop-ups (so the cookie pop-up covers it), and
   lifts clear of the sticky booking bar wherever that bar shows. */
#mendip-chat{--mc-z:25}
body.has-bar #mendip-chat{--mc-bottom:96px}
@media(min-width:1000px){
  body.has-bar #mendip-chat{--mc-bottom:20px}
  body.bar-armed.has-bar #mendip-chat{--mc-bottom:96px}
}
