@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&family=Poppins:wght@500;600;700;800&display=swap');
:root {
  --navy:#06102d;
  --panel:#0b1945;
  --pink:#ff168f;
  --cyan:#14bfff;
  --purple:#9b55ff;
  --teal:#05d4cf;
  --ink:#07102b;
  --muted:#bfc9e3;
  --light:#f6f7fc;
  --line:#dfe3ef;
  --shadow:0 18px 48px rgba(3,9,31,.15)
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  font:16px Nunito,Arial,sans-serif;
  color:#fff;
  background:var(--navy)
}

img {
  display:block;
  max-width:100%
}

a {
  color:inherit;
  text-decoration:none
}

button,input {
  font:inherit
}

.wrap {
  width:min(1240px,calc(100% - 48px));
  margin:auto
}

.narrow {
  max-width:900px
}

.offer {
  height:34px;
  display:grid;
  place-items:center;
  background:linear-gradient(90deg,#6f34f4,var(--pink));
  font:800 12px Poppins;
  letter-spacing:1.5px
}

.siteHeader {
  height:82px;
  position:absolute;
  z-index:10;
  left:0;
  right:0;
  top:34px;
  background:linear-gradient(180deg,rgba(3,9,31,.92),transparent)
}

.nav {
  height:82px;
  display:flex;
  align-items:center;
  gap:28px
}

.brand {
  display:flex;
  align-items:center;
  gap:10px;
  margin-right:auto;
  color:#fff;
  font:700 16px/1 Poppins;
  transition:color .2s ease
}

.brandIcon {
  width:45px;
  height:45px;
  flex-shrink:0
}

.brandIcon img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain
}

.brand em {
  display:block;
  color:#b65bff;
  font-style:normal;
  font-size:16px;
  font-weight:700;
  letter-spacing:3px;
  transition:color .2s ease
}

.nav nav {
  display:flex;
  align-items:center;
  gap:24px;
  font-weight:600;
  font-size:18px
}

.nav nav a:hover {
  color:var(--cyan)
}

.navDropdown {
  position:relative;
  height:82px;
  display:flex;
  align-items:center
}

.dropdownTrigger {
  display:flex;
  align-items:center;
  gap:6px
}

.dropdownTrigger span {
  font-size:16px;
  transition:transform .2s ease
}

.dropdownMenu {
  position:absolute;
  z-index:20;
  top:66px;
  left:50%;
  min-width:180px;
  padding:9px;
  background:#0b1945;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  box-shadow:0 16px 35px rgba(0,0,0,.3);
  opacity:0;
  visibility:hidden;
  transform:translate(-50%,8px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s
}

.dropdownMenu a {
  display:block;
  padding:11px 13px;
  border-radius:8px;
  color:#fff;
  white-space:nowrap
}

.dropdownMenu a:hover {
  color:var(--cyan);
  background:rgba(20,191,255,.1)
}

.navDropdown:hover .dropdownMenu,
.navDropdown:focus-within .dropdownMenu {
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0)
}

.navDropdown:hover .dropdownTrigger span,
.navDropdown:focus-within .dropdownTrigger span {
  transform:rotate(180deg)
}

.book {
  background:var(--pink);
  padding:13px 22px;
  border-radius:10px;
  font-weight:900
}

.compact {
  white-space:nowrap
}

.menuButton {
  display:none;
  background:none;
  border:0;
  color:#fff;
  font-size:25px;
  padding:6px
}

.hero {
  min-height:620px;
  position:relative;
  overflow:hidden;
  margin-bottom:24px
}

.heroImage {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center right
}

