/* Brand tokens and global browser defaults. */
:root {
   --ink:#0d0d0c;
   --paper:#f2eee6;
   --gold:#c9a25a;
   --muted:#a99f90;
   --line:rgba(242,238,230,.18);
}

* {
   box-sizing:border-box;
}

 html {
   scroll-behavior:smooth;
}

 body {
   margin:0;
   color:var(--paper);
   background:var(--ink);
   font-family:Arial, Helvetica, sans-serif;
}

/* Reusable typography helpers. */
.serif {
   font-family:Georgia, 'Times New Roman', serif;
}

 .eyebrow {
   color:var(--gold);
   text-transform:uppercase;
   letter-spacing:.18em;
   font-size:.69rem;
   font-weight:700;
}

/* Navigation */
nav {
   position:absolute;
   top:0;
   left:0;
   right:0;
   z-index:5;
   display:flex;
   align-items:center;
   justify-content:space-between;
   padding:8px 5.5vw;
   border-bottom:1px solid var(--line);
   background:#07171b;
}

.site-brand {
   display:flex;
   align-items:center;
   color:var(--paper);
   text-decoration:none;
}

 .site-brand__logo {
   display:block;
   width:82px;
   height:82px;
   object-fit:cover;
   clip-path:circle(46% at 50% 50%);
   filter:contrast(1.1) saturate(.92);
}

.nav-links {
   display:flex;
   gap:26px;
}

 .nav-links a {
   color:var(--paper);
   text-decoration:none;
   font-size:.72rem;
   letter-spacing:.12em;
   text-transform:uppercase;
}

.nav-links a:hover {
   color:var(--gold);
}

.nav-call-button {
   border:1px solid var(--gold);
   color:var(--gold);
   background:transparent;
   padding:11px 16px;
   font-family:inherit;
   font-size:.68rem;
   letter-spacing:.12em;
   text-transform:uppercase;
   cursor:pointer;
}

.mobile-menu-toggle,.mobile-menu {
   display:none;
}

/* Hero */
.hero {
   min-height:760px;
   position:relative;
   overflow:hidden;
   display:flex;
   align-items:center;
   background:radial-gradient(ellipse at 72% 32%,rgba(177,131,61,.18),transparent 29%),#031216;
}

.hero:before {
   content:'';
   position:absolute;
   inset:100px 0 0;
   background:#031216 url('assets/crowns-hero-wide.png') center/cover no-repeat;
}

.hero:after {
   content:'';
   position:absolute;
   inset:0;
   background:linear-gradient(90deg,rgba(3,18,22,.5) 0%,rgba(3,18,22,.24) 37%,rgba(3,18,22,.06) 66%,transparent 100%),linear-gradient(0deg,rgba(3,18,22,.52),transparent 48%);
}

.hero__content {
   position:relative;
   z-index:1;
   width:min(1180px,89vw);
   text-align:left;
   padding:150px 0 104px;
}

h1 {
   font-size:clamp(3.6rem,7.2vw,6.8rem);
   line-height:.88;
   letter-spacing:-.052em;
   margin:18px 0 22px;
   font-weight:400;
   max-width:700px;
}

 h1 em {
   color:var(--gold);
   font-style:normal;
}

 .hero p {
   max-width:455px;
   margin:0 0 29px;
   line-height:1.65;
   color:#e3ddd1;
   font-size:1.05rem;
}

.button {
   display:inline-block;
   border:0;
   background:var(--gold);
   color:#15120d;
   padding:16px 25px;
   font-weight:700;
   letter-spacing:.11em;
   font-size:.7rem;
   text-transform:uppercase;
   cursor:pointer;
   text-decoration:none;
   transition:background-color 160ms ease-out,transform 160ms ease-out;
}

 .button:hover {
   background:#e4c57d;
}

.button:active,.nav-call-button:active,.join__submit:active {
   transform:scale(.98);
}

.hero__highlights {
   position:absolute;
   z-index:1;
   bottom:44px;
   left:5.5vw;
   display:flex;
   gap:32px;
   font-size:.63rem;
   letter-spacing:.08em;
   text-transform:uppercase;
   color:#d5ccbf;
}

.hero__highlights span {
   display:flex;
   align-items:center;
   gap:8px;
}

