/* Home page styles */

@media (min-width: 861px){
  #page-home{
    padding-top:0;
  }
  #page-home .hero-left{
    margin-top:80px;
  }
  #page-home .hero-visual{
    top:41px;
  }
}

.hero{
  position:relative;
  min-height:max(640px,min(120vh,820px));
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
  padding: 210px 0 100px;
  border-bottom:1px solid rgba(0,0,0,0.03);
  background:#ffffff;
}
.hero::before{
  content:'';
  position:absolute;
  top:22.5%;right:20%;bottom:22.5%;left:20%;
  border-radius:10%;
  background:radial-gradient(ellipse 100% 100%,
    rgba(119, 183, 252, 0.26) 0%,
    rgba(255, 255, 255, 0.09) 42%,
    transparent 90%);
  filter:blur(100px);
  transform-origin:center center;
  animation:pearlOrbit1 30s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}
.hero::after{
  content:'';
  position:absolute;
  top:25%;right:22%;bottom:25%;left:22%;
  border-radius:10%;
  background:radial-gradient(ellipse 100% 100%,
    rgba(213, 128, 242, 0.24) 0%,
    rgba(255, 255, 255, 0.08) 42%,
    transparent 90%);
  filter:blur(100px);
  transform-origin:center center;
  animation:pearlOrbit2 30s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}
.hero .container{
  position:relative;
  z-index:2;
  padding-top:30px;
}
.hero-ghost{
  display:none;
  animation:pulse 8s ease-in-out infinite;
}
.hero-left{
  padding:0;
}
.hero-right{display:none}
.hero-overline{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:28px;
  color:rgba(28,30,42,0.50);
  font-family:var(--mono);
  font-size:0.68rem;
  letter-spacing:0.16em;
}
.hero-overline-dot{display:none}
.hero-title{
  max-width:30ch;
  margin-bottom:28px;
  color:var(--text);
  text-shadow:0 2px 16px rgba(200,210,255,0.18);
  font-family:var(--serif);
  font-size:clamp(2rem,4.6vw,4.3rem);
  font-weight:650;
  line-height:1.01;
  letter-spacing:-0.03em;
}
.hero-title em{
  display:block;
  font-size:calc(0.45em + 1.3ch);
  color: var(--accent);
  font-style:italic;
  font-weight:400;
  transform: scaleX(1.05);
transform-origin: left;
}
.hero-bottom{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,0.95fr);
  gap:0;
  margin-top:30px;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  overflow:hidden;
}
.hero-bottom-left{
  padding:34px 36px;
  border-right:1px solid rgba(0,0,0,0.03);
}
.hero-bottom-right{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:34px 36px;
  background:linear-gradient(180deg, rgba(255,255,255,0.30) 0%, rgba(240,243,255,0.20) 100%);
}
.hero-desc{
  max-width:55ch;
  margin-bottom:24px;
  color:rgba(28,30,42,0.72);
  font-size:1rem;
  font-weight:300;
  line-height:1.82;
}
.hero-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.hero-stats-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.hero-stat-item{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:116px;
  margin:0;
  padding:18px 16px;
}
.hero-stat-item .sv{
  margin-bottom:10px;
  color:var(--accent);
  opacity:0.75;
  font-family:var(--serif);
  font-size:2rem;
  font-weight:700;
  line-height:1;
  letter-spacing:-0.04em;
}
.hero-stat-item .sl{
  color:var(--muted);
  font-family:var(--mono);
  font-size:  0.66rem;
  font-weight:300;
  line-height:1.5;
  letter-spacing:0.05em;
  text-transform:uppercase;
}

/* HERO VISUAL — ilustración flotante */

.hero-visual {
  position: absolute;
  top: -20px;
  right: auto;
  left: calc(50% + 30px);
  width: clamp(290px, 43.75vw, 610px);
  pointer-events: none;
  z-index: 1;
  opacity: 0.69;
  filter: drop-shadow(0 50px 120px rgba(0, 0, 0, 0.1));
  animation: heroFloat 9s ease-in-out infinite;
}

