:root {
  --teal:#1c6272;
  --cream:#e8d2c0;
  --button:#e5d5c3;
  --u:min(.0520833333vw,1px);
  --body:clamp(16px,calc(22 * var(--u)),22px);
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
}

body {
  margin:0;
  background:var(--cream);
  color:#111;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:var(--body);
  font-weight:300;
  line-height:1.54545;
}

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

button {
  font:inherit;
}

img {
  display:block;
}

picture {
  display:block;
}

p,h1,h2,h3,dl,dd {
  margin:0;
}

h2,h3,strong,dt {
  font-weight:700;
}

h2 {
  font-size:calc(40 * var(--u));
  line-height:1.25;
}

button,a {
  touch-action:manipulation;
}

a:focus-visible,button:focus-visible,.gallery:focus-visible {
  outline:3px solid #edb852;
  outline-offset:5px;
}

a:hover {
  text-decoration:underline;
}

.page {
  max-width:1920px;
  margin-inline:auto;
  overflow:clip;
}

.sr-only {
  position:absolute!important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.skip-link {
  position:fixed;
  top:12px;
  left:12px;
  z-index:20;
  padding:12px 18px;
  background:var(--cream);
  color:var(--teal);
  transform:translateY(-160%);
}

.skip-link:focus {
  transform:translateY(0);
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:calc(80 * var(--u));
  width:calc(370 * var(--u));
  max-width:100%;
  padding:12px 18px;
  border:calc(3 * var(--u)) solid var(--cream);
  border-radius:999px;
  background:var(--button);
  color:var(--teal);
  font-size:calc(26 * var(--u));
  line-height:1.2;
  font-weight:700;
  text-align:center;
  transition:background .18s,transform .18s;
}

.button:hover {
  background:#f2e5d8;
  text-decoration:none;
  transform:translateY(-2px);
}

.hero {
  height:calc(1084 * var(--u));
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:white;
}

.hero-photo {
  position:absolute;
  width:100%;
  height:calc(1295 * var(--u));
  top:calc(-55 * var(--u));
  object-fit:cover;
  z-index:-3;
}

.hero-shade {
  position:absolute;
  inset:0;
  background:rgba(28,98,114,.4);
  z-index:-2;
}

.masthead {
  width:83.8541667%;
  margin:auto;
  display:grid;
  grid-template-columns:1fr calc(434 * var(--u)) 1fr;
  align-items:start;
}

.brand {
  display:block;
  width:calc(306.151 * var(--u));
  margin:calc(60.948 * var(--u)) auto 0;
}

.brand img {
  width:100%;
  height:auto;
}

.masthead-side {
  height:calc(139 * var(--u));
  border-bottom:calc(3 * var(--u)) solid var(--cream);
  display:flex;
  align-items:flex-start;
  gap:calc(22 * var(--u));
  padding-top:calc(64 * var(--u));
}

.masthead-social {
  padding-left:calc(14 * var(--u));
}

.social-item {
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.masthead-social img {
  width:calc(39 * var(--u));
  height:auto;
}

.masthead-contact {
  justify-content:center;
}

.masthead-contact a {
  display:flex;
  align-items:center;
  gap:calc(28 * var(--u));
  font-size:calc(26 * var(--u));
  line-height:1.3;
}

.masthead-contact img {
  width:calc(46 * var(--u));
  height:auto;
}

.hero-content {
  text-align:center;
  padding-top:calc(190.949 * var(--u));
}

.hero-title {
  width:calc(834 * var(--u));
  margin:auto;
  line-height:1;
}

.hero-title img {
  width:100%;
  height:auto;
}

.hero-description {
  font-size:calc(30 * var(--u));
  line-height:1.4;
  margin:calc(60 * var(--u)) auto 0;
}

.hero-cta {
  margin-top:calc(34 * var(--u));
  font-size:calc(30 * var(--u));
  background:var(--cream);
}

.introduction {
  min-height:calc(622 * var(--u));
  background:var(--cream);
  text-align:center;
  padding:calc(96 * var(--u)) 12% calc(66 * var(--u));
}

.intro-content {
  max-width:1456px;
  margin:auto;
}

.introduction h2 {
  color:var(--teal);
  font-size:calc(40 * var(--u));
  line-height:1.15;
  margin-bottom:calc(45 * var(--u));
}

.introduction p {
  line-height:1.54545;
}

.introduction h2:nth-of-type(2) {
  margin-top:calc(59 * var(--u));
  margin-bottom:calc(45 * var(--u));
}

.activity {
  display:grid;
  grid-template-columns:1fr 1fr;
  background:var(--teal);
  color:white;
  min-height:calc(742 * var(--u));
}

.gallery {
  position:relative;
  overflow:hidden;
  min-width:0;
  align-self:stretch;
  touch-action:pan-y;
  min-height:calc(742 * var(--u));
}

.gallery-photo {
  position:absolute;
  width:100%;
  height:100%;
  object-fit:cover;
}

.gallery-controls[hidden] {
  display:none;
}

.gallery-arrow {
  display:flex;
  align-items:center;
  justify-content:center;
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  border:0;
  background:transparent;
  padding:8px;
  border-radius:50%;
  cursor:pointer;
  opacity:0;
  transition:opacity .18s,background .18s;
}

.gallery:hover .gallery-arrow,.gallery:focus-within .gallery-arrow {
  opacity:1;
}

.gallery-arrow:hover {
  background:rgba(0,0,0,.25);
}

.gallery-arrow img {
  width:31px;
  height:31px;
}

.gallery-arrow.previous {
  left:12px;
}

.gallery-arrow.previous img {
  transform:rotate(180deg);
}

.gallery-arrow.next {
  right:12px;
}

.gallery-dots {
  position:absolute;
  display:flex;
  gap:calc(10 * var(--u));
  right:calc(68 * var(--u));
  bottom:calc(34 * var(--u));
}

.gallery-dots button {
  border:0;
  background:transparent;
  cursor:pointer;
  padding:8px;
  border-radius:50%;
  display:grid;
  place-items:center;
}

.gallery-dots img {
  width:calc(16 * var(--u));
  height:calc(16 * var(--u));
}

.activity-content {
  position:relative;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:calc(97 * var(--u)) calc(125 * var(--u)) calc(43 * var(--u)) calc(69 * var(--u));
  overflow:hidden;
}

.activity h2 {
  color:var(--cream);
  margin-bottom:calc(35 * var(--u));
  max-width:100%;
  font-size:calc(40 * var(--u));
  line-height:1.25;
}

.activity-copy {
  max-width:calc(648 * var(--u));
  font-size:var(--body);
  line-height:1.54545;
}

.activity .price {
  font-weight:700;
  margin-top:1.54545em;
}

.activity .button {
  margin-top:auto;
  flex-shrink:0;
}

.activity-copy + .button {
  margin-top:auto;
}

.activity-content::after {
  content:"";
  min-height:calc(22 * var(--u));
  order:2;
}

.activity .button {
  order:3;
}

.watermark {
  position:absolute;
  width:calc(567 * var(--u));
  height:auto;
  right:0;
  top:calc(175 * var(--u));
  z-index:-1;
  pointer-events:none;
}

.darts .gallery {
  grid-column:2;
  grid-row:1;
}

.darts .activity-content {
  grid-column:1;
  grid-row:1;
  padding-left:calc(232 * var(--u));
  padding-right:calc(70 * var(--u));
}

.darts .watermark {
  right:auto;
  left:0;
}

.darts .button {
  align-self:flex-end;
}

.darts .gallery-dots {
  left:calc(62 * var(--u));
  right:auto;
}

.billiards h2 {
  white-space:nowrap;
  margin-bottom:calc(41 * var(--u));
}

.billiards .watermark {
  top:calc(180 * var(--u));
}

.membership-tournament {
  position:relative;
  isolation:isolate;
  background:var(--cream);
}

.membership-tournament::before {
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:calc(1423 * var(--u));
  background:url("assets/clubhouse-lounge.webp") center center/cover;
  opacity:.09;
  z-index:-1;
}

.membership {
  min-height:calc(430 * var(--u));
  padding:calc(110 * var(--u)) 20px calc(41 * var(--u));
  color:var(--teal);
  text-align:center;
}

.membership-title {
  width:calc(601 * var(--u));
  height:calc(34 * var(--u));
  max-width:100%;
  overflow:hidden;
  margin:0 auto calc(9 * var(--u));
}

.membership-title img {
  width:100%;
  height:auto;
}

.membership-copy {
  line-height:calc(36 * var(--u));
}

.membership-copy p:first-child {
  line-height:calc(59 * var(--u));
}

.tournament {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:calc(1372 * var(--u));
  color:white;
  text-align:center;
}

.tournament-backdrop {
  position:absolute;
  z-index:-1;
  top:calc(-268 * var(--u));
  left:50%;
  transform:translateX(-50%);
  width:100%;
  height:auto;
  pointer-events:none;
}

.tournament-content {
  padding:calc(170 * var(--u)) 20px calc(119 * var(--u));
  position:relative;
}

.tournament-eyebrow {
  font-weight:700;
  font-size:calc(40 * var(--u));
  line-height:1.325;
}

.tournament-title {
  width:calc(789 * var(--u));
  margin:calc(50.5 * var(--u)) auto 0;
  max-width:100%;
}

.tournament-title img {
  width:100%;
  height:auto;
}

.tournament-details {
  max-width:calc(694 * var(--u));
  margin:calc(75.5 * var(--u)) auto 0;
  font-size:var(--body);
  line-height:calc(43 * var(--u));
}

.tournament-details dt {
  text-transform:uppercase;
}

.tournament-details a:hover {
  text-decoration:underline;
}

.tournament .button {
  margin-top:calc(48 * var(--u));
}

.benefits {
  background:var(--teal);
  color:white;
  text-align:center;
  min-height:calc(1673 * var(--u));
  padding:calc(128 * var(--u)) 20px calc(80 * var(--u));
}

.benefits-heading {
  max-width:calc(1282 * var(--u));
  margin:auto;
  display:flex;
  flex-direction:column;
}

.benefits-heading p {
  order:-1;
  line-height:1.54545;
}

.benefits h2 {
  color:var(--cream);
  margin-top:calc(93 * var(--u));
  line-height:1.2;
}

.benefits-grid {
  width:calc(1112 * var(--u));
  max-width:100%;
  margin:calc(48 * var(--u)) auto 0;
  display:grid;
  grid-template-columns:repeat(6,1fr);
  column-gap:calc(45.5 * var(--u));
  row-gap:calc(33 * var(--u));
}

.benefit {
  grid-column:span 2;
}

.benefit:nth-child(4) {
  grid-column:2/span 2;
}

.benefit:nth-child(5) {
  grid-column:4/span 2;
}

.benefit-icon {
  width:calc(159 * var(--u));
  height:calc(159 * var(--u));
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:center;
}

.benefit-icon img {
  width:calc(159 * var(--u));
  height:auto;
}

.benefit-icon.equipment img {
  width:calc(133.92 * var(--u));
}

.benefit h3 {
  font-size:var(--body);
  color:var(--cream);
  line-height:calc(59 * var(--u));
  margin-bottom:calc(59 * var(--u));
}

.benefit p {
  line-height:1.54545;
}

.closing-message {
  font-weight:700;
  color:var(--cream);
  margin:calc(62 * var(--u)) auto 0;
  max-width:calc(1350 * var(--u));
  line-height:1.54545;
}

.footer {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:start;
  min-height:calc(423 * var(--u));
  padding:calc(54 * var(--u)) calc(320 * var(--u)) calc(55 * var(--u));
  column-gap:calc(170 * var(--u));
  color:#111;
  background:var(--cream);
}

.footer-brand {
  width:calc(357.938 * var(--u));
  margin:calc(29 * var(--u)) auto 0;
}

.footer-brand img {
  width:100%;
  height:auto;
}

.contact h2 {
  color:var(--teal);
  font-size:calc(40 * var(--u));
  line-height:1.2;
  margin-bottom:calc(28 * var(--u));
}

.contact address {
  font-style:normal;
  font-size:var(--body);
  display:grid;
  gap:calc(15 * var(--u));
}

.contact address>div {
  display:flex;
  align-items:center;
  gap:calc(38 * var(--u));
  min-height:calc(42 * var(--u));
}

.contact address img {
  object-fit:contain;
  flex:0 0 calc(43 * var(--u));
  width:calc(43 * var(--u));
  height:calc(40 * var(--u));
}

.contact address a {
  white-space:nowrap;
}

.footer-social {
  display:none;
}

.copyright {
  grid-column:1/-1;
  text-align:center;
  margin-top:calc(48 * var(--u));
  font-size:calc(16 * var(--u));
  line-height:1.5;
}

@media(min-width:768px) and (max-width:1199px) {
  .hero {
    min-height:520px;
  }
  .hero-photo {
    top:0;
    height:100%;
  }
  :root {
    --body:16px;
  }
  h2,.introduction h2,.activity h2,.benefits h2,.contact h2 {
    font-size:26px;
  }
  .hero-description {
    font-size:20px;
  }
  .button {
    min-height:48px;
    font-size:17px;
    width:245px;
  }
  .introduction {
    padding:60px 8%;
  }
  .activity-content,.darts .activity-content {
    padding:45px 35px 30px;
  }
  .activity h2 {
    margin-bottom:25px;
  }
  .activity-copy {
    max-width:none;
  }
  .activity {
    min-height:520px;
  }
  .gallery {
    min-height:520px;
  }
  .activity .button {
    margin-top:25px;
  }
  .darts .button {
    align-self:flex-start;
  }
  .billiards h2 {
    white-space:normal;
  }
  .benefits {
    padding:70px 6%;
  }
  .benefits-heading {
    max-width:850px;
  }
  .benefits-grid {
    width:850px;
    column-gap:30px;
    row-gap:40px;
  }
  .benefit-icon,.benefit-icon img {
    width:110px;
    height:110px;
  }
  .benefit-icon.equipment img {
    width:93px;
    height:auto;
  }
  .benefit h3 {
    line-height:1.4;
    margin:15px 0 25px;
  }
  .membership {
    padding-block:65px 45px;
  }
  .membership-copy,.membership-copy p:first-child {
    line-height:1.7;
  }
  .membership-title {
    margin-bottom:20px;
  }
  .tournament-details {
    max-width:500px;
    line-height:1.6;
  }
  .tournament-content {
    padding-top:110px;
  }
  .tournament {
    min-height:950px;
  }
  .tournament-backdrop {
    min-width:1320px;
    top:-180px;
  }
  .footer {
    padding:45px 8% 30px;
    column-gap:60px;
  }
  .contact address a {
    white-space:normal;
  }
  .copyright {
    font-size:12px;
  }
}

@media(max-width:767px) {
  :root {
    --body:14px;
    --u:1px;
  }
  .page {
    width:100%;
    max-width:none;
  }
  h2 {
    font-size:24px;
    line-height:30px;
  }
  .desktop-only {
    display:none;
  }
  .button {
    width:250px;
    min-height:54px;
    font-size:20px;
    padding:12px 13px;
    border-width:0;
    background:var(--cream);
  }
  .hero {
    height:646px;
  }
  .hero-photo {
    /* Center the photo while keeping the full header covered. */
    width:100%;
    max-width:none;
    height:100%;
    top:0;
    left:0;
    object-fit:cover;
    object-position:center;
  }
  .masthead {
    display:block;
    width:100%;
  }
  .brand {
    position:absolute;
    top:30.174px;
    left:50%;
    transform:translateX(-50%);
    margin:0;
    width:151.539px;
  }
  .brand img {
    width:151.539px;
    height:75.7975px;
  }
  .masthead-side {
    height:auto;
    border:0;
    padding:0;
  }
  .masthead-social {
    position:absolute;
    right:18px;
    top:20px;
    display:flex;
    flex-direction:column-reverse;
    gap:14px;
  }
  .masthead-social img {
    width:25px;
    height:25px;
  }
  .masthead-contact {
    position:absolute;
    right:16px;
    top:98px;
  }
  .masthead-contact img {
    width:27px;
    height:19px;
  }
  .masthead-contact span {
    display:none;
  }
  .hero-content {
    height:100%;
    padding:185.4px 24px 36px;
    display:flex;
    align-items:center;
    flex-direction:column;
  }
  .hero-title {
    width:286px;
    max-width:100%;
    margin:0 auto;
  }
  .hero-title img {
    width:100%;
    height:auto;
  }
  .hero-description {
    width:277px;
    max-width:100%;
    font-size:16px;
    line-height:24px;
    margin:150px auto 0;
  }
  .hero-cta {
    margin-top:27px;
    font-size:20px;
  }
  .introduction {
    min-height:784px;
    padding:65px 40px 59px;
  }
  .intro-content {
    max-width:430px;
  }
  .introduction h2 {
    font-size:24px;
    line-height:30px;
    max-width:290px;
    margin:0 auto 20px;
  }
  .introduction h2:first-child {
    max-width:240px;
  }
  .introduction p {
    font-size:14px;
    line-height:22px;
    max-width:277px;
    margin-inline:auto;
  }
  .introduction h2:nth-of-type(2) {
    margin-top:27px;
    margin-bottom:25px;
  }
  .activity {
    display:flex;
    flex-direction:column;
    min-height:0;
  }
  .gallery {
    min-height:0;
    height:auto;
    aspect-ratio:375/290;
    flex-shrink:0;
    width:100%;
  }
  .gallery-photo {
    object-position:center;
  }
  .gallery-arrow {
    opacity:1;
    padding:8px;
  }
  .gallery-arrow.previous {
    left:14px;
  }
  .gallery-arrow.next {
    right:13px;
  }
  .gallery-dots {
    display:none;
  }
  .activity-content,.darts .activity-content {
    align-items:center;
    text-align:center;
    padding:38px 24px 43px;
    min-height:531px;
  }
  .activity h2 {
    font-size:24px;
    line-height:30px;
    margin-bottom:25px;
    max-width:285px;
  }
  .activity-copy {
    max-width:277px;
    font-size:14px;
    line-height:22px;
  }
  .activity .price {
    margin-top:22px;
  }
  .activity .button,.darts .button {
    align-self:center;
    margin-top:auto;
  }
  .activity-content::after {
    min-height:26px;
  }
  .watermark {
    display:none;
  }
  .darts .activity-content {
    min-height:522px;
    padding-top:37px;
    padding-bottom:47px;
  }
  .darts h2 {
    max-width:255px;
  }
  .billiards .activity-content {
    min-height:418px;
    padding-top:34px;
    padding-bottom:47px;
  }
  .billiards h2 {
    white-space:normal;
    max-width:215px;
    margin-bottom:25px;
  }
  .membership-tournament::before {
    height:417px;
    background-size:cover;
    background-position:center;
  }
  .membership {
    min-height:417px;
    padding:49px 24px 25px;
  }
  .membership-title {
    width:277px;
    height:84px;
    margin-bottom:40px;
  }
  .membership-title img {
    width:100%;
    height:auto;
  }
  .membership-copy {
    max-width:277px;
    margin:auto;
    font-size:14px;
    line-height:22px;
  }
  .membership-copy p:first-child {
    line-height:22px;
    margin-bottom:0;
  }
  .membership-copy br {
    display:none;
  }
  .tournament {
    min-height:701px;
  }
  .tournament-backdrop {
    width:1920px;
    height:2298px;
    top:-733px;
    max-width:none;
  }
  .tournament-content {
    padding:71px 24px 62px;
  }
  .tournament-eyebrow {
    display:none;
  }
  .tournament-title {
    width:207px;
    max-width:100%;
    margin:0 auto;
  }
  .tournament-title img {
    width:100%;
    height:auto;
  }
  .tournament-details {
    max-width:277px;
    line-height:23px;
    font-size:14px;
    margin-top:35px;
  }
  .tournament-details dd:first-of-type {
    white-space:normal;
  }
  .tournament .button {
    margin-top:39px;
  }
  .benefits {
    min-height:1957px;
    padding:55px 24px 50px;
  }
  .benefits-heading {
    max-width:310px;
  }
  .benefits h2 {
    font-size:30px;
    line-height:33px;
    margin:0 auto 25px;
    max-width:280px;
  }
  .benefits-heading p {
    order:0;
    font-size:14px;
    line-height:22px;
    max-width:280px;
    margin:auto;
  }
  .benefits-grid {
    display:flex;
    flex-direction:column;
    gap:12px;
    width:310px;
    max-width:100%;
    margin:13px auto 0;
  }
  .benefit {
    width:100%;
  }
  .benefit-icon {
    width:122px;
    height:122px;
  }
  .benefit-icon img {
    width:122px;
    height:auto;
  }
  .benefit-icon.equipment img {
    width:102.755px;
    height:auto;
  }
  .benefit:nth-child(3) .benefit-icon,.benefit:nth-child(3) .benefit-icon img {
    width:125px;
    height:125px;
  }
  .benefit:nth-child(4) .benefit-icon,.benefit:nth-child(4) .benefit-icon img {
    width:120px;
    height:120px;
  }
  .benefit:nth-child(5) .benefit-icon {
    width:148px;
    height:119px;
    overflow:visible;
  }
  .benefit:nth-child(5) .benefit-icon img {
    width:148px;
    height:147px;
  }
  .benefit h3 {
    font-size:18px;
    line-height:28px;
    margin-bottom:14px;
  }
  .benefit p {
    font-size:14px;
    line-height:22px;
  }
  .closing-message {
    font-size:14px;
    line-height:22px;
    max-width:313px;
    margin:49px auto 0;
  }
  .footer {
    display:flex;
    flex-direction:column;
    align-items:center;
    min-height:597px;
    padding:48px 24px 35px;
    gap:0;
  }
  .contact {
    order:0;
    width:305px;
    max-width:100%;
  }
  .contact h2 {
    font-size:26px;
    line-height:48px;
    text-align:center;
    margin:0 0 20px;
  }
  .contact address {
    font-size:14px;
    gap:15px;
  }
  .contact address>div {
    min-height:42px;
    gap:19px;
  }
  .contact address img {
    flex:0 0 43px;
    width:43px;
    height:40px;
  }
  .contact address a {
    white-space:normal;
  }
  .contact address p a {
    white-space:nowrap;
  }
  .footer-social {
    order:1;
    display:flex;
    align-items:center;
    gap:47px;
    margin-top:25px;
  }
  .footer-social img {
    width:40.741px;
    height:40.979px;
  }
  .footer-brand {
    order:2;
    width:224.663px;
    margin:45px auto 0;
  }
  .footer-brand img {
    width:224.663px;
    height:112.461px;
  }
  .copyright {
    order:3;
    font-size:14px;
    line-height:22px;
    margin-top:14px;
    text-align:center;
  }
}

@media(max-width:359px) {
  .hero-description {
    margin-top:145px;
  }
  .introduction {
    padding-inline:24px;
  }
  .activity-content,.darts .activity-content {
    padding-inline:20px;
  }
  .tournament-content {
    padding-inline:16px;
  }
  .benefits,.footer {
    padding-inline:18px;
  }
  .hero-title {
    width:270px;
  }
  .contact address {
    font-size:13px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    transition:none!important;
  }
}

/* Restore transparency to Figma raster exports without changing their artwork. */
.artwork-filters {
  position:absolute;
  overflow:hidden;
  pointer-events:none;
}

.tournament-title img {
  filter:none;
}

@media(max-width:767px) {
  .tournament-title img {
    filter:url(#cream-artwork);
  }
}

.membership-title img {
  filter:url(#teal-artwork);
}

.watermark {
  filter:url(#watermark-artwork);
}
