/* ============================================================
   DORMITORIO JUVENIL — PRO — CSS ESPECÍFICO
   Ruta: assets/css/proyectos/dormitorio_juvenil_pro.css
   Objetivo:
   - Sistema DJ en PRO (verde musgo)
   - Hero con frame real en desktop (no a sangre)
   - UI superior pegada al frame
   - Caja abajo-izquierda (desktop)
   - Flechas agrupadas abajo-dcha
   - “superficie” centrado/minúsculas/verde
   - ENCARGO/OBJETIVO/SOLUCIÓN/RESULTADO verde/mayúsculas
   - Contacto robusto (svg controlado por componente)
   ============================================================ */

/* ============================================================
   0) VARIABLES
   ============================================================ */
:root{
  --dj-accent: #5f6f61;              /* verde PRO */
  --dj-ink: #2f2f31;
  --dj-page-bg: #dcdcdc;

  --dj-rule: rgba(95,111,97,0.85);
  --dj-ui-white: rgba(255,255,255,0.92);
  --dj-ui-white-soft: rgba(255,255,255,0.72);

  /* HERO */
  --dj-hero-h: 720px;
  --dj-hero-minh: 520px;
  --dj-hero-fit: cover;
  --dj-hero-pos: 50% 55%;

  /* Frame desktop (NO a sangre) */
  --dj-frame-w: min(94vw, 1400px);
  --dj-frame-radius: 8px;

  /* Caja desktop */
  --dj-box-w: 360px;
  --dj-box-bg: rgba(255,255,255,0.92);
  --dj-box-border: rgba(95,111,97,0.42);
  --dj-box-blur: 3px;

  /* Flechas hero */
  --dj-hero-arrow-size: 34px;
  --dj-hero-arrow-icon: 22px;
  --dj-hero-arrow-inset: 18px;
  --dj-hero-arrow-gap: 10px;
  --dj-hero-arrow-bottom: 18px;

  /* Dots */
  --dj-dots-bg: rgba(255,255,255,0.66);
  --dj-dots-border: rgba(95,111,97,0.55);
  --dj-dot-size: 8px;
  --dj-dot-gap: 8px;
  --dj-dots-pad-y: 6px;
  --dj-dots-pad-x: 10px;

  /* Contenido */
  --dj-content-w: 920px;
  --dj-content-pad-x: 0px;

  /* Botones */
  --dj-btn-h: 25px;
  --dj-btn-px: 14px;
  --dj-btn-fz: 10px;
  --dj-btn-letter: 0.12em;

  /* Fullscreen */
  --dj-fs-backdrop: rgba(40,40,40,0.96);
  --dj-fs-ui-bg: rgba(233,233,231,1);
  --dj-fs-ui-border: rgba(95,111,97,0.55);

  --dj-fs-arrow-size: 32px;
  --dj-fs-arrow-icon: 20px;

  --dj-fs-cap-bg: rgba(255,255,255,0.84);
  --dj-fs-cap-border: rgba(95,111,97,0.55);
  --dj-fs-cap-fz: 11px;

  /* Iconos contacto */
  --dj-ico: 18px;
}

/* ============================================================
   1) BASE
   ============================================================ */
html, body{ background: var(--dj-page-bg); }

/* marca: evitar subrayados raros */
.topbar .brand,
.topbar .brand:hover,
.topbar .brand:focus,
.topbar .brand:active{
  text-decoration:none;
  border-bottom:0;
  box-shadow:none;
  background-image:none;
}
.topbar .brand .brand-name,
.topbar .brand .brand-sub{ text-decoration:none; }
.topbar .brand-mark img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: translate(var(--logo-x, -1.5px), var(--logo-y, -0.7px)) scale(var(--logo-scale, 1.4));
    transform-origin: center;
}
/* ============================================================
   2) HERO (contenedor)
   ============================================================ */
.page-project .dj-hero{
  position:relative;
  width:100%;
  height: var(--dj-hero-h);
  min-height: var(--dj-hero-minh);
  background: var(--dj-page-bg);
  overflow:hidden;
  isolation:isolate;
}

.page-project .dj-hero__carousel{ position:absolute; inset:0; }

.page-project .dj-hero__viewport{
  position:absolute;
  inset:0;
  overflow:hidden;
  background: var(--dj-page-bg);
  border-radius: var(--dj-frame-radius);
}

.page-project .dj-hero__track{
  display:flex;
  height:100%;
  margin:0;
  padding:0;
  list-style:none;
  transform:translateX(0%);
  transition: transform 480ms ease;
  will-change: transform;
}