.hero-visual img {
  width: 100%;
  height: auto;
  display: block;

  /* sombra interna más ligera */
  filter: drop-shadow(0 25px 50px rgba(0, 0, 0, 0.06));

  /* integración con fondo */
}


@keyframes heroFloat {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-12px);
  }
}


/* RESPONSIVE */
@media (max-width: 1024px) {
  .hero-visual {
    top: 40px;
    opacity: 0.4;
  }
}

@media (max-width: 768px) {
  /* hero-visual handled at 860px */
}

/* Legacy hero right content kept hidden */
.hero-right-top{display:none}
.symptom-table{display:flex;flex-direction:column;gap:0}
.symptom-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:center;
  padding:14px 0;
  border-bottom:1px solid var(--line);
  cursor:default;
  transition:background var(--tr);
}
.symptom-row:hover{
  margin:0 -16px;
  padding:20px 16px;
  border-bottom-color:transparent;
  border-radius:6px;
  background:var(--bg2);
}
.symptom-main{
  color:var(--text2);
  font-size:0.92rem;
  font-weight:300;
  line-height:1.4;
}
.symptom-sub{
  margin-top:3px;
  color:var(--muted);
  font-size:0.78rem;
  font-weight:300;
}
.symptom-status{
  padding:3px 8px;
  border-radius:3px;
  white-space:nowrap;
  background:var(--line2);
  color:var(--accent);
  font-family:var(--mono);
  font-size:0.65rem;
  letter-spacing:0.06em;
}
.hero-right-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  margin-top:32px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--line);
}
.hero-stat{
  padding:20px 18px;
  text-align:center;
  background:var(--bg2);
}
.hero-stat .sv{
  margin-bottom:5px;
  color:var(--accent);
  font-family:var(--serif);
  font-size:1.8rem;
  font-weight:700;
  line-height:1;
  letter-spacing:-0.04em;
}
.hero-stat .sl{
  color:var(--muted);
  font-family:var(--mono);
  font-size:0.7rem;
  font-weight:300;
  line-height:1.3;
}

.solutions-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  background:transparent;
  border:none;
  margin-top:0;
}
.solution-card{
  padding:24px;
  cursor:pointer;
  transition:border-color var(--tr), box-shadow var(--tr);
  position:relative;
  overflow:hidden;
}
.solution-card::before{
  content:'';
  position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--accent);
  transform:scaleX(0);
  transition:transform var(--tr);
  transform-origin:left;
}
.solution-card:hover::before{transform:scaleX(1)}
.solution-num{
  font-family:var(--mono);
  font-size:0.65rem;color:var(--muted);
  letter-spacing:0.1em;margin-bottom:20px;
}
.solution-name{
  font-family:var(--serif);
  font-size:1.15rem;line-height:1.2;
  margin-bottom:10px;letter-spacing:-0.01em;font-weight:700;
}
.solution-tagline{font-size:0.85rem;font-weight:300;color:var(--muted);line-height:1.6}
.solution-arrow{
  margin-top:24px;font-family:var(--mono);
  font-size:0.72rem;color:var(--accent);
  letter-spacing:0.06em;
}

/* ─── HOME · Compact solutions index (teaser) ─── */
.home-solutions-section{
  padding:72px 0 84px;
}
.home-solutions-section .section-header .section-body{
  max-width:none;
}
.home-solutions-shell{
  position:relative;
  padding:0;
  border-radius:calc(var(--r) + 8px);
  background:#ffffff;
  border:1px solid rgba(255,255,255,0.90);
  box-shadow:0 1px 4px var(--shadow-soft);
  overflow:hidden;
}
.home-solutions-shell__main{
  display:block;
}