.hero:before {
  content:"";
  position:absolute;
  z-index:1;
  inset:0;
  background:linear-gradient(90deg,#06102d 0%,rgba(6,16,45,.97) 30%,rgba(6,16,45,.46) 60%,rgba(6,16,45,.04) 100%)
}

.hero:after {
  content:"";
  position:absolute;
  z-index:1;
  inset:auto 0 0;
  height:100px;
  background:linear-gradient(transparent,var(--navy))
}

.heroContent {
  position:relative;
  z-index:2;
  padding-top:150px;
  width:610px
}

.eyebrow {
  font:700 12px Poppins;
  letter-spacing:3.5px;
  text-transform:uppercase;
  margin-bottom:15px;
  color:var(--cyan)
}

h1,h2,h3 {
  font-family:Poppins,sans-serif
}

h1 {
  font-size:58px;
  line-height:1.04;
  margin:0 0 20px;
  letter-spacing:-2px
}

.gradient {
  background:linear-gradient(90deg,#16c5ff,#9a67ff,#ff31ad);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent
}

.hero p {
  font-size:18px;
  line-height:1.6;
  color:#eef2ff;
  max-width:570px
}

.actions {
  display:flex;
  gap:14px;
  align-items:center;
  margin-top:25px
}

.btn {
  padding:15px 26px;
  border-radius:11px;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  transition:.2s
}

.btn:hover {
  transform:translateY(-2px)
}

.btnPrimary {
  background:var(--pink);
  box-shadow:0 10px 28px rgba(255,22,143,.27)
}

.btnGhost {
  border-color:rgba(255,255,255,.72);
  background:rgba(6,16,45,.25)
}

.btnDark {
  background:var(--navy);
  color:#fff
}

.heroProof {
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:27px;
  color:#e2e8fb;
  font-size:14px
}

.stars {
  color:#ffd545;
  letter-spacing:2px
}

.benefits {
  background:#fff;
  color:var(--ink)
}

.benefitGrid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  min-height:138px;
  align-items:center
}

.benefit {
  display:flex;
  gap:16px;
  align-items:center;
  padding:20px 24px;
  border-right:1px solid #e4e5eb
}

.benefit:last-child {
  border:0
}

.ico {
  flex:0 0 58px;
  height:58px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:26px;
  background:#ecd7ff
}

.benefit:nth-child(2) .ico {
  background:#d8f3ff
}

.benefit:nth-child(3) .ico {
  background:#ffdcec
}

.benefit:nth-child(4) .ico {
  background:#daf8f6
}

.benefit b {
  font:800 15px Poppins;
  display:block;
  margin-bottom:5px
}

.benefit small {
  font-size:14px;
  color:#43506b;
  line-height:1.35;
  display:block
}

.section {
  padding:90px 0
}

.dark,.packages,.reviews {
  background:radial-gradient(circle at 50% 0,#102861 0,#06102d 48%)
}

.sectionHead {
  text-align:center;
  max-width:760px;
  margin:0 auto 42px
}

.sectionHead.left {
  text-align:left;
  margin-left:0
}

.sectionHead h2,.copy h2 {
  font-size:42px;
  line-height:1.15;
  margin:0 0 16px;
  letter-spacing:-1px
}

.sectionHead p {
  color:var(--muted);
  font-size:17px;
  line-height:1.65;
  margin:0
}

.cards {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px
}

.card {
  border:1px solid #4255ae;
  border-radius:16px;
  overflow:hidden;
  background:var(--panel);
  box-shadow:0 14px 30px rgba(0,0,0,.14);
  transition:.2s
}

.card:hover {
  transform:translateY(-7px);
  border-color:var(--cyan)
}

.cardImg {
  display:block;
  width:100%;
  height:190px;
  object-fit:cover;
  object-position:center
}

.cardBody {
  display:grid;
  grid-template-columns:45px 1fr 34px;
  gap:11px;
  align-items:center;
  padding:17px
}

.round {
  width:43px;
  height:43px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#8b3cff
}

.round.cyan {
  background:var(--cyan)
}

.round.pink {
  background:var(--pink)
}

.round.teal {
  background:var(--teal)
}

.card h3 {
  font-size:15px;
  margin:0 0 5px
}

.card p {
  margin:0;
  color:#c8d0e5;
  font-size:14px;
  line-height:1.35
}

.arrow {
  border:1px solid #6d75c6;
  border-radius:50%;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  font-size:23px
}

.light {
  background:var(--light);
  color:var(--ink)
}

.split {
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:75px;
  align-items:center
}

.mediaFrame {
  position:relative
}

.mediaFrame img {
  position:relative;
  width:100%;
  height:490px;
  object-fit:cover;
  border-radius:22px;
  box-shadow:var(--shadow)
}

.mediaFrame:before {
  content:"";
  position:absolute;
  inset:-14px 45% 45% -14px;
  border:2px solid var(--purple);
  border-radius:25px
}

.floatingBadge {
  position:absolute;
  right:-25px;
  bottom:32px;
  background:#fff;
  color:var(--ink);
  padding:17px 22px;
  border-radius:14px;
  box-shadow:var(--shadow);
  font-weight:800
}

.floatingBadge strong {
  display:block;
  color:var(--pink);
  font:800 24px Poppins
}

.copy .eyebrow,.how .eyebrow,.faq .eyebrow {
  color:#7d36e8
}

.copy p {
  font-size:17px;
  line-height:1.7;
  color:#43506b
}

.ticks {
  padding:0;
  list-style:none;
  margin:25px 0
}

.ticks li {
  margin:13px 0;
  padding-left:30px;
  position:relative;
  font-weight:700
}

.ticks li:before {
  content:"✓";
  position:absolute;
  left:0;
  color:var(--pink);
  font-weight:900
}

.packageGrid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px
}

.packageGridTwo {
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:820px;
  margin:22px auto 0
}

.package {
  position:relative;
  background:#fff;
  color:var(--ink);
  border-radius:18px;
  padding:33px;
  box-shadow:var(--shadow)
}

.package.featured {
  background:linear-gradient(160deg,#122965,#0b173e);
  color:#fff;
  border:1px solid #8c56ff;
  transform:translateY(-12px)
}

.popular {
  position:absolute;
  right:20px;
  top:18px;
  background:var(--pink);
  padding:6px 10px;
  border-radius:20px;
  font:800 10px Poppins;
  letter-spacing:1px
}

.packageTag {
  color:#7c36e6;
  font:800 12px Poppins;
  text-transform:uppercase;
  letter-spacing:2px
}

.package h3 {
  font-size:30px;
  margin:12px 0 4px
}

.price {
  font:800 29px Poppins;
  color:var(--pink)
}

.price small {
  font:700 13px Nunito;
  color:#68738b
}

.featured .price small,.featured>p {
  color:#cbd4e9
}

.package>p {
  color:#59647c;
  line-height:1.55;
  min-height:74px
}

.package ul {
  list-style:none;
  padding:0;
  margin:25px 0
}

.package li {
  padding:9px 0 9px 26px;
  border-bottom:1px solid #e8eaf1;
  position:relative
}

.package li:before {
  content:"✓";
  position:absolute;
  left:0;
  color:var(--cyan);
  font-weight:900
}

.featured li {
  border-color:rgba(255,255,255,.12)
}

.package .btn {
  width:100%
}

.packageBtnWhite {
  background:#ff168f;
  border-color:#ff168f;
  color:#fff
}

.packageBtnWhite:hover {
  background:#e6007e;
  border-color:#e6007e;
  color:#fff
}

.packageBtnWhite {
  color:#fff
}

.packageNote {
  text-align:center;
  margin-top:32px;
  color:#cbd4e9
}

.packageNote strong {
  color:#fff
}

.how,.faq {
  background:#fff;
  color:var(--ink)
}

.steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:50px
}

.steps article {
  text-align:center;
  position:relative
}

.steps article:not(:last-child):after {
  content:"";
  position:absolute;
  top:37px;
  left:70%;
  width:60%;
  border-top:2px dashed #d5d9e6
}

.steps span {
  position:relative;
  z-index:1;
  width:74px;
  height:74px;
  margin:auto;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(135deg,var(--purple),var(--pink));
  font:800 18px Poppins;
  color: white;
}

.steps h3 {
  margin:20px 0 8px
}

.steps p {
  color:#657089;
  line-height:1.6;
  margin:0
}

.gallery {
  background:#071334
}

.galleryGrid {
  display:grid;
  grid-template-columns:1.35fr .65fr;
  grid-template-rows:220px 220px;
  gap:16px
}

.galleryGrid figure {
  margin:0;
  overflow:hidden;
  border-radius:16px
}

.galleryGrid .wide {
  grid-row:1/3
}

.galleryGrid img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:.4s
}

.galleryGrid figure:hover img {
  transform:scale(1.035)
}

.reviewGrid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px
}

.reviewGrid blockquote {
  margin:0;
  background:rgba(255,255,255,.06);
  border:1px solid #354885;
  border-radius:16px;
  padding:28px
}

.reviewGrid p {
  font-size:17px;
  line-height:1.65;
  color:#e7ebf8
}

.reviewGrid footer {
  display:flex;
  flex-direction:column;
  gap:3px
}

.reviewGrid footer span {
  color:var(--muted);
  font-size:14px
}

.coverage {
  position:relative;
  padding:58px 0;
  background:linear-gradient(115deg,#6731df,var(--pink))
}

.coverageTabs {
  position:absolute;
  z-index:3;
  top:calc(100% + 1px);
  left:50%;
  display:flex;
  width:max-content;
  max-width:calc(100% - 30px);
  gap:1px;
  background:transparent;
  transform:translateX(-50%)
}

.coverageTabs a {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:12px 24px;
  background:#0b1945;
  color:#fff;
  font-weight:800;
  font-size:14px;
  white-space:nowrap;
  transition:background .2s ease,color .2s ease
}

.coverage + .faq {
  padding-top:160px
}

.coverageTabs a:first-child {
  border-radius:0 0 0 10px
}

.coverageTabs a:last-child {
  border-radius:0 0 10px 0
}

.coverageTabs a:hover,
.coverageTabs a:focus-visible {
  background:#ff168f;
  color:#fff
}

.coverageInner {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:60px;
  align-items:center
}

.coverage h2 {
  font-size:34px;
  margin:0 0 10px
}

.coverage p {
  margin:0;
  color:#f5eaff
}

.coverage .eyebrow {
  color:#fff
}

.postcode {
  background:#fff;
  color:var(--ink);
  padding:22px;
  border-radius:15px
}

.postcode label {
  display:block;
  font-weight:900;
  margin-bottom:9px
}

.postcode div {
  display:flex
}

.postcode input {
  min-width:0;
  flex:1;
  padding:14px;
  border:1px solid #d6d9e3;
  border-radius:9px 0 0 9px;
  outline:none
}

.postcode button {
  border:0;
  padding:0 20px;
  background:var(--navy);
  color:#fff;
  font-weight:900;
  border-radius:0 9px 9px 0
}

.postcodeResult {
  display:none;
  margin:14px 0 0;
  padding:12px 14px;
  border-radius:8px;
  font-weight:800;
  line-height:1.4
}

.postcodeResult.show {
  display:block
}

.postcodeResult.success {
  color:#075e45;
  background:#dff8ee
}

.postcodeResult.outside {
  color:#744500;
  background:#fff1d5
}

.postcodeResult.error {
  color:#9b1c31;
  background:#ffe2e8
}

.postcode button:disabled {
  cursor:wait;
  opacity:.7
}

.faq details {
  border-bottom:1px solid var(--line)
}

.faq summary {
  list-style:none;
  cursor:pointer;
  padding:21px 0;
  font:700 17px Poppins;
  display:flex;
  justify-content:space-between;
  gap:20px
}

.faq summary::-webkit-details-marker {
  display:none
}

.faq summary span {
  font-size:25px;
  color:var(--pink)
}

.faq details[open] summary span {
  transform:rotate(45deg)
}

.faq details p {
  margin:-5px 0 22px;
  color:#5b6680;
  line-height:1.65;
  max-width:760px
}

.finalCta {
  padding:72px 0;
  background:linear-gradient(rgba(6,16,45,.86),rgba(6,16,45,.92)),url('gaming-party-hero.jpg') center 45%/cover
}

.finalInner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:60px
}

