/* Owner-approved homepage hero using the complete original preparation video.
   The source video is not cropped into a panoramic strip and is not covered by a dark veil. */
.captivating-hero {
  --hero-forest: #03281f;
  --hero-forest-soft: #0b4436;
  --hero-maroon: #98223a;
  --hero-maroon-dark: #76182c;
  --hero-gold: #d5aa49;
  --hero-gold-light: #f2d487;
  --hero-ivory: #fffaf0;
  --hero-cream: #f6ead4;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--hero-forest);
  background:
    radial-gradient(circle at 88% 10%, rgba(213, 170, 73, .34), transparent 25rem),
    radial-gradient(circle at 5% 95%, rgba(152, 34, 58, .11), transparent 23rem),
    linear-gradient(118deg, #fffdf7 0%, var(--hero-ivory) 45%, #f5e4c4 100%);
}
.captivating-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -15rem;
  right: -13rem;
  width: 31rem;
  height: 31rem;
  border: 1px solid rgba(152, 34, 58, .17);
  border-radius: 50%;
  box-shadow: 0 0 0 4.5rem rgba(213, 170, 73, .06);
}
.captivating-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 5px;
  background: linear-gradient(90deg, var(--hero-maroon), var(--hero-gold-light), var(--hero-forest-soft));
}
.captivating-hero-shell {
  width: min(1240px, calc(100% - 48px));
  min-height: min(512px, calc(100svh - 76px));
  margin-inline: auto;
  padding-block: clamp(1.2rem, 2.35vw, 2.2rem) clamp(1.45rem, 2.6vw, 2.4rem);
  display: grid;
  grid-template-columns: minmax(340px, .9fr) minmax(500px, 1.1fr);
  align-items: center;
  gap: clamp(1.5rem, 3.4vw, 3.5rem);
}
.captivating-hero-copy {
  position: relative;
  z-index: 2;
  max-width: 560px;
}
.captivating-hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  margin: 0 0 .8rem;
  color: var(--hero-maroon);
  font-size: clamp(.7rem, .82vw, .82rem);
  font-weight: 900;
  letter-spacing: .15em;
  line-height: 1.2;
  text-transform: uppercase;
}
.captivating-hero-kicker::before {
  content: "";
  width: 34px;
  height: 2px;
  background: linear-gradient(90deg, var(--hero-maroon), var(--hero-gold));
}
.captivating-hero h1 {
  max-width: 9.4ch;
  margin: 0;
  color: var(--hero-forest);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.35rem, 5.25vw, 5.35rem);
  font-weight: 700;
  line-height: .91;
  letter-spacing: -.052em;
  text-wrap: balance;
}
.captivating-hero h1 span {
  display: block;
  color: var(--hero-maroon);
  font-style: italic;
  font-weight: 600;
}
.captivating-hero-lead {
  max-width: 50ch;
  margin: 1rem 0 0;
  color: #40514a;
  font-size: clamp(1rem, 1.15vw, 1.12rem);
  line-height: 1.55;
}
.captivating-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .72rem;
  margin-top: 1.2rem;
}
.captivating-hero-button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .74rem 1.25rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .86rem;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.captivating-hero-button:hover,
.captivating-hero-button:focus-visible {
  transform: translateY(-2px);
}
.captivating-hero-button-primary {
  background: linear-gradient(135deg, #a92642, var(--hero-maroon-dark));
  color: #fffaf2;
  box-shadow: 0 13px 28px rgba(118, 24, 44, .22);
}
.captivating-hero-button-primary:hover,
.captivating-hero-button-primary:focus-visible {
  box-shadow: 0 17px 32px rgba(118, 24, 44, .3);
}
.captivating-hero-button-secondary {
  border-color: rgba(3, 40, 31, .42);
  background: rgba(255, 255, 255, .58);
  color: var(--hero-forest);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45);
}
.captivating-hero-detail {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem 1rem;
  margin: .9rem 0 0;
  color: #5a655f;
  font-size: .79rem;
  font-weight: 750;
}
.captivating-hero-detail span {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
}
.captivating-hero-detail span::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--hero-gold);
  box-shadow: 0 0 0 3px rgba(213, 170, 73, .16);
}
.captivating-hero-media-card {
  position: relative;
  width: min(100%, 630px);
  justify-self: end;
  padding: 8px;
  border: 1px solid rgba(3, 40, 31, .18);
  border-radius: 30px;
  background: linear-gradient(145deg, rgba(255,255,255,.92), rgba(236,216,174,.78));
  box-shadow: 0 28px 70px rgba(42, 39, 27, .18), 0 8px 22px rgba(3, 40, 31, .10);
}
.captivating-hero-media-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 10% -5% -7% 8%;
  border-radius: 32px;
  background: linear-gradient(135deg, rgba(152,34,58,.18), rgba(213,170,73,.34));
  filter: blur(20px);
}
.captivating-hero-video-stage {
  position: relative;
  aspect-ratio: 1518 / 1060;
  overflow: hidden;
  border-radius: 22px 22px 13px 13px;
  background: #13231e;
}
.captivating-hero-video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: brightness(1.055) contrast(1.07) saturate(1.14);
  transform: translateZ(0);
}
.captivating-hero-chip,
.captivating-video-toggle {
  position: absolute;
  z-index: 2;
  top: 13px;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.captivating-hero-chip {
  left: 13px;
  padding: .55rem .84rem;
  border: 1px solid rgba(255,255,255,.55);
  background: rgba(255, 249, 235, .88);
  color: var(--hero-forest);
  box-shadow: 0 7px 20px rgba(0,0,0,.13);
  font-size: .73rem;
  font-weight: 900;
  letter-spacing: .035em;
}
.captivating-video-toggle {
  right: 13px;
  min-width: 76px;
  padding: .52rem .8rem;
  border: 1px solid rgba(255,255,255,.55);
  background: rgba(3, 40, 31, .82);
  color: #fffaf0;
  box-shadow: 0 7px 20px rgba(0,0,0,.16);
  cursor: pointer;
  font: inherit;
  font-size: .72rem;
  font-weight: 900;
}
.captivating-video-toggle:hover,
.captivating-video-toggle:focus-visible {
  background: var(--hero-maroon-dark);
}
.captivating-hero-process {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: center;
  gap: 0;
  min-height: 52px;
  padding: .65rem .55rem;
  border-radius: 0 0 20px 20px;
  background: linear-gradient(110deg, var(--hero-forest), #0b493a);
  color: #fff7e8;
  text-align: center;
  font-size: clamp(.66rem, .8vw, .77rem);
  font-weight: 850;
  letter-spacing: .025em;
}
.captivating-hero-process span {
  position: relative;
  padding-inline: .25rem;
}
.captivating-hero-process span:not(:last-child)::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: -.08rem;
  color: var(--hero-gold-light);
  font-size: 1rem;
  transform: translateY(-52%);
}
@media (max-width: 1080px) {
  .captivating-hero-shell {
    width: min(100% - 36px, 1120px);
    grid-template-columns: minmax(315px, .88fr) minmax(460px, 1.12fr);
    gap: 1.5rem;
  }
  .captivating-hero h1 { font-size: clamp(3rem, 5vw, 4.45rem); }
  .captivating-hero-media-card { width: min(100%, 560px); }
}
@media (min-width: 901px) and (max-height: 700px) {
  .captivating-hero-shell {
    min-height: calc(100svh - 72px);
    padding-block: .85rem 1rem;
  }
  .captivating-hero h1 { font-size: clamp(2.8rem, 4.4vw, 3.8rem); }
  .captivating-hero-lead { margin-top: .7rem; font-size: .96rem; line-height: 1.45; }
  .captivating-hero-actions { margin-top: .85rem; }
  .captivating-hero-detail { margin-top: .65rem; }
  .captivating-hero-media-card { width: min(100%, 520px); }
  .captivating-hero-process { min-height: 46px; padding-block: .5rem; }
}
@media (max-width: 900px) {
  .captivating-hero-shell {
    width: min(100% - 30px, 720px);
    min-height: 0;
    padding-block: 1.15rem 1.65rem;
    grid-template-columns: 1fr;
    gap: 1.15rem;
  }
  .captivating-hero-copy { max-width: 680px; }
  .captivating-hero h1 { max-width: 10ch; font-size: clamp(2.85rem, 9vw, 4.25rem); }
  .captivating-hero-media-card { width: min(100%, 650px); justify-self: center; }
}
@media (max-width: 520px) {
  .captivating-hero-shell {
    width: min(100% - 22px, 480px);
    padding-block: .9rem 1.3rem;
    gap: .95rem;
  }
  .captivating-hero-kicker { margin-bottom: .55rem; font-size: .65rem; }
  .captivating-hero h1 { font-size: clamp(2.5rem, 12vw, 3.35rem); line-height: .92; }
  .captivating-hero-lead { margin-top: .65rem; font-size: .93rem; line-height: 1.45; }
  .captivating-hero-actions { margin-top: .8rem; gap: .55rem; }
  .captivating-hero-button { min-height: 44px; flex: 1 1 145px; padding-inline: .85rem; font-size: .78rem; }
  .captivating-hero-detail { margin-top: .65rem; gap: .3rem .75rem; font-size: .69rem; }
  .captivating-hero-media-card { padding: 5px; border-radius: 23px; }
  .captivating-hero-video-stage { border-radius: 18px 18px 10px 10px; }
  .captivating-hero-chip { top: 9px; left: 9px; min-height: 32px; padding: .42rem .65rem; font-size: .63rem; }
  .captivating-video-toggle { top: 9px; right: 9px; min-width: 64px; min-height: 32px; padding: .4rem .6rem; font-size: .64rem; }
  .captivating-hero-process { min-height: 44px; padding: .5rem .2rem; border-radius: 0 0 17px 17px; font-size: .58rem; }
  .captivating-hero-process span:not(:last-child)::after { right: -.04rem; font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .captivating-hero-button,
  .captivating-hero-video { transition: none !important; }
  .captivating-hero-video { filter: brightness(1.045) contrast(1.06) saturate(1.1); }
}