/* ── Row of 5 compact items ── */
.home-solutions-row{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:0;
  border-radius:0;
  background:rgba(250,249,255,0.30);
  border:none;
  overflow:hidden;
}
.home-solution-item{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
  padding:32px 24px 34px;
  border-right:1px solid rgba(140,155,210,.12);
  color:var(--text);
  text-decoration:none;
  transition:background var(--tr), color var(--tr);
  position:relative;
}
.home-solution-item:last-child{border-right:none;}
.home-solution-item:hover{
  background:rgba(255,255,255,.62);
}
.home-solution-item:hover .home-solution-item__title{color:var(--accent);}
.home-solution-item:hover .home-solution-item__icon{
  border-color:rgba(120,145,215,.36);
  background:
    radial-gradient(circle at 38% 22%, rgba(255,255,255,1) 0%, rgba(245,250,255,.92) 52%, rgba(232,240,255,.82) 100%);
  box-shadow:
    0 6px 16px rgba(90,105,170,.16),
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -6px 12px rgba(160,185,240,.22);
}
.home-solution-item__num{
  display:none;
}
.home-solution-item__icon{
  width:52px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:
    radial-gradient(circle at 38% 22%, rgba(255,255,255,.96) 0%, rgba(245,248,255,.84) 52%, rgba(225,235,255,.70) 100%);
  border:1px solid rgba(180,195,235,.28);
  color:var(--accent);
  box-shadow:
    0 4px 12px rgba(90,105,170,.10),
    inset 0 1px 0 rgba(255,255,255,.98),
    inset 0 -4px 8px rgba(180,200,240,.14);
  transition:background var(--tr), border-color var(--tr), box-shadow var(--tr);
}
.home-solution-item__icon svg{
  width:24px;
  height:24px;
}
.home-solution-item__body{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.home-solution-item__title{
  font-family:var(--serif);
  font-size:1.04rem;
  font-weight:700;
  line-height:1.2;
  letter-spacing:-0.01em;
  color:var(--text);
  transition:color var(--tr);
}
.home-solution-item__copy{
  font-size:0.82rem;
  font-weight:300;
  line-height:1.5;
  color:var(--muted);
}

/* ── Helper CTA (accent border, compact) ── */
.home-solutions-helper{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-top:16px;
  padding:22px 26px;
  border-radius:var(--r);
  background:linear-gradient(180deg, rgba(61,79,168,.055) 0%, rgba(255,255,255,.60) 100%);
  border:1px solid rgba(61,79,168,.18);
  color:var(--text);
  text-decoration:none;
  transition:background var(--tr), border-color var(--tr), transform var(--tr);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.90), 0 2px 12px rgba(61,79,168,0.05);
}
.home-solutions-helper:hover{
  background:linear-gradient(180deg, rgba(61,79,168,.09) 0%, rgba(255,255,255,.68) 100%);
  border-color:rgba(61,79,168,.30);
  transform:translateY(-1px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.90), 0 4px 16px rgba(61,79,168,0.08);
}
.home-solutions-helper__text{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.home-solutions-helper__title{
  font-family:var(--serif);
  font-size:1.05rem;
  font-weight:700;
  letter-spacing:-0.01em;
  color:var(--text);
}
.home-solutions-helper__copy{
  font-size:0.84rem;
  font-weight:300;
  color:var(--text2);
  line-height:1.5;
}
.home-solutions-helper__cta{
  font-family:var(--sans);
  font-size:0.87rem;
  font-weight:400;
  letter-spacing:0.01em;
  color:var(--accent);
  white-space:nowrap;
  flex-shrink:0;
  align-self:flex-end;
}

/* ── Focus state ── */
.home-solution-item:focus-visible,
.home-solutions-helper:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}

