/* FirmRx prescription design shared by product and company pages. */
section:not(.hero) > .wrap, footer > .wrap { padding-left: 0; padding-right: 0; max-width: 1340px; }
section { padding-top: 84px; padding-bottom: 84px; }
.hero { height: auto; min-height: 700px; }
.hero-inner { padding-top: 140px; padding-bottom: 64px; }
.hero-copy { max-width: 620px; padding: 32px 36px; border-radius: 16px;
  border: 1px solid rgba(208,168,92,.5); background: linear-gradient(135deg,rgba(7,21,34,.96),rgba(7,21,34,.8));
  box-shadow: inset 0 1px rgba(228,200,136,.15),0 24px 70px rgba(0,0,0,.35); }
.hero-copy .h-xl { font-size: clamp(34px,calc(3.7vw / var(--z, 1)),52px); font-weight: 500; line-height: 1.12; }
.hero-copy .lead { color: #c0cbd3; max-width: none; }
.prescription-label { display: inline-flex; gap: 10px; align-items: center; margin-bottom: 20px;
  color: var(--gold-lt); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.prescription-label span { font: 26px/1 var(--serif); letter-spacing: 0; }
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 26px; }
.btn { border-radius: 7px; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--gold-lt); outline-offset: 5px; }
.h-lg { font-weight: 500; }
.lead { color: #adbdca; }
.how-head-grid { grid-template-columns: .85fr 1.15fr; gap: 48px; }
.how-image, .step-visual, .app-visual { border: 1px solid rgba(208,168,92,.5); border-radius: 14px;
  box-shadow: 0 24px 60px -24px #000,0 0 30px rgba(208,168,92,.05); }
.feat-tile, .founder-card { position: relative; border-radius: 13px; border-color: rgba(208,168,92,.35);
  background: radial-gradient(ellipse at 100% 0,rgba(208,168,92,.08),transparent 65%),linear-gradient(145deg,#122c40,#081724);
  box-shadow: inset 0 1px rgba(228,200,136,.09),0 14px 35px -24px #000; }
.feat-tile .ficon { border: 1px solid rgba(208,168,92,.4); background: linear-gradient(145deg,#263f50,#102331); width: 44px; height: 44px; }
.feat-tile h3 { color: #ead09d; font-weight: 500; font-size: 20px; }
.feat-tile p, .founder-bio { color: #b1c0cc; }
.callout-bar, .mobile-grid { border: 1px solid rgba(208,168,92,.32); border-radius: 16px;
  background: radial-gradient(ellipse at 20% 0,rgba(37,72,96,.4),transparent 65%),#091b29; }
section > .wrap.mobile-grid { padding: 40px; }
.callout-bar { padding: 30px; }
.step-num-circle { border-color: var(--gold); box-shadow: 0 0 20px rgba(208,168,92,.09); }
.phone-frame { box-shadow: 0 25px 60px -20px #000,0 0 0 1px rgba(208,168,92,.45); }
.final-cta { padding: 64px calc(5vw / var(--z, 1)); }
.final-cta-inner { isolation: isolate; position: relative; overflow: hidden; max-width: 1340px;
  padding: 70px 28px; border: 1px solid rgba(208,168,92,.5); border-radius: 18px;
  background: radial-gradient(ellipse at 50% 0,rgba(208,168,92,.13),transparent 65%),linear-gradient(145deg,#10293c,#071522); }
.final-cta-inner::before { content: '℞'; position: absolute; z-index: -1; top: 0; right: 3%;
  color: rgba(228,200,136,.055); font: 400px/1 var(--serif); pointer-events: none; }
.final-cta .h-xl { font-size: clamp(34px,calc(4.4vw / var(--z, 1)),62px); font-weight: 500; }
.gold-text { color: var(--gold-lt); }
.final-cta .lead { max-width: 60ch; margin: 20px auto 0; }
.foot-col a, .foot-brand p { color: #91a4b5; }
/* Scroll reveal (driven by reveal.js); content stays visible if JS never runs */
.reveal { opacity: 1; transform: none; }
.js-reveal .reveal { opacity: 0; transform: translateY(28px); transition: opacity 800ms var(--ease), transform 800ms var(--ease); transition-delay: var(--reveal-delay, 0ms); }
.js-reveal .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js-reveal .reveal { opacity: 1; transform: none; transition: none; } }
@media(max-width: 1050px) { .how-head-grid { gap: 30px; } }
@media(max-width: 900px) {
  section { padding-top: 60px; padding-bottom: 60px; }
  .hero { min-height: 660px; }
  .hero-inner { padding-top: 126px; padding-bottom: 44px; }
  .how-head-grid { grid-template-columns: 1fr; }
}
@media(max-width: 640px) {
  .hero { min-height: 0; }
  .hero-copy { padding: 26px 22px; }
  .hero-copy .h-xl { font-size: clamp(30px,calc(8vw / var(--z, 1)),40px); }
  .hero-copy .lead { font-size: 14px; line-height: 1.7; }
  .hero-actions { gap: 10px; }
  .hero-actions .btn { width: 100%; padding: 0 12px; }
  section > .wrap.mobile-grid { padding: 28px 20px; }
  .final-cta-inner { padding: 48px 22px; }
  .final-cta-inner::before { font-size: 280px; top: 60px; }
  .prescription-label { font-size: 9px; letter-spacing: .12em; }
}
@media(prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
.how-image-frame { border-color: rgba(208,168,92,.45); box-shadow: 0 24px 60px -24px #000; }
.rx-process { position: relative; isolation: isolate; overflow: hidden; border: 1px solid rgba(208,168,92,.45);
  border-radius: 16px; padding: 38px; background: radial-gradient(ellipse at 80% 0,#254156,transparent 70%),#081a28; }
.process-rx { position: absolute; right: 20px; top: 40px; font: 230px/1 var(--serif); color: rgba(228,200,136,.06); z-index: -1; }
.rx-process ol { list-style: none; counter-reset: process; margin: 30px 0; padding: 0; display: grid; gap: 14px; }
.rx-process li { counter-increment: process; display: flex; gap: 16px; align-items: center; padding: 17px;
  border: 1px solid rgba(208,168,92,.25); border-radius: 9px; background: rgba(7,21,34,.55); font-size: 14px; line-height: 1.5; }
.rx-process li::before { content: '0' counter(process); color: var(--gold-lt); font-family: var(--serif); font-size: 21px; }
.process-caption { color: #93aabb; font-size: 10px; text-transform: uppercase; letter-spacing: .15em; }
.discovery-process { width: 360px; max-width: 100%; }
@media(max-width:640px) { .rx-process { padding: 26px 20px; } .rx-process li { padding: 14px; } }
.mobile-grid > * { min-width: 0; }
.discovery-process { width: 100%; max-width: 360px; }
@media(max-width:780px) { .mobile-grid { grid-template-columns: minmax(0,1fr); } }

/* Generated prescription artwork for the appointment card. */
.final-cta-inner {
  background: linear-gradient(90deg, rgba(7,21,34,.97) 0%, rgba(7,21,34,.88) 38%, rgba(7,21,34,.65) 64%, rgba(7,21,34,.15) 100%), url('/images/appointment-prescription.jpg') center right / cover no-repeat;
}
.final-cta-inner::before, .cta-watermark { display: none; }
@media (max-width: 640px) {
  .final-cta-inner { background: linear-gradient(90deg,rgba(7,21,34,.94),rgba(7,21,34,.78)),url('/images/appointment-prescription.jpg') 70% center / cover no-repeat; }
}

/* Even out heading line lengths so wider containers never leave a single word on its own line */
h1, h2, h3 { text-wrap: balance; }

/* Phone hero (same approach as WesCas): the photo becomes an uncovered block under the header,
   and the copy sits below it on the page background instead of in a glass box over the image. */
@media (max-width: 720px) {
  .hero { display: block; height: auto; min-height: 0; padding-top: 82px; overflow: visible; background: #071522; }
  .hero-bg-photo { position: relative; inset: auto; aspect-ratio: 16 / 9; }
  .hero::after { display: none; }
  .hero-inner { display: block; padding: 30px 22px 46px; }
  .hero-copy { max-width: none; padding: 0; background: none; border: none; border-radius: 0; box-shadow: none;
    -webkit-backdrop-filter: none; backdrop-filter: none; }
}
