/* ==========================================================================
   TWL Pages Design System — 100% scoped under .twl
   ========================================================================== */

/* --- Tokens --- */
.twl {
  --twl-bg: #0a0a0a;
  --twl-bg-card: #161616;
  --twl-bg-card-hover: #1e1e1e;
  --twl-accent: var(--accent-orange, #ff6a00);
  --twl-accent-hover: #ff8533;
  --twl-text: #ffffff;
  --twl-text-muted: rgba(255,255,255,0.6);
  --twl-text-subtle: rgba(255,255,255,0.35);
  --twl-border: rgba(255,255,255,0.08);
  --twl-border-accent: rgba(255,106,0,0.25);
  --twl-radius: 8px;
  --twl-radius-lg: 16px;
  --twl-container: 1200px;
  --twl-container-narrow: 900px;
  --twl-space-section: clamp(64px, 10vw, 128px);
  --twl-space-block: clamp(32px, 5vw, 64px);
  --twl-transition: 300ms cubic-bezier(0.2, 0.9, 0.2, 1);
  --twl-font-body: var(--font-body, 'Montserrat', sans-serif);
  --twl-font-display: var(--font-body, 'Conthrax', 'Montserrat', sans-serif);
  --twl-parallax-y: 0px;

  background: var(--twl-bg);
  color: var(--twl-text);
  font-family: var(--twl-font-body);
  line-height: 1.6;
  overflow: clip;
}

/* --- Full-width override --- */
.twl-page-active .page_content_wrap {
  padding: 0 !important;
}
.twl-page-active .page_content_wrap .content_wrap {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 auto !important;
}
.twl-page-active .page_content_wrap .content {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  float: none !important;
}
.twl-page-active .sidebar {
  display: none !important;
}
.twl-page-active .page_title_wrap {
  display: none !important;
}
@media (max-width: 767px) {
  .twl-page-active .page_content_wrap .content_wrap {
    width: 100% !important;
    max-width: none !important;
  }
}
@media (max-width: 639px) {
  .twl-page-active .page_content_wrap .content_wrap {
    max-width: none !important;
  }
}
@media (max-width: 479px) {
  .twl-page-active .page_content_wrap .content_wrap {
    max-width: none !important;
  }
}

/* --- Container --- */
.twl-container {
  width: 100%;
  max-width: var(--twl-container);
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 40px);
  box-sizing: border-box;
}
.twl-container--narrow {
  max-width: var(--twl-container-narrow);
}

/* --- Section --- */
.twl-section {
  padding: var(--twl-space-section) 0;
  position: relative;
  z-index: 1;
  background-color: var(--twl-bg);
}
.twl-section--alt {
  background-color: var(--twl-bg-card);
}