/* ── Responsive ── */
@media (max-width: 960px){
  .home-solutions-shell{padding:32px 24px 22px;}
  .home-solutions-row{
    grid-template-columns:repeat(2, 1fr);
  }
  .home-solution-item{
    border-right:1px solid rgba(140,155,210,.12);
    border-bottom:1px solid rgba(140,155,210,.12);
  }
  .home-solution-item:nth-child(2n){border-right:none;}
  .home-solution-item:nth-last-child(-n+1){border-bottom:none;}
  .home-solutions-helper{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    padding:18px 18px;
  }
  .home-solutions-helper__cta{align-self:flex-end;}
}
@media (max-width: 520px){
  .home-solutions-section{padding:56px 0 64px;}
  .home-solutions-shell{padding:26px 18px 18px;border-radius:var(--r);}
  .home-solutions-row{
    grid-template-columns:1fr;
  }
  .home-solution-item{
    flex-direction:row;
    align-items:center;
    gap:14px;
    padding:16px 14px;
    border-right:none;
    border-bottom:1px solid rgba(140,155,210,.12);
  }
  .home-solution-item:last-child{border-bottom:none;}
  .home-solution-item__num{
    align-self:flex-start;
    margin-top:4px;
  }
  .home-solution-item__icon{flex-shrink:0;}
}

/* ─── PORTFOLIO GRID (home) ─── */
.portfolio-grid-home{
  display:flex;
  flex-direction:column;
  gap:5px;
  background:transparent;
  border:none;
}
.portfolio-card-home{
  padding:36px 32px;
  cursor:pointer;
  transition:border-color var(--tr), box-shadow var(--tr);
}
.pcard-tag{
  font-family:var(--mono);
  font-size:0.65rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--accent);
  margin-bottom:20px;display:block;
}
.pcard-title{
  font-family:var(--serif);
  font-size:1.4rem;line-height:1.2;
  margin-bottom:10px;letter-spacing:-0.015em;font-weight:700;
}
.pcard-desc{font-size:0.88rem;font-weight:300;color:var(--text2);line-height:1.65}
.pcard-metrics{
  display:flex;gap:0;
  margin-top:28px;
  border-top:1px solid var(--line);
}
.pcard-metric{
  flex:1;padding:16px 0 0 16px;
  border-right:1px solid var(--line);
}
.pcard-metric:last-child{border-right:none;padding-left:16px}
.pcard-metric .val{
  font-family:var(--serif);
  font-size:1.6rem;color:var(--accent);
  line-height:1;letter-spacing:-0.03em;font-weight:700;
}
.pcard-metric .lbl{font-size:0.7rem;color:var(--muted);margin-top:4px;font-weight:300;font-family:var(--mono)}

/* ─── CTA BAND ─── */
.cta-band{
  background:
    radial-gradient(ellipse 70% 60% at 80% 50%, rgba(200,185,255,0.20) 0%, transparent 65%),
    radial-gradient(ellipse 50% 50% at 10% 50%, rgba(180,210,255,0.16) 0%, transparent 60%),
    rgba(230,225,255,0.35);
  border-top:1px solid rgba(160,150,220,0.14);
  border-bottom:1px solid rgba(160,150,220,0.14);
  padding:80px 0;
}
.cta-layout{
  display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;
}
.cta-left .section-title{font-size:clamp(1.8rem,3vw,2.6rem)}
.cta-left p{font-size:0.92rem;font-weight:300;color:var(--text2);line-height:1.75;margin-top:16px;max-width:65ch}

/* ─── FORM ─── */
.form-wrap{
  padding:36px;
  position:relative;
}
.form-wrap::before{
  content:'';
  position:absolute;top:-1px;left:32px;right:32px;height:1px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
}
/* Home responsive */
@media (max-width: 960px){
  .hero-bottom{
    grid-template-columns:1fr;
    margin-left:0;
    margin-right:0;
    width:100%;
  }
  .hero-bottom-left{
    padding:28px 22px;
    border-right:none;
    border-bottom:1px solid rgba(0,0,0,0.03);
  }
  .hero-bottom-right{padding:22px}
  .hero-stats-row{grid-template-columns:1fr}
  .hero-stat-item{min-height:auto}
  .solutions-grid,
  .portfolio-grid-home{grid-template-columns:1fr}
  .cta-layout{grid-template-columns:1fr}
}

