/* FPX Boutique - Unit 04 */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:system-ui,-apple-system,sans-serif;line-height:1.5;overflow-x:hidden}
.fpx{
  --bg:#0f0d0a; --ink:#efeae0; --ink-2:#b9b2a4; --ink-3:#8c8577;
  --rule:#2a251c; --accent:#d63384; --card:#16130e;
  --ease:cubic-bezier(.22,1,.36,1);
}
body.fpx{background:var(--bg);color:var(--ink)}

.shot{position:relative;display:block;width:100%;background:#1a1712;overflow:hidden;margin:0}
.shot img{display:block;width:100%;height:auto}
.shot figcaption{padding:10px 2px 0;font-size:.74rem;color:var(--ink-3);line-height:1.5}

/* approach */
.approach{position:relative;height:76vh;min-height:440px;max-height:740px}
.approach__shot{position:absolute;inset:0;overflow:hidden}
.approach__shot img{width:100%;height:100%;object-fit:cover;filter:brightness(.62) saturate(1.05)}
.approach__band{position:absolute;left:0;right:0;bottom:0;padding:84px 20px 26px;
  background:linear-gradient(180deg,transparent,rgba(8,6,5,.88) 60%)}
.approach__eyebrow{margin:0;font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;
  color:rgba(255,255,255,.62)}
.approach__name{margin:10px 0 0;color:#fff;font-weight:600;line-height:.98;
  font-size:clamp(1.9rem,8.5vw,4rem);letter-spacing:-.02em}
.approach__enter{display:inline-flex;align-items:center;gap:9px;margin-top:18px;
  padding:11px 20px;border:1px solid rgba(255,255,255,.42);color:#fff;
  text-decoration:none;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;
  transition:background 200ms var(--ease),color 200ms var(--ease)}
.approach__enter:hover,.approach__enter:focus-visible{background:#fff;color:#151210}

.lede{max-width:640px;margin:0;padding:26px 20px 0;font-size:1rem;line-height:1.6;
  color:var(--ink-2)}

/* inside */
.inside{position:relative;height:56vh;min-height:340px;max-height:580px;margin-top:26px}
.inside__shot{position:absolute;inset:0;overflow:hidden}
.inside__shot img{width:100%;height:100%;object-fit:cover;filter:brightness(.55)}
.inside__band{position:absolute;left:0;right:0;bottom:0;padding:60px 20px 20px;
  background:linear-gradient(180deg,transparent,rgba(8,6,5,.82) 62%)}
.inside__band p{margin:0;color:#fff;font-size:.94rem}

.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.block{padding:48px 0 0}
.label{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding-bottom:12px;margin-bottom:18px;border-bottom:1px solid var(--rule)}
.label h2{margin:0;font-size:.68rem;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase}
.label span{font-size:.72rem;color:var(--ink-3)}

/* outbound */
.outbound{margin:56px 0 0;padding:28px 24px;border:1px solid var(--rule);
  background:var(--card);text-align:center}
.outbound h2{margin:0 0 8px;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase}
.outbound p{margin:0 0 14px;color:var(--ink-2);font-size:.94rem}
.outbound a{display:inline-block;padding:12px 26px;border:1px solid var(--accent);
  color:var(--accent);text-decoration:none;font-size:.72rem;letter-spacing:.2em;
  text-transform:uppercase;transition:background 200ms var(--ease),color 200ms var(--ease)}
.outbound a:hover,.outbound a:focus-visible{background:var(--accent);color:#151210}

.fine{padding:44px 20px 70px;text-align:center;font-size:.74rem;color:var(--ink-3)}

/* reveal */
.reveal{opacity:0;transform:translateY(14px);transition:opacity 500ms var(--ease),transform 500ms var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important}
  .reveal{opacity:1;transform:none}
}
a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
