:root {
  --ink:#111;
  --paper:#fff;
  --soft:#f2f2f0;
  --yellow:#ffd800;
  --line:#d7d7d2;
  --shell:clamp(1.25rem,4vw,4.5rem)
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Arial,Helvetica,sans-serif;
  font-size:16px;
  line-height:1.55
}

.ps-shell {
  padding-left:var(--shell);
  padding-right:var(--shell)
}

a {
  color:inherit
}

.skip-link {
  position:fixed;
  z-index:2000;
  background:#fff;
  color:#000;
  padding:.75rem
}

.site-header {
  background:#fff;
  border-bottom:1px solid #ddd
}

.navbar {
  min-height:106px;
  padding:18px 0
}

.brand-mark {
  display:inline-block;
  padding:0;
  margin:0
}

.brand-mark img {
  display:block;
  width:285px;
  max-width:100%;
  height:auto
}

.navbar-toggler {
  border:0;
  border-radius:0;
  padding:.4rem
}

.navbar-toggler:focus {
  box-shadow:none
}

.navbar-toggler span {
  display:block;
  width:28px;
  height:2px;
  background:#111;
  margin:6px 0
}

.nav-link {
  position:relative;
  padding:.6rem .7rem!important;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:700
}

.nav-link:after {
  content:"";
  position:absolute;
  left:.7rem;
  right:.7rem;
  bottom:.25rem;
  height:2px;
  background:#111;
  transform:scaleX(0);
  transition:.2s
}

.nav-link:hover:after,
.nav-link.active:after {
  transform:scaleX(1);
  background:var(--yellow)
}

.shop-link {
  border:2px solid var(--yellow);
  background:var(--yellow);
  color:#111!important;
  margin-left:.65rem;
  padding:.72rem 1.15rem!important;
  transition:background .2s,color .2s,border-color .2s
}

.shop-link:after {
  display:none
}

.shop-link:hover,
.shop-link:focus {
  background:#111;
  color:#fff!important;
  border-color:#111
}

.hero-image {
  height:min(58vw,720px);
  min-height:460px;
  overflow:hidden;
  background:#f3f3f1;
  position:relative
}

.hero-image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 48%
}

.hero-image--overlay:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.42) 38%,rgba(0,0,0,.05) 72%)
}

.hero-overlay {
  position:absolute;
  z-index:2;
  inset:0;
  display:flex;
  align-items:flex-end;
  padding-bottom:clamp(2rem,5vw,5rem);
  color:#fff
}

.hero-overlay-copy {
  max-width:900px
}

.hero-overlay h1,
.page-title {
  font-size:clamp(4rem,10vw,9.25rem);
  line-height:.78;
  letter-spacing:-.075em;
  text-transform:uppercase;
  font-weight:900;
  margin:0;
  text-shadow:0 2px 18px rgba(0,0,0,.18)
}

.hero-overlay .strap {
  display:inline-block;
  background:var(--yellow);
  color:#111;
  font-size:clamp(.9rem,1.5vw,1.35rem);
  letter-spacing:.28em;
  text-transform:uppercase;
  font-weight:800;
  margin:1.6rem 0 0;
  padding:.55rem .8rem .5rem
}

.hero-title {
  padding:clamp(3rem,7vw,7.5rem) 0 clamp(2rem,5vw,5rem)
}

.hero-title h1 {
  font-size:clamp(4rem,11vw,10rem);
  line-height:.78;
  letter-spacing:-.075em;
  text-transform:uppercase;
  font-weight:900;
  margin:0
}

.hero-title .strap {
  font-size:clamp(1rem,1.7vw,1.55rem);
  letter-spacing:.32em;
  text-transform:uppercase;
  font-weight:700;
  margin:1.5rem 0 0
}

.content-section {
  padding:clamp(4.5rem,9vw,9rem) 0
}

.intro-copy {
  max-width:940px
}

.kicker {
  font-size:.75rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-weight:700;
  margin-bottom:1rem
}

.section-heading {
  font-size:clamp(2.8rem,7vw,6.7rem);
  line-height:.86;
  letter-spacing:-.06em;
  text-transform:uppercase;
  font-weight:900;
  margin:0 0 2rem
}

.lead-copy {
  font-size:clamp(1.25rem,2.2vw,2rem);
  line-height:1.35
}

.body-copy {
  font-size:1.05rem;
  max-width:760px
}

.text-link {
  display:inline-block;
  margin-top:1rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.78rem;
  font-weight:700;
  text-decoration:none;
  border-bottom:1px solid #111;
  padding-bottom:.25rem
}

.text-link span {
  margin-left:.7rem
}

.text-link:hover {
  opacity:.55
}

.section-label {
  padding:1.25rem var(--shell);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-size:.8rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  font-weight:700
}

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

.editorial-card {
  position:relative;
  min-height:620px;
  overflow:hidden;
  border-right:1px solid #fff;
  border-bottom:1px solid #fff;
  color:#fff
}

.editorial-card:nth-child(even) {
  border-right:0
}

.editorial-card img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s ease
}

.editorial-card:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.03) 55%)
}

.editorial-card:hover img {
  transform:scale(1.025)
}

.editorial-content {
  position:absolute;
  z-index:2;
  left:clamp(1.5rem,4vw,4rem);
  right:clamp(1.5rem,4vw,4rem);
  bottom:clamp(1.5rem,4vw,4rem)
}

.editorial-content h3 {
  font-size:clamp(2.5rem,5vw,5rem);
  line-height:.85;
  letter-spacing:-.055em;
  text-transform:uppercase;
  font-weight:900;
  margin:0 0 1rem
}

.editorial-content p {
  max-width:520px;
  font-size:1.05rem
}

.editorial-content .text-link {
  border-color:#fff
}

.dj-strip {
  background:#111;
  color:#fff;
  padding:clamp(3rem,6vw,6rem) 0
}

.dj-strip h2 {
  font-size:clamp(2.8rem,6vw,6rem);
  line-height:.86;
  text-transform:uppercase;
  letter-spacing:-.055em;
  font-weight:900
}

.outline-button {
  display:inline-block;
  border:1px solid currentColor;
  padding:1rem 1.35rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.75rem;
  font-weight:700;
  text-decoration:none;
  transition:.2s
}

.outline-button:hover {
  background:#fff;
  color:#111
}

.events-section {
  padding:clamp(4.5rem,8vw,8rem) 0
}

.event-feature {
  display:grid;
  grid-template-columns:1.15fr .85fr;
  border-top:1px solid #111;
  border-bottom:1px solid #111
}

.event-image {
  min-height:500px
}

.event-image img {
  width:100%;
  height:100%;
  object-fit:cover
}

.event-copy {
  padding:clamp(2rem,5vw,5rem);
  display:flex;
  flex-direction:column;
  justify-content:center
}

.event-date {
  font-size:.78rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  font-weight:700
}

.event-copy h3 {
  font-size:clamp(2.5rem,5vw,5.5rem);
  line-height:.88;
  letter-spacing:-.055em;
  text-transform:uppercase;
  font-weight:900;
  margin:1rem 0
}

.event-list {
  margin-top:2rem
}

.event-row {
  display:grid;
  grid-template-columns:150px 1fr auto;
  gap:1.5rem;
  align-items:center;
  padding:1.4rem 0;
  border-bottom:1px solid var(--line);
  text-decoration:none
}

.event-row h4 {
  margin:0;
  text-transform:uppercase;
  font-size:1.15rem;
  font-weight:800
}

.event-row .arrow {
  font-size:1.4rem
}

.event-row:hover {
  opacity:.55
}

.story-band {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:#fff
}

.story-band img {
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover
}

.story-copy {
  background:#111;
  color:#fff;
  padding:clamp(3rem,7vw,7rem) var(--shell)
}

.story-copy p {
  max-width:980px;
  font-size:clamp(1.2rem,2vw,1.7rem);
  line-height:1.45
}

.shop-callout {
  background:var(--yellow);
  padding:clamp(4rem,7vw,7rem) 0
}

.shop-callout .section-heading {
  max-width:1000px
}

.site-footer {
  background:#050505;
  color:#d1d1d1
}

.footer-chevron {
  height:48px;
  overflow:hidden;
  background:#000
}

.footer-chevron img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center
}

.footer-main {
  padding-top:clamp(4rem,7vw,6.5rem);
  padding-bottom:2rem
}

.footer-grid {
  align-items:flex-start
}

.footer-brand {
  display:inline-block
}

.footer-brand img {
  display:block;
  width:min(100%,465px);
  height:auto
}

.footer-intro {
  font-size:1rem;
  line-height:1.65;
  max-width:470px;
  margin:1.2rem 0 0;
  color:#c8c8c8
}

.footer-intro strong {
  color:#fff
}

.footer-heading {
  color:var(--yellow);
  font-size:clamp(1.25rem,1.7vw,1.8rem);
  line-height:1.1;
  font-weight:800;
  margin:0 0 1.35rem;
  text-transform:none;
  letter-spacing:0
}

.footer-block-spaced {
  margin-top:2.3rem
}

.footer-list {
  list-style:none;
  padding:0;
  margin:0
}

.footer-list li {
  margin:.42rem 0
}

.footer-list a,
.footer-contact-link a,
.footer-bottom a {
  color:#fff;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:4px
}

.footer-list a:hover,
.footer-contact-link a:hover,
.footer-bottom a:hover {
  color:var(--yellow)
}

.footer-address {
  font-style:normal;
  line-height:1.55;
  margin:0 0 2.3rem;
  color:#c8c8c8
}

.footer-contact-link {
  margin:0 0 1.4rem;
  font-weight:700
}

.footer-contact-link a {
  color:var(--yellow);
  text-decoration:none
}

.footer-newsletter-copy {
  max-width:470px;
  line-height:1.65;
  margin-bottom:1.8rem
}

.newsletter-form {
  display:grid;
  gap:1rem
}

.newsletter-form input {
  width:100%;
  border:0;
  border-radius:0;
  background:#d7d7d9;
  color:#111;
  padding:1rem .9rem;
  font-size:1rem;
  outline:0
}

.newsletter-form input::placeholder {
  color:#989898
}

.newsletter-form button {
  width:100%;
  border:0;
  border-radius:12px;
  background:var(--yellow);
  color:#111;
  padding:1rem 1.2rem;
  text-transform:uppercase;
  font-size:.95rem;
  transition:.2s
}

.newsletter-form button:hover {
  background:#fff
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:2rem;
  border-top:1px solid #333;
  margin-top:4.5rem;
  padding-top:1.5rem;
  font-size:.72rem;
  color:#858585
}

.footer-socials {
  display:flex;
  gap:1.25rem;
  flex-wrap:wrap
}

.footer-socials a {
  text-decoration:none;
  color:#aaa
}

.footer-socials a:hover {
  color:var(--yellow)
}

.page-hero {
  padding:clamp(4rem,9vw,9rem) 0 3rem
}

.page-hero .page-title {
  margin-bottom:2rem
}

.page-hero p {
  max-width:760px;
  font-size:1.25rem
}

.page-image {
  height:min(58vw,680px);
  min-height:360px
}

.page-image img {
  width:100%;
  height:100%;
  object-fit:cover
}

.split-section {
  display:grid;
  grid-template-columns:1fr 1fr
}

.split-section>div {
  min-height:560px
}

.split-copy {
  padding:clamp(3rem,7vw,7rem) var(--shell);
  display:flex;
  flex-direction:column;
  justify-content:center
}

.split-image img {
  width:100%;
  height:100%;
  object-fit:cover
}

.gallery-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:#fff
}