@media (max-width: 860px){
  .hero .container{
    padding-top:14px;
  }
  .hero{
    min-height:auto;
    padding:128px 0 42px;
  }
  .hero-title{
    max-width:none;
    margin-bottom:22px;
  }
  .hero-bottom{
    margin-top:10px;
  }
  .hero-bottom-left{
    padding:18px 20px;
  }
  .hero-desc{
    font-size:0.88rem;
  }
  /* Illustration → background visible, right side */
  .hero-visual{
    top:40px;
    right:-5%;
    left:auto;
    bottom:auto;
    width:clamp(220px,58vw,310px);
    height:auto;
    opacity:0.18;
    filter:none;
  }
  .hero-visual img{
    width:100%;
    height:auto;
    object-fit:initial;
    filter:none;
  }
  /* "¿El mensaje conecta?" — una línea: quita scale y reduce font */
  .hero-title em{
    transform:none;
    font-size:clamp(1.55rem,6.5vw,calc(0.45em + 1.3ch));
  }
  /* "La mente detrás" → debajo del card */
  .hero-left{
    position:relative;
    padding-bottom:36px;
  }
  .hero-title-wrap{
    position:static;
  }
  .lm-trigger{
    top:auto;
    bottom:8px;
    left:20px;
    right:auto;
    z-index:2;
  }
  /* KPI stats → 3-col card style (matches pcard-metric) */
  .hero-stats-row{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }
  .hero-stat-item{
    min-height:80px;
    padding:12px 8px;
    align-items:center;
    justify-content:center;
    text-align:center;
    border:1px solid rgba(255,255,255,0.92);
    border-radius:12px;
    background:rgba(255,255,255,0.88);
    box-shadow:0 2px 12px rgba(80,80,160,0.06),inset 0 1px 0 rgba(255,255,255,1);
  }
  .hero-stat-item .sv{
    font-size:1.5rem;
    margin-bottom:4px;
  }
  .hero-stat-item .sl{
    font-size:0.60rem;
  }
  /* "Ver casos" → texto más fino, aire liberado va al top */
  .hero-actions .btn-ghost{
    font-size:0.78rem;
    padding:7px 14px;
    opacity:0.72;
  }
}

@media (max-width: 600px){
  .hero-left,
  .hero-right{
    padding-left:16px;
    padding-right:16px;
  }
  .form-wrap{padding:24px 20px}
  .hero-right-stats{grid-template-columns:1fr}
}

@media (min-width: 601px) and (max-width: 960px){
  .hero-stats-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hero-stat-item{min-height:116px}
}

@media (max-width: 380px){
  .hero-actions .btn-primary{
    padding-right:18px;
    padding-left:18px;
    white-space:nowrap;
  }
}

/* ─────────────────────────────────────────────
   HOME · CASE STUDIES GALLERY
───────────────────────────────────────────── */

.home-cs-section {
  overflow: clip;
}

.home-cs-gallery {
  position: relative;
  margin-top: 8px;
}

.home-cs-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 26px;
}

.home-cs-dates {
  display: flex;
  align-items: flex-end;
  gap: 18px;
  flex-wrap: wrap;
}

.home-cs-date {
  display: inline-flex;
  flex-direction: column;
  gap: 8px;
  min-width: 92px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(28, 30, 42, 0.42);
  cursor: pointer;
  transition: opacity var(--tr), color var(--tr), transform var(--tr);
}

.home-cs-date:hover {
  color: rgba(28, 30, 42, 0.72);
  transform: translateY(-1px);
}

.home-cs-date.is-active {
  color: rgba(28, 30, 42, 0.92);
}

.home-cs-date-line {
  width: 100%;
  height: 1.5px;
  border-radius: 999px;
  background: rgba(61, 79, 168, 0.14);
  transition: background var(--tr), transform var(--tr);
  transform-origin: left center;
}

.home-cs-date.is-active .home-cs-date-line {
  background: rgba(61, 79, 168, 0.72);
  transform: scaleX(1.02);
}

.home-cs-date-text {
  font-family: var(--mono);
  font-size: 0.76rem;
  letter-spacing: 0.08em;
}

.home-cs-controls {
  display: flex;
  align-items: center;
  gap: 10px;
}