.twl-section__header {
  text-align: center;
  margin-bottom: var(--twl-space-block);
}
.twl-section__title {
  font-family: var(--twl-font-display);
  font-size: clamp(28px, 3.2vw, 42px);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin: 0 0 16px;
  color: var(--twl-text);
}
.twl-section__subtitle {
  font-size: clamp(16px, 1.8vw, 20px);
  color: var(--twl-text-muted);
  max-width: 640px;
  margin: 0 auto;
  line-height: 1.5;
}
.twl-accent {
  color: var(--twl-accent);
}
.twl-section__kicker {
  font-family: 'JetBrains Mono', 'Courier New', monospace;
  font-size: 0.7rem;
  letter-spacing: 0.15em;
  color: var(--twl-accent, #FF6B00);
  text-transform: uppercase;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.twl-section__kicker::before,
.twl-section__kicker::after {
  content: '\2014';
  color: var(--twl-accent, #FF6B00);
}

/* --- Hero (Apple-style sticky parallax) --- */
.twl-hero {
  position: sticky;
  top: 0;
  z-index: 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: clamp(100px, 15vh, 160px) 0 clamp(60px, 10vh, 120px);
}
.twl-hero__bg {
  position: absolute;
  inset: -10%;
  background: var(--twl-hero-bg, linear-gradient(135deg, #0d0d0d 0%, #1a1209 50%, #0d0d0d 100%));
  background-size: cover;
  background-position: center;
  transform: scale(var(--twl-hero-scale, 1));
  opacity: var(--twl-hero-opacity, 1);
  filter: blur(var(--twl-hero-blur, 0px));
  will-change: transform, opacity, filter;
}
.twl-hero__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,106,0,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,106,0,0.03) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none;
}
.twl-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(10,10,10,0.45) 0%,
    rgba(10,10,10,0.15) 40%,
    rgba(10,10,10,0.65) 100%
  );
}
.twl-hero__lines {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.twl-hero__lines::before,
.twl-hero__lines::after {
  content: '';
  position: absolute;
  width: 1px;
  height: 120%;
  background: linear-gradient(180deg, transparent 0%, rgba(255,106,0,0.12) 50%, transparent 100%);
}
.twl-hero__lines::before { left: 20%; top: -10%; }
.twl-hero__lines::after { right: 25%; top: -10%; }

.twl-hero__content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 800px;
  padding: 0 clamp(20px, 4vw, 40px);
}
.twl-hero__badge {
  display: inline-block;
  padding: 6px 16px;
  border: 1px solid var(--twl-border-accent);
  border-radius: 100px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--twl-accent);
  margin-bottom: 24px;
  opacity: 0;
  transform: scale(0.8);
  transition: opacity 0.5s 0.6s ease, transform 0.5s 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.twl-hero.is-loaded .twl-hero__badge {
  opacity: 1;
  transform: scale(1);
}
.twl-hero__title {
  font-family: var(--twl-font-display);
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.08;
  margin: 0 0 20px;
  clip-path: inset(100% 0 0 0);
  transition: clip-path 0.8s cubic-bezier(0.77, 0, 0.175, 1);
}
.twl-hero.is-loaded .twl-hero__title {
  clip-path: inset(0 0 0 0);
}
.twl-hero__title .highlight {
  color: #ff6a00;
}
.twl-hero__subtitle {
  font-size: clamp(17px, 2vw, 22px);
  color: var(--twl-text-muted);
  line-height: 1.5;
  margin: 0 0 32px;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.6s 0.4s ease, transform 0.6s 0.4s ease;
}
.twl-hero.is-loaded .twl-hero__subtitle {
  opacity: 1;
  transform: translateY(0);
}
.twl-hero__scroll {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: var(--twl-text-subtle);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-top: 40px;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.6s 0.9s ease;
}
.twl-hero.is-loaded .twl-hero__scroll {
  opacity: 1;
}
.twl-hero__scroll-line {
  width: 1px;
  height: 48px;
  background: linear-gradient(180deg, var(--twl-accent), transparent);
  animation: twl-scroll-pulse 2s ease-in-out infinite;
}
@keyframes twl-scroll-pulse {
  0%, 100% { opacity: 0.3; transform: scaleY(0.6); }
  50% { opacity: 1; transform: scaleY(1); }
}

/* --- Proof / Stats --- */
.twl-proof {
  padding: clamp(40px, 6vw, 80px) 0;
  border-bottom: 1px solid var(--twl-border);
  position: relative;
  z-index: 1;
  background-color: var(--twl-bg);
}
.twl-proof__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: clamp(24px, 4vw, 48px);
  text-align: center;
}
.twl-proof__item {
  padding: 24px 16px;
}
.twl-proof__value {
  font-family: var(--twl-font-display);
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 700;
  color: var(--twl-accent);
  line-height: 1;
  margin-bottom: 8px;
  text-shadow: 0 0 20px var(--twl-accent-glow, rgba(255,106,0,0.3));
  animation: twl-glow-pulse 3s ease-in-out infinite;
}
@keyframes twl-glow-pulse {
  0%, 100% { text-shadow: 0 0 20px var(--twl-accent-glow, rgba(255,106,0,0.15)); }
  50% { text-shadow: 0 0 30px var(--twl-accent-glow, rgba(255,106,0,0.4)); }
}
.twl-proof__label {
  font-size: 14px;
  color: var(--twl-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* --- Features Grid --- */
.twl-features__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
}
.twl-feature-card {
  background:
    linear-gradient(var(--twl-bg-card), var(--twl-bg-card)) padding-box,
    linear-gradient(135deg, var(--twl-border) 40%, var(--twl-border) 100%) border-box;
  border: 1px solid transparent;
  border-radius: var(--twl-radius-lg);
  padding: clamp(28px, 3vw, 40px);
  transition: background var(--twl-transition), box-shadow var(--twl-transition);
}
.twl-feature-card:hover {
  background:
    linear-gradient(var(--twl-bg-card-hover), var(--twl-bg-card-hover)) padding-box,
    linear-gradient(135deg, transparent 30%, var(--twl-accent) 100%) border-box;
}
.twl-feature-card__icon {
  font-size: 32px;
  margin-bottom: 16px;
  display: block;
}
.twl-feature-card__title {
  font-family: var(--twl-font-display);
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 10px;
}
.twl-feature-card__text {
  font-size: 15px;
  color: var(--twl-text-muted);
  line-height: 1.6;
  margin: 0;
}

/* --- Process Steps --- */
.twl-process__list {
  position: relative;
  counter-reset: twl-step;
  max-width: 720px;
  margin: 0 auto;
}
.twl-process__line {
  position: absolute;
  left: 24px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, var(--twl-accent), var(--twl-border) 80%, transparent);
}
.twl-process__step {
  position: relative;
  padding-left: 72px;
  padding-bottom: clamp(32px, 4vw, 56px);
  counter-increment: twl-step;
}
.twl-process__step::before {
  content: counter(twl-step);
  position: absolute;
  left: 0;
  top: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--twl-bg);
  border: 2px solid var(--twl-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--twl-font-display);
  font-size: 16px;
  font-weight: 700;
  color: var(--twl-accent);
  z-index: 1;
}
.twl-process__step-title {
  font-family: var(--twl-font-display);
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 600;
  margin: 4px 0 8px;
}
.twl-process__step-text {
  font-size: 15px;
  color: var(--twl-text-muted);
  line-height: 1.6;
  margin: 0;
}