.gallery-grid figure {
  margin:0;
  overflow:hidden
}

.gallery-grid img {
  display:block;
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  transition:transform .4s
}

.gallery-grid figure:hover img {
  transform:scale(1.02)
}

.placeholder-tile {
  aspect-ratio:1/1;
  border:1px solid #aaa;
  display:grid;
  place-items:center;
  padding:2rem;
  text-align:center;
  background:#eee
}

.contact-card {
    border-top: none;
    padding-top: 0;
}

.media-cover {
  width:100%;
  height:100%;
  object-fit:cover
}

.ratio video {
  object-fit:cover
}

.small-caps {
  font-size:.75rem;
  letter-spacing:.18em;
  text-transform:uppercase
}

.section-dark {
  background:#111;
  color:#fff
}

.section-pad {
  padding:clamp(4.5rem,8vw,8rem) 0
}

.btn {
  border-radius:0;
  text-transform:uppercase;
  font-size:.75rem;
  letter-spacing:.12em;
  font-weight:700
}

.btn-dark {
  background:#111;
  border-color:#111
}

.btn-warning {
  background:var(--yellow);
  border-color:var(--yellow);
  color:#111
}

@media(max-width:1199.98px) {
  .navbar {
    min-height:88px
  }

  .navbar-collapse {
    padding:1.5rem 0;
    border-top:1px solid #ddd;
    margin-top:1rem
  }

  .nav-link {
    padding:.65rem 0!important
  }

  .shop-link {
    display:inline-block;
    margin:.6rem 0 0;
    padding:.65rem 1rem!important
  }

  .brand-mark img {
    width:235px
  }

}

@media(max-width:767.98px) {
  .hero-image {
    height:62vh;
    min-height:430px
  }

  .hero-image--overlay:after {
    background:linear-gradient(0deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.22) 62%,rgba(0,0,0,.04) 100%)
  }

  .hero-overlay {
    padding-bottom:2rem
  }

  .hero-overlay h1,
    .hero-title h1,
    .page-title {
    font-size:clamp(3.7rem,18vw,6.7rem)
  }

  .hero-overlay .strap,
    .hero-title .strap {
    letter-spacing:.16em
  }

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

  .editorial-card {
    min-height:510px;
    border-right:0
  }

  .event-feature {
    grid-template-columns:1fr
  }

  .event-image {
    min-height:360px
  }

  .event-row {
    grid-template-columns:92px 1fr auto;
    gap:.8rem
  }

  .event-row h4 {
    font-size:.95rem
  }

  .story-band {
    grid-template-columns:1fr
  }

  .story-band img:nth-child(n+2) {
    display:none
  }

  .split-section {
    grid-template-columns:1fr
  }

  .split-section>div {
    min-height:auto
  }

  .split-image {
    height:460px
  }

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

  .footer-bottom {
    flex-direction:column
  }

  .footer-image-band {
    height:170px
  }

}

@media(max-width:480px) {
  .brand-mark img {
    width:190px
  }

  .hero-image {
    min-height:380px
  }

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

  .event-row {
    grid-template-columns:76px 1fr
  }

  .event-row .arrow {
    display:none
  }

}

/* Courtyard page */

.courtyard-hero {
  position:relative;
  height:min(72vw,850px);
  min-height:560px;
  overflow:hidden;
  background:#111
}

.courtyard-hero>img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 38%
}

.courtyard-hero:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.18) 65%,rgba(0,0,0,.04))
}

.courtyard-hero__overlay {
  position:absolute;
  z-index:2;
  inset:0;
  display:flex;
  align-items:flex-end;
  color:#fff;
  padding-bottom:clamp(2.5rem,6vw,6rem)
}

.courtyard-hero h1 {
  font-size:clamp(4.5rem,11vw,10rem);
  line-height:.76;
  letter-spacing:-.075em;
  text-transform:uppercase;
  font-weight:900;
  margin:0
}

.courtyard-hero__strap {
  display:inline-block;
  margin:1.5rem 0 0;
  background:var(--yellow);
  color:#111;
  padding:.55rem .8rem;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:800
}

.kicker--yellow {
  color:var(--yellow)
}

.courtyard-heading {
  font-size:clamp(2.8rem,6vw,6.2rem);
  line-height:.88;
  letter-spacing:-.055em;
  text-transform:uppercase;
  font-weight:900;
  margin:0
}

.courtyard-copy {
  font-size:1.12rem;
  line-height:1.7
}

.anniversary-panel {
  background:var(--yellow);
  padding:clamp(4rem,8vw,8rem) 0
}

.anniversary-grid {
  display:grid;
  grid-template-columns:minmax(250px,.75fr) 1.25fr;
  gap:clamp(2rem,6vw,7rem);
  align-items:center
}

.anniversary-number {
  font-size:clamp(11rem,27vw,28rem);
  line-height:.7;
  font-weight:900;
  letter-spacing:-.1em
}

.anniversary-copy h2 {
  font-size:clamp(3rem,7vw,7rem);
  line-height:.82;
  text-transform:uppercase;
  letter-spacing:-.065em;
  font-weight:900;
  margin:0 0 2rem
}

.anniversary-copy p:last-child {
  max-width:720px;
  font-size:1.15rem
}

.courtyard-event {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  background:#111;
  color:#fff
}

.courtyard-event__image {
  min-height:680px
}

.courtyard-event__image img {
  width:100%;
  height:100%;
  object-fit:cover
}

.courtyard-event__copy {
  padding:clamp(3rem,7vw,7rem);
  display:flex;
  flex-direction:column;
  justify-content:center
}

.courtyard-event__copy h2 {
  font-size:clamp(3rem,6vw,6.5rem);
  line-height:.84;
  text-transform:uppercase;
  letter-spacing:-.06em;
  font-weight:900;
  margin:1rem 0 2rem
}

.courtyard-event__copy p {
  max-width:680px
}

.yellow-button {
  display:inline-block;
  align-self:flex-start;
  margin-top:1.5rem;
  background:var(--yellow);
  color:#111;
  padding:1rem 1.35rem;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.75rem;
  font-weight:800
}

.yellow-button:hover {
  background:#fff
}

.courtyard-gallery-heading {
  margin-bottom:3rem
}

.courtyard-gallery {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:#fff
}

.courtyard-gallery figure {
  margin:0;
  overflow:hidden
}

.courtyard-gallery img {
  display:block;
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  transition:transform .45s
}

.courtyard-gallery figure:hover img {
  transform:scale(1.02)
}

.courtyard-visit {
  background:var(--yellow);
  padding:clamp(4rem,7vw,7rem) 0
}

.courtyard-visit h2 {
  font-size:clamp(3rem,7vw,7rem);
  line-height:.85;
  text-transform:uppercase;
  letter-spacing:-.06em;
  font-weight:900;
  margin:0
}

.courtyard-visit .outline-button:hover {
  background:#111;
  color:#fff
}

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

  .anniversary-number {
    font-size:clamp(10rem,40vw,18rem)
  }

  .courtyard-event {
    grid-template-columns:1fr
  }

  .courtyard-event__image {
    min-height:520px
  }

}

@media(max-width:767.98px) {
  .courtyard-hero {
    height:68vh;
    min-height:520px
  }

  .courtyard-hero:after {
    background:linear-gradient(0deg,rgba(0,0,0,.75),rgba(0,0,0,.08) 75%)
  }

  .courtyard-gallery {
    grid-template-columns:1fr
  }

  .courtyard-gallery img {
    aspect-ratio:1/1
  }

  .courtyard-event__image {
    min-height:420px
  }

}

/* v2.6 navigation, maps and layout refinements */

.dropdown-menu {
  border:1px solid #111;
  border-radius:0;
  padding:.45rem 0;
  margin-top:.45rem;
  min-width:210px;
  box-shadow:none
}

.dropdown-item {
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:700;
  padding:.75rem 1rem;
  color:#111
}

.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active {
  background:var(--yellow);
  color:#111
}

.dropdown-toggle::after {
  margin-left:.5rem;
  vertical-align:.16em
}

.footer-contact-link {
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:break-word
}

.footer-contact-link a {
  display:inline-block;
  max-width:100%
}

.event-image--ian img {
  object-position:center center
}

.visit-map-section {
  padding:clamp(4rem,8vw,8rem) 0;
  background:#f4f4f2;
  border-top:1px solid var(--line)
}

.visit-map-grid {
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:clamp(2.5rem,6vw,7rem);
  align-items:center
}

.visit-map-copy h2,
.contact-map-copy h2 {
  font-size:clamp(2.7rem,5vw,5.4rem);
  line-height:.88;
  letter-spacing:-.055em;
  text-transform:uppercase;
  font-weight:900;
  margin:0 0 2rem
}

.visit-map-copy .lead-copy {
  font-size:1.35rem
}

.map-notice {
  background:var(--yellow);
  color:#111;
  padding:1.25rem 1.35rem;
  margin:2rem 0;
  font-size:1rem;
  line-height:1.55;
  border-left:8px solid #111
}

.map-frame {
  min-height:520px;
  background:#ddd
}

.map-frame iframe {
  display:block;
  width:100%;
  height:100%;
  min-height:520px;
  border:0
}

.contact-details-section {
  padding:0 0 clamp(5rem,9vw,9rem)
}

.contact-card h2 {
  font-size:clamp(1.55rem,2.4vw,2.45rem);
  line-height:1.25;
  margin:0
}

.contact-card a {
  text-decoration:none
}

.contact-card a:hover {
  text-decoration:underline;
  text-underline-offset:5px
}

.map-notice--contact {
  margin:clamp(3rem,6vw,6rem) 0 2rem
}

.contact-map-grid {
  display:grid;
  grid-template-columns:1.25fr .75fr;
  background:#111;
  color:#fff
}

.map-frame--large,
.map-frame--large iframe {
  min-height:620px
}

.contact-map-copy {
  padding:clamp(2.5rem,5vw,5rem);
  display:flex;
  flex-direction:column;
  justify-content:center
}

.contact-map-copy p:not(.kicker) {
  font-size:1.1rem;
  line-height:1.7
}

@media(min-width:1200px) {
  .navbar .dropdown:hover>.dropdown-menu {
    display:block
  }

  .navbar .dropdown-menu {
    margin-top:0
  }

}

@media(max-width:1199.98px) {
  .dropdown-menu {
    border:0;
    border-left:4px solid var(--yellow);
    margin:.15rem 0 .55rem;
    padding:.15rem 0;
    background:#f5f5f5
  }

  .dropdown-item {
    padding:.65rem 1rem
  }

}

@media(max-width:991.98px) {
  .visit-map-grid,
    .contact-map-grid {
    grid-template-columns:1fr
  }

  .map-frame,
    .map-frame iframe {
    min-height:430px
  }

  .contact-map-copy {
    order:-1
  }

}

@media(max-width:575.98px) {
  .map-frame,
    .map-frame iframe,
    .map-frame--large,
    .map-frame--large iframe {
    min-height:350px
  }

  .map-notice {
    font-size:.95rem
  }

}

/* v2.7: centred desktop navigation and social icons */

@media (min-width:1200px) {
  .site-header .navbar .ps-shell {
    display:grid;
    grid-template-columns:minmax(250px,1fr) auto minmax(250px,1fr);
    align-items:center
  }

  .site-header .navbar-brand {
    grid-column:1;
    justify-self:start
  }

  .site-header .navbar-collapse {
    grid-column:2;
    justify-self:center
  }

  .site-header .navbar-nav {
    margin-left:0!important;
    margin-right:0!important;
    justify-content:center
  }

}

