/* ==========================================================================
   "Private Screening" interior pages
   Page-type refinements layered over luxe.css. Selectors target the markup
   already used by each page so copy and structure stay untouched.
   ========================================================================== */

/* ---------- Interior heroes: scale long service headlines ---------- */
.page-hero h1,
.service-hero h1,
.hero-section:not(.lx-hero) h1,
.hero h1,
[class*="-hero"] h1 {
  font-size: clamp(2.3rem, 4.9vw, 4.9rem) !important;
  line-height: 0.96 !important;
  letter-spacing: -0.015em !important;
  max-width: 17ch;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
  color: var(--lx-ivory) !important;
  text-shadow: none !important;
}

.corp-page .corp-hero h1 {
  max-width: 14ch;
}

/* Hero paragraphs over imagery stay readable */
.page-hero p,
.service-hero p,
.hero-section:not(.lx-hero) p,
[class*="-hero"] .hero-subtitle,
[class*="-hero"] .hero-description {
  color: var(--lx-ivory-2) !important;
  text-shadow: 0 1px 18px rgba(0, 0, 0, 0.55);
}

/* ---------- Badges, kickers and pills become quiet eyebrow labels ---------- */
.hero-badge,
.section-badge,
.cta-badge,
.wedding-intro-badge,
.testimonial-badge,
.vc-hero-kicker,
.hero-tagline,
.showcase-video-eyebrow,
.service-tag {
  display: inline-flex !important;
  align-items: center;
  gap: 0.9rem;
  width: auto !important;
  max-width: 100%;
  margin-inline: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  color: var(--lx-gold) !important;
  font-family: var(--lx-sans) !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  animation: none !important;
  -webkit-text-fill-color: currentColor !important;
}

.hero-badge::before,
.section-badge::before,
.cta-badge::before,
.vc-hero-kicker::before {
  content: "" !important;
  display: inline-block !important;
  position: static !important;
  width: 2.2rem !important;
  height: 1px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--lx-gold-line) !important;
  animation: none !important;
  box-shadow: none !important;
  opacity: 1 !important;
  transform: none !important;
}

.hero-badge::after,
.section-badge::after,
.cta-badge::after {
  display: none !important;
}

/* Centered section headers keep their eyebrow centered */
.section-header .section-badge,
.text-center .section-badge,
.section-header .hero-badge {
  justify-content: center;
}

/* ---------- Icon medallions: hairline instead of glowing gold ---------- */
.service-icon-container,
.process-icon-container,
.process-icon-wrapper,
.feature-icon,
.benefit-icon,
.svc-icon-inner,
.step-icon,
.ws-card-icon,
.value-journey-icon,
.journey-icon,
.corp-card__icon,
.question-icon {
  background: transparent !important;
  border: 1px solid var(--lx-gold-line) !important;
  box-shadow: none !important;
  color: var(--lx-gold) !important;
  animation: none !important;
}

.service-icon-container i,
.process-icon-container i,
.process-icon-wrapper i,
.feature-icon i,
.benefit-icon i,
.svc-icon-inner i,
.step-icon i,
.ws-card-icon i,
.journey-icon i,
.value-journey-icon i,
.service-icon {
  color: var(--lx-gold) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
  text-shadow: none !important;
}

/* enhanced-styles.css forces dark glyphs for the old gold medallions; match its specificity. */
body .service-icon-container .fas,
body .service-icon-container .fa-solid,
body .service-icon-container i,
body i.service-icon,
body .icon-primary > i,
body .icon-secondary > i,
body .process-icon-container i {
  color: var(--lx-gold) !important;
}

/* ---------- Cards: square hairline panels across page-specific variants ---------- */
[class*="service-card"],
[class*="feature-card"],
[class*="process-card"],
[class*="benefit-card"],
[class*="package-card"]:not(.vc-package-card),
[class*="pricing-card"],
[class*="team-card"],
[class*="value-card"],
[class*="info-card"],
.contact-info-card,
.advantage-panel,
.journey-card,
.mission-card,
.faq-item,
.timeline-content,
.stat-card,
.stat-item {
  border-radius: 0 !important;
  box-shadow: none !important;
}

[class*="service-card"],
[class*="feature-card"],
[class*="process-card"],
[class*="benefit-card"],
[class*="value-card"],
.contact-info-card,
.journey-card,
.mission-card {
  background: var(--lx-panel) !important;
  border: 1px solid var(--lx-line) !important;
}

[class*="service-card"]:hover,
[class*="feature-card"]:hover,
[class*="process-card"]:hover,
[class*="benefit-card"]:hover,
.contact-info-card:hover {
  border-color: var(--lx-gold-line) !important;
  transform: none !important;
}

[class*="service-card"] h3,
[class*="feature-card"] h3,
[class*="process-card"] h3,
[class*="benefit-card"] h3 {
  color: var(--lx-ivory) !important;
  font-family: var(--lx-sans) !important;
  font-weight: 600 !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}

[class*="service-card"] p,
[class*="feature-card"] p,
[class*="process-card"] p,
[class*="benefit-card"] p {
  color: var(--lx-mute) !important;
}

/* Page-specific inline styles often round images and panels */
.about-image img,
.about-content img,
.service-image img,
.portfolio-item,
.portfolio-item img,
.post-featured-image img,
.blog-card-image,
.blog-card-image img {
  border-radius: 0 !important;
}