/* --- Before / After Slider --- */
.twl-ba {
  padding: var(--twl-space-section) 0;
  position: relative;
  z-index: 1;
  background-color: var(--twl-bg);
}
.twl-ba__wrapper {
  position: relative;
  overflow: hidden;
  border-radius: var(--twl-radius-lg);
  cursor: col-resize;
  max-width: 900px;
  margin: var(--twl-space-block) auto 0;
  aspect-ratio: 16 / 10;
  user-select: none;
  touch-action: none;
}
.twl-ba__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.twl-ba__img--after {
  clip-path: inset(0 0 0 50%);
}
.twl-ba__handle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 4px;
  background: var(--twl-accent);
  transform: translateX(-50%);
  z-index: 3;
  pointer-events: none;
}
.twl-ba__handle::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--twl-accent);
  box-shadow: 0 2px 12px rgba(0,0,0,0.4);
}
.twl-ba__handle::after {
  content: '⟨ ⟩';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  z-index: 1;
  letter-spacing: 8px;
}
.twl-ba__label {
  position: absolute;
  bottom: 12px;
  padding: 4px 10px;
  background: rgba(0,0,0,0.7);
  border-radius: 100px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  z-index: 2;
  pointer-events: none;
}
.twl-ba__label--before { left: 10px; }
.twl-ba__label--after { right: 10px; }

/* --- FAQ (reuses twl-glass-accordion) --- */
.twl-faq .twl-glass-accordion__item {
  background: var(--twl-bg-card);
  border: 1px solid var(--twl-border);
  border-radius: var(--twl-radius);
  margin-bottom: 8px;
}
.twl-faq .twl-glass-accordion__trigger {
  padding: 20px 24px;
  font-size: 16px;
  font-weight: 600;
  color: var(--twl-text);
}
.twl-faq .twl-glass-accordion__panel {
  overflow: hidden;
  transition: height 320ms cubic-bezier(0.2,0.9,0.2,1);
}
.twl-faq .twl-glass-accordion__content {
  padding: 0 24px 20px;
  color: var(--twl-text-muted);
  font-size: 15px;
  line-height: 1.7;
}

/* --- CTA --- */
.twl-cta {
  background: linear-gradient(135deg, var(--twl-bg) 0%, #0a0a0a 100%);
  border-top: 1px solid var(--twl-border-accent);
  border-bottom: 1px solid var(--twl-border-accent);
  text-align: center;
  position: relative;
  z-index: 1;
}
.twl-cta__title {
  font-family: var(--twl-font-display);
  font-size: clamp(28px, 3.5vw, 44px);
  font-weight: 700;
  margin: 0 0 12px;
}
.twl-cta__subtitle {
  font-size: 17px;
  color: var(--twl-text-muted);
  margin: 0 0 36px;
}
.twl-cta__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
}
.twl-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 32px;
  border-radius: 100px;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: all var(--twl-transition);
  cursor: pointer;
  border: none;
}
.twl-btn--primary {
  background: var(--twl-accent);
  color: #fff;
}
.twl-btn--primary:hover {
  background: var(--twl-accent-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px var(--twl-accent-glow, rgba(255,106,0,0.3));
  color: #fff;
}
.twl-btn--outline {
  background: transparent;
  color: var(--twl-text);
  border: 1px solid var(--twl-border);
}
.twl-btn--outline:hover {
  border-color: var(--twl-accent);
  color: var(--twl-accent);
  transform: translateY(-2px);
}
.twl-btn--whatsapp {
  background: #25d366;
  color: #fff;
}
.twl-btn--whatsapp:hover {
  background: #20bd5a;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(37,211,102,0.3);
  color: #fff;
}

/* --- Testimonials --- */
.twl-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
}
.twl-testimonial {
  background: var(--twl-bg-card);
  border: 1px solid var(--twl-border);
  border-radius: var(--twl-radius-lg);
  padding: clamp(24px, 3vw, 36px);
}
.twl-testimonial__stars {
  color: var(--twl-accent);
  font-size: 16px;
  letter-spacing: 2px;
  margin-bottom: 16px;
}
.twl-testimonial__text {
  font-size: 15px;
  color: var(--twl-text-muted);
  line-height: 1.7;
  font-style: italic;
  margin: 0 0 16px;
}
.twl-testimonial__author {
  font-size: 14px;
  font-weight: 600;
  color: var(--twl-text);
}
.twl-testimonial__role {
  font-size: 13px;
  color: var(--twl-text-subtle);
}

/* --- Common Issues --- */
.twl-issues__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
}
.twl-issue-card {
  background: var(--twl-bg-card);
  border: 1px solid var(--twl-border);
  border-radius: var(--twl-radius-lg);
  padding: clamp(24px, 3vw, 36px);
  transition: border-color var(--twl-transition);
}
.twl-issue-card:hover {
  border-color: var(--twl-border-accent);
}
.twl-issue-card__icon {
  font-size: 28px;
  margin-bottom: 12px;
}
.twl-issue-card__title {
  font-family: var(--twl-font-display);
  font-size: 17px;
  font-weight: 600;
  margin: 0 0 8px;
}
.twl-issue-card__text {
  font-size: 14px;
  color: var(--twl-text-muted);
  line-height: 1.6;
  margin: 0;
}