.footer-socials {
  align-items:center
}

.footer-socials .social-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border:1px solid #4a4a4a;
  border-radius:50%;
  color:#fff;
  text-decoration:none;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease
}

.footer-socials .social-icon svg {
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round
}

.footer-socials .social-icon:nth-child(2) svg {
  fill:currentColor;
  stroke:none
}

.footer-socials .social-icon:hover,
.footer-socials .social-icon:focus {
  background:var(--yellow);
  border-color:var(--yellow);
  color:#111;
  transform:translateY(-2px)
}

@media(max-width:1199.98px) {
  .site-header .navbar-collapse {
    justify-content:flex-start!important
  }

}

/* v2.8: centred navigation, right-aligned shop and header social icons */

@media (min-width:1200px) {
  .site-header .navbar .ps-shell {
    grid-template-columns:minmax(285px,1fr) auto minmax(285px,1fr);
  }

  .site-header .navbar-collapse {
    grid-column:2;
    justify-self:center
  }

  .header-actions {
    grid-column:3;
    justify-self:end;
    display:flex;
    align-items:center;
    gap:.65rem
  }

}

.header-actions .header-shop-link {
  margin-left:.35rem
}

.header-social-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border:1px solid #111;
  border-radius:50%;
  color:#111;
  text-decoration:none;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
  flex:0 0 auto
}

.header-social-icon svg {
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round
}

.header-social-icon:nth-of-type(2) svg {
  fill:currentColor;
  stroke:none
}

.header-social-icon:hover,
.header-social-icon:focus {
  background:var(--yellow);
  border-color:var(--yellow);
  color:#111;
  transform:translateY(-1px)
}

.header-shop-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  font-weight:700;
  min-height:42px
}

.mobile-nav-actions {
  display:flex;
  align-items:center;
  gap:.55rem;
  margin-left:auto;
  margin-right:.75rem
}

.mobile-nav-actions .header-social-icon {
  width:34px;
  height:34px
}

.mobile-nav-actions .header-shop-link {
  margin:0;
  padding:.58rem .9rem!important
}

@media(max-width:767.98px) {
  .mobile-nav-actions .header-social-icon {
    display:none
  }

  .mobile-nav-actions .header-shop-link {
    font-size:.66rem;
    padding:.5rem .72rem!important
  }

}

/* v2.9 homepage simplification and Our Story gallery */

.welcome-section {
  padding:clamp(4rem,8vw,8rem) 0;
  background:#fff
}

.welcome-grid {
  display:grid;
  grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);
  gap:clamp(3rem,8vw,9rem);
  align-items:start
}

.opening-panel {
  border-top:8px solid var(--yellow);
  padding-top:1.6rem
}

.opening-panel h2 {
  font-size:clamp(2.2rem,4vw,4.6rem);
  line-height:.9;
  text-transform:uppercase;
  letter-spacing:-.045em;
  font-weight:900;
  margin:1rem 0 2rem
}

.opening-list {
  margin:0;
  border-top:1px solid var(--line)
}

.opening-list>div {
  display:grid;
  grid-template-columns:1fr auto;
  gap:1rem;
  padding:1rem 0;
  border-bottom:1px solid var(--line)
}

.opening-list dt,
.opening-list dd {
  margin:0;
  font-size:1rem
}

.opening-list dt {
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em
}

.opening-list dd {
  font-weight:600
}

.welcome-manifesto {
  margin-top:2rem;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.5rem
}

.welcome-manifesto span {
  display:inline-block;
  background:#111;
  color:#fff;
  padding:.4rem .65rem;
  font-size:clamp(1.05rem,1.7vw,1.45rem);
  font-weight:800
}

.welcome-manifesto span:nth-child(2) {
  background:var(--yellow);
  color:#111
}

.intro-copy--welcome {
  max-width:none
}

.intro-copy--welcome .lead-copy {
  font-size:clamp(1.7rem,3.1vw,3rem);
  line-height:1.15
}

.events-section--home {
  border-top:1px solid var(--line);
  padding-top:clamp(4rem,7vw,7rem)
}

.events-section--home .event-copy h2 {
  font-size:clamp(2.8rem,5.3vw,6rem);
  line-height:.84;
  text-transform:uppercase;
  letter-spacing:-.055em;
  font-weight:900;
  margin:1rem 0 1.7rem
}

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

.story-hero {
  padding:clamp(5rem,10vw,10rem) 0;
  background:#fff;
  border-bottom:1px solid var(--line)
}

.story-hero h1 {
  font-size:clamp(4.8rem,12vw,12rem);
  line-height:.73;
  letter-spacing:-.075em;
  text-transform:uppercase;
  font-weight:900;
  margin:1.5rem 0 0
}

.story-intro-section {
  padding:clamp(5rem,9vw,9rem) 0
}

.story-intro-grid {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(3rem,8vw,9rem)
}

.story-intro-grid h2,
.about-gallery-heading h2 {
  font-size:clamp(2.8rem,5.6vw,6rem);
  line-height:.9;
  letter-spacing:-.055em;
  text-transform:uppercase;
  font-weight:900;
  margin:1rem 0 0
}

.story-rich-copy {
  font-size:1.12rem;
  line-height:1.75
}

.story-rich-copy .lead-copy {
  font-size:clamp(1.6rem,2.7vw,2.6rem);
  line-height:1.2;
  margin-top:0
}

.lucie-section {
  background:#111;
  color:#fff;
  padding:clamp(4rem,8vw,8rem) 0
}

.lucie-grid {
  display:grid;
  grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:center
}

.lucie-portrait {
  margin:0
}

.lucie-portrait img {
  display:block;
  width:100%;
  max-height:850px;
  object-fit:cover;
  object-position:center top
}

.lucie-copy h2 {
  font-size:clamp(3rem,6vw,6.5rem);
  line-height:.84;
  text-transform:uppercase;
  letter-spacing:-.06em;
  font-weight:900;
  margin:1rem 0 2rem
}

.lucie-copy p {
  font-size:1.08rem;
  line-height:1.72
}

.lucie-copy .lead-copy {
  font-size:clamp(1.45rem,2.4vw,2.25rem);
  line-height:1.25
}

.lucie-copy blockquote {
  margin:2.5rem 0 0;
  padding:1.5rem 0 0;
  border-top:3px solid var(--yellow);
  font-size:clamp(1.35rem,2.5vw,2.25rem);
  line-height:1.3;
  font-weight:700
}

.what-we-do-section {
  padding:clamp(5rem,9vw,9rem) 0;
  background:var(--yellow)
}

.what-we-do-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:#111;
  margin-top:clamp(2.5rem,5vw,5rem)
}

.what-we-do-grid article {
  background:var(--yellow);
  padding:clamp(2rem,4vw,4rem)
}

.what-we-do-grid article>span {
  display:block;
  font-weight:900;
  font-size:1.1rem;
  margin-bottom:3rem
}

.what-we-do-grid h3 {
  font-size:clamp(1.8rem,3vw,3.2rem);
  line-height:.95;
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:-.04em
}

.what-we-do-grid p {
  font-size:1.04rem;
  line-height:1.6
}

.about-gallery-section {
  padding:clamp(5rem,9vw,9rem) 0 0
}

.about-gallery-heading {
  max-width:950px;
  margin-bottom:clamp(3rem,6vw,6rem)
}

.about-gallery-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:2px;
  background:#fff
}

.about-gallery-grid figure {
  margin:0;
  overflow:hidden;
  background:#eee
}

.about-gallery-grid img {
  display:block;
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  transition:transform .4s ease
}

.about-gallery-grid figure:nth-child(1) img,
.about-gallery-grid figure:nth-child(6) img {
  aspect-ratio:1/1
}

.about-gallery-grid figure:hover img {
  transform:scale(1.025)
}

@media(max-width:991.98px) {
  .welcome-grid,
    .story-intro-grid,
    .lucie-grid {
    grid-template-columns:1fr
  }

  .editorial-grid--three {
    grid-template-columns:1fr
  }

  .what-we-do-grid {
    grid-template-columns:1fr
  }

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

  .opening-panel {
    max-width:620px
  }

  .lucie-portrait img {
    max-height:720px
  }

  .navbar-toggler {
    order:4;
    margin-left:.25rem
  }

  .mobile-nav-actions {
    order:3;
    margin-left:auto;
    margin-right:.35rem
  }

  .navbar-brand {
    order:1
  }

  .navbar-collapse {
    order:5;
    width:100%
  }

}

@media(max-width:575.98px) {
  .opening-list>div {
    grid-template-columns:1fr
  }

  .about-gallery-grid {
    grid-template-columns:1fr
  }

  .story-hero h1 {
    font-size:clamp(4rem,23vw,6rem)
  }

  .mobile-nav-actions .header-shop-link {
    padding:.48rem .68rem!important
  }

}

/* v3.0 homepage balance refinements */

.hero-image {
  height:min(43vw,560px);
  min-height:390px
}

.welcome-grid--reversed {
  grid-template-columns:minmax(0,1.28fr) minmax(280px,.72fr)
}

.welcome-grid--reversed .opening-panel {
  border-top-color:var(--yellow)
}

.shop-callout--split {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  padding:0;
  background:var(--yellow);
  min-height:620px
}

.shop-showcase {
  min-height:620px;
  background:#111;
  overflow:hidden
}

.shop-showcase .carousel-inner,
.shop-showcase .carousel-item {
  height:100%;
  min-height:620px
}

.shop-showcase .carousel-item img {
  display:block;
  width:100%;
  height:620px;
  object-fit:cover;
  object-position:center
}

.shop-showcase .carousel-indicators {
  margin-bottom:1.35rem
}

.shop-showcase .carousel-indicators [data-bs-target] {
  width:34px;
  height:4px;
  border:0;
  background-color:#fff;
  opacity:.55
}

.shop-showcase .carousel-indicators .active {
  opacity:1;
  background-color:var(--yellow)
}

.shop-callout__copy {
  padding:clamp(3.5rem,7vw,7rem);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start
}

.shop-callout__copy .section-heading {
  font-size:clamp(3rem,6.1vw,6.3rem);
  max-width:920px;
  margin-bottom:1.5rem
}

.shop-callout__copy>p:not(.kicker) {
  max-width:650px;
  font-size:1.08rem;
  margin:0 0 1.5rem
}

.shop-callout__copy .outline-button:hover {
  background:#111;
  color:#fff
}

@media(max-width:991.98px) {
  .hero-image {
    height:52vw;
    min-height:390px
  }

  .welcome-grid--reversed {
    grid-template-columns:1fr
  }

  .shop-callout--split {
    grid-template-columns:1fr;
    min-height:0
  }

  .shop-showcase,
    .shop-showcase .carousel-inner,
    .shop-showcase .carousel-item {
    min-height:520px
  }

  .shop-showcase .carousel-item img {
    height:520px
  }

  .shop-callout__copy {
    min-height:520px
  }

}

@media(max-width:575.98px) {
  .hero-image {
    height:55vh;
    min-height:350px
  }

  .shop-showcase,
    .shop-showcase .carousel-inner,
    .shop-showcase .carousel-item {
    min-height:430px
  }

  .shop-showcase .carousel-item img {
    height:430px
  }

  .shop-callout__copy {
    min-height:0;
    padding:3.5rem var(--shell) 4rem
  }

}

/* v3.1 colour balance and product carousel */

.hero-accent {
  height:18px;
  overflow:hidden;
  background:var(--yellow);
  border-top:1px solid #111;
  border-bottom:1px solid #111
}

.hero-accent img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center
}

.welcome-section {
  position:relative
}