@media (prefers-reduced-motion: reduce){
  .page-project .dj-hero__track{ transition:none; }
}

.page-project .dj-hero__slide{
  flex:0 0 100%;
  height:100%;
  position:relative;
}

/* Zoom SOLO slide activa */
.page-project .dj-hero__slide img{
  width:100%;
  height:100%;
  display:block;
  object-fit: var(--dj-hero-fit);
  object-position: var(--dj-hero-pos);
  background: var(--dj-page-bg);
  cursor: zoom-in;

  transform: scale(1);
  transition: transform 1800ms cubic-bezier(.22,.61,.36,1);
  will-change: transform;
}
.page-project .dj-hero__slide.is-active img{ transform: scale(1.08); }

@media (prefers-reduced-motion: reduce){
  .page-project .dj-hero__slide img{
    transition:none;
    transform:none;
  }
}

/* ============================================================
   3) UI SUPERIOR (DENTRO DEL VIEWPORT)
   ============================================================ */
.page-project .dj-hero__top{
  position:absolute;
  top:0; left:0; right:0;
  z-index:9;
  pointer-events:none;
  padding:10px 0 8px;
  text-align:center;
  background: linear-gradient(to bottom, rgba(0,0,0,0.34), rgba(0,0,0,0));
}

.page-project .dj-hero__kicker{
  margin:0;
  font-size:14px;
  line-height:1;
  font-weight:500;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color: var(--dj-ui-white);
  text-shadow:0 1px 14px rgba(0,0,0,0.45);
}

.page-project .dj-hero__rule{
  width:100%;
  height:1px;
  margin:8px 0 7px;
  background: var(--dj-rule);
}

.page-project .dj-hero__city{
  margin:0;
  font-size:11px;
  line-height:1;
  font-weight:400;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color: var(--dj-ui-white-soft);
  text-shadow:0 1px 14px rgba(0,0,0,0.45);
}

/* ============================================================
   4) CAJA (desktop)
   ============================================================ */
.page-project .dj-hero__box{
  position:absolute;
  z-index:8;
  width: min(var(--dj-box-w), calc(100vw - 44px));
  padding:12px 14px;
  border:1px solid var(--dj-box-border);
  border-radius:4px;
  background: var(--dj-box-bg);
  backdrop-filter: blur(var(--dj-box-blur));
  -webkit-backdrop-filter: blur(var(--dj-box-blur));
}

.page-project .dj-hero__title{
  margin:0 0 8px;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color: rgba(95,111,97,0.95);
}

.page-project .dj-hero__lead{
  margin:0;
  font-size:12px;
  line-height:1.55;
  color: rgba(47,47,49,0.78);
  text-align:justify;
}

/* Lead slide 1 */
.page-project .dj-leadLine{
  margin:0 0 10px;
  text-align:center;
}
.page-project .dj-lead-label--surface{
  color: rgba(95,111,97,0.95);
  font-weight:600;
  letter-spacing:0.10em;
}
.page-project .dj-lead-list{
  margin:0;
  padding-left:18px;
}
.page-project .dj-lead-list li{ margin:0 0 6px; text-align: left; }
.page-project .dj-lead-list li::marker{ color: rgba(95,111,97,0.95); }

.page-project .dj-lead-label{
  font-weight:600;
  color: rgba(95,111,97,0.95);
  letter-spacing:0.18em;
}
.page-project .dj-lead-value{
  font-weight:400;
  color: rgba(47,47,49,0.78);
}

/* ============================================================
   5) FLECHAS HERO (agrupadas a la derecha)
   ============================================================ */
.page-project .dj-hero__arrow{
  position:absolute;
  bottom: var(--dj-hero-arrow-bottom);
  width: var(--dj-hero-arrow-size);
  height: var(--dj-hero-arrow-size);
  border-radius:4px;
  background: rgba(255,255,255,0.82);
  border:1px solid rgba(95,111,97,0.75);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:10;
  cursor:pointer;
}

.page-project .dj-hero__arrow span{
  font-size: var(--dj-hero-arrow-icon);
  line-height:1;
  color: rgba(95,111,97,0.95);
  transform: translateY(-1px);
}

.page-project .dj-hero__arrow--next{ right: var(--dj-hero-arrow-inset); }
.page-project .dj-hero__arrow--prev{
  right: calc(var(--dj-hero-arrow-inset) + var(--dj-hero-arrow-size) + var(--dj-hero-arrow-gap));
}

.page-project .dj-hero__arrow:focus{ outline:none; }
.page-project .dj-hero__arrow:focus-visible{
  outline:2px solid rgba(95,111,97,0.95);
  outline-offset:3px;
}

