/* Preserve the prototype body boundary inside the application wrapper. */
.approved-page--pricing > main { padding-top:112px; }
/* Founder-approved 27 October: full-height hero. The studio board keeps its own top spacing. */
.approved-page--landing .retained-hero { height:100svh; min-height:0; max-height:none; }
@media(max-width:700px) {
  .approved-page--pricing > main { padding-top:96px; }
}
/* Footer help column: keep every footer column on one desktop row. */
@media(min-width:1001px) {
  .approved-page .footer-directory { grid-template-columns:1.3fr .8fr 1fr .9fr 2fr; }
}
/* Up to 1190px that column is too narrow for the "Latest from the studio" heading (3-4 lines):
   the card takes its own row, as it does below 1000px, so the heading stays on 2 lines. */
@media(min-width:1001px) and (max-width:1190px) {
  .approved-page .footer-directory { grid-template-columns:1.3fr .8fr 1fr .9fr; }
  .approved-page .footer-story { grid-column:1/-1; }
}
@media(max-width:700px) {
  .approved-page .footer-directory nav.footer-help { grid-row:4; }
}
/* Pop-ups open in the middle of the screen on every approved page: the site's global reset removes the browser's own centring. */
dialog:modal { margin:auto; }
/* Local currency (TaskFlow b0f725cf): plan prices, top-ups and the currency menu wait until runtime.js knows the visitor's currency, so no other currency flashes first. If the script never runs, the default prices appear after 8 s. That reveal is an instant visibility step, not motion, so it is kept under reduced motion and paused motion. */
.approved-page--pricing:not([data-currency-ready]) .plan .price,
.approved-page--pricing:not([data-currency-ready]) [data-topup],
.approved-page--pricing:not([data-currency-ready]) #currency { visibility:hidden; animation:approved-currency-reveal 0s linear 8s forwards !important; }
@keyframes approved-currency-reveal { to { visibility:visible; } }