.finalInner>div:first-child {
  max-width:720px
}

.finalCta h2 {
  font-size:38px;
  margin:0 0 12px
}

.finalCta p {
  color:#dfe5f6;
  font-size:17px;
  line-height:1.6;
  margin:0
}

.footer {
  background:#03091f;
  padding:64px 0 24px
}

.footerTop {
  display:grid;
  grid-template-columns:1.55fr repeat(3,1fr);
  gap:55px
}

.footerBrand p {
  color:#99a7c7;
  line-height:1.6;
  max-width:370px
}

.footerTop h3 {
  font-size:15px;
  margin:5px 0 18px
}

.footerTop>div:not(:first-child)>a {
  display:block;
  color:#9eabc8;
  margin:11px 0;
  font-size:14px
}

.footerTop a:hover {
  color:var(--cyan)
}

.footerBrand .brand:hover {
  color:var(--cyan)
}

.footerBrand .brand:hover em {
  color:var(--pink)
}

.footerBrand .brandIcon img {
  transition:transform .2s ease,filter .2s ease
}

.footerBrand .brand:hover .brandIcon img {
  transform:scale(1.06);
  filter:drop-shadow(0 0 8px rgba(155,85,255,.7))
}

.socials {
  display:flex;
  gap:10px;
  margin-top:20px
}

.socials a {
  width:36px;
  height:36px;
  border:1px solid #34405f;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#a8b3cc
}

.footerBottom {
  border-top:1px solid #26304b;
  margin-top:48px;
  padding-top:22px;
  display:flex;
  justify-content:space-between;
  gap:30px;
  color:#7785a6;
  font-size:13px
}

.footerBottom div {
  display:flex;
  gap:22px
}

@media(max-width:1050px) {
  .nav nav {
    display:none
  }

  .menuButton {
    display:block
  }

  .cards,.benefitGrid {
    grid-template-columns:repeat(2,1fr)
  }

  .benefit:nth-child(2) {
    border-right:0
  }

  .split {
    gap:45px
  }

  .footerTop {
    grid-template-columns:1.3fr repeat(2,1fr)
  }

  .footerTop>div:last-child {
    display:none
  }

}

@media(max-width:760px) {
  .wrap {
    width:min(100% - 30px,1240px)
  }

  .offer {
    font-size:10px;
    text-align:center
  }

  .siteHeader,.nav {
    height:72px
  }

  .brand {
    font-size:15px
  }

  .brandIcon {
    width:40px;
    height:40px
  }

  .compact {
    font-size:13px;
    padding:10px 13px
  }

  .hero {
    min-height:680px
  }

  .heroImage {
    object-position:58% center
  }

  .hero:before {
    background:linear-gradient(180deg,rgba(6,16,45,.52),#06102d 82%)
  }

  .heroContent {
    width:100%;
    padding-top:125px
  }

  h1 {
    font-size:42px
  }

  .hero p {
    font-size:16px
  }

  .heroProof {
    flex-wrap:wrap
  }

  .benefitGrid,.cards,.packageGrid,.steps,.reviewGrid,.coverageInner,.footerTop {
    grid-template-columns:1fr
  }

  .benefit {
    border-right:0;
    border-bottom:1px solid #e4e5eb
  }

  .section {
    padding:65px 0
  }

  .sectionHead h2,.copy h2 {
    font-size:33px
  }

  .cardImg {
    height:215px
  }

  .split {
    grid-template-columns:1fr;
    gap:42px
  }

  .mediaFrame img {
    height:360px
  }

  .floatingBadge {
    right:12px
  }

  .package.featured {
    transform:none
  }

  .package>p {
    min-height:0
  }

  .steps {
    gap:34px
  }

  .steps article:not(:last-child):after {
    display:none
  }

  .galleryGrid {
    grid-template-columns:1fr;
    grid-template-rows:250px 180px 180px
  }

  .galleryGrid .wide {
    grid-row:auto
  }

  .coverage {
    padding:50px 0
  }

  .coverage h2,.finalCta h2 {
    font-size:30px
  }

  .postcode div {
    flex-direction:column;
    gap:8px
  }

  .postcode input,.postcode button {
    border-radius:9px;
    padding:14px
  }

  .finalInner {
    display:block
  }

  .finalInner .actions {
    margin-top:26px
  }

  .footerTop {
    gap:32px
  }

  .footerTop>div:last-child {
    display:block
  }

  .footerBottom {
    flex-direction:column
  }

  .footerBottom div {
    flex-wrap:wrap
  }

  .actions {
    flex-wrap:wrap
  }

  .coverage {
  margin-bottom:113px
  }

  .coverageTabs {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    width:calc(100% - 30px)
  }

  .coverageTabs a {
    min-height:52px;
    padding:10px;
    text-align:center;
    white-space:normal
  }

  .coverageTabs a:first-child {
    border-radius:0
  }

  .coverageTabs a:last-child {
    border-radius:0 0 10px 0
  }

  .coverageTabs a:nth-child(3) {
    border-radius:0 0 0 10px
  }

}

@media(max-width:440px) {
  .book.compact {
    display:none
  }

  .hero h1 {
    font-size:37px
  }

  .actions .btn {
    width:100%
  }

  .benefit {
    padding:18px 8px
  }

  .footerBottom div {
    display:grid;
    gap:10px
  }

}

/* Location landing pages */
.locationHero {
  padding:145px 0 82px;
  background:radial-gradient(circle at 82% 20%,rgba(20,191,255,.18),transparent 30%),#06102d;
  overflow:hidden
}

.locationHeroGrid {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:64px;
  align-items:center
}

.locationHeroCopy>p {
  max-width:600px;
  color:#dfe5f6;
  font-size:18px;
  line-height:1.7
}

.locationHeroVisual {
  position:relative
}

.locationHeroVisual img {
  display:block;
  width:100%;
  height:480px;
  object-fit:cover;
  border-radius:28px;
  box-shadow:0 28px 70px rgba(0,0,0,.34)
}

.locationHeroBadge {
  position:absolute;
  left:-28px;
  bottom:28px;
  padding:18px 22px;
  border-radius:14px;
  background:var(--pink);
  box-shadow:0 14px 32px rgba(255,22,143,.3)
}

.locationHeroBadge strong,
.locationHeroBadge span {
  display:block
}

.locationHeroBadge strong {
  font:800 16px Poppins
}

.locationHeroBadge span {
  margin-top:3px;
  font-size:12px
}

.locationEventGrid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px
}

.locationEventGrid a {
  padding:30px;
  border:1px solid #e4e6ef;
  border-radius:20px;
  background:#fff;
  color:var(--navy);
  box-shadow:0 14px 38px rgba(6,16,45,.07);
  transition:.25s
}

.locationEventGrid a:hover {
  transform:translateY(-5px);
  border-color:var(--pink)
}

.locationEventGrid span {
  font-size:30px
}

.locationEventGrid h3 {
  margin:18px 0 9px
}

.locationEventGrid p {
  margin:0;
  color:#66708a;
  line-height:1.6
}

.locationPackageGrid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:15px
}

.locationPackageGrid a {
  padding:26px 22px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  background:rgba(255,255,255,.06);
  transition:.25s
}

.locationPackageGrid a:hover {
  transform:translateY(-5px);
  border-color:var(--pink);
  background:rgba(255,22,143,.11)
}

.locationPackageGrid small {
  color:var(--cyan);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:1px
}

.locationPackageGrid h3 {
  margin:12px 0 4px
}

.locationPackageGrid strong {
  color:var(--pink);
  font:800 26px Poppins
}