.welcome-section:before {
  content:"";
  position:absolute;
  left:var(--shell);
  top:0;
  width:min(180px,18vw);
  height:8px;
  background:var(--yellow)
}

.welcome-manifesto--row {
  flex-direction:row;
  flex-wrap:wrap;
  gap:.45rem;
  margin-top:1.8rem
}

.welcome-manifesto--row span {
  font-size:clamp(.9rem,1.25vw,1.15rem);
  padding:.45rem .65rem
}

.events-section--home>.container-fluid>.kicker {
  display:inline-block;
  background:var(--yellow);
  padding:.45rem .65rem;
  color:#111;
  margin-bottom:1.4rem
}

.shop-showcase .carousel-item {
  background:#ececec
}

.shop-showcase .carousel-item img {
  object-fit:contain;
  object-position:center;
  background:#d7d7d7
}

.shop-callout__copy {
  position:relative
}

.shop-callout__copy:before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:14px;
  background:#111
}

@media(max-width:767.98px) {
  .hero-accent {
    height:12px
  }

  .welcome-section:before {
    width:120px;
    height:6px
  }

  .welcome-manifesto--row {
    gap:.35rem
  }

}

/* v3.2 spacing and section balance refinements */

.hero-accent {
  display:none!important
}

.welcome-section {
  padding-bottom:clamp(5rem,10vw,10rem)
}

.events-section--home {
  border-top:8px solid #111;
  padding-top:clamp(5rem,8vw,8rem);
  position:relative
}

.events-section--home:before {
  content:"";
  position:absolute;
  top:-8px;
  left:var(--shell);
  width:clamp(110px,16vw,220px);
  height:8px;
  background:var(--yellow)
}

.other-stuff-section {
  background:#fff;
  padding:clamp(5rem,9vw,9rem) 0 clamp(6rem,10vw,10rem)
}

.section-label--contained {
  padding:0 0 1.2rem;
  border-top:0;
  border-bottom:1px solid #111;
  margin-bottom:clamp(2rem,4vw,3.5rem)
}

.editorial-grid--spaced {
  gap:clamp(.75rem,1.5vw,1.5rem);
  background:transparent
}

.editorial-grid--spaced .editorial-card {
  min-height:clamp(390px,34vw,520px);
  border:0
}

.editorial-grid--spaced .editorial-content {
  left:clamp(1.25rem,2.5vw,2.5rem);
  right:clamp(1.25rem,2.5vw,2.5rem);
  bottom:clamp(1.25rem,2.5vw,2.5rem)
}

.editorial-grid--spaced .editorial-content h3 {
  font-size:clamp(2.2rem,3.7vw,4.3rem)
}

.shop-callout--split {
  border-top:1px solid #111
}

@media(max-width:991.98px) {
  .editorial-grid--spaced {
    gap:1rem
  }

  .editorial-grid--spaced .editorial-card {
    min-height:460px
  }

}

@media(max-width:575.98px) {
  .welcome-section {
    padding-bottom:5rem
  }

  .events-section--home {
    padding-top:4rem
  }

  .other-stuff-section {
    padding:4.5rem 0 5rem
  }

  .editorial-grid--spaced .editorial-card {
    min-height:380px
  }

}

/* v3.3 lighter section transitions and refined footer chevron */

.welcome-section:before {
  display:none!important
}

.events-section--home {
  border-top:0;
  padding-top:clamp(4.5rem,8vw,8rem)
}

.events-section--home:before {
  display:none!important
}

.section-label--contained {
  border-bottom:0;
  margin-bottom:clamp(2rem,4vw,3.5rem);
  padding-bottom:0
}

.footer-chevron {
  height:26px;
  background:repeating-linear-gradient(45deg,var(--yellow) 0 48px,#000 48px 96px)
}

.footer-chevron img {
  display:none
}

@media(max-width:575.98px) {
  .footer-chevron {
    height:20px;
    background-size:auto
  }

}

/* v3.4 tighter homepage rhythm and sticky navigation */

.site-header {
  position:sticky;
  top:0;
  z-index:1035;
  box-shadow:0 1px 0 rgba(0,0,0,.08);
}

html {
  scroll-padding-top:110px
}

/* Reduce the oversized gaps between the main homepage sections */

.welcome-section {
  padding-top:clamp(3.75rem,6.5vw,6.5rem);
  padding-bottom:clamp(3.75rem,6.5vw,6.5rem);
}

.events-section--home {
  padding-top:clamp(3.5rem,6vw,6rem);
  padding-bottom:clamp(3.75rem,6.5vw,6.5rem);
}

.other-stuff-section {
  padding-top:clamp(3.75rem,6.5vw,6.5rem);
  padding-bottom:clamp(4.25rem,7vw,7rem);
}

.section-label--contained {
  margin-bottom:clamp(1.75rem,3vw,2.75rem);
}

@media(max-width:1199.98px) {
  html {
    scroll-padding-top:86px
  }

  .site-header .navbar {
    min-height:84px
  }

}

@media(max-width:575.98px) {
  .welcome-section {
    padding-top:3.25rem;
    padding-bottom:3.5rem
  }

  .events-section--home {
    padding-top:3.25rem;
    padding-bottom:3.75rem
  }

  .other-stuff-section {
    padding-top:3.5rem;
    padding-bottom:4.25rem
  }

}

/* v3.5 About page typography refinement */

.story-hero {
  padding:clamp(4.5rem,7vw,7rem) 0;
}

.story-hero h1 {
  max-width:1100px;
  font-size:clamp(4.2rem,9vw,8.6rem);
  line-height:.82;
  letter-spacing:-.055em;
  font-weight:800;
}

.story-intro-section {
  padding:clamp(4rem,7vw,7rem) 0;
}

.story-intro-grid h2,
.about-gallery-heading h2 {
  font-size:clamp(2.7rem,4.5vw,4.9rem);
  line-height:.96;
  letter-spacing:-.045em;
  font-weight:800;
}

.story-rich-copy {
  font-size:1.08rem;
  line-height:1.72;
}

.story-rich-copy .lead-copy {
  font-size:clamp(1.55rem,2.25vw,2.25rem);
  line-height:1.27;
  font-weight:400;
}

.lucie-section {
  padding:clamp(4rem,7vw,7rem) 0;
}

.lucie-copy h2 {
  max-width:760px;
  font-size:clamp(2.8rem,4.8vw,5rem);
  line-height:.93;
  letter-spacing:-.045em;
  font-weight:800;
  margin:1rem 0 1.8rem;
}

.lucie-copy .lead-copy {
  font-size:clamp(1.4rem,2vw,1.95rem);
  line-height:1.32;
  font-weight:400;
}

.lucie-copy p {
  font-size:1.05rem;
  line-height:1.68;
}

.lucie-copy blockquote {
  font-size:clamp(1.25rem,2vw,1.85rem);
  line-height:1.35;
  font-weight:600;
}

.what-we-do-section {
  padding:clamp(4.5rem,7vw,7rem) 0;
}

.what-we-do-section .section-heading {
  max-width:1050px;
  font-size:clamp(3rem,5.6vw,5.8rem);
  line-height:.92;
  letter-spacing:-.045em;
  font-weight:800;
}

.what-we-do-grid {
  margin-top:clamp(2rem,4vw,4rem);
}

.what-we-do-grid article {
  padding:clamp(2rem,3vw,3.25rem);
}

.what-we-do-grid article>span {
  margin-bottom:2rem;
}

.what-we-do-grid h3 {
  font-size:clamp(1.7rem,2.45vw,2.6rem);
  line-height:1;
  letter-spacing:-.03em;
  font-weight:800;
}

.about-gallery-section {
  padding:clamp(4.5rem,7vw,7rem) 0 0;
}

.about-gallery-heading {
  max-width:1000px;
  margin-bottom:clamp(2.5rem,4.5vw,4.5rem);
}

@media(max-width:767.98px) {
  .story-hero h1 {
    font-size:clamp(3.5rem,17vw,5.5rem);
    line-height:.86
  }

  .story-intro-grid h2,
    .about-gallery-heading h2 {
    font-size:clamp(2.5rem,12vw,4rem)
  }

  .lucie-copy h2 {
    font-size:clamp(2.6rem,12vw,4.2rem)
  }

  .what-we-do-section .section-heading {
    font-size:clamp(2.8rem,13vw,4.5rem)
  }

}

/* v3.6 About hero image and expanded What We Do copy */

.story-hero--with-image {
  padding:clamp(3.5rem,6vw,6rem) 0;
}

.story-hero-grid {
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(420px,1.22fr);
  gap:clamp(2.5rem,5vw,6rem);
  align-items:center;
}

.story-hero-copy h1 {
  max-width:none;
  font-size:clamp(3.8rem,7vw,7.2rem);
  line-height:.84;
  margin-top:1.25rem;
}

.story-hero-image {
  margin:0;
  min-height:520px;
  overflow:hidden;
  background:#111;
}

.story-hero-image img {
  width:100%;
  height:100%;
  min-height:520px;
  display:block;
  object-fit:cover;
  object-position:center;
}

.what-we-do-grid--expanded article {
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.what-we-do-grid--expanded h3 {
  margin:0 0 .35rem;
}

.what-we-do-grid--expanded p {
  margin:0;
}

.what-we-do-grid--expanded p + p {
  margin-top:.25rem;
}

@media(max-width:991.98px) {
  .story-hero-grid {
    grid-template-columns:1fr
  }

  .story-hero-image,
    .story-hero-image img {
    min-height:420px
  }

}

@media(max-width:575.98px) {
  .story-hero--with-image {
    padding:3rem 0
  }

  .story-hero-image,
    .story-hero-image img {
    min-height:340px
  }

  .story-hero-copy h1 {
    font-size:clamp(3.4rem,17vw,5.2rem)
  }

}

/* v3.7 About hero: yellow copy panel, compact image, no top whitespace */

.story-hero--with-image {
  padding:0;
  border-bottom:0;
  background:#fff;
}

.story-hero--with-image .story-hero-grid {
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:0;
  align-items:stretch;
}

.story-hero--with-image .story-hero-copy {
  background:var(--yellow);
  padding:clamp(3.25rem,6vw,6.5rem) clamp(2.5rem,5vw,6rem);
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:460px;
}

.story-hero--with-image .story-hero-copy h1 {
  font-size:clamp(3.7rem,6.6vw,7rem);
  line-height:.84;
  margin:1.1rem 0 0;
}

.story-hero--with-image .story-hero-image {
  min-height:460px;
  height:460px;
  margin:0;
}

.story-hero--with-image .story-hero-image img {
  min-height:0;
  height:100%;
  object-fit:cover;
  object-position:center 42%;
}

@media(max-width:991.98px) {
  .story-hero--with-image .story-hero-grid {
    grid-template-columns:1fr
  }

  .story-hero--with-image .story-hero-copy {
    min-height:auto;
    padding:3.5rem 2rem
  }

  .story-hero--with-image .story-hero-image {
    height:380px;
    min-height:380px
  }

}

@media(max-width:575.98px) {
  .story-hero--with-image {
    padding:0
  }

  .story-hero--with-image .story-hero-copy {
    padding:3rem 1.25rem
  }

  .story-hero--with-image .story-hero-image {
    height:310px;
    min-height:310px
  }

}

/* v3.8: taller About hero and improved portrait crop */

@media(min-width:992px) {
  .story-hero--with-image .story-hero-copy {
    min-height:560px;
    padding-top:clamp(4rem,7vw,7rem);
    padding-bottom:clamp(4rem,7vw,7rem);
  }

  .story-hero--with-image .story-hero-image {
    height:560px;
    min-height:560px;
  }

  .story-hero--with-image .story-hero-image img {
    object-position:center 16%;
  }

}

@media(max-width:991.98px) {
  .story-hero--with-image .story-hero-image img {
    object-position:center 14%;
  }

}

/* v3.9 About page typography and spacing polish */

.story-hero--with-image .story-hero-copy {
  padding-left:clamp(2.25rem,4.6vw,5.25rem);
  padding-right:clamp(2.25rem,4.6vw,5.25rem);
}

.story-hero--with-image .story-hero-copy h1 {
  max-width:8.2ch;
  font-size:clamp(3.5rem,5.7vw,6.25rem);
  line-height:.9;
  letter-spacing:-.045em;
  font-weight:800;
  margin-top:1rem;
}

.story-hero--with-image .story-hero-copy .kicker {
  margin-bottom:.25rem;
}

.story-intro-section {
  padding-top:clamp(4.25rem,6vw,6rem);
  padding-bottom:clamp(4.5rem,6.5vw,6.75rem);
}

.story-intro-grid {
  gap:clamp(3rem,6vw,7rem);
  align-items:start;
}

.story-intro-grid h2 {
  max-width:8.8ch;
  font-size:clamp(2.55rem,4.05vw,4.35rem);
  line-height:.98;
  letter-spacing:-.04em;
  font-weight:750;
  margin-top:1rem;
}

.story-rich-copy {
  max-width:760px;
}

.story-rich-copy .lead-copy {
  max-width:24ch;
  font-size:clamp(1.45rem,2vw,2rem);
  line-height:1.3;
  margin-bottom:1.35rem;
}

.story-rich-copy p:not(.lead-copy) {
  max-width:66ch;
  margin-bottom:1.15rem;
}

.lucie-section {
  padding-top:clamp(4.25rem,6.5vw,6.75rem);
  padding-bottom:clamp(4.25rem,6.5vw,6.75rem);
}

.lucie-grid {
  gap:clamp(3rem,6.5vw,6.5rem);
}

.lucie-copy {
  max-width:790px;
}

.lucie-copy h2 {
  max-width:12ch;
  font-size:clamp(2.7rem,4.35vw,4.55rem);
  line-height:.96;
  margin:1rem 0 2rem;
}

.lucie-copy .lead-copy {
  max-width:31ch;
  margin-bottom:1.5rem;
}

.lucie-copy p:not(.lead-copy) {
  max-width:68ch;
  margin-bottom:1rem;
}

.what-we-do-section {
  padding-top:clamp(4.25rem,6.5vw,6.75rem);
  padding-bottom:clamp(4.5rem,7vw,7rem);
}

.what-we-do-section .section-heading {
  max-width:14ch;
  font-size:clamp(2.85rem,4.9vw,5rem);
  line-height:.96;
  font-weight:780;
  margin-top:1rem;
}

.what-we-do-grid {
  margin-top:clamp(2.5rem,4.5vw,4.5rem);
}

.what-we-do-grid article {
  padding:clamp(1.75rem,2.6vw,2.75rem) clamp(1.5rem,2.4vw,2.5rem);
}

.what-we-do-grid h3 {
  font-size:clamp(1.55rem,2.05vw,2.15rem);
  line-height:1.05;
  margin-bottom:.75rem;
}

.what-we-do-grid p {
  max-width:43ch;
  line-height:1.6;
}

.about-gallery-section {
  padding-top:clamp(4.25rem,6.5vw,6.75rem);
}

.about-gallery-heading {
  margin-bottom:clamp(2.5rem,4vw,4rem);
}

.about-gallery-heading h2 {
  max-width:13ch;
  font-size:clamp(2.55rem,4.15vw,4.5rem);
  line-height:.98;
  font-weight:780;
}

@media(max-width:991.98px) {
  .story-hero--with-image .story-hero-copy h1 {
    max-width:none
  }

  .story-intro-grid h2,
    .story-rich-copy,
    .lucie-copy {
    max-width:none
  }

  .story-rich-copy .lead-copy,
    .lucie-copy .lead-copy {
    max-width:none
  }

}

@media(max-width:767.98px) {
  .story-hero--with-image .story-hero-copy {
    padding:2.75rem 1.4rem
  }

  .story-hero--with-image .story-hero-copy h1 {
    font-size:clamp(3.15rem,15vw,4.8rem);
    line-height:.9
  }

  .story-intro-section,
    .lucie-section,
    .what-we-do-section,
    .about-gallery-section {
    padding-top:3.75rem;
    padding-bottom:3.75rem
  }

  .story-intro-grid h2 {
    font-size:clamp(2.4rem,11vw,3.75rem)
  }

  .lucie-copy h2 {
    font-size:clamp(2.45rem,11vw,3.9rem)
  }

  .what-we-do-section .section-heading {
    font-size:clamp(2.55rem,12vw,4rem)
  }

  .about-gallery-heading h2 {
    font-size:clamp(2.4rem,11vw,3.75rem)
  }

}

/* v4.0 About page hierarchy refinement */

.story-intro-heading h2 {
  max-width:14ch;
  font-size:clamp(2.15rem,3.25vw,3.55rem);
  line-height:1.06;
  letter-spacing:-.035em;
  font-weight:700;
  text-transform:none;
  margin-top:.8rem;
}

.lucie-copy .kicker {
  margin-bottom:1.15rem;
}

.lucie-copy .lead-copy {
  max-width:34ch;
  font-size:clamp(1.45rem,2vw,1.95rem);
  line-height:1.34;
  margin:0 0 1.6rem;
}

@media(max-width:991.98px) {
  .story-intro-heading h2 {
    max-width:18ch
  }

}

@media(max-width:767.98px) {
  .story-intro-heading h2 {
    max-width:16ch;
    font-size:clamp(2.15rem,9.5vw,3.25rem);
    line-height:1.06;
  }

  .lucie-copy .lead-copy {
    font-size:clamp(1.35rem,6.5vw,1.75rem);
  }

}

/* What's On page, v4.1 */

.events-hero {
  display:grid;
  grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr);
  min-height:620px;
  background:#111;
  color:#fff;
}

.events-hero__copy {
  display:flex;
  align-items:center;
  background:#111;
  padding:clamp(3.5rem,7vw,7rem) var(--shell);
}

.events-hero__copy-inner {
  max-width:620px
}

.events-hero__copy h1 {
  margin:0;
  font-size:clamp(4rem,8vw,8rem);
  line-height:.82;
  letter-spacing:-.065em;
  text-transform:uppercase;
  font-weight:800;
}

.events-hero__copy p:last-child {
  max-width:580px;
  margin:1.8rem 0 0;
  font-size:clamp(1.15rem,1.8vw,1.55rem);
  line-height:1.45;
  color:#e6e6e6;
}

.events-hero__image {
  min-height:620px;
  overflow:hidden
}

.events-hero__image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 46%;
}

