/* Product catalog views — scoped to fp- so the existing site shell remains untouched. */
.fp-catalog,
.fp-product {
  --fp-ink: var(--purple-rich, #3a2050);
  --fp-deep: #1e1030;
  --fp-purple: var(--purple, #6f4b83);
  --fp-gold: var(--gold, #e0b426);
  --fp-gold-light: var(--gold-light, #f2d77b);
  --fp-cream: var(--cream, #f7f3e9);
  --fp-paper: #fffdf8;
  --fp-muted: #716879;
  --fp-rule: rgba(58, 32, 80, .17);
  color: var(--fp-ink);
  font-family: inherit;
  line-height: 1.65;
}
.fp-catalog *, .fp-product * { box-sizing: border-box; }
.fp-catalog a, .fp-product a { color: inherit; }
.fp-catalog a:focus-visible, .fp-product a:focus-visible,
.fp-product summary:focus-visible {
  outline: 3px solid var(--fp-gold);
  outline-offset: 4px;
  border-radius: 2px;
}
.fp-catalog h1, .fp-catalog h2, .fp-catalog h3,
.fp-product h1, .fp-product h2, .fp-product h3, .fp-product p { margin-top: 0; }
.fp-kicker {
  margin: 0 0 12px !important;
  color: var(--fp-purple);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: uppercase;
}
.fp-hero {
  position: relative;
  overflow: hidden;
  color: var(--fp-paper);
  background:
    radial-gradient(ellipse at 90% 10%, rgba(224,180,38,.15), transparent 34%),
    linear-gradient(122deg, #1e1030 0%, #342044 70%, #472c58 100%);
  padding: clamp(52px, 8vw, 112px) clamp(22px, 8vw, 112px) 38px;
}
.fp-hero::after {
  position: absolute;
  right: -8%;
  top: -25%;
  width: min(44vw, 590px);
  aspect-ratio: 1;
  border: 1px solid rgba(242,215,123,.2);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(242,215,123,.025), 0 0 0 70px rgba(242,215,123,.025);
  content: "";
  pointer-events: none;
}
.fp-hero-inner { position: relative; z-index: 1; max-width: 920px; }
.fp-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 28px;
  color: rgba(255,253,248,.74);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.fp-eyebrow > span { width: 32px; height: 2px; background: var(--fp-gold); }
.fp-hero h1, .fp-product h1 {
  margin: 0;
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  font-size: clamp(54px, 8.3vw, 100px);
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: .97;
  text-transform: uppercase;
}
.fp-hero h1 em {
  color: var(--fp-gold-light);
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: .78em;
  font-weight: 400;
  letter-spacing: -.04em;
  text-transform: none;
}
.fp-hero-lede {
  max-width: 685px;
  margin: 27px 0 34px;
  color: rgba(255,253,248,.76);
  font-size: clamp(16px, 1.7vw, 19px);
  line-height: 1.75;
}
.fp-family-nav {
  height: auto;
  min-height: 0;
  box-shadow: none;
  backdrop-filter: none;
  position: static;
  background: transparent;
  padding: 0;
  border: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  max-width: 900px;
}
.fp-family-nav a {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 48px;
  padding: 10px 16px;
  border: 1px solid rgba(255,253,248,.22);
  color: var(--fp-paper) !important;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: background .18s ease, border-color .18s ease;
}
.fp-family-nav a:hover { border-color: var(--fp-gold); background: rgba(224,180,38,.09); }
.fp-family-nav a span { color: var(--fp-gold-light); font-family: 'Barlow Condensed', sans-serif; font-size: 15px; }
.fp-family-nav a b { color: var(--fp-gold); font-size: 16px; }
.fp-hero-note {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 14px;
  max-width: 920px;
  margin: 46px auto 0;
  padding-top: 22px;
  border-top: 1px solid rgba(255,253,248,.17);
}
.fp-note-mark {
  display: grid;
  width: 37px;
  height: 37px;
  flex: 0 0 37px;
  place-items: center;
  border: 1px solid rgba(224,180,38,.55);
  color: var(--fp-gold-light);
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 22px;
}
.fp-hero-note p { margin: 0; color: rgba(255,253,248,.58); font-size: 12px; line-height: 1.55; }
.fp-hero-note strong { color: var(--fp-gold-light); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.fp-catalog-intro {
  display: grid;
  grid-template-columns: minmax(160px, .7fr) 2fr;
  gap: 26px;
  padding: 37px clamp(22px, 8vw, 112px);
  background: var(--fp-cream);
}
.fp-catalog-intro .fp-kicker { margin: 5px 0 0 !important; }
.fp-catalog-intro > p:last-child { max-width: 760px; margin: 0; color: #51475b; font-size: 16px; }
.fp-family { padding: 68px clamp(22px, 8vw, 112px) 78px; background: var(--fp-paper); scroll-margin-top: 20px; }
.fp-family--tint { background: #f1ecdf; }
.fp-family-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(220px, .6fr);
  align-items: end;
  gap: 32px;
  max-width: 1180px;
  margin: 0 auto 34px;
  padding-bottom: 25px;
  border-bottom: 1px solid var(--fp-rule);
}
.fp-family-heading h2 {
  margin: 0 0 12px;
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  font-size: clamp(34px, 4.5vw, 54px);
  font-weight: 800;
  line-height: 1.05;
}
.fp-family-description { max-width: 700px; margin: 0; color: #5d5364; font-size: 16px; }
.fp-attribution { margin: 0; padding-left: 17px; border-left: 2px solid var(--fp-gold); color: #716879; font-size: 12px; line-height: 1.65; }
.fp-family-heading > div { min-width: 0; }
.fp-family-heading .fp-kicker { margin-bottom: 8px !important; }
.fp-product-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  max-width: 1180px;
  margin: 0 auto;
}
.fp-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: clamp(21px, 3vw, 32px);
  border: 1px solid rgba(58,32,80,.14);
  border-top: 3px solid var(--fp-gold);
  background: rgba(255,253,248,.82);
  box-shadow: 0 10px 28px rgba(30,16,48,.035);
}
.fp-card-family { margin: 0 0 11px; color: var(--fp-purple); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.fp-card h3 { margin: 0; font-family: 'Barlow Condensed', sans-serif; font-size: clamp(25px, 3vw, 33px); line-height: 1.1; }
.fp-card h3 a { text-decoration: none; }
.fp-card h3 a:hover { color: #754f87; text-decoration: underline; text-decoration-color: var(--fp-gold); text-underline-offset: 4px; }
.fp-card-tagline { margin: 8px 0 14px !important; color: var(--fp-purple); font-family: 'DM Serif Display', Georgia, serif; font-size: 17px; font-style: italic; }
.fp-card > p:not(.fp-card-family):not(.fp-card-tagline) { margin: 0 0 21px; color: #5c5362; font-size: 14px; line-height: 1.7; }
.fp-card-links { display: flex; flex-wrap: wrap; gap: 12px 20px; margin-top: auto; padding: 15px 0 17px; border-top: 1px solid var(--fp-rule); }
.fp-card-links a, .fp-text-link { color: var(--fp-ink); font-size: 12px; font-weight: 700; text-decoration-color: var(--fp-gold); text-underline-offset: 3px; }
.fp-card-links a:hover, .fp-text-link:hover { color: #754f87; }
.fp-button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 12px 19px;
  border: 1px solid var(--fp-gold);
  background: var(--fp-ink);
  color: var(--fp-paper) !important;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .025em;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.fp-button:hover { background: var(--fp-gold); color: var(--fp-deep) !important; transform: translateY(-1px); }
.fp-button--small { align-self: flex-start; min-height: 42px; padding: 10px 14px; font-size: 11px; }
.fp-card .fp-card-scope {padding:12px 14px;border-left:2px solid var(--fp-gold);background:rgba(224,180,38,.08);font-size:12px;line-height:1.65;}

/* Detail page */
.fp-product { background: var(--fp-paper); }
.fp-product-top {
  padding: 27px clamp(22px, 8vw, 112px) 56px;
  color: var(--fp-paper);
  background:
    radial-gradient(ellipse at 96% 4%, rgba(224,180,38,.13), transparent 36%),
    linear-gradient(120deg, #1e1030, #382349);
}
.fp-breadcrumb { height:auto;min-height:0;box-shadow:none;backdrop-filter:none;position:static;background:transparent;padding:0;border:0;display: flex;flex-wrap:wrap; align-items: center; gap: 11px; margin: 0 0 39px; color: rgba(255,253,248,.55); font-size: 12px; }
.fp-archive-note{padding:18px 22px;margin-bottom:28px;background:var(--gold-pale);border-left:3px solid var(--gold);color:var(--purple-rich);font-size:14px;line-height:1.6;}
.fp-archive-note a{color:inherit;text-decoration:underline;}
.fp-breadcrumb a { color: rgba(255,253,248,.78) !important; text-decoration-color: rgba(224,180,38,.65); text-underline-offset: 4px; }
.fp-owner-line { margin: 0 0 12px; color: var(--fp-gold-light); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.fp-product h1 { max-width: 1000px; font-size: clamp(46px, 7vw, 82px); }
.fp-product-tagline { margin: 12px 0 0 !important; color: var(--fp-gold-light); font-family: 'DM Serif Display', Georgia, serif; font-size: clamp(19px, 2.5vw, 25px); font-style: italic; }
.fp-product-summary { max-width: 820px; margin: 18px 0 24px !important; color: rgba(255,253,248,.76); font-size: 17px; line-height: 1.75; }
.fp-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 17px 24px; }
.fp-hero-actions .fp-button { background: var(--fp-gold); border-color: var(--fp-gold); color: var(--fp-deep) !important; }
.fp-hero-actions .fp-button:hover { background: var(--fp-paper); border-color: var(--fp-paper); }
.fp-secondary-link { color: rgba(255,253,248,.88) !important; font-size: 12px; font-weight: 700; text-decoration-color: var(--fp-gold); text-underline-offset: 4px; }
.fp-detail-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(260px, .75fr); gap: clamp(32px, 6vw, 82px); max-width: 1300px; margin: 0 auto; padding: 60px clamp(22px, 6vw, 82px) 76px; }
.fp-detail-main { min-width: 0; }
.fp-detail-section { padding: 0 0 35px; margin: 0 0 34px; border-bottom: 1px solid var(--fp-rule); }
.fp-detail-section .fp-kicker, .fp-aside-card .fp-kicker, .fp-qualification .fp-kicker { margin-bottom: 11px !important; }
.fp-detail-section p:not(.fp-kicker), .fp-aside-card > p:not(.fp-kicker), .fp-qualification > p:not(.fp-kicker), .fp-missing-brief > p:not(.fp-kicker) { color: #51475b; font-size: 14px; line-height: 1.75; }
.fp-introduction { margin-bottom: 0 !important; font-size: 19px !important; line-height: 1.7 !important; }
.fp-outcomes { display: grid; gap: 22px; margin: 0; padding: 0; list-style: none; }
.fp-outcomes li { display: grid; grid-template-columns: 13px 1fr; gap: 14px; }
.fp-outcome-index { width: 9px; height: 9px; margin-top: 8px; border: 2px solid var(--fp-gold); transform: rotate(45deg); }
.fp-outcomes h3 { margin: 0 0 5px; font-size: 15px; line-height: 1.4; }
.fp-outcomes p { margin: 0 !important; }
.fp-section-note { margin: -2px 0 21px !important; color: #7b7180 !important; font-size: 12px !important; font-style: italic; }
.fp-workflow { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: fpworkflow; }
.fp-workflow li { display: grid; grid-template-columns: 45px 1fr; gap: 14px; padding: 17px 0; border-top: 1px solid var(--fp-rule); }
.fp-step-number { color: var(--fp-purple); font-family: 'Barlow Condensed', sans-serif; font-size: 21px; font-weight: 800; }
.fp-workflow li p { margin: 0 !important; }
.fp-detail-aside { display: flex; flex-direction: column; gap: 13px; align-self: start; }
.fp-aside-card, .fp-qualification, .fp-missing-brief { padding: 22px; border: 1px solid var(--fp-rule); background: #f6f1e7; }
.fp-aside-card > p:last-child, .fp-qualification > p:last-child, .fp-missing-brief > p:last-child { margin-bottom: 0; }
.fp-aside-card .fp-text-link, .fp-missing-brief .fp-text-link { display: inline-block; margin-top: 8px; }
.fp-qualification { border-color: rgba(120,79,25,.28); border-left: 3px solid #a67421; background: #f4eddd; }
.fp-qualification .fp-kicker { color: #79501d; }
.fp-missing-brief { border-color: rgba(58,32,80,.22); border-left: 3px solid var(--fp-purple); background: #f0eaf2; }
.fp-missing-brief strong { color: var(--fp-ink); }
.fp-attribution-card { background: var(--fp-deep); border-color: var(--fp-deep); }
.fp-attribution-card .fp-kicker { color: var(--fp-gold-light); }
.fp-attribution-card > p:not(.fp-kicker) { color: rgba(255,253,248,.78); }
.fp-faq-list { border-top: 1px solid var(--fp-rule); }
.fp-faq { border-bottom: 1px solid var(--fp-rule); }
.fp-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 17px 0; color: var(--fp-ink); cursor: pointer; font-size: 14px; font-weight: 700; list-style: none; }
.fp-faq summary::-webkit-details-marker { display: none; }
.fp-faq summary::after { width: 22px; height: 22px; flex: 0 0 22px; border: 1px solid var(--fp-gold); border-radius: 50%; color: var(--fp-ink); content: "+"; font-size: 16px; line-height: 20px; text-align: center; }
.fp-faq[open] summary::after { content: "−"; }
.fp-faq > p { margin: -2px 35px 18px 0 !important; }
.fp-related { margin: 0; padding: 0; border-top: 1px solid var(--fp-rule); list-style: none; }
.fp-related li { border-bottom: 1px solid var(--fp-rule); }
.fp-related a { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 0; font-size: 14px; font-weight: 700; text-decoration: none; }
.fp-related a:hover { color: var(--fp-purple); }
.fp-related a span:last-child { color: #946f16; }
.fp-bottom-cta { padding: 46px clamp(22px, 8vw, 112px) 53px; border-top: 3px solid var(--fp-gold); background: var(--fp-cream); text-align: center; }
.fp-bottom-cta .fp-kicker { margin-bottom: 9px !important; }
.fp-bottom-cta h2 { margin: 0 0 8px; font-family: 'Barlow Condensed', sans-serif; font-size: clamp(30px, 4vw, 42px); line-height: 1.15; }
.fp-bottom-cta > p:not(.fp-kicker) { margin: 0 auto 22px; color: #62596a; font-size: 14px; }
.fp-not-found { min-height: 45vh; padding: 90px clamp(22px, 8vw, 112px); background: var(--fp-cream); }
.fp-not-found h1 { margin-bottom: 18px; color: var(--fp-ink); font-size: clamp(40px, 6vw, 68px); }
.fp-not-found a { text-decoration-color: var(--fp-gold); text-underline-offset: 4px; }

@media (max-width: 760px) {
  .fp-hero { padding-top: 54px; }
  .fp-hero::after { right: -30%; top: 6%; width: 75vw; }
  .fp-hero h1 { font-size: clamp(48px, 13vw, 72px); }
  .fp-hero-lede { font-size: 15px; }
  .fp-family-nav { display: grid; grid-template-columns: 1fr; }
  .fp-family-nav a { justify-content: flex-start; }
  .fp-hero-note { margin-top: 32px; }
  .fp-catalog-intro { grid-template-columns: 1fr; gap: 8px; padding-top: 27px; padding-bottom: 28px; }
  .fp-family { padding-top: 47px; padding-bottom: 52px; }
  .fp-family-heading { grid-template-columns: 1fr; gap: 17px; margin-bottom: 23px; }
  .fp-product-grid { grid-template-columns: 1fr; }
  .fp-card { padding: 23px; }
  .fp-product-top { padding-top: 22px; padding-bottom: 41px; }
  .fp-breadcrumb { margin-bottom: 31px; }
  .fp-product h1 { font-size: clamp(44px, 11vw, 68px); }
  .fp-product-summary { font-size: 15px; }
  .fp-hero-actions { align-items: flex-start; flex-direction: column; }
  .fp-detail-layout { grid-template-columns: 1fr; gap: 18px; padding-top: 42px; padding-bottom: 48px; }
  .fp-detail-aside { order: -1; }
  .fp-detail-section { padding-bottom: 27px; margin-bottom: 27px; }
  .fp-aside-card, .fp-qualification, .fp-missing-brief { padding: 19px; }
  .fp-bottom-cta { padding-top: 38px; padding-bottom: 42px; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-catalog *, .fp-product * { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
