/parts` and * `replace_template_parts()` swaps this file into the `footer` template part at * runtime. Only a NATIVE-FSE child theme — Brandy Pure — walks that path; the * parent `brandy` theme renders its footer from the Header Builder JSON in * `sample-data/sample-footer.json` instead. On the parent theme this file is * inert, so NOTHING HERE WAS VERIFIED ON brandy.local: the P4 verification ran * against the parent theme and never rendered a line of it. User customizations * saved in the Site Editor take precedence. * * Two stacked strips, straight off `figma-refs/11-site-footer.png` and * `sample-footer.json`: * 1. "Main", 423 tall, solid #FFFFFF with 80px of padding top and bottom. Its * content sits on the 240..1680 column as five tracks — * 566 / 228 / 228 / 228 / 190 of 1440 — a 452-wide brand block at the left * and four link columns on a 228.5 pitch starting at x 806. * 2. "copyright text", 84 tall, solid #1D1D1D: the copyright line left, three * legal links split by 1px x 12 hairlines right. 30 + 24 + 30 = 84 exactly. * * NO TOP MARGIN, deliberately. Furniture's footer part owns an 80px join because * its Instagram strip ships `margin-bottom: 0`. Here the band above is the trust * strip (`brandy/toolkit-travel-service-guarantees`), which owns BOTH its 44px * paddings precisely because "the footer's Main is #FFFFFF from its very first * pixel" — the strip's own docblock says so. The drawn frame confirms it: the * trust row ends at y 7418 and the footer begins at y 7418. A margin here would * open a gap that belongs to no section. * * THE LOGO IS `toolkit-travel-wordmark-lockup.webp`, the same file the builder * JSON carries. It is NOT in `asset-manifest.json` and that is correct: the * manifest records the DRAWN lockup (`toolkit-travel-header-logo.webp` / * `-footer-logo.webp`, 376x156 at 4x of a drawn 92x39), and the drawn lockup * reads "ROAM" - the design's own brand. `copyDecisions` rewrites the brand to * "Toolkit Travel" throughout, so the drawn four-letter mark cannot ship; the * header phase cut a new 1053x242 lockup for the rewritten name and pointed * both builder JSONs at it. A part that used the manifest asset would put ROAM * on the Brandy Pure chrome while the parent theme showed Toolkit Travel. * Verified on the served page: the builder renders it at 147.94x34 in the footer. * * The four social glyphs here are the FOOTER set — Facebook, Twitter, Instagram, * LinkedIn at 24px — not the header's 14px Facebook / X / Instagram / TikTok. * The design's own two references disagree about the bird, and each half ships * what its own reference draws. * * Column headings are the display face: `styles.elements.heading` already binds * Instrument Serif 400 in `brandy-foreground`, so they are real headings and * carry only size, line-height and the drawn 2px tracking. Furniture's are * paragraphs for the opposite reason — its headings are the body face. * * #1D1D1D has no palette slug in this niche (`brandy-secondary` is #181715, * `brandy-foreground` #202020), so the copyright strip ships the measured hex * literally, as a site file may. * * The copyright year is rendered from `wp_date()`, not typed. `copyDecisions` * rules the drawn "© 2026" correct today and wrong in January; the builder JSON * reaches the same result through its `[current_year]` token, which template * parts do not resolve. * * @package BrandySites */ $brandy_toolkit_travel_shop_url = function_exists( 'brandy_get_shop_page_url' ) ? brandy_get_shop_page_url() : home_url( '/' ); $brandy_toolkit_travel_about_url = function_exists( 'brandy_get_about_us_page_url' ) ? brandy_get_about_us_page_url() : home_url( '/' ); $brandy_toolkit_travel_contact_url = function_exists( 'brandy_get_contact_us_page_url' ) ? brandy_get_contact_us_page_url() : home_url( '/' ); $brandy_toolkit_travel_privacy_url = function_exists( 'brandy_get_privacy_policy_page_url' ) ? brandy_get_privacy_policy_page_url() : home_url( '/' ); $brandy_toolkit_travel_terms_url = function_exists( 'brandy_get_terms_and_conditions_page_url' ) ? brandy_get_terms_and_conditions_page_url() : home_url( '/' ); $brandy_toolkit_travel_returns_url = function_exists( 'brandy_get_refund_returns_page_url' ) ? brandy_get_refund_returns_page_url() : home_url( '/' ); $brandy_toolkit_travel_orders_url = function_exists( 'brandy_get_my_account_page_url' ) ? brandy_get_my_account_page_url( 'orders' ) : home_url( '/' ); /** Link list item: 14/24 muted, the pitch coming from the 12px gap below. */ $brandy_toolkit_travel_link = 'font-size:14px;font-weight:400;line-height:24px;color:var(--wp--preset--color--brandy-muted-foreground);text-decoration:none'; /** Copyright strip: 14/24 white on #1D1D1D. */ $brandy_toolkit_travel_legal = 'font-size:14px;font-weight:400;line-height:24px;color:#ffffff;text-decoration:none'; $brandy_toolkit_travel_columns = array( array( 'title' => __( 'Shop', 'brandy-sites' ), 'width' => '15.83%', 'links' => array( array( __( 'New Arrivals', 'brandy-sites' ), $brandy_toolkit_travel_shop_url ), array( __( 'Travel Bags', 'brandy-sites' ), $brandy_toolkit_travel_shop_url ), array( __( 'Packing', 'brandy-sites' ), $brandy_toolkit_travel_shop_url ), array( __( 'Toiletry', 'brandy-sites' ), $brandy_toolkit_travel_shop_url ), array( __( 'Travel Comfort', 'brandy-sites' ), $brandy_toolkit_travel_shop_url ), array( __( 'Accessories', 'brandy-sites' ), $brandy_toolkit_travel_shop_url ), ), ), array( 'title' => __( 'About', 'brandy-sites' ), 'width' => '15.83%', 'links' => array( array( __( 'Our story', 'brandy-sites' ), $brandy_toolkit_travel_about_url ), array( __( 'Our Mission', 'brandy-sites' ), $brandy_toolkit_travel_about_url ), array( __( 'Size Guide', 'brandy-sites' ), '#' ), array( __( 'FAQs', 'brandy-sites' ), '#' ), array( __( 'Contact Us', 'brandy-sites' ), $brandy_toolkit_travel_contact_url ), ), ), array( 'title' => __( 'Customer Care', 'brandy-sites' ), 'width' => '15.83%', 'links' => array( array( __( 'Shipping & Delivery', 'brandy-sites' ), '#' ), array( __( 'Return & Exchanges', 'brandy-sites' ), $brandy_toolkit_travel_returns_url ), array( __( 'Order Tracking', 'brandy-sites' ), $brandy_toolkit_travel_orders_url ), array( __( 'Payment Methods', 'brandy-sites' ), '#' ), array( __( 'Privacy Policy', 'brandy-sites' ), $brandy_toolkit_travel_privacy_url ), array( __( 'Terms & Conditions', 'brandy-sites' ), $brandy_toolkit_travel_terms_url ), ), ), array( // "Party Looks" and "School Styles" are apparel residue from the source // template, and "New Arrivals" was drawn twice; copyDecisions replaces all // three. The shipped sample-footer.json carries the same four fixes. 'title' => __( 'Explore', 'brandy-sites' ), 'width' => '13.19%', 'links' => array( array( __( 'Gift Guide', 'brandy-sites' ), $brandy_toolkit_travel_shop_url ), array( __( 'Best Sellers', 'brandy-sites' ), $brandy_toolkit_travel_shop_url ), array( __( 'Everyday Essentials', 'brandy-sites' ), $brandy_toolkit_travel_shop_url ), array( __( 'Tech & Charging', 'brandy-sites' ), $brandy_toolkit_travel_shop_url ), array( __( 'Luggage Accessories', 'brandy-sites' ), $brandy_toolkit_travel_shop_url ), array( __( 'Holiday Collection', 'brandy-sites' ), $brandy_toolkit_travel_shop_url ), ), ), ); $brandy_toolkit_travel_socials = array( array( __( 'Facebook', 'brandy-sites' ), 'https://www.facebook.com/', 'https://images.wpbrandy.com/uploads/toolkit-travel-footer-social-facebook.webp' ), array( __( 'Twitter', 'brandy-sites' ), 'https://x.com/', 'https://images.wpbrandy.com/uploads/toolkit-travel-footer-social-twitter.webp' ), array( __( 'Instagram', 'brandy-sites' ), 'https://www.instagram.com/', 'https://images.wpbrandy.com/uploads/toolkit-travel-footer-social-instagram.webp' ), array( __( 'LinkedIn', 'brandy-sites' ), 'https://www.linkedin.com/', 'https://images.wpbrandy.com/uploads/toolkit-travel-footer-social-linkedin.webp' ), ); $brandy_toolkit_travel_legal_links = array( array( __( 'Privacy Policy', 'brandy-sites' ), $brandy_toolkit_travel_privacy_url ), array( __( 'Terms & Conditions', 'brandy-sites' ), $brandy_toolkit_travel_terms_url ), array( __( 'Accessibility', 'brandy-sites' ), '#' ), ); $brandy_toolkit_travel_copyright = sprintf( /* translators: %s: current year. */ __( '© %s Toolkit Travel. All rights reserved', 'brandy-sites' ), wp_date( 'Y' ) ); ?>