.hero__highlights b {
   color:var(--gold);
   font-size:1.25rem;
   font-weight:400;
}

/* Shared sections */
section {
   padding:110px 5.5vw;
}

.section-title {
   font-size:clamp(2.5rem,4.4vw,4.7rem);
   font-weight:400;
   line-height:.98;
   margin:15px 0 0;
   letter-spacing:-.045em;
}

/* Services */
.services {
   padding-top:86px;
   background:radial-gradient(circle at 50% -30%,#19323a 0, #071519 50%, #061216 100%);
   color:var(--paper);
   border-top:1px solid rgba(201,162,90,.9);
   text-align:center;
}

.services__header,.locations__header {
   display:flex;
   align-items:end;
   justify-content:space-between;
   margin-bottom:45px;
}

.services__header {
   display:block;
}

.services .eyebrow {
   color:var(--gold);
}

.services__header > .eyebrow {
   font-size:1.35rem;
   line-height:1;
   letter-spacing:0;
   margin-bottom:13px;
   text-shadow:0 0 12px rgba(201,162,90,.55);
}

.services__subtitle {
   color:#c7c0b5;
   margin:12px 0 35px;
}

.services__grid {
   display:grid;
   grid-template-columns:repeat(4,1fr);
   gap:20px;
   max-width:1100px;
   margin:0 auto;
}

.service {
   min-height:240px;
   padding:28px 20px;
   display:flex;
   flex-direction:column;
   justify-content:center;
   border:1px solid rgba(201,162,90,.42);
   color:var(--paper);
   background:rgba(5,18,22,.45);
}

.service-icon {
   color:var(--gold);
   font-size:2.55rem;
   line-height:1;
}

.service h3 {
   font-family:Georgia,serif;
   font-size:1.15rem;
   font-weight:400;
   margin:18px 0 7px;
   text-transform:uppercase;
}

.service p {
   margin:0;
   color:#d0c9bc;
   font-size:.85rem;
   line-height:1.55;
}

.price {
   color:var(--gold);
   font-size:1.15rem;
   margin:6px 0 10px;
}

.services .button-link {
   display:inline-block;
   margin:34px auto 0;
   border:1px solid rgba(201,162,90,.75);
   padding:13px 18px;
}

/* About */
.about {
   display:grid;
   grid-template-columns:1fr 1fr;
   padding:0;
   background:#0b171a;
}

.about__image {
   min-height:430px;
   background:linear-gradient(90deg,transparent,rgba(0,0,0,.2)),url('https://images.unsplash.com/photo-1512690459411-b9245aed614b?auto=format&fit=crop&w=1200&q=85') center/cover;
}

.about__content {
   padding:74px 7vw 74px 5vw;
   display:flex;
   flex-direction:column;
   justify-content:center;
}

.about__content h2 {
   font-size:clamp(2.4rem,4vw,4rem);
   font-weight:400;
   line-height:.98;
   margin:14px 0 22px;
   letter-spacing:-.045em;
}

.about__content p {
   color:#c7c0b4;
   max-width:460px;
   line-height:1.78;
   font-size:1rem;
}

.about__content .button-link {
   margin-top:12px;
   border:1px solid rgba(201,162,90,.8);
   padding:13px 17px;
   width:max-content;
}

/* Locations */
.locations {
   background:#151412;
}

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

.location {
   padding:38px;
   min-height:390px;
   display:flex;
   flex-direction:column;
   border:1px solid var(--line);
   background:linear-gradient(155deg,rgba(201,162,90,.12),transparent 45%);
}

.location h3 {
   font:400 2.5rem/1 Georgia,serif;
   margin:14px 0 20px;
}

.location p {
   color:#c6bdaf;
   line-height:1.65;
   margin:0 0 18px;
}

.location__meta {
   display:grid;
   grid-template-columns:1fr 1fr;
   gap:15px;
   border-top:1px solid var(--line);
   padding-top:17px;
   margin-top:auto;
   color:#d4cbbb;
   font-size:.83rem;
   line-height:1.6;
}

.location__meta b,.location__meta span {
   display:block;
}

.location__meta b {
   margin-bottom:5px;
   color:var(--paper);
   font-size:.68rem;
   letter-spacing:.12em;
   text-transform:uppercase;
}

.location__hours span {
   display:grid;
   grid-template-columns:62px 1fr;
   gap:8px;
   white-space:nowrap;
}

.location__hours em {
   color:var(--gold);
   font-style:normal;
}

.location .button {
   margin-top:26px;
   width:max-content;
}

/* Barber roster */
.barbers {
   background:#201d18;
}

.roster {
   margin-top:46px;
   border-top:1px solid rgba(201,162,90,.32);
}

.roster__row {
   display:grid;
   grid-template-columns:repeat(4,minmax(0,1fr));
   gap:18px;
   align-items:start;
   text-align:center;
   padding:27px 0;
   border-bottom:1px solid rgba(201,162,90,.25);
}

.roster__row:hover {
   background:linear-gradient(90deg,rgba(201,162,90,.09),transparent);
}

.roster__name {
   font:400 2rem/1 Georgia,serif;
}

.roster__title {
   color:var(--gold);
   margin-top:6px;
   font-size:.72rem;
   letter-spacing:.12em;
   text-transform:uppercase;
}

.roster__detail {
   color:#d0c7b9;
   align-self:start;
   display:flex;
   flex-direction:column;
   align-items:center;
   line-height:1.55;
   font-size:.9rem;
}

.roster__label {
   color:#9e9382;
   display:block;
   margin-bottom:4px;
   font-size:.66rem;
   letter-spacing:.12em;
   text-transform:uppercase;
}

.roster .button-link {
   width:140px;
   justify-self:center;
   text-align:center;
   white-space:nowrap;
   border:1px solid rgba(201,162,90,.7);
   padding:12px 15px;
}

/* Chair application section */
.join {
   position:relative;
   isolation:isolate;
   padding:108px 5.5vw;
   overflow:hidden;
   background:#06171b url('assets/crowns-wall-interior.png') center/cover no-repeat;
}

.join:before {
   content:'';
   position:absolute;
   z-index:-1;
   inset:0;
   background:linear-gradient(90deg,rgba(3,18,22,.9) 0%,rgba(3,18,22,.82) 44%,rgba(3,18,22,.98) 100%);
}

.join__grid {
   display:grid;
   grid-template-columns:minmax(0,1fr) minmax(390px,.82fr);
   align-items:center;
   gap:clamp(48px,7vw,110px);
   max-width:1320px;
   margin:0 auto;
}

.join__label {
   display:flex;
   align-items:center;
   gap:16px;
   color:var(--gold);
   font-size:.69rem;
   font-weight:700;
   letter-spacing:.22em;
   text-transform:uppercase;
}

.join__label:before {
   content:'';
   width:52px;
   height:1px;
   background:var(--gold);
}

.join__title {
   max-width:680px;
   margin:28px 0 22px;
   font-size:clamp(3.45rem,6vw,6.3rem);
   font-weight:400;
   line-height:.91;
   letter-spacing:-.035em;
}

.join__intro > p {
   max-width:580px;
   margin:0;
   color:#e1d9cb;
   font:400 1.13rem/1.65 Georgia,serif;
}

.join__benefits {
   display:grid;
   grid-template-columns:repeat(3,minmax(0,1fr));
   gap:18px;
   max-width:620px;
   margin-top:48px;
}

.join__benefit {
   display:grid;
   justify-items:start;
   gap:12px;
   color:var(--paper);
   font:400 1rem/1.25 Georgia,serif;
}

.join__benefit svg {
   width:31px;
   height:31px;
   fill:none;
   stroke:var(--gold);
   stroke-width:1.45;
   stroke-linecap:round;
   stroke-linejoin:round;
}

.join__form {
   padding:clamp(30px,4vw,52px);
   border:1px solid rgba(201,162,90,.9);
   border-radius:14px;
   background:rgba(5,20,25,.94);
}

.join__form h3 {
   margin:0 0 26px;
   color:var(--paper);
   font-size:clamp(2.2rem,3.7vw,3.65rem);
   font-weight:400;
   line-height:1;
   text-align:center;
}

.join__form h2 {
   margin:0 0 26px;
   color:var(--paper);
   font-size:clamp(2.2rem,3.7vw,3.65rem);
   font-weight:400;
   line-height:1;
   text-align:center;
}

.join__form h3:after {
   content:'';
   display:block;
   width:45px;
   height:1px;
   margin:19px auto 0;
   background:var(--gold);
}

.join__form h2:after {
   content:'';
   display:block;
   width:45px;
   height:1px;
   margin:19px auto 0;
   background:var(--gold);
}

.join__fields {
   display:grid;
   gap:11px;
}

.join__field {
   display:grid;
   gap:7px;
}

.join__field label {
   color:#e2dacd;
   font-size:.76rem;
   letter-spacing:.08em;
   text-transform:uppercase;
}

.join__field label span,.join__license legend span {
   color:var(--gold);
}

.join__form input:not([type='radio']),.join__form select,.join__form textarea {
   width:100%;
   border:1px solid rgba(214,204,184,.38);
   border-radius:6px;
   background:rgba(3,18,22,.72);
   color:var(--paper);
   font:inherit;
   font-size:.92rem;
}

.join__form input:not([type='radio']),.join__form select {
   min-height:49px;
   padding:0 16px;
}

.join__form textarea {
   min-height:112px;
   padding:14px 16px;
   resize:vertical;
}

.join__form input::placeholder,.join__form textarea::placeholder {
   color:#aaa495;
}

.join__form select {
   appearance:none;
   background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);
   background-position:calc(100% - 18px) 21px,calc(100% - 12px) 21px;
   background-repeat:no-repeat;
   background-size:6px 6px,6px 6px;
}

