/* GAIA ATELIER · SIGNATURE PIECE v1
   Estructura: hub visual 2-up + rail visual izquierdo + campo editorial derecho estable.
   Referencia de ritmo: lujo editorial; identidad y contenido GAIA propios. */

:root{
  --piece-paper:#f5f3ee;
  --piece-ink:#11110f;
  --piece-muted:#77736b;
  --piece-line:rgba(17,17,15,.18);
  --piece-media:#e9e7e2;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--piece-paper);
  color:var(--piece-ink);
  font-family:Arial,Helvetica,sans-serif;
  -webkit-font-smoothing:antialiased;
}

a{color:inherit}

.piece-topbar{
  position:fixed;
  inset:0 0 auto 0;
  z-index:20;
  height:74px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:0 28px;
  background:rgba(245,243,238,.94);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(17,17,15,.08);
}

.piece-topbar a,
.piece-topbar span{
  font-size:10px;
  line-height:1;
  letter-spacing:.16em;
  text-transform:uppercase;
  text-decoration:none;
}

.piece-topbar .piece-back{justify-self:start}
.piece-topbar .piece-wordmark{justify-self:center;font-size:15px;letter-spacing:.12em}
.piece-wordmark--isotype img{height:22px;width:auto;display:block}
.piece-topbar .piece-place{justify-self:end;color:var(--piece-muted)}

/* CAPA 2 · texto editorial único + dos imágenes */
.family-body{background:var(--piece-paper)}
.family-main{padding-top:74px}
.family-head{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:72px 24px 40px;
}
.family-head h1{
  margin:0;
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  font-size:clamp(32px,3.3vw,46px);
  line-height:1.05;
  letter-spacing:-.02em;
}
.family-intro{
  width:min(100%,790px);
  margin:24px auto 0;
  font-size:14px;
  line-height:1.7;
  letter-spacing:0;
  text-transform:none;
  color:var(--piece-ink);
}
.family-pair{
  width:min(82vw,1360px);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:24px;
  padding:24px 0 88px;
}
.family-pair--single{
  grid-template-columns:minmax(0,1fr);
  max-width:680px;
  padding-top:0;
}
.family-row{
  width:min(97vw,1900px);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:36px;
  padding:24px 0 88px;
}
.family-row--single{
  grid-template-columns:minmax(0,1fr);
  max-width:420px;
}
@media(max-width:960px){
  .family-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .family-row{grid-template-columns:minmax(0,1fr)}
}
.family-card{min-width:0}
.family-card-title{margin:14px 0 4px;font-size:14px;letter-spacing:.02em}
.family-card-price{margin:0;font-size:13px;opacity:.72}
.family-media{
  display:block;
  aspect-ratio:2/3;
  overflow:hidden;
  background:var(--piece-media);
}
.family-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  transition:transform .8s cubic-bezier(.22,1,.36,1);
}
.family-media:hover img{transform:scale(1.012)}

.family-carousel{position:relative}
.family-carousel-link{display:block;width:100%;height:100%}
.family-carousel-img{position:absolute;inset:0;opacity:0;transition:opacity .35s ease}
.family-carousel-img.is-active{position:relative;opacity:1}
.family-carousel-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:28px;height:28px;border:0;border-radius:50%;
  background:rgba(255,255,255,.82);color:#11110f;
  font-size:15px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .2s ease;
}
.family-carousel:hover .family-carousel-arrow{opacity:1}
.family-carousel-prev{left:10px}
.family-carousel-next{right:10px}
.family-carousel-dots{
  position:absolute;left:0;right:0;bottom:10px;
  display:flex;justify-content:center;gap:5px;
}
.family-carousel-dot{
  width:5px;height:5px;border-radius:50%;
  background:rgba(255,255,255,.5);border:0;padding:0;cursor:pointer;
}
.family-carousel-dot.is-active{background:#fff}

/* CAPA 3 · ficha limpia + relato editorial progresivo */
.piece-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  min-height:100svh;
  padding-top:74px;
  align-items:start;
}

.piece-gallery{
  position:sticky;
  top:74px;
  align-self:start;
  min-width:0;
  height:calc(100svh - 74px);
  background:var(--piece-media);
}

.piece-frame{
  margin:0;
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:var(--piece-media);
}

.piece-frame img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}

.piece-frame--acid img{object-position:center}
.piece-frame--maisie img{object-position:center}

.piece-info{
  position:relative;
  min-width:0;
  background:var(--piece-paper);
  border-left:1px solid rgba(17,17,15,.08);
}

.piece-info-inner{
  width:min(100%,680px);
  margin:0 auto;
  padding:0 clamp(34px,7vw,112px) 112px;
}

.piece-sheet{
  min-height:calc(100svh - 74px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:70px 0;
}

.piece-kicker{
  margin:0 0 16px;
  font-size:10px;
  line-height:1.4;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--piece-muted);
}

.piece-title{
  margin:0;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(30px,3vw,46px);
  line-height:1.05;
  font-weight:400;
  letter-spacing:-.02em;
}

.piece-subtitle{
  margin:12px 0 0;
  font-family:Georgia,'Times New Roman',serif;
  font-size:16px;
  line-height:1.5;
  font-weight:400;
}

.piece-note{
  margin:8px 0 0;
  font-size:12px;
  line-height:1.55;
  color:var(--piece-muted);
}

.piece-fields{
  margin-top:42px;
  border-top:1px solid var(--piece-line);
}