.events-listing {
  padding:clamp(4.5rem,8vw,7rem) 0
}

.events-listing__intro {
  margin-bottom:clamp(2.5rem,5vw,4.5rem)
}

.events-listing__intro h2 {
  max-width:760px;
  margin:0;
  font-size:clamp(2.6rem,5vw,5.2rem);
  line-height:.9;
  letter-spacing:-.05em;
  text-transform:uppercase;
  font-weight:800;
}

.events-listing .event-card {
  height:100%;
  padding-bottom:1.25rem
}

.events-listing .event-card h3 {
  margin:.9rem 0 .65rem;
  font-size:clamp(1.55rem,2.2vw,2rem);
  line-height:1.08;
  font-weight:500;
}

.events-listing .event-card .event-date {
  font-size:1rem;
  font-weight:700;
}

.events-listing .event-card hr {
  margin:.9rem 0 1.1rem;
  border-color:#111;
  opacity:.35
}

.events-listing .event-card .btn {
  margin-top:.35rem
}

.events-dj-cta {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  background:var(--yellow);
  color:#111;
}

.events-dj-cta__image {
  min-height:650px;
  overflow:hidden;
  background:#111
}

.events-dj-cta__image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 38%;
}

.events-dj-cta__copy {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(3.5rem,7vw,7rem);
}

.events-dj-cta__copy h2 {
  max-width:850px;
  margin:0 0 1.8rem;
  font-size:clamp(3rem,6vw,6.2rem);
  line-height:.84;
  letter-spacing:-.055em;
  text-transform:uppercase;
  font-weight:800;
}

.events-dj-cta__lead {
  max-width:760px;
  margin:0 0 1.25rem;
  font-size:clamp(1.25rem,2vw,1.75rem);
  line-height:1.38;
}

.events-dj-cta__copy>p:not(.kicker):not(.events-dj-cta__lead) {
  max-width:720px;
  font-size:1.06rem
}

.events-dj-cta__actions {
  display:flex;
  align-items:center;
  gap:1.5rem;
  flex-wrap:wrap;
  margin-top:1.5rem
}

.events-dj-cta .outline-button:hover {
  background:#111;
  color:#fff
}

.events-dj-cta .text-link {
  margin-top:0
}

@media(max-width:991.98px) {
  .events-hero {
    grid-template-columns:1fr;
    min-height:auto
  }

  .events-hero__copy {
    padding-top:4rem;
    padding-bottom:4rem
  }

  .events-hero__image {
    min-height:520px
  }

  .events-dj-cta {
    grid-template-columns:1fr
  }

  .events-dj-cta__image {
    min-height:520px
  }

}

@media(max-width:767.98px) {
  .events-hero__copy {
    padding-top:3.25rem;
    padding-bottom:3.5rem
  }

  .events-hero__copy h1 {
    font-size:clamp(3.7rem,17vw,6rem)
  }

  .events-hero__image {
    min-height:420px
  }

  .events-listing {
    padding:3.75rem 0
  }

  .events-dj-cta__image {
    min-height:420px
  }

  .events-dj-cta__copy {
    padding:3.5rem var(--shell)
  }

  .events-dj-cta__actions {
    align-items:flex-start;
    flex-direction:column
  }

}

/* What's On page, v4.2: tighter hero and simpler events intro */

.events-hero {
  grid-template-columns:minmax(330px,.78fr) minmax(0,1.22fr);
  min-height:440px;
}

.events-hero__copy {
  padding-top:clamp(2.75rem,5vw,4.75rem);
  padding-bottom:clamp(2.75rem,5vw,4.75rem);
}

.events-hero__copy h1 {
  font-size:clamp(3.6rem,6.4vw,6.25rem);
  line-height:.84;
}

.events-hero__copy p:last-child {
  margin-top:1.25rem;
  font-size:clamp(1.05rem,1.35vw,1.3rem);
}

.events-hero__image {
  min-height:440px;
}

.events-hero__image img {
  object-position:center 52%;
}

.events-listing__intro {
  margin-bottom:clamp(2rem,3.5vw,3rem);
}

.events-listing__intro h2 {
  font-size:clamp(2.15rem,3.8vw,4rem);
  line-height:.95;
  text-transform:none;
  letter-spacing:-.035em;
  font-weight:600;
}

@media(max-width:991.98px) {
  .events-hero__image {
    min-height:380px
  }

}

@media(max-width:767.98px) {
  .events-hero__copy {
    padding-top:2.75rem;
    padding-bottom:2.9rem
  }

  .events-hero__copy h1 {
    font-size:clamp(3.25rem,15vw,5rem)
  }

  .events-hero__image {
    min-height:300px
  }

  .events-listing__intro h2 {
    font-size:clamp(2rem,9vw,3rem)
  }

}

