/* ═══════════════════════════════════════════
   REQUEST ACCESS — page styles
   Extracted from catalog-request.html.
   Load order: home-v2.css → about.css → request.css
   ═══════════════════════════════════════════ */
/* ═══════════════════════════════════════════════
       REQUEST ACCESS PAGE  ·  rq-* prefix
       Uses home-v2.css palette + scaffolding.
       Offsets left by 48px for the rail.
    ════════════════════════════════════════════════ */

    /* Rail gutter is reserved per-section (site standard), not on <body>. */
    @media (max-width: 900px) { .rq-intro, .rq-form-section { padding-left: var(--pad-x); } }

    /* ── Intro section ── */
    .rq-intro {
      background: var(--bg-primary);
      padding: 140px var(--pad-x) 64px;
      padding-left: calc(48px + var(--pad-x));
    }
    .rq-intro-inner {
      max-width: 960px;
      margin: 0 auto 0 0;
    }
    .rq-eyebrow {
      font-family: var(--f-mono);
      font-size: 12px;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: var(--accent-ink);
      margin-bottom: 18px;
    }
    .rq-title {
      font-family: var(--f-display);
      font-weight: 300;
      font-size: clamp(38px, 5.5vw, 72px);
      line-height: 1.03;
      letter-spacing: -0.02em;
      color: var(--text-primary);
      margin-bottom: 22px;
    }
    .rq-desc {
      font-size: clamp(16px, 1.2vw, 18.5px);
      line-height: 1.8;
      color: var(--text-secondary);
      max-width: 560px;
      margin-bottom: 52px;
    }

    /* 4-step process strip */
    .rq-steps {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      border-top: 1px solid var(--border);
      padding-top: 32px;
    }
    @media (max-width: 760px) {
      .rq-steps { grid-template-columns: 1fr 1fr; gap: 24px 0; }
    }
    @media (max-width: 460px) {
      .rq-steps { grid-template-columns: 1fr; }
    }
    .rq-step {
      padding: 0 28px;
      border-right: 1px solid var(--border);
    }
    .rq-step:first-child { padding-left: 0; }
    .rq-step:last-child { border-right: none; padding-right: 0; }
    @media (max-width: 760px) {
      .rq-step { border-right: none; padding: 0; }
    }
    .rq-step-num {
      font-family: var(--f-display);
      font-size: 30px;
      font-weight: 300;
      color: var(--accent-ink);
      line-height: 1;
      margin-bottom: 10px;
    }
    .rq-step-title {
      font-size: 16px;
      font-weight: 600;
      color: var(--text-primary);
      margin-bottom: 5px;
      letter-spacing: 0.01em;
    }
    .rq-step-body {
      font-size: 15px;
      color: var(--text-secondary);
      line-height: 1.55;
    }

    /* ── Form section ── */
    .rq-form-section {
      background: var(--bg-secondary);
      padding: 96px var(--pad-x);
      padding-left: calc(48px + var(--pad-x));
    }
    .rq-form-inner {
      max-width: 720px;
      margin: 0 auto 0 0;
    }

    /* Block label / dividers */
    .rq-block-label {
      font-family: var(--f-mono);
      font-size: 11.5px;
      font-weight: 500;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: var(--text-secondary);
      margin-bottom: 18px;
      padding-bottom: 12px;
      border-bottom: 1px solid var(--border);
    }
    .rq-block { margin-bottom: 40px; }

    /* Catalog selection cards */
    .rq-catalogs {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
      gap: 8px;
    }
    @media (max-width: 520px) {
      .rq-catalogs { grid-template-columns: 1fr 1fr; }
    }
    .rq-cat-card {
      display: flex;
      flex-direction: column;
      gap: 10px;
      padding: 16px;
      background: var(--bg-primary);
      border: 1.5px solid var(--border);
      cursor: pointer;
      transition: border-color 0.22s, box-shadow 0.22s;
      user-select: none;
      position: relative;
    }
    .rq-cat-card:hover { border-color: var(--text-primary); }
    .rq-cat-card.selected {
      border-color: var(--text-primary);
      box-shadow: inset 0 0 0 1px var(--text-primary);
    }
    .rq-cat-card input[type="checkbox"] { display: none; }
    .rq-cat-top {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 8px;
    }
    .rq-cat-year {
      font-family: var(--f-display);
      font-size: 30px;
      font-weight: 300;
      line-height: 1;
      color: var(--text-primary);
    }
    .rq-cat-check {
      width: 18px;
      height: 18px;
      border: 1.5px solid var(--border);
      border-radius: 2px;
      flex-shrink: 0;
      display: grid;
      place-items: center;
      margin-top: 4px;
      transition: background 0.2s, border-color 0.2s;
    }
    .rq-cat-card.selected .rq-cat-check {
      background: var(--text-primary);
      border-color: var(--text-primary);
    }
    .rq-cat-check-tick {
      display: none;
      width: 10px;
      height: 10px;
    }
    .rq-cat-card.selected .rq-cat-check-tick { display: block; }
    .rq-cat-name {
      font-size: 14px;
      color: var(--text-secondary);
      line-height: 1.4;
    }
    .rq-cat-tag {
      display: inline-block;
      font-family: var(--f-mono);
      font-size: 9px;
      font-weight: 500;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      padding: 3px 9px;
      border-radius: 100px;
      margin-top: 2px;
    }
    .rq-cat-tag--open {
      background: rgba(46,46,46,0.06);
      color: var(--text-secondary);
      border: 1px solid var(--border);
    }
    .rq-cat-tag--reserved {
      background: rgba(200,165,140,0.14);
      color: var(--accent);
      border: 1px solid rgba(200,165,140,0.38);
    }

    /* Request type segment */
    .rq-type-row {
      display: flex;
      gap: 6px;
      flex-wrap: wrap;
    }
    .rq-type-btn {
      flex: 1;
      min-width: 140px;
      padding: 12px 16px;
      background: var(--bg-primary);
      border: 1.5px solid var(--border);
      font-family: var(--f-body);
      font-size: 14px;
      font-weight: 500;
      color: var(--text-secondary);
      text-align: center;
      cursor: pointer;
      transition: all 0.22s;
    }
    .rq-type-btn:hover { border-color: var(--text-primary); color: var(--text-primary); }
    .rq-type-btn.active {
      background: var(--text-primary);
      border-color: var(--text-primary);
      color: var(--bg-primary);
    }

    /* Form fields */
    .rq-field { margin-bottom: 20px; }
    .rq-label {
      display: block;
      font-family: var(--f-mono);
      font-size: 12px;
      font-weight: 500;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--text-secondary);
      margin-bottom: 8px;
    }
    .rq-input,
    .rq-select,
    .rq-textarea {
      width: 100%;
      padding: 12px 14px;
      background: var(--bg-primary);
      border: 1.5px solid var(--border);
      font-family: var(--f-body);
      font-size: 16px;
      color: var(--text-primary);
      outline: none;
      transition: border-color 0.22s;
      border-radius: 0;
      appearance: none;
      -webkit-appearance: none;
    }
    .rq-input:focus,
    .rq-select:focus,
    .rq-textarea:focus { border-color: var(--text-primary); }
    .rq-input::placeholder,
    .rq-textarea::placeholder { color: var(--text-muted); font-size: 15px; }
    .rq-textarea { min-height: 110px; resize: vertical; }
    .rq-select {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B6460' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 14px center;
      padding-right: 36px;
      cursor: pointer;
    }
    .rq-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }
    @media (max-width: 560px) { .rq-row { grid-template-columns: 1fr; } }

    /* Interest chips */
    .rq-chips {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }
    .rq-chip {
      padding: 8px 18px;
      background: var(--bg-primary);
      border: 1.5px solid var(--border);
      font-size: 14px;
      font-weight: 500;
      color: var(--text-secondary);
      cursor: pointer;
      transition: all 0.2s;
      border-radius: 100px;
    }
    .rq-chip:hover { border-color: var(--text-primary); color: var(--text-primary); }
    .rq-chip.selected {
      background: var(--text-primary);
      border-color: var(--text-primary);
      color: var(--bg-primary);
    }

    /* Error */
    .rq-error {
      display: none;
      padding: 13px 16px;
      background: rgba(165,40,40,0.06);
      border: 1px solid rgba(165,40,40,0.22);
      font-size: 14px;
      color: #952020;
      margin-bottom: 24px;
      line-height: 1.5;
    }

    /* Submit row */
    .rq-submit-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
      flex-wrap: wrap;
      padding-top: 28px;
      border-top: 1px solid var(--border);
    }
    .rq-privacy {
      font-size: 13px;
      color: var(--text-secondary);
      line-height: 1.65;
      flex: 1;
      min-width: 200px;
    }
    .rq-privacy a {
      text-decoration: underline;
      text-underline-offset: 2px;
      color: var(--text-secondary);
    }
    .rq-submit {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 15px 30px;
      background: var(--text-primary);
      border: none;
      color: var(--bg-primary);
      font-family: var(--f-body);
      font-size: 13px;
      font-weight: 600;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      cursor: pointer;
      transition: opacity 0.3s;
      flex-shrink: 0;
    }
    .rq-submit:hover { opacity: 0.82; }
    .rq-submit:disabled { opacity: 0.45; cursor: default; }

    /* ── Success state ── */
    .rq-success {
      display: none;
      padding: 80px var(--pad-x) 96px;
      background: var(--bg-secondary);
    }
    .rq-success.show { display: block; }
    .rq-success-inner {
      max-width: 620px;
      margin: 0 auto;
      text-align: center;
    }
    .rq-success-icon {
      width: 60px;
      height: 60px;
      border-radius: 50%;
      background: rgba(200,165,140,0.12);
      border: 1px solid rgba(200,165,140,0.35);
      display: grid;
      place-items: center;
      margin: 0 auto 32px;
      color: var(--accent);
    }
    .rq-success-title {
      font-family: var(--f-display);
      font-weight: 300;
      font-size: clamp(34px, 5vw, 56px);
      color: var(--text-primary);
      margin-bottom: 16px;
      letter-spacing: -0.02em;
    }
    .rq-success-sub {
      font-size: 18px;
      color: var(--text-secondary);
      line-height: 1.8;
      margin-bottom: 40px;
    }
    .rq-success-detail {
      background: var(--bg-primary);
      border: 1px solid var(--border);
      text-align: left;
      margin-bottom: 40px;
    }
    .rq-detail-row {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      gap: 16px;
      padding: 13px 20px;
      border-bottom: 1px solid var(--border-soft);
      font-size: 15px;
    }
    .rq-detail-row:last-child { border-bottom: none; }
    .rq-detail-key {
      color: var(--text-muted);
      font-size: 13px;
      font-family: var(--f-mono);
      letter-spacing: 0.1em;
      text-transform: uppercase;
      flex-shrink: 0;
    }
    .rq-detail-val {
      font-weight: 500;
      color: var(--text-primary);
      text-align: right;
    }
    .rq-success-actions {
      display: flex;
      gap: 10px;
      justify-content: center;
      flex-wrap: wrap;
    }
    .rq-action-btn {
      padding: 12px 22px;
      font-size: 13px;
      font-weight: 500;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      transition: all 0.22s;
      display: inline-block;
    }
    .rq-action-btn--primary {
      background: var(--text-primary);
      color: var(--bg-primary);
      border: 1px solid var(--text-primary);
    }
    .rq-action-btn--primary:hover { opacity: 0.82; }
    .rq-action-btn--secondary {
      background: transparent;
      color: var(--text-primary);
      border: 1px solid var(--border);
    }
    .rq-action-btn--secondary:hover { border-color: var(--text-primary); }

/* ═══════════════════════════════════════════
   HERO BACKDROP — matches the other pages
   ═══════════════════════════════════════════ */
.rq-intro { position: relative; overflow: hidden; }

.rq-backdrop {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.5;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 58%, transparent 92%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 58%, transparent 92%);
}

.rq-backdrop img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 72% 48%;
  display: block;
}

/* keep the copy above the artwork */
.rq-intro-inner { position: relative; z-index: 1; }

@media (max-width: 900px) {
  .rq-backdrop { opacity: 0.26; }
}