.locationPackageGrid p {
  color:#c8d1e7;
  line-height:1.5
}

.areaGrid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px
}

.areaGrid article {
  padding:28px;
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 34px rgba(6,16,45,.07);
  border-left:4px solid var(--cyan)
}

.areaGrid b {
  color:var(--pink);
  font:800 14px Poppins
}

.areaGrid h3 {
  margin:10px 0 6px;
  color:var(--navy)
}

.areaGrid p {
  margin:0;
  color:#66708a
}

.areaGrid p a {
  color:var(--pink);
  font-weight:700;
  text-decoration:underline
}

.areaGrid p a:hover {
  color:var(--cyan)
}

@media(max-width:1000px) {
  .locationEventGrid {
    grid-template-columns:repeat(2,1fr)
  }

  .locationPackageGrid {
    grid-template-columns:repeat(3,1fr)
  }
}

@media(max-width:800px) {
  .locationHeroGrid {
    grid-template-columns:1fr;
    gap:40px
  }

  .locationHeroVisual {
    max-width:700px
  }

  .areaGrid {
    grid-template-columns:repeat(2,1fr)
  }
}

@media(max-width:600px) {
  .locationHero {
    padding:120px 0 62px
  }

  .locationHeroCopy>p {
    font-size:16px
  }

  .locationHeroVisual img {
    height:320px;
    border-radius:20px
  }

  .locationHeroBadge {
    left:12px;
    bottom:12px
  }

  .locationEventGrid,
  .locationPackageGrid,
  .areaGrid {
    grid-template-columns:1fr
  }
}

/* How It Works hub */
.processHero {
  padding:125px 0 76px;
  color:#fff;
  background:linear-gradient(135deg,#06102d 0%,#111b43 62%,#29185b 100%)
}

.processHeroInner {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  align-items:center;
  gap:64px
}

.processHero h1 {
  margin:18px 0;
  max-width:760px;
  font-size:clamp(42px,5.5vw,72px);
  line-height:1.04
}

.processHeroCopy>p {
  max-width:680px;
  font-size:18px;
  line-height:1.75;
  color:#d5daed
}

.processHero img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.14);
  border-radius:26px;
  box-shadow:0 26px 65px rgba(0,0,0,.34)
}

.processSection {
  padding:88px 0
}

.processTimeline {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:38px
}

.processTimeline article {
  display:flex;
  gap:20px;
  padding:27px;
  border:1px solid #e6e8f1;
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 35px rgba(6,16,45,.07)
}

.processTimeline article>span,.guideCard>span {
  display:grid;
  flex:0 0 46px;
  width:46px;
  height:46px;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:linear-gradient(135deg,var(--pink),#7435e8);
  font:800 13px Poppins
}

.processTimeline h3,.guideCard h3 {
  margin:0 0 7px
}

.processTimeline h3 {
  color:#06102d
}

.processTimeline p,.guideCard p {
  margin:0;
  line-height:1.65
}

.processTimeline p {
  color:#596078
}

.guideGrid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:38px
}

.guideCard {
  display:flex;
  align-items:flex-start;
  gap:17px;
  min-height:190px;
  padding:25px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  color:#fff;
  background:rgba(255,255,255,.06);
  transition:.25s ease
}

.guideCard:hover {
  transform:translateY(-5px);
  border-color:var(--pink);
  background:rgba(255,22,143,.1)
}

.guideCard div {
  flex:1
}

.guideCard p {
  color:#cbd1e5
}

.guideCard b {
  color:var(--pink);
  font-size:28px;
  line-height:1
}

.responsibilityGrid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px
}

.responsibilityGrid article {
  padding:34px;
  border:1px solid #e4e6ef;
  border-radius:20px;
  background:#fff;
  box-shadow:0 14px 40px rgba(6,16,45,.07)
}

@media(max-width:900px) {
  .processHeroInner,.guideGrid {
    grid-template-columns:1fr
  }

  .processHero img {
    max-height:480px
  }
}

@media(max-width:680px) {
  .processHero {
    padding:110px 0 62px
  }

  .processHeroInner {
    gap:38px
  }

  .processTimeline,.responsibilityGrid {
    grid-template-columns:1fr
  }

  .processSection {
    padding:68px 0
  }
}

/* What Gaming Events hub hero */
.hubHero {
  position:relative;
  overflow:hidden;
  padding:155px 0 95px;
  background:radial-gradient(circle at 82% 35%,rgba(155,85,255,.24),transparent 32%),linear-gradient(135deg,#06102d 0%,#0b1945 100%)
}

.hubHero:after {
  content:"";
  position:absolute;
  right:-120px;
  bottom:-180px;
  width:430px;
  height:430px;
  border:1px solid rgba(20,191,255,.16);
  border-radius:50%
}

.hubHeroGrid {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:70px;
  align-items:center
}

.hubHeroCopy h1 {
  margin:0 0 22px
}

.hubHeroCopy>p {
  max-width:590px;
  margin:0;
  color:#dfe5f6;
  font-size:18px;
  line-height:1.65
}

.hubHeroPoints {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:26px
}

.actionsCenter {
  justify-content:center
}

.breadcrumbs {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 22px;
  color:#aebbd8;
  font-size:13px;
  font-weight:700
}

.breadcrumbs a:hover {
  color:var(--cyan)
}

.breadcrumbs span[aria-current="page"] {
  color:#fff
}

.hubHeroPoints span {
  padding:8px 13px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:30px;
  background:rgba(255,255,255,.06);
  color:#dfe7fa;
  font-size:13px;
  font-weight:800
}

.hubHeroVisual {
  position:relative;
  padding:0 0 38px 42px
}

.hubHeroMain {
  width:100%;
  height:430px;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.18);
  border-radius:28px;
  box-shadow:0 28px 70px rgba(0,0,0,.34)
}

.hubHeroAccent {
  position:absolute;
  left:0;
  bottom:0;
  width:210px;
  height:145px;
  object-fit:cover;
  border:7px solid #0b1945;
  border-radius:20px;
  box-shadow:0 18px 35px rgba(0,0,0,.3)
}

.hubHeroBadge {
  position:absolute;
  right:-12px;
  top:28px;
  padding:14px 17px;
  border-radius:13px 0 0 13px;
  background:var(--pink);
  box-shadow:0 12px 28px rgba(255,22,143,.28)
}

.hubHeroBadge strong,.hubHeroBadge span {
  display:block
}

.hubHeroBadge strong {
  font:800 15px Poppins
}

.hubHeroBadge span {
  margin-top:2px;
  font-size:12px
}

@media(max-width:900px) {
  .hubHeroGrid {
    grid-template-columns:1fr;
    gap:45px
  }

  .hubHeroVisual {
    max-width:700px
  }
}

@media(max-width:760px) {
  .hubHero {
    padding:125px 0 68px
  }

  .hubHeroCopy h1 {
    font-size:42px
  }

  .hubHeroCopy>p {
    font-size:16px
  }

  .hubHeroVisual {
    padding:0 0 45px 20px
  }

  .hubHeroMain {
    height:330px;
    border-radius:20px
  }

  .hubHeroAccent {
    width:155px;
    height:110px
  }

  .hubHeroBadge {
    right:0;
    top:18px
  }
}

@media(max-width:440px) {
  .hubHeroCopy h1 {
    font-size:36px
  }

  .hubHeroMain {
    height:270px
  }

  .hubHeroBadge {
    display:none
  }
}

