/* ============================================================
   rsteven.com — enhancement layer (services, recognition, form)
   Loads after the built bundle; uses the same design tokens.
   ============================================================ */

/* ---------- Services ---------- */
.services {
  padding: var(--space-2xl) var(--space-md);
  max-width: var(--max-width);
  margin: 0 auto;
}
.services-heading {
  font-family: var(--font-serif);
  font-size: var(--text-heading);
  margin-bottom: var(--space-sm);
}
.services-heading em { font-style: italic; color: var(--color-accent); }
.services-intro {
  color: var(--color-text-secondary);
  font-size: 1rem;
  line-height: var(--leading-relaxed);
  max-width: 560px;
  margin-bottom: var(--space-lg);
}
.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--space-md);
}
.service-card {
  background: var(--color-bg-elevated);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: var(--space-md);
  transition: transform var(--duration-normal) var(--ease-out),
              border-color var(--duration-normal) var(--ease-out),
              box-shadow var(--duration-normal) var(--ease-out);
}
.service-card:hover {
  transform: translateY(-6px);
  border-color: #b8922a66;
  box-shadow: 0 24px 48px -24px #b8922a33;
}
.service-icon {
  width: 56px; height: 56px;
  display: flex; align-items: center; justify-content: center;
  color: var(--color-accent);
  background: #b8922a14;
  border: 1px solid #b8922a33;
  border-radius: 14px;
  margin-bottom: var(--space-sm);
}
.service-title {
  font-family: var(--font-serif);
  font-size: var(--text-subheading);
  margin-bottom: .5rem;
}
.service-desc {
  color: var(--color-text-secondary);
  font-size: .9375rem;
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-sm);
}
.service-points { list-style: none; padding: 0; margin: 0; }
.service-points li {
  color: var(--color-text-muted);
  font-size: .8125rem;
  padding: .35rem 0 .35rem 1.25rem;
  position: relative;
  border-top: 1px solid var(--color-border);
}
.service-points li::before {
  content: "";
  position: absolute; left: 0; top: 50%;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--color-accent);
  transform: translateY(-50%);
}

/* ---------- Process ---------- */
.process { margin-top: var(--space-xl); }
.process-title {
  font-family: var(--font-mono);
  font-size: var(--text-caption);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: var(--space-md);
}
.process-steps {
  list-style: none; padding: 0; margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-md);
  counter-reset: step;
}
.process-step {
  position: relative;
  padding-top: var(--space-sm);
  border-top: 1px solid var(--color-border);
}
.process-step .process-num {
  font-family: var(--font-mono);
  font-size: .75rem;
  color: var(--color-accent);
  letter-spacing: var(--tracking-wider);
  display: block;
  margin-bottom: .5rem;
}
.process-step h4 {
  font-family: var(--font-serif);
  font-size: 1.125rem;
  font-weight: 400;
  margin-bottom: .35rem;
  color: var(--color-text);
}
.process-step p {
  color: var(--color-text-muted);
  font-size: .875rem;
  line-height: var(--leading-normal);
}