/* ============================================================
   6) BOTÓN SIGUIENTE PROYECTO (última slide)
   ============================================================ */
.page-project .dj-hero__nextProj{
  position:absolute;
  z-index:10;
  display:none;
  align-items:center;
  justify-content:center;

  height:22px;
  padding:0 10px;
  border-radius:4px;

  border:1px solid rgba(95,111,97,0.75);
  background: rgba(255,255,255,0.92);
  color: rgba(95,111,97,0.95);

  font-size:9px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  text-decoration:none;
  white-space:nowrap;

  right: var(--dj-hero-arrow-inset);
  bottom: 64px;
}
.page-project .dj-hero__nextProj.is-visible{ display:inline-flex; }
.page-project .dj-hero__nextProj:hover{ text-decoration:none; }

/* ============================================================
   7) DOTS
   ============================================================ */
.page-project .dj-hero__dots{
  position:absolute;
  left:50%;
  bottom:6px;
  transform:translateX(-50%);

  display:flex;
  gap: var(--dj-dot-gap);
  padding: var(--dj-dots-pad-y) var(--dj-dots-pad-x);

  border-radius:4px;
  border:1px solid var(--dj-dots-border);
  background: var(--dj-dots-bg);

  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  z-index:10;
}

.page-project .dj-hero__dot{
  width: var(--dj-dot-size);
  height: var(--dj-dot-size);
  border-radius:999px;
  border:1px solid rgba(95,111,97,0.55);
  background: rgba(255,255,255,0.72);
  cursor:pointer;
}

.page-project .dj-hero__dot.is-active{
  background: rgba(95,111,97,0.95);
  border-color: rgba(95,111,97,0.95);
}

/* ============================================================
   8) META MÓVIL
   ============================================================ */
.page-project .dj-mobileMeta{
  display:none;
  width: min(var(--dj-content-w), calc(100% - var(--dj-content-pad-x)));
  margin:0 auto;
  border:1px solid rgba(95,111,97,0.20);
  background: rgba(255,255,255,0.93);
  backdrop-filter: blur(var(--dj-box-blur));
  -webkit-backdrop-filter: blur(var(--dj-box-blur));
  border-radius:8px;
}

.page-project .dj-mobileMeta__title{
  margin:8px 0 6px;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color: rgba(95,111,97,0.95);
  text-align:center;
}

.page-project .dj-mobileMeta__lead{
  margin:0 15px 12px;
  font-size:10px;
  line-height:1.55;
  color: rgba(47,47,49,0.72);
  text-align:justify;
}

/* ============================================================
   9) CONTENIDO
   ============================================================ */
.page-project .dj-main{
  background:transparent;
  margin-top:10px;
}

.page-project .dj-wrap{
  width: min(var(--dj-content-w), calc(100% - var(--dj-content-pad-x)));
  margin:15px auto 8px;
  text-align:center;
}

.page-project .dj-section{ padding:0; text-align:center; }

.page-project .dj-h2{
  margin:25px 15px 5px;
  font-size:15px;
  letter-spacing:0.22em;
  color: rgba(95,111,97,0.95);
  text-align:center;
  font-weight:500;
}

.page-project .dj-p{
  margin:0 15px 15px;
  color: rgba(47,47,49,0.70);
  font-size:13px;
  line-height:1.4;
  text-align:left;
  font-weight:400;
}

.page-project .dj-p--big{
  color: rgba(47,47,49,0.92);
  font-size:13px;
  text-align:center;
    letter-spacing: 0.18em;
}

.page-project .dj-center{
  display:flex;
  justify-content:center;
  align-items:center;
}

/* ============================================================
   10) BOTONES
   ============================================================ */
.page-project .dj-btn{
  margin:6px 0;
  display:inline-flex;
  align-items:center;
  justify-content:center;

  height: var(--dj-btn-h);
  padding: 0 var(--dj-btn-px);
  border-radius:4px;

  border:1px solid rgba(95,111,97,0.70);
  background:#ffffff;
  color: rgba(95,111,97,0.95);

  text-decoration:none;
  font-size: var(--dj-btn-fz);
  letter-spacing: var(--dj-btn-letter);
  text-transform:uppercase;
  white-space:nowrap;

  transition: background-color 200ms ease, border-color 200ms ease, color 200ms ease, font-weight 200ms ease;
}
.page-project .dj-btn:hover{ text-decoration:none; }