/* Event supporting pages */
.eventArticleHero {
  position:relative;
  padding:145px 0 90px;
  overflow:hidden;
  background:linear-gradient(135deg,#06102d 0%,#101d4d 62%,#2b1760 100%)
}

.eventArticleHero:after {
  content:"";
  position:absolute;
  top:40px;
  right:-150px;
  width:420px;
  height:420px;
  border:1px solid rgba(20,191,255,.18);
  border-radius:50%
}

.eventArticleHeroInner {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:75px;
  align-items:end
}

.eventArticleHero h1 {
  margin:0;
  font-size:62px;
  line-height:1.05
}

.eventArticleHero p {
  margin:0;
  color:#dce4f7;
  font-size:18px;
  line-height:1.7
}

.eventArticleHero .actions {
  margin-top:28px
}

.eventFacts {
  background:#fff;
  border-bottom:1px solid #e5e8f0
}

.eventFactsGrid {
  display:grid;
  grid-template-columns:repeat(4,1fr)
}

.eventFactsGrid div {
  padding:27px 24px;
  border-right:1px solid #e5e8f0
}

.eventFactsGrid div:last-child {
  border-right:0
}

.eventFacts strong,
.eventFacts span {
  display:block
}

.eventFacts strong {
  color:var(--pink);
  font:800 28px Poppins
}

.eventFacts span {
  margin-top:3px;
  color:#67718a;
  font-size:13px;
  font-weight:700
}

.eventEditorial {
  background:#f5f6fa
}

.eventEditorialGrid {
  display:grid;
  grid-template-columns:350px 1fr;
  gap:70px;
  align-items:start
}

.eventSideCard {
  position:sticky;
  top:120px;
  padding:34px;
  border-radius:22px;
  background:var(--navy);
  color:#fff
}

.eventSideCard h2 {
  font-size:29px
}

.eventSideCard .ticks {
  margin:25px 0
}

.eventArticleCopy {
  max-width:760px
}

.eventArticleCopy h2 {
  font-size:43px
}

.eventArticleCopy h3 {
  margin-top:32px;
  font-size:25px
}

.eventArticleCopy p {
  color:#5e6880;
  font-size:17px;
  line-height:1.8
}

.eventArticleCopy blockquote {
  margin:32px 0;
  padding:25px 28px;
  border-left:4px solid var(--pink);
  background:#fff;
  color:var(--navy);
  font:700 20px/1.55 Poppins
}

.eventFlowList {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  border-radius:20px;
  background:rgba(255,255,255,.14)
}

.eventFlowList article {
  padding:32px;
  background:#0c1739
}

.eventFlowList span {
  display:inline-grid;
  place-items:center;
  width:45px;
  height:45px;
  border-radius:50%;
  background:var(--pink);
  font-weight:900
}

.eventFlowList h3 {
  margin:24px 0 10px
}

.eventFlowList p {
  margin:0;
  color:#bcc7df;
  line-height:1.6
}

.eventChoice {
  background:#fff
}

.eventPackageRow {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:14px
}

.eventPackageRow a {
  padding:26px 22px;
  border:1px solid #e1e4ed;
  border-radius:18px;
  color:var(--navy);
  transition:.25s
}

.eventPackageRow a:hover {
  transform:translateY(-5px);
  border-color:var(--pink);
  box-shadow:0 15px 35px rgba(6,16,45,.09)
}

.eventPackageRow small,
.eventPackageRow h3,
.eventPackageRow strong,
.eventPackageRow span {
  display:block
}

.eventPackageRow small {
  color:#68728a;
  font-weight:800;
  text-transform:uppercase
}

.eventPackageRow h3 {
  margin:14px 0 4px
}

.eventPackageRow strong {
  color:var(--pink);
  font:800 28px Poppins
}

.eventPackageRow span {
  margin-top:4px;
  color:#68728a;
  font-size:13px
}

.eventRelated {
  background:#f5f6fa
}

.eventRelatedGrid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px
}

.eventRelatedGrid a {
  padding:28px;
  border-radius:18px;
  background:#fff;
  color:var(--navy);
  box-shadow:0 10px 30px rgba(6,16,45,.06)
}

.eventRelatedGrid span {
  color:var(--pink);
  font-weight:900
}

.eventRelatedGrid h3 {
  margin:12px 0 7px
}

.eventRelatedGrid p {
  margin:0;
  color:#68728a
}

@media(max-width:1000px) {
  .eventArticleHeroInner {
    grid-template-columns:1fr;
    gap:35px
  }

  .eventEditorialGrid {
    grid-template-columns:1fr
  }

  .eventSideCard {
    position:static
  }

  .eventFlowList {
    grid-template-columns:repeat(2,1fr)
  }

  .eventPackageRow {
    grid-template-columns:repeat(3,1fr)
  }
}

@media(max-width:680px) {
  .eventArticleHero {
    padding:120px 0 65px
  }

  .eventArticleHero h1 {
    font-size:42px
  }

  .eventFactsGrid {
    grid-template-columns:repeat(2,1fr)
  }

  .eventFactsGrid div:nth-child(2) {
    border-right:0
  }

  .eventEditorialGrid {
    gap:40px
  }

  .eventArticleCopy h2 {
    font-size:34px
  }

  .eventFlowList,
  .eventPackageRow,
  .eventRelatedGrid {
    grid-template-columns:1fr
  }
}

/* Event page heading spacing and colours */
.eventArticleHero h1 {
  line-height:1.12
}

.eventSideCard h2 {
  color:#fff;
  line-height:1.25
}

.eventArticleCopy h2 {
  color:var(--navy);
  line-height:1.2
}

.eventArticleCopy h3 {
  color:var(--navy);
  line-height:1.3
}

.eventFlowList h3 {
  line-height:1.3
}

.eventRelated .sectionHead h2,
.packages .sectionHead h2 {
  line-height:1.2
}

.eventRelated .sectionHead h2,
.eventRelatedGrid h3 {
  color:var(--navy)
}

.eventRelatedGrid h3 {
  line-height:1.3
}

.package h3 {
  line-height:1.25
}

/* Links to the other event hubs */
.eventHubLinks {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px
}

.eventHubLinks a {
  padding:32px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:20px;
  background:rgba(255,255,255,.06);
  color:#fff;
  transition:.25s
}

.eventHubLinks a:hover {
  transform:translateY(-5px);
  border-color:var(--pink);
  background:rgba(255,22,143,.1)
}

.eventHubLinks span {
  color:var(--cyan);
  font-size:12px;
  font-weight:800;
  letter-spacing:1.5px;
  text-transform:uppercase
}

.eventHubLinks h3 {
  margin:16px 0 10px;
  color:#fff;
  line-height:1.25
}

.eventHubLinks p {
  margin:0 0 20px;
  color:#c4cee5;
  line-height:1.65
}

.eventHubLinks b {
  color:var(--pink);
  font-size:14px
}

@media(max-width:800px) {
  .eventHubLinks {
    grid-template-columns:1fr
  }
}

/* About page */
.aboutHero {
  position:relative;
  overflow:hidden;
  padding:145px 0 90px;
  background:var(--navy);
  color:#fff
}

.aboutHero:after {
  content:"";
  position:absolute;
  right:-160px;
  bottom:-260px;
  width:620px;
  height:620px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:50%;
  box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.02)
}

.aboutHero .breadcrumbs {
  position:relative;
  z-index:1;
  margin-bottom:70px
}

.aboutHeroGrid {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
  gap:90px;
  align-items:end
}

.aboutHero h1 {
  max-width:850px;
  margin:16px 0 0;
  color:#fff;
  font-size:clamp(54px,7vw,96px);
  line-height:.98;
  letter-spacing:-4px
}

.aboutHeroIntro {
  padding:0 0 8px 32px;
  border-left:1px solid rgba(255,255,255,.2)
}

.aboutHeroIntro p {
  margin:0 0 28px;
  color:#c8d1e5;
  font-size:19px;
  line-height:1.75
}

.aboutManifesto {
  padding:95px 0;
  background:#fff
}

.aboutManifesto,
.aboutOrigin,
.aboutEvents,
.aboutTestimonials {
  font-family:Nunito,Arial,sans-serif
}