.home-cs-arrow {
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255,255,255,0.90);
  border-radius: 999px;
  background: #ffffff;
  box-shadow: 0 1px 4px var(--shadow-soft);
  color: rgba(28, 30, 42, 0.74);
  cursor: pointer;
  transition:
    transform 0.25s ease,
    opacity 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease;
}

.home-cs-arrow:hover {
  transform: translateY(-1px);
  color: rgba(28, 30, 42, 0.96);
  border-color: rgba(255,255,255,0.98);
  box-shadow: 0 2px 8px var(--shadow-med);
}

.home-cs-stage {
  position: relative;
  min-height: 540px;
  isolation: isolate;
}

.home-cs-slide {
  position: absolute;
  top: 0;
  left: 50%;
  width: min(100%, 1040px);
  transform-origin: center center;
  transition:
    transform 0.72s cubic-bezier(.22,.78,.22,1),
    opacity 0.48s ease,
    filter 0.48s ease;
  will-change: transform, opacity, filter;
}

.home-cs-slide.is-active {
  z-index: 3;
  opacity: 1;
  filter: blur(0);
  transform: translateX(-50%) translateY(0) scale(1);
  pointer-events: auto;
}

.home-cs-slide.is-next {
  z-index: 2;
  opacity: 0.66;
  filter: blur(2px);
  transform: translateX(-50%) translateX(39%) translateY(54px) scale(0.84);
  pointer-events: auto;
}

.home-cs-slide.is-prev {
  z-index: 1;
  opacity: 0.22;
  filter: blur(6px);
  transform: translateX(-50%) translateX(-42%) translateY(72px) scale(0.78);
  pointer-events: none;
}

.home-cs-slide.is-hidden {
  z-index: 0;
  opacity: 0;
  filter: blur(10px);
  transform: translateX(-50%) translateY(90px) scale(0.72);
  pointer-events: none;
}

.home-cs-card {
  display: block;
  padding: 30px 32px 30px;
  border: 1px solid rgba(255,255,255,0.90);
  border-radius: 16px;
  background: #ffffff;
  backdrop-filter: none;
  box-shadow: 0 1px 4px var(--shadow-soft);
  transition: border-color var(--tr), box-shadow var(--tr), transform var(--tr);
}
a.home-cs-card:hover {
  border-color: rgba(255,255,255,0.98);
  box-shadow: 0 2px 8px var(--shadow-med);
  transform: translateY(-2px);
}
.home-cs-card .cs-open-hint {
  display: inline-block;
  margin-top: 16px;
  font-family: var(--mono);
  font-size: 0.70rem;
  letter-spacing: 0.06em;
  color: var(--accent);
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity var(--tr), transform var(--tr);
}
a.home-cs-card:hover .cs-open-hint {
  opacity: 1;
  transform: translateX(0);
}

.home-cs-card-meta {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 24px;
}
.home-cs-card-meta .pcard-tag {
  display: inline;
  margin-bottom: 0;
}
/* ── Home gallery — coming soon card ── */
.home-cs-card--coming {
  cursor: default;
  pointer-events: none;
}
.home-cs-card--coming .pcard-tag--muted {
  color: var(--muted);
}
.home-cs-card--coming .pcard-title--muted {
  color: rgba(28,30,42,0.45);
}
.home-cs-card--coming .pcard-desc {
  color: rgba(28,30,42,0.45);
}
.home-cs-card--coming .home-cs-card-body {
  align-items: stretch;
}
.home-cs-card--coming .home-cs-main {
  display: contents;
}
.home-cs-coming-panel {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 10px;
  padding: 28px 4px;
}
.home-cs-coming-label {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3.2vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--accent);
  opacity: 0.72;
  line-height: 1;
}
.home-cs-coming-sub {
  font-family: var(--mono);
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(28,30,42,0.26);
}

.home-cs-year {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.76rem;
  letter-spacing: 0.08em;
  text-align: right;
  max-width: 55%;
  line-height: 1.5;
}

.home-cs-card-body {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.88fr);
  grid-template-areas:
    "title title"
    "desc metrics";
  gap: 28px;
  align-items: start;
}