.join__form input:focus-visible,.join__form select:focus-visible,.join__form textarea:focus-visible,.join__license input:focus-visible {
   outline:2px solid var(--gold);
   outline-offset:2px;
}

.join__license {
   display:flex;
   align-items:center;
   flex-wrap:wrap;
   gap:14px 30px;
   margin:24px 0;
   padding:0;
   border:0;
}

.join__license legend {
   width:100%;
   margin-bottom:2px;
   color:var(--paper);
   font:400 1.08rem Georgia,serif;
}

.join__license label {
   display:flex;
   align-items:center;
   gap:9px;
   color:#e2dacd;
   font-size:.86rem;
}

.join__license input {
   width:20px;
   height:20px;
   margin:0;
   accent-color:var(--gold);
}

.join__submit {
   display:flex;
   align-items:center;
   justify-content:center;
   width:100%;
   min-height:58px;
   margin-top:20px;
   border:0;
   border-radius:6px;
   background:linear-gradient(135deg,#b88640,#e0bb78);
   color:#17130d;
   font:700 1.02rem Georgia,serif;
   cursor:pointer;
}

.join__submit span {
   margin-left:14px;
   font:400 1.55rem/0 Arial,sans-serif;
}

.join__submit:hover {
   background:#e7c98f;
}

.application-page nav {
   position:relative;
}

.application-page .join {
   min-height:calc(100vh - 99px);
}

.join__note {
   margin:16px 0 0;
   color:#b6ad9e;
   font-size:.7rem;
   letter-spacing:.06em;
   text-align:center;
}

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

.button-link {
   background:none;
   border:0;
   padding:0;
   color:var(--gold);
   cursor:pointer;
   font-size:.68rem;
   letter-spacing:.12em;
   text-transform:uppercase;
   font-weight:bold;
}

/* Gallery and call to action */
.gallery-section {
   padding:105px 5.5vw 110px;
   background:#06171b;
}

.gallery-section__header {
   margin:0 auto 38px;
   text-align:center;
}

.gallery-section__header .section-title {
   margin:0;
}

.gallery-section__header p {
   margin:12px 0 0;
   color:#b5ada0;
   font-size:.95rem;
}

.gallery {
   display:grid;
   grid-template-columns:minmax(0,1.65fr) minmax(260px,.85fr);
   grid-template-rows:repeat(2,minmax(0,1fr));
   gap:16px;
   max-width:1240px;
   height:620px;
   margin:0 auto;
}

.gallery__item {
   min-width:0;
   margin:0;
   background:var(--tile) center/cover;
   position:relative;
   overflow:hidden;
   border:1px solid rgba(201,162,90,.7);
   border-radius:14px;
}

.gallery__item--feature {
   grid-row:span 2;
}

.gallery__item:after {
   content:'';
   position:absolute;
   inset:0;
   background:linear-gradient(180deg,rgba(3,18,22,.03) 28%,rgba(3,18,22,.83) 100%);
   transition:background .35s ease;
}

.gallery__item figcaption {
   position:absolute;
   z-index:1;
   right:26px;
   bottom:24px;
   left:26px;
   color:var(--paper);
}

.gallery__item figcaption strong,.gallery__item figcaption span {
   display:block;
}

.gallery__item figcaption strong {
   margin-bottom:8px;
   color:var(--paper);
   font:400 1.3rem/1 Georgia,serif;
   letter-spacing:.12em;
   text-transform:uppercase;
}

.gallery__item figcaption span {
   color:#d5c7ad;
   font-size:.65rem;
   letter-spacing:.17em;
   text-transform:uppercase;
}

@media (hover:hover) {
   .gallery__item {
      transition:background-size .45s ease;
   }

   .gallery__item:hover {
      background-size:108%;
   }

   .gallery__item:hover:after {
      background:linear-gradient(180deg,rgba(3,18,22,.02) 22%,rgba(3,18,22,.68) 100%);
   }
}

.cta {
   text-align:center;
   padding:110px 20px;
   background:linear-gradient(135deg,#8d6c36,#c9a25a);
   color:#17130d;
}

.cta .eyebrow {
   color:#392a12;
}

.cta h2 {
   font:400 clamp(3rem,6vw,5.5rem)/.95 Georgia,serif;
   margin:17px 0 28px;
   letter-spacing:-.04em;
}

.cta p {
   max-width:480px;
   margin:0 auto 31px;
   line-height:1.65;
}

.cta .button {
   background:#15120d;
   color:var(--paper);
}

/* Footer layout and developer credit. */
footer {
   padding:45px 5.5vw;
   display:flex;
   justify-content:space-between;
   gap:25px;
   color:#aaa193;
   font-size:.73rem;
   border-top:1px solid var(--line);
}

.footer__brand {
   display:flex;
   align-items:center;
   color:var(--paper);
   font:400 1.3rem Georgia,serif;
}

.footer__brand .site-brand__logo {
   width:72px;
   height:72px;
}

.footer__details {
   display:flex;
   flex-wrap:wrap;
   align-items:center;
   justify-content:flex-end;
   gap:14px 26px;
   margin-left:auto;
}

.footer__details p {
   margin:0;
}

.footer__credit {
   color:var(--gold);
   letter-spacing:.08em;
   text-decoration:none;
}

.footer__credit:hover,.footer__credit:focus-visible {
   text-decoration:underline;
   text-underline-offset:4px;
}

/* Shared booking and direct-barber contact modal. */
.modal {
   position:fixed;
   inset:0;
   display:none;
   z-index:10;
   background:rgba(0,0,0,.72);
   place-items:center;
   padding:18px;
}

.modal.show {
   display:grid;
}

body.modal-open {
   overflow:hidden;
}

.dialog {
   position:relative;
   width:min(710px,100%);
   background:var(--paper);
   color:var(--ink);
   padding:42px;
   box-shadow:0 20px 80px #000;
   max-height:calc(100dvh - 36px);
   overflow-y:auto;
}

.close {
   position:absolute;
   top:17px;
   right:20px;
   font-size:1.55rem;
   border:0;
   background:none;
   cursor:pointer;
}

.dialog h2 {
   font:400 2.7rem/.95 Georgia,serif;
   margin:14px 0 30px;
}

.booking__choice-grid {
   display:grid;
   grid-template-columns:1fr 1fr;
   gap:14px;
}

.booking__details {
   display:grid;
   gap:12px;
}

.booking__details > label,.booking__details-grid label {
   color:#4d453a;
   font-size:.72rem;
   font-weight:700;
   letter-spacing:.1em;
   text-transform:uppercase;
}

.booking__details label span {
   color:#71685d;
   font-size:.66rem;
   font-weight:400;
   letter-spacing:0;
   text-transform:none;
}

.booking__details select,.booking__details input {
   min-height:50px;
   width:100%;
   border:1px solid #c7bdb0;
   background:#fffdf8;
   color:var(--ink);
   font:inherit;
   padding:0 14px;
}

.booking__details-grid {
   display:grid;
   grid-template-columns:1fr 1fr;
   gap:10px 14px;
}

.booking__details-grid input {
   min-width:0;
}

.booking__details select:focus-visible,.booking__details input:focus-visible,.choice:focus-visible,.close:focus-visible,.back:focus-visible,.nav-call-button:focus-visible,.button-link:focus-visible {
   outline:2px solid var(--gold);
   outline-offset:3px;
}

.choice {
   text-align:left;
   border:1px solid #c7bdb0;
   background:#fffdf8;
   padding:21px;
   cursor:pointer;
}

.choice:hover,.choice.selected {
   border-color:#a47c37;
   background:#f7edda;
}

.choice strong {
   display:block;
   font:400 1.55rem Georgia,serif;
   margin-bottom:5px;
}

.choice span {
   color:#6e675d;
   font-size:.83rem;
}

.step {
   display:none;
}

.step.active {
   display:block;
}

.back {
   background:none;
   border:0;
   padding:0;
   margin-bottom:8px;
   font-size:.68rem;
   text-transform:uppercase;
   letter-spacing:.1em;
   cursor:pointer;
   color:#806125;
}

.booking__summary {
   border-left:3px solid var(--gold);
   background:#e9e1d2;
   padding:14px;
   margin:15px 0 22px;
   line-height:1.65;
   font-size:.91rem;
}

.booking__instructions {
   color:#625b52;
   line-height:1.65;
}

.booking__action-grid {
   display:grid;
   grid-template-columns:1fr 1fr;
   gap:12px;
   margin-top:22px;
}

.booking__action-grid .button {
   text-align:center;
}

.button--outline {
   background:transparent;
   color:#34240e;
   border:1px solid #a47c37;
}

.button--outline:hover {
   background:#f7edda;
}

/* Mobile layout: navigation, gallery, modal, and footer adjustments. */
@media (max-width:760px) {
   nav {
     padding:8px 6vw;
  }

.site-brand__logo {
     width:72px;
     height:72px;
  }

.nav-links {
     display:none;
  }

.nav-call-button {
     display:none;
  }

  .mobile-menu-toggle {
     display:grid;
     place-items:center;
     width:52px;
     height:52px;
     padding:0;
     border:1px solid rgba(201,162,90,.72);
     border-radius:14px;
     background:rgba(3,18,22,.78);
     color:var(--gold);
     cursor:pointer;
     transition:background .25s ease, border-color .25s ease;
  }

  .mobile-menu-toggle:hover,.menu-open .mobile-menu-toggle {
     background:rgba(201,162,90,.14);
     border-color:var(--gold);
  }

  .mobile-menu-toggle:focus-visible {
     outline:2px solid var(--gold);
     outline-offset:3px;
  }

  .mobile-menu-toggle__icon {
     width:34px;
     height:34px;
     overflow:visible;
  }

  .mobile-menu-toggle__crown {
     fill:var(--gold);
     stroke:var(--gold);
     stroke-width:1.2;
     stroke-linejoin:round;
  }

  .mobile-menu-toggle__line {
     fill:none;
     stroke:var(--gold);
     stroke-width:2.4;
     stroke-linecap:round;
  }

  .mobile-menu {
     position:absolute;
     top:calc(100% + 10px);
     right:6vw;
     z-index:10;
     display:grid;
     width:min(88vw,340px);
     padding:9px;
     border:1px solid rgba(201,162,90,.48);
     border-radius:16px;
     background:rgba(3,18,22,.97);
     box-shadow:0 18px 48px rgba(0,0,0,.42);
     opacity:0;
     pointer-events:none;
     transform:translateY(-8px) scale(.98);
     transform-origin:top right;
     transition:opacity .22s ease, transform .22s ease;
  }

  .mobile-menu[hidden] {
     display:none;
  }

  .menu-open .mobile-menu {
     opacity:1;
     pointer-events:auto;
     transform:translateY(0) scale(1);
  }

  .mobile-menu a,.mobile-menu__call {
     display:flex;
     align-items:center;
     width:100%;
     min-height:50px;
     padding:0 16px;
     border-bottom:1px solid rgba(201,162,90,.16);
     border-right:0;
     border-left:0;
     border-top:0;
     background:transparent;
     color:var(--paper);
     text-decoration:none;
     text-transform:uppercase;
     letter-spacing:.14em;
     font-family:inherit;
     font-size:.7rem;
     text-align:left;
     cursor:pointer;
  }

  .mobile-menu > :last-child {
     border-bottom:0;
  }

  .mobile-menu a:hover,.mobile-menu a:focus-visible,.mobile-menu__call:hover,.mobile-menu__call:focus-visible {
     color:var(--gold);
     background:rgba(201,162,90,.08);
  }

  .mobile-menu__call {
     margin-top:7px;
     border:1px solid rgba(201,162,90,.72)!important;
     color:var(--gold)!important;
     justify-content:center;
  }

.hero {
     min-height:690px;
  }

.hero:before {
     inset:88px 0 0;
     background-position:64% center;
     background-size:cover;
  }

.hero:after {
     background:linear-gradient(90deg,rgba(3,18,22,.64) 0%,rgba(3,18,22,.36) 49%,rgba(3,18,22,.1) 100%),linear-gradient(0deg,rgba(3,18,22,.62),transparent 48%);
  }

.hero__content {
     width:88vw;
     padding:144px 0 145px;
  }

.hero__highlights {
     bottom:37px;
     left:6vw;
     right:6vw;
     gap:13px;
     justify-content:space-between;
  }

.hero__highlights span {
     display:block;
     text-align:center;
     line-height:1.35;
  }

.hero__highlights b {
     display:block;
  }

.services__grid,.locations__grid,.about {
     grid-template-columns:1fr;
     gap:18px;
  }

.roster__row {
     grid-template-columns:1fr;
     gap:11px;
     padding:25px 0;
     text-align:left;
  }

  .roster__detail {
     align-items:flex-start;
  }

  .roster .button-link {
     width:max-content;
     justify-self:start;
     margin-top:8px;
  }

  .join {
     padding:78px 6vw;
     background-position:44% center;
  }

  .join:before {
     background:linear-gradient(180deg,rgba(3,18,22,.84) 0%,rgba(3,18,22,.97) 44%,rgba(3,18,22,.99) 100%);
  }

  .join__grid {
     grid-template-columns:1fr;
     gap:44px;
  }

  .join__title {
     max-width:540px;
     margin-top:22px;
  }

  .join__benefits {
     grid-template-columns:repeat(3,minmax(0,1fr));
     gap:14px;
     margin-top:35px;
  }

  .join__benefit {
     gap:9px;
     font-size:.86rem;
  }

  .join__benefit svg {
     width:27px;
     height:27px;
  }

  .join__form {
     padding:30px 20px;
  }

.services__header,.locations__header {
     display:block;
  }

.services__header .button {
     margin-top:25px;
  }

.about__image {
     min-height:290px;
  }

.about__content {
     padding:60px 7vw;
  }

 .gallery-section {
     padding:74px 6vw 78px;
  }

  .gallery-section__header {
     margin-bottom:28px;
  }

  .gallery {
     height:490px;
     grid-template-columns:repeat(2,minmax(0,1fr));
     grid-template-rows:310px 164px;
     gap:11px;
  }

  .gallery__item--feature {
     grid-column:span 2;
     grid-row:auto;
  }

  .gallery__item figcaption {
     right:16px;
     bottom:15px;
     left:16px;
  }

  .gallery__item figcaption strong {
     margin-bottom:5px;
     font-size:1rem;
  }

  .gallery__item figcaption span {
     font-size:.53rem;
     letter-spacing:.12em;
  }

.location {
     min-height:365px;
  }

  .location__meta {
     grid-template-columns:1fr;
     gap:16px;
  }

.dialog {
     padding:32px 23px;
  }

.booking__choice-grid {
     grid-template-columns:1fr;
  }

  .booking__action-grid {
     grid-template-columns:1fr;
  }

  .booking__details-grid {
     grid-template-columns:1fr;
  }

 footer {
     display:block;
  }

 footer p {
     margin-top:20px;
  }

  .footer__details {
     display:block;
     margin-left:0;
  }

  .footer__details p {
     margin-top:20px;
  }

  .footer__credit {
     display:block;
     margin-top:20px;
  }
}

@media (prefers-reduced-motion: reduce) {
   html {
      scroll-behavior:auto;
   }

   *,*::before,*::after {
      transition-duration:.01ms!important;
      animation-duration:.01ms!important;
      animation-iteration-count:1!important;
   }
}