.aboutManifesto h1,
.aboutManifesto h2,
.aboutManifesto h3,
.aboutOrigin h1,
.aboutOrigin h2,
.aboutOrigin h3,
.aboutEvents h1,
.aboutEvents h2,
.aboutEvents h3,
.aboutTestimonials h1,
.aboutTestimonials h2,
.aboutTestimonials h3,
.aboutManifestoCopy .aboutLead,
.aboutPullquote p {
  font-family:Poppins,sans-serif
}

.aboutManifestoGrid {
  display:grid;
  grid-template-columns:280px 1fr;
  gap:90px
}

.aboutManifestoLabel {
  display:flex;
  flex-direction:column;
  gap:12px;
  padding-top:12px
}

.aboutManifestoLabel span {
  color:var(--pink);
  font-size:12px;
  font-weight:800;
  letter-spacing:1.7px;
  text-transform:uppercase
}

.aboutManifestoLabel strong {
  color:var(--navy);
  font-size:22px;
  line-height:1.3
}

.aboutManifestoCopy {
  max-width:820px
}

.aboutManifestoCopy p {
  color:#647087;
  font-size:17px;
  line-height:1.8
}

.aboutManifestoCopy .aboutLead {
  margin-top:0;
  color:var(--navy);
  font-size:clamp(28px,3.2vw,44px);
  font-weight:800;
  line-height:1.25;
  letter-spacing:-1.3px
}

.aboutStoryVisual {
  margin-top:70px
}

.aboutStoryVisual img {
  width:100%;
  height:clamp(330px,46vw,620px);
  border-radius:26px;
  object-fit:cover;
  object-position:center;
  box-shadow:var(--shadow)
}

.aboutOrigin {
  background:#f5f7fb
}

.aboutChapter {
  display:grid;
  grid-template-columns:90px minmax(260px,.75fr) minmax(0,1.25fr);
  gap:46px;
  padding:60px 0;
  border-top:1px solid #dce2ed
}

.aboutChapterNumber {
  color:var(--pink);
  font-size:14px;
  font-weight:900;
  letter-spacing:2px
}

.aboutChapterTitle h2 {
  margin:14px 0 0;
  color:var(--navy);
  font-size:clamp(34px,4vw,54px);
  line-height:1.08
}

.aboutChapterCopy p {
  margin:0 0 20px;
  color:#626e84;
  font-size:17px;
  line-height:1.8
}

.aboutPullquote {
  max-width:950px;
  margin:40px auto 70px;
  text-align:center
}

.aboutPullquote p {
  margin:0;
  color:var(--navy);
  font-size:clamp(36px,5vw,65px);
  font-weight:900;
  line-height:1.12;
  letter-spacing:-2px
}

.aboutPullquote p:before {
  content:"“";
  color:var(--pink)
}

.aboutPullquote p:after {
  content:"”";
  color:var(--pink)
}

.aboutOwner {
  background:#fff
}

.aboutOwnerGrid {
  display:grid;
  grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);
  gap:85px;
  align-items:center
}

.aboutOwnerImage {
  position:relative;
  padding:0 0 28px 28px
}

.aboutOwnerImage:before {
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:70%;
  height:72%;
  border-radius:24px;
  background:linear-gradient(135deg,var(--purple),var(--pink))
}

.aboutOwnerImage img {
  position:relative;
  z-index:1;
  width:100%;
  max-height:660px;
  border-radius:24px;
  object-fit:cover;
  object-position:center top;
  box-shadow:var(--shadow)
}

.aboutOwnerCopy h2 {
  margin:10px 0 24px;
  color:var(--navy);
  font-family:Poppins,sans-serif;
  font-size:clamp(48px,6vw,78px);
  line-height:1
}

.aboutOwnerCopy p {
  margin:0 0 19px;
  color:#647087;
  font-size:17px;
  line-height:1.8
}

.aboutOwnerCopy .aboutOwnerLead {
  color:var(--navy);
  font-family:Poppins,sans-serif;
  font-size:clamp(22px,2.5vw,32px);
  font-weight:700;
  line-height:1.35
}

.aboutDifferenceHead {
  display:grid;
  grid-template-columns:1fr 420px;
  gap:80px;
  align-items:end;
  margin-bottom:55px
}

.aboutDifferenceHead h2 {
  margin:12px 0 0;
  color:#fff;
  font-size:clamp(40px,5vw,66px);
  line-height:1.06
}

.aboutDifferenceHead > p {
  margin:0;
  color:#c3cde1;
  font-size:17px;
  line-height:1.75
}

.aboutPrinciples {
  border-top:1px solid rgba(255,255,255,.15)
}

.aboutPrinciples article {
  display:grid;
  grid-template-columns:90px 300px 1fr;
  gap:34px;
  align-items:center;
  padding:29px 0;
  border-bottom:1px solid rgba(255,255,255,.15)
}

.aboutPrinciples span {
  color:var(--cyan);
  font-size:13px;
  font-weight:900;
  letter-spacing:1.6px
}

.aboutPrinciples h3 {
  margin:0;
  color:#fff;
  line-height:1.25
}

.aboutPrinciples p {
  margin:0;
  color:#bdc8dc;
  line-height:1.7
}

.aboutEvents {
  background:#fff
}

.aboutEvents .sectionHead h2 {
  color:var(--navy)
}

.aboutEvents .sectionHead p {
  color:#647087
}

.aboutEventLinks {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  border-top:1px solid #dce2ed;
  border-left:1px solid #dce2ed
}

.aboutEventLinks a {
  min-height:230px;
  padding:38px;
  border-right:1px solid #dce2ed;
  border-bottom:1px solid #dce2ed;
  background:#fff;
  transition:.25s
}

.aboutEventLinks a:hover {
  position:relative;
  z-index:1;
  background:var(--navy);
  transform:translateY(-5px)
}

.aboutEventLinks span {
  color:var(--pink);
  font-size:13px;
  font-weight:900
}

.aboutEventLinks h3 {
  margin:34px 0 28px;
  color:var(--navy);
  font-size:29px;
  line-height:1.2
}

.aboutEventLinks b {
  color:#667189;
  font-size:14px
}

.aboutEventLinks a:hover h3,
.aboutEventLinks a:hover b {
  color:#fff
}

.aboutTestimonials {
  padding:95px 0;
  background:linear-gradient(135deg,#f3f5fb,#fff)
}

.aboutTestimonialsHead {
  display:block;
  text-align:center;
  margin-bottom:42px
}

.aboutTestimonialsHead h2 {
  margin:12px 0 0;
  color:var(--navy);
  font-size:clamp(40px,5vw,62px);
  line-height:1.1
}

.aboutQuoteGrid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px
}

.aboutQuoteGrid blockquote {
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:275px;
  margin:0;
  padding:34px;
  border:1px solid #e0e5ef;
  border-radius:20px;
  background:#fff
}

.aboutQuoteGrid p {
  margin:0 0 30px;
  color:var(--navy);
  font-size:18px;
  font-weight:700;
  line-height:1.65
}

.aboutQuoteGrid cite {
  color:var(--pink);
  font-size:14px;
  font-style:normal;
  font-weight:900
}

@media(max-width:900px) {
  .aboutHeroGrid,
  .aboutManifestoGrid,
  .aboutOwnerGrid,
  .aboutDifferenceHead {
    grid-template-columns:1fr;
    gap:40px
  }

  .aboutHeroIntro {
    max-width:650px
  }

  .aboutOwnerImage {
    max-width:620px
  }

  .aboutChapter {
    grid-template-columns:60px 1fr
  }

  .aboutChapterCopy {
    grid-column:2
  }

  .aboutPrinciples article {
    grid-template-columns:55px 220px 1fr
  }

  .aboutQuoteGrid {
    grid-template-columns:1fr
  }

  .aboutQuoteGrid blockquote {
    min-height:0
  }
}