.home-cs-main {
  display: contents;
}

.home-cs-main .pcard-title {
  grid-area: title;
  max-width: none;
  width: 100%;
  font-size: clamp(2.5rem, 5.4vw, 4.35rem);
  line-height: 1;
  letter-spacing: -0.0em;
}

.home-cs-main .pcard-desc {
  max-width: 50ch;
  color: rgba(28,30,42,0.56);
  font-size: 0.98rem;
  line-height: 1.85;
}

.home-cs-card .pcard-metrics {
  grid-area: metrics;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 0;
  border-top: none;
  align-self: start;
}

.home-cs-coming-panel {
  grid-area: metrics;
}

.home-cs-card .pcard-metric {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 124px;
  padding: 0px 16px 15px;
  border: 1px solid rgba(255,255,255,0.92);
  border-radius: 12px;
  background: rgba(255,255,255,0.88);
  box-shadow: 0 2px 12px rgba(80,80,160,0.06), inset 0 1px 0 rgba(255,255,255,1);
  text-align: center;
}

.home-cs-card .pcard-metric .val {
  margin-bottom: 6px;
  color: rgba(28,30,42,0.92);
  font-family: var(--serif);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.04em;
}

.home-cs-card .pcard-metric .lbl {
  color: rgba(28,30,42,0.42);
  font-family: var(--mono);
  font-size: 0.65rem;
  line-height: 1.5;
  letter-spacing: 0.01em;
}

@media (max-width: 1180px) {
  .home-cs-stage {
    min-height: 510px;
  }

  .home-cs-slide.is-next {
    transform: translateX(-50%) translateX(32%) translateY(52px) scale(0.84);
  }

  .home-cs-slide.is-prev {
    transform: translateX(-50%) translateX(-34%) translateY(64px) scale(0.78);
  }

  .home-cs-main .pcard-title {
    max-width: none;
    font-size: clamp(2.2rem, 5vw, 3.8rem);
  }
}

@media (max-width: 980px) {
  .home-cs-topbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .home-cs-stage {
    min-height: 620px;
  }

  .home-cs-slide,
  .home-cs-slide.is-active,
  .home-cs-slide.is-next,
  .home-cs-slide.is-prev,
  .home-cs-slide.is-hidden {
    left: 0;
    width: 100%;
    transform: none;
  }

  .home-cs-slide.is-active {
    opacity: 1;
    filter: blur(0);
    z-index: 3;
    pointer-events: auto;
  }

  .home-cs-slide.is-next,
  .home-cs-slide.is-prev,
  .home-cs-slide.is-hidden {
    opacity: 0;
    filter: blur(10px);
    pointer-events: none;
  }

  .home-cs-card-body {
    grid-template-columns: 1fr;
    grid-template-areas:
      "title"
      "desc"
      "metrics";
    gap: 22px;
  }

  .home-cs-main .pcard-title {
    max-width: none;
  }
}

