/*
Theme Name: Finance Consultancy
Theme URI: https://ai.instawp.io/themes/finance-consultancy-instawp/
Author: InstaWP team
Author URI: https://instawp.com
Description: A financial-services block theme ported from the Finbiz design. Five composed pages (home, company, services, blog, contact) built entirely from editable Gutenberg patterns, with the brand's Satoshi type scale, purple/gold palette and section rhythm expressed as theme.json presets so every value stays editable in the Site Editor.
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 7.2
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: finance-consultancy-instawp
Tags: two-columns, one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/*
 * ⛔ THIS HEADER IS A TEMPLATE — the author supplies the real values at the start of a port:
 *
 *     /port-site <url> --name="Twenty Twenty-Five" --slug="twentytwentyfive"
 *
 *   --name  → `Theme Name`, and the human-facing name everywhere else
 *   --slug  → `Text Domain`, the THEME FOLDER NAME, and every pattern slug prefix
 *             (`<slug>/hero`), so all three stay in lockstep by construction
 *
 * The slug is the one that must not drift: WordPress resolves translations by Text Domain and
 * patterns by `<slug>/<name>`, so a folder renamed without updating the domain silently loses
 * every translated string, and a pattern slug that disagrees with the folder silently fails to
 * register. `port-provision.mjs --name --slug` writes all three from the same value.
 */

/*
 * THIS FILE CARRIES NO RULES, AND SHOULD STAY THAT WAY.
 *
 * WordPress requires style.css to exist so it can identify the theme from the header above.
 * Everything else is theme.json's job. There is no `assets/css/` in this theme and adding one
 * is a decision to argue for, not a default.
 *
 * WHERE STYLING GOES — take the first rung that works, never a lower one for convenience:
 *
 *   1. A BLOCK ATTRIBUTE or LAYOUT setting. Blocks are already responsive, so most of what
 *      looks like it needs CSS does not:
 *        · columns stack on mobile by themselves (core/columns, `isStackedOnMobile`, default on)
 *        · per-column ratios are `core/column` `width`, not `grid-template-columns`
 *        · a grid with `minimumColumnWidth` re-flows its column count with NO media query
 *          (core emits `repeat(auto-fill, minmax(min(<w>,100%), 1fr))`)
 *        · gaps are `style.spacing.blockGap` — never re-add a gap in CSS. If gaps went missing,
 *          something set blockGap to 0; fix that instead of rebuilding them by hand.
 *   2. A theme.json PRESET. Type and spacing scale through `clamp()` / `fluid:{min,max}`, which
 *      is what replaces a breakpoint override — an @media that steps a font-size or a gap is a
 *      preset that was not made fluid.
 *   3. A BLOCK STYLE VARIATION (`is-style-*`) for any recurring treatment — styled in theme.json
 *      under `styles.blocks.<block>.variations.<name>` AND registered in functions.php. Both
 *      halves are required; a variation registered without styling does nothing, and one styled
 *      without registration is sanitized away.
 *   4. theme.json `styles.css` / `styles.blocks.<block>.css` — raw CSS, but still inside the
 *      design system. WordPress emits it to the front end AND the editor on its own, so it needs
 *      no enqueue and no add_editor_style(). This is where the genuine residue lives:
 *      pseudo-elements, transitions, transforms, decorative shapes.
 *   5. A stylesheet. Effectively only the optional motion layer (assets/js + assets/css), which
 *      is enqueued separately and touches no block markup.
 *
 * The #51242 full-bleed flush rule used to live here. It is now `styles.css` in theme.json, so
 * every theme scaffolded from this skeleton inherits it and no port has to write CSS at all.
 */

/*
 * FULL-BLEED SECTIONS SIT FLUSH (Gutenberg #51242) — the one rule every port needs.
 *
 * WordPress core ships `:where(.wp-site-blocks) > * { margin-block-start: 1.5rem }`,
 * which opens a ~24px seam between full-bleed sections and between header → main →
 * footer (that stray white strip under the last section).
 *
 * Neutralize it SELECTIVELY, never with a blanket `.wp-site-blocks > * { margin: 0 }`
 * — that would defeat the theme.json `blockGap` feature everywhere else.
 */
body .wp-block-template-part,
main,
main > .wp-block-group.has-background,
main > .wp-block-group.alignfull { margin-block-start: 0; }