/* ---------- Recognition ---------- */
.recognition {
  padding: var(--space-2xl) var(--space-md);
  max-width: var(--max-width);
  margin: 0 auto;
}
.recognition-heading {
  font-family: var(--font-serif);
  font-size: var(--text-heading);
  margin-bottom: var(--space-lg);
}
.recognition-heading em { font-style: italic; color: var(--color-accent); }
.recognition-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-md);
}
.recognition-card {
  margin: 0;
  background: linear-gradient(160deg, #b8922a0d 0%, var(--color-bg-elevated) 45%);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: border-color var(--duration-normal) var(--ease-out);
}
.recognition-card:hover { border-color: #b8922a66; }
.recognition-card blockquote {
  margin: 0 0 var(--space-sm);
  font-family: var(--font-serif);
  font-size: 1.1875rem;
  line-height: 1.55;
  color: var(--color-text);
  quotes: none;
}
.recognition-card blockquote::before {
  content: "“";
  display: block;
  font-size: 2.5rem;
  line-height: 1;
  color: var(--color-accent);
  margin-bottom: .25rem;
}
.recognition-card figcaption {
  font-family: var(--font-mono);
  font-size: .75rem;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--color-text-muted);
}

/* ---------- Inquiry form ---------- */
.inquiry-wrap {
  max-width: 720px;
  margin: var(--space-xl) auto 0;
  text-align: left;
  background: var(--color-bg-elevated);
  border: 1px solid var(--color-border);
  border-radius: 20px;
  padding: var(--space-lg) var(--space-md);
}
.inquiry-title {
  font-family: var(--font-serif);
  font-size: var(--text-subheading);
  text-align: center;
  margin-bottom: .35rem;
}
.inquiry-sub {
  color: var(--color-text-muted);
  font-size: .875rem;
  text-align: center;
  margin-bottom: var(--space-md);
}
.inquiry-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-sm);
}
@media (max-width: 600px) { .inquiry-row { grid-template-columns: 1fr; } }
.inquiry-field { margin-bottom: var(--space-sm); }
.inquiry-field label {
  display: block;
  font-family: var(--font-mono);
  font-size: .6875rem;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--color-text-secondary);
  margin-bottom: .4rem;
}
.inquiry-optional { color: var(--color-text-muted); text-transform: none; letter-spacing: 0; }
.inquiry-field input,
.inquiry-field select,
.inquiry-field textarea {
  width: 100%;
  background: var(--color-bg);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  padding: .8rem 1rem;
  font-family: var(--font-sans);
  font-size: .9375rem;
  transition: border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);
  appearance: none;
}
.inquiry-field textarea { resize: vertical; min-height: 120px; }
.inquiry-field select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%23b8922a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 2.5rem;
}
.inquiry-field input:focus,
.inquiry-field select:focus,
.inquiry-field textarea:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px #b8922a26;
}
.inquiry-field input::placeholder,
.inquiry-field textarea::placeholder { color: var(--color-text-muted); }
.inquiry-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.inquiry-submit {
  width: 100%;
  justify-content: center;
  margin-top: .5rem;
  cursor: pointer;
}
.inquiry-submit:disabled { opacity: .6; cursor: wait; }
.inquiry-status {
  min-height: 1.25rem;
  margin-top: var(--space-sm);
  font-size: .875rem;
  text-align: center;
}
.inquiry-status.is-success { color: #8fbf6f; }
.inquiry-status.is-error { color: #d97a6a; }
.inquiry-direct {
  margin-top: var(--space-sm);
  text-align: center;
  font-size: .8125rem;
  color: var(--color-text-muted);
}
.inquiry-direct a { color: var(--color-accent); text-decoration: none; }
.inquiry-direct a:hover { color: var(--color-accent-light); }

/* Scroll-margin so anchored sections clear the fixed nav */
.services, .recognition { scroll-margin-top: var(--nav-height); }

/* ---------- Cinematic hero ---------- */
.hero-bg { display: none; } /* replaced by the cinema sequence */
.hero-cinema {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #050505;
}
.cine-frame {
  position: absolute;
  inset: -4%;
  width: 108%;
  height: 108%;
  object-fit: cover;
  object-position: center 22%;
  opacity: 0;
  filter: grayscale(18%) contrast(1.06) brightness(.92);
  transition: opacity 2.6s var(--ease-in-out);
  will-change: opacity, transform;
}
.cine-frame.cine-wide { object-position: center 35%; }
.cine-frame.is-active {
  opacity: .58;
  animation: cineKenBurns 16s var(--ease-in-out) both;
}
.cine-frame:nth-child(even).is-active {
  animation-name: cineKenBurnsAlt;
}
@keyframes cineKenBurns {
  0%   { transform: scale(1.0) translate(0, 0); }
  100% { transform: scale(1.12) translate(-1.5%, -1%); }
}
@keyframes cineKenBurnsAlt {
  0%   { transform: scale(1.12) translate(1.5%, 0); }
  100% { transform: scale(1.0) translate(0, -1%); }
}
/* gold light sweep */
.cine-sweep {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(115deg,
    transparent 30%,
    rgba(184, 146, 42, 0.10) 46%,
    rgba(212, 173, 62, 0.16) 50%,
    rgba(184, 146, 42, 0.10) 54%,
    transparent 70%);
  background-size: 280% 100%;
  mix-blend-mode: screen;
  animation: cineSweep 13s var(--ease-in-out) infinite;
}
@keyframes cineSweep {
  0%, 55%  { background-position: 120% 0; opacity: 0; }
  70%      { opacity: 1; }
  100%     { background-position: -60% 0; opacity: 0; }
}
/* film grain */
.cine-grain {
  position: absolute;
  inset: -50%;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity: .05;
  animation: cineGrain .9s steps(4) infinite;
}
@keyframes cineGrain {
  0%   { transform: translate(0, 0); }
  25%  { transform: translate(-2%, 1.5%); }
  50%  { transform: translate(1.5%, -2%); }
  75%  { transform: translate(-1%, -1%); }
  100% { transform: translate(2%, 2%); }
}
@media (prefers-reduced-motion: reduce) {
  .cine-frame.is-active { animation: none; transform: none; }
  .cine-sweep, .cine-grain { animation: none; display: none; }
}

/* ---------- Timeline article links ---------- */
.timeline-link {
  color: inherit;
  text-decoration: none;
  display: inline-flex;
  align-items: baseline;
  gap: .4rem;
  transition: color var(--duration-fast) var(--ease-out);
}
.timeline-link .tl-arrow {
  color: var(--color-accent);
  opacity: .55;
  transform: translate(0, 1px);
  transition: opacity var(--duration-fast) var(--ease-out),
              transform var(--duration-fast) var(--ease-out);
}
.timeline-link:hover { color: var(--color-accent-light); }
.timeline-link:hover .tl-arrow {
  opacity: 1;
  transform: translate(2px, -1px);
}