@media (max-width: 720px) {
  .home-cs-stage {
    min-height: 700px;
  }

  .home-cs-card {
    padding: 24px 20px 22px;
    border-radius: 24px;
  }

  .home-cs-card-meta {
    margin-bottom: 18px;
  }

  .home-cs-main .pcard-title {
    max-width: none;
    margin-bottom: 16px;
    font-size: clamp(2rem, 11vw, 3.1rem);
    line-height: 0.98;
  }

  .home-cs-main .pcard-desc {
    max-width: 100%;
    font-size: 0.95rem;
    line-height: 1.78;
  }

  .home-cs-card .pcard-metrics {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .home-cs-card .pcard-metric {
    min-height: unset;
  }

  .home-cs-dates {
    width: 100%;
    justify-content: space-between;
    gap: 10px;
  }

  .home-cs-date {
    min-width: 0;
    flex: 1 1 0;
  }

  .home-cs-controls {
    width: 100%;
    justify-content: flex-end;
  }
}

/* ── Gallery → swipe carousel on mobile ── */
@media (max-width: 860px){
  .home-cs-section{
    overflow:visible;
  }
  .home-cs-topbar{
    display:none;
  }
  .home-cs-gallery{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .home-cs-gallery::-webkit-scrollbar{display:none}
  .home-cs-stage{
    display:flex;
    flex-direction:row;
    min-height:auto;
    gap:12px;
    padding:0 16px 20px;
    width:max-content;
    isolation:auto;
  }
  /* All slide states → flat, visible, swipeable */
  .home-cs-slide,
  .home-cs-slide.is-active,
  .home-cs-slide.is-next,
  .home-cs-slide.is-prev,
  .home-cs-slide.is-hidden{
    position:relative;
    left:auto;
    width:84vw;
    flex:0 0 84vw;
    transform:none;
    opacity:1;
    filter:none;
    pointer-events:auto;
    scroll-snap-align:start;
    z-index:auto;
  }
}

/* ─────────────────────────────────────────────
   LA MENTE — trigger + panel
───────────────────────────────────────────── */
.hero { position: relative; }

/* Title + trigger wrapper */
.hero-title-wrap {
  position: relative;
}

/* Trigger tab */
.lm-trigger {
  position: absolute;
  bottom: 6px;
  right: 4ch;
  font-family: var(--serif);
  font-style: italic;
  font-size: 0.88rem;
  font-weight: 400;
  color: var(--text2);
  letter-spacing: -0.01em;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  opacity: 0.45;
  transition: opacity 0.18s ease;
}

.lm-trigger:hover { opacity: 1; }

.lm-trigger:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 3px;
}

/* Backdrop */
.lm-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(16,18,32,0.32);
  z-index: 200;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.28s ease;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.lm-backdrop.is-open {
  opacity: 1;
  pointer-events: all;
}

/* Panel */
.lm-panel {
  position: fixed;
  top: 0;
  right: 0;
  width: min(420px, 100vw);
  height: 100dvh;
  background: #f8f9fe;
  z-index: 210;
  overflow-y: auto;
  overscroll-behavior: contain;
  transform: translateX(100%);
  transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow: -6px 0 48px rgba(52,63,118,0.13);
}

.lm-panel.is-open {
  transform: translateX(0);
}

.lm-panel-inner {
  position: relative;
  padding: 52px 38px 60px;
  min-height: 100%;
  display: flex;
  flex-direction: column;
}

/* Close button */
.lm-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(115,124,164,0.18);
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
}

.lm-close:hover {
  color: var(--text);
  border-color: rgba(115,124,164,0.36);
  background: rgba(255,255,255,0.7);
}

/* Header */
.lm-header {
  margin-bottom: 30px;
}

.lm-header-eyebrow {
  display: block;
  font-family: var(--mono);
  font-size: 0.68rem;
  color: var(--accent);
  letter-spacing: 0.07em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.lm-header-title {
  display: block;
  font-family: var(--serif);
  font-size: 2.4rem;
  font-weight: 700;
  color: #1c1e2a;
  letter-spacing: -0.03em;
  line-height: 1.02;
}

/* Opening paragraph */
.lm-opening {
  font-size: 0.95rem;
  line-height: 1.72;
  color: var(--text2);
  margin: 0 0 32px;
  padding-bottom: 30px;
  border-bottom: 1px solid rgba(115,124,164,0.12);
}

/* Blocks */
.lm-blocks {
  display: flex;
  flex-direction: column;
  gap: 26px;
  flex: 1;
}

.lm-block-label {
  font-family: var(--mono);
  font-size: 0.64rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 7px;
}

.lm-block-copy {
  font-size: 0.88rem;
  line-height: 1.74;
  color: var(--text2);
  margin: 0;
}

/* Mobile */
@media (max-width: 640px) {
  .lm-trigger {
    bottom: 8px;
    left: 20px;
    right: auto;
  }

  .lm-panel-inner {
    padding: 44px 24px 52px;
  }

  .lm-header-title {
    font-size: 2rem;
  }
}