/* --- B2B Cards --- */
.twl-b2b__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
}
.twl-b2b-card {
  background: var(--twl-bg-card);
  border: 1px solid var(--twl-border);
  border-radius: var(--twl-radius-lg);
  padding: clamp(32px, 4vw, 48px);
  text-align: center;
  transition: border-color var(--twl-transition), transform var(--twl-transition);
}
.twl-b2b-card:hover {
  border-color: var(--twl-border-accent);
  transform: translateY(-4px);
}
.twl-b2b-card--featured {
  border-color: var(--twl-accent);
  position: relative;
}
.twl-b2b-card--featured::before {
  content: 'Más Popular';
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--twl-accent);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 16px;
  border-radius: 100px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.twl-b2b-card__tier {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--twl-accent);
  font-weight: 600;
  margin-bottom: 8px;
}
.twl-b2b-card__title {
  font-family: var(--twl-font-display);
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 16px;
}
.twl-b2b-card__features {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  text-align: left;
}
.twl-b2b-card__features li {
  padding: 8px 0;
  border-bottom: 1px solid var(--twl-border);
  font-size: 14px;
  color: var(--twl-text-muted);
}
.twl-b2b-card__features li::before {
  content: '✓';
  color: var(--twl-accent);
  font-weight: 700;
  margin-right: 10px;
}

/* --- Brand Showcase --- */
.twl-brands__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(24px, 4vw, 48px);
  align-items: center;
}
.twl-brand {
  opacity: 0.5;
  transition: opacity var(--twl-transition);
  filter: grayscale(1) brightness(2);
}
.twl-brand:hover {
  opacity: 1;
  filter: grayscale(0) brightness(1);
}
.twl-brand img {
  height: 40px;
  width: auto;
  max-width: 120px;
  object-fit: contain;
}

/* --- Scroll Animations --- */
[data-twl-animate] {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.7s cubic-bezier(0.2,0.9,0.2,1), transform 0.7s cubic-bezier(0.2,0.9,0.2,1);
}
[data-twl-animate].is-visible {
  opacity: 1;
  transform: translateY(0) translateX(0) scale(1);
}
[data-twl-animate="scale"] {
  transform: scale(0.9);
}
[data-twl-animate="scale"].is-visible {
  transform: scale(1);
}
[data-twl-animate="slide-left"] {
  transform: translateX(-40px);
}
[data-twl-animate="slide-right"] {
  transform: translateX(40px);
}
[data-twl-animate="scale-up"] {
  transform: scale(0.85);
}

/* Stagger children */
[data-twl-stagger] > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s cubic-bezier(0.2,0.9,0.2,1), transform 0.6s cubic-bezier(0.2,0.9,0.2,1);
}
[data-twl-stagger].is-visible > *:nth-child(1) { transition-delay: 0ms; opacity: 1; transform: translateY(0); }
[data-twl-stagger].is-visible > *:nth-child(2) { transition-delay: 120ms; opacity: 1; transform: translateY(0); }
[data-twl-stagger].is-visible > *:nth-child(3) { transition-delay: 240ms; opacity: 1; transform: translateY(0); }
[data-twl-stagger].is-visible > *:nth-child(4) { transition-delay: 360ms; opacity: 1; transform: translateY(0); }
[data-twl-stagger].is-visible > *:nth-child(5) { transition-delay: 480ms; opacity: 1; transform: translateY(0); }
[data-twl-stagger].is-visible > *:nth-child(6) { transition-delay: 600ms; opacity: 1; transform: translateY(0); }

/* Facilities icon hover */
.twl-about__facilities .twl-feature-card__icon {
  transition: transform var(--twl-transition);
}
.twl-about__facilities .twl-feature-card:hover .twl-feature-card__icon {
  transform: rotate(12deg) scale(1.1);
}

/* --- Reduced Motion --- */
@media (prefers-reduced-motion: reduce) {
  .twl [data-twl-animate],
  .twl [data-twl-stagger] > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .twl-hero__title,
  .twl-hero__subtitle,
  .twl-hero__badge,
  .twl-hero__scroll {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    transition: none !important;
  }
  .twl-hero__scroll-line {
    animation: none !important;
  }
  .twl-proof__value {
    animation: none !important;
  }
  .twl-hero__bg {
    transform: none !important;
    filter: none !important;
  }
  .twl-hero {
    position: relative !important;
  }
}

/* --- Responsive --- */
@media (max-width: 768px) {
  .twl-hero {
    position: relative;
    min-height: 70vh;
    padding: clamp(80px, 12vh, 120px) 0 clamp(40px, 8vh, 80px);
  }
  .twl-features__grid {
    grid-template-columns: 1fr;
  }
  .twl-process__line { left: 20px; }
  .twl-process__step { padding-left: 60px; }
  .twl-process__step::before {
    width: 40px;
    height: 40px;
    font-size: 14px;
  }
  .twl-ba__wrapper {
    aspect-ratio: 4 / 3;
  }
  .twl-b2b__grid {
    grid-template-columns: 1fr;
  }
  .twl-cta__buttons {
    flex-direction: column;
    align-items: center;
  }
  .twl-btn {
    width: 100%;
    max-width: 320px;
    justify-content: center;
  }
}

@media (max-width: 480px) {
  .twl-hero {
    min-height: 60vh;
  }
  .twl-proof__grid {
    grid-template-columns: 1fr;
  }
  .twl-brand img {
    height: 28px;
  }
}

/* ==========================================================================
   FASE 1 — Color Themes por Página
   ========================================================================== */