/* VER DETALLE */
.page-project .dj-section--portfolio .dj-btn{
  background: rgba(255,255,255,0.96);
  border-color: rgba(95,111,97,0.85);
  color: rgba(95,111,97,0.92);
}
.page-project .dj-section--portfolio .dj-btn:hover{
  background: rgba(95,111,97,0.95);
  border-color: rgba(95,111,97,0.98);
  color: #ffffff;
  font-weight:600;
}

/* CTA principal */
.page-project .dj-btn--solid{
  background: rgba(95,111,97,0.95);
  border-color: rgba(95,111,97,0.95);
  color: rgba(255,255,255,0.95);
}
.page-project .dj-btn--solid:hover{
  background:#ffffff;
  border-color: rgba(95,111,97,0.95);
  color: rgba(95,111,97,0.98);
  font-weight:700;
}
.page-project .dj-btn--big{
  height:45px;
  padding:0 30px;
}

/* ============================================================
   11) CTA TEXTO
   ============================================================ */
.page-project .dj-ctaLine{
  margin:14px 15px 13px;
  text-align:center;
  font-weight:400;
  color: rgba(47,47,49,0.92); /* antracita para el texto */
  font-size:14px;
  line-height:1.55;
  letter-spacing:0.18em;
}

.page-project .dj-ctaQ{
  color: rgba(95,111,97,0.95); /* verde */
  font-weight:600;
  letter-spacing:0.22em;
  font-size:15px;
}
/* opcional: un pelín de aire entre etiqueta y texto */
.page-project .dj-ctaText{
  margin-left: 6px;
}
/* ============================================================
   12) CONTACTO (iconos + links)
   ============================================================ */
.page-project .dj-directTitle{
  margin:10px 15px;
  text-align:center;
  color: rgba(47,47,49,0.74);
  font-weight:400;
  font-size:13px;
  line-height:1.6;
}
.page-project .dj-directTitle strong{
  color: rgba(95,111,97,0.95);
  font-weight:500;
  letter-spacing:0.08em;
}

.page-project .dj-directGrid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 6px;
  justify-items:center;
  font-weight:500;
  font-size: 12px;
  line-height:1.1;
  text-align:left;
}

.page-project .dj-directItem{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:max-content;
  margin:0 auto;
  text-align:center;
  text-decoration:none;
}

.page-project .dj-directText{
  display:inline-block;
  line-height:1;
  font-size:12px;
  letter-spacing:0.10em;
  font-family: 'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: rgba(47,47,49,0.58);
}

/* Icono: controlado por componente (evita svg globales) */
.page-project .dj-ico{
  width: var(--dj-ico);
  height: var(--dj-ico);
  flex: 0 0 var(--dj-ico);
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.page-project .dj-icoSvg{
  width: var(--dj-ico);
  height: var(--dj-ico);
  display:block;
  flex: 0 0 var(--dj-ico);
  fill: rgba(95,111,97,0.95);
}

/* Hover */
.page-project .dj-directItem:hover .dj-directText{
  text-decoration: underline;
  text-decoration-color: rgba(95,111,97,0.35);
  text-underline-offset: 3px;
}

/* ============================================================
   13) CIERRE (clases reales del HTML)
   ============================================================ */
.page-project .dj-end{ padding:10px 0 0; }

.page-project .rule--bleed{
  height:1px;
  background: var(--dj-rule);
  position:relative;
  left:50%;
  width:100vw;
  transform:translateX(-50%);
  margin:0;
}

.page-project .legal-line{
  text-align:center;
  padding:10px 0;
  font-size:12px;
  letter-spacing:0.10em;
  color: rgba(47,47,49,0.78);
}
.page-project .legal-line a{
  color:inherit;
  text-decoration:none;
}
.page-project .legal-line a:hover{
  text-decoration: underline;
  text-decoration-color: rgba(95,111,97,0.35);
  text-underline-offset: 3px;
}

.page-project .footer-banner--bleed{
  width:100vw;
  margin-left:50%;
  transform:translateX(-50%);
  padding:0;
  line-height:0;
  overflow:hidden;
  margin-bottom:-60px;
}
.page-project .footer-banner--bleed img{
  width:100%;
  height:auto;
  display:block;
  margin:0;
}

/* ============================================================
   14) FULLSCREEN
   ============================================================ */
.page-project .dj-fs{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
}
.page-project .dj-fs.is-open{ display:block; }

.page-project .dj-fs__backdrop{
  position:absolute;
  inset:0;
  background: var(--dj-fs-backdrop);
}

.page-project .dj-fs__stage{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:12px;
  padding:12px;
}

.page-project .dj-fs__frame{
  position:relative;
  width:min(96vw, 1280px);
  display:flex;
  justify-content:center;
  align-items:center;
}

.page-project .dj-fs__img{
  width:100%;
  height:auto;
  max-height: calc(100vh - 190px);
  object-fit:contain;
  object-position:center;
  background:transparent;
  border-radius:8px;
}

.page-project .dj-fs__close{
  position:absolute;
  top:30px;
  right:30px;
  width:32px;
  height:32px;
  border-radius:4px;
  border:1px solid var(--dj-fs-ui-border);
  background: var(--dj-fs-ui-bg);
  color: rgba(95,111,97,0.95);
  font-size:18px;
  line-height:1;
  cursor:pointer;
  z-index:5;
}

.page-project .dj-fs__arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width: var(--dj-fs-arrow-size);
  height: var(--dj-fs-arrow-size);
  border-radius:4px;
  border:1px solid var(--dj-fs-ui-border);
  background: var(--dj-fs-ui-bg);
  color: rgba(95,111,97,0.95);
  font-size: var(--dj-fs-arrow-icon);
  line-height:1;
  cursor:pointer;
  z-index:4;
}