@media(max-width:640px) {
  .aboutHero {
    padding:120px 0 70px
  }

  .aboutHero .breadcrumbs {
    margin-bottom:45px
  }

  .aboutHero h1 {
    font-size:47px;
    letter-spacing:-2px
  }

  .aboutHeroIntro {
    padding-left:22px
  }

  .aboutManifesto {
    padding:70px 0
  }

  .aboutStoryVisual {
    margin-top:45px
  }

  .aboutStoryVisual img {
    height:310px;
    border-radius:18px
  }

  .aboutOwnerImage {
    padding:0 0 18px 18px
  }

  .aboutChapter {
    grid-template-columns:1fr;
    gap:20px;
    padding:45px 0
  }

  .aboutChapterCopy {
    grid-column:auto
  }

  .aboutPullquote {
    margin:25px auto 55px
  }

  .aboutPrinciples article {
    grid-template-columns:45px 1fr;
    gap:18px
  }

  .aboutPrinciples p {
    grid-column:2
  }

  .aboutEventLinks {
    grid-template-columns:1fr
  }

  .aboutEventLinks a {
    min-height:200px;
    padding:30px
  }
}

/* Main FAQ page */
.faqHubHero {
  padding:135px 0 78px;
  background:linear-gradient(135deg,#06102d 0%,#111b43 65%,#321a64 100%);
  color:#fff
}

.faqHubHero .breadcrumbs {
  margin-bottom:52px
}

.faqHubHeroInner {
  max-width:850px
}

.faqHubHero h1 {
  margin:14px 0 18px;
  color:#fff;
  font-size:clamp(42px,5vw,62px);
  line-height:1.08
}

.faqHubHero p {
  max-width:720px;
  margin:0;
  color:#d3dbed;
  font-size:18px;
  line-height:1.7
}

.faqTopicNav {
  background:#fff;
  border-bottom:1px solid var(--line)
}

.faqTopicNavInner {
  display:grid;
  grid-template-columns:repeat(4,1fr)
}

.faqTopicNav a {
  padding:22px 18px;
  border-right:1px solid var(--line);
  color:var(--navy);
  font-family:Poppins,sans-serif;
  font-size:14px;
  font-weight:700;
  text-align:center;
  transition:.2s
}

.faqTopicNav a:first-child {
  border-left:1px solid var(--line)
}

.faqTopicNav a:hover {
  background:#f7f8fc;
  color:var(--pink)
}

.faqHubContent {
  padding:35px 0 95px;
  background:#f6f7fc
}

.faqGroup {
  display:grid;
  grid-template-columns:320px minmax(0,1fr);
  gap:80px;
  padding:70px 0;
  scroll-margin-top:30px
}

.faqGroup + .faqGroup {
  border-top:1px solid #dce2ed
}

.faqGroupHeading > span {
  display:block;
  margin-bottom:30px;
  color:var(--pink);
  font-family:Poppins,sans-serif;
  font-size:13px;
  font-weight:800;
  letter-spacing:2px
}

.faqGroupHeading h2 {
  margin:12px 0 0;
  color:var(--navy);
  font-size:34px;
  line-height:1.2
}

.faqHubQuestions {
  padding:0 32px;
  border:1px solid #dfe3ed;
  border-radius:18px;
  background:#fff
}

.faqHubQuestions details:last-child {
  border-bottom:0
}

.faqHubQuestions summary {
  color:var(--navy);
  line-height:1.45
}

.faqGuideLink {
  padding:70px 0;
  background:#fff
}

.faqGuideLinkInner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:60px
}

.faqGuideLinkInner > div {
  max-width:760px
}

.faqGuideLink h2 {
  margin:10px 0 12px;
  color:var(--navy);
  font-size:36px;
  line-height:1.2
}

.faqGuideLink p {
  margin:0;
  color:#647087;
  line-height:1.7
}

@media(max-width:900px) {
  .faqGroup {
    grid-template-columns:1fr;
    gap:30px
  }

  .faqGroupHeading {
    max-width:650px
  }

  .faqGuideLinkInner {
    align-items:flex-start;
    flex-direction:column;
    gap:30px
  }
}

@media(max-width:680px) {
  .faqHubHero {
    padding:120px 0 65px
  }

  .faqHubHero .breadcrumbs {
    margin-bottom:40px
  }

  .faqHubHero h1 {
    font-size:40px
  }

  .faqTopicNavInner {
    grid-template-columns:repeat(2,1fr)
  }

  .faqTopicNav a {
    border-bottom:1px solid var(--line)
  }

  .faqGroup {
    padding:50px 0
  }

  .faqHubQuestions {
    padding:0 20px
  }

  .faqGuideLink h2 {
    font-size:31px
  }
}

/* Check your location page */
.locationCheckHero {
  padding:135px 0 78px
}

.locationCheckHero .breadcrumbs {
  margin-bottom:46px
}

.locationCheckHero .coverageInner {
  padding:0
}

.locationCheckHero h1 {
  max-width:690px;
  margin:10px 0 16px;
  color:#fff;
  font-size:clamp(42px,5vw,60px);
  line-height:1.08
}

.locationCheckHero .coverageInner > div > p {
  max-width:650px;
  margin:0;
  color:#f1eefe;
  font-size:18px;
  line-height:1.7
}

.locationIntro {
  padding-top:135px;
  background:#fff
}

.locationIntroGrid {
  display:grid;
  grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);
  gap:85px
}

.locationIntro h2 {
  margin:12px 0 0;
  color:var(--navy);
  font-size:40px;
  line-height:1.18
}

.locationIntroGrid p {
  margin:0 0 18px;
  color:#647087;
  font-size:17px;
  line-height:1.8
}

.locationRegions .sectionHead h2,
.locationFaq .sectionHead h2 {
  color:var(--navy)
}

.locationRegions .sectionHead p {
  color:#647087
}

.locationRegionGrid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px
}

.locationRegionGrid a {
  padding:32px;
  border:1px solid #dfe3ed;
  border-radius:18px;
  background:#fff;
  transition:.22s
}

.locationRegionGrid a:hover {
  border-color:var(--pink);
  transform:translateY(-4px);
  box-shadow:var(--shadow)
}

.locationRegionGrid span {
  color:var(--pink);
  font-family:Poppins,sans-serif;
  font-size:13px;
  font-weight:800;
  letter-spacing:2px
}

.locationRegionGrid h3 {
  margin:18px 0 9px;
  color:var(--navy);
  font-size:24px;
  line-height:1.25
}

.locationRegionGrid p {
  margin:0 0 22px;
  color:#647087;
  line-height:1.7
}

.locationRegionGrid b {
  color:var(--pink);
  font-size:14px
}

.locationVenueGrid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,.8fr);
  gap:85px;
  align-items:start
}

.locationVenueGrid h2 {
  margin:12px 0 16px;
  color:#fff;
  font-size:40px;
  line-height:1.2
}

.locationVenueGrid > div > p {
  margin:0;
  color:#c4cee2;
  font-size:17px;
  line-height:1.75
}

.locationVenueGrid .ticks {
  margin:0
}

.locationFaq {
  background:#fff
}

@media(max-width:900px) {
  .locationIntroGrid,
  .locationVenueGrid {
    grid-template-columns:1fr;
    gap:40px
  }
}

@media(max-width:680px) {
  .locationCheckHero {
    padding:120px 0 70px
  }

  .locationCheckHero .breadcrumbs {
    margin-bottom:38px
  }

  .locationCheckHero h1 {
    font-size:40px
  }

  .locationIntro {
    padding-top:115px
  }

  .locationRegionGrid {
    grid-template-columns:1fr
  }

  .locationIntro h2,
  .locationVenueGrid h2 {
    font-size:33px
  }
}

