:root {
  --ink: #191717;
  --paper: #f3efe8;
  --gold: #d9ad54;
  --gold-dark: #ba8a31;
  --burgundy: #411f24;
  --serif: Georgia, "Times New Roman", serif;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "DM Sans", Arial, sans-serif;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
em {
  font-family: var(--serif);
  font-weight: 400;
}
a {
  text-decoration: none;
}
.site-header {
  position: relative;
  z-index: 30;
  background: #191918;
}
.navbar {
  min-height: 5.375rem;
}
.navbar-brand img {
  width: 11rem;
  height: auto;
  display: block;
}
.navbar .nav-link {
  color: #e8dfd0;
  font-size: 12.64px;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  padding: 12.8px !important;
}
.navbar .nav-link:hover,
.navbar .nav-link.active {
  color: var(--gold);
}
.navbar-toggler {
  border-color: #887657;
}
.btn-gold {
  background: var(--gold);
  color: #171412;
  border: 0.0625rem solid var(--gold);
  border-radius: 0;
  font-size: 12.32px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
}
.btn-gold:hover {
  background: #edc574;
  border-color: #edc574;
  color: #171412;
}
.btn-outline-light {
  border-radius: 0;
  font-size: 12.32px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
}
.btn span {
  margin-left: 20px;
}
.eyebrow {
  display: inline-block;
  color: var(--gold-dark);
  font-size: 10.88px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 19.2px;
}
.section-title {
  font-family: var(--serif);
  font-size: clamp(40px, 5vw, 88px);
  line-height: 1.06;
  letter-spacing: -0.045em;
  max-width: 56.25rem;
  margin-bottom: 0;
}
.section-title em {
  color: var(--burgundy);
}
.section-pad {
  background-image: url("../resource/bg-1.png");
  padding: clamp(80px, 9vw, 144px) 0;
}
.intro-copy {
  font-size: 17.6px;
  line-height: 1.85;
  color: #5b5550;
}
.intro-copy p {
  margin-bottom: 24px;
}
.text-link {
  display: inline-block;
  color: var(--burgundy);
  font-size: 12.8px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-bottom: 0.0625rem solid currentColor;
  padding-bottom: 6.4px;
}
.text-link:hover {
  color: var(--gold-dark);
}
.hero {
  height: min(48.75rem, calc(100dvh - 5.375rem));
  min-height: 38.75rem;
  position: relative;
  overflow: hidden;
  background: #291b19;
  color: #fff;
}
.hero-carousel,
.hero-carousel .carousel-inner,
.hero-carousel .carousel-item {
  height: 100%;
}
.hero-carousel .carousel-item img {
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.hero-shade {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(16, 12, 12, 0.9) 0%,
    rgba(16, 12, 12, 0.7) 38%,
    rgba(16, 12, 12, 0.12) 100%
  );
}
.hero-content {
  position: absolute !important;
  inset: 0;
  display: flex;
  align-items: center;
  pointer-events: none;
}
.hero-content .row {
  width: 100%;
}
.hero-content a {
  pointer-events: auto;
}
.hero .eyebrow {
  color: var(--gold);
}
.hero h1,
.page-hero h1 {
  font-family: var(--serif);
  font-size: clamp(60.8px, 7.5vw, 134.4px);
  font-weight: 400;
  letter-spacing: -0.06em;
  line-height: 0.98;
  margin-bottom: 25.6px;
}
.hero h1 em,
.page-hero h1 em {
  color: #e4bb72;
}
.hero-content p {
  font-size: 18.4px;
  line-height: 1.75;
  max-width: 544px;
  margin-bottom: 32px;
}
.hero .carousel-indicators {
  bottom: 17.6px;
}
.hero .carousel-indicators button {
  width: 1.875rem;
  height: 0.1875rem;
}
.hero .carousel-control-prev,
.hero .carousel-control-next {
  width: 6%;
  z-index: 4;
}
.hero-carousel {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.hero-shade {
  z-index: 2;
}
.hero-ripple-layer {
  position: absolute;
  inset: 0;
  z-index: 2;
  overflow: hidden;
  pointer-events: none;
}
.hero-ripple {
  position: absolute;
  width: 10rem;
  height: 10rem;
  border: 2px solid rgba(248, 216, 158, 0.78);
  border-radius: 50%;
  box-shadow: 0 0 0 0.8rem rgba(217, 173, 84, 0.14),
    0 0 2rem rgba(217, 173, 84, 0.28);
  opacity: 0;
  will-change: transform, opacity;
}
.hero-content {
  z-index: 3;
}
.hero-carousel .carousel-indicators,
.hero-carousel .carousel-control-prev,
.hero-carousel .carousel-control-next {
  z-index: 4;
}
@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
  .hero-ripple-layer {
    display: none;
  }
}
.ribbon {
  background: var(--gold);
  color: #251a18;
  font-size: 11.2px;
  font-weight: 700;
  letter-spacing: 0.23em;
  white-space: nowrap;
  overflow: hidden;
}
.ribbon span {
  margin: 0 32px;
}
.story-section {
  background: var(--burgundy);
  color: #fff;
}
.story-photo {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 38.75rem;
  object-fit: cover;
}
.story-copy {
  padding: clamp(64px, 8vw, 128px);
  max-width: 48.75rem;
}
.story-copy .section-title em {
  color: var(--gold);
}
.story-copy p {
  font-size: 17.6px;
  line-height: 1.8;
  color: #e7d8d3;
  margin: 32px 0;
}
.service-card {
  position: relative;
  color: #fff;
  min-height: 30.625rem;
  overflow: hidden;
  background: #241b18;
}
.service-card > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}
.service-card:hover > img {
  transform: scale(1.04);
}
.service-card:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.9), transparent 70%);
}
.service-number {
  position: absolute;
  top: 22.4px;
  left: 24px;
  z-index: 1;
  color: #fff;
  font-size: 12.8px;
}
.service-card-copy {
  position: absolute;
  bottom: 24px;
  left: 24px;
  right: 24px;
  z-index: 1;
}
.service-card h3 {
  font-family: var(--serif);
  font-size: 33.6px;
}
.service-card p {
  max-width: 320px;
  line-height: 1.5;
  color: #eee;
}
.service-card-copy > span {
  color: var(--gold);
}
.quote-strip {
  background: #d8b56e;
  padding: 80px 0;
}
.quote-mark {
  font-family: var(--serif);
  font-size: 80px;
  line-height: 0.5;
}
.quote-strip p {
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 64px);
  line-height: 1.15;
  max-width: 50rem;
  margin: 16px auto 32px;
}
.quote-strip .eyebrow {
  color: #4a3324;
}
.home-gallery img {
  display: block;
  width: 100%;
  height: 29.375rem;
  object-fit: cover;
}
.page-hero {
  position: relative;
  min-height: 35rem;
  display: flex;
  align-items: end;
  padding: 112px 0;
  color: #fff;
  background-image:
    linear-gradient(90deg, rgba(21, 14, 15, 0.88), rgba(21, 14, 15, 0.18)),
    var(--hero-image);
  background-size: cover;
  background-position: center;
}
.page-hero .eyebrow {
  color: var(--gold);
}
.page-hero h1 {
  max-width: 56.25rem;
}
.page-hero .lead {
  max-width: 35rem;
  font-size: 19.2px;
}
.about-image {
  background: #e8e0d3;
  padding: 0 0 80px;
}
.about-image img {
  display: block;
  width: 100%;
  max-height: 43.125rem;
  object-fit: cover;
}
.about-note {
  padding: 32px 0;
}
.about-note p {
  font-family: var(--serif);
  font-size: 28.8px;
  line-height: 1.25;
}
.value-card {
  border-top: 0.0625rem solid #ad9f8b;
  padding: 32px 16px 32px 0;
}
.value-card > span {
  font-size: 12px;
  color: var(--gold-dark);
}
.value-card h3 {
  font-family: var(--serif);
  font-size: 35.2px;
  margin: 32px 0 16px;
}
.value-card p {
  line-height: 1.7;
  color: #625b55;
}
.photo-banner {
  position: relative;
  color: #fff;
  padding: 128px 0;
  background-image:
    linear-gradient(90deg, rgba(20, 13, 14, 0.87), rgba(20, 13, 14, 0.17)),
    url("../mariachi-group.jpg");
  background-position: center;
  background-size: cover;
}
.photo-banner .section-title {
  max-width: 43.75rem;
  margin-bottom: 32px;
}
.photo-banner .section-title em {
  color: var(--gold);
}
.services-list {
  padding-bottom: 80px;
}
.service-row {
  background: #e7ded0;
}
.service-row:nth-child(even) {
  background: #e9e5dd;
}
.service-row img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 26.875rem;
  object-fit: cover;
}
.service-row-copy {
  padding: clamp(48px, 6vw, 96px);
}
.service-row h2 {
  font-family: var(--serif);
  font-size: clamp(44.8px, 5vw, 80px);
}
.service-row p {
  font-size: 17.28px;
  line-height: 1.75;
  max-width: 31.25rem;
  color: #5b5550;
  margin-bottom: 32px;
}
.more-events {
  background: #e4dac9;
}
.event-pill {
  border: 0.0625rem solid #a69680;
  padding: 16px 24px;
  font-size: 13.12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.gallery-heading {
  padding: 128px 0 80px;
}
.gallery-heading .section-title {
  margin: auto;
}
.gallery-heading p {
  font-size: 17.6px;
  margin: 27.2px 0 0;
  color: #5b5550;
}
.gallery-item {
  position: relative;
  border: 0;
  padding: 0;
  background: #241b18;
  color: #fff;
  overflow: hidden;
  text-align: left;
}
.gallery-item img {
  display: block;
  width: 100%;
  height: 24.375rem;
  object-fit: cover;
  transition: transform 0.5s;
}
.gallery-item:hover img {
  transform: scale(1.04);
}
.gallery-item span {
  position: absolute;
  bottom: 16px;
  left: 16px;
  font-size: 11.2px;
  font-weight: 700;
  letter-spacing: 0.14em;
  background: #1d1715bb;
  padding: 10.4px 13.6px;
}
.gallery-note {
  margin-top: 32px;
  color: #766d63;
  font-size: 13.12px;
}
.modal-content {
  background: #1a1716;
  color: #fff;
  border-radius: 0;
}
.modal-body img {
  max-height: 70vh;
  object-fit: contain;
}
.contact-hero {
  padding: 128px 0 96px;
  background-image: linear-gradient(90deg, #170f10ee 0%, #170f10d9 43%, #170f1077 78%, #170f1070 100%), url('../slider-band.jpg');
  background-position: center 18%;
  background-size: cover;
  color: #f8f2e9;
  border-bottom: 4px solid #214b36;
}
.contact-hero .section-title {
  max-width: 43.75rem;
}
.contact-hero .section-title em { color: #e8bb6a; }
.contact-hero > div > p {
  font-size: 19.2px;
  color: #f0e5d7;
  margin: 32px 0 0;
}
.contact-info .section-title {
  font-size: clamp(38.4px, 4vw, 64px);
  margin-bottom: 48px;
}
.contact-line {
  border-top: 0.0625rem solid #bdaf9f;
  padding: 24px 0;
}
.contact-line span {
  display: block;
  font-size: 10.4px;
  font-weight: 700;
  letter-spacing: 0.17em;
  color: #9f7437;
  margin-bottom: 11.2px;
}
.contact-line a {
  font-family: var(--serif);
  font-size: 24px;
  color: var(--ink);
}
.contact-card {
  background: #e6dacc;
  padding: clamp(32px, 5vw, 80px);
}
.contact-card h2 {
  font-family: var(--serif);
  font-size: clamp(35.2px, 4vw, 56px);
  margin-bottom: 32px;
}
.form-label {
  font-size: 12.48px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.form-control,
.form-select {
  border-radius: 0;
  border: 0.0625rem solid #bdaf9f;
  background: #f5f0e9;
  padding: 13.6px;
}
.form-control:focus,
.form-select:focus {
  border-color: var(--gold-dark);
  box-shadow: 0 0 0 3.2px #d9ad5433;
  background: #fff;
}
.form-note {
  font-size: 12.48px;
  color: #625b55;
  line-height: 1.5;
}
.contact-photo {
  position: relative;
  min-height: 31.25rem;
  display: flex;
  align-items: end;
  padding: 64px 0;
  color: #fff;
}
.contact-photo > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.contact-photo:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, #191312dd, transparent);
}
.contact-photo .container-xl {
  z-index: 1;
}
.contact-photo .section-title {
  max-width: 43.75rem;
}
.contact-photo .section-title em {
  color: var(--gold);
}
.site-footer {
  background: #111;
  color: #f4f4f4;
  padding: 48px 0 24px;
}
.footer-columns h2 {
  margin: 0 0 16px;
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.25;
}
.footer-brand {
  display: inline-block;
  margin-bottom: 22px;
}
.footer-about-copy {
  max-width: 280px;
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
}
.footer-contact {
  display: grid;
  gap: 20px;
  margin: 0;
  font-size: 14px;
  font-style: normal;
  line-height: 1.6;
}
.footer-contact div {
  display: grid;
  gap: 2px;
}
.footer-contact strong {
  font-weight: 700;
}
.footer-contact a {
  color: inherit;
  text-decoration: none;
}
.footer-contact a:hover {
  color: var(--gold);
}
.site-footer .section-title {
  font-size: clamp(38.4px, 5vw, 80px);
}
.site-footer .section-title em {
  color: var(--gold);
}
.site-footer .small {
  color: #a99e8e;
}
.footer-bottom {
  border-top: 0.0625rem solid #3a3a3a;
  margin-top: 44px;
  padding-top: 18px;
  color: #aaa;
  font-size: 12px;
}
.footer-logo {
  width: 12rem;
  height: auto;
}
.footer-bottom a {
  color: #e4d6c5;
  font-size: 12.8px;
}
.footer-bottom a:hover {
  color: var(--gold);
}
@media (max-width: 61.9375rem) {
  .navbar-collapse {
    padding: 19.2px 0 32px;
  }
  .hero {
    min-height: 40.625rem;
  }
  .hero .carousel-control-prev,
  .hero .carousel-control-next {
    display: none;
  }
  .story-photo {
    min-height: 27.5rem;
  }
  .home-gallery img {
    height: 23.125rem;
  }
}
@media (max-width: 35.9375rem) {
  .navbar {
    min-height: 4.5rem;
  }
  .navbar-brand img {
    width: 9.0625rem;
  }
  .hero {
    height: 42.5rem;
    min-height: 0;
  }
  .hero-shade {
    background: linear-gradient(
      0deg,
      rgba(16, 12, 12, 0.92),
      rgba(16, 12, 12, 0.35)
    );
  }
  .hero-content {
    align-items: end;
    padding-bottom: 80px;
  }
  .hero h1 {
    font-size: clamp(52.8px, 12vw, 80px);
  }
  .hero-content p {
    font-size: 16px;
  }
  .hero .carousel-item img {
    object-position: 60% center;
  }
  .ribbon {
    font-size: 8.8px;
  }
  .section-pad {
    padding: 72px 0;
  }
  .section-title {
    font-size: 44.8px;
  }
  .service-card {
    min-height: 27.5rem;
  }
  .page-hero {
    min-height: 30rem;
    padding: 80px 0;
  }
  .page-hero h1 {
    font-size: 59.2px;
  }
  .service-row img {
    min-height: 20rem;
  }
  .service-row-copy {
    padding: 40px;
  }
  .gallery-heading {
    padding: 80px 0 64px;
  }
  .gallery-item img {
    height: 20rem;
  }
  .contact-hero {
    padding: 80px 0 64px;
    background-image: linear-gradient(90deg, #170f10e8, #170f10aa), url('../slider-band.jpg');
    background-position: 54% center;
  }
  .contact-line a {
    font-size: 19.2px;
  }
  .footer-bottom {
    margin-top: 48px;
  }
}
.about-feature {
  background: #171719;
  color: #f2eee8;
  padding: clamp(80px, 8vw, 128px) 0 clamp(80px, 8vw, 128px);
}
.about-feature > .container-xl > .row:first-child {
  padding-left: clamp(0px, 2vw, 32px);
}
.about-feature h1 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(51.2px, 6vw, 105.6px);
  letter-spacing: -0.055em;
  line-height: 1.04;
  max-width: 65.625rem;
  margin-bottom: 24px;
}
.about-feature h1 em {
  color: var(--gold);
}
.about-feature .eyebrow {
  color: var(--gold);
}
.about-lead {
  max-width: 40.625rem;
  color: #c6beb5;
  font-size: 17.92px;
  line-height: 1.75;
}
.about-story-card {
  background: #242426;
  border: 0.0625rem solid #383537;
  border-radius: 0.4375rem;
  padding: clamp(25.6px, 3.2vw, 56px);
  display: flex;
  flex-direction: column;
  min-height: 42.5rem;
}
.about-card-index {
  font-size: 11.2px;
  letter-spacing: 0.12em;
  color: #807874;
}
.about-story-main {
  padding: clamp(32px, 5vw, 80px) 0 32px;
}
.about-story-main h2 {
  font-family: var(--serif);
  font-size: clamp(33.6px, 3.5vw, 60.8px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.045em;
  max-width: 40rem;
}
.about-story-main h2 em {
  color: var(--gold);
}
.about-story-main p {
  max-width: 41.875rem;
  color: #bdb4ac;
  font-size: 16px;
  line-height: 1.8;
  margin: 25.6px 0 0;
}
.about-pillars {
  margin-top: auto;
  border-top: 0.0625rem solid #494143;
  border-bottom: 0.0625rem solid #494143;
}
.about-pillar {
  height: 100%;
  padding: 24px 17.6px 24px 0;
}
.about-pillars > div + div .about-pillar {
  border-left: 0.0625rem solid #494143;
  padding-left: 19.2px;
}
.about-pillar > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 33.6px;
  height: 33.6px;
  background: #96713c;
  color: #211917;
  font-size: 10.88px;
  font-weight: 700;
  margin-bottom: 16px;
}
.about-pillar h3 {
  font-family: var(--serif);
  font-size: 21.6px;
  margin-bottom: 6.4px;
}
.about-pillar p {
  color: #aaa19a;
  font-size: 12.64px;
  line-height: 1.5;
  margin: 0;
}
.about-story-end {
  padding-top: 27.2px;
}
.about-story-end > span {
  font-size: 10.08px;
  letter-spacing: 0.16em;
  color: #b29c76;
}
.about-story-end .btn {
  padding: 15.2px 19.2px !important;
}
.about-image-card {
  position: relative;
  min-height: 42.5rem;
  overflow: hidden;
  border-radius: 0.4375rem;
  background: #291b15;
}
.about-image-card > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 27% center;
}
.about-image-card:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    #16131360 0%,
    transparent 24%,
    #100d0aee 100%
  );
}
.about-image-top,
.about-image-bottom {
  position: relative;
  z-index: 1;
}
.about-image-top {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 32px;
}
.about-image-top .about-card-index {
  color: #ddd1bd;
}
.about-image-bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 35.2px;
}
.about-sound-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38.4px;
  height: 38.4px;
  background: var(--gold);
  color: #1b1712;
  margin-bottom: 16px;
}
.about-image-bottom h2 {
  font-family: var(--serif);
  font-size: clamp(32px, 3vw, 48px);
  font-weight: 400;
  line-height: 1.12;
  max-width: 26.25rem;
}
.about-image-bottom p {
  color: #ded1bd;
  line-height: 1.5;
  max-width: 23.125rem;
}
.about-image-bottom a {
  display: inline-block;
  color: var(--gold);
  border-bottom: 0.0625rem solid currentColor;
  padding-bottom: 5.6px;
  font-size: 11.68px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 700;
}
.about-beyond {
  background-image: url("../resource/bg-1.png");
}
.about-band-photo {
  position: relative;
}
.about-band-photo img {
  display: block;
  width: 100%;
  height: 32.5rem;
  object-fit: cover;
}
.about-band-photo span {
  position: absolute;
  bottom: 24px;
  left: 24px;
  background: #f3efe8;
  color: #2b211d;
  padding: 13.6px 16px;
  font-size: 10.24px;
  letter-spacing: 0.13em;
  font-weight: 700;
}
.about-beyond-copy {
  max-width: 35rem;
  color: #5b5550;
  font-size: 17.28px;
  line-height: 1.85;
  margin: 32px 0;
}
@media (max-width: 61.9375rem) {
  .about-story-card,
  .about-image-card {
    min-height: 37.5rem;
  }
  .about-story-main {
    padding: 40px 0;
  }
  .about-image-card > img {
    object-position: center 35%;
  }
}
@media (max-width: 35.9375rem) {
  .about-feature {
    padding: 72px 0;
  }
  .about-feature h1 {
    font-size: clamp(44.8px, 11vw, 64px);
  }
  .about-lead {
    font-size: 16px;
  }
  .about-story-card {
    min-height: 0;
  }
  .about-story-main {
    padding: 40px 0;
  }
  .about-pillars > div + div .about-pillar {
    border-left: 0;
    border-top: 0.0625rem solid #494143;
    padding-left: 0;
  }
  .about-pillar {
    padding: 17.6px 0;
  }
  .about-pillar > span {
    margin-bottom: 6.4px;
  }
  .about-image-card {
    min-height: 37.5rem;
  }
  .about-image-bottom {
    padding: 24px;
  }
  .about-band-photo img {
    height: 21.25rem;
  }
  .about-band-photo span {
    left: 12.8px;
    bottom: 12.8px;
  }
}
.home-about-poster {
  background-image: url("../resource/bg-1.png");
  padding: clamp(72px, 7vw, 128px) 0;
}
.poster-meta {
  border-top: 0.125rem solid #29211c;
  padding-top: 19.2px;
  color: #4b3e35;
  font-size: 11.04px;
  letter-spacing: 0.17em;
  font-weight: 700;
}
.home-about-poster h2 {
  font-family: "DM Sans", Arial, sans-serif;
  font-size: clamp(67.2px, 8.1vw, 144px);
  font-weight: 700;
  line-height: 0.92;
  letter-spacing: -0.085em;
  text-transform: uppercase;
  max-width: 78.125rem;
  margin: clamp(48px, 5vw, 96px) 0 clamp(48px, 5vw, 80px);
}
.home-about-poster h2 em {
  font:
    italic 700 1em/1 "DM Sans",
    Arial,
    sans-serif;
  color: #692f33;
}
.poster-frame {
  border: 0.0625rem solid #523d34;
}
.poster-photo {
  position: relative;
  height: 100%;
  min-height: 26.25rem;
  margin: 0;
  background: #342b25;
}
.poster-photo img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 26.25rem;
  object-fit: cover;
  object-position: center;
}
.poster-photo figcaption {
  position: absolute;
  left: 27.2px;
  bottom: 27.2px;
  background: #f1eadf;
  padding: 12.8px 16px;
  color: #2a201c;
  font-size: 10.08px;
  letter-spacing: 0.16em;
  font-weight: 700;
}
.poster-panel {
  height: 100%;
  min-height: 26.25rem;
  background: #59282e;
  color: #fbf3e8;
  padding: clamp(32px, 3vw, 56px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 32px;
}
.poster-mark {
  font-size: 48px;
  line-height: 1;
  color: #ddb35b;
}
.poster-panel p {
  font-family: var(--serif);
  font-size: clamp(22.4px, 2.1vw, 32px);
  line-height: 1.35;
  letter-spacing: -0.02em;
  margin: 0 0 32px;
}
.poster-panel a {
  color: #f1c66f;
  font-size: 12.16px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  border-bottom: 0.0625rem solid currentColor;
  padding-bottom: 7.2px;
}
.poster-panel a span {
  margin-left: 22.4px;
}
.poster-foot {
  border-bottom: 0.0625rem solid #ad9e8c;
  padding: 22.4px 0;
  color: #56473e;
}
.poster-foot span {
  font-size: 10.72px;
  letter-spacing: 0.14em;
  font-weight: 700;
}
.poster-foot a {
  font-size: 12.64px;
  font-weight: 700;
  color: #692f33;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  border-bottom: 0.0625rem solid currentColor;
  padding-bottom: 5.6px;
}

/* Services: photo opening and Bootstrap occasion explorer */
.services-experience {
  background: #eee8de;
}
.services-opening {
  padding: clamp(72px, 7vw, 112px) 0 clamp(72px, 7vw, 112px);
  background-image: linear-gradient(90deg, #160e10f2 0%, #160e10dc 43%, #160e1080 78%, #160e1080 100%), url('../mariachi-group.jpg');
  background-position: center 42%;
  background-size: cover;
  color: #f8f2e9;
  border-bottom: 4px solid #214b36;
}
.services-opening-main {
  padding: clamp(20px, 2.5vw, 36px) 0 0;
}
.services-opening .eyebrow {
  color: #e4bd77;
}
.services-opening h1 {
  max-width: 50rem;
  font-family: var(--serif);
  font-size: clamp(58px, 5.4vw, 88px);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 1.03;
  margin: 0;
}
.services-opening h1 em {
  font-weight: 400;
  color: #edc77c;
}
.services-opening-main p {
  max-width: 21.875rem;
  color: #f0e5d7;
  font-size: 17.28px;
  line-height: 1.65;
  margin: 0 0 27.2px;
}
.services-opening .text-link { color: #edc77c; }
.services-opening .text-link:hover { color: #fff; }
.services-explorer {
  padding: clamp(80px, 8vw, 144px) 0;
  background: #eee8de;
}
.services-explorer-head {
  padding-bottom: 48px;
}
.services-explorer-head h2 {
  font-family: var(--serif);
  font-size: clamp(41.6px, 5vw, 86.4px);
  font-weight: 400;
  letter-spacing: -0.06em;
  line-height: 1.03;
  max-width: 47.5rem;
  margin: 0;
}
.services-explorer-head h2 em {
  color: #723439;
}
.services-explorer-head p {
  color: #665b53;
  line-height: 1.8;
  max-width: 21.875rem;
  margin: 0 0 3.2px auto;
}
.services-stage {
  border: 0.0625rem solid #322821;
  box-shadow: 0.875rem 0.875rem 0 #d6c9b7;
}
.services-selector {
  height: 100%;
  min-height: 46.875rem;
  background: #2b2422;
  color: #f2ece2;
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 2.5vw, 48px);
}
.services-selector-intro span,
.services-selector-foot {
  color: #bd9c6b;
  font-size: 10.56px;
  font-weight: 700;
  letter-spacing: 0.17em;
}
.services-selector-intro p {
  font-family: var(--serif);
  font-size: 33.6px;
  letter-spacing: -0.035em;
  margin: 32px 0 40px;
}
.services-tabs {
  border-top: 0.0625rem solid #63544a;
}
.services-tabs .nav-link {
  width: 100%;
  display: flex;
  align-items: baseline;
  gap: 16px;
  text-align: left;
  border-radius: 0;
  border-bottom: 0.0625rem solid #63544a;
  padding: 20px 4px;
  color: #cbbfb2;
  background: transparent;
  transition:
    background-color 0.2s,
    color 0.2s,
    padding-left 0.2s;
}
.services-tabs .nav-link:hover,
.services-tabs .nav-link:focus-visible {
  color: #fff;
  background: #3c302b;
  padding-left: 11.2px;
}
.services-tabs .nav-link.active {
  background: #d9ad54;
  color: #211a16;
  padding-left: 11.2px;
}
.service-tab-index {
  align-self: flex-start;
  font-size: 10.4px;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.service-tab-name {
  font-family: var(--serif);
  font-size: clamp(24.8px, 2.4vw, 38.4px);
  line-height: 1;
  flex: 1;
}
.service-tab-arrow {
  font-size: 20.8px;
}
.services-selector-foot {
  margin-top: auto;
  padding-top: 48px;
}
.services-panels {
  height: 100%;
  background: #f6f1e9;
}
.services-panels > .tab-pane {
  height: 100%;
}
.services-panel-photo {
  height: 27.5rem;
  position: relative;
  background: #4d3c30;
  overflow: hidden;
}
.services-panel-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.services-panel-photo:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, #1f1510ad, transparent 45%);
}
.services-panel-photo > span {
  position: absolute;
  left: 40px;
  bottom: 32px;
  z-index: 1;
  color: #fff;
  font-size: 10.4px;
  font-weight: 700;
  letter-spacing: 0.18em;
}
.services-panel-body {
  padding: clamp(32px, 3.7vw, 64px);
}
.services-panel-kicker {
  display: block;
  color: #9d6e31;
  font-size: 10.24px;
  font-weight: 700;
  letter-spacing: 0.17em;
  margin-bottom: 17.6px;
}
.services-panel-body h3 {
  max-width: 38.125rem;
  font-family: var(--serif);
  font-size: clamp(32px, 3.6vw, 64px);
  line-height: 1.06;
  letter-spacing: -0.055em;
  margin-bottom: 20px;
}
.services-panel-body p {
  max-width: 40rem;
  color: #60564e;
  font-size: 15.68px;
  line-height: 1.7;
  margin: 0;
}
.services-panel-note {
  display: block;
  color: #8c7b69;
  font-size: 10.88px;
  line-height: 1.5;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: 24px;
}
.services-panel-cta {
  display: inline-block;
  color: #633038;
  border-bottom: 0.0625rem solid currentColor;
  padding-bottom: 7.2px;
  font-size: 11.52px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
}
.services-panel-cta span {
  margin-left: 8px;
}
.services-panel-cta:hover {
  color: #a67334;
}
.services-else {
  background: #d9c7aa;
  padding: clamp(80px, 8vw, 128px) 0;
}
.services-else .eyebrow {
  color: #70463b;
}
.services-else h2 {
  font-family: var(--serif);
  font-size: clamp(40px, 5vw, 81.6px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.055em;
}
.services-else h2 em {
  color: #68343a;
}
.services-else p {
  max-width: 38.125rem;
  color: #4c4139;
  font-size: 17.28px;
  line-height: 1.75;
}
.services-else .event-pill {
  background: #eadac0;
  border-color: #9f8b74;
  padding: 12.8px 17.6px;
  font-size: 10.72px;
}
.services-else .btn-gold {
  background: #2b2422;
  border-color: #2b2422;
  color: #fff;
}
.services-else .btn-gold:hover {
  background: #633038;
  border-color: #633038;
}
@media (max-width: 61.9375rem) {
  .services-stage {
    box-shadow: 0.5rem 0.5rem 0 #d6c9b7;
  }
  .services-selector {
    min-height: 0;
  }
  .services-selector-intro p {
    margin: 16px 0 24px;
  }
  .services-selector-foot {
    display: none;
  }
  .services-tabs {
    flex-direction: row !important;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .services-tabs .nav-link {
    min-width: 0;
  }
  .services-explorer-head p {
    margin: 0;
  }
  .services-panel-photo {
    height: 25rem;
  }
}
@media (max-width: 35.9375rem) {
  .services-opening {
    padding: 64px 0;
    background-image: linear-gradient(90deg, #160e10e8, #160e10aa), url('../mariachi-group.jpg');
    background-position: 53% center;
  }
  .services-opening h1 {
    font-size: clamp(51.2px, 12vw, 64px);
    line-height: 1.04;
  }
  .services-opening-main p {
    font-size: 16px;
  }
  .services-explorer {
    padding: 72px 0;
  }
  .services-explorer-head {
    padding-bottom: 32px;
  }
  .services-explorer-head h2 {
    font-size: 44.8px;
  }
  .services-selector {
    padding: 20px;
  }
  .services-selector-intro p {
    font-size: 27.2px;
  }
  .services-tabs .nav-link {
    gap: 8px;
    padding: 14.4px 5.6px;
  }
  .service-tab-index {
    font-size: 9.12px;
  }
  .service-tab-name {
    font-size: 18.4px;
    letter-spacing: -0.04em;
  }
  .service-tab-arrow {
    font-size: 16px;
  }
  .services-panel-photo {
    height: 18.125rem;
  }
  .services-panel-photo > span {
    left: 20px;
    bottom: 20px;
  }
  .services-panel-body {
    padding: 24px;
  }
  .services-panel-body h3 {
    font-size: 36.8px;
  }
  .services-else {
    padding: 72px 0;
  }
}
@media (max-width: 61.9375rem) {
  .poster-photo,
  .poster-photo img {
    min-height: 0;
  }
  .poster-photo img {
    height: auto;
    aspect-ratio: 2/1;
    object-fit: cover;
  }
  .poster-panel {
    min-height: 0;
  }
}
@media (max-width: 35.9375rem) {
  .home-about-poster {
    padding: 64px 0;
  }
  .poster-meta {
    font-size: 9.28px;
    line-height: 1.9;
  }
  .home-about-poster h2 {
    font-size: clamp(56px, 13vw, 88px);
    letter-spacing: -0.08em;
    margin: 38.4px 0;
  }
  .poster-photo img {
    aspect-ratio: 1.55;
  }
  .poster-photo figcaption {
    left: 12.8px;
    bottom: 12.8px;
    font-size: 8.32px;
    max-width: 75%;
  }
  .poster-panel {
    padding: 32px;
  }
  .poster-panel p {
    font-size: 24.8px;
  }
  .poster-foot {
    gap: 16px;
  }
  .poster-foot span {
    line-height: 1.7;
  }
}

/* Home: photo circles arranged around one circular path */
.home-process {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 84% 12%, #49302c 0, transparent 33%), #1c1b1b;
  color: #f3ece1;
  padding: clamp(80px, 8vw, 128px) 0 72px;
}
.home-process:before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.09;
  pointer-events: none;
  background-image: repeating-linear-gradient(
    90deg,
    transparent 0 5.375rem,
    #c49b54 5.4375rem,
    transparent 5.5rem
  );
}
.home-process .container-xl {
  position: relative;
}
.home-process .eyebrow {
  color: #d9ad54;
}
.home-process-head h2 {
  max-width: 56.25rem;
  font-family: var(--serif);
  font-size: clamp(48px, 5.6vw, 99.2px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.055em;
  margin: 0;
}
.home-process-head h2 em {
  color: #d9ad54;
}
.home-process-head p {
  max-width: 21.875rem;
  color: #bdb1a5;
  font-size: 16.96px;
  line-height: 1.75;
  margin: 0 0 4.8px auto;
}
.home-process-wheel {
  position: relative;
  width: min(100%, 48.75rem);
  aspect-ratio: 1;
  margin: 48px auto 32px;
}
.process-wheel-ring {
  position: absolute;
  inset: 13.2%;
  border: 0.0625rem solid #ae834b;
  border-radius: 50%;
  box-shadow:
    0 0 0 0.875rem #ffffff08,
    0 0 0 0.9375rem #ae834b30;
}
.process-wheel-ring:after {
  content: "";
  position: absolute;
  inset: 17%;
  border: 0.0625rem dashed #b58b5060;
  border-radius: 50%;
}
.process-wheel-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.process-wheel-step {
  position: absolute;
  width: 23%;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  z-index: 2;
}
.process-wheel-step-1 {
  top: 24%;
  left: 24%;
}
.process-wheel-step-2 {
  top: 24%;
  left: 76%;
}
.process-wheel-step-3 {
  top: 76%;
  left: 76%;
}
.process-wheel-step-4 {
  top: 76%;
  left: 24%;
}
.process-wheel-photo {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  overflow: hidden;
  border: 0.3125rem solid #d7ad64;
  background: #392920;
  box-shadow:
    0 0 0 0.4375rem #1c1b1b,
    0 0 0 0.5rem #a98148;
}
.process-wheel-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.process-wheel-photo:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0008, transparent 35%, #000b 100%);
}
.process-wheel-number,
.process-wheel-title {
  position: absolute;
  z-index: 1;
  color: #fff;
}
.process-wheel-number {
  top: 13%;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--serif);
  font-size: 23.2px;
}
.process-wheel-title {
  left: 12%;
  right: 12%;
  bottom: 14%;
  text-align: center;
  font-family: var(--serif);
  font-size: clamp(13.76px, 1.4vw, 18.4px);
  line-height: 1.05;
}
.process-wheel-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 27%;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 0.0625rem solid #c49655;
  background: #221b19;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10.4px;
  box-shadow:
    0 0 0 0.625rem #1c1b1b,
    0 0 0 0.6875rem #a9814880;
}
.process-wheel-center:before {
  content: "";
  position: absolute;
  inset: 0.625rem;
  border: 0.0625rem solid #a9814870;
  border-radius: 50%;
}
.process-wheel-center img {
  position: relative;
  width: 72%;
  height: auto;
  max-height: 55%;
  object-fit: contain;
}
.process-wheel-center span {
  position: relative;
  color: #d9ad54;
  font-size: 8.48px;
  font-weight: 700;
  letter-spacing: 0.17em;
}
.home-process-details {
  margin: 0 0 clamp(48px, 5vw, 80px);
}
.process-detail {
  height: 100%;
  border-top: 0.0625rem solid #5b4a3e;
  padding: 20.8px 9.6px 0 0;
}
.process-detail > span {
  display: block;
  color: #d9ad54;
  font-size: 9.76px;
  font-weight: 700;
  letter-spacing: 0.16em;
  margin-bottom: 12.8px;
}
.process-detail h3 {
  font-family: var(--serif);
  font-size: clamp(24px, 2vw, 33.6px);
  font-weight: 400;
  line-height: 1.1;
  margin-bottom: 12px;
}
.process-detail p {
  max-width: 16.875rem;
  color: #aaa19a;
  font-size: 14.08px;
  line-height: 1.65;
  margin: 0;
}
.home-process-foot {
  border-top: 0.0625rem solid #5d5148;
  padding-top: 27.2px;
}
.home-process-foot > div > span {
  color: #d9ad54;
  font-size: 10.72px;
  font-weight: 700;
  letter-spacing: 0.17em;
}
@media (max-width: 47.9375rem) {
  .home-process {
    padding: 72px 0 56px;
  }
  .home-process-head h2 {
    font-size: clamp(44.8px, 10vw, 67.2px);
  }
  .home-process-head p {
    margin: 0;
  }
  .home-process-wheel {
    margin: 32px auto 40px;
  }
  .process-wheel-ring {
    inset: 10.5%;
    box-shadow:
      0 0 0 0.4375rem #ffffff08,
      0 0 0 0.5rem #ae834b30;
  }
  .process-wheel-step {
    width: 34%;
  }
  .process-wheel-step-1 {
    top: 22%;
    left: 22%;
  }
  .process-wheel-step-2 {
    top: 22%;
    left: 78%;
  }
  .process-wheel-step-3 {
    top: 78%;
    left: 78%;
  }
  .process-wheel-step-4 {
    top: 78%;
    left: 22%;
  }
  .process-wheel-photo {
    border-width: 0.1875rem;
    box-shadow:
      0 0 0 0.25rem #1c1b1b,
      0 0 0 0.3125rem #a98148;
  }
  .process-wheel-number {
    top: 39%;
    font-size: 32px;
    line-height: 1;
  }
  .process-wheel-title {
    display: none;
  }
  .process-wheel-center {
    width: 29%;
    gap: 1.6px;
    box-shadow:
      0 0 0 0.3125rem #1c1b1b,
      0 0 0 0.375rem #a9814880;
  }
  .process-wheel-center:before {
    inset: 0.3125rem;
  }
  .process-wheel-center span {
    font-size: 5.6px;
    letter-spacing: 0.08em;
  }
  .home-process-details {
    margin-bottom: 48px;
  }
  .process-detail h3 {
    font-size: 27.2px;
  }
  .home-process-foot .btn {
    margin-top: 9.6px;
  }
}
/* The photo wheel reveals the chosen step on hover, focus, or tap. */
.process-hint {
  text-align: center;
  color: #c7ad80;
  font-size: 11.2px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  margin: 36.8px 0 0;
}
.process-hint-mobile {
  display: none;
}
.home-process-wheel {
  margin-top: 25.6px;
  margin-bottom: 35.2px;
}
.process-wheel-photo {
  display: block;
  padding: 0;
  appearance: none;
  font: inherit;
  color: inherit;
  cursor: pointer;
  transition:
    transform 0.22s ease,
    border-color 0.22s ease,
    box-shadow 0.22s ease;
}
.process-wheel-photo:hover,
.process-wheel-photo.is-active {
  transform: scale(1.045);
  border-color: #f1c574;
  box-shadow:
    0 0 0 0.4375rem #1c1b1b,
    0 0 0 0.5625rem #e5b969;
}
.process-wheel-photo:focus-visible {
  outline: 0.1875rem solid #fff;
  outline-offset: 0.75rem;
}
.process-center-default,
.process-center-active {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  padding: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.process-center-active {
  display: none;
  gap: 7.2px;
}
.process-wheel-center.is-active .process-center-default {
  display: none;
}
.process-wheel-center.is-active .process-center-active {
  display: flex;
}
.process-center-number {
  color: #d9ad54 !important;
  font-size: 9.92px !important;
  letter-spacing: 0.14em;
}
.process-center-title {
  font-family: var(--serif);
  font-size: clamp(17.6px, 1.6vw, 23.2px);
  font-weight: 400;
  line-height: 1.04;
  color: #fff;
}
.process-center-copy {
  color: #d5c8b7;
  font-size: 10.72px;
  line-height: 1.3;
  margin: 0;
}
.process-mobile-detail {
  display: none;
}
@media (max-width: 47.9375rem) {
  .process-hint {
    margin: 24px 0 0;
    text-align: left;
    font-size: 9.76px;
  }
  .process-hint-desktop {
    display: none;
  }
  .process-hint-mobile {
    display: inline;
  }
  .home-process-wheel {
    margin: 32px auto;
  }
  .process-wheel-photo:hover,
  .process-wheel-photo.is-active {
    box-shadow:
      0 0 0 0.25rem #1c1b1b,
      0 0 0 0.375rem #e5b969;
  }
  .process-wheel-center.is-active .process-center-default {
    display: flex;
  }
  .process-wheel-center.is-active .process-center-active {
    display: none;
  }
  .process-mobile-detail {
    display: block;
    border-top: 0.0625rem solid #6e5b48;
    padding: 20.8px 0 28.8px;
    min-height: 9.375rem;
  }
  .process-mobile-number {
    display: block;
    color: #d9ad54;
    font-size: 9.92px;
    font-weight: 700;
    letter-spacing: 0.15em;
    margin-bottom: 11.2px;
  }
  .process-mobile-title {
    font-family: var(--serif);
    font-size: 30.4px;
    font-weight: 400;
    line-height: 1.1;
    margin-bottom: 8.8px;
  }
  .process-mobile-copy {
    max-width: 25rem;
    color: #bdb1a5;
    font-size: 14.56px;
    line-height: 1.6;
    margin: 0;
  }
  .home-process-foot {
    margin-top: 16px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .process-wheel-photo {
    transition: none;
  }
}
@media (min-width: 48rem) {
  .process-wheel-center {
    width: 30%;
  }
  .process-center-copy {
    font-size: 12px;
    line-height: 1.35;
  }
}

/* Gallery: an image-led editorial sequence using the logo's oxblood, green and gold. */
.gallery-page {
  --gallery-red: #5a2027;
  --gallery-green: #214b36;
  --gallery-gold: #d9ad54;
}
.gallery-stage {
  position: relative;
  min-height: 27.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #171312;
  color: #fff;
}
.gallery-stage > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.gallery-stage:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #130d0dd6, #1b1111ad 46%, #130d0dcb);
}
.gallery-stage .container-xl {
  z-index: 1;
  text-align: center;
  padding-top: 64px;
  padding-bottom: 64px;
}
.gallery-stage h1 {
  max-width: 62.5rem;
  margin: 0 auto 22.4px;
  font-family: var(--serif);
  font-size: clamp(57.6px, 6.4vw, 112px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.055em;
}
.gallery-stage h1 em {
  color: #e1b761;
}
.gallery-stage p {
  max-width: 42.5rem;
  margin: 0 auto;
  color: #eee4d7;
  font-size: clamp(16px, 1.5vw, 20.8px);
  line-height: 1.6;
}
.gallery-collection {
  background-image: url("../resource/bg-1.png");
  padding: 20px 0 clamp(80px, 7vw, 128px);
  border-top: 0.25rem solid var(--gallery-green);
}
.gallery-mixed-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 19rem;
  gap: 1rem;
  margin: 0;
}
.gallery-mixed-grid > div {
  width: auto;
  padding: 0;
}
.gallery-mixed-grid > div:first-child {
  grid-column: span 2;
  grid-row: span 2;
}
.gallery-mixed-grid > div:nth-child(9n + 8) {
  grid-column: span 2;
}
.gallery-mixed-grid .gallery-tile {
  height: 100%;
}
@media (max-width: 767px) {
  .gallery-mixed-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 15rem;
  }
  .gallery-mixed-grid > div:first-child {
    grid-row: span 1;
  }
}
@media (max-width: 575px) {
  .gallery-mixed-grid {
    grid-template-columns: minmax(0, 1fr);
    grid-auto-rows: 19rem;
  }
  .gallery-mixed-grid > div:first-child,
  .gallery-mixed-grid > div:nth-child(9n + 8) {
    grid-column: span 1;
  }
}
.gallery-tile {
  position: relative;
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #211918;
  color: #fff;
  text-align: left;
  overflow: hidden;
  cursor: pointer;
}
.gallery-tile:focus-visible {
  outline: 0.1875rem solid var(--gallery-red);
  outline-offset: 0.1875rem;
}
.gallery-tile img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
}
.gallery-tile:hover img {
  transform: scale(1.035);
}
.gallery-tile:after {
  content: "";
  position: absolute;
  inset: 0;
  border: 0.0625rem solid #f4e6c866;
  pointer-events: none;
}
.gallery-tile--lead {
  height: 38.75rem;
}
.gallery-tile--side {
  height: 18.875rem;
}
.gallery-tile--small {
  height: 19.375rem;
}
.gallery-tile--wide {
  height: 22.5rem;
}
.gallery-tile-caption {
  position: absolute;
  inset: auto 0 0;
  min-height: 7rem;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  padding: 41.6px 22.4px 20.8px;
  background: linear-gradient(0deg, #100c0ce8, transparent);
  z-index: 1;
}
.gallery-tile-caption > span:first-child {
  font-family: var(--serif);
  font-size: clamp(17.6px, 1.7vw, 28.8px);
  line-height: 1.12;
  max-width: 75%;
}
.gallery-tile-open {
  width: 36.8px;
  height: 36.8px;
  flex: none;
  display: grid;
  place-items: center;
  border: 0.0625rem solid var(--gallery-gold);
  border-radius: 50%;
  color: var(--gallery-gold);
  font-size: 20px;
  line-height: 1;
}
.gallery-archive-note {
  border-top: 0.0625rem solid #c8b9a2;
  margin: 40px 0 0;
  padding-top: 16px;
  color: #76685a;
  font-size: 12px;
  letter-spacing: 0.06em;
}
.gallery-invite {
  background: var(--gallery-red);
  color: #fff;
  padding: clamp(72px, 7vw, 112px) 0;
  border-top: 0.125rem solid #c49b4c;
  border-bottom: 0.125rem solid #c49b4c;
}
.gallery-invite h2 {
  max-width: 46.875rem;
  font-family: var(--serif);
  font-size: clamp(44.8px, 4.6vw, 80px);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -0.05em;
  margin: 0 0 16px;
}
.gallery-invite h2 em {
  color: #edc978;
}
.gallery-invite p {
  color: #e3cdd0;
  font-size: 16.8px;
  line-height: 1.65;
  margin: 0;
}
.gallery-invite .btn-gold {
  background: var(--gallery-gold);
}
.gallery-modal .modal-dialog {
  max-width: min(75rem, 94vw);
}
.gallery-modal .modal-content {
  background: #171514;
  color: #f5eee6;
  border: 0.0625rem solid #9c7941;
  border-radius: 0;
}
.gallery-modal .modal-header {
  border-bottom: 0.0625rem solid #4d3c31;
  padding: 16px 20.8px;
}
.gallery-modal-count {
  color: var(--gallery-gold);
  font-size: 11.52px;
  font-weight: 700;
  letter-spacing: 0.17em;
}
.gallery-modal .modal-body {
  padding: 0;
}
.gallery-modal-image {
  display: block;
  width: 100%;
  max-height: 72vh;
  min-height: 15rem;
  object-fit: contain;
  background: #0d0b0b;
}
.gallery-modal-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 16px 20.8px;
}
.gallery-modal-caption {
  font-family: var(--serif);
  font-size: 21.6px;
}
.gallery-modal-prev,
.gallery-modal-next {
  width: 43.2px;
  height: 43.2px;
  border: 0.0625rem solid #8f6f3f;
  background: transparent;
  color: var(--gallery-gold);
  font-size: 20.8px;
}
.gallery-modal-prev:hover,
.gallery-modal-next:hover {
  background: var(--gallery-gold);
  color: #181312;
}
@media (max-width: 61.9375rem) {
  .gallery-tile--lead {
    height: 33.125rem;
  }
  .gallery-tile--side {
    height: 17.5rem;
  }
  .gallery-tile--small {
    height: 18.125rem;
  }
  .gallery-tile--wide {
    height: 20rem;
  }
}
@media (max-width: 47.9375rem) {
  .gallery-stage {
    min-height: 21.875rem;
  }
  .gallery-stage h1 {
    font-size: clamp(51.2px, 10vw, 80px);
  }
  .gallery-tile--lead {
    height: 27.5rem;
  }
  .gallery-tile--side,
  .gallery-tile--small,
  .gallery-tile--wide {
    height: 19.375rem;
  }
  .gallery-collection {
    padding-bottom: 64px;
  }
  .gallery-tile-caption {
    padding: 38.4px 16px 16px;
  }
  .gallery-tile-caption > span:first-child {
    font-size: 21.6px;
  }
  .gallery-invite {
    padding: 72px 0;
  }
  .gallery-modal .modal-dialog {
    max-width: none;
    margin: 8px;
  }
  .gallery-modal-image {
    max-height: 66vh;
    min-height: 11.25rem;
  }
  .gallery-modal-caption {
    font-size: 17.6px;
  }
}
.gallery-tile--lead img {
  transform: scale(1.2);
  transform-origin: center 58%;
}
.gallery-tile--lead:hover img {
  transform: scale(1.24);
}
@media (prefers-reduced-motion: reduce) {
  .gallery-tile img {
    transition: none;
  }
}

.home-photo-gallery .gallery-collection {
  padding-top: clamp(72px, 8vw, 128px);
}
.home-gallery-heading {
  margin-bottom: 43.2px;
}
.home-gallery-heading h2 {
  font-family: var(--serif);
  font-size: clamp(48px, 5.6vw, 96px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.055em;
  margin: 0 0 16px;
  color: #251c1b;
}
.home-gallery-heading h2 em {
  color: #702b32;
}
.home-gallery-heading p {
  max-width: 36.25rem;
  color: #6e5c53;
  font-size: 16.96px;
  line-height: 1.65;
  margin: 0;
}
.home-gallery-link {
  display: inline-block;
  color: #702b32;
  font-size: 12.16px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-bottom: 0.0625rem solid currentColor;
  padding-bottom: 7.2px;
}
.home-gallery-link:hover {
  color: #9e7029;
}
@media (max-width: 47.9375rem) {
  .home-gallery-heading {
    margin-bottom: 32px;
  }
  .home-gallery-heading h2 {
    font-size: clamp(44.8px, 10vw, 72px);
  }
}
.home-photo-gallery .gallery-tile--lead {
  height: 33.5rem;
}
.home-photo-gallery .gallery-tile--side {
  height: 16.25rem;
}
@media (max-width: 47.9375rem) {
  .home-photo-gallery .gallery-tile--lead {
    height: 26.25rem;
  }
  .home-photo-gallery .gallery-tile--side {
    height: 17.8125rem;
  }
}
.home-booking {
  padding: clamp(72px, 7vw, 112px) 0;
  background: #171514;
  border-top: 0.1875rem solid #62252d;
  color: #f7f1e9;
}
.home-booking-shell {
  box-shadow: 0 1.375rem 3.375rem #00000028;
}
.home-booking-intro {
  background: #572128;
  padding: clamp(35.2px, 4vw, 72px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 36.25rem;
}
.home-booking-intro h2 {
  font-family: var(--serif);
  font-size: clamp(40px, 3.5vw, 72px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.045em;
  margin: 0;
}
.home-booking-intro h2 em {
  color: #e0b963;
}
.home-booking-rule {
  width: 6.25rem;
  height: 0.125rem;
  background: #d9ad54;
  margin: 32px 0;
}
.home-booking-intro p {
  max-width: 22.5rem;
  font-size: 17.28px;
  line-height: 1.7;
  color: #f3e4df;
  margin: 0 0 35.2px;
}
.home-booking-call {
  align-self: flex-start;
  color: #e9c984;
  font-size: 12.16px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-bottom: 0.0625rem solid #d9ad54;
  padding-bottom: 6.4px;
}
.home-booking-call:hover {
  color: #fff;
}
.home-booking-photo {
  min-height: 36.25rem;
  background: #231b18;
  overflow: hidden;
}
.home-booking-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 51% center;
}
.home-booking-form-wrap {
  background: #f3efe8;
  color: #251c1b;
  border-top: 0.5rem solid #d9ad54;
  padding: clamp(35.2px, 4vw, 72px);
}
.home-booking-form-wrap h3 {
  font-family: var(--serif);
  font-size: clamp(36px, 3vw, 59.2px);
  font-weight: 400;
  line-height: 1.07;
  letter-spacing: -0.04em;
  margin: 0 0 32px;
  color: #214b36;
}
.home-booking-form-wrap .form-label {
  display: block;
  color: #302520;
  font-size: 12.16px;
  font-weight: 700;
  letter-spacing: 0.035em;
  margin-bottom: 8px;
}
.home-booking-form-wrap .form-control,
.home-booking-form-wrap .form-select {
  min-height: 3.0625rem;
  border: 0.0625rem solid #c4b6a5;
  border-radius: 0;
  background: #faf7f1;
  color: #302520;
  font-size: 16px;
  padding: 11.52px 13.6px;
}
.home-booking-form-wrap textarea.form-control {
  min-height: 6.75rem;
  resize: vertical;
}
.home-booking-form-wrap .form-control::placeholder {
  color: #84776b;
}
.home-booking-form-wrap .form-control:focus,
.home-booking-form-wrap .form-select:focus {
  border-color: #702b32;
  box-shadow: 0 0 0 0.1875rem #702b3224;
  background: #fff;
}
.home-booking-submit {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  width: 100%;
  min-height: 3.625rem;
  padding: 13.6px 17.6px;
  border: 0.0625rem solid #62252d;
  border-radius: 0;
  background: #62252d;
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.045em;
  text-align: left;
  transition:
    background-color 0.18s ease-out,
    color 0.18s ease-out,
    transform 0.14s ease-out;
}
.home-booking-submit span[aria-hidden="true"] {
  font-size: 20px;
  color: #e5c16c;
}
.home-booking-submit .submit-text { font-size: 0.95rem; color: #fff; }
.home-booking-submit:disabled,.contact-card button[type="submit"]:disabled { opacity: 0.7; cursor: wait; }
.form-send-feedback { padding: 0.85rem 1rem; border-left: 3px solid #ad8640; background: #f2e8d7; color: #49371e; font-size: 0.9rem; line-height: 1.5; }
.form-send-feedback[data-state="success"] { border-left-color: #28704b; background: #e5f1e8; color: #1b4c32; }
.form-send-feedback[data-state="error"] { border-left-color: #852d37; background: #f5e5e5; color: #6d242c; }
.home-booking-submit:hover {
  background: #42191f;
}
.home-booking-submit:active {
  transform: scale(0.992);
}
.home-booking-submit:focus-visible {
  outline: 0.1875rem solid #214b36;
  outline-offset: 0.1875rem;
}
.home-booking-note {
  color: #73685f;
  font-size: 12.96px;
  line-height: 1.5;
  margin: 16px 0 0;
}
@media (max-width: 61.9375rem) {
  .home-booking-intro {
    min-height: 0;
  }
  .home-booking-photo {
    height: 15rem;
    min-height: 0;
  }
  .home-booking-photo img {
    object-position: center 43%;
  }
}
@media (max-width: 35.9375rem) {
  .home-booking {
    padding: 48px 0;
  }
  .home-booking-intro,
  .home-booking-form-wrap {
    padding: 32px 20.8px;
  }
  .home-booking-intro h2 {
    font-size: 44.8px;
  }
  .home-booking-photo {
    height: 11.875rem;
  }
  .home-booking-form-wrap h3 {
    font-size: 40.8px;
  }
  .home-booking-intro p {
    font-size: 16px;
  }
  .home-booking-rule {
    margin: 24px 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-booking-submit {
    transition: none;
  }
}

.navbar-toggler .fa-bars {
  font-size: 20.8px;
  color: #f3efe8;
}
.carousel-control-prev-icon,
.carousel-control-next-icon {
  background-image: none !important;
  display: grid;
  place-items: center;
}
.carousel-control-prev-icon .fa-solid,
.carousel-control-next-icon .fa-solid {
  font-size: 20px;
}
.gallery-modal-close {
  border: 0;
  background: transparent;
  color: #f3efe8;
  font-size: 20px;
  line-height: 1;
  padding: 4px;
}
.gallery-modal-close:hover {
  color: #d9ad54;
}
.gallery-modal-close:focus-visible {
  outline: 0.125rem solid #d9ad54;
  outline-offset: 0.1875rem;
}
.btn .fa-solid,
.text-link .fa-solid,
.home-gallery-link .fa-solid,
.home-booking-call .fa-solid {
  margin-left: 7.2px;
  font-size: 0.85em;
}
.gallery-tile-open .fa-solid,
.gallery-modal-prev .fa-solid,
.gallery-modal-next .fa-solid {
  font-size: 15.04px;
}
.ribbon .fa-star {
  font-size: 0.55em;
  margin: 0 14.4px;
  vertical-align: middle;
}

/* Compact page trails */
.page-trail {
  display: inline-block;
  max-width: 100%;
  margin: 0 0 27.2px;
  vertical-align: top;
}
.page-trail .breadcrumb {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 11.2px;
  width: auto;
  max-width: 100%;
  margin: 0;
  padding: 10.4px 14.4px;
  background: #f8f4ed;
  border: 0.0625rem solid #cbbba5;
  border-left: 0.1875rem solid #712f38;
  box-shadow: 0 0.375rem 1.125rem #241c170d;
  color: #463932;
  font-size: 11.52px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.page-trail .breadcrumb-item {
  padding: 0;
  line-height: 1.2;
}
.page-trail .breadcrumb-item + .breadcrumb-item::before {
  content: none;
}
.page-trail .breadcrumb-item a {
  color: #463932;
  text-decoration: none;
  transition: color 0.18s ease;
}
.page-trail .breadcrumb-item a:hover {
  color: #9b5533;
}
.page-trail .breadcrumb-item a:focus-visible {
  outline: 0.125rem solid #712f38;
  outline-offset: 0.25rem;
}
.page-trail .breadcrumb-item a .fa-house {
  margin-right: 5.6px;
  font-size: 0.85em;
}
.page-trail .breadcrumb-item.active {
  color: #712f38;
}
.page-trail-separator {
  color: #ad997e;
  font-size: 9.6px;
  line-height: 1;
}
.page-trail--dark .breadcrumb {
  background: #1b1515d9;
  border-color: #cfab62;
  border-left-color: #cfab62;
  box-shadow: 0 0.5rem 1.375rem #0005;
}
.page-trail--dark .breadcrumb-item a {
  color: #f8eee0;
}
.page-trail--dark .breadcrumb-item a:hover,
.page-trail--dark .breadcrumb-item.active {
  color: #efc879;
}
.page-trail--dark .breadcrumb-item a:focus-visible {
  outline-color: #efc879;
}
.page-trail--dark .page-trail-separator {
  color: #d1b67b;
}
@media (max-width: 35.9375rem) {
  .page-trail {
    margin-bottom: 21.6px;
  }
  .page-trail .breadcrumb {
    gap: 8px;
    padding: 9.6px 11.2px;
    font-size: 10.56px;
  }
}
.gif-animation {
  position: fixed;
  bottom: 0;
  right: 0;
  z-index: 1020;
}
.gif-animation.is-open { z-index: 100000; }
.gif-trigger {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.gif-trigger img {
  display: block;
  width: 13.6875rem;
  max-width: 42vw;
  height: auto;
}
.gif-trigger:focus-visible {
  outline: 3px solid #d9ad54;
  outline-offset: -4px;
}
.contact-audio-toggle {
  position: absolute;
  right: .8rem;
  bottom: calc(100% - -0.8rem);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 2.6rem;
  padding: .6rem .9rem;
  border: 1px solid #f0cc79;
  border-radius: 999px;
  background: #59282e;
  box-shadow: 0 5px 18px #1b151566;
  color: #fff;
  font-size: .8rem;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}
.contact-audio-toggle[hidden] { display: none; }
.contact-audio-toggle:focus-visible {
  outline: 3px solid #f0cc79;
  outline-offset: 3px;
}
@media (hover: hover) and (pointer: fine) {
  .contact-audio-toggle:hover { background: #712f38; }
}
@media (max-width: 360px) {
  .contact-audio-toggle { min-width: 2.75rem; padding: .6rem; }
  .contact-audio-toggle span { display: none; }
}
.gif-animation .tool-tip {
  position: absolute;
  right: calc(100% - 1.5rem);
  bottom: 4.5rem;
  width: 16.5rem;
  padding: 1.25rem;
  background: #f8f3e9;
  color: #241c17;
  border: 1px solid #c3a472;
  border-top: 4px solid #712f38;
  border-radius: 1.35rem 1.35rem 0.7rem 1.35rem;
  box-shadow: 0 16px 38px #1b151549;
  opacity: 0;
  transform: translateX(8px) scale(0.96);
  transform-origin: bottom right;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.2s cubic-bezier(0.23, 1, 0.32, 1),
    transform 0.2s cubic-bezier(0.23, 1, 0.32, 1),
    visibility 0.2s;
}
.gif-animation .tool-tip::after {
  content: "";
  position: absolute;
  right: -13px;
  bottom: 2.35rem;
  width: 0;
  height: 0;
  border-top: 12px solid transparent;
  border-bottom: 12px solid transparent;
  border-left: 13px solid #f8f3e9;
  filter: drop-shadow(1px 1px 0 #c3a472);
}
.gif-animation .tool-tip.active {
  opacity: 1;
  transform: translateX(0) scale(1);
  visibility: visible;
  pointer-events: auto;
}
.gif-animation .tool-tip p {
  font-family: var(--serif);
  font-size: 1.45rem;
  line-height: 1.13;
  margin: 0 0 1rem;
}
.quick-contact-call,
.quick-contact-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 2.6rem;
  padding: 0.6rem 0.85rem;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-decoration: none;
}
.quick-contact-call {
  background: #712f38;
  color: #fff;
  border: 1px solid #712f38;
}
.quick-contact-call:hover {
  background: #512127;
  color: #fff;
}
.quick-contact-close {
  margin-left: 0.35rem;
  background: transparent;
  color: #513e34;
  border: 1px solid #c4b29a;
}
.quick-contact-close:hover {
  background: #eee4d6;
}
.quick-contact-call:focus-visible,
.quick-contact-close:focus-visible {
  outline: 3px solid #214b36;
  outline-offset: 2px;
}
@media (max-width: 575px) {
  .gif-animation .tool-tip {
    right: calc(100% - 1.5rem);
    bottom: 3.8rem;
    width: min(13.5rem, calc(100vw - 10rem));
    padding: 1rem;
  }
  .gif-animation .tool-tip p { font-size: 1.25rem; }
  .gif-animation .tool-tip .quick-contact-call,
  .gif-animation .tool-tip .quick-contact-close { display: flex; width: 100%; margin-left: 0; }
  .gif-animation .tool-tip .quick-contact-close { margin-top: 0.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .gif-animation .tool-tip {
    transform: none;
    transition:
      opacity 0.2s cubic-bezier(0.23, 1, 0.32, 1),
      visibility 0.2s;
  }
}
/*==============================
   Floating Buttons
==============================*/

.rt-floating-contact{
    position:fixed;
    left:25px;
    bottom:100px;
    display:flex;
    flex-direction:column;
    gap:15px;
    z-index:99999;
}
.rt-float-btn{
    position:relative;
    width:58px;
    height:58px;
    border-radius:18px;
    display:flex;
    justify-content:center;
    align-items:center;
    text-decoration:none;
    color:#fff;
    font-size:22px;
    overflow:hidden;
    transition:.35s ease;
}
.rt-float-btn i{
    position:relative;
    z-index:2;
}
.rt-float-btn span{
    position:absolute;
    left:72px;
    white-space:nowrap;
    background:#111;
    color:#fff;
    padding:10px 18px;
    border-radius:12px;
    font-size:14px;
    font-weight:600;
    opacity:0;
    visibility:hidden;
    transform:translateX(-10px);
    transition:.35s;
    box-shadow:0 10px 25px rgba(0,0,0,.18);
}
@media(max-width:768px){
    .rt-floating-contact{
        left:15px;
        bottom:15px;
    }
    .rt-float-btn{
        width:52px;
        height:52px;
        font-size:20px;
        border-radius:16px;
    }
    .rt-float-btn span{
        display:none;
    }
}
.rt-floating-contact .icon-img{
    width:100%;
}

.facebook-window {
  width: min(100%, 280px);
  height: 430px;
  background: #fff;
  overflow: hidden;
}
.facebook-window iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Keep the portrait complete while giving the home story a shorter frame. */
.home-about-poster {
  padding: clamp(48px, 5vw, 80px) 0;
}
.home-about-poster h2 {
  font-size: clamp(48px, 6.2vw, 94px);
  margin: clamp(28px, 3vw, 48px) 0;
}
.home-about-poster .poster-frame {
  max-width: 1040px;
  margin-inline: auto;
}
.home-about-poster .poster-photo {
  min-height: 0;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e9e1d4;
}
.home-about-poster .poster-photo img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 600px;
  min-height: 0;
  aspect-ratio: auto;
  object-fit: contain;
}
.home-about-poster .poster-panel {
  min-height: 0;
  height: 100%;
}
.facebook-posts-link {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-top: .8rem;
  color: #f1c66f;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .25em;
}
.facebook-posts-card {
  width: min(100%, 320px);
  min-height: 180px;
  padding: 1.4rem;
  border: 1px solid #b8915a;
  background: #302424;
}
.facebook-posts-card > i {
  color: #f1c66f;
  font-size: 2rem;
}
.facebook-posts-card p {
  margin: .8rem 0 .5rem;
  color: #f8f3e9;
  line-height: 1.5;
}
.facebook-posts-link:hover,
.facebook-posts-link:focus-visible {
  color: #fff;
}

/* Three clear sound waves beside the character's instrument. */
.contact-sound-waves {
  position: absolute;
  left: -.35rem;
  bottom: 37%;
  width: 3.8rem;
  height: 5rem;
  pointer-events: none;
  z-index: 2;
}
.contact-sound-waves span {
  position: absolute;
  right: 0;
  top: 50%;
  border-left: 5px solid #ffdb78;
  border-radius: 50%;
  filter: drop-shadow(1px 1px 0 #47251c) drop-shadow(0 0 4px #712f38);
  transform: translateY(-50%);
  animation: contact-sound-pulse 1.8s cubic-bezier(.23, 1, .32, 1) infinite;
}
.contact-sound-waves span:nth-child(1) { width: 1rem; height: 1.7rem; right: 0; }
.contact-sound-waves span:nth-child(2) { width: 1.45rem; height: 3rem; right: .8rem; animation-delay: .18s; }
.contact-sound-waves span:nth-child(3) { width: 2rem; height: 4.4rem; right: 1.6rem; animation-delay: .36s; }
.gif-trigger { position: relative; z-index: 1; }
@keyframes contact-sound-pulse {
  0%, 100% { opacity: .75; transform: translateY(-50%) translateX(0); }
  45% { opacity: 1; transform: translateY(-50%) translateX(-5px); }
}
@media (max-width: 61.9375rem) {
  .home-about-poster .poster-photo img {
    display: block;
    width: auto;
    max-height: min(70vh, 600px);
  }
}
@media (max-width: 35.9375rem) {
  .home-about-poster { padding: 48px 0; }
  .home-about-poster h2 { font-size: clamp(43px, 11vw, 68px); margin: 30px 0; }
  .home-about-poster .poster-photo figcaption { bottom: 10px; }
  .contact-sound-waves { left: -.15rem; bottom: 35%; transform: scale(.8); transform-origin: right center; }
}
@media (prefers-reduced-motion: reduce) {
  .contact-sound-waves span { animation: none; opacity: .75; }
}

/* Quiet mariachi ornaments, kept behind the actual content. */
.home-about-poster,
body[data-page="home"] main > .section-pad,
.home-process,
.about-feature,
.about-beyond,
.services-opening,
.services-explorer,
.gallery-invite,
body[data-page="contacto"] main > .section-pad {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.home-about-poster > .container-xl,
body[data-page="home"] main > .section-pad > .container-xl,
.home-process > .container-xl,
.about-feature > .container-xl,
.about-beyond > .container-xl,
.services-opening > .container-xl,
.services-explorer > .container-xl,
.gallery-invite > .container-xl,
body[data-page="contacto"] main > .section-pad > .container-xl {
  position: relative;
  z-index: 1;
}
.home-about-poster::after,
body[data-page="home"] main > .section-pad::before,
.home-process::after,
.home-photo-gallery::before,
.home-booking::after,
.about-feature::before,
.about-beyond::after,
.services-opening::before,
.services-explorer::after,
.services-else::before,
.gallery-invite::before,
.contact-hero::after,
body[data-page="contacto"] main > .section-pad::before {
  content: "";
  position: absolute;
  z-index: 0;
  display: block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  pointer-events: none;
  animation: mariachi-ornament-float 6s cubic-bezier(0.77, 0, 0.175, 1) infinite alternate;
}
.home-about-poster::after {
  width: 135px;
  height: 260px;
  top: 12%;
  right: -18px;
  opacity: .16;
  background-image: url("../resource/shape-guitar.svg");
}
body[data-page="home"] main > .section-pad::before {
  width: 180px;
  height: 180px;
  top: 5%;
  right: -35px;
  opacity: .18;
  background-image: url("../resource/shape-flower.svg");
  animation-delay: -3s;
}
.home-process::after {
  width: 245px;
  height: 145px;
  right: -48px;
  bottom: 4%;
  opacity: .2;
  background-image: url("../resource/shape-sombrero.svg");
  animation-delay: -5s;
}
.home-photo-gallery::before {
  width: 155px;
  height: 155px;
  left: -28px;
  top: 10%;
  opacity: .15;
  background-image: url("../resource/shape-flower.svg");
  animation-delay: -2s;
}
.home-booking::after {
  width: 190px;
  height: 115px;
  right: -32px;
  top: 3%;
  opacity: .19;
  background-image: url("../resource/shape-sombrero.svg");
  animation-delay: -4s;
}
.about-feature::before {
  width: 205px;
  height: 205px;
  top: 5%;
  right: -25px;
  opacity: .22;
  background-image: url("../resource/shape-flower.svg");
}
.about-beyond::after {
  width: 105px;
  height: 205px;
  right: 1%;
  bottom: 2%;
  opacity: .17;
  background-image: url("../resource/shape-guitar.svg");
  animation-delay: -4s;
}
.services-opening::before {
  width: 235px;
  height: 140px;
  top: 8%;
  right: -20px;
  opacity: .24;
  background-image: url("../resource/shape-sombrero.svg");
}
.services-explorer::after {
  width: 175px;
  height: 175px;
  right: -35px;
  bottom: 5%;
  opacity: .16;
  background-image: url("../resource/shape-flower.svg");
  animation-delay: -2s;
}
.services-else::before {
  width: 105px;
  height: 205px;
  right: 2%;
  bottom: 2%;
  opacity: .17;
  background-image: url("../resource/shape-guitar.svg");
  animation-delay: -5s;
}
.gallery-invite::before {
  width: 100px;
  height: 195px;
  right: 3%;
  bottom: -35px;
  opacity: .2;
  background-image: url("../resource/shape-guitar.svg");
}
.contact-hero::after {
  width: 175px;
  height: 175px;
  right: 1%;
  top: 9%;
  opacity: .2;
  background-image: url("../resource/shape-flower.svg");
  animation-delay: -3s;
}
body[data-page="contacto"] main > .section-pad::before {
  width: 215px;
  height: 130px;
  left: -60px;
  bottom: 2%;
  opacity: .16;
  background-image: url("../resource/shape-sombrero.svg");
  animation-delay: -6s;
}
@keyframes mariachi-ornament-float {
  from { transform: translate3d(-5px, 9px, 0) rotate(-3deg); }
  to { transform: translate3d(7px, -15px, 0) rotate(4deg); }
}
.has-music-notes {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.has-music-notes > .container-xl,
.has-music-notes > .gallery-collection {
  position: relative;
  z-index: 1;
}
.music-notes {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}
.gallery-stage .music-notes {
  z-index: 2;
}
.gallery-stage .container-xl {
  z-index: 3;
}
.hero .music-notes {
  z-index: 2;
}
.hero .hero-content {
  z-index: 3;
}
.music-note {
  position: absolute;
  left: min(var(--note-x), calc(100% - 3.25rem));
  top: var(--note-y);
  display: block;
  color: #a6763f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: var(--note-size);
  line-height: 1;
  opacity: .52;
  text-shadow: 0 0 16px rgba(166, 118, 63, .18);
  animation: mariachi-note-drift 5.8s cubic-bezier(0.77, 0, 0.175, 1) var(--note-delay) infinite alternate;
}
.music-note--2 {
  animation-duration: 7.2s;
}
.music-note--3 {
  animation-duration: 6.7s;
  animation-direction: alternate-reverse;
}
.music-note--4 {
  animation-duration: 8.1s;
}
.hero .music-note,
.home-booking .music-note,
.about-feature .music-note,
.home-process .music-note,
.services-opening .music-note,
.services-else .music-note,
.gallery-stage .music-note,
.gallery-invite .music-note,
.contact-hero .music-note {
  color: #efc77c;
  opacity: .66;
}
@keyframes mariachi-note-drift {
  from { transform: translate3d(-9px, 9px, 0) rotate(-8deg); }
  to { transform: translate3d(10px, -20px, 0) rotate(8deg); }
}
@media (max-width: 767px) {
  .home-about-poster::after,
  body[data-page="home"] main > .section-pad::before,
  .home-process::after,
  .home-photo-gallery::before,
  .home-booking::after,
  .about-feature::before,
  .about-beyond::after,
  .services-opening::before,
  .services-explorer::after,
  .services-else::before,
  .gallery-invite::before,
  .contact-hero::after,
  body[data-page="contacto"] main > .section-pad::before {
    width: 90px;
    height: 100px;
    opacity: .1;
  }
  .music-note {
    font-size: min(var(--note-size), 2rem);
    opacity: .3;
  }
  .music-note:nth-child(n + 3) {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-about-poster::after,
  body[data-page="home"] main > .section-pad::before,
  .home-process::after,
  .home-photo-gallery::before,
  .home-booking::after,
  .about-feature::before,
  .about-beyond::after,
  .services-opening::before,
  .services-explorer::after,
  .services-else::before,
  .gallery-invite::before,
  .contact-hero::after,
  body[data-page="contacto"] main > .section-pad::before {
    animation: none;
  }
  .music-note {
    animation: none;
  }
}

.scroll-motion-ready .scroll-reveal {
  opacity: 0;
  transform: translate3d(0, var(--reveal-offset, 24px), 0);
  transition: opacity 400ms var(--ease-out), transform 400ms var(--ease-out);
}
.scroll-motion-ready .scroll-reveal.is-in-view {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition-duration: 620ms;
  transition-delay: var(--reveal-delay, 0ms);
}
@media (prefers-reduced-motion: reduce) {
  .scroll-motion-ready .scroll-reveal,
  .scroll-motion-ready .scroll-reveal.is-in-view {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
