/*
Theme Name: TX Headlines
Theme URI: https://txheadlines.com
Author: TX Headlines
Author URI: https://txheadlines.com
Description: A Texas travel blog theme with Lone Star design system — navy blue, Texas red, warm neutrals, and authentic typography.
Version: 6.8.0
Requires at least: 6.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: txheadlines
Tags: blog, travel, one-column, two-columns, custom-menu, featured-images, full-width-template
*/

/* ═══════════════════════════════════════════════════
   TX HEADLINES — "Lone Star" Design System
   ═══════════════════════════════════════════════════ */

:root {
  --cream: #F7F8FA;
  --parchment: #E8ECF0;
  --rust: #BF1B2C;
  --terracotta: #D94452;
  --gold: #C8922D;
  --ochre: #E3A94D;
  --sage: #6B7F5E;
  --midnight: #0F2A4A;
  --charcoal: #2A3444;
  --dust: #697383;
  --sandstone: #C5CCDA;
  --background: #F7F8FA;
  --foreground: #2A3444;
  --font-display: 'Syne', system-ui, sans-serif;
  --font-body: 'Hanken Grotesk', system-ui, sans-serif;
}

/* ── Keyframe Animations ─────────────────────────── */

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(36px) scale(0.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes expandLine {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

@keyframes starPulse {
  0%, 100% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.15); }
}

/* ── TX Gradient Logo Text ───────────────────────── */