.piece-field{
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding:16px 0;
  border-bottom:1px solid var(--piece-line);
  font-size:12px;
  line-height:1.45;
}

.piece-field span:first-child{color:var(--piece-muted)}
.piece-field strong{font-weight:400;text-align:right}

.piece-details{
  margin-top:36px;
  border-top:1px solid var(--piece-line);
}

.piece-details details{border-bottom:1px solid var(--piece-line)}
.piece-details summary{
  list-style:none;
  cursor:pointer;
  padding:17px 0;
  font-size:12px;
  line-height:1.4;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.piece-details summary::-webkit-details-marker{display:none}
.piece-details summary::after{content:'+';font-size:15px;font-weight:300}
.piece-details details[open] summary::after{content:'−'}
.piece-details p{
  margin:0;
  padding:0 0 20px;
  max-width:54ch;
  font-family:Georgia,'Times New Roman',serif;
  font-size:14px;
  line-height:1.65;
}

.piece-signature-speech{
  padding-top:88px;
  border-top:1px solid var(--piece-line);
}
.piece-signature-speech-label{
  margin:0 0 30px;
  font-size:10px;
  line-height:1.4;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--piece-muted);
}
.piece-signature-speech-copy{
  max-width:54ch;
  font-family:Georgia,'Times New Roman',serif;
  font-size:15px;
  line-height:1.72;
}
.piece-speech-beat{
  padding:38px 0 44px;
  border-top:1px solid rgba(17,17,15,.12);
}
.piece-speech-beat:first-child{
  padding-top:0;
  border-top:0;
}
.piece-speech-beat p{margin:0}
.piece-speech-beat--lead{
  font-size:clamp(17px,1.25vw,20px);
  line-height:1.66;
}
.piece-speech-beat--close{
  padding-bottom:18px;
  font-size:clamp(17px,1.25vw,20px);
}

/* CAPA 4 · preparado para colores / archivo del mismo modelo.
   No renderizar contenido hasta disponer de fotografía real aprobada. */
.piece-archive-strip{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:0;
}
.piece-archive-strip[hidden]{display:none}

.piece-return{
  display:inline-block;
  margin-top:72px;
  font-size:10px;
  line-height:1.4;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-underline-offset:5px;
}

@media(max-width:820px){
  .piece-topbar{height:64px;padding:0 16px}
  .piece-topbar .piece-place{display:none}
  .piece-topbar{grid-template-columns:1fr auto 1fr}
  .piece-wordmark{grid-column:2}
  .family-main{padding-top:64px}
  .family-head{padding:52px 22px 30px}
  .family-head h1{font-size:clamp(30px,9vw,40px)}
  .family-intro{margin-top:20px;font-size:13px;line-height:1.65}
  .family-pair{
    width:auto;
    margin:0;
    grid-template-columns:1fr;
    gap:18px;
    padding:18px 18px 52px;
  }
  .piece-layout{grid-template-columns:1fr;padding-top:64px}
  .piece-gallery{position:static;height:auto}
  .piece-frame{height:auto;aspect-ratio:4/5}
  .piece-frame img{height:100%;object-fit:cover}
  .piece-info{border-left:0;border-top:1px solid rgba(17,17,15,.08)}
  .piece-info-inner{padding:0 24px 78px}
  .piece-sheet{min-height:auto;padding:56px 0 66px}
  .piece-fields{margin-top:34px}
  .piece-signature-speech{padding-top:62px}
  .piece-signature-speech-label{margin-bottom:26px}
  .piece-speech-beat{padding:32px 0 38px}
  .piece-return{margin-top:58px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .family-media img{transition:none}
  .family-media:hover img{transform:none}
}

/* CAPA 3 · ventanas editoriales 50/50 (añadido, no toca .piece-layout / .piece-gallery / MAISIE)
   Imagen + texto a partes iguales, campo de texto claro y silencioso, sin ficha/precio/CTA.
   Sin position:sticky en ningún breakpoint. En móvil: imagen primero (orden natural del DOM). */
.piece-editorial-window{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  min-height:100svh;
  border-top:1px solid rgba(17,17,15,.08);
}

.piece-editorial-window--reverse{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
.piece-editorial-window--reverse .piece-editorial-media{order:2}
.piece-editorial-window--reverse .piece-editorial-text{order:1}

.piece-editorial-media{
  margin:0;
  min-width:0;
  background:var(--piece-media);
}
.piece-editorial-media img{
  width:100%;
  height:100%;
  min-height:100svh;
  display:block;
  object-fit:cover;
  object-position:center;
}

.piece-editorial-text{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--piece-paper);
  padding:64px clamp(28px,6vw,88px);
}

.piece-editorial-text-inner{
  width:100%;
  max-width:52ch;
}

.piece-editorial-label{
  margin:0 0 22px;
  font-size:10px;
  line-height:1.4;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--piece-muted);
}

.piece-editorial-copy{
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(16px,1.35vw,19px);
  line-height:1.7;
  color:var(--piece-ink);
}
.piece-editorial-copy p{margin:0}

@media(max-width:820px){
  .piece-editorial-window,
  .piece-editorial-window--reverse{
    grid-template-columns:1fr;
    min-height:auto;
  }
  .piece-editorial-window--reverse .piece-editorial-media{order:0}
  .piece-editorial-window--reverse .piece-editorial-text{order:0}
  .piece-editorial-media img{min-height:auto;aspect-ratio:4/5}
  .piece-editorial-text{padding:44px 24px 56px}
}
