/* ============================================================================
   Sovereign Row Studios — Gallery page-scoped styles (gallery.css)
   Loaded AFTER css/styles.css. Everything here is namespaced under the
   existing gallery prefix (.gx-) plus new honest-reframe blocks (.gx-note,
   .gx-look, .gx-how, .gx-services, .gx-lb) so it cannot collide with
   styles.css. Tokens reused: var(--grad), the glass + Montserrat language.
   ========================================================================== */

/* ---------- Honesty note ---------- */
.gx-note{padding:clamp(2rem,5vw,3.4rem) clamp(1.2rem,5vw,5rem) 0}
.gx-note__inner{max-width:62rem;margin:0 auto;display:flex;gap:1rem;align-items:flex-start;
  background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.09);
  border-radius:18px;padding:1.2rem 1.4rem;backdrop-filter:blur(8px)}
.gx-note__ico{flex:0 0 auto;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;
  background:rgba(255,46,154,.14);border:1px solid rgba(255,46,154,.4)}
.gx-note__ico svg{width:18px;height:18px;fill:none;stroke:#ff7ac8;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.gx-note__txt{margin:0;font-size:clamp(.86rem,1.5vw,.96rem);line-height:1.65;color:rgba(255,255,255,.72)}
.gx-note__txt b{color:#fff;font-weight:600}
.gx-note__txt a{color:#ff7ac8;text-decoration:none;border-bottom:1px solid rgba(255,122,200,.4)}
.gx-note__txt a:hover{border-bottom-color:#ff7ac8}

/* ---------- "The Look" descriptor block (replaces fabricated specs) ---------- */
.gx-look__list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column}
.gx-look__list li{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;
  padding:.6rem 0;border-bottom:1px solid rgba(255,255,255,.07)}
.gx-look__k{font-size:.82rem;color:rgba(255,255,255,.5);flex:0 0 auto}
.gx-look__v{margin:0;font-size:.82rem;color:#fff;text-align:right}
.gx-look__disc{margin:.2rem 0 1.8rem;font-size:.7rem;letter-spacing:.04em;
  color:rgba(255,255,255,.42);font-style:italic}

/* ---------- "How a mood becomes your project" ---------- */
.gx-how{padding:clamp(3rem,7vw,5.5rem) clamp(1.2rem,5vw,5rem)}
.gx-how__inner,.gx-services__inner{max-width:74rem;margin:0 auto}
.gx-how__head{text-align:center;max-width:46rem;margin:0 auto clamp(2rem,4vw,3rem)}
.gx-how__head .gx-kicker{margin-left:auto;margin-right:auto}
.gx-how__title{font-size:clamp(1.7rem,3.6vw,2.9rem);line-height:1.05;font-weight:300;
  text-transform:uppercase;color:#fff;margin:0 0 .9rem}
.gx-how__sub{margin:0;font-size:clamp(.9rem,1.6vw,1.05rem);line-height:1.6;color:rgba(255,255,255,.65)}
.gx-how__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.gx-how__step{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);
  border-radius:16px;padding:1.4rem 1.3rem;backdrop-filter:blur(8px)}
.gx-how__no{display:block;font-size:1.6rem;font-weight:300;line-height:1;margin-bottom:.7rem;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.gx-how__step h3{margin:0 0 .5rem;font-size:1.02rem;font-weight:600;color:#fff}
.gx-how__step p{margin:0;font-size:.85rem;line-height:1.55;color:rgba(255,255,255,.62)}

/* ---------- Where these looks live (service cross-links) ---------- */
.gx-services{padding:0 clamp(1.2rem,5vw,5rem) clamp(3rem,7vw,5.5rem)}
.gx-services__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.gx-svc-card{display:flex;flex-direction:column;gap:.45rem;text-decoration:none;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);
  border-radius:18px;padding:1.5rem 1.4rem;backdrop-filter:blur(8px);
  transition:transform .4s cubic-bezier(.22,1,.36,1),border-color .4s,background .4s}
.gx-svc-card:hover{transform:translateY(-4px);border-color:rgba(255,46,154,.45);background:rgba(255,46,154,.06)}
.gx-svc-card__k{font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;font-weight:600;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.gx-svc-card__h{margin:.1rem 0 .2rem;font-size:1.05rem;font-weight:600;color:#fff;line-height:1.2}
.gx-svc-card p{margin:0;font-size:.85rem;line-height:1.55;color:rgba(255,255,255,.62)}
.gx-svc-card__go{margin-top:.5rem;font-size:.8rem;font-weight:600;color:#ff7ac8}

/* ---------- Lightbox (full-image view from the expand button) ---------- */
.gx-lb{position:fixed;inset:0;z-index:120;display:none;place-items:center;
  padding:clamp(1rem,4vw,3rem);background:rgba(4,2,8,.86);backdrop-filter:blur(14px);
  opacity:0;transition:opacity .3s ease}
.gx-lb.is-open{display:grid;opacity:1}
.gx-lb__fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:.8rem;max-width:100%}
.gx-lb__img{max-width:min(100%,1200px);max-height:82vh;width:auto;height:auto;object-fit:contain;
  border-radius:14px;border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 90px rgba(0,0,0,.55)}
.gx-lb__cap{font-size:.78rem;letter-spacing:.04em;color:rgba(255,255,255,.6)}
.gx-lb__close{position:absolute;top:clamp(.8rem,3vw,1.6rem);right:clamp(.8rem,3vw,1.6rem);
  width:44px;height:44px;border-radius:11px;cursor:pointer;display:grid;place-items:center;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;
  transition:background .3s,border-color .3s}
.gx-lb__close:hover{background:rgba(255,46,154,.2);border-color:rgba(255,46,154,.6)}
.gx-lb__close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .gx-how__grid{grid-template-columns:repeat(2,1fr)}
  .gx-services__grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  .gx-how__grid{grid-template-columns:1fr}
  .gx-note__inner{flex-direction:column}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .gx-svc-card,.gx-lb{transition:none}
}