.txhl-gradient-tx {
  background: linear-gradient(135deg, #1a0fa0 0%, #4a11a0 30%, #c41230 60%, #e11820 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Hero Carousel ───────────────────────────────── */

.txhl-carousel-slide {
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.txhl-carousel-slide.is-active {
  opacity: 1;
}

/* Mobile: smaller taglines + taller container + tighter CTA gap */
@media (max-width: 639px) {
  #txhl-tagline-carousel {
    height: 100px !important;
  }
  .txhl-tagline-slide {
    font-size: 1.5rem; /* 24px */
  }
  .txhl-hero-cta {
    margin-top: 0.25rem; /* 4px */
  }
}

/* Tablet */
@media (min-width: 640px) and (max-width: 1023px) {
  .txhl-tagline-slide {
    font-size: 2.25rem; /* 36px */
  }
  .txhl-hero-cta {
    margin-top: 0.5rem; /* 8px */
  }
}

/* Laptop */
@media (min-width: 1024px) and (max-width: 1279px) {
  .txhl-tagline-slide {
    font-size: 3rem; /* 48px */
  }
  .txhl-hero-cta {
    margin-top: 1rem; /* 16px */
  }
}

.txhl-tagline-slide {
  opacity: 0;
  transform: translateY(100%);
  transition: opacity 0.6s ease-in-out, transform 0.6s ease-in-out;
}

.txhl-tagline-slide.is-active {
  opacity: 1;
  transform: translateY(0);
}

.txhl-tagline-slide.is-exiting {
  opacity: 0;
  transform: translateY(-100%);
}

/* ── Animation Utilities ─────────────────────────── */

.animate-fade-up {
  animation: fadeUp 1.4s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.animate-fade-in {
  animation: fadeIn 0.9s cubic-bezier(0.165, 0.84, 0.44, 1) both;
}

.animate-expand-line {
  animation: expandLine 1.3s cubic-bezier(0.165, 0.84, 0.44, 1) both;
  transform-origin: left center;
}

/* ── Reduced Motion ──────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  .animate-fade-up,
  .animate-fade-in,
  .animate-expand-line {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .star-icon { animation: none !important; }
  .card-lift { transition: none !important; }
}

/* ── Interactive Texas Map ──────────────────────── */

.texas-map svg {
  width: 100%;
  height: auto;
  filter: drop-shadow(0 4px 12px rgba(15, 42, 74, 0.08));
}

.tx-region {
  transition: opacity 0.3s ease;
  opacity: 0.85;
}

.tx-region:hover,
.tx-region:focus {
  opacity: 1;
}

.tx-region path {
  stroke: rgba(197, 204, 218, 0.5);
  stroke-width: 2;
  cursor: pointer;
  transition: fill 0.3s ease, stroke 0.3s ease;
}

.tx-region:hover path,
.tx-region:focus path {
  stroke-width: 2.5;
}

.tx-region-label {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 700;
  fill: var(--cream);
  text-anchor: middle;
  pointer-events: none;
  transition: fill 0.3s ease;
  filter: url(#tx-raised);
}

.tx-region-sublabel {
  font-size: 24px;
  font-weight: 500;
}

.tx-region:hover .tx-region-label,
.tx-region:focus .tx-region-label {
  text-decoration: underline;
  text-decoration-color: var(--rust);
  text-underline-offset: 4px;
  text-decoration-thickness: 2.5px;
}

.tx-star {
  font-size: 32px;
  fill: var(--gold);
  text-anchor: middle;
  pointer-events: none;
  filter: url(#tx-star-glow);
}

/* Region default + hover colors */
[data-region="north-texas"] path { fill: var(--midnight); }
[data-region="north-texas"]:hover path,
[data-region="north-texas"]:focus path { fill: var(--midnight); stroke: var(--midnight); }

[data-region="south-texas"] path { fill: var(--rust); }
[data-region="south-texas"]:hover path,
[data-region="south-texas"]:focus path { fill: var(--rust); stroke: var(--rust); }

[data-region="east-texas"] path { fill: var(--sage); }
[data-region="east-texas"]:hover path,
[data-region="east-texas"]:focus path { fill: var(--sage); stroke: var(--sage); }

[data-region="west-texas"] path { fill: var(--gold); }
[data-region="west-texas"]:hover path,
[data-region="west-texas"]:focus path { fill: var(--gold); stroke: var(--gold); }

[data-region="central-texas"] path { fill: var(--terracotta); }
[data-region="central-texas"]:hover path,
[data-region="central-texas"]:focus path { fill: var(--terracotta); stroke: var(--terracotta); }

[data-region="gulf-coast"] path { fill: var(--ochre); }
[data-region="gulf-coast"]:hover path,
[data-region="gulf-coast"]:focus path { fill: var(--ochre); stroke: var(--ochre); }

/* ── Map Floating Images (surfacing effect) ──────── */

@keyframes surfaceUp {
  from { opacity: 0; transform: translateY(30px) scale(0.9); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.texas-map-wrapper {
  gap: 3rem;
}

.tx-float-images {
  flex-direction: column;
  gap: 1.5rem;
  width: 260px;
  flex-shrink: 0;
}

.tx-float-images.tx-float-left {
  margin-right: 1rem;
}

.tx-float-images.tx-float-right {
  margin-left: 1rem;
}

.tx-float-img {
  display: none;
  width: 260px;
  height: 195px;
  border-radius: 0.75rem;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(15, 42, 74, 0.12);
  background: var(--parchment);
}

.tx-float-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tx-float-img.is-visible {
  display: block;
  animation: surfaceUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
}

/* ── Topographic Contour Pattern ─────────────────── */

.topo-bg {
  background-image:
    repeating-radial-gradient(
      ellipse at 25% 35%,
      transparent 0, transparent 40px,
      rgba(140, 149, 163, 0.06) 40px, rgba(140, 149, 163, 0.06) 41px
    ),
    repeating-radial-gradient(
      ellipse at 75% 65%,
      transparent 0, transparent 28px,
      rgba(140, 149, 163, 0.045) 28px, rgba(140, 149, 163, 0.045) 29px
    ),
    repeating-radial-gradient(
      ellipse at 50% 50%,
      transparent 0, transparent 55px,
      rgba(140, 149, 163, 0.035) 55px, rgba(140, 149, 163, 0.035) 56px
    );
}

/* ── Card Interactions ───────────────────────────── */

.card-lift {
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              filter 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  filter: saturate(0.92) brightness(0.98);
  will-change: transform, box-shadow;
}

.card-lift:hover {
  transform: translateY(-10px);
  box-shadow:
    0 35px 80px rgba(15, 42, 74, 0.16),
    0 15px 35px rgba(15, 42, 74, 0.10);
  filter: saturate(1.05) brightness(1.01);
}

.card-lift img {
  filter: saturate(0.85) contrast(1.02);
  transition: filter 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.card-lift:hover img {
  filter: saturate(1.15) contrast(1);
  transform: scale(1.05);
}

/* ── Star Divider ────────────────────────────────── */

.star-divider {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 0 1rem;
}

.star-divider::before,
.star-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--sandstone), transparent);
}

.star-icon {
  animation: starPulse 4s ease-in-out infinite;
  color: var(--gold);
}

/* ── Hero Gradients ──────────────────────────────── */

.hero-sunset {
  background: linear-gradient(180deg,
    #0F2A4A 0%, #153660 12%, #1C4578 28%, #3A1520 45%,
    #BF1B2C 58%, #D94452 70%, #C5CCDA 85%, var(--cream) 100%
  );
}

.hero-mini {
  background: linear-gradient(180deg,
    #0F2A4A 0%, #153660 35%, #1C4578 60%, #3A2040 80%, var(--cream) 100%
  );
}

/* ── Carousel Paint Stroke ───────────────────────── */

.txhl-paint-stroke {
  position: relative;
  display: inline-block;
  padding: 0.15em 0.6em;
  text-shadow: 0 1px 0 rgba(255,255,255,0.1), 0 2px 6px rgba(0,0,0,0.6), 0 6px 20px rgba(0,0,0,0.5);
}

.txhl-paint-stroke::before {
  content: '';
  position: absolute;
  inset: -0.15em -0.3em;
  z-index: -1;
  background: rgba(0, 0, 0, 0.55);
  mask-image: url('assets/images/brush-stroke-banner-6.png');
  -webkit-mask-image: url('assets/images/brush-stroke-banner-6.png');
  mask-size: 100% 100%;
  -webkit-mask-size: 100% 100%;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
}

/* ── Footer ──────────────────────────────────────── */

.footer-bottom-nav > a,
.footer-bottom-nav > span {
  flex: 0 0 auto;
}

/* Max 5 links per row: each item takes ~20% minus gap */
.footer-bottom-nav {
  max-width: 40rem;
}

.footer-made-in-tx {
  width: 100%;
  text-align: center;
}

@media (min-width: 630px) {
  .footer-made-in-tx {
    width: auto;
    text-align: left;
  }
}

/* ── Prose Styles (Blog Content) ─────────────────── */

.prose-tx p {
  font-family: var(--font-body);
  font-size: 1.1875rem;
  line-height: 1.8;
  color: var(--charcoal);
  margin-bottom: 1.75rem;
}

.prose-tx > p:first-of-type::first-letter {
  font-family: var(--font-display);
  font-size: 3.5rem;
  float: left;
  line-height: 1;
  margin-right: 0.5rem;
  margin-top: 0.1rem;
  color: var(--rust);
  font-weight: 800;
}

.prose-tx h2 {
  font-family: var(--font-display);
  font-size: 1.5625rem;
  font-weight: 700 !important;
  color: var(--midnight);
  margin-top: 2.5rem;
  margin-bottom: 1rem;
  letter-spacing: -0.02em;
}

.prose-tx h2 strong,
.prose-tx h2 b {
  font-weight: inherit !important;
}

.prose-tx h3 {
  font-family: var(--font-display);
  font-size: 1.3125rem;
  font-weight: 600 !important;
  color: var(--midnight);
  margin-top: 2rem;
  margin-bottom: 0.75rem;
  letter-spacing: -0.01em;
}

.prose-tx h3 strong,
.prose-tx h3 b {
  font-weight: inherit !important;
}

.prose-tx h4 strong,
.prose-tx h4 b,
.prose-tx h5 strong,
.prose-tx h5 b,
.prose-tx h6 strong,
.prose-tx h6 b {
  font-weight: inherit !important;
}

.prose-tx ul {
  list-style: disc;
  padding-left: 1.5rem;
  margin-bottom: 1.5rem;
}

.prose-tx ul li {
  font-family: var(--font-body);
  font-size: 1.125rem;
  line-height: 1.75;
  color: var(--charcoal);
  margin-bottom: 0.375rem;
}

.prose-tx blockquote {
  border-left: none;
  position: relative;
  padding: 2rem 2rem 2rem 3.5rem;
  margin: 2.5rem -0.5rem;
  background: linear-gradient(135deg, rgba(15, 42, 74, 0.05), rgba(191, 27, 44, 0.04));
  border-radius: 0.75rem;
  font-style: italic;
  color: var(--charcoal);
  font-size: 1.3125rem;
  line-height: 1.65;
}

.prose-tx blockquote::before {
  content: '\201C';
  position: absolute;
  top: 0.5rem;
  left: 1rem;
  font-family: var(--font-display);
  font-size: 4rem;
  color: var(--gold);
  line-height: 1;
  opacity: 0.45;
}

.prose-tx img {
  border-radius: 0.75rem;
  margin: 2rem auto;
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.prose-tx .txhl-author-card img,
.prose-tx .txhl-team-card img {
  border-radius: 0;
  margin: 0;
}

/* Author card social icons */
.txhl-author-social {
  border: 1px solid rgba(247,248,250,0.3);
  color: rgba(247,248,250,0.7);
}

.txhl-author-social:hover {
  color: var(--rust) !important;
  border-color: var(--rust) !important;
  transform: scale(1.1);
}

.prose-tx a {
  color: var(--rust);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.2s;
}

.prose-tx a:hover {
  color: var(--terracotta);
}

.prose-tx figure,
.prose-tx .wp-block-image,
.prose-tx .wp-block-image figure,
.prose-tx .wp-block-image.aligncenter,
.prose-tx figure.aligncenter {
  display: block !important;
  margin: 2rem auto;
  width: 100%;
  max-width: 100%;
  text-align: center;
}

.prose-tx figure > figcaption,
.prose-tx .wp-block-image figcaption {
  display: block !important;
  caption-side: unset;
}

.prose-tx figure img {
  margin: 0 auto;
  width: 100%;
  height: auto;
}

.prose-tx figcaption,
.prose-tx .wp-element-caption {
  font-family: var(--font-body);
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--dust);
  margin-top: 0.5rem;
  text-align: center;
  position: relative;
  z-index: 1;
}

.prose-tx figcaption a,
.prose-tx .wp-element-caption a,
.prose-tx .wp-block-image figcaption a,
.prose-tx figcaption a.customize-unpreviewable,
.prose-tx .wp-element-caption a.customize-unpreviewable {
  color: var(--dust);
  text-decoration: none;
  transition: color 0.2s;
  pointer-events: auto !important;
  position: relative;
  z-index: 2;
  cursor: pointer;
}

.prose-tx figcaption a:hover,
.prose-tx .wp-element-caption a:hover,
.prose-tx .wp-block-image figcaption a:hover {
  color: var(--charcoal);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.prose-tx .wp-block-embed,
.prose-tx figure.wp-block-embed {
  margin-left: auto;
  margin-right: auto;
}

.prose-tx iframe,
.prose-tx .wp-block-embed,
.prose-tx .wp-block-embed__wrapper {
  width: 100%;
  max-width: 100%;
}

.prose-tx .wp-block-embed__wrapper {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.prose-tx .wp-block-embed__wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 0.75rem;
}

.prose-tx iframe[src*="youtube"],
.prose-tx iframe[src*="youtu.be"] {
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border-radius: 0.75rem;
}

/* ── Scrollbar ───────────────────────────────────── */

html {
  scrollbar-width: thin;
  scrollbar-color: var(--sandstone) var(--cream);
  scroll-behavior: smooth;
}

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--cream); }
::-webkit-scrollbar-thumb { background: var(--sandstone); border-radius: 99px; }
::-webkit-scrollbar-thumb:hover { background: var(--dust); }

/* ── Selection ───────────────────────────────────── */

::selection {
  background: var(--ochre);
  color: var(--midnight);
}

/* ── Skip Link ───────────────────────────────────── */

.skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.skip-link:focus {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  width: auto;
  height: auto;
  z-index: 100;
  padding: 0.5rem 1rem;
  background: var(--midnight);
  color: var(--cream);
  border-radius: 0.5rem;
  font-family: var(--font-body);
  font-size: 0.875rem;
}

/* ── Base ────────────────────────────────────────── */

body {
  background: var(--cream);
  color: var(--charcoal);
  font-family: var(--font-body);
}

/* ── Newsletter Input ────────────────────────────── */

.newsletter-input {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #F7F8FA;
  transition: border-color 0.3s ease, background 0.3s ease;
}

.newsletter-input:focus {
  outline: none;
  border-color: var(--gold);
  background: rgba(255, 255, 255, 0.18);
}

.newsletter-input::placeholder {
  color: rgba(197, 204, 218, 0.7);
}

/* ── Link Underline Animation ────────────────────── */

.link-underline {
  position: relative;
  text-decoration: none;
}

.link-underline::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 1.5px;
  background: var(--rust);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.link-underline:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* ── Gradient border cards ───────────────────────── */

.gradient-border {
  background:
    linear-gradient(var(--cream), var(--cream)) padding-box,
    linear-gradient(135deg, var(--sandstone), transparent 50%, var(--gold)) border-box;
  border: 1px solid transparent;
}

/* ── Scrollbar Hide ──────────────────────────────── */

.scrollbar-hide {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.scrollbar-hide::-webkit-scrollbar {
  display: none;
}

/* ── Info Box Block ─────────────────────────────── */

.txhl-info-box {
  display: flex;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  border-radius: 0.75rem;
  margin: 1.5rem 0;
}

.txhl-info-box--default {
  background: var(--cream);
  border: 1px solid var(--sandstone);
}

.txhl-info-box--dark {
  background: var(--midnight);
  border: 1px solid rgba(255,255,255,0.1);
}

.txhl-info-box--accent {
  background: var(--cream);
  border: 1px solid var(--sandstone);
  border-left: 4px solid var(--rust);
}

.txhl-info-icon {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  margin-top: 2px;
}

.txhl-info-box__body {
  flex: 1;
  min-width: 0;
}

.txhl-info-box__title {
  font-size: 0.9375rem;
  line-height: 1.3;
  margin: 0;
}

.txhl-info-box__accent {
  width: 1.5rem;
  height: 2px;
  border-radius: 99px;
  margin-top: 0.375rem;
}

.txhl-info-box__content {
  font-size: 0.875rem;
  line-height: 1.6;
  margin-top: 0.5rem;
}

/* ── Callout Box Block ─────────────────────────── */

.txhl-callout {
  position: relative;
  padding: 1.5rem 1.75rem 1.5rem 2rem;
  border-radius: 0.75rem;
  margin: 1.5rem 0;
  border-left: 4px solid var(--gold);
}

.txhl-callout--quote {
  background: linear-gradient(135deg, rgba(15,42,74,0.05), rgba(191,27,44,0.04));
}

.txhl-callout--highlight {
  background: #FFFBF0;
  border-left-color: var(--gold);
}

.txhl-callout--dark {
  background: var(--midnight);
  border-left-color: var(--rust);
}

.txhl-callout__star {
  position: absolute;
  top: 0.75rem;
  left: 0.625rem;
  font-size: 0.75rem;
  opacity: 0.6;
}

.txhl-callout__text {
  font-size: 1.125rem;
  font-style: italic;
  line-height: 1.65;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
}

/* Override prose-tx blockquote styles inside callout */
.prose-tx .txhl-callout .txhl-callout__text {
  font-size: 1.125rem;
  padding: 0;
  margin: 0;
  background: none;
  border-radius: 0;
  border-left: none;
}

.prose-tx .txhl-callout .txhl-callout__text::before {
  display: none;
}

.txhl-callout__attr {
  font-size: 0.8125rem;
  margin-top: 0.75rem;
  font-style: normal;
}

/* ── Team Member Cards ──────────────────────────── */

/* Design 2: Overlay — gradient always visible, expands on hover */
.txhl-team-overlay .txhl-team-overlay-content {
  min-height: 30%;
}

/* Design 4: Minimal — social icons fade in on hover */
.txhl-team-minimal .flex.opacity-0 {
  pointer-events: none;
}
.txhl-team-minimal:hover .flex.opacity-0,
.txhl-team-minimal:focus-within .flex.opacity-0 {
  pointer-events: auto;
}

/* ── Team Gallery Lightbox ──────────────────────── */

.txhl-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(15, 42, 74, 0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.txhl-lightbox.is-open {
  opacity: 1;
  visibility: visible;
}

.txhl-lightbox-img-wrap {
  max-width: 90vw;
  max-height: 80vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.txhl-lightbox-img {
  max-width: 90vw;
  max-height: 80vh;
  border-radius: 0.5rem;
  object-fit: contain;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
  transition: opacity 0.2s ease;
}

.txhl-lightbox-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: none;
  border: none;
  color: var(--cream);
  font-size: 2rem;
  cursor: pointer;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background 0.2s;
}

.txhl-lightbox-close:hover {
  background: rgba(255, 255, 255, 0.1);
}

.txhl-lightbox-prev,
.txhl-lightbox-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.1);
  border: none;
  color: var(--cream);
  cursor: pointer;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background 0.2s;
}

.txhl-lightbox-prev { left: 1rem; }
.txhl-lightbox-next { right: 1rem; }

.txhl-lightbox-prev:hover,
.txhl-lightbox-next:hover {
  background: rgba(255, 255, 255, 0.2);
}

.txhl-lightbox-counter {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  color: var(--cream);
  font-family: var(--font-body);
  font-size: 0.8125rem;
  opacity: 0.7;
}

/* Mobile adjustments */
@media (max-width: 639px) {
  .txhl-lightbox-prev,
  .txhl-lightbox-next {
    top: auto;
    bottom: 3.5rem;
    transform: none;
  }
  .txhl-lightbox-prev { left: calc(50% - 60px); }
  .txhl-lightbox-next { right: calc(50% - 60px); }
  .txhl-lightbox-counter { bottom: 1rem; }
}

/* ── Block Style Variations ─────────────────────── */

/* Midnight Card — dark background, cream text */
.is-style-txhl-midnight-card {
  background: var(--midnight);
  color: var(--cream);
  padding: 2rem;
  border-radius: 1rem;
}

.is-style-txhl-midnight-card h1,
.is-style-txhl-midnight-card h2,
.is-style-txhl-midnight-card h3,
.is-style-txhl-midnight-card h4 {
  color: var(--cream);
}

.is-style-txhl-midnight-card p {
  color: var(--parchment);
}

.is-style-txhl-midnight-card a {
  color: var(--gold);
}

.is-style-txhl-midnight-card a:hover {
  color: var(--ochre);
}

/* Rust Border Card — white card with rust border */
.is-style-txhl-rust-border {
  background: #fff;
  border: 2px solid var(--rust);
  padding: 2rem;
  border-radius: 1rem;
}

/* Midnight + Rust Accent — dark card with rust left border */
.is-style-txhl-midnight-rust {
  background: var(--midnight);
  color: var(--cream);
  padding: 2rem;
  border-radius: 1rem;
  border-left: 4px solid var(--rust);
}

.is-style-txhl-midnight-rust h1,
.is-style-txhl-midnight-rust h2,
.is-style-txhl-midnight-rust h3,
.is-style-txhl-midnight-rust h4 {
  color: var(--cream);
}

.is-style-txhl-midnight-rust p {
  color: var(--parchment);
}

.is-style-txhl-midnight-rust a {
  color: var(--rust);
}

/* Parchment Card — soft background */
.is-style-txhl-parchment-card {
  background: var(--parchment);
  padding: 2rem;
  border-radius: 1rem;
}

/* Lead Text — larger intro paragraph */
.is-style-txhl-lead {
  font-size: 1.25rem;
  line-height: 1.75;
  color: var(--charcoal);
  font-family: var(--font-body);
}

/* Rust Underline Heading */
.is-style-txhl-rust-underline {
  position: relative;
  padding-bottom: 0.75rem;
}

.is-style-txhl-rust-underline::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 2.5rem;
  height: 3px;
  background: var(--rust);
  border-radius: 99px;
}

/* Star Bullets List */
.is-style-txhl-star-list {
  list-style: none;
  padding-left: 0;
}

.is-style-txhl-star-list li {
  position: relative;
  padding-left: 1.5rem;
}

.is-style-txhl-star-list li::before {
  content: '\2605';
  position: absolute;
  left: 0;
  color: var(--gold);
  font-size: 0.875rem;
}

/* ── Editor Color Palette Classes ──────────────── */

.has-midnight-background-color { background-color: var(--midnight); }
.has-rust-background-color { background-color: var(--rust); }
.has-terracotta-background-color { background-color: var(--terracotta); }
.has-gold-background-color { background-color: var(--gold); }
.has-ochre-background-color { background-color: var(--ochre); }
.has-sage-background-color { background-color: var(--sage); }
.has-charcoal-background-color { background-color: var(--charcoal); }
.has-dust-background-color { background-color: var(--dust); }
.has-cream-background-color { background-color: var(--cream); }
.has-parchment-background-color { background-color: var(--parchment); }
.has-sandstone-background-color { background-color: var(--sandstone); }
.has-white-background-color { background-color: #fff; }

.has-midnight-color { color: var(--midnight); }
.has-rust-color { color: var(--rust); }
.has-terracotta-color { color: var(--terracotta); }
.has-gold-color { color: var(--gold); }
.has-ochre-color { color: var(--ochre); }
.has-sage-color { color: var(--sage); }
.has-charcoal-color { color: var(--charcoal); }
.has-dust-color { color: var(--dust); }
.has-cream-color { color: var(--cream); }
.has-parchment-color { color: var(--parchment); }
.has-sandstone-color { color: var(--sandstone); }
.has-white-color { color: #fff; }

/* ── WordPress Specific ──────────────────────────── */

.aligncenter { text-align: center; margin: 1.5rem auto; }
.alignleft { float: left; margin: 0.5rem 1.5rem 0.5rem 0; }
.alignright { float: right; margin: 0.5rem 0 0.5rem 1.5rem; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 0.8125rem; color: var(--dust); text-align: center; margin-top: 0.5rem; }
.wp-caption-text a { color: var(--rust); text-decoration: none; transition: color 0.2s; }
.wp-caption-text a:hover { color: var(--terracotta); text-decoration: underline; text-underline-offset: 2px; }
.gallery { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.gallery-item { flex: 1 1 200px; }
.gallery-item img { width: 100%; height: auto; border-radius: 0.5rem; }
.screen-reader-text { clip: rect(1px, 1px, 1px, 1px); position: absolute !important; height: 1px; width: 1px; overflow: hidden; }

/* Force caption credit links to be clickable */
a.customize-unpreviewable { pointer-events: auto !important; cursor: pointer !important; }
figcaption a, .wp-element-caption a, .wp-element-caption em a { pointer-events: auto !important; cursor: pointer !important; }