/* What's On page, v4.3: truly compact hero */

@media(min-width:992px) {
  .events-hero {
    height:360px;
    min-height:0;
    grid-template-columns:minmax(360px,.72fr) minmax(0,1.28fr);
    overflow:hidden;
  }

  .events-hero__copy {
    min-height:0;
    padding-top:2.5rem;
    padding-bottom:2.5rem;
  }

  .events-hero__copy h1 {
    font-size:clamp(3.5rem,5.2vw,5.35rem);
  }

  .events-hero__copy p:last-child {
    max-width:520px;
    font-size:1.08rem;
    line-height:1.42;
  }

  .events-hero__image {
    height:360px;
    min-height:0;
  }

  .events-hero__image img {
    height:360px;
    object-position:center 66%;
  }

}

@media(max-width:991.98px) {
  .events-hero {
    height:auto;
    min-height:0;
  }

  .events-hero__copy {
    min-height:0;
    padding-top:3rem;
    padding-bottom:3rem;
  }

  .events-hero__image {
    height:320px;
    min-height:0;
  }

  .events-hero__image img {
    height:320px;
    object-position:center 66%;
  }

}

@media(max-width:767.98px) {
  .events-hero__copy {
    padding-top:2.5rem;
    padding-bottom:2.6rem;
  }

  .events-hero__image,
    .events-hero__image img {
    height:250px;
    min-height:0;
  }

  .events-hero__image img {
    object-position:center 64%;
  }

}

/* What's On page, v4.4: hero 15% deeper */

@media(min-width:992px) {
  .events-hero {
    height:414px;
  }

  .events-hero__image,
    .events-hero__image img {
    height:414px;
  }

  .events-hero__image img {
    object-position:center 64%;
  }

}

@media(max-width:991.98px) and (min-width:768px) {
  .events-hero__image,
    .events-hero__image img {
    height:368px;
  }

}

@media(max-width:767.98px) {
  .events-hero__image,
    .events-hero__image img {
    height:288px;
  }

}

/* DJ page, v4.5 */

#dj-school,
#dj-hire {
  scroll-margin-top:106px
}

.dj-page-hero {
  display:grid;
  grid-template-columns:minmax(360px,.76fr) minmax(0,1.24fr);
  height:470px;
  overflow:hidden;
  background:#111;
  color:#fff;
}

.dj-page-hero__copy {
  display:flex;
  align-items:center;
  padding:clamp(3rem,6vw,5.5rem) var(--shell);
  background:#111;
}

.dj-page-hero__copy h1 {
  margin:0;
  font-size:clamp(3.8rem,6.2vw,6.4rem);
  line-height:.82;
  letter-spacing:-.06em;
  text-transform:uppercase;
  font-weight:800;
}

.dj-page-hero__copy p:last-child {
  max-width:560px;
  margin:1.5rem 0 0;
  font-size:clamp(1.05rem,1.4vw,1.28rem);
  line-height:1.45;
  color:#e7e7e7;
}

.dj-page-hero__image {
  height:470px;
  overflow:hidden;
  background:#222
}

.dj-page-hero__image img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 48%;
  display:block;
}

.dj-section-nav {
  display:flex;
  justify-content:center;
  gap:0;
  background:var(--yellow);
  border-bottom:1px solid #111;
}

.dj-section-nav a {
  display:block;
  min-width:190px;
  padding:1rem 2rem;
  text-align:center;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.74rem;
  font-weight:800;
  border-left:1px solid rgba(0,0,0,.35);
}

.dj-section-nav a:last-child {
  border-right:1px solid rgba(0,0,0,.35)
}

.dj-section-nav a:hover {
  background:#111;
  color:#fff
}

.dj-school-intro {
  padding:clamp(4.5rem,8vw,7.5rem) 0;
  background:#fff
}

.dj-school-intro h2 {
  max-width:620px;
  margin:0;
  font-size:clamp(2.8rem,5.5vw,5.6rem);
  line-height:.9;
  letter-spacing:-.05em;
  text-transform:uppercase;
  font-weight:750;
}

.dj-school-intro .col-lg-7 {
  max-width:850px
}

.dj-intro-lead {
  font-size:clamp(1.45rem,2.4vw,2.25rem);
  line-height:1.3;
  margin-bottom:1.5rem
}

.dj-school-intro .col-lg-7>p:not(.dj-intro-lead) {
  max-width:760px;
  font-size:1.06rem
}

.dj-courses {
  background:var(--yellow);
  padding:clamp(4rem,7vw,7rem) 0
}

.dj-courses__heading {
  margin-bottom:clamp(2.5rem,4vw,4rem)
}

.dj-courses__heading h2 {
  margin:0;
  font-size:clamp(2.7rem,5vw,5.4rem);
  line-height:.9;
  letter-spacing:-.05em;
  text-transform:uppercase;
  font-weight:800;
}

.dj-course-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid #111;
  border-bottom:1px solid #111
}

.dj-course-card {
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:clamp(2rem,3.4vw,3.5rem);
  border-right:1px solid rgba(0,0,0,.45);
}

.dj-course-card:last-child {
  border-right:0
}

.dj-course-card__top {
  margin-bottom:1.25rem
}

.dj-course-card h3 {
  margin:0 0 1rem;
  font-size:clamp(1.8rem,2.7vw,2.65rem);
  line-height:1;
  letter-spacing:-.035em;
  text-transform:uppercase;
  font-weight:800
}

.dj-course-price {
  margin:0;
  font-size:1.4rem;
  font-weight:800
}

.dj-course-price span {
  font-size:.72rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  font-weight:700
}

.dj-course-card>p {
  font-size:1rem;
  line-height:1.55;
  min-height:7.4em
}

.dj-date-list {
  margin:1.2rem 0 2rem;
  border-top:1px solid rgba(0,0,0,.4)
}

.dj-date-row {
  position:relative;
  padding:1rem 0;
  border-bottom:1px solid rgba(0,0,0,.28)
}

.dj-date-row span,
.dj-date-row strong,
.dj-date-row small {
  display:block
}

.dj-date-row span {
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:800
}

.dj-date-row strong {
  font-size:1.05rem;
  margin-top:.25rem
}

.dj-date-row small {
  margin-top:.25rem;
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.08em
}

.dj-date-row--past {
  opacity:.55
}

.dj-course-card .outline-button {
  align-self:flex-start;
  margin-top:auto
}

.dj-course-card .outline-button:hover {
  background:#111;
  color:#fff
}

.dj-stories {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  background:#111;
  color:#fff
}

.dj-stories__copy {
  display:flex;
  align-items:center;
  padding:clamp(4rem,7vw,7rem)
}

.dj-stories__copy h2 {
  margin:0 0 1.5rem;
  font-size:clamp(3rem,5.5vw,5.8rem);
  line-height:.85;
  letter-spacing:-.055em;
  text-transform:uppercase;
  font-weight:800
}

.dj-stories__lead {
  font-size:clamp(1.35rem,2vw,1.8rem);
  line-height:1.35;
  max-width:650px
}

.dj-stories__copy p:not(.kicker):not(.dj-stories__lead) {
  max-width:690px;
  color:#d5d5d5
}

.dj-stories__video {
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(2rem,4vw,4rem);
  background:#090909
}

.dj-stories__video video {
  display:block;
  width:100%;
  max-height:600px;
  background:#000
}

.dj-hire {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  background:var(--yellow);
  color:#111
}

.dj-hire__image {
  min-height:650px;
  overflow:hidden;
  background:#111
}

.dj-hire__image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 38%
}

.dj-hire__copy {
  display:flex;
  align-items:center;
  padding:clamp(4rem,7vw,7rem)
}

.dj-hire__copy h2 {
  margin:0 0 1.7rem;
  font-size:clamp(3.2rem,6vw,6.2rem);
  line-height:.84;
  letter-spacing:-.055em;
  text-transform:uppercase;
  font-weight:800
}

.dj-hire__lead {
  max-width:760px;
  font-size:clamp(1.3rem,2vw,1.8rem);
  line-height:1.35
}

.dj-hire__details {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
  margin:2.25rem 0
}

.dj-hire__details>div {
  border-top:1px solid #111;
  padding-top:1.2rem
}

.dj-hire__details h3 {
  font-size:1rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  font-weight:800
}

.dj-hire__details p {
  margin:0;
  line-height:1.55
}

.dj-hire__strap {
  font-size:clamp(1.25rem,1.8vw,1.65rem);
  font-weight:700;
  margin:2rem 0 0
}

.dj-hire__actions {
  display:flex;
  align-items:center;
  gap:1.5rem;
  flex-wrap:wrap;
  margin-top:1.5rem
}

.dj-hire .outline-button:hover {
  background:#111;
  color:#fff
}

.dj-hire .text-link {
  margin-top:0
}

@media(max-width:991.98px) {
  #dj-school,
    #dj-hire {
    scroll-margin-top:84px
  }

  .dj-page-hero {
    grid-template-columns:1fr;
    height:auto
  }

  .dj-page-hero__copy {
    padding-top:3.5rem;
    padding-bottom:3.5rem
  }

  .dj-page-hero__image {
    height:430px
  }

  .dj-course-grid {
    grid-template-columns:1fr
  }

  .dj-course-card {
    border-right:0;
    border-bottom:1px solid rgba(0,0,0,.45)
  }

  .dj-course-card:last-child {
    border-bottom:0
  }

  .dj-course-card>p {
    min-height:0
  }

  .dj-stories,
    .dj-hire {
    grid-template-columns:1fr
  }

  .dj-hire__image {
    min-height:520px
  }

}

@media(max-width:767.98px) {
  .dj-page-hero__copy h1 {
    font-size:clamp(3.5rem,16vw,5rem)
  }

  .dj-page-hero__image {
    height:310px
  }

  .dj-section-nav a {
    min-width:0;
    flex:1;
    padding:.9rem .65rem
  }

  .dj-school-intro {
    padding:3.75rem 0
  }

  .dj-school-intro h2 {
    font-size:clamp(2.55rem,11vw,4rem)
  }

  .dj-courses {
    padding:3.75rem 0
  }

  .dj-course-card {
    padding:2.3rem 0
  }

  .dj-stories__copy,
    .dj-hire__copy {
    padding:3.75rem var(--shell)
  }

  .dj-stories__video {
    padding:0
  }

  .dj-hire__image {
    min-height:420px
  }

  .dj-hire__details {
    grid-template-columns:1fr;
    gap:1.25rem
  }

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

}

/* DJ page refinement, v4.6 */

.dj-page-hero--refined {
  grid-template-columns:minmax(340px,.72fr) minmax(0,1.28fr);
  height:410px;
}

.dj-page-hero--refined .dj-page-hero__copy {
  padding:clamp(2.75rem,5vw,4.75rem) var(--shell);
}

.dj-page-hero--refined .dj-page-hero__copy h1 {
  font-size:clamp(3.2rem,5.2vw,5.25rem);
  line-height:.94;
  letter-spacing:-.045em;
  text-transform:none;
  font-weight:650;
}

.dj-page-hero--refined .dj-page-hero__copy p:last-child {
  max-width:500px;
  margin-top:1.25rem;
  font-size:clamp(1rem,1.25vw,1.18rem);
  line-height:1.5;
}

.dj-page-hero--refined .dj-page-hero__image {
  height:410px;
}

.dj-page-hero--refined .dj-page-hero__image img {
  object-position:center 48%;
}

.dj-school-intro {
  padding:clamp(4rem,6.5vw,6rem) 0;
}