.page-project .dj-fs__arrow--prev{ left:12px; }
.page-project .dj-fs__arrow--next{ right:12px; }

.page-project .dj-fs__nextProj{
  position:absolute;
  z-index:4;
  display:none;
  align-items:center;
  justify-content:center;
  height:22px;
  padding:0 24px;
  border-radius:4px;
  border:1px solid rgba(95,111,97,0.75);
  background: var(--dj-fs-ui-bg);
  color: rgba(95,111,97,0.95);
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  text-decoration:none;
  white-space:nowrap;
  bottom:12px;
  right:12px;
}
.page-project .dj-fs__nextProj.is-visible{ display:inline-flex; }

.page-project .dj-fs__cap{
  max-width:min(760px, calc(100vw - 24px));
  padding:7px 12px;
  border-radius:4px;
  border:1px solid var(--dj-fs-cap-border);
  background: var(--dj-fs-cap-bg);
  color: rgba(95,111,97,0.95);
  font-size: var(--dj-fs-cap-fz);
  letter-spacing:0.06em;
  text-align:center;
}

/* ============================================================
   15) RESPONSIVE
   ============================================================ */

/* Desktop: viewport centrado + caja abajo-izq */
@media (min-width: 981px){
  .page-project .dj-hero__viewport{
    width: var(--dj-frame-w);
    margin: 0 auto;
  }

  .page-project .dj-hero__box{
    left:22px;
    bottom:22px;
    top:auto;
    right:auto;
  }
}

/* <= 980 */
@media (max-width: 980px){
  :root{ --dj-hero-arrow-inset: 14px; --dj-hero-arrow-bottom: 14px; }
  .page-project .dj-hero__dots{ bottom:10px; }
}

/* <= 760 (móvil) */
@media (max-width: 760px){
  /* HERO móvil: viewport 16:9 */
  .page-project .dj-hero{
    height:auto;
    min-height:0;
  }
  .page-project .dj-hero__carousel{ position:relative; inset:auto; }
  .page-project .dj-hero__viewport{
    position:relative;
    width:100%;
    aspect-ratio:16 / 9;
    border-radius:8px;
  }
  .page-project .dj-hero__track,
  .page-project .dj-hero__slide,
  .page-project .dj-hero__slide img{ height:100%; }

  /* UI superior */
  .page-project .dj-hero__kicker{ font-size:8px; }
  .page-project .dj-hero__city{ font-size:6px; }
  .page-project .dj-hero__rule{ margin:5px 0 5px; }

  /* Ajustes tamaño UI */
  :root{
    --dj-hero-arrow-size: 26px;
    --dj-hero-arrow-icon: 17px;

    --dj-dot-size: 5px;
    --dj-dot-gap: 5px;
    --dj-dots-pad-y: 4px;
    --dj-dots-pad-x: 8px;

    --dj-fs-arrow-size: 24px;
    --dj-fs-arrow-icon: 16px;

    --dj-fs-cap-fz: 9px;
  }

  /* Caja off / meta on */
  .page-project .dj-hero__box{ display:none; }
  .page-project .dj-mobileMeta{ display:block; }

  /* Botón “siguiente proyecto” */
  .page-project .dj-hero__nextProj{
    bottom:45px;
    right: var(--dj-hero-arrow-inset);
  }

  /* Fullscreen */
  .page-project .dj-fs__img{ max-height: calc(100vh - 210px); }
  .page-project .dj-fs__cap{
    padding:5px 9px;
    max-width:min(560px, calc(100vw - 24px));
    letter-spacing:0.05em;
  }
}