/* Legal pages */
.legalHero {
  padding:135px 0 72px;
  background:linear-gradient(135deg,#06102d 0%,#111b43 68%,#271553 100%);
  color:#fff
}

.legalHero .breadcrumbs {
  margin-bottom:48px
}

.legalHero h1 {
  margin:12px 0 16px;
  color:#fff;
  font-size:clamp(42px,5vw,58px);
  line-height:1.1
}

.legalHero > .wrap > p {
  max-width:720px;
  margin:0;
  color:#d3dbed;
  font-size:18px;
  line-height:1.7
}

.legalPage {
  padding:80px 0 100px;
  background:#f6f7fc
}

.legalLayout {
  display:grid;
  grid-template-columns:280px minmax(0,1fr);
  gap:70px;
  align-items:start
}

.legalNav {
  position:sticky;
  top:25px;
  padding:26px;
  border:1px solid #dfe3ed;
  border-radius:16px;
  background:#fff
}

.legalNav > strong {
  display:block;
  margin-bottom:15px;
  color:var(--navy);
  font-family:Poppins,sans-serif;
  font-size:17px
}

.legalNav a {
  display:block;
  padding:8px 0;
  color:#657087;
  font-size:14px;
  line-height:1.35
}

.legalNav a:hover {
  color:var(--pink)
}

.legalContent {
  padding:50px 58px;
  border:1px solid #dfe3ed;
  border-radius:20px;
  background:#fff
}

.legalIntro {
  margin-bottom:42px;
  padding:25px 28px;
  border-left:4px solid var(--pink);
  background:#f7f8fc
}

.legalIntro p {
  margin:0;
  color:var(--navy);
  font-size:17px;
  line-height:1.75
}

.legalContent section {
  padding:38px 0;
  border-top:1px solid #e1e5ee;
  scroll-margin-top:25px
}

.legalContent section:first-of-type {
  border-top:0
}

.legalContent h2 {
  display:flex;
  gap:14px;
  align-items:center;
  margin:0 0 18px;
  color:var(--navy);
  font-size:28px;
  line-height:1.25
}

.legalContent h2 span {
  display:grid;
  flex:0 0 35px;
  width:35px;
  height:35px;
  place-items:center;
  border-radius:50%;
  background:#fff0f8;
  color:var(--pink);
  font-size:13px
}

.legalContent p,
.legalContent li {
  color:#5f6b82;
  font-size:16px;
  line-height:1.8
}

.legalContent p {
  margin:0 0 16px
}

.legalContent p:last-child {
  margin-bottom:0
}

.legalContent ul {
  margin:12px 0 18px;
  padding-left:23px
}

.legalContent li {
  margin:7px 0
}

.legalContent a:not(.btn) {
  color:var(--pink);
  font-weight:800;
  text-decoration:underline
}

.legalContact {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
  margin-top:35px;
  padding:30px;
  border-radius:16px;
  background:var(--navy)
}

.legalContact strong {
  color:#fff;
  font-family:Poppins,sans-serif;
  font-size:20px
}

.legalContact p {
  margin:7px 0 0;
  color:#bdc8dd;
  line-height:1.6
}

@media(max-width:950px) {
  .legalLayout {
    grid-template-columns:1fr;
    gap:30px
  }

  .legalNav {
    position:static
  }

  .legalNav nav {
    columns:2;
    column-gap:35px
  }
}

@media(max-width:680px) {
  .legalHero {
    padding:120px 0 62px
  }

  .legalHero .breadcrumbs {
    margin-bottom:38px
  }

  .legalHero h1 {
    font-size:40px
  }

  .legalPage {
    padding:55px 0 75px
  }

  .legalNav nav {
    columns:1
  }

  .legalContent {
    padding:30px 22px
  }

  .legalContent h2 {
    align-items:flex-start;
    font-size:24px
  }

  .legalContact {
    align-items:flex-start;
    flex-direction:column
  }
}

/* Photo gallery */
.galleryHero {
  padding:125px 0 78px;
  color:#fff;
  background:
    radial-gradient(circle at 82% 20%,rgba(255,22,143,.24),transparent 28%),
    radial-gradient(circle at 18% 80%,rgba(24,190,255,.18),transparent 30%),
    linear-gradient(135deg,#06102d 0%,#101d49 62%,#29185b 100%)
}

.galleryHeroInner {
  max-width:850px;
  margin:48px auto 0;
  text-align:center
}

.galleryHero h1 {
  margin:12px 0 18px;
  font-size:clamp(42px,6vw,72px);
  line-height:1.06
}

.galleryHero p {
  max-width:710px;
  margin:0 auto;
  color:#d3daed;
  font-size:18px;
  line-height:1.7
}

.gallerySection {
  padding:90px 0;
  color:#fff;
  background:radial-gradient(circle at 50% 0,#102861 0,#06102d 48%)
}

.gallerySection .sectionHead h2 {
  color:#fff
}

.gallerySection .sectionHead p {
  color:#bdc8dd
}

.ch-gallery {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px
}

.ch-gallery-item {
  position:relative;
  display:block;
  aspect-ratio:1;
  overflow:hidden;
  border-radius:18px;
  background:#dfe5f0;
  box-shadow:0 14px 38px rgba(6,16,45,.1)
}

.ch-gallery-item:after {
  content:"View photo";
  position:absolute;
  right:14px;
  bottom:14px;
  padding:8px 12px;
  border-radius:20px;
  color:#fff;
  background:rgba(6,16,45,.82);
  font:800 11px Poppins,sans-serif;
  letter-spacing:.5px;
  opacity:0;
  transform:translateY(8px);
  transition:.25s ease
}

.ch-gallery-img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s ease,filter .4s ease
}

.ch-gallery-item:hover .ch-gallery-img,
.ch-gallery-item:focus-visible .ch-gallery-img {
  transform:scale(1.06);
  filter:brightness(.82)
}

.ch-gallery-item:hover:after,
.ch-gallery-item:focus-visible:after {
  opacity:1;
  transform:translateY(0)
}

.ch-gallery-item:focus-visible {
  outline:3px solid var(--pink);
  outline-offset:4px
}

.ch-lightbox {
  position:fixed;
  z-index:9999;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:75px 90px;
  background:rgba(2,7,23,.94)
}

.ch-lightbox.is-open {
  display:flex
}

.ch-lightbox-img {
  display:block;
  max-width:min(1200px,100%);
  max-height:calc(100vh - 110px);
  object-fit:contain;
  border-radius:12px;
  box-shadow:0 20px 70px rgba(0,0,0,.5)
}

.ch-lightbox-btn {
  position:absolute;
  display:grid;
  place-items:center;
  width:50px;
  height:50px;
  padding:0;
  border:1px solid rgba(255,255,255,.25);
  border-radius:50%;
  color:#fff;
  background:rgba(255,255,255,.1);
  font-size:32px;
  cursor:pointer;
  transition:.2s ease
}

.ch-lightbox-btn:hover,
.ch-lightbox-btn:focus-visible {
  border-color:var(--pink);
  background:var(--pink)
}

.ch-lightbox-close {
  top:20px;
  right:22px;
  font-size:21px
}

.ch-lightbox-prev {
  left:22px;
  top:50%;
  transform:translateY(-50%)
}

.ch-lightbox-next {
  right:22px;
  top:50%;
  transform:translateY(-50%)
}

body.lightbox-open {
  overflow:hidden
}

@media(max-width:1000px) {
  .ch-gallery {
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
}

@media(max-width:700px) {
  .galleryHero {
    padding:115px 0 62px
  }

  .galleryHeroInner {
    margin-top:38px
  }

  .galleryHero h1 {
    font-size:40px
  }

  .gallerySection {
    padding:60px 0
  }

  .ch-gallery {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px
  }

  .ch-gallery-item {
    border-radius:13px
  }

  .ch-lightbox {
    padding:65px 12px
  }

  .ch-lightbox-btn {
    width:42px;
    height:42px
  }

  .ch-lightbox-prev {
    left:10px
  }

  .ch-lightbox-next {
    right:10px
  }
}