.dj-school-intro h2 {
  max-width:680px;
  font-size:clamp(2.35rem,4.4vw,4.55rem);
  line-height:1.02;
  letter-spacing:-.035em;
  text-transform:none;
  font-weight:600;
}

.dj-intro-lead {
  font-size:clamp(1.3rem,2vw,1.9rem);
  line-height:1.38;
}

.dj-courses {
  background:#fff;
  color:#111;
  padding:clamp(4rem,6.5vw,6.5rem) 0;
  border-top:1px solid #dedede;
  border-bottom:1px solid #dedede;
}

.dj-courses__heading {
  max-width:900px;
  margin-bottom:clamp(2.4rem,4vw,3.5rem);
}

.dj-courses__heading h2 {
  margin:0;
  font-size:clamp(2.45rem,4.4vw,4.75rem);
  line-height:1;
  letter-spacing:-.04em;
  text-transform:none;
  font-weight:600;
}

.dj-courses__intro {
  max-width:700px;
  margin:1.1rem 0 0;
  font-size:1.05rem;
  line-height:1.6;
}

.dj-course-grid {
  border-top:1px solid #bdbdbd;
  border-bottom:1px solid #bdbdbd;
}

.dj-course-card {
  position:relative;
  padding:clamp(2rem,3vw,3rem);
  border-right:1px solid #c8c8c8;
}

.dj-course-card::before {
  content:"";
  position:absolute;
  top:0;
  left:clamp(2rem,3vw,3rem);
  right:clamp(2rem,3vw,3rem);
  height:5px;
  background:var(--yellow);
}

.dj-course-card__top {
  padding-top:1.15rem;
  margin-bottom:1.3rem;
}

.dj-course-card h3 {
  margin:0 0 .85rem;
  font-size:clamp(1.7rem,2.25vw,2.25rem);
  line-height:1.08;
  letter-spacing:-.025em;
  text-transform:none;
  font-weight:600;
}

.dj-course-price {
  margin:0;
  font-size:1.25rem;
  font-weight:700;
}

.dj-course-price span {
  font-weight:600;
}

.dj-course-card>p {
  min-height:7em;
  color:#2a2a2a;
}

.dj-date-list {
  border-top:1px solid #bdbdbd;
}

.dj-date-row {
  border-bottom:1px solid #d4d4d4;
}

.dj-date-row span {
  font-weight:650;
}

.dj-date-row strong {
  font-weight:650;
}

.dj-course-card .outline-button:hover {
  background:var(--yellow);
  color:#111;
}

.dj-stories__copy h2,
.dj-hire__copy h2 {
  font-weight:650;
  letter-spacing:-.04em;
  text-transform:none;
  line-height:.94;
}

.dj-stories__copy h2 {
  font-size:clamp(2.7rem,4.7vw,5rem);
}

.dj-hire__copy h2 {
  font-size:clamp(2.8rem,5.2vw,5.45rem);
}

.dj-hire__details h3 {
  font-weight:700;
}

@media(max-width:991.98px) {
  .dj-page-hero--refined {
    grid-template-columns:1fr;
    height:auto;
  }

  .dj-page-hero--refined .dj-page-hero__copy {
    padding-top:3.25rem;
    padding-bottom:3.25rem;
  }

  .dj-page-hero--refined .dj-page-hero__image {
    height:380px;
  }

  .dj-course-card {
    border-right:0;
    border-bottom:1px solid #c8c8c8;
  }

}

@media(max-width:767.98px) {
  .dj-page-hero--refined .dj-page-hero__copy h1 {
    font-size:clamp(3rem,14vw,4.5rem);
  }

  .dj-page-hero--refined .dj-page-hero__image {
    height:285px;
  }

  .dj-school-intro h2,
    .dj-courses__heading h2 {
    font-size:clamp(2.35rem,10vw,3.65rem);
  }

  .dj-course-card {
    padding:2.35rem 0;
  }

  .dj-course-card::before {
    left:0;
    right:0;
  }

}

/* DJ course section refinement, v4.7 */

.dj-courses {
  background:#f1f1ee;
  border-top:0;
  border-bottom:0;
  padding:0 0 clamp(4.5rem,7vw,7rem);
}

.dj-courses .ps-shell {
  padding-top:0;
}

.dj-courses__heading {
  max-width:none;
  margin:0 calc(var(--shell) * -1) clamp(2.25rem,4vw,3.5rem);
  padding:clamp(2.8rem,5vw,4.5rem) var(--shell);
  background:#111;
  color:#fff;
}

.dj-courses__heading .kicker {
  color:var(--yellow);
}

.dj-courses__heading h2 {
  color:#fff;
  font-size:clamp(2.35rem,4vw,4.2rem);
  font-weight:560;
  letter-spacing:-.035em;
}

.dj-courses__intro {
  color:#d2d2d2;
  max-width:760px;
  font-size:1.02rem;
}

.dj-course-grid {
  gap:clamp(1rem,2vw,1.5rem);
  background:transparent;
  border:0;
}

.dj-course-card {
  overflow:hidden;
  padding:clamp(2rem,2.7vw,2.7rem);
  background:#fff;
  border:1px solid #cfcfcb;
  box-shadow:0 14px 32px rgba(0,0,0,.055);
}

.dj-course-card:last-child {
  border-right:1px solid #cfcfcb;
}

.dj-course-card::before {
  left:0;
  right:0;
  height:8px;
}

.dj-course-card__top {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.2rem;
  padding-top:1.3rem;
  margin-bottom:1.4rem;
}

.dj-course-card h3 {
  max-width:95%;
  margin-bottom:.65rem;
  font-size:clamp(1.65rem,2.1vw,2.15rem);
  font-weight:560;
  line-height:1.08;
}

.dj-course-price {
  display:inline-flex;
  align-items:baseline;
  gap:.35rem;
  margin:0;
  padding:.42rem .62rem .38rem;
  background:#111;
  color:#fff;
  font-size:1.08rem;
  line-height:1;
  font-weight:700;
}

.dj-course-price span {
  color:var(--yellow);
  font-size:.65rem;
  letter-spacing:.12em;
}

.dj-course-card>p {
  min-height:6.4em;
  margin-bottom:1.35rem;
}

.dj-date-list {
  margin:0 0 1.8rem;
  border:0;
  background:#f7f7f4;
}

.dj-date-row {
  padding:1rem 1rem 1rem 1.15rem;
  border:0;
  border-bottom:1px solid #d8d8d3;
  box-shadow:inset 5px 0 0 var(--yellow);
}

.dj-date-row:last-child {
  border-bottom:0;
}

.dj-date-row span {
  font-size:.76rem;
  letter-spacing:.11em;
  font-weight:700;
}

.dj-date-row strong {
  margin-top:.3rem;
  font-size:1.15rem;
  font-weight:650;
}

.dj-date-row small {
  color:#555;
}

.dj-date-row--past {
  opacity:.58;
  box-shadow:inset 5px 0 0 #8b8b8b;
}

.dj-course-card .outline-button {
  border-color:#111;
  background:#fff;
}

.dj-course-card .outline-button:hover {
  background:var(--yellow);
  border-color:var(--yellow);
}

@media(max-width:991.98px) {
  .dj-courses__heading {
    margin-left:calc(var(--shell) * -1);
    margin-right:calc(var(--shell) * -1);
  }

  .dj-course-grid {
    gap:1rem;
  }

  .dj-course-card {
    border:1px solid #cfcfcb;
  }

  .dj-course-card:last-child {
    border-bottom:1px solid #cfcfcb;
  }

}

@media(max-width:767.98px) {
  .dj-courses {
    padding-bottom:3.75rem;
  }

  .dj-courses__heading {
    padding-top:3rem;
    padding-bottom:3rem;
    margin-bottom:1.25rem;
  }

  .dj-course-card {
    padding:2rem 1.25rem;
  }

  .dj-course-card::before {
    left:0;
    right:0;
  }

  .dj-course-card>p {
    min-height:0;
  }

}

/* v4.9 simple homepage contact section */

.home-contact-section {
  background:#fff;
  padding:clamp(3.5rem,6vw,6rem) 0;
  border-top:1px solid var(--line)
}

.home-contact-grid {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:clamp(2.5rem,7vw,8rem);
  align-items:center
}

.home-contact-intro h2 {
  font-size:clamp(3rem,6vw,6rem);
  line-height:.86;
  letter-spacing:-.055em;
  margin:.5rem 0 1.35rem;
  font-weight:700
}

.home-contact-intro>p:last-child {
  max-width:650px;
  font-size:1.08rem;
  line-height:1.7;
  margin:0
}

.home-contact-details {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem 2.5rem;
  align-items:end
}

.home-contact-item {
  border-top:1px solid #111;
  padding-top:1rem;
  min-width:0
}

.home-contact-label {
  display:block;
  margin-bottom:.45rem;
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:800
}

.home-contact-item a {
  font-size:clamp(1.05rem,1.6vw,1.35rem);
  font-weight:600;
  text-decoration:none;
  overflow-wrap:anywhere
}

.home-contact-item a:hover {
  text-decoration:underline;
  text-underline-offset:5px
}

.home-contact-button {
  grid-column:1/-1;
  margin-top:.5rem;
  justify-self:start
}

@media (max-width:991.98px) {
  .home-contact-grid {
    grid-template-columns:1fr
  }

  .home-contact-details {
    max-width:700px
  }

}

@media (max-width:575.98px) {
  .home-contact-details {
    grid-template-columns:1fr
  }

  .home-contact-button {
    grid-column:auto;
    width:100%;
    text-align:center
  }

  .home-contact-section {
    padding:3rem 0
  }

}

/* v5.0 contact detail alignment */

.home-contact-details {
  grid-template-columns:minmax(0,1.55fr) minmax(10.5rem,.7fr);
  gap:1.5rem 2.75rem;
  align-items:start;
}

.home-contact-item a {
  display:inline-block;
  font-size:clamp(1rem,1.35vw,1.25rem);
  line-height:1.3;
  word-break:normal;
  overflow-wrap:normal;
}

@media (min-width:768px) {
  .home-contact-item:first-child a,
    .home-contact-item:nth-child(2) a {
    white-space:nowrap
  }

}

@media (max-width:1199.98px) and (min-width:992px) {
  .home-contact-grid {
    grid-template-columns:1fr 1fr;
    gap:clamp(2rem,4vw,4rem)
  }

  .home-contact-details {
    grid-template-columns:minmax(0,1.45fr) minmax(9.5rem,.75fr);
    gap:1.5rem 1.75rem
  }

  .home-contact-item a {
    font-size:1rem
  }

}

@media (max-width:767.98px) {
  .home-contact-details {
    grid-template-columns:1fr;
    gap:1.5rem
  }

  .home-contact-item a {
    overflow-wrap:anywhere
  }

}

/* v5.1 contact rules and mobile navigation underline */

@media (min-width:768px) {
  .home-contact-details {
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:3rem;
  }

  .home-contact-item {
    width:100%;
  }

  .home-contact-item a {
    font-size:clamp(.98rem,1.2vw,1.2rem);
  }

}

@media (max-width:1199.98px) {
  .site-header .navbar-nav {
    align-items:flex-start!important;
  }

  .site-header .navbar-nav .nav-item {
    width:auto;
    max-width:100%;
  }

  .site-header .navbar-nav .nav-link {
    display:inline-block;
    width:max-content;
    max-width:100%;
  }

  .site-header .navbar-nav .nav-link::after {
    left:0;
    right:0;
    transform-origin:left center;
  }

}

/* v5.2 Homepage hero: updated storefront image and social-space message */

.hero-image--overlay img {
  object-position:center 46%
}

