/* FRN presentation repair — 19 October 2026.
   Scoped to the public front end. Existing layouts, content, checkout,
   navigation behavior and artwork remain owned by their original components. */
html body.frn-polish {
  --frn-brand-navy: #0b304a;
  --frn-brand-blue: #145f89;
  --frn-brand-sky: #70d5ff;
  --frn-readable-ink: #142f43;
  --frn-readable-muted: #405b6d;
}

/* The inner-page header now shares the company header's sky/navy palette. */
html body.frn-polish .frn-page-header {
  background-color: #bfefff !important;
  background-image: linear-gradient(115deg, #70d5ff, #dff8ff 65%, #f6fcff) !important;
  border-bottom: 2px solid #64c8ec !important;
  color: #0b304a !important;
}
html body.frn-polish .frn-page-header nav a {
  color: #102f45 !important;
  opacity: 1 !important;
}

/* Explicit control colors beat legacy rose, gold and orange button themes.
   The ID in :is() also wins over older body-level !important overrides. */
html body.frn-polish :is(main,#main,#top) :is(
  .btn,.frn-btn,.fb-btn,.ig-btn,.frn-cta,.frnqp-story-cta,
  .gfrn-contact-submit,.gfrn-edition-read,.gfrn-tailor-card-button,
  .frn-game-button,.gfrn-luxury-shop-actions a,.frn-shop-strip a,
  .gfrn-project-route > a,.frn-ip-hero-copy > a,
  .frn-email-signup button,.woocommerce a.button,.woocommerce button.button,
  a.button,button.single_add_to_cart_button,button[name="woocommerce_checkout_place_order"]
),
html body.frn-polish :is(#gfrn-runway-header,.frn-page-header,#gfrn-store-header) :is(.frn-project,.frn-header-quote,.bagbtn),
html body.frn-polish .frn-game-feature .frn-game-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 44px !important;
  padding: 12px 18px !important;
  border: 1px solid #256c94 !important;
  border-radius: 10px !important;
  background: #0b304a !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
  text-shadow: none !important;
  box-shadow: 0 3px 10px #082b421a !important;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
html body.frn-polish :is(main,#main,#top) :is(.btn,.frn-btn,.fb-btn,.ig-btn,.frn-cta,.frnqp-story-cta,.gfrn-edition-read,.frn-game-button,a.button,.gfrn-contact-submit,.frn-shop-strip a):hover,
html body.frn-polish .frn-page-header a.frn-header-quote:hover {
  background: #145f89 !important;
  border-color: #70d5ff !important;
  color: #fff !important;
  box-shadow: 0 4px 16px #145f892b !important;
}
html body.frn-polish :is(main,#main,#top) :is(.btn,.frn-btn,.fb-btn,.frn-cta,.frn-game-button,.gfrn-edition-read) :is(span,strong) {
  color: inherit !important;
}
html body.frn-polish :is(main,#main,#top) :is(.fb-btn-secondary,.ig-btn-secondary,.gfrn-rock-quick-button) {
  min-height: 44px !important;
  border: 1px solid #4e7d99 !important;
  border-radius: 10px !important;
  background: #edf8ff !important;
  color: #103d59 !important;
}
html body.frn-polish :is(main,#main,#top) :is(button,a,input,select,textarea,[tabindex]):focus-visible,
html body.frn-polish header :is(a,button):focus-visible {
  outline: 3px solid #087ca8 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 6px #fff !important;
}
html body.frn-polish :is(main,#main,#top) button:disabled {
  cursor: not-allowed;
  background: #e0e9ee !important;
  color: #455d6c !important;
  border-color: #8098a8 !important;
  opacity: 1 !important;
}

/* Repair the homepage's dark section/black text combination explicitly. */
html body.frn-polish.gfrn-runway-home :is(#shop,#services) {
  background: #f0f7fc !important;
  color: #142f43 !important;
}
html body.frn-polish.gfrn-runway-home :is(#shop,#services) :is(h2,h3,p,.index) {
  color: #18384e !important;
  text-shadow: none !important;
}
html body.frn-polish.gfrn-runway-home :is(#shop,#services) :is(.eyebrow,.gfrn-service-action) {
  color: #215b7b !important;
}
html body.frn-polish.gfrn-runway-home :is(#shop,#services) :is(.product,.service) {
  background: #fff !important;
  border-color: #c6dce9 !important;
  color: #142f43 !important;
}
html body.frn-polish.gfrn-runway-home #shop .product :is(h3,p) {
  color: #18384e !important;
}
html body.frn-polish footer:not(#wpfooter) {
  background: #0b304a !important;
  color: #e7f5ff !important;
}
html body.frn-polish footer:not(#wpfooter) :is(p,span,small,strong,a) {
  color: #e7f5ff !important;
  opacity: 1 !important;
}
html body.frn-polish footer:not(#wpfooter) a { text-decoration: underline; text-underline-offset: 3px; }

/* Newsletter dark panels, story labels, forms and selected pagination. */
html body.frn-polish :is(main,#main,#top) .frn-email-signup {
  background: #12364e !important;
  color: #f2f9ff !important;
}
html body.frn-polish :is(main,#main,#top) .frn-email-signup :is(h2,p,label,.frn-ip-eyebrow) {
  color: #f2f9ff !important;
  opacity: 1 !important;
}
html body.frn-polish :is(main,#main,#top) .frn-email-signup .frn-ip-eyebrow { color: #b9eaff !important; }
html body.frn-polish :is(main,#main,#top) .frn-email-signup button {
  border-color: #70d5ff !important;
}
html body.frn-polish :is(main,#main,#top) :is(.frn-book-world,.gfrn-edition-note,.gfrn-contact-guide > span) {
  color: #365d74 !important;
  font-size: 12px !important;
  opacity: 1 !important;
}
html body.frn-polish :is(main,#main,#top) .gfrn-writing-desk :is(p,span,small) { color: #40523b !important; }
html body.frn-polish :is(main,#main,#top) .frn-development .frn-eyebrow { color: #81421b !important; }
html body.frn-polish :is(main,#main,#top) .frn-goods-art.is-type :is(span,strong) { color: #163a52 !important; }
html body.frn-polish :is(main,#main,#top) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),select,textarea) {
  color: #163449 !important;
  background-color: #fff !important;
  border-color: #8ca9bb !important;
}
html body.frn-polish :is(main,#main,#top) :is(input,textarea)::placeholder { color: #526c7c !important; opacity: 1; }
html body.frn-polish :is(main,#main,#top) .page-numbers.current {
  color: #fff !important;
  background: #0b304a !important;
}

/* Fill image cards. Logos, character cutouts and reading pages keep their
   own proportions; they are not photographic card frames. */
html body.frn-polish :is(main,#main,#top) :is(.gfrn-home-card-art,.gfrn-wide-card-art,.frn-ip-cover) {
  aspect-ratio: 7 / 4;
  overflow: hidden !important;
  padding: 0 !important;
  background: #e8f2f7 !important;
}
html body.frn-polish :is(main,#main,#top) :is(.gfrn-home-card-art,.gfrn-wide-card-art,.frn-ip-cover,.frn-goods-art,.gfrn-card-media,.frn-ip-hero-image,.frn-development-visual) img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
  padding: 0 !important;
  margin: 0 !important;
  --gfrn-frame-fit: cover;
  --gfrn-frame-mobile-fit: cover;
}
html body.frn-polish :is(main,#main,#top) :is(.frn-goods-art,.gfrn-card-media,.frn-ip-hero-image,.frn-development-visual) {
  overflow: hidden !important;
  padding: 0 !important;
}
html body.frn-polish :is(main,#main,#top) .gfrn-card-media { aspect-ratio: 4 / 5 !important; }
html body.frn-polish :is(main,#main,#top) .frn-goods-art:not(.is-type) { min-height: 230px; }
html body.frn-polish :is(main,#main,#top) :is(.frn-book-card > a > img,.gfrn-edition-cover img) {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 2 / 3 !important;
  object-fit: cover !important;
  padding: 0 !important;
}
html body.frn-polish.gfrn-runway-home #shop .product > img {
  display: block !important;
  width: 100% !important;
  height: 320px !important;
  object-fit: cover !important;
  padding: 0 !important;
}

/* The game card is inserted into the GRIT introduction by polish.js.
   With scripts disabled, it remains a functional section at page end. */
html body.frn-polish .frn-game-feature {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  overflow: hidden;
  margin: 28px auto 36px;
  width: 100%;
  max-width: 1200px;
  border: 1px solid #94bdd5;
  border-radius: 18px;
  background: #0b304a;
  color: #fff;
  box-shadow: 0 12px 30px #0b304a18;
}
html body.frn-polish .frn-game-feature .frn-game-copy { padding: clamp(24px,3vw,38px); }
html body.frn-polish .frn-game-feature .frn-game-copy :is(h2,p) {
  max-width: none !important;
  color: #f1f8ff !important;
  margin: 0 0 18px;
  opacity: 1 !important;
}
html body.frn-polish .frn-game-feature .frn-game-copy h2 {
  font: 500 clamp(28px,3vw,42px)/1.12 Georgia,serif !important;
  letter-spacing: -.025em;
}
html body.frn-polish .frn-game-feature .frn-game-copy > p { font: 400 16px/1.65 Arial,sans-serif; }
html body.frn-polish .frn-game-feature .frn-game-copy .frn-game-eyebrow {
  font: 700 11px/1.5 Arial,sans-serif;
  letter-spacing: .14em;
  color: #b9eaff !important;
}
html body.frn-polish .frn-game-feature .frn-game-copy .frn-game-note {
  font: 400 12px/1.55 Arial,sans-serif;
  color: #c8e4f3 !important;
  margin: 14px 0 0;
}
html body.frn-polish :is(main,#main,#top) #grit-game.frn-game-feature .frn-game-button,
html body.frn-polish .frn-game-feature .frn-game-button {
  background: #b9eaff !important;
  color: #0b304a !important;
  border-color: #b9eaff !important;
  font: 700 14px/1.4 Arial,sans-serif !important;
}
html body.frn-polish .frn-game-feature .frn-game-art { min-height: 280px; }
html body.frn-polish .frn-game-feature .frn-game-art img {
  width: 100%; height: 100%; display: block; object-fit: cover; object-position: center;
}
html body.frn-polish :is(main,#main,#top) .frn-game-nav-link {
  background: #0b304a !important;
  color: #fff !important;
  border: 1px solid #256c94 !important;
  border-radius: 9px;
  padding: 11px 16px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font-weight: 700;
}
html body.frn-polish #worlds .frn-game-home-link { margin-top: 12px; }
@media (max-width: 700px) {
  html body.frn-polish .frn-game-feature { grid-template-columns: 1fr; }
  html body.frn-polish .frn-game-feature .frn-game-art { min-height: 0; aspect-ratio: 7 / 4; }
  html body.frn-polish .frn-game-feature .frn-game-button { width: 100%; }
  html body.frn-polish .frn-game-feature .frn-game-copy { padding: 24px; }
  html body.frn-polish .frn-wbn-nav { display: flex !important; flex-wrap: wrap; gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  html body.frn-polish :is(main,#main,#top) :is(a,button) { transition: none !important; }
}

/* Make the remaining story filters and dark-section actions clearly visible. */
html body.frn-polish :is(main,#main,#top) .frn-filter-list button {
  min-height:44px; padding:10px 16px; border-radius:10px;
  border:1px solid #6d9bb6 !important;
  background:#edf8ff !important; color:#103d59 !important;
  font-weight:700;
}
html body.frn-polish :is(main,#main,#top) .frn-filter-list button[aria-pressed="true"] {
  background:#0b304a !important; color:#fff !important; border-color:#0b304a !important;
}
html body.frn-polish :is(main,#main,#top) .frn-manufacturing-hero .frn-btn,
html body.frn-polish :is(main,#main,#top) .frnqp-story .frnqp-story-cta,
html body.frn-polish :is(main,#main,#top) .frn-email-signup button {
  background:#b9eaff !important; color:#0b304a !important; border-color:#b9eaff !important;
}

html body.frn-polish :is(main,#main,#top) .frn-wbn-nav .frn-wbn-link:not(.frn-game-nav-link) {
  background:#edf8ff !important; color:#103d59 !important;
  border:1px solid #6d9bb6 !important; border-radius:10px;
  min-height:44px; padding:11px 16px;
}
