/* Optional scroll-sequence hero mode. The default slideshow keeps using hero.css. */
.hero-sequence{
  position:relative;
  min-height:calc(var(--hero-sequence-height, 420vh) + var(--hero-sequence-last-frame-hold, 0vh));
  background:transparent;
}

.hero-sequence__sticky{
  position:sticky;
  top:0;
  width:100%;
  height:auto;
  min-height:0;
  aspect-ratio:2208 / 936;
  overflow:hidden;
  background:#120d08;
}
.hero-sequence__canvas,
.hero-sequence__fallback{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.hero-sequence__canvas{
  z-index:1;
  opacity:0;
  display:block;
  transition:opacity .24s ease;
}

.hero-sequence__fallback{
  z-index:0;
  object-fit:cover;
  object-position:center center;
  display:block;
  transform:scale(max(1, var(--hero-sequence-scale, 1)));
  transform-origin:center center;
}

.hero-sequence__sticky.is-ready .hero-sequence__canvas{
  opacity:1;
}

.hero-sequence__sticky.is-ready .hero-sequence__fallback{
  opacity:0;
}

.hero-sequence__sticky[data-fit="contain"] .hero-sequence__fallback{
  object-fit:contain;
  background:transparent;
}

.hero-sequence__shade{
  position:absolute;
  inset:0;
  z-index:2;
  background:linear-gradient(90deg, rgba(20,14,8,.28) 0%, rgba(20,14,8,.12) 40%, rgba(20,14,8,.02) 100%);
  pointer-events:none;
}

.hero-sequence__content{
  position:absolute;
  inset:0;
  z-index:3;
  min-height:0;
  height:100%;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  padding-top:130px;
  padding-bottom:110px;
}

.hero-sequence-overlay{
  opacity:0;
  transform:translateY(24px);
  filter:blur(6px);
  transition:opacity .12s linear, transform .12s linear, filter .12s linear;
  pointer-events:none;
  will-change:opacity, transform, filter;
}

.hero-sequence-overlay[data-overlay-visible="1"]{
  pointer-events:auto;
}

.hero-sequence-overlay .hero-title{
  text-shadow:0 8px 28px rgba(0,0,0,.45);
}

.hero-sequence-overlay .hero-kicker,
.hero-sequence-overlay .hero-text{
  text-shadow:0 5px 18px rgba(0,0,0,.35);
}

.hero-sequence-font-current_site{
  font-family:inherit;
}

.hero-sequence-font-classic_serif{
  font-family:Georgia, "Times New Roman", serif;
}

.hero-sequence-font-elegant_serif{
  font-family:"Cormorant Garamond", "Libre Baskerville", Georgia, serif;
}

.hero-sequence-font-sacred_caps{
  font-family:"Cinzel", Georgia, serif;
  letter-spacing:.04em;
}

.hero-sequence-font-modern_clean{
  font-family:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.hero-sequence-font-elegant_serif .hero-title,
.hero-sequence-font-classic_serif .hero-title{
  font-weight:800;
  letter-spacing:-.015em;
}

.hero-sequence-font-sacred_caps .hero-title,
.hero-sequence-font-sacred_caps .hero-kicker{
  text-transform:uppercase;
  letter-spacing:.05em;
}
.hero-sequence .hero-cta{
  position:static;
  left:auto;
  bottom:auto;
  transform:none;
  justify-content:flex-start;
  margin-top:26px;
}

.hero-sequence .hero-mini-btn{
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  backdrop-filter:blur(8px);
}

.hero-sequence .hero-mini-btn-primary{
  background:linear-gradient(135deg, #d9a441, #f0c978);
  color:#22170a;
  border-color:rgba(240,201,120,.44);
}

@media (max-width:1199px){
  .hero-sequence{
    min-height:calc(var(--hero-sequence-height-tablet, 360vh) + var(--hero-sequence-last-frame-hold, 0vh));
  }

  .hero-sequence__sticky{
    min-height:0;
    aspect-ratio:2208 / 936;
  }

  .hero-sequence__content{
    padding-top:110px;
    padding-bottom:88px;
  }
}

@media (max-width:767px){
  .hero-sequence{
    min-height:calc(max(var(--hero-sequence-height-mobile, 280vh), 980px) + var(--hero-sequence-last-frame-hold, 0vh));
  }

  .hero-sequence__sticky{
    min-height:0;
    aspect-ratio:2208 / 936;
  }

  .hero-sequence__content{
    padding-top:96px;
    padding-bottom:72px;
  }

  .hero-sequence-overlay{
  opacity:0;
  transform:translateY(24px);
  filter:blur(6px);
  transition:opacity .12s linear, transform .12s linear, filter .12s linear;
  pointer-events:none;
  will-change:opacity, transform, filter;
}

.hero-sequence-overlay[data-overlay-visible="1"]{
  pointer-events:auto;
}

.hero-sequence-overlay .hero-title{
  text-shadow:0 8px 28px rgba(0,0,0,.45);
}

.hero-sequence-overlay .hero-kicker,
.hero-sequence-overlay .hero-text{
  text-shadow:0 5px 18px rgba(0,0,0,.35);
}

.hero-sequence-font-current_site{
  font-family:inherit;
}

.hero-sequence-font-classic_serif{
  font-family:Georgia, "Times New Roman", serif;
}

.hero-sequence-font-elegant_serif{
  font-family:"Cormorant Garamond", "Libre Baskerville", Georgia, serif;
}

.hero-sequence-font-sacred_caps{
  font-family:"Cinzel", Georgia, serif;
  letter-spacing:.04em;
}

.hero-sequence-font-modern_clean{
  font-family:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.hero-sequence-font-elegant_serif .hero-title,
.hero-sequence-font-classic_serif .hero-title{
  font-weight:800;
  letter-spacing:-.015em;
}

.hero-sequence-font-sacred_caps .hero-title,
.hero-sequence-font-sacred_caps .hero-kicker{
  text-transform:uppercase;
  letter-spacing:.05em;
}
.hero-sequence .hero-cta{
    justify-content:flex-start;
  }
}

@media (prefers-reduced-motion: reduce){
  .hero-sequence{
    min-height:0;
  }

  .hero-sequence__sticky{
    position:relative;
  }
}
/* Sequence overlay font options: strong enough to override the shared hero typography. */
.hero-sequence-overlay.hero-sequence-font-current_site,
.hero-sequence-overlay.hero-sequence-font-current_site .hero-title,
.hero-sequence-overlay.hero-sequence-font-current_site .hero-kicker,
.hero-sequence-overlay.hero-sequence-font-current_site .hero-text,
.hero-sequence-overlay.hero-sequence-font-current_site .hero-mini-btn {
  font-family: inherit !important;
}

.hero-sequence-overlay.hero-sequence-font-classic_serif,
.hero-sequence-overlay.hero-sequence-font-classic_serif .hero-title,
.hero-sequence-overlay.hero-sequence-font-classic_serif .hero-kicker,
.hero-sequence-overlay.hero-sequence-font-classic_serif .hero-text,
.hero-sequence-overlay.hero-sequence-font-classic_serif .hero-mini-btn {
  font-family: Georgia, "Times New Roman", Times, serif !important;
  text-transform: none;
}

.hero-sequence-overlay.hero-sequence-font-elegant_serif,
.hero-sequence-overlay.hero-sequence-font-elegant_serif .hero-title,
.hero-sequence-overlay.hero-sequence-font-elegant_serif .hero-kicker,
.hero-sequence-overlay.hero-sequence-font-elegant_serif .hero-text,
.hero-sequence-overlay.hero-sequence-font-elegant_serif .hero-mini-btn {
  font-family: "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif !important;
  text-transform: none;
}

.hero-sequence-overlay.hero-sequence-font-sacred_caps,
.hero-sequence-overlay.hero-sequence-font-sacred_caps .hero-title,
.hero-sequence-overlay.hero-sequence-font-sacred_caps .hero-kicker,
.hero-sequence-overlay.hero-sequence-font-sacred_caps .hero-text,
.hero-sequence-overlay.hero-sequence-font-sacred_caps .hero-mini-btn {
  font-family: Georgia, "Times New Roman", Times, serif !important;
  text-transform: uppercase !important;
  letter-spacing: 0.075em !important;
}

.hero-sequence-overlay.hero-sequence-font-modern_clean,
.hero-sequence-overlay.hero-sequence-font-modern_clean .hero-title,
.hero-sequence-overlay.hero-sequence-font-modern_clean .hero-kicker,
.hero-sequence-overlay.hero-sequence-font-modern_clean .hero-text,
.hero-sequence-overlay.hero-sequence-font-modern_clean .hero-mini-btn {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
  text-transform: none;
}

.hero-sequence-overlay.hero-sequence-font-classic_serif .hero-title {
  font-weight: 800;
  letter-spacing: -0.015em;
}

.hero-sequence-overlay.hero-sequence-font-elegant_serif .hero-title {
  font-weight: 700;
  letter-spacing: -0.025em;
}

.hero-sequence-overlay.hero-sequence-font-modern_clean .hero-title {
  font-weight: 850;
  letter-spacing: -0.035em;
}
/* Scroll-sequence card overlay: uses the real home cards only in sequence mode. */
.hero-sequence--cards-overlay {
  min-height: calc(var(--hero-sequence-height, 420vh) + var(--hero-sequence-final-composition-hold, 50vh));
  margin-bottom: 190px;
}

.hero-sequence--cards-overlay .hero-sequence__sticky {
  overflow: visible;
}

.hero-sequence__cards-slot {
  position: absolute;
  left: 50%;
  bottom: -144px;
  transform: translateX(-50%);
  width: min(1320px, calc(100% - 32px));
  z-index: 8;
  pointer-events: auto;
}

.hero-sequence__cards-slot .quick-cards {
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 1;
}

.hero-sequence__cards-slot .quick-cards .container {
  width: 100%;
  max-width: none;
}

.hero-sequence__cards-slot .cards-grid {
  width: 100%;
}

@media (max-width: 1199px) {
  .hero-sequence--cards-overlay {
    min-height: calc(var(--hero-sequence-height-tablet, 360vh) + var(--hero-sequence-final-composition-hold, 50vh));
    margin-bottom: 430px;
  }

  .hero-sequence__cards-slot {
    bottom: -132px;
    width: calc(100% - 28px);
  }
}

@media (max-width: 767px) {
  .hero-sequence--cards-overlay {
    min-height: calc(max(var(--hero-sequence-height-mobile, 280vh), 980px) + var(--hero-sequence-final-composition-hold, 50vh));
    margin-bottom: 700px;
  }

  .hero-sequence__cards-slot {
    bottom: -150px;
    width: calc(100% - 20px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-sequence--cards-overlay {
    min-height: 0;
  }
}
/* Responsive scroll-sequence cards: smaller cards and shorter scroll spacer below desktop. */
@media (min-width: 1200px) and (max-width: 1399px) {
  .hero-sequence--cards-overlay {
    min-height: 344vh;
    margin-bottom: 132px;
  }

  .hero-sequence__cards-slot {
    width: min(1180px, calc(100% - 28px));
    bottom: -126px;
  }

  .hero-sequence__cards-slot .cards-grid {
    flex-wrap: nowrap;
    gap: 14px;
  }

  .hero-sequence__cards-slot .quick-card {
    width: calc((100% - 56px) / 5);
    height: 184px;
    min-height: 0;
    flex: 0 0 calc((100% - 56px) / 5);
    padding: 18px 14px;
    border-radius: 20px;
  }

  .hero-sequence__cards-slot .quick-icon {
    width: 50px;
    height: 50px;
    margin-bottom: 10px;
    font-size: 1.08rem;
  }

  .hero-sequence__cards-slot .quick-card h3 {
    font-size: .95rem;
    line-height: 1.2;
  }

  .hero-sequence__cards-slot .quick-card p {
    font-size: .8rem;
    line-height: 1.38;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .hero-sequence--cards-overlay {
    min-height: 268vh;
    margin-bottom: 122px;
  }

  .hero-sequence__cards-slot {
    bottom: -98px;
    width: calc(100% - 24px);
  }

  .hero-sequence__cards-slot .cards-grid {
    flex-wrap: nowrap;
    justify-content: center;
    gap: 12px;
  }

  .hero-sequence__cards-slot .quick-card {
    width: calc((100% - 48px) / 5);
    height: 154px;
    min-height: 0;
    flex: 0 0 calc((100% - 48px) / 5);
    padding: 15px 11px;
    border-radius: 18px;
  }

  .hero-sequence__cards-slot .quick-icon {
    width: 42px;
    height: 42px;
    margin-bottom: 7px;
    font-size: .98rem;
  }

  .hero-sequence__cards-slot .quick-card h3 {
    margin-bottom: 6px;
    font-size: .84rem;
    line-height: 1.18;
  }

  .hero-sequence__cards-slot .quick-card p {
    font-size: .72rem;
    line-height: 1.3;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .hero-sequence--cards-overlay {
    min-height: 216vh;
    margin-bottom: 164px;
  }

  .hero-sequence__cards-slot {
    bottom: -146px;
    width: calc(100% - 24px);
  }

  .hero-sequence__cards-slot .cards-grid {
    flex-wrap: wrap;
    gap: 10px;
  }

  .hero-sequence__cards-slot .quick-card {
    width: calc((100% - 20px) / 3);
    height: 132px;
    min-height: 0;
    flex: 0 0 calc((100% - 20px) / 3);
    padding: 13px 10px;
    border-radius: 16px;
  }

  .hero-sequence__cards-slot .quick-icon {
    width: 38px;
    height: 38px;
    margin-bottom: 6px;
    font-size: .9rem;
  }

  .hero-sequence__cards-slot .quick-card h3 {
    margin-bottom: 5px;
    font-size: .84rem;
    line-height: 1.18;
  }

  .hero-sequence__cards-slot .quick-card p {
    font-size: .72rem;
    line-height: 1.3;
  }
}

@media (max-width: 767px) {
  .hero-sequence--cards-overlay {
    min-height: 185vh;
    margin-bottom: 246px;
  }

  .hero-sequence__cards-slot {
    bottom: -250px;
    width: calc(100% - 20px);
  }

  .hero-sequence__cards-slot .cards-grid {
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    overflow: visible;
  }

  .hero-sequence__cards-slot .quick-card {
    width: calc((100% - 10px) / 2);
    height: 126px;
    min-height: 0;
    flex: 0 0 calc((100% - 10px) / 2);
    padding: 12px 10px;
    border-radius: 15px;
  }

  .hero-sequence__cards-slot .quick-icon {
    width: 36px;
    height: 36px;
    margin-bottom: 5px;
    font-size: .86rem;
  }

  .hero-sequence__cards-slot .quick-card h3 {
    margin-bottom: 4px;
    font-size: .8rem;
    line-height: 1.16;
  }

  .hero-sequence__cards-slot .quick-card p {
    font-size: .68rem;
    line-height: 1.25;
  }
}

@media (max-width: 575px) {
  .hero-sequence--cards-overlay {
    min-height: 172vh;
    margin-bottom: 292px;
  }

  .hero-sequence__cards-slot {
    bottom: -286px;
    width: calc(100% - 16px);
  }

  .hero-sequence__cards-slot .quick-card {
    height: 118px;
    padding: 11px 9px;
  }

  .hero-sequence__cards-slot .quick-icon {
    width: 34px;
    height: 34px;
    font-size: .82rem;
  }

  .hero-sequence__cards-slot .quick-card h3 {
    font-size: .76rem;
  }

  .hero-sequence__cards-slot .quick-card p {
    font-size: .65rem;
    line-height: 1.22;
  }
}
/* Small-screen original proportion fix.
   Keep the frame ratio 2208/936. Do not stretch to viewport height. */
@media (max-width: 767px), (min-width: 768px) and (max-height: 720px) {
  .hero-sequence__sticky {
    position: sticky;
    top: 0;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 2208 / 936 !important;
    overflow: visible;
    background: #120d08;
  }

  .hero-sequence__canvas,
  .hero-sequence__fallback {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .hero-sequence__canvas {
    display: block;
  }

  .hero-sequence__fallback {
    object-fit: contain;
  }
}
/* Small-screen scroll animation distance fix.
   Keeps the 2208/936 visual proportion while restoring scroll distance. */
@media (max-width: 767px) {
  .hero-sequence--cards-overlay {
    min-height: calc(var(--hero-sequence-height-mobile, 260vh) + var(--hero-sequence-final-composition-hold, 10vh));
    margin-bottom: clamp(90px, 16vh, 160px);
  }

  .hero-sequence__sticky {
    position: sticky;
    top: 0;
    height: auto;
    min-height: 0;
    aspect-ratio: 2208 / 936;
  }
}

@media (min-width: 768px) and (max-height: 720px) {
  .hero-sequence--cards-overlay {
    min-height: calc(var(--hero-sequence-height, 300vh) + var(--hero-sequence-final-composition-hold, 10vh));
    margin-bottom: clamp(90px, 16vh, 160px);
  }
}
/* Mobile hero/cards refinement only.
   Keeps the scroll-sequence ratio visible and lowers the cards so they do not cover the hero. */
@media (max-width: 767px) {
  .hero-sequence--cards-overlay {
    min-height: calc(175vh + var(--hero-sequence-final-composition-hold, 10vh));
    margin-bottom: clamp(48px, 8vh, 90px);
  }

  .hero-sequence__cards-slot {
    bottom: -286px;
    width: min(430px, calc(100% - 18px));
  }

  .hero-sequence__cards-slot .cards-grid {
    gap: 8px;
    align-items: stretch;
    justify-content: center;
  }

  .hero-sequence__cards-slot .quick-card {
    flex: 0 0 calc((100% - 8px) / 2);
    width: calc((100% - 8px) / 2);
    height: 96px;
    min-height: 0;
    padding: 8px 7px;
    border-radius: 12px;
  }

  .hero-sequence__cards-slot .quick-card:last-child:nth-child(odd) {
    margin-left: auto;
    margin-right: auto;
  }

  .hero-sequence__cards-slot .quick-icon {
    width: 30px;
    height: 30px;
    margin-bottom: 3px;
    font-size: .74rem;
  }

  .hero-sequence__cards-slot .quick-card h3 {
    margin-bottom: 3px;
    font-size: .68rem;
    line-height: 1.12;
  }

  .hero-sequence__cards-slot .quick-card p {
    font-size: .56rem;
    line-height: 1.12;
  }
}

@media (max-width: 575px) {
  .hero-sequence--cards-overlay {
    min-height: calc(160vh + var(--hero-sequence-final-composition-hold, 8vh));
    margin-bottom: clamp(40px, 7vh, 74px);
  }

  .hero-sequence__cards-slot {
    bottom: -280px;
    width: min(370px, calc(100% - 16px));
  }

  .hero-sequence__cards-slot .cards-grid {
    gap: 7px;
  }

  .hero-sequence__cards-slot .quick-card {
    flex-basis: calc((100% - 7px) / 2);
    width: calc((100% - 7px) / 2);
    height: 94px;
    padding: 8px 6px;
  }

  .hero-sequence__cards-slot .quick-icon {
    width: 28px;
    height: 28px;
    font-size: .7rem;
  }

  .hero-sequence__cards-slot .quick-card h3 {
    font-size: .64rem;
  }

  .hero-sequence__cards-slot .quick-card p {
    font-size: .54rem;
  }
}

/* Hide only the instant return-resume jump; layout and sticky sizing stay intact. */
html.hero-sequence-resume-pending .hero-sequence,
.hero-sequence.is-resuming-home {
  opacity: 0;
  visibility: hidden;
}