.hero-overlay .hero-social {
  max-width:680px;
  margin:1.15rem 0 0;
  color:#fff;
  font-size:clamp(1rem,1.45vw,1.35rem);
  line-height:1.4;
  font-weight:600;
  text-shadow:0 2px 14px rgba(0,0,0,.55);
}

@media(max-width:767.98px) {
  .hero-image--overlay img {
    object-position:center 48%
  }

  .hero-overlay .hero-social {
    max-width:520px;
    font-size:1rem;
    line-height:1.42;
    margin-top:.9rem
  }

}

@media(max-width:480px) {
  .hero-overlay .hero-social {
    font-size:.92rem;
    max-width:330px
  }

}

/* v5.4 DJ service navigation and expanded page */

html {
  scroll-behavior:smooth
}

#dj-school,
#course-options,
#dj-hire,
#private-parties {
  scroll-margin-top:96px
}

.dj-hero-links {
  display:flex;
  align-items:center;
  gap:1.4rem;
  flex-wrap:wrap;
  margin-top:1.75rem
}

.dj-jump-nav {
  background:#f4c400;
  border-bottom:1px solid #111
}

.dj-jump-nav .ps-shell {
  display:flex;
  justify-content:center;
  gap:clamp(1rem,3vw,3rem);
  flex-wrap:wrap;
  padding-top:1rem;
  padding-bottom:1rem
}

.dj-jump-nav a {
  color:#111;
  text-decoration:none;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.8rem
}

.dj-jump-nav a:hover,
.dj-jump-nav a:focus {
  text-decoration:underline;
  text-underline-offset:.35rem
}

.dj-options-section {
  padding:clamp(4rem,7vw,7rem) 0;
  background:#f6f4ef
}

.dj-option-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid #aaa;
  border-left:1px solid #aaa;
  margin-top:2.5rem
}

.dj-option-grid article {
  padding:clamp(1.5rem,3vw,2.5rem);
  border-right:1px solid #aaa;
  border-bottom:1px solid #aaa;
  min-height:250px
}

.dj-option-grid span {
  display:block;
  font-weight:900;
  font-size:.78rem;
  letter-spacing:.12em;
  margin-bottom:2.5rem
}

.dj-option-grid h3 {
  font-size:clamp(1.35rem,2vw,1.85rem);
  margin-bottom:1rem
}

.dj-option-grid p {
  margin:0;
  line-height:1.65
}

.dj-learning-section {
  padding:clamp(4rem,7vw,7rem) 0;
  background:#fff
}

.dj-learning-grid {
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(2.5rem,7vw,7rem);
  align-items:start
}

.dj-check-list {
  list-style:none;
  padding:0;
  margin:0;
  border-top:1px solid #111
}

.dj-check-list li {
  position:relative;
  padding:1.15rem 1rem 1.15rem 2rem;
  border-bottom:1px solid #bbb;
  font-weight:650
}

.dj-check-list li::before {
  content:'→';
  position:absolute;
  left:0
}

.outline-button--light {
  border-color:#fff;
  color:#fff
}

.outline-button--light:hover {
  background:#fff;
  color:#111
}

.private-parties-section {
  padding:clamp(4.5rem,8vw,8rem) 0;
  background:#f4c400
}

.private-parties-grid {
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);
  gap:clamp(2.5rem,7vw,7rem);
  align-items:start
}

.private-parties-grid h2 {
  font-size:clamp(2.4rem,5vw,5.2rem);
  line-height:.95;
  max-width:850px;
  margin-bottom:1.6rem
}

.party-details-card {
  background:#111;
  color:#fff;
  padding:clamp(1.75rem,3vw,3rem)
}

.party-details-card h3 {
  color:#f4c400;
  margin-bottom:1.5rem
}

.party-details-card ul {
  padding-left:1.2rem;
  margin:0
}

.party-details-card li {
  margin:.8rem 0;
  line-height:1.45
}

.dj-final-cta {
  text-align:center;
  padding:clamp(4rem,7vw,7rem) 0;
  background:#fff
}

.dj-final-cta h2 {
  font-size:clamp(2rem,4vw,4rem);
  max-width:900px;
  margin:.5rem auto 1rem
}

.dj-final-cta p {
  max-width:640px;
  margin:0 auto 1.75rem
}

@media(max-width:991.98px) {
  .dj-option-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .dj-learning-grid,
    .private-parties-grid {
    grid-template-columns:1fr
  }

}

@media(max-width:575.98px) {
  .dj-option-grid {
    grid-template-columns:1fr
  }

  .dj-option-grid article {
    min-height:0
  }

  .dj-jump-nav .ps-shell {
    justify-content:flex-start;
    gap:.7rem 1.25rem
  }

  .dj-jump-nav a {
    font-size:.72rem
  }

}

/* Proper Sound dark navigation */

.site-header {
  background:#080808;
  border-bottom:1px solid #262626;
  color:#fff
}

.brand-mark img {
  filter:invert(1);
}

.nav-link {
  color:#fff!important
}

.nav-link:after {
  background:#fff
}

.header-social-icon {
  color:#fff!important;
  border-color:#fff!important
}

.header-social-icon svg {
  stroke:#fff;
  fill:none
}

.header-social-icon svg path {
  fill:#fff;
  stroke:none
}

.navbar-toggler span {
  background:#fff
}

.dropdown-menu {
  background:#111;
  border-color:#333
}

.dropdown-item {
  color:#fff
}

.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active {
  background:var(--yellow);
  color:#111
}

@media(max-width:1199.98px) {
  .navbar-collapse {
    background:#080808
  }

}

/* DJ hire page — restrained black, white and yellow treatment */

.hire-hero {
  position:relative;
  min-height:640px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:#111;
  color:#fff
}

.hire-hero>img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 42%
}

.hire-hero__overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.63) 38%,rgba(0,0,0,.12) 76%)
}

.hire-hero__content {
  position:relative;
  z-index:2;
  padding-top:7rem;
  padding-bottom:5rem
}

.hire-hero h1 {
  font-size:clamp(4.2rem,8vw,8.2rem);
  line-height:.82;
  letter-spacing:-.065em;
  text-transform:uppercase;
  font-weight:900;
  margin:0 0 1.4rem;
  max-width:780px
}

.hire-hero__intro {
  font-size:clamp(1.05rem,1.8vw,1.45rem);
  max-width:620px;
  line-height:1.45
}

.hire-hero__actions {
  display:flex;
  gap:1.8rem;
  align-items:center;
  flex-wrap:wrap;
  margin-top:2rem
}

.hire-hero .text-link {
  border-color:#fff;
  margin-top:0
}

.hire-subnav {
  background:#0b0b0b;
  color:#fff;
  border-top:1px solid #2b2b2b;
  border-bottom:1px solid #2b2b2b
}

.hire-subnav .ps-shell {
  display:flex;
  justify-content:center;
  gap:clamp(1.5rem,4vw,4rem);
  padding-top:1rem;
  padding-bottom:1rem
}

.hire-subnav a {
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.74rem;
  font-weight:800
}

.hire-subnav a:hover {
  color:var(--yellow)
}

.hire-intro {
  padding:clamp(5rem,9vw,9rem) 0;
  background:#fff
}

.hire-intro__grid {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:start
}

.hire-intro h2,
.party-section h2,
.hire-final h2 {
  font-size:clamp(3rem,6vw,6.5rem);
  line-height:.88;
  letter-spacing:-.055em;
  text-transform:uppercase;
  font-weight:900;
  margin:0
}

.hire-intro__copy {
  max-width:760px
}

.dark-button {
  display:inline-block;
  background:#111;
  color:#fff;
  text-decoration:none;
  padding:1rem 1.35rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.75rem;
  font-weight:700;
  margin-top:1.4rem;
  border:1px solid #111
}

.dark-button:hover {
  background:var(--yellow);
  color:#111
}

.hire-details {
  background:#f2f2ef;
  border-top:1px solid #d7d7d2;
  border-bottom:1px solid #d7d7d2
}

.hire-details__grid {
  display:grid;
  grid-template-columns:repeat(3,1fr)
}

.hire-details article {
  padding:clamp(2.5rem,5vw,5rem);
  border-right:1px solid #d0d0cb
}

.hire-details article:last-child {
  border-right:0
}

.hire-details span {
  font-size:.72rem;
  letter-spacing:.18em;
  font-weight:800;
  color:#777
}

.hire-details h3 {
  font-size:1.35rem;
  text-transform:uppercase;
  margin:1.1rem 0 .8rem
}

.party-section {
  padding:clamp(5rem,9vw,9rem) 0;
  background:#fff
}

.party-section__grid {
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:start
}

.party-section__copy {
  max-width:850px
}

.party-section__copy .lead-copy {
  margin-top:2rem
}

.party-enquiry-card {
  background:#111;
  color:#fff;
  padding:clamp(2rem,4vw,4rem)
}

.party-enquiry-card .kicker {
  color:var(--yellow)
}

.party-enquiry-card ul {
  list-style:none;
  padding:0;
  margin:1.5rem 0 0
}

.party-enquiry-card li {
  padding:1rem 0;
  border-top:1px solid #3a3a3a
}

.hire-final {
  background:#111;
  color:#fff;
  padding:clamp(5rem,8vw,8rem) 0
}

.hire-final h2 {
  max-width:1000px;
  margin-bottom:1.5rem
}

.hire-final p:not(.kicker) {
  font-size:1.2rem;
  max-width:700px
}

.hire-final .outline-button {
  margin-top:1rem
}

@media(max-width:991.98px) {
  .hire-hero {
    min-height:560px
  }

  .hire-intro__grid,
    .party-section__grid {
    grid-template-columns:1fr
  }

  .hire-details__grid {
    grid-template-columns:1fr
  }

  .hire-details article {
    border-right:0;
    border-bottom:1px solid #d0d0cb
  }

  .hire-details article:last-child {
    border-bottom:0
  }

}

@media(max-width:575.98px) {
  .hire-hero {
    min-height:520px
  }

  .hire-hero__content {
    padding-top:5rem;
    padding-bottom:3rem
  }

  .hire-hero__overlay {
    background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.38))
  }

  .hire-subnav .ps-shell {
    justify-content:flex-start;
    overflow-x:auto;
    white-space:nowrap
  }

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

  .hire-hero h1 {
    font-size:clamp(3.5rem,18vw,5.3rem)
  }

}
.contact-details > div,
.contact-column,
.contact-info-item {
    border-top: none !important;
}


/* v5.8: high-contrast header social icons */
.site-header .header-social-icon {
  background: var(--yellow) !important;
  border-color: var(--yellow) !important;
  color: #111 !important;
}

.site-header .header-social-icon svg {
  stroke: currentColor !important;
}

.site-header .header-social-icon svg path {
  fill: currentColor !important;
}

.site-header .header-social-icon:hover,
.site-header .header-social-icon:focus-visible {
  background: #080808 !important;
  border-color: var(--yellow) !important;
  color: var(--yellow) !important;
}

/* v5.9: high-contrast footer social icons */
.site-footer .footer-socials .social-icon {
  background: var(--yellow) !important;
  border-color: var(--yellow) !important;
  color: #111 !important;
}

.site-footer .footer-socials .social-icon svg {
  stroke: currentColor !important;
}

.site-footer .footer-socials .social-icon svg path {
  fill: currentColor !important;
}

.site-footer .footer-socials .social-icon:hover,
.site-footer .footer-socials .social-icon:focus-visible {
  background: #080808 !important;
  border-color: var(--yellow) !important;
  color: var(--yellow) !important;
}