/* Decorative particle and glow layers from older heroes */
.hero-particles,
.floating-icons,
.hero-glow,
.glow-orb,
.particles,
.camera-icon-watermark,
.digital-icon {
  opacity: 0.18 !important;
  animation: none !important;
}

/* ---------- Services overview ---------- */
.page.services .vc-hero-stage h1 {
  max-width: 13ch;
}

.page.services .luxury-card {
  padding: 2.2rem !important;
}

.page.services .price-tag,
.page.services [class*="price"] {
  color: var(--lx-gold-soft) !important;
}

/* ---------- About ---------- */
.page.about-page .page-hero {
  align-items: center !important;
}

.page.about-page .page-hero h1,
.page.about-page .page-hero .hero-content {
  margin-inline: auto !important;
  text-align: center !important;
}

.page.about-page .page-hero p {
  margin-inline: auto !important;
  text-align: center !important;
}

.team-member img,
[class*="team"] img {
  filter: grayscale(0.15);
}

/* ---------- Contact ---------- */
.page.contact h1 {
  font-size: clamp(2.6rem, 6vw, 5.4rem) !important;
}

.page.contact .hero-subtitle,
.page.contact .contact-hero p {
  font-family: var(--lx-serif) !important;
  font-style: italic;
  font-size: clamp(1.1rem, 1.6vw, 1.35rem) !important;
  color: var(--lx-ivory-2) !important;
}

/* The embedded inquiry form keeps its own white card; frame it quietly */
.page.contact iframe[src*="io.vividcanvas.info"] {
  border: 0 !important;
  border-radius: 0 !important;
}

/* ---------- Blog index and posts ---------- */
.page.blog-post .post-header {
  display: block !important;
  max-width: 880px;
  margin-inline: auto;
}

.page.blog-post #post-title {
  font-family: var(--lx-serif) !important;
  font-style: normal;
  font-weight: 400 !important;
  font-stretch: 100%;
  font-size: clamp(2.2rem, 4.6vw, 4.2rem) !important;
  line-height: 1.04 !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
  max-width: 22ch;
}

.page.blog-post .post-meta {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.6rem 1.6rem;
  margin-top: 1.6rem;
  width: auto !important;
  font-size: 0.875rem !important;
  color: var(--lx-mute) !important;
}

.page.blog-post .post-meta-item {
  display: inline-flex !important;
  align-items: center;
  gap: 0.45rem;
  width: auto !important;
}

.page.blog-post .post-meta-item i {
  color: var(--lx-gold) !important;
}

.page.blog-post .post-body {
  max-width: 72ch;
  margin-inline: auto;
  font-size: 1.08rem;
  line-height: 1.8;
  color: var(--lx-ivory-2);
}

.page.blog-post .post-body h2 {
  font-family: var(--lx-serif) !important;
  font-weight: 400 !important;
  font-stretch: 100%;
  font-size: clamp(1.7rem, 2.6vw, 2.3rem) !important;
  line-height: 1.12 !important;
  text-transform: none !important;
  letter-spacing: -0.015em !important;
  margin: 3rem 0 1rem !important;
}

.page.blog-post .post-body h3 {
  font-size: 1.2rem !important;
  margin: 2rem 0 0.6rem !important;
}

.page.blog-post .post-body a {
  color: var(--lx-gold-soft) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.page.blog .blog-card-title,
.page.blog h3 {
  text-transform: none !important;
}

/* ---------- Legal pages: readable long-form ---------- */
.legal-content,
.page .legal-section {
  color: var(--lx-ivory-2) !important;
  line-height: 1.8;
}

.legal-content h2,
.legal-section h2 {
  font-size: clamp(1.4rem, 2.4vw, 2rem) !important;
}

/* ---------- Weddings sub-brand (cream theme) keeps its palette ---------- */
.weddings-page .header,
.wedding-package-explorer .header {
  background: rgba(8, 8, 7, 0.92) !important;
}

/* ---------- 404 ---------- */
.error-page h1,
.error-code {
  font-family: var(--lx-display) !important;
  font-stretch: 125%;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}

@media (max-width: 767px) {
  .page-hero h1,
  .service-hero h1,
  .hero-section:not(.lx-hero) h1,
  .hero h1,
  [class*="-hero"] h1 {
    font-size: clamp(1.9rem, 8.6vw, 2.8rem) !important;
    font-stretch: 110%;
  }

  .page.blog-post #post-title {
    font-size: clamp(1.9rem, 8vw, 2.6rem) !important;
  }
}

/* The shared showcase "More" cue should not nudge forever. */
.showcase-video-next a,
.showcase-video-next i {
  animation: none !important;
}

/* Elfsight Vimeo galleries: legible "Load More" everywhere (was about 1.3:1). */
[class*="eapp-vimeo-gallery-load-more"] {
  min-height: 44px;
  border: 1px solid var(--lx-line-2) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--lx-ivory) !important;
  font-family: var(--lx-sans) !important;
  font-size: 0.875rem !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

[class*="eapp-vimeo-gallery-load-more"]:hover {
  border-color: var(--lx-gold) !important;
}

/* Article: keep body text clear of the fixed back-to-top control on phones. */
@media (max-width: 767px) {
  .page.blog-post .post-body,
  .page.fs-article-page .post-body {
    padding-right: 56px;
  }
}