.twl-service--torno-cnc {
  --twl-accent: #00b4d8;
  --twl-accent-hover: #0096c7;
  --twl-border-accent: rgba(0,180,216,0.25);
  --twl-accent-glow: rgba(0,180,216,0.3);
  --twl-accent-gradient: linear-gradient(135deg, #00b4d8, #0077b6);
  --twl-hero-bg: linear-gradient(135deg, #0a0a0a 0%, #0d0d0d 50%, #0a0a0a 100%);
}
.twl-service--powder-coating {
  --twl-accent: #e040fb;
  --twl-accent-hover: #c51ce6;
  --twl-border-accent: rgba(224,64,251,0.25);
  --twl-accent-glow: rgba(224,64,251,0.3);
  --twl-accent-gradient: linear-gradient(135deg, #e040fb, #9c27b0);
}
.twl-service--pulido {
  --twl-accent: #c0c0c0;
  --twl-accent-hover: #d4d4d4;
  --twl-border-accent: rgba(192,192,192,0.25);
  --twl-accent-glow: rgba(192,192,192,0.3);
  --twl-accent-gradient: linear-gradient(135deg, #c0c0c0, #808080);
}
.twl-service--reparacion {
  --twl-accent: #ff6d00;
  --twl-accent-hover: #ff8f00;
  --twl-border-accent: rgba(255,109,0,0.25);
  --twl-accent-glow: rgba(255,109,0,0.3);
  --twl-accent-gradient: linear-gradient(135deg, #ff6d00, #e65100);
}
.twl-service--balanceo {
  --twl-accent: #26a69a;
  --twl-accent-hover: #4db6ac;
  --twl-border-accent: rgba(38,166,154,0.25);
  --twl-accent-glow: rgba(38,166,154,0.3);
  --twl-accent-gradient: linear-gradient(135deg, #26a69a, #00897b);
}
.twl-service--cubiertas {
  --twl-accent: #ffd600;
  --twl-accent-hover: #ffea00;
  --twl-border-accent: rgba(255,214,0,0.25);
  --twl-accent-glow: rgba(255,214,0,0.3);
  --twl-accent-gradient: linear-gradient(135deg, #ffd600, #f9a825);
}
.twl-service--venta {
  --twl-accent: #cda349;
  --twl-accent-hover: #d4b05c;
  --twl-border-accent: rgba(205,163,73,0.25);
  --twl-accent-glow: rgba(205,163,73,0.3);
  --twl-accent-gradient: linear-gradient(135deg, #cda349, #a67c00);
}
.twl-about {
  --twl-accent: #ff6a00;
  --twl-accent-hover: #ff8533;
  --twl-border-accent: rgba(255,106,0,0.25);
  --twl-accent-glow: rgba(255,106,0,0.3);
  --twl-accent-gradient: linear-gradient(135deg, #ff6a00, #e55b00);
}
.twl-b2b-page {
  --twl-accent: #1565c0;
  --twl-accent-hover: #1976d2;
  --twl-border-accent: rgba(21,101,192,0.25);
  --twl-accent-glow: rgba(21,101,192,0.3);
  --twl-accent-gradient: linear-gradient(135deg, #1565c0, #0d47a1);
}

/* ==========================================================================
   FASE 2 — Hero Overlays por Página
   ========================================================================== */

/* CNC: circuit grid */
.twl-service--torno-cnc .twl-hero__bg::after {
  background-image:
    linear-gradient(rgba(0,180,216,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,180,216,0.05) 1px, transparent 1px);
  background-size: 40px 40px;
}
/* Powder: diagonal stripes */
.twl-service--powder-coating .twl-hero__bg::after {
  background-image: repeating-linear-gradient(
    45deg, transparent, transparent 20px, rgba(224,64,251,0.04) 20px, rgba(224,64,251,0.04) 21px
  );
  background-size: auto;
}
/* Pulido: radial shimmer */
.twl-service--pulido .twl-hero__bg::after {
  background-image: radial-gradient(ellipse at 50% 50%, rgba(192,192,192,0.08) 0%, transparent 70%);
  background-size: 100% 100%;
}
/* Reparación: dot pattern */
.twl-service--reparacion .twl-hero__bg::after {
  background-image: radial-gradient(circle, rgba(255,109,0,0.06) 1px, transparent 1px);
  background-size: 24px 24px;
}
/* Balanceo: concentric circles */
.twl-service--balanceo .twl-hero__bg::after {
  background-image:
    radial-gradient(circle at 50% 50%, transparent 100px, rgba(38,166,154,0.03) 101px, transparent 102px),
    radial-gradient(circle at 50% 50%, transparent 200px, rgba(38,166,154,0.03) 201px, transparent 202px),
    radial-gradient(circle at 50% 50%, transparent 300px, rgba(38,166,154,0.03) 301px, transparent 302px);
  background-size: 100% 100%;
}
/* Venta: inverted diagonal stripes + warm overlay */
.twl-service--venta .twl-hero__bg::after {
  background-image: repeating-linear-gradient(
    -45deg, transparent, transparent 30px, rgba(205,163,73,0.04) 30px, rgba(205,163,73,0.04) 31px
  );
  background-size: auto;
}
.twl-service--venta .twl-hero__overlay {
  background: linear-gradient(180deg,
    rgba(10,10,10,0.45) 0%,
    rgba(15,12,5,0.2) 40%,
    rgba(10,10,10,0.65) 100%
  );
}
/* B2B: corporate grid */
.twl-b2b-page .twl-hero__bg::after {
  background-image:
    linear-gradient(rgba(21,101,192,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(21,101,192,0.04) 1px, transparent 1px);
  background-size: 80px 80px;
}

/* Badge variants */
.twl-service--pulido .twl-hero__badge {
  backdrop-filter: blur(8px);
  background: rgba(192,192,192,0.08);
}
.twl-service--venta .twl-hero__badge {
  border-width: 2px;
}
.twl-b2b-page .twl-hero__badge {
  border-radius: var(--twl-radius);
}

/* ==========================================================================
   FASE 3 — Section Dividers & Backgrounds
   ========================================================================== */

/* Diagonal divider for CNC & Reparación */
.twl-service--torno-cnc .twl-features::before,
.twl-service--reparacion .twl-features::before {
  content: '';
  position: absolute;
  top: -48px;
  left: 0;
  right: 0;
  height: 48px;
  background: var(--twl-bg);
  clip-path: polygon(0 100%, 100% 0, 100% 100%);
  z-index: 2;
}
.twl-service--torno-cnc .twl-features,
.twl-service--reparacion .twl-features {
  position: relative;
}

/* Wave divider for Powder & Pulido */
.twl-service--powder-coating .twl-process::before,
.twl-service--pulido .twl-process::before {
  content: '';
  position: absolute;
  top: -40px;
  left: 0;
  right: 0;
  height: 40px;
  background: var(--twl-bg);
  clip-path: ellipse(55% 100% at 50% 100%);
  z-index: 2;
}
.twl-service--powder-coating .twl-process,
.twl-service--pulido .twl-process {
  position: relative;
}

/* Chevron divider for Cubiertas */
.twl-service--cubiertas .twl-process::before {
  content: '';
  position: absolute;
  top: -32px;
  left: 0;
  right: 0;
  height: 32px;
  background: var(--twl-bg);
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  z-index: 2;
}
.twl-service--cubiertas .twl-process {
  position: relative;
}

/* Background patterns */
.twl-service--torno-cnc .twl-features {
  background-image: radial-gradient(circle, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 24px 24px;
}
.twl-service--powder-coating .twl-features {
  background-image: linear-gradient(135deg, rgba(224,64,251,0.03) 0%, transparent 50%, rgba(224,64,251,0.02) 100%);
}
.twl-service--pulido .twl-features {
  background-image: radial-gradient(ellipse at 30% 50%, rgba(192,192,192,0.06) 0%, transparent 60%);
}
.twl-service--venta .twl-features {
  background-image: linear-gradient(135deg, rgba(205,163,73,0.03) 0%, transparent 50%, rgba(205,163,73,0.02) 100%);
}
.twl-b2b-page .twl-features-grid-section {
  background-image: linear-gradient(180deg, rgba(21,101,192,0.04) 0%, transparent 100%);
}

/* ==========================================================================
   FASE 4 — Card Hover Effects Mejorados
   ========================================================================== */

/* Feature cards: accent gradient bar on hover */
.twl-feature-card {
  position: relative;
  overflow: hidden;
}
.twl-feature-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--twl-accent-gradient, var(--twl-accent));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--twl-transition);
}
.twl-feature-card:hover::before {
  transform: scaleX(1);
}
.twl-feature-card:hover {
  box-shadow: 0 8px 32px var(--twl-accent-glow, rgba(255,106,0,0.15));
}

/* Testimonial: accent left border on hover */
.twl-testimonial {
  transition: border-color var(--twl-transition), border-left-color var(--twl-transition);
}
.twl-testimonial:hover {
  border-left-color: var(--twl-accent);
  border-left-width: 3px;
}

/* Issue cards: subtle glow on hover */
.twl-issue-card:hover {
  box-shadow: 0 4px 20px var(--twl-accent-glow, rgba(255,106,0,0.12));
}

/* ==========================================================================
   FASE 5 — Floating Accent Shapes
   ========================================================================== */

.twl-features,
.twl-testimonials {
  position: relative;
  overflow: clip;
}
.twl-features::after,
.twl-testimonials::after {
  content: '';
  position: absolute;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--twl-accent-glow, rgba(255,106,0,0.08)) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.twl-features::after {
  top: -100px;
  right: -100px;
}
.twl-testimonials::after {
  bottom: -120px;
  left: -80px;
}

@media (max-width: 768px) {
  .twl-features::after,
  .twl-testimonials::after {
    display: none;
  }
}

/* ==========================================================================
   FASE 6 — Grid Layout Variations por Página
   ========================================================================== */

/* CNC: 2 columns */
.twl-service--torno-cnc .twl-features__grid {
  grid-template-columns: repeat(2, 1fr);
}
/* Powder: 3 cols, first card spans 2 */
.twl-service--powder-coating .twl-features__grid {
  grid-template-columns: repeat(3, 1fr);
}
.twl-service--powder-coating .twl-features__grid > :first-child {
  grid-column: span 2;
}
/* Pulido: 3 cols, cards 1 & 4 span 2 */
.twl-service--pulido .twl-features__grid {
  grid-template-columns: repeat(3, 1fr);
}
.twl-service--pulido .twl-features__grid > :nth-child(1),
.twl-service--pulido .twl-features__grid > :nth-child(4) {
  grid-column: span 2;
}
/* Reparación: 3 cols masonry-like */
.twl-service--reparacion .twl-features__grid {
  grid-template-columns: repeat(3, 1fr);
  align-items: start;
}
/* Balanceo: 3 clean cols */
.twl-service--balanceo .twl-features__grid {
  grid-template-columns: repeat(3, 1fr);
}
/* Cubiertas: 2 cols wider gap */
.twl-service--cubiertas .twl-features__grid {
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
}
/* Venta: 3 cols centered */
.twl-service--venta .twl-features__grid {
  grid-template-columns: repeat(3, 1fr);
  justify-items: center;
}
/* B2B: 3 cols corporate */
.twl-b2b-page .twl-features__grid {
  grid-template-columns: repeat(3, 1fr);
}

/* Mobile: all collapse to 1 col, reset spans */
@media (max-width: 768px) {
  .twl-service--torno-cnc .twl-features__grid,
  .twl-service--powder-coating .twl-features__grid,
  .twl-service--pulido .twl-features__grid,
  .twl-service--reparacion .twl-features__grid,
  .twl-service--balanceo .twl-features__grid,
  .twl-service--cubiertas .twl-features__grid,
  .twl-service--venta .twl-features__grid,
  .twl-b2b-page .twl-features__grid {
    grid-template-columns: 1fr;
  }
  .twl-service--powder-coating .twl-features__grid > :first-child,
  .twl-service--pulido .twl-features__grid > :nth-child(1),
  .twl-service--pulido .twl-features__grid > :nth-child(4) {
    grid-column: span 1;
  }
}

/* ==========================================================================
   FASE 8 — About Page Único
   ========================================================================== */

/* Story timeline */
.twl-about__story-content {
  max-width: 800px;
  margin: 0 auto;
  text-align: left;
  position: relative;
  padding-left: 32px;
  border-left: 2px solid var(--twl-accent);
}
.twl-about__story-content::before,
.twl-about__story-content::after {
  content: '';
  position: absolute;
  left: -5px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--twl-accent);
}
.twl-about__story-content::before { top: 0; }
.twl-about__story-content::after { bottom: 0; }
.twl-about__story-content p {
  font-size: clamp(16px, 1.8vw, 19px);
  color: var(--twl-text-muted);
  line-height: 1.8;
  margin-bottom: 24px;
}
.twl-about__story-content p:last-child {
  margin-bottom: 0;
}

/* Facilities: 4 cols desktop, 2 tablet */
.twl-about__facilities .twl-features__grid {
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 1100px) {
  .twl-about__facilities .twl-features__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  .twl-about__facilities .twl-features__grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   FASE 9 — B2B Page Mejorado
   ========================================================================== */

.twl-b2b-page .twl-b2b-card {
  background: linear-gradient(180deg, var(--twl-bg-card) 0%, rgba(21,101,192,0.04) 100%);
}
.twl-b2b-page .twl-b2b-card--featured {
  box-shadow: 0 0 40px rgba(21,101,192,0.15);
}
.twl-b2b-page .twl-cta {
  background: linear-gradient(135deg, #0a0a14 0%, #0d1b2a 50%, #0a0a14 100%);
}

/* ==========================================================================
   FASE 10 — Progress Line (CSS part)
   ========================================================================== */

.twl-process__line {
  background: linear-gradient(180deg, var(--twl-accent), var(--twl-border) 80%, transparent);
  position: relative;
}
.twl-process__line::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(var(--progress, 0) * 100%);
  background: var(--twl-accent-gradient, var(--twl-accent));
  transition: height 0.1s linear;
}

/* ==========================================================================
   FASE 11 — Icon Strip
   ========================================================================== */

.twl-icon-strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(24px, 4vw, 48px);
  padding: clamp(32px, 5vw, 56px) 0;
}
.twl-icon-strip__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-width: 80px;
}
.twl-icon-strip__icon {
  font-size: 32px;
}
.twl-icon-strip__label {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--twl-text-muted);
  text-align: center;
}

/* Cubiertas yellow text needs dark contrast on buttons */
.twl-service--cubiertas .twl-btn--primary {
  color: #0a0a0a;
}
.twl-service--cubiertas .twl-btn--primary:hover {
  color: #0a0a0a;
}

/* ==========================================================================
   Image Showcase Sections
   ========================================================================== */

/* Full-width image */
.twl-showcase--full {
  padding: 0;
  position: relative;
  z-index: 1;
}
.twl-showcase__img-wrap {
  width: 100%;
  overflow: hidden;
  max-height: 70vh;
}
.twl-showcase__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.twl-showcase__overlay-text {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: clamp(40px, 6vw, 80px) clamp(20px, 4vw, 40px);
  background: linear-gradient(0deg, rgba(10,10,10,0.85) 0%, transparent 100%);
}
.twl-showcase__title {
  font-family: var(--twl-font-display);
  font-size: clamp(28px, 3.5vw, 48px);
  font-weight: 700;
  margin: 0 0 8px;
  color: var(--twl-text);
}
.twl-showcase__subtitle {
  font-size: clamp(16px, 1.8vw, 20px);
  color: var(--twl-text-muted);
  margin: 0;
}

/* Split layout (image + text side by side) */
.twl-showcase__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 64px);
  align-items: center;
}
.twl-showcase--reverse .twl-showcase__grid {
  direction: rtl;
}
.twl-showcase--reverse .twl-showcase__grid > * {
  direction: ltr;
}
.twl-showcase__media {
  border-radius: var(--twl-radius-lg);
  overflow: hidden;
}
.twl-showcase__media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--twl-radius-lg);
}
.twl-showcase__content {
  padding: clamp(16px, 2vw, 32px) 0;
}
.twl-showcase__text {
  font-size: clamp(16px, 1.6vw, 18px);
  color: var(--twl-text-muted);
  line-height: 1.7;
  margin: 16px 0 0;
}

/* Gallery grid */
.twl-showcase__gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}
.twl-showcase__gallery-item {
  position: relative;
  border-radius: var(--twl-radius-lg);
  overflow: hidden;
  aspect-ratio: 4 / 3;
}
.twl-showcase__gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.2,0.9,0.2,1);
}
.twl-showcase__gallery-item:hover img {
  transform: scale(1.05);
}
.twl-showcase__caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 12px 16px;
  background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, transparent 100%);
  font-size: 13px;
  font-weight: 600;
  color: var(--twl-text);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

@media (max-width: 768px) {
  .twl-showcase__grid {
    grid-template-columns: 1fr;
  }
  .twl-showcase--reverse .twl-showcase__grid {
    direction: ltr;
  }
  .twl-showcase__gallery {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   GSAP Scroll Engine Overrides
   ========================================================================== */

.twl-gsap-active [data-twl-animate] {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
.twl-gsap-active [data-twl-stagger] > * {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
.twl-gsap-active .twl-hero__badge,
.twl-gsap-active .twl-hero__subtitle,
.twl-gsap-active .twl-hero__scroll,
.twl-gsap-active .twl-hero__title {
  opacity: 1 !important;
  transform: none !important;
  clip-path: none !important;
  transition: none !important;
}
/* Hero keeps position:sticky for scroll-over effect */

/* Card 3D */
.twl-gsap-active .twl-feature-card {
  transform-style: preserve-3d;
  backface-visibility: hidden;
}

/* CTA reveal */
.twl-gsap-active .twl-cta {
  will-change: clip-path;
}

/* Testimonials horizontal */
.twl-gsap-active .twl-testimonials {
  overflow: hidden;
}

/* Lenis */
html.lenis,
html.lenis body {
  height: auto;
}
.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

/* Pin spacer transparent */
.twl .pin-spacer {
  background: transparent !important;
}

/* Mobile: revert horizontal scroll */
@media (max-width: 768px) {
  .twl-gsap-active .twl-testimonials__grid {
    display: grid !important;
    width: auto !important;
  }
  .twl-gsap-active .twl-testimonial {
    min-width: 0 !important;
    max-width: none !important;
  }
}

/* G1 — Global footer location top padding */
.twl-ff-location-header { padding-top: 70px !important; }

/* 5a — Pulido: reduce proof section top padding */
.twl-service--pulido .twl-proof { padding-top: clamp(24px, 3vw, 40px); }

/* 5b — Features grid: dot pattern on dark bg + white card titles */
.twl-features { position: relative; }
.twl-features::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
  z-index: 0;
}
.twl-features > * { position: relative; z-index: 1; }
.twl-feature-card__title { color: #fff !important; }

/* 5c — Process section: dot pattern on alt bg */
.twl-process { position: relative; }
.twl-process::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
  z-index: 0;
}
.twl-process > * { position: relative; z-index: 1; }

/* Reduced motion: GSAP override */
@media (prefers-reduced-motion: reduce) {
  .twl-gsap-active [data-twl-animate],
  .twl-gsap-active [data-twl-stagger] > * {
    opacity: 1 !important;
    transform: none !important;
  }
  .twl-gsap-active .twl-cta {
    clip-path: none !important;
  }
}

/* ==========================================================================
   FAQ estilo claro — unificado para todas las service pages TWL
   ========================================================================== */
.twl .twl-faq {
  background: #fafaf8;
  color: #1a1a1a;
  position: relative;
  z-index: 5;
}
.twl .twl-faq::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('../img/fondo.jpg');
  background-repeat: repeat;
  background-size: auto;
  opacity: 0.15;
  pointer-events: none;
  z-index: 0;
}
.twl .twl-faq > * {
  position: relative;
  z-index: 1;
}
.twl .twl-faq .twl-section__title {
  color: #1a1a1a !important;
}
.twl .twl-faq .twl-section__kicker {
  color: var(--twl-accent);
}
.twl .twl-faq .twl-glass-accordion__item {
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  border-radius: 0;
  margin-bottom: 0;
}
.twl .twl-faq .twl-glass-accordion__trigger {
  color: #1a1a1a;
  font-weight: 500;
  font-size: clamp(0.95rem, 1.4vw, 1.1rem);
  padding: 1.25rem 0;
}
.twl .twl-faq .twl-glass-accordion__content {
  color: #666;
  font-size: clamp(0.85rem, 1.2vw, 0.95rem);
  line-height: 1.7;
}

/* Fix 4 — Proceso title centrado */
.twl-process .twl-section__header {
  text-align: center;
}

/* Fix 5+6 — Cards precisión fondo claro (torno-cnc) */
.twl-service--torno-cnc .twl-feature-card {
  background: #f5f5f5;
  border: 1px solid #e0e0e0;
}
.twl-service--torno-cnc .twl-feature-card:hover {
  background: #ececec;
  border-color: rgba(0,180,216,0.3);
}
.twl-service--torno-cnc .twl-feature-card__title {
  color: #1a1a1a;
}
.twl-service--torno-cnc .twl-feature-card__text {
  color: #555;
}
