From a38dfda0e8e70ead1c8f07e3e90c0337e985d258 Mon Sep 17 00:00:00 2001 From: Brandonma21 Date: Mon, 21 Sep 2026 16:03:53 +0200 Subject: [PATCH 01/11] Add Discover phase page hero and section patterns (LS-4179) New patterns - Add discover-hero.php: breadcrumb, phase badge, heading, CTAs, share pill - Add phase-journey-nav.php: reusable 6-phase nav, auto-detects active phase by slug - Add discover-delivery-numbers.php: 3-stat row reusing is-style-stat-segment - Add discover-introduction.php: two-column intro text section Tokens - Add custom.color.phase.discover-on-dark to theme.json and styles/dark.json - Needed so the hero's permanent-dark background doesn't inherit the light-mode phase.discover value, which is too dark to read on black Context - Part of LS-1596 epic; reuses existing tokens/styles from services-hero.php, services-delivery-numbers.php, and services-linked-decisions.php - No new block/section styles required --- patterns/hero/discover-hero.php | 93 ++++++++++++++++ .../sections/discover-delivery-numbers.php | 82 ++++++++++++++ patterns/sections/discover-introduction.php | 72 ++++++++++++ patterns/sections/phase-journey-nav.php | 104 ++++++++++++++++++ styles/dark.json | 1 + theme.json | 1 + 6 files changed, 353 insertions(+) create mode 100644 patterns/hero/discover-hero.php create mode 100644 patterns/sections/discover-delivery-numbers.php create mode 100644 patterns/sections/discover-introduction.php create mode 100644 patterns/sections/phase-journey-nav.php diff --git a/patterns/hero/discover-hero.php b/patterns/hero/discover-hero.php new file mode 100644 index 0000000..6abe6e1 --- /dev/null +++ b/patterns/hero/discover-hero.php @@ -0,0 +1,93 @@ + + +
+ + +
+ + + + + + +
+ + +
+ + + +

+ +
+ + + +

+ + + +
+ +

+ +
+ + + +

+ + + +
+ +
+ + + +
+ +
+ + + +
+ + + +
+ +
+ +
+ +
+ diff --git a/patterns/sections/discover-delivery-numbers.php b/patterns/sections/discover-delivery-numbers.php new file mode 100644 index 0000000..520166c --- /dev/null +++ b/patterns/sections/discover-delivery-numbers.php @@ -0,0 +1,82 @@ + '6', + 'suffix' => __( '+', 'ls-theme' ), + 'label' => __( 'Complex CMS migration types', 'ls-theme' ), + 'description' => __( 'WordPress, WooCommerce, Drupal, Shopify, custom CMS and bespoke stacks.', 'ls-theme' ), + ), + array( + 'value' => '120,000', + 'suffix' => __( '+', 'ls-theme' ), + 'label' => __( 'Legacy posts migrated', 'ls-theme' ), + 'description' => __( 'Audited, restructured and brought into a maintainable WordPress system.', 'ls-theme' ), + ), + array( + 'value' => '∞', + 'suffix' => '', + 'label' => __( 'Analysis speed', 'ls-theme' ), + 'description' => __( 'AI-assisted research lets us understand a platform in a fraction of the usual time.', 'ls-theme' ), + ), +); + +$ls_discover_stats_count = count( $ls_discover_stats ); +?> + +
+ + +
+ $ls_stat ) : + $ls_is_last_column = ( $ls_stat_index === $ls_discover_stats_count - 1 ); + ?> + + + +
+ + +
+ + +
+ +

+ + + +

+ + + +

+ +
+ +
+ + + +
+ +
+ diff --git a/patterns/sections/discover-introduction.php b/patterns/sections/discover-introduction.php new file mode 100644 index 0000000..0964a35 --- /dev/null +++ b/patterns/sections/discover-introduction.php @@ -0,0 +1,72 @@ + + +
+ + +
+ + +
+ +

+ + + +

+ + + +

+ + + +

+ + + +

+ +
+ + + +
+ +

+ + + +

+ + + +

+ + + +

+ +
+ +
+ +
+ diff --git a/patterns/sections/phase-journey-nav.php b/patterns/sections/phase-journey-nav.php new file mode 100644 index 0000000..c2e95fa --- /dev/null +++ b/patterns/sections/phase-journey-nav.php @@ -0,0 +1,104 @@ + '01', + 'label' => __( 'Discover', 'ls-theme' ), + 'phase' => 'discover', + 'url' => '/discover/', + ), + array( + 'index' => '02', + 'label' => __( 'Create', 'ls-theme' ), + 'phase' => 'create', + 'url' => '/create/', + ), + array( + 'index' => '03', + 'label' => __( 'Build', 'ls-theme' ), + 'phase' => 'build', + 'url' => '/build/', + ), + array( + 'index' => '04', + 'label' => __( 'Launch', 'ls-theme' ), + 'phase' => 'launch', + 'url' => '/launch/', + ), + array( + 'index' => '05', + 'label' => __( 'Grow', 'ls-theme' ), + 'phase' => 'grow', + 'url' => '/grow/', + ), + array( + 'index' => '06', + 'label' => __( 'Evolve', 'ls-theme' ), + 'phase' => 'evolve', + 'url' => '/evolve/', + ), +); + +$ls_current_phase_slug = ''; +$ls_queried_object = get_queried_object(); +if ( $ls_queried_object instanceof WP_Post ) { + $ls_current_phase_slug = $ls_queried_object->post_name; +} +?> + + + diff --git a/styles/dark.json b/styles/dark.json index ad49919..824dc54 100644 --- a/styles/dark.json +++ b/styles/dark.json @@ -73,6 +73,7 @@ }, "phase": { "discover": "var:preset|color|phase-one", + "discover-on-dark": "var:preset|color|phase-one", "create": "var:preset|color|phase-two", "build": "var:preset|color|phase-three", "launch": "var:preset|color|phase-four", diff --git a/theme.json b/theme.json index 6a29b81..674f5a6 100644 --- a/theme.json +++ b/theme.json @@ -573,6 +573,7 @@ }, "phase": { "discover": "var:preset|color|phase-one-strong", + "discover-on-dark": "var:preset|color|phase-one", "create": "var:preset|color|phase-two-strong", "build": "var:preset|color|phase-three-strong", "launch": "var:preset|color|phase-four-strong", From ceea72bdcb4ba373212a003186354b9c8263e8b6 Mon Sep 17 00:00:00 2001 From: Brandonma21 Date: Mon, 21 Sep 2026 19:38:41 +0200 Subject: [PATCH 02/11] Add Discover phase page hero, sections, and phase-hero button styles (LS-4179) New patterns - Add discover-hero.php: full-bleed dark hero with grid texture, radial phase glow, compact phase badge, centred heading/CTAs, breadcrumb - Add phase-journey-nav.php: reusable 6-phase nav, auto-detects active phase by slug for reuse on future Create/Build/Launch/Grow/Evolve pages - Add discover-delivery-numbers.php: 3-stat row reusing is-style-stat-segment - Add discover-introduction.php: two-column intro text section New button styles - Add button-phase-primary.json / button-phase-outline.json: dedicated pill CTAs for phase-page heroes - Reason: sitewide button colours flip with the light/dark style variation, but phase heroes are permanently dark - Add hover/focus arrow-slide motion + reduced-motion companion in _button-motion.scss Structural styles - Add discover-hero.scss: .ls-phase-hero background (grid + radial glow + dark band gradient) and active-breadcrumb-crumb colour - Wire into package.json build scripts, functions.php editor styles, and inc/animations.php frontend loader (scoped to is_page('discover')) Tokens - Add custom.color.phase.discover-on-dark to theme.json and styles/dark.json (phase.discover is too dark to read on a permanent black background) - Add custom.line-height.heading-tight to styles/presets/typography.json Context - Part of LS-1596 epic; reuses existing tokens/styles from services-hero.php, blog-hero.php, and work-project-card.scss - No new colour tokens beyond the two above --- assets/css/animations.css | 2 +- assets/css/discover-hero.css | 1 + functions.php | 1 + inc/animations.php | 10 ++ package.json | 6 +- patterns/hero/discover-hero.php | 122 +++++++++--------- src/scss/animations/_button-motion.scss | 34 +++++ src/scss/structural/discover-hero.scss | 40 ++++++ .../blocks/buttons/button-phase-outline.json | 36 ++++++ .../blocks/buttons/button-phase-primary.json | 35 +++++ styles/presets/typography.json | 1 + 11 files changed, 225 insertions(+), 63 deletions(-) create mode 100644 assets/css/discover-hero.css create mode 100644 src/scss/structural/discover-hero.scss create mode 100644 styles/blocks/buttons/button-phase-outline.json create mode 100644 styles/blocks/buttons/button-phase-primary.json diff --git a/assets/css/animations.css b/assets/css/animations.css index 10d9bd1..1ff712d 100644 --- a/assets/css/animations.css +++ b/assets/css/animations.css @@ -1 +1 @@ -.ls-footer-nav-link a{color:inherit;text-decoration-line:underline;text-decoration-color:rgba(0,0,0,0);text-underline-offset:3px}.ls-footer-nav-link a:hover,.ls-footer-nav-link a:focus-visible{color:var(--wp--custom--color--phase--create);text-decoration-color:var(--wp--custom--color--phase--create)}.ls-footer-proof-card:hover,.ls-footer-proof-card:focus-within,.ls-footer-social-icon:hover,.ls-footer-social-icon:focus-within{background-color:var(--wp--custom--color--surface--card-raised) !important;border-color:var(--wp--custom--color--phase--create) !important}.ls-footer-social-icon{min-inline-size:var(--wp--custom--spacing--tap-target-min)}.ls-footer-proof-card{height:100%}.site-logo--for-light{display:var(--wp--custom--visibility--logo-for-light)}.site-logo--for-dark{display:var(--wp--custom--visibility--logo-for-dark)}.site-logo--for-light img,.site-logo--for-dark img{display:block;width:var(--wp--custom--layout--logo-width);height:auto}@media(max-width: 1023.98px){.site-header{padding-left:var(--wp--preset--spacing--60) !important;padding-right:var(--wp--preset--spacing--60) !important}}@media(max-width: 599.98px){.site-header{padding-left:var(--wp--preset--spacing--20) !important;padding-right:var(--wp--preset--spacing--20) !important}}.ls-button-cta-gradient .wp-block-button__link:hover,.ls-button-cta-gradient .wp-block-button__link:focus-visible{box-shadow:var(--wp--custom--shadow--interactive--accent),var(--wp--custom--shadow--elevation--300)}.site-header .wp-block-navigation__responsive-container-close{position:absolute;top:var(--wp--preset--spacing--20);right:var(--wp--preset--spacing--20);display:flex;align-items:center;justify-content:center;min-inline-size:var(--wp--custom--spacing--tap-target-min);min-block-size:var(--wp--custom--spacing--tap-target-min);padding:var(--wp--preset--spacing--10);border:1px solid var(--wp--custom--color--border--card);border-radius:var(--wp--preset--border-radius--500);background-color:color-mix(in srgb, var(--wp--custom--color--surface--card) 4%, transparent)}.site-header .wp-block-navigation__responsive-container-close svg{inline-size:20px;block-size:20px}.site-header .wp-block-navigation-item{position:static}.site-header .wp-block-navigation__submenu-container{left:50%;right:auto;transform:translateX(-50%)}.site-header .wp-block-ollie-mega-menu__menu-container{background:rgba(0,0,0,0)}.ls-mega-menu-panel-services{width:fit-content;max-width:100vw;box-sizing:border-box}.ls-mega-menu-panel-services .wp-block-columns{display:grid;grid-template-columns:repeat(6, minmax(0, 1fr));gap:var(--wp--style--block-gap)}.ls-mega-menu-panel-services .wp-block-column{width:auto}.ls-mega-menu-panel-services .wp-block-column>.wp-block-group p{white-space:nowrap}.ls-simple-submenu-links>.is-style-mega-menu-item-service,.ls-services-phase-links>.is-style-mega-menu-item-service{padding:var(--wp--preset--spacing--5)}.ls-services-phase-links{display:grid;grid-template-columns:1fr;row-gap:0}.ls-services-phase-links>*{margin:0}.ls-services-phase-links{padding-left:calc(8px + var(--wp--preset--spacing--5))}.is-style-mega-menu-item-default{position:relative}.is-style-mega-menu-item-default h5 a::after{content:"";position:absolute;inset:0;z-index:1}.is-style-mega-menu-item-default:hover .wp-block-outermost-icon-block,.is-style-mega-menu-item-default:focus-within .wp-block-outermost-icon-block,.is-style-mega-menu-item-default:hover .wp-block-icon,.is-style-mega-menu-item-default:focus-within .wp-block-icon{color:var(--wp--custom--color--text--subtle)}.is-style-mega-menu-item-service{position:relative}.is-style-mega-menu-item-service a::after{content:"";position:absolute;inset:0;z-index:1}.is-style-mega-menu-item-service:hover,.is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--link--accent) 8%, transparent);border-left-color:var(--wp--custom--color--link--accent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--discover) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--discover) 15%, transparent);border-left-color:var(--wp--custom--color--phase--discover)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--discover)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--create) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--create) 15%, transparent);border-left-color:var(--wp--custom--color--phase--create)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--create)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--build) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--build) 15%, transparent);border-left-color:var(--wp--custom--color--phase--build)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--build)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--launch) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--launch) 15%, transparent);border-left-color:var(--wp--custom--color--phase--launch)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--launch)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--grow) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--grow) 15%, transparent);border-left-color:var(--wp--custom--color--phase--grow)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--grow)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--evolve) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--evolve) 15%, transparent);border-left-color:var(--wp--custom--color--phase--evolve)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--evolve)}@keyframes ls-accent-gradient-shift{to{background-position:var(--ls-accent-gradient-end-position) center}}.site-header__search .wp-block-search__button,.site-header .wp-block-navigation__responsive-container-close,.ls-footer-proof-card,.ls-footer-social-icon{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.site-header__search .wp-block-search__button:hover,.site-header__search .wp-block-search__button:focus-visible,.site-header .wp-block-navigation__responsive-container-close:hover,.site-header .wp-block-navigation__responsive-container-close:focus-visible{background-color:var(--wp--custom--color--surface--card-raised);border-color:var(--wp--custom--color--phase--create)}.is-style-mega-menu-item-default{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.is-style-mega-menu-item-default:hover,.is-style-mega-menu-item-default:focus-within{background-color:var(--wp--custom--color--surface--card-raised)}.is-style-mega-menu-item-service{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-left-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.site-header__search .wp-block-search__button,.site-header .wp-block-navigation__responsive-container-close,.ls-footer-proof-card,.ls-footer-social-icon,.is-style-mega-menu-item-default,.is-style-mega-menu-item-service{transition:none}}.wp-block-details{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),box-shadow var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.wp-block-details>summary{transition:inherit}.wp-block-details>summary::after{transform:translateY(-1px) rotate(45deg);transition:transform var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--emphasised),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.wp-block-details:not(.is-style-mobile-menu-accordion)>summary{padding:var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);font:inherit;font-weight:var(--wp--custom--typography--font-weight--normal)}.wp-block-details:hover:not(.is-style-mobile-menu-accordion){background:var(--wp--custom--color--surface--card-raised);border-color:var(--wp--custom--color--link--accent)}.wp-block-details[open]:not(.is-style-mobile-menu-accordion),.wp-block-details[open]:hover:not(.is-style-mobile-menu-accordion){background:var(--wp--custom--color--surface--card);border-color:var(--wp--custom--color--link--accent)}.wp-block-details:not(.is-style-mobile-menu-accordion)[open]>summary{border-bottom:1px solid var(--wp--custom--color--link--accent)}.wp-block-details[open]>summary::after{transform:translateY(1px) rotate(-135deg)}.wp-block-details:focus-within:not(.is-style-mobile-menu-accordion){border-color:var(--wp--custom--color--link--accent);box-shadow:0 0 0 2px var(--wp--custom--color--focus--ring)}.wp-element-button,.wp-block-button__link{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),box-shadow var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),outline-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),outline-offset var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),transform var(--wp--custom--animation--duration--fast) var(--wp--custom--animation--easing--standard);transition-delay:var(--wp--custom--animation--delay--enter)}.wp-element-button:hover,.wp-element-button:focus-visible,.wp-block-button__link:hover,.wp-block-button__link:focus-visible{outline-offset:0}.wp-element-button:active,.wp-block-button__link:active{transform:scale(var(--ls-button-active-scale, var(--wp--custom--animation--scale--active)))}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link{--ls-button-fill-icon-well-size: 3rem;--ls-button-fill-icon-inline-end: 0.625rem;--ls-button-fill-icon-font-size: 1.25rem;--ls-button-fill-icon-block-inset: calc( 50% - (var(--ls-button-fill-icon-well-size) / 2) );--ls-button-fill-icon-inline-start: calc( 100% - var(--ls-button-fill-icon-well-size) - var(--ls-button-fill-icon-inline-end) );background:rgba(0,0,0,0);border:0;transition:transform var(--ls-button-fill-duration, var(--wp--custom--animation--duration--emphasised)) var(--wp--custom--animation--easing--emphasised),color var(--ls-button-fill-duration, var(--wp--custom--animation--duration--emphasised)) var(--wp--custom--animation--easing--emphasised)}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--ls-button-fill-background, var(--wp--custom--color--button--fill--background));transition:inset-inline-start var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),inset-inline-end var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),inset-block-start var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),inset-block-end var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),border-radius var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised);z-index:var(--wp--custom--z-index--behind)}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link::after{content:"\2192";position:absolute;inset-block:var(--ls-button-fill-icon-block-inset);inset-inline-end:var(--ls-button-fill-icon-inline-end);width:var(--ls-button-fill-icon-well-size);display:grid;place-items:center;color:var(--ls-button-fill-icon-colour, currentColor);font-size:var(--ls-button-fill-icon-font-size);font-weight:700;line-height:1;transition:color var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised)}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover,:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover::before{transition-delay:var(--ls-button-fill-enter-delay, var(--wp--custom--animation--delay--enter))}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover::before,:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:focus-visible::before{inset-block:var(--ls-button-fill-icon-block-inset);inset-inline-end:var(--ls-button-fill-icon-inline-end);inset-inline-start:var(--ls-button-fill-icon-inline-start);border-radius:inherit}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover,:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:focus-visible{color:var(--ls-button-fill-hover-text, var(--wp--custom--color--text--default))}.wp-block-button.is-style-outline .wp-block-button__link{--ls-button-outline-icon-well-size: calc(3rem - 4px);--ls-button-outline-icon-inset: 4px;--ls-button-outline-icon-font-size: 1.25rem;--ls-button-outline-hover-padding-start: calc(4rem - 4px);--ls-button-outline-hover-padding-end: 1.5rem;--ls-button-outline-icon-inline-start: calc( 100% - var(--ls-button-outline-icon-well-size) - var(--ls-button-outline-icon-inset) );transition:padding-inline-start var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised),padding-inline-end var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised),transform var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--smooth)}.wp-block-button.is-style-outline .wp-block-button__link::after{content:"\2192";position:absolute;inset-block:var(--ls-button-outline-icon-inset);inset-inline-end:var(--ls-button-outline-icon-inset);width:var(--ls-button-outline-icon-well-size);display:grid;place-items:center;border-radius:var(--ls-button-outline-icon-radius, var(--wp--preset--border-radius--100));background-color:var(--ls-button-outline-accent-background, var(--wp--custom--color--button--outline--border));color:var(--ls-button-outline-accent-colour, var(--wp--custom--color--button--outline--text-hover));font-size:var(--ls-button-outline-icon-font-size);font-weight:700;line-height:1;transition:inset-inline-end var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised),background-color var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard),color var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard);z-index:var(--wp--custom--z-index--content)}.wp-block-button.is-style-outline .wp-block-button__link:hover,.wp-block-button.is-style-outline .wp-block-button__link:focus-visible{padding-inline-start:var(--ls-button-outline-hover-padding-start);padding-inline-end:var(--ls-button-outline-hover-padding-end)}.wp-block-button.is-style-outline .wp-block-button__link:hover::after,.wp-block-button.is-style-outline .wp-block-button__link:focus-visible::after{inset-inline-end:var(--ls-button-outline-icon-inline-start)}.is-style-mega-menu-item-default .wp-block-outermost-icon-block,.is-style-mega-menu-item-default .wp-block-icon{transition:color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.is-style-mega-menu-item-default .wp-block-outermost-icon-block,.is-style-mega-menu-item-default .wp-block-icon{transition:none}}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.ls-mega-menu-panel-services .wp-block-column>.wp-block-group:first-child{transition:none}}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns{display:grid;grid-template-columns:repeat(2, 1fr);column-gap:var(--wp--style--block-gap);row-gap:var(--wp--preset--spacing--20)}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column{width:auto}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column:nth-child(-n+4){border-bottom:1px dashed var(--wp--custom--color--border--card);padding-bottom:var(--wp--preset--spacing--20)}@media(min-width: 650px){.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns{grid-template-columns:repeat(3, 1fr)}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column:nth-child(-n+4){border-bottom:none;padding-bottom:0}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column:nth-child(-n+3){border-bottom:1px dashed var(--wp--custom--color--border--card);padding-bottom:var(--wp--preset--spacing--20)}}.site-header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content{padding-top:var(--wp--preset--spacing--20)}.site-header .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){background-color:var(--wp--custom--color--surface--canvas)}.site-header .wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){color:var(--wp--custom--color--text--default)}.mobile-menu-brand .site-logo--for-light img,.mobile-menu-brand .site-logo--for-dark img{display:block;max-block-size:32px;width:auto;inline-size:auto}.mobile-menu-actions .wp-block-button{width:100%}.mobile-menu-actions .wp-block-button__link{display:block;width:100%;text-align:center}.footer-notes-badge{width:fit-content}.site-footer{position:relative;overflow:clip;background:radial-gradient(ellipse 480px 420px at 12% 0%, color-mix(in srgb, var(--wp--custom--color--effect--spotlight--primary) 16%, transparent) 0%, transparent 60%),radial-gradient(ellipse 460px 400px at 92% 22%, color-mix(in srgb, var(--wp--custom--color--phase--create) 12%, transparent) 0%, transparent 60%),var(--wp--custom--color--surface--canvas)}.site-footer::before{content:"";position:absolute;inset-block-start:0;inset-inline:0;block-size:4px;z-index:var(--wp--custom--z-index--content);background-image:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--wp--custom--color--phase--create) 60%, transparent) 24%, var(--wp--custom--color--phase--create) 50%, color-mix(in srgb, var(--wp--custom--color--phase--create) 60%, transparent) 76%, transparent 100%);box-shadow:0 0 16px 0 color-mix(in srgb, var(--wp--custom--color--phase--create) 70%, transparent),0 8px 32px 0 color-mix(in srgb, var(--wp--custom--color--phase--create) 30%, transparent)}.site-footer__columns{position:relative}.site-footer__columns::after{content:"";position:absolute;inset-block-start:10%;inset-inline-end:8%;inline-size:min(38vw,520px);block-size:min(30vw,360px);background:radial-gradient(ellipse closest-side, color-mix(in srgb, var(--wp--custom--color--phase--create) 14%, transparent) 0%, transparent 70%);filter:blur(40px);pointer-events:none;z-index:0}.site-footer__columns>*{position:relative;z-index:1}.ls-footer-nav-link a{transition:color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),text-decoration-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.ls-footer-nav-link a{transition:none}}@media(max-width: 781px){.footer-nav-columns{display:grid;grid-template-columns:repeat(2, 1fr);column-gap:var(--wp--preset--spacing--40);row-gap:var(--wp--preset--spacing--40)}.footer-nav-columns>.wp-block-columns{display:contents}}.site-header+*{margin-block-start:0}@media(max-width: 599.98px){.site-header__actions .wp-block-buttons{display:none}}@media(max-width: 1023.98px){.site-header .wp-block-navigation{margin-inline-start:auto}}.ls-button-cta-gradient .wp-block-button__link{transition:transform var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),box-shadow var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-button-cta-gradient .wp-block-button__link:hover,.ls-button-cta-gradient .wp-block-button__link:focus-visible{transform:translateY(-1px)}.site-header__search .wp-block-search__button{display:flex;align-items:center;justify-content:center;min-inline-size:var(--wp--custom--spacing--tap-target-min);min-block-size:var(--wp--custom--spacing--tap-target-min);padding:var(--wp--preset--spacing--10);background-color:color-mix(in srgb, var(--wp--custom--color--surface--card) 4%, transparent)}.site-header__search .wp-block-search__input{inline-size:0;min-inline-size:0;padding-inline:0;border-width:0;opacity:0;transition:inline-size var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard),opacity var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),padding-inline var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard)}.site-header__search.site-header__search--expanded .wp-block-search__input{inline-size:12rem;padding-inline:var(--wp--preset--spacing--10);border-width:1px;opacity:1}@media(prefers-reduced-motion: reduce){.ls-button-cta-gradient .wp-block-button__link,.site-header__search .wp-block-search__input{transition:none}} +.ls-footer-nav-link a{color:inherit;text-decoration-line:underline;text-decoration-color:rgba(0,0,0,0);text-underline-offset:3px}.ls-footer-nav-link a:hover,.ls-footer-nav-link a:focus-visible{color:var(--wp--custom--color--phase--create);text-decoration-color:var(--wp--custom--color--phase--create)}.ls-footer-proof-card:hover,.ls-footer-proof-card:focus-within,.ls-footer-social-icon:hover,.ls-footer-social-icon:focus-within{background-color:var(--wp--custom--color--surface--card-raised) !important;border-color:var(--wp--custom--color--phase--create) !important}.ls-footer-social-icon{min-inline-size:var(--wp--custom--spacing--tap-target-min)}.ls-footer-proof-card{height:100%}.site-logo--for-light{display:var(--wp--custom--visibility--logo-for-light)}.site-logo--for-dark{display:var(--wp--custom--visibility--logo-for-dark)}.site-logo--for-light img,.site-logo--for-dark img{display:block;width:var(--wp--custom--layout--logo-width);height:auto}@media(max-width: 1023.98px){.site-header{padding-left:var(--wp--preset--spacing--60) !important;padding-right:var(--wp--preset--spacing--60) !important}}@media(max-width: 599.98px){.site-header{padding-left:var(--wp--preset--spacing--20) !important;padding-right:var(--wp--preset--spacing--20) !important}}.ls-button-cta-gradient .wp-block-button__link:hover,.ls-button-cta-gradient .wp-block-button__link:focus-visible{box-shadow:var(--wp--custom--shadow--interactive--accent),var(--wp--custom--shadow--elevation--300)}.site-header .wp-block-navigation__responsive-container-close{position:absolute;top:var(--wp--preset--spacing--20);right:var(--wp--preset--spacing--20);display:flex;align-items:center;justify-content:center;min-inline-size:var(--wp--custom--spacing--tap-target-min);min-block-size:var(--wp--custom--spacing--tap-target-min);padding:var(--wp--preset--spacing--10);border:1px solid var(--wp--custom--color--border--card);border-radius:var(--wp--preset--border-radius--500);background-color:color-mix(in srgb, var(--wp--custom--color--surface--card) 4%, transparent)}.site-header .wp-block-navigation__responsive-container-close svg{inline-size:20px;block-size:20px}.site-header .wp-block-navigation-item{position:static}.site-header .wp-block-navigation__submenu-container{left:50%;right:auto;transform:translateX(-50%)}.site-header .wp-block-ollie-mega-menu__menu-container{background:rgba(0,0,0,0)}.ls-mega-menu-panel-services{width:fit-content;max-width:100vw;box-sizing:border-box}.ls-mega-menu-panel-services .wp-block-columns{display:grid;grid-template-columns:repeat(6, minmax(0, 1fr));gap:var(--wp--style--block-gap)}.ls-mega-menu-panel-services .wp-block-column{width:auto}.ls-mega-menu-panel-services .wp-block-column>.wp-block-group p{white-space:nowrap}.ls-simple-submenu-links>.is-style-mega-menu-item-service,.ls-services-phase-links>.is-style-mega-menu-item-service{padding:var(--wp--preset--spacing--5)}.ls-services-phase-links{display:grid;grid-template-columns:1fr;row-gap:0}.ls-services-phase-links>*{margin:0}.ls-services-phase-links{padding-left:calc(8px + var(--wp--preset--spacing--5))}.is-style-mega-menu-item-default{position:relative}.is-style-mega-menu-item-default h5 a::after{content:"";position:absolute;inset:0;z-index:1}.is-style-mega-menu-item-default:hover .wp-block-outermost-icon-block,.is-style-mega-menu-item-default:focus-within .wp-block-outermost-icon-block,.is-style-mega-menu-item-default:hover .wp-block-icon,.is-style-mega-menu-item-default:focus-within .wp-block-icon{color:var(--wp--custom--color--text--subtle)}.is-style-mega-menu-item-service{position:relative}.is-style-mega-menu-item-service a::after{content:"";position:absolute;inset:0;z-index:1}.is-style-mega-menu-item-service:hover,.is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--link--accent) 8%, transparent);border-left-color:var(--wp--custom--color--link--accent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--discover) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--discover) 15%, transparent);border-left-color:var(--wp--custom--color--phase--discover)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--discover)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--create) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--create) 15%, transparent);border-left-color:var(--wp--custom--color--phase--create)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--create)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--build) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--build) 15%, transparent);border-left-color:var(--wp--custom--color--phase--build)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--build)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--launch) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--launch) 15%, transparent);border-left-color:var(--wp--custom--color--phase--launch)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--launch)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--grow) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--grow) 15%, transparent);border-left-color:var(--wp--custom--color--phase--grow)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--grow)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--evolve) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--evolve) 15%, transparent);border-left-color:var(--wp--custom--color--phase--evolve)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--evolve)}@keyframes ls-accent-gradient-shift{to{background-position:var(--ls-accent-gradient-end-position) center}}.site-header__search .wp-block-search__button,.site-header .wp-block-navigation__responsive-container-close,.ls-footer-proof-card,.ls-footer-social-icon{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.site-header__search .wp-block-search__button:hover,.site-header__search .wp-block-search__button:focus-visible,.site-header .wp-block-navigation__responsive-container-close:hover,.site-header .wp-block-navigation__responsive-container-close:focus-visible{background-color:var(--wp--custom--color--surface--card-raised);border-color:var(--wp--custom--color--phase--create)}.is-style-mega-menu-item-default{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.is-style-mega-menu-item-default:hover,.is-style-mega-menu-item-default:focus-within{background-color:var(--wp--custom--color--surface--card-raised)}.is-style-mega-menu-item-service{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-left-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.site-header__search .wp-block-search__button,.site-header .wp-block-navigation__responsive-container-close,.ls-footer-proof-card,.ls-footer-social-icon,.is-style-mega-menu-item-default,.is-style-mega-menu-item-service{transition:none}}.wp-block-details{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),box-shadow var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.wp-block-details>summary{transition:inherit}.wp-block-details>summary::after{transform:translateY(-1px) rotate(45deg);transition:transform var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--emphasised),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.wp-block-details:not(.is-style-mobile-menu-accordion)>summary{padding:var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);font:inherit;font-weight:var(--wp--custom--typography--font-weight--normal)}.wp-block-details:hover:not(.is-style-mobile-menu-accordion){background:var(--wp--custom--color--surface--card-raised);border-color:var(--wp--custom--color--link--accent)}.wp-block-details[open]:not(.is-style-mobile-menu-accordion),.wp-block-details[open]:hover:not(.is-style-mobile-menu-accordion){background:var(--wp--custom--color--surface--card);border-color:var(--wp--custom--color--link--accent)}.wp-block-details:not(.is-style-mobile-menu-accordion)[open]>summary{border-bottom:1px solid var(--wp--custom--color--link--accent)}.wp-block-details[open]>summary::after{transform:translateY(1px) rotate(-135deg)}.wp-block-details:focus-within:not(.is-style-mobile-menu-accordion){border-color:var(--wp--custom--color--link--accent);box-shadow:0 0 0 2px var(--wp--custom--color--focus--ring)}.wp-element-button,.wp-block-button__link{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),box-shadow var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),outline-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),outline-offset var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),transform var(--wp--custom--animation--duration--fast) var(--wp--custom--animation--easing--standard);transition-delay:var(--wp--custom--animation--delay--enter)}.wp-element-button:hover,.wp-element-button:focus-visible,.wp-block-button__link:hover,.wp-block-button__link:focus-visible{outline-offset:0}.wp-element-button:active,.wp-block-button__link:active{transform:scale(var(--ls-button-active-scale, var(--wp--custom--animation--scale--active)))}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link{--ls-button-fill-icon-well-size: 3rem;--ls-button-fill-icon-inline-end: 0.625rem;--ls-button-fill-icon-font-size: 1.25rem;--ls-button-fill-icon-block-inset: calc( 50% - (var(--ls-button-fill-icon-well-size) / 2) );--ls-button-fill-icon-inline-start: calc( 100% - var(--ls-button-fill-icon-well-size) - var(--ls-button-fill-icon-inline-end) );background:rgba(0,0,0,0);border:0;transition:transform var(--ls-button-fill-duration, var(--wp--custom--animation--duration--emphasised)) var(--wp--custom--animation--easing--emphasised),color var(--ls-button-fill-duration, var(--wp--custom--animation--duration--emphasised)) var(--wp--custom--animation--easing--emphasised)}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--ls-button-fill-background, var(--wp--custom--color--button--fill--background));transition:inset-inline-start var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),inset-inline-end var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),inset-block-start var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),inset-block-end var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),border-radius var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised);z-index:var(--wp--custom--z-index--behind)}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link::after{content:"\2192";position:absolute;inset-block:var(--ls-button-fill-icon-block-inset);inset-inline-end:var(--ls-button-fill-icon-inline-end);width:var(--ls-button-fill-icon-well-size);display:grid;place-items:center;color:var(--ls-button-fill-icon-colour, currentColor);font-size:var(--ls-button-fill-icon-font-size);font-weight:700;line-height:1;transition:color var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised)}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover,:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover::before{transition-delay:var(--ls-button-fill-enter-delay, var(--wp--custom--animation--delay--enter))}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover::before,:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:focus-visible::before{inset-block:var(--ls-button-fill-icon-block-inset);inset-inline-end:var(--ls-button-fill-icon-inline-end);inset-inline-start:var(--ls-button-fill-icon-inline-start);border-radius:inherit}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover,:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:focus-visible{color:var(--ls-button-fill-hover-text, var(--wp--custom--color--text--default))}.wp-block-button.is-style-outline .wp-block-button__link{--ls-button-outline-icon-well-size: calc(3rem - 4px);--ls-button-outline-icon-inset: 4px;--ls-button-outline-icon-font-size: 1.25rem;--ls-button-outline-hover-padding-start: calc(4rem - 4px);--ls-button-outline-hover-padding-end: 1.5rem;--ls-button-outline-icon-inline-start: calc( 100% - var(--ls-button-outline-icon-well-size) - var(--ls-button-outline-icon-inset) );transition:padding-inline-start var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised),padding-inline-end var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised),transform var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--smooth)}.wp-block-button.is-style-outline .wp-block-button__link::after{content:"\2192";position:absolute;inset-block:var(--ls-button-outline-icon-inset);inset-inline-end:var(--ls-button-outline-icon-inset);width:var(--ls-button-outline-icon-well-size);display:grid;place-items:center;border-radius:var(--ls-button-outline-icon-radius, var(--wp--preset--border-radius--100));background-color:var(--ls-button-outline-accent-background, var(--wp--custom--color--button--outline--border));color:var(--ls-button-outline-accent-colour, var(--wp--custom--color--button--outline--text-hover));font-size:var(--ls-button-outline-icon-font-size);font-weight:700;line-height:1;transition:inset-inline-end var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised),background-color var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard),color var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard);z-index:var(--wp--custom--z-index--content)}.wp-block-button.is-style-outline .wp-block-button__link:hover,.wp-block-button.is-style-outline .wp-block-button__link:focus-visible{padding-inline-start:var(--ls-button-outline-hover-padding-start);padding-inline-end:var(--ls-button-outline-hover-padding-end)}.wp-block-button.is-style-outline .wp-block-button__link:hover::after,.wp-block-button.is-style-outline .wp-block-button__link:focus-visible::after{inset-inline-end:var(--ls-button-outline-icon-inline-start)}.wp-block-button.is-style-button-phase-primary .wp-block-button__link:hover::after,.wp-block-button.is-style-button-phase-primary .wp-block-button__link:focus-visible::after,.wp-block-button.is-style-button-phase-outline .wp-block-button__link:hover::after,.wp-block-button.is-style-button-phase-outline .wp-block-button__link:focus-visible::after{transform:translateX(var(--wp--preset--spacing--5))}.wp-block-button.is-style-button-phase-primary .wp-block-button__link::after,.wp-block-button.is-style-button-phase-outline .wp-block-button__link::after{transition:transform var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.wp-block-button.is-style-button-phase-primary .wp-block-button__link::after,.wp-block-button.is-style-button-phase-outline .wp-block-button__link::after{transition:none}.wp-block-button.is-style-button-phase-primary .wp-block-button__link:hover::after,.wp-block-button.is-style-button-phase-primary .wp-block-button__link:focus-visible::after,.wp-block-button.is-style-button-phase-outline .wp-block-button__link:hover::after,.wp-block-button.is-style-button-phase-outline .wp-block-button__link:focus-visible::after{transform:none}}.is-style-mega-menu-item-default .wp-block-outermost-icon-block,.is-style-mega-menu-item-default .wp-block-icon{transition:color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.is-style-mega-menu-item-default .wp-block-outermost-icon-block,.is-style-mega-menu-item-default .wp-block-icon{transition:none}}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.ls-mega-menu-panel-services .wp-block-column>.wp-block-group:first-child{transition:none}}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns{display:grid;grid-template-columns:repeat(2, 1fr);column-gap:var(--wp--style--block-gap);row-gap:var(--wp--preset--spacing--20)}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column{width:auto}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column:nth-child(-n+4){border-bottom:1px dashed var(--wp--custom--color--border--card);padding-bottom:var(--wp--preset--spacing--20)}@media(min-width: 650px){.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns{grid-template-columns:repeat(3, 1fr)}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column:nth-child(-n+4){border-bottom:none;padding-bottom:0}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column:nth-child(-n+3){border-bottom:1px dashed var(--wp--custom--color--border--card);padding-bottom:var(--wp--preset--spacing--20)}}.site-header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content{padding-top:var(--wp--preset--spacing--20)}.site-header .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){background-color:var(--wp--custom--color--surface--canvas)}.site-header .wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){color:var(--wp--custom--color--text--default)}.mobile-menu-brand .site-logo--for-light img,.mobile-menu-brand .site-logo--for-dark img{display:block;max-block-size:32px;width:auto;inline-size:auto}.mobile-menu-actions .wp-block-button{width:100%}.mobile-menu-actions .wp-block-button__link{display:block;width:100%;text-align:center}.footer-notes-badge{width:fit-content}.site-footer{position:relative;overflow:clip;background:radial-gradient(ellipse 480px 420px at 12% 0%, color-mix(in srgb, var(--wp--custom--color--effect--spotlight--primary) 16%, transparent) 0%, transparent 60%),radial-gradient(ellipse 460px 400px at 92% 22%, color-mix(in srgb, var(--wp--custom--color--phase--create) 12%, transparent) 0%, transparent 60%),var(--wp--custom--color--surface--canvas)}.site-footer::before{content:"";position:absolute;inset-block-start:0;inset-inline:0;block-size:4px;z-index:var(--wp--custom--z-index--content);background-image:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--wp--custom--color--phase--create) 60%, transparent) 24%, var(--wp--custom--color--phase--create) 50%, color-mix(in srgb, var(--wp--custom--color--phase--create) 60%, transparent) 76%, transparent 100%);box-shadow:0 0 16px 0 color-mix(in srgb, var(--wp--custom--color--phase--create) 70%, transparent),0 8px 32px 0 color-mix(in srgb, var(--wp--custom--color--phase--create) 30%, transparent)}.site-footer__columns{position:relative}.site-footer__columns::after{content:"";position:absolute;inset-block-start:10%;inset-inline-end:8%;inline-size:min(38vw,520px);block-size:min(30vw,360px);background:radial-gradient(ellipse closest-side, color-mix(in srgb, var(--wp--custom--color--phase--create) 14%, transparent) 0%, transparent 70%);filter:blur(40px);pointer-events:none;z-index:0}.site-footer__columns>*{position:relative;z-index:1}.ls-footer-nav-link a{transition:color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),text-decoration-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.ls-footer-nav-link a{transition:none}}@media(max-width: 781px){.footer-nav-columns{display:grid;grid-template-columns:repeat(2, 1fr);column-gap:var(--wp--preset--spacing--40);row-gap:var(--wp--preset--spacing--40)}.footer-nav-columns>.wp-block-columns{display:contents}}.site-header+*{margin-block-start:0}@media(max-width: 599.98px){.site-header__actions .wp-block-buttons{display:none}}@media(max-width: 1023.98px){.site-header .wp-block-navigation{margin-inline-start:auto}}.ls-button-cta-gradient .wp-block-button__link{transition:transform var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),box-shadow var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-button-cta-gradient .wp-block-button__link:hover,.ls-button-cta-gradient .wp-block-button__link:focus-visible{transform:translateY(-1px)}.site-header__search .wp-block-search__button{display:flex;align-items:center;justify-content:center;min-inline-size:var(--wp--custom--spacing--tap-target-min);min-block-size:var(--wp--custom--spacing--tap-target-min);padding:var(--wp--preset--spacing--10);background-color:color-mix(in srgb, var(--wp--custom--color--surface--card) 4%, transparent)}.site-header__search .wp-block-search__input{inline-size:0;min-inline-size:0;padding-inline:0;border-width:0;opacity:0;transition:inline-size var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard),opacity var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),padding-inline var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard)}.site-header__search.site-header__search--expanded .wp-block-search__input{inline-size:12rem;padding-inline:var(--wp--preset--spacing--10);border-width:1px;opacity:1}@media(prefers-reduced-motion: reduce){.ls-button-cta-gradient .wp-block-button__link,.site-header__search .wp-block-search__input{transition:none}} diff --git a/assets/css/discover-hero.css b/assets/css/discover-hero.css new file mode 100644 index 0000000..0884493 --- /dev/null +++ b/assets/css/discover-hero.css @@ -0,0 +1 @@ +.ls-phase-hero{position:relative;overflow:hidden;background-image:linear-gradient(color-mix(in srgb, var(--wp--custom--color--text--on-dark) 4%, transparent) 1px, transparent 1px),linear-gradient(90deg, color-mix(in srgb, var(--wp--custom--color--text--on-dark) 4%, transparent) 1px, transparent 1px),radial-gradient(60% 50% at 50% 22%, color-mix(in srgb, var(--wp--custom--color--phase--discover-on-dark) 14%, transparent) 0%, transparent 70%),linear-gradient(158deg, var(--wp--custom--color--surface--band-start) 0%, var(--wp--custom--color--surface--band-end) 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,no-repeat,no-repeat;background-size:32px 32px,32px 32px,auto,auto}.ls-phase-hero .breadcrumb_last{color:var(--wp--custom--color--phase--discover-on-dark)} diff --git a/functions.php b/functions.php index 15ba902..05bcae8 100644 --- a/functions.php +++ b/functions.php @@ -70,6 +70,7 @@ function ls_theme_setup() { add_editor_style( 'assets/css/card-shells.css' ); add_editor_style( 'assets/css/cta-buttons.css' ); add_editor_style( 'assets/css/home-hero.css' ); + add_editor_style( 'assets/css/discover-hero.css' ); add_editor_style( 'assets/css/services-hero.css' ); add_editor_style( 'assets/css/services-linked-decisions.css' ); add_editor_style( 'assets/css/services-service-clusters.css' ); diff --git a/inc/animations.php b/inc/animations.php index dda1bab..b4a755c 100644 --- a/inc/animations.php +++ b/inc/animations.php @@ -276,6 +276,16 @@ function ls_theme_get_effect_styles( $context = 'front' ) { 'contexts' => array( 'front', 'editor' ), 'condition' => 'is_front_page', ), + 'discover-hero' => array( + 'handle' => 'ls-theme-discover-hero', + 'path' => 'assets/css/discover-hero.css', + 'contexts' => array( 'front', 'editor' ), + // Scoped to the Discover page's own slug, same reasoning as services-service-tiles/ + // services-delivery-numbers above — a real, known page slug from the start. + 'condition' => static function () { + return is_page( 'discover' ); + }, + ), 'services-hero' => array( 'handle' => 'ls-theme-services-hero', 'path' => 'assets/css/services-hero.css', diff --git a/package.json b/package.json index 352c090..e0665f4 100644 --- a/package.json +++ b/package.json @@ -4,15 +4,15 @@ "description": "LightSpeed Theme is a custom WordPress block theme built by LightSpeed for fast, accessible, maintainable websites using the WordPress Site Editor and block editor.", "type": "module", "scripts": { - "build:css": "sass --no-source-map --no-charset --style=compressed src/scss/animations.scss:assets/css/animations.css src/scss/gsap-animations.scss:assets/css/gsap-animations.css src/scss/structural/taxonomy-filter.scss:assets/css/taxonomy-filter.css src/scss/structural/work-project-card.scss:assets/css/work-project-card.css src/scss/structural/work-archive-sections.scss:assets/css/work-archive-sections.css src/scss/structural/card-shells.scss:assets/css/card-shells.css src/scss/structural/cta-buttons.scss:assets/css/cta-buttons.css src/scss/structural/home-hero.scss:assets/css/home-hero.css src/scss/structural/work-hero.scss:assets/css/work-hero.css src/scss/structural/work-single-hero.scss:assets/css/work-single-hero.css src/scss/structural/blog-hero.scss:assets/css/blog-hero.css src/scss/structural/blog-all-articles.scss:assets/css/blog-all-articles.css src/scss/structural/blog-writing-cta.scss:assets/css/blog-writing-cta.css src/scss/structural/faq.scss:assets/css/faq.css src/scss/structural/links.scss:assets/css/links.css src/scss/structural/button-secondary.scss:assets/css/button-secondary.css src/scss/structural/featured-work.scss:assets/css/featured-work.css src/scss/structural/where-to-fit.scss:assets/css/where-to-fit.css src/scss/structural/homepage-cta.scss:assets/css/homepage-cta.css src/scss/structural/stats-bar.scss:assets/css/stats-bar.css src/scss/structural/homepage-card-rows.scss:assets/css/homepage-card-rows.css src/scss/structural/homepage-why-lightspeed.scss:assets/css/homepage-why-lightspeed.css src/scss/structural/search-results.scss:assets/css/search-results.css src/scss/structural/search-hero.scss:assets/css/search-hero.css src/scss/structural/services-hero.scss:assets/css/services-hero.css src/scss/structural/services-linked-decisions.scss:assets/css/services-linked-decisions.css src/scss/structural/services-service-clusters.scss:assets/css/services-service-clusters.css src/scss/structural/services-service-tiles.scss:assets/css/services-service-tiles.css src/scss/structural/services-delivery-numbers.scss:assets/css/services-delivery-numbers.css src/scss/structural/corner-glow.scss:assets/css/corner-glow.css", - "build:css:dev": "sass --no-source-map --no-charset --style=expanded src/scss/animations.scss:assets/css/animations.css src/scss/gsap-animations.scss:assets/css/gsap-animations.css src/scss/structural/taxonomy-filter.scss:assets/css/taxonomy-filter.css src/scss/structural/work-project-card.scss:assets/css/work-project-card.css src/scss/structural/work-archive-sections.scss:assets/css/work-archive-sections.css src/scss/structural/card-shells.scss:assets/css/card-shells.css src/scss/structural/cta-buttons.scss:assets/css/cta-buttons.css src/scss/structural/home-hero.scss:assets/css/home-hero.css src/scss/structural/work-hero.scss:assets/css/work-hero.css src/scss/structural/work-single-hero.scss:assets/css/work-single-hero.css src/scss/structural/blog-hero.scss:assets/css/blog-hero.css src/scss/structural/blog-all-articles.scss:assets/css/blog-all-articles.css src/scss/structural/blog-writing-cta.scss:assets/css/blog-writing-cta.css src/scss/structural/faq.scss:assets/css/faq.css src/scss/structural/links.scss:assets/css/links.css src/scss/structural/button-secondary.scss:assets/css/button-secondary.css src/scss/structural/featured-work.scss:assets/css/featured-work.css src/scss/structural/where-to-fit.scss:assets/css/where-to-fit.css src/scss/structural/homepage-cta.scss:assets/css/homepage-cta.css src/scss/structural/stats-bar.scss:assets/css/stats-bar.css src/scss/structural/homepage-card-rows.scss:assets/css/homepage-card-rows.css src/scss/structural/homepage-why-lightspeed.scss:assets/css/homepage-why-lightspeed.css src/scss/structural/search-results.scss:assets/css/search-results.css src/scss/structural/search-hero.scss:assets/css/search-hero.css src/scss/structural/services-hero.scss:assets/css/services-hero.css src/scss/structural/services-linked-decisions.scss:assets/css/services-linked-decisions.css src/scss/structural/services-service-clusters.scss:assets/css/services-service-clusters.css src/scss/structural/services-service-tiles.scss:assets/css/services-service-tiles.css src/scss/structural/services-delivery-numbers.scss:assets/css/services-delivery-numbers.css src/scss/structural/corner-glow.scss:assets/css/corner-glow.css", + "build:css": "sass --no-source-map --no-charset --style=compressed src/scss/animations.scss:assets/css/animations.css src/scss/gsap-animations.scss:assets/css/gsap-animations.css src/scss/structural/taxonomy-filter.scss:assets/css/taxonomy-filter.css src/scss/structural/work-project-card.scss:assets/css/work-project-card.css src/scss/structural/work-archive-sections.scss:assets/css/work-archive-sections.css src/scss/structural/card-shells.scss:assets/css/card-shells.css src/scss/structural/cta-buttons.scss:assets/css/cta-buttons.css src/scss/structural/home-hero.scss:assets/css/home-hero.css src/scss/structural/work-hero.scss:assets/css/work-hero.css src/scss/structural/work-single-hero.scss:assets/css/work-single-hero.css src/scss/structural/blog-hero.scss:assets/css/blog-hero.css src/scss/structural/blog-all-articles.scss:assets/css/blog-all-articles.css src/scss/structural/blog-writing-cta.scss:assets/css/blog-writing-cta.css src/scss/structural/faq.scss:assets/css/faq.css src/scss/structural/links.scss:assets/css/links.css src/scss/structural/button-secondary.scss:assets/css/button-secondary.css src/scss/structural/featured-work.scss:assets/css/featured-work.css src/scss/structural/where-to-fit.scss:assets/css/where-to-fit.css src/scss/structural/homepage-cta.scss:assets/css/homepage-cta.css src/scss/structural/stats-bar.scss:assets/css/stats-bar.css src/scss/structural/homepage-card-rows.scss:assets/css/homepage-card-rows.css src/scss/structural/homepage-why-lightspeed.scss:assets/css/homepage-why-lightspeed.css src/scss/structural/search-results.scss:assets/css/search-results.css src/scss/structural/search-hero.scss:assets/css/search-hero.css src/scss/structural/services-hero.scss:assets/css/services-hero.css src/scss/structural/services-linked-decisions.scss:assets/css/services-linked-decisions.css src/scss/structural/services-service-clusters.scss:assets/css/services-service-clusters.css src/scss/structural/services-service-tiles.scss:assets/css/services-service-tiles.css src/scss/structural/services-delivery-numbers.scss:assets/css/services-delivery-numbers.css src/scss/structural/corner-glow.scss:assets/css/corner-glow.css src/scss/structural/discover-hero.scss:assets/css/discover-hero.css", + "build:css:dev": "sass --no-source-map --no-charset --style=expanded src/scss/animations.scss:assets/css/animations.css src/scss/gsap-animations.scss:assets/css/gsap-animations.css src/scss/structural/taxonomy-filter.scss:assets/css/taxonomy-filter.css src/scss/structural/work-project-card.scss:assets/css/work-project-card.css src/scss/structural/work-archive-sections.scss:assets/css/work-archive-sections.css src/scss/structural/card-shells.scss:assets/css/card-shells.css src/scss/structural/cta-buttons.scss:assets/css/cta-buttons.css src/scss/structural/home-hero.scss:assets/css/home-hero.css src/scss/structural/work-hero.scss:assets/css/work-hero.css src/scss/structural/work-single-hero.scss:assets/css/work-single-hero.css src/scss/structural/blog-hero.scss:assets/css/blog-hero.css src/scss/structural/blog-all-articles.scss:assets/css/blog-all-articles.css src/scss/structural/blog-writing-cta.scss:assets/css/blog-writing-cta.css src/scss/structural/faq.scss:assets/css/faq.css src/scss/structural/links.scss:assets/css/links.css src/scss/structural/button-secondary.scss:assets/css/button-secondary.css src/scss/structural/featured-work.scss:assets/css/featured-work.css src/scss/structural/where-to-fit.scss:assets/css/where-to-fit.css src/scss/structural/homepage-cta.scss:assets/css/homepage-cta.css src/scss/structural/stats-bar.scss:assets/css/stats-bar.css src/scss/structural/homepage-card-rows.scss:assets/css/homepage-card-rows.css src/scss/structural/homepage-why-lightspeed.scss:assets/css/homepage-why-lightspeed.css src/scss/structural/search-results.scss:assets/css/search-results.css src/scss/structural/search-hero.scss:assets/css/search-hero.css src/scss/structural/services-hero.scss:assets/css/services-hero.css src/scss/structural/services-linked-decisions.scss:assets/css/services-linked-decisions.css src/scss/structural/services-service-clusters.scss:assets/css/services-service-clusters.css src/scss/structural/services-service-tiles.scss:assets/css/services-service-tiles.css src/scss/structural/services-delivery-numbers.scss:assets/css/services-delivery-numbers.css src/scss/structural/corner-glow.scss:assets/css/corner-glow.css src/scss/structural/discover-hero.scss:assets/css/discover-hero.css", "schema:validate": "node theme-utils.mjs validate-schema", "theme:validate": "node theme-utils.mjs validate-theme", "patterns:escape": "node theme-utils.mjs escape-patterns", "security:scan": "node theme-utils.mjs security-scan", "lint": "npm run lint:json", "lint:json": "node --input-type=module --eval \"import { readFileSync } from 'fs'; import { glob } from 'glob'; const files = await glob(['theme.json', 'styles/**/*.json']); let ok = true; for (const f of files) { try { JSON.parse(readFileSync(f, 'utf8')); } catch (e) { console.error('Invalid JSON:', f, e.message); ok = false; } } if (ok) console.log('All JSON files are valid.'); else process.exit(1);\"", - "watch:css": "sass --watch --no-source-map --no-charset --style=expanded src/scss/animations.scss:assets/css/animations.css src/scss/gsap-animations.scss:assets/css/gsap-animations.css src/scss/structural/taxonomy-filter.scss:assets/css/taxonomy-filter.css src/scss/structural/work-project-card.scss:assets/css/work-project-card.css src/scss/structural/work-archive-sections.scss:assets/css/work-archive-sections.css src/scss/structural/card-shells.scss:assets/css/card-shells.css src/scss/structural/cta-buttons.scss:assets/css/cta-buttons.css src/scss/structural/home-hero.scss:assets/css/home-hero.css src/scss/structural/work-hero.scss:assets/css/work-hero.css src/scss/structural/work-single-hero.scss:assets/css/work-single-hero.css src/scss/structural/blog-hero.scss:assets/css/blog-hero.css src/scss/structural/blog-all-articles.scss:assets/css/blog-all-articles.css src/scss/structural/blog-writing-cta.scss:assets/css/blog-writing-cta.css src/scss/structural/faq.scss:assets/css/faq.css src/scss/structural/links.scss:assets/css/links.css src/scss/structural/button-secondary.scss:assets/css/button-secondary.css src/scss/structural/featured-work.scss:assets/css/featured-work.css src/scss/structural/where-to-fit.scss:assets/css/where-to-fit.css src/scss/structural/homepage-cta.scss:assets/css/homepage-cta.css src/scss/structural/stats-bar.scss:assets/css/stats-bar.css src/scss/structural/homepage-card-rows.scss:assets/css/homepage-card-rows.css src/scss/structural/homepage-why-lightspeed.scss:assets/css/homepage-why-lightspeed.css src/scss/structural/search-results.scss:assets/css/search-results.css src/scss/structural/search-hero.scss:assets/css/search-hero.css src/scss/structural/services-hero.scss:assets/css/services-hero.css src/scss/structural/services-linked-decisions.scss:assets/css/services-linked-decisions.css src/scss/structural/services-service-clusters.scss:assets/css/services-service-clusters.css src/scss/structural/services-service-tiles.scss:assets/css/services-service-tiles.css src/scss/structural/services-delivery-numbers.scss:assets/css/services-delivery-numbers.css src/scss/structural/corner-glow.scss:assets/css/corner-glow.css" + "watch:css": "sass --watch --no-source-map --no-charset --style=expanded src/scss/animations.scss:assets/css/animations.css src/scss/gsap-animations.scss:assets/css/gsap-animations.css src/scss/structural/taxonomy-filter.scss:assets/css/taxonomy-filter.css src/scss/structural/work-project-card.scss:assets/css/work-project-card.css src/scss/structural/work-archive-sections.scss:assets/css/work-archive-sections.css src/scss/structural/card-shells.scss:assets/css/card-shells.css src/scss/structural/cta-buttons.scss:assets/css/cta-buttons.css src/scss/structural/home-hero.scss:assets/css/home-hero.css src/scss/structural/work-hero.scss:assets/css/work-hero.css src/scss/structural/work-single-hero.scss:assets/css/work-single-hero.css src/scss/structural/blog-hero.scss:assets/css/blog-hero.css src/scss/structural/blog-all-articles.scss:assets/css/blog-all-articles.css src/scss/structural/blog-writing-cta.scss:assets/css/blog-writing-cta.css src/scss/structural/faq.scss:assets/css/faq.css src/scss/structural/links.scss:assets/css/links.css src/scss/structural/button-secondary.scss:assets/css/button-secondary.css src/scss/structural/featured-work.scss:assets/css/featured-work.css src/scss/structural/where-to-fit.scss:assets/css/where-to-fit.css src/scss/structural/homepage-cta.scss:assets/css/homepage-cta.css src/scss/structural/stats-bar.scss:assets/css/stats-bar.css src/scss/structural/homepage-card-rows.scss:assets/css/homepage-card-rows.css src/scss/structural/homepage-why-lightspeed.scss:assets/css/homepage-why-lightspeed.css src/scss/structural/search-results.scss:assets/css/search-results.css src/scss/structural/search-hero.scss:assets/css/search-hero.css src/scss/structural/services-hero.scss:assets/css/services-hero.css src/scss/structural/services-linked-decisions.scss:assets/css/services-linked-decisions.css src/scss/structural/services-service-clusters.scss:assets/css/services-service-clusters.css src/scss/structural/services-service-tiles.scss:assets/css/services-service-tiles.css src/scss/structural/services-delivery-numbers.scss:assets/css/services-delivery-numbers.css src/scss/structural/corner-glow.scss:assets/css/corner-glow.css src/scss/structural/discover-hero.scss:assets/css/discover-hero.css" }, "devDependencies": { "@axe-core/playwright": "^4.13.0", diff --git a/patterns/hero/discover-hero.php b/patterns/hero/discover-hero.php index 6abe6e1..0d2ab3b 100644 --- a/patterns/hero/discover-hero.php +++ b/patterns/hero/discover-hero.php @@ -4,15 +4,16 @@ * Slug: ls-theme/discover-hero * Categories: hero * Block Types: core/pattern - * Description: The Discover phase page's hero: breadcrumb trail, "Phase 01" eyebrow badge, a two-line - * heading, supporting description, fine-print, primary/secondary CTAs, and a "send to a friend" - * utility pill. Intentionally always dark regardless of the active light/dark style variation — - * uses the theme's existing always-dark card tokens (surface.on-dark-card, text.on-dark family) - * rather than surface.canvas, which is the same approach already used in - * section-cta-consultation-inline.php and section-cta-consultation-reassurance.php. Accents use the - * shipped phase.discover-on-dark token (same phase-one hue as the site's lifecycle system, tuned - * for permanent-dark surfaces) instead of the Figma comp's one-off green, keeping this in line with - * the phase colours already shipped on the Services page. + * Description: The Discover phase page's hero: an independently-aligned breadcrumb, a compact + * "Phase 01" pill, a centred two-line heading, description, fine-print, CTA row, and a + * "send to a friend" utility pill. Full-bleed and permanently dark — the section's own grid + * texture, radial phase-colour glow, and dark base all live in + * src/scss/structural/discover-hero.scss (className ls-phase-hero), the same "background can't be + * a block attribute" reasoning documented in blog-hero.scss (an inline background always wins the + * cascade over an external stylesheet's background-image). Accents use the shipped + * phase.discover-on-dark token (same phase-one hue as the site's lifecycle system, tuned for + * permanent-dark surfaces), and the breadcrumb reuses blog-hero.php's existing + * ls-breadcrumbs-on-dark treatment. * Keywords: discover, hero, phase, lifecycle, section * Viewport Width: 1280 * Inserter: true @@ -21,68 +22,71 @@ */ ?> - -
+ +
- -
- - - - + + +
+ +
+ + - -
+ +
- -
- + +
+ - -

- -
- + +

+ +
+ - -

+ +
+ +

+
+ - -
- -

- -
- - - -

+ +
+ +

+
+ - -
- -
- + +

+ - -
- -
- + +
+ +
+ - -
- - + - -

- -
- + +
+ +
diff --git a/src/scss/animations/_button-motion.scss b/src/scss/animations/_button-motion.scss index c97f56c..84ee3c7 100644 --- a/src/scss/animations/_button-motion.scss +++ b/src/scss/animations/_button-motion.scss @@ -220,3 +220,37 @@ * transition above still applies (that's genuinely universal); the hover colour swap itself * lives in src/scss/structural/button-secondary.scss, its own standalone bundle. */ + +/* + * Button - Phase Primary / Button - Phase Outline (phase-page heroes, e.g. discover-hero.php): + * rest-state colour/shape/arrow glyph live in the style JSON files themselves + * (styles/blocks/buttons/button-phase-primary.json, button-phase-outline.json) — this is only the + * hover/focus arrow-slide, since a bare :hover in a style JSON's css field is silently stripped by + * WordPress (same class of bug documented for Card - Category and the Blog Hero's rainbow border). + */ +.wp-block-button.is-style-button-phase-primary .wp-block-button__link:hover::after, +.wp-block-button.is-style-button-phase-primary .wp-block-button__link:focus-visible::after, +.wp-block-button.is-style-button-phase-outline .wp-block-button__link:hover::after, +.wp-block-button.is-style-button-phase-outline .wp-block-button__link:focus-visible::after { + transform: translateX(var(--wp--preset--spacing--5)); +} + +.wp-block-button.is-style-button-phase-primary .wp-block-button__link::after, +.wp-block-button.is-style-button-phase-outline .wp-block-button__link::after { + transition: transform var(--wp--custom--animation--duration--base) + var(--wp--custom--animation--easing--standard); +} + +@media (prefers-reduced-motion: reduce) { + .wp-block-button.is-style-button-phase-primary .wp-block-button__link::after, + .wp-block-button.is-style-button-phase-outline .wp-block-button__link::after { + transition: none; + } + + .wp-block-button.is-style-button-phase-primary .wp-block-button__link:hover::after, + .wp-block-button.is-style-button-phase-primary .wp-block-button__link:focus-visible::after, + .wp-block-button.is-style-button-phase-outline .wp-block-button__link:hover::after, + .wp-block-button.is-style-button-phase-outline .wp-block-button__link:focus-visible::after { + transform: none; + } +} diff --git a/src/scss/structural/discover-hero.scss b/src/scss/structural/discover-hero.scss new file mode 100644 index 0000000..a0a1d7c --- /dev/null +++ b/src/scss/structural/discover-hero.scss @@ -0,0 +1,40 @@ +/********** Discover Hero (Discover phase page only) **********/ + +/* + * Discover Hero background: a faint 32px crossed-gradient grid (same technique as + * .ls-card-banner-tint in src/scss/structural/work-project-card.scss — two 1px linear-gradients, + * one per axis, repeated) layered over a soft radial phase-colour glow behind the upper-middle + * content, over the same permanently-dark band-start/band-end diagonal base already used by + * src/scss/structural/blog-hero.scss. Combined into one background-image list rather than left as + * the block's own inline color.gradient attribute, for the same reason documented in + * blog-hero.scss: an inline `style="background:..."` always wins the cascade over any external + * stylesheet's background-image, so the two can't coexist on this block. + * + * Hardwired to phase.discover-on-dark rather than a CSS custom property — this file only needs to + * serve the Discover hero today. When Create/Build/Launch/Grow/Evolve heroes are built, either + * duplicate this file per phase (fast, proven-safe) or generalise it to a shared --ls-phase-accent + * custom property at that point, once it's clear which is actually needed — not guessed now. + */ +.ls-phase-hero { + position: relative; + overflow: hidden; + background-image: + linear-gradient(color-mix(in srgb, var(--wp--custom--color--text--on-dark) 4%, transparent) 1px, transparent 1px), + linear-gradient(90deg, color-mix(in srgb, var(--wp--custom--color--text--on-dark) 4%, transparent) 1px, transparent 1px), + radial-gradient(60% 50% at 50% 22%, color-mix(in srgb, var(--wp--custom--color--phase--discover-on-dark) 14%, transparent) 0%, transparent 70%), + linear-gradient(158deg, var(--wp--custom--color--surface--band-start) 0%, var(--wp--custom--color--surface--band-end) 100%); + background-position: 0 0, 0 0, 0 0, 0 0; + background-repeat: repeat, repeat, no-repeat, no-repeat; + background-size: 32px 32px, 32px 32px, auto, auto; +} + +/* + * Breadcrumb (Discover Hero): reuses the existing .ls-breadcrumbs-on-dark class and its `a` colour + * fix from blog-hero.scss unmodified. This is the one addition that class doesn't already cover — + * highlighting the current/last crumb in the hero's own phase colour. Yoast SEO's breadcrumb + * output marks the current, unlinked page with .breadcrumb_last (a plain span, not an anchor), so + * this can't be covered by the `a` rule above. + */ +.ls-phase-hero .breadcrumb_last { + color: var(--wp--custom--color--phase--discover-on-dark); +} diff --git a/styles/blocks/buttons/button-phase-outline.json b/styles/blocks/buttons/button-phase-outline.json new file mode 100644 index 0000000..4015cd1 --- /dev/null +++ b/styles/blocks/buttons/button-phase-outline.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.9/theme.json", + "version": 3, + "title": "Button - Phase Outline", + "slug": "button-phase-outline", + "blockTypes": [ + "core/button" + ], + "description": "Outline pill CTA pairing Button - Phase Primary on the phase-page heroes. Transparent background, thin phase-colour border, phase-colour text — no separate boxed icon area. Same on-dark-constant reasoning and same 'hardwired to Discover for now' note as button-phase-primary.json. Hover/focus arrow-slide motion lives in src/scss/animations/_button-motion.scss.", + "styles": { + "color": { + "background": "transparent", + "text": "var:custom|color|phase|discover-on-dark" + }, + "border": { + "color": "var:custom|color|phase|discover-on-dark", + "radius": "var:preset|border-radius|500", + "style": "solid", + "width": "1px" + }, + "spacing": { + "padding": { + "top": "var:preset|spacing|20", + "right": "var:preset|spacing|30", + "bottom": "var:preset|spacing|20", + "left": "var:preset|spacing|30" + } + }, + "typography": { + "fontSize": "var:preset|font-size|200", + "fontWeight": "var:custom|typography|font-weight|semibold", + "letterSpacing": "normal" + }, + "css": "&{display:inline-flex;align-items:center;gap:var(--wp--preset--spacing--10);}\n\n&::after{content:\"\\2192\";display:inline-block;}" + } +} diff --git a/styles/blocks/buttons/button-phase-primary.json b/styles/blocks/buttons/button-phase-primary.json new file mode 100644 index 0000000..f92ae62 --- /dev/null +++ b/styles/blocks/buttons/button-phase-primary.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.9/theme.json", + "version": 3, + "title": "Button - Phase Primary", + "slug": "button-phase-primary", + "blockTypes": [ + "core/button" + ], + "description": "Pill CTA for the phase-page heroes (Discover, and eventually Create/Build/Launch/Grow/Evolve). Background/text stay constant across the light/dark style variation toggle, matching the on-dark token family — the hero itself is permanently dark, so this can't use the sitewide button.fill tokens, which flip colour with the variation. Rest state (colour, shape, the inline arrow glyph) lives here; the hover/focus arrow-slide motion lives in src/scss/animations/_button-motion.scss, since a bare :hover in a style JSON's css field is silently stripped by WordPress. Currently hardwired to phase.discover-on-dark rather than a CSS custom property — narrowed to what Discover actually needs now; generalise to a shared --ls-button-phase-accent custom property (set by whichever hero uses it) once a second phase page needs this same style, rather than guessing at that shape today.", + "styles": { + "color": { + "background": "var:custom|color|phase|discover-on-dark", + "text": "var:custom|color|text|on-light" + }, + "border": { + "radius": "var:preset|border-radius|500", + "style": "none", + "width": "0" + }, + "spacing": { + "padding": { + "top": "var:preset|spacing|20", + "right": "var:preset|spacing|30", + "bottom": "var:preset|spacing|20", + "left": "var:preset|spacing|30" + } + }, + "typography": { + "fontSize": "var:preset|font-size|200", + "fontWeight": "var:custom|typography|font-weight|semibold", + "letterSpacing": "normal" + }, + "css": "&{display:inline-flex;align-items:center;gap:var(--wp--preset--spacing--10);}\n\n&::after{content:\"\\2192\";display:inline-block;}" + } +} diff --git a/styles/presets/typography.json b/styles/presets/typography.json index 394a1a1..60c883b 100644 --- a/styles/presets/typography.json +++ b/styles/presets/typography.json @@ -279,6 +279,7 @@ }, "custom": { "line-height": { + "heading-tight": "0.95", "heading-snug": "1.1", "heading-default": "1.25", "heading-loose": "1.35", From 7ab7283213e1d9a32260158c82dd395c170b77bc Mon Sep 17 00:00:00 2001 From: Brandonma21 Date: Mon, 21 Sep 2026 21:02:39 +0200 Subject: [PATCH 03/11] Refine Discover hero: 2-line heading, CTA balance, icons, hover state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Layout & spacing - Widen heading wrapper 760px->860px so "Research. Strategise." wraps onto one line as intended, instead of splitting to a third line - Increase "Send to a friend" text to the 16px/200 font-size preset and its icon from 11px to 12px to match Buttons - Remove the arrow glyph (and its now-orphaned hover-slide motion) from button-phase-outline — secondary CTA doesn't need one, only primary does - Rebalance CTA widths: primary padding 30->40, outline 30->20, so the two buttons read closer in size instead of the outline dwarfing primary Background - Reduce discover-hero.scss grid-line opacity 4%->2% to match the reference more closely while keeping the glow untouched Icons - Fix "Send to a friend": lightspeed/paper-plane-tilt now exists in ls-plugin (PR #26) and resolves correctly — it was silently blank before since that icon didn't exist yet - Confirmed every icon used across the Discover patterns resolves from the real LightSpeed collection (WordPress core Icon block + ls-plugin) "Send to a friend" hover - Add a subtle hover/focus-within state (background/border opacity only, no motion) reusing the same on-dark colour family - Move its rest-state background/border out of discover-hero.php's inline block attributes and into discover-hero.scss — an inline style always wins the cascade over an external :hover rule for the same property, so the hover state could never have applied while those colours stayed inline (same class of bug already documented in blog-hero.scss) --- assets/css/animations.css | 2 +- assets/css/discover-hero.css | 2 +- patterns/hero/discover-hero.php | 12 +++---- src/scss/animations/_button-motion.scss | 25 ++++++------- src/scss/structural/discover-hero.scss | 36 +++++++++++++++++-- .../blocks/buttons/button-phase-outline.json | 8 ++--- .../blocks/buttons/button-phase-primary.json | 4 +-- 7 files changed, 58 insertions(+), 31 deletions(-) diff --git a/assets/css/animations.css b/assets/css/animations.css index 1ff712d..dd2a565 100644 --- a/assets/css/animations.css +++ b/assets/css/animations.css @@ -1 +1 @@ -.ls-footer-nav-link a{color:inherit;text-decoration-line:underline;text-decoration-color:rgba(0,0,0,0);text-underline-offset:3px}.ls-footer-nav-link a:hover,.ls-footer-nav-link a:focus-visible{color:var(--wp--custom--color--phase--create);text-decoration-color:var(--wp--custom--color--phase--create)}.ls-footer-proof-card:hover,.ls-footer-proof-card:focus-within,.ls-footer-social-icon:hover,.ls-footer-social-icon:focus-within{background-color:var(--wp--custom--color--surface--card-raised) !important;border-color:var(--wp--custom--color--phase--create) !important}.ls-footer-social-icon{min-inline-size:var(--wp--custom--spacing--tap-target-min)}.ls-footer-proof-card{height:100%}.site-logo--for-light{display:var(--wp--custom--visibility--logo-for-light)}.site-logo--for-dark{display:var(--wp--custom--visibility--logo-for-dark)}.site-logo--for-light img,.site-logo--for-dark img{display:block;width:var(--wp--custom--layout--logo-width);height:auto}@media(max-width: 1023.98px){.site-header{padding-left:var(--wp--preset--spacing--60) !important;padding-right:var(--wp--preset--spacing--60) !important}}@media(max-width: 599.98px){.site-header{padding-left:var(--wp--preset--spacing--20) !important;padding-right:var(--wp--preset--spacing--20) !important}}.ls-button-cta-gradient .wp-block-button__link:hover,.ls-button-cta-gradient .wp-block-button__link:focus-visible{box-shadow:var(--wp--custom--shadow--interactive--accent),var(--wp--custom--shadow--elevation--300)}.site-header .wp-block-navigation__responsive-container-close{position:absolute;top:var(--wp--preset--spacing--20);right:var(--wp--preset--spacing--20);display:flex;align-items:center;justify-content:center;min-inline-size:var(--wp--custom--spacing--tap-target-min);min-block-size:var(--wp--custom--spacing--tap-target-min);padding:var(--wp--preset--spacing--10);border:1px solid var(--wp--custom--color--border--card);border-radius:var(--wp--preset--border-radius--500);background-color:color-mix(in srgb, var(--wp--custom--color--surface--card) 4%, transparent)}.site-header .wp-block-navigation__responsive-container-close svg{inline-size:20px;block-size:20px}.site-header .wp-block-navigation-item{position:static}.site-header .wp-block-navigation__submenu-container{left:50%;right:auto;transform:translateX(-50%)}.site-header .wp-block-ollie-mega-menu__menu-container{background:rgba(0,0,0,0)}.ls-mega-menu-panel-services{width:fit-content;max-width:100vw;box-sizing:border-box}.ls-mega-menu-panel-services .wp-block-columns{display:grid;grid-template-columns:repeat(6, minmax(0, 1fr));gap:var(--wp--style--block-gap)}.ls-mega-menu-panel-services .wp-block-column{width:auto}.ls-mega-menu-panel-services .wp-block-column>.wp-block-group p{white-space:nowrap}.ls-simple-submenu-links>.is-style-mega-menu-item-service,.ls-services-phase-links>.is-style-mega-menu-item-service{padding:var(--wp--preset--spacing--5)}.ls-services-phase-links{display:grid;grid-template-columns:1fr;row-gap:0}.ls-services-phase-links>*{margin:0}.ls-services-phase-links{padding-left:calc(8px + var(--wp--preset--spacing--5))}.is-style-mega-menu-item-default{position:relative}.is-style-mega-menu-item-default h5 a::after{content:"";position:absolute;inset:0;z-index:1}.is-style-mega-menu-item-default:hover .wp-block-outermost-icon-block,.is-style-mega-menu-item-default:focus-within .wp-block-outermost-icon-block,.is-style-mega-menu-item-default:hover .wp-block-icon,.is-style-mega-menu-item-default:focus-within .wp-block-icon{color:var(--wp--custom--color--text--subtle)}.is-style-mega-menu-item-service{position:relative}.is-style-mega-menu-item-service a::after{content:"";position:absolute;inset:0;z-index:1}.is-style-mega-menu-item-service:hover,.is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--link--accent) 8%, transparent);border-left-color:var(--wp--custom--color--link--accent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--discover) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--discover) 15%, transparent);border-left-color:var(--wp--custom--color--phase--discover)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--discover)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--create) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--create) 15%, transparent);border-left-color:var(--wp--custom--color--phase--create)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--create)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--build) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--build) 15%, transparent);border-left-color:var(--wp--custom--color--phase--build)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--build)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--launch) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--launch) 15%, transparent);border-left-color:var(--wp--custom--color--phase--launch)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--launch)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--grow) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--grow) 15%, transparent);border-left-color:var(--wp--custom--color--phase--grow)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--grow)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--evolve) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--evolve) 15%, transparent);border-left-color:var(--wp--custom--color--phase--evolve)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--evolve)}@keyframes ls-accent-gradient-shift{to{background-position:var(--ls-accent-gradient-end-position) center}}.site-header__search .wp-block-search__button,.site-header .wp-block-navigation__responsive-container-close,.ls-footer-proof-card,.ls-footer-social-icon{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.site-header__search .wp-block-search__button:hover,.site-header__search .wp-block-search__button:focus-visible,.site-header .wp-block-navigation__responsive-container-close:hover,.site-header .wp-block-navigation__responsive-container-close:focus-visible{background-color:var(--wp--custom--color--surface--card-raised);border-color:var(--wp--custom--color--phase--create)}.is-style-mega-menu-item-default{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.is-style-mega-menu-item-default:hover,.is-style-mega-menu-item-default:focus-within{background-color:var(--wp--custom--color--surface--card-raised)}.is-style-mega-menu-item-service{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-left-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.site-header__search .wp-block-search__button,.site-header .wp-block-navigation__responsive-container-close,.ls-footer-proof-card,.ls-footer-social-icon,.is-style-mega-menu-item-default,.is-style-mega-menu-item-service{transition:none}}.wp-block-details{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),box-shadow var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.wp-block-details>summary{transition:inherit}.wp-block-details>summary::after{transform:translateY(-1px) rotate(45deg);transition:transform var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--emphasised),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.wp-block-details:not(.is-style-mobile-menu-accordion)>summary{padding:var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);font:inherit;font-weight:var(--wp--custom--typography--font-weight--normal)}.wp-block-details:hover:not(.is-style-mobile-menu-accordion){background:var(--wp--custom--color--surface--card-raised);border-color:var(--wp--custom--color--link--accent)}.wp-block-details[open]:not(.is-style-mobile-menu-accordion),.wp-block-details[open]:hover:not(.is-style-mobile-menu-accordion){background:var(--wp--custom--color--surface--card);border-color:var(--wp--custom--color--link--accent)}.wp-block-details:not(.is-style-mobile-menu-accordion)[open]>summary{border-bottom:1px solid var(--wp--custom--color--link--accent)}.wp-block-details[open]>summary::after{transform:translateY(1px) rotate(-135deg)}.wp-block-details:focus-within:not(.is-style-mobile-menu-accordion){border-color:var(--wp--custom--color--link--accent);box-shadow:0 0 0 2px var(--wp--custom--color--focus--ring)}.wp-element-button,.wp-block-button__link{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),box-shadow var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),outline-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),outline-offset var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),transform var(--wp--custom--animation--duration--fast) var(--wp--custom--animation--easing--standard);transition-delay:var(--wp--custom--animation--delay--enter)}.wp-element-button:hover,.wp-element-button:focus-visible,.wp-block-button__link:hover,.wp-block-button__link:focus-visible{outline-offset:0}.wp-element-button:active,.wp-block-button__link:active{transform:scale(var(--ls-button-active-scale, var(--wp--custom--animation--scale--active)))}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link{--ls-button-fill-icon-well-size: 3rem;--ls-button-fill-icon-inline-end: 0.625rem;--ls-button-fill-icon-font-size: 1.25rem;--ls-button-fill-icon-block-inset: calc( 50% - (var(--ls-button-fill-icon-well-size) / 2) );--ls-button-fill-icon-inline-start: calc( 100% - var(--ls-button-fill-icon-well-size) - var(--ls-button-fill-icon-inline-end) );background:rgba(0,0,0,0);border:0;transition:transform var(--ls-button-fill-duration, var(--wp--custom--animation--duration--emphasised)) var(--wp--custom--animation--easing--emphasised),color var(--ls-button-fill-duration, var(--wp--custom--animation--duration--emphasised)) var(--wp--custom--animation--easing--emphasised)}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--ls-button-fill-background, var(--wp--custom--color--button--fill--background));transition:inset-inline-start var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),inset-inline-end var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),inset-block-start var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),inset-block-end var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),border-radius var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised);z-index:var(--wp--custom--z-index--behind)}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link::after{content:"\2192";position:absolute;inset-block:var(--ls-button-fill-icon-block-inset);inset-inline-end:var(--ls-button-fill-icon-inline-end);width:var(--ls-button-fill-icon-well-size);display:grid;place-items:center;color:var(--ls-button-fill-icon-colour, currentColor);font-size:var(--ls-button-fill-icon-font-size);font-weight:700;line-height:1;transition:color var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised)}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover,:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover::before{transition-delay:var(--ls-button-fill-enter-delay, var(--wp--custom--animation--delay--enter))}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover::before,:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:focus-visible::before{inset-block:var(--ls-button-fill-icon-block-inset);inset-inline-end:var(--ls-button-fill-icon-inline-end);inset-inline-start:var(--ls-button-fill-icon-inline-start);border-radius:inherit}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover,:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:focus-visible{color:var(--ls-button-fill-hover-text, var(--wp--custom--color--text--default))}.wp-block-button.is-style-outline .wp-block-button__link{--ls-button-outline-icon-well-size: calc(3rem - 4px);--ls-button-outline-icon-inset: 4px;--ls-button-outline-icon-font-size: 1.25rem;--ls-button-outline-hover-padding-start: calc(4rem - 4px);--ls-button-outline-hover-padding-end: 1.5rem;--ls-button-outline-icon-inline-start: calc( 100% - var(--ls-button-outline-icon-well-size) - var(--ls-button-outline-icon-inset) );transition:padding-inline-start var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised),padding-inline-end var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised),transform var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--smooth)}.wp-block-button.is-style-outline .wp-block-button__link::after{content:"\2192";position:absolute;inset-block:var(--ls-button-outline-icon-inset);inset-inline-end:var(--ls-button-outline-icon-inset);width:var(--ls-button-outline-icon-well-size);display:grid;place-items:center;border-radius:var(--ls-button-outline-icon-radius, var(--wp--preset--border-radius--100));background-color:var(--ls-button-outline-accent-background, var(--wp--custom--color--button--outline--border));color:var(--ls-button-outline-accent-colour, var(--wp--custom--color--button--outline--text-hover));font-size:var(--ls-button-outline-icon-font-size);font-weight:700;line-height:1;transition:inset-inline-end var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised),background-color var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard),color var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard);z-index:var(--wp--custom--z-index--content)}.wp-block-button.is-style-outline .wp-block-button__link:hover,.wp-block-button.is-style-outline .wp-block-button__link:focus-visible{padding-inline-start:var(--ls-button-outline-hover-padding-start);padding-inline-end:var(--ls-button-outline-hover-padding-end)}.wp-block-button.is-style-outline .wp-block-button__link:hover::after,.wp-block-button.is-style-outline .wp-block-button__link:focus-visible::after{inset-inline-end:var(--ls-button-outline-icon-inline-start)}.wp-block-button.is-style-button-phase-primary .wp-block-button__link:hover::after,.wp-block-button.is-style-button-phase-primary .wp-block-button__link:focus-visible::after,.wp-block-button.is-style-button-phase-outline .wp-block-button__link:hover::after,.wp-block-button.is-style-button-phase-outline .wp-block-button__link:focus-visible::after{transform:translateX(var(--wp--preset--spacing--5))}.wp-block-button.is-style-button-phase-primary .wp-block-button__link::after,.wp-block-button.is-style-button-phase-outline .wp-block-button__link::after{transition:transform var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.wp-block-button.is-style-button-phase-primary .wp-block-button__link::after,.wp-block-button.is-style-button-phase-outline .wp-block-button__link::after{transition:none}.wp-block-button.is-style-button-phase-primary .wp-block-button__link:hover::after,.wp-block-button.is-style-button-phase-primary .wp-block-button__link:focus-visible::after,.wp-block-button.is-style-button-phase-outline .wp-block-button__link:hover::after,.wp-block-button.is-style-button-phase-outline .wp-block-button__link:focus-visible::after{transform:none}}.is-style-mega-menu-item-default .wp-block-outermost-icon-block,.is-style-mega-menu-item-default .wp-block-icon{transition:color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.is-style-mega-menu-item-default .wp-block-outermost-icon-block,.is-style-mega-menu-item-default .wp-block-icon{transition:none}}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.ls-mega-menu-panel-services .wp-block-column>.wp-block-group:first-child{transition:none}}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns{display:grid;grid-template-columns:repeat(2, 1fr);column-gap:var(--wp--style--block-gap);row-gap:var(--wp--preset--spacing--20)}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column{width:auto}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column:nth-child(-n+4){border-bottom:1px dashed var(--wp--custom--color--border--card);padding-bottom:var(--wp--preset--spacing--20)}@media(min-width: 650px){.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns{grid-template-columns:repeat(3, 1fr)}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column:nth-child(-n+4){border-bottom:none;padding-bottom:0}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column:nth-child(-n+3){border-bottom:1px dashed var(--wp--custom--color--border--card);padding-bottom:var(--wp--preset--spacing--20)}}.site-header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content{padding-top:var(--wp--preset--spacing--20)}.site-header .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){background-color:var(--wp--custom--color--surface--canvas)}.site-header .wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){color:var(--wp--custom--color--text--default)}.mobile-menu-brand .site-logo--for-light img,.mobile-menu-brand .site-logo--for-dark img{display:block;max-block-size:32px;width:auto;inline-size:auto}.mobile-menu-actions .wp-block-button{width:100%}.mobile-menu-actions .wp-block-button__link{display:block;width:100%;text-align:center}.footer-notes-badge{width:fit-content}.site-footer{position:relative;overflow:clip;background:radial-gradient(ellipse 480px 420px at 12% 0%, color-mix(in srgb, var(--wp--custom--color--effect--spotlight--primary) 16%, transparent) 0%, transparent 60%),radial-gradient(ellipse 460px 400px at 92% 22%, color-mix(in srgb, var(--wp--custom--color--phase--create) 12%, transparent) 0%, transparent 60%),var(--wp--custom--color--surface--canvas)}.site-footer::before{content:"";position:absolute;inset-block-start:0;inset-inline:0;block-size:4px;z-index:var(--wp--custom--z-index--content);background-image:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--wp--custom--color--phase--create) 60%, transparent) 24%, var(--wp--custom--color--phase--create) 50%, color-mix(in srgb, var(--wp--custom--color--phase--create) 60%, transparent) 76%, transparent 100%);box-shadow:0 0 16px 0 color-mix(in srgb, var(--wp--custom--color--phase--create) 70%, transparent),0 8px 32px 0 color-mix(in srgb, var(--wp--custom--color--phase--create) 30%, transparent)}.site-footer__columns{position:relative}.site-footer__columns::after{content:"";position:absolute;inset-block-start:10%;inset-inline-end:8%;inline-size:min(38vw,520px);block-size:min(30vw,360px);background:radial-gradient(ellipse closest-side, color-mix(in srgb, var(--wp--custom--color--phase--create) 14%, transparent) 0%, transparent 70%);filter:blur(40px);pointer-events:none;z-index:0}.site-footer__columns>*{position:relative;z-index:1}.ls-footer-nav-link a{transition:color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),text-decoration-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.ls-footer-nav-link a{transition:none}}@media(max-width: 781px){.footer-nav-columns{display:grid;grid-template-columns:repeat(2, 1fr);column-gap:var(--wp--preset--spacing--40);row-gap:var(--wp--preset--spacing--40)}.footer-nav-columns>.wp-block-columns{display:contents}}.site-header+*{margin-block-start:0}@media(max-width: 599.98px){.site-header__actions .wp-block-buttons{display:none}}@media(max-width: 1023.98px){.site-header .wp-block-navigation{margin-inline-start:auto}}.ls-button-cta-gradient .wp-block-button__link{transition:transform var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),box-shadow var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-button-cta-gradient .wp-block-button__link:hover,.ls-button-cta-gradient .wp-block-button__link:focus-visible{transform:translateY(-1px)}.site-header__search .wp-block-search__button{display:flex;align-items:center;justify-content:center;min-inline-size:var(--wp--custom--spacing--tap-target-min);min-block-size:var(--wp--custom--spacing--tap-target-min);padding:var(--wp--preset--spacing--10);background-color:color-mix(in srgb, var(--wp--custom--color--surface--card) 4%, transparent)}.site-header__search .wp-block-search__input{inline-size:0;min-inline-size:0;padding-inline:0;border-width:0;opacity:0;transition:inline-size var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard),opacity var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),padding-inline var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard)}.site-header__search.site-header__search--expanded .wp-block-search__input{inline-size:12rem;padding-inline:var(--wp--preset--spacing--10);border-width:1px;opacity:1}@media(prefers-reduced-motion: reduce){.ls-button-cta-gradient .wp-block-button__link,.site-header__search .wp-block-search__input{transition:none}} +.ls-footer-nav-link a{color:inherit;text-decoration-line:underline;text-decoration-color:rgba(0,0,0,0);text-underline-offset:3px}.ls-footer-nav-link a:hover,.ls-footer-nav-link a:focus-visible{color:var(--wp--custom--color--phase--create);text-decoration-color:var(--wp--custom--color--phase--create)}.ls-footer-proof-card:hover,.ls-footer-proof-card:focus-within,.ls-footer-social-icon:hover,.ls-footer-social-icon:focus-within{background-color:var(--wp--custom--color--surface--card-raised) !important;border-color:var(--wp--custom--color--phase--create) !important}.ls-footer-social-icon{min-inline-size:var(--wp--custom--spacing--tap-target-min)}.ls-footer-proof-card{height:100%}.site-logo--for-light{display:var(--wp--custom--visibility--logo-for-light)}.site-logo--for-dark{display:var(--wp--custom--visibility--logo-for-dark)}.site-logo--for-light img,.site-logo--for-dark img{display:block;width:var(--wp--custom--layout--logo-width);height:auto}@media(max-width: 1023.98px){.site-header{padding-left:var(--wp--preset--spacing--60) !important;padding-right:var(--wp--preset--spacing--60) !important}}@media(max-width: 599.98px){.site-header{padding-left:var(--wp--preset--spacing--20) !important;padding-right:var(--wp--preset--spacing--20) !important}}.ls-button-cta-gradient .wp-block-button__link:hover,.ls-button-cta-gradient .wp-block-button__link:focus-visible{box-shadow:var(--wp--custom--shadow--interactive--accent),var(--wp--custom--shadow--elevation--300)}.site-header .wp-block-navigation__responsive-container-close{position:absolute;top:var(--wp--preset--spacing--20);right:var(--wp--preset--spacing--20);display:flex;align-items:center;justify-content:center;min-inline-size:var(--wp--custom--spacing--tap-target-min);min-block-size:var(--wp--custom--spacing--tap-target-min);padding:var(--wp--preset--spacing--10);border:1px solid var(--wp--custom--color--border--card);border-radius:var(--wp--preset--border-radius--500);background-color:color-mix(in srgb, var(--wp--custom--color--surface--card) 4%, transparent)}.site-header .wp-block-navigation__responsive-container-close svg{inline-size:20px;block-size:20px}.site-header .wp-block-navigation-item{position:static}.site-header .wp-block-navigation__submenu-container{left:50%;right:auto;transform:translateX(-50%)}.site-header .wp-block-ollie-mega-menu__menu-container{background:rgba(0,0,0,0)}.ls-mega-menu-panel-services{width:fit-content;max-width:100vw;box-sizing:border-box}.ls-mega-menu-panel-services .wp-block-columns{display:grid;grid-template-columns:repeat(6, minmax(0, 1fr));gap:var(--wp--style--block-gap)}.ls-mega-menu-panel-services .wp-block-column{width:auto}.ls-mega-menu-panel-services .wp-block-column>.wp-block-group p{white-space:nowrap}.ls-simple-submenu-links>.is-style-mega-menu-item-service,.ls-services-phase-links>.is-style-mega-menu-item-service{padding:var(--wp--preset--spacing--5)}.ls-services-phase-links{display:grid;grid-template-columns:1fr;row-gap:0}.ls-services-phase-links>*{margin:0}.ls-services-phase-links{padding-left:calc(8px + var(--wp--preset--spacing--5))}.is-style-mega-menu-item-default{position:relative}.is-style-mega-menu-item-default h5 a::after{content:"";position:absolute;inset:0;z-index:1}.is-style-mega-menu-item-default:hover .wp-block-outermost-icon-block,.is-style-mega-menu-item-default:focus-within .wp-block-outermost-icon-block,.is-style-mega-menu-item-default:hover .wp-block-icon,.is-style-mega-menu-item-default:focus-within .wp-block-icon{color:var(--wp--custom--color--text--subtle)}.is-style-mega-menu-item-service{position:relative}.is-style-mega-menu-item-service a::after{content:"";position:absolute;inset:0;z-index:1}.is-style-mega-menu-item-service:hover,.is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--link--accent) 8%, transparent);border-left-color:var(--wp--custom--color--link--accent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--discover) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--discover) 15%, transparent);border-left-color:var(--wp--custom--color--phase--discover)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--discover)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--create) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--create) 15%, transparent);border-left-color:var(--wp--custom--color--phase--create)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--create)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--build) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--build) 15%, transparent);border-left-color:var(--wp--custom--color--phase--build)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--build)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--launch) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--launch) 15%, transparent);border-left-color:var(--wp--custom--color--phase--launch)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--launch)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--grow) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--grow) 15%, transparent);border-left-color:var(--wp--custom--color--phase--grow)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--grow)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6)>.wp-block-group:first-child:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6)>.wp-block-group:first-child:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--evolve) 15%, transparent)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:hover,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--phase--evolve) 15%, transparent);border-left-color:var(--wp--custom--color--phase--evolve)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:hover a,.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6) .is-style-mega-menu-item-service:focus-within a{color:var(--wp--custom--color--phase--evolve)}@keyframes ls-accent-gradient-shift{to{background-position:var(--ls-accent-gradient-end-position) center}}.site-header__search .wp-block-search__button,.site-header .wp-block-navigation__responsive-container-close,.ls-footer-proof-card,.ls-footer-social-icon{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.site-header__search .wp-block-search__button:hover,.site-header__search .wp-block-search__button:focus-visible,.site-header .wp-block-navigation__responsive-container-close:hover,.site-header .wp-block-navigation__responsive-container-close:focus-visible{background-color:var(--wp--custom--color--surface--card-raised);border-color:var(--wp--custom--color--phase--create)}.is-style-mega-menu-item-default{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.is-style-mega-menu-item-default:hover,.is-style-mega-menu-item-default:focus-within{background-color:var(--wp--custom--color--surface--card-raised)}.is-style-mega-menu-item-service{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-left-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.site-header__search .wp-block-search__button,.site-header .wp-block-navigation__responsive-container-close,.ls-footer-proof-card,.ls-footer-social-icon,.is-style-mega-menu-item-default,.is-style-mega-menu-item-service{transition:none}}.wp-block-details{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),box-shadow var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.wp-block-details>summary{transition:inherit}.wp-block-details>summary::after{transform:translateY(-1px) rotate(45deg);transition:transform var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--emphasised),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.wp-block-details:not(.is-style-mobile-menu-accordion)>summary{padding:var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);font:inherit;font-weight:var(--wp--custom--typography--font-weight--normal)}.wp-block-details:hover:not(.is-style-mobile-menu-accordion){background:var(--wp--custom--color--surface--card-raised);border-color:var(--wp--custom--color--link--accent)}.wp-block-details[open]:not(.is-style-mobile-menu-accordion),.wp-block-details[open]:hover:not(.is-style-mobile-menu-accordion){background:var(--wp--custom--color--surface--card);border-color:var(--wp--custom--color--link--accent)}.wp-block-details:not(.is-style-mobile-menu-accordion)[open]>summary{border-bottom:1px solid var(--wp--custom--color--link--accent)}.wp-block-details[open]>summary::after{transform:translateY(1px) rotate(-135deg)}.wp-block-details:focus-within:not(.is-style-mobile-menu-accordion){border-color:var(--wp--custom--color--link--accent);box-shadow:0 0 0 2px var(--wp--custom--color--focus--ring)}.wp-element-button,.wp-block-button__link{transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),box-shadow var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),outline-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),outline-offset var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),transform var(--wp--custom--animation--duration--fast) var(--wp--custom--animation--easing--standard);transition-delay:var(--wp--custom--animation--delay--enter)}.wp-element-button:hover,.wp-element-button:focus-visible,.wp-block-button__link:hover,.wp-block-button__link:focus-visible{outline-offset:0}.wp-element-button:active,.wp-block-button__link:active{transform:scale(var(--ls-button-active-scale, var(--wp--custom--animation--scale--active)))}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link{--ls-button-fill-icon-well-size: 3rem;--ls-button-fill-icon-inline-end: 0.625rem;--ls-button-fill-icon-font-size: 1.25rem;--ls-button-fill-icon-block-inset: calc( 50% - (var(--ls-button-fill-icon-well-size) / 2) );--ls-button-fill-icon-inline-start: calc( 100% - var(--ls-button-fill-icon-well-size) - var(--ls-button-fill-icon-inline-end) );background:rgba(0,0,0,0);border:0;transition:transform var(--ls-button-fill-duration, var(--wp--custom--animation--duration--emphasised)) var(--wp--custom--animation--easing--emphasised),color var(--ls-button-fill-duration, var(--wp--custom--animation--duration--emphasised)) var(--wp--custom--animation--easing--emphasised)}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--ls-button-fill-background, var(--wp--custom--color--button--fill--background));transition:inset-inline-start var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),inset-inline-end var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),inset-block-start var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),inset-block-end var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised),border-radius var(--wp--custom--animation--duration--slow) var(--wp--custom--animation--easing--emphasised);z-index:var(--wp--custom--z-index--behind)}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link::after{content:"\2192";position:absolute;inset-block:var(--ls-button-fill-icon-block-inset);inset-inline-end:var(--ls-button-fill-icon-inline-end);width:var(--ls-button-fill-icon-well-size);display:grid;place-items:center;color:var(--ls-button-fill-icon-colour, currentColor);font-size:var(--ls-button-fill-icon-font-size);font-weight:700;line-height:1;transition:color var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised)}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover,:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover::before{transition-delay:var(--ls-button-fill-enter-delay, var(--wp--custom--animation--delay--enter))}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover::before,:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:focus-visible::before{inset-block:var(--ls-button-fill-icon-block-inset);inset-inline-end:var(--ls-button-fill-icon-inline-end);inset-inline-start:var(--ls-button-fill-icon-inline-start);border-radius:inherit}:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:hover,:is(.wp-block-button:not([class*=is-style-]):not(.ls-glass-button):not(.ls-button-cta-gradient),.wp-block-button.is-style-fill) .wp-block-button__link:focus-visible{color:var(--ls-button-fill-hover-text, var(--wp--custom--color--text--default))}.wp-block-button.is-style-outline .wp-block-button__link{--ls-button-outline-icon-well-size: calc(3rem - 4px);--ls-button-outline-icon-inset: 4px;--ls-button-outline-icon-font-size: 1.25rem;--ls-button-outline-hover-padding-start: calc(4rem - 4px);--ls-button-outline-hover-padding-end: 1.5rem;--ls-button-outline-icon-inline-start: calc( 100% - var(--ls-button-outline-icon-well-size) - var(--ls-button-outline-icon-inset) );transition:padding-inline-start var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised),padding-inline-end var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised),transform var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--smooth)}.wp-block-button.is-style-outline .wp-block-button__link::after{content:"\2192";position:absolute;inset-block:var(--ls-button-outline-icon-inset);inset-inline-end:var(--ls-button-outline-icon-inset);width:var(--ls-button-outline-icon-well-size);display:grid;place-items:center;border-radius:var(--ls-button-outline-icon-radius, var(--wp--preset--border-radius--100));background-color:var(--ls-button-outline-accent-background, var(--wp--custom--color--button--outline--border));color:var(--ls-button-outline-accent-colour, var(--wp--custom--color--button--outline--text-hover));font-size:var(--ls-button-outline-icon-font-size);font-weight:700;line-height:1;transition:inset-inline-end var(--wp--custom--animation--duration--emphasised) var(--wp--custom--animation--easing--emphasised),background-color var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard),color var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard);z-index:var(--wp--custom--z-index--content)}.wp-block-button.is-style-outline .wp-block-button__link:hover,.wp-block-button.is-style-outline .wp-block-button__link:focus-visible{padding-inline-start:var(--ls-button-outline-hover-padding-start);padding-inline-end:var(--ls-button-outline-hover-padding-end)}.wp-block-button.is-style-outline .wp-block-button__link:hover::after,.wp-block-button.is-style-outline .wp-block-button__link:focus-visible::after{inset-inline-end:var(--ls-button-outline-icon-inline-start)}.wp-block-button.is-style-button-phase-primary .wp-block-button__link:hover::after,.wp-block-button.is-style-button-phase-primary .wp-block-button__link:focus-visible::after{transform:translateX(var(--wp--preset--spacing--5))}.wp-block-button.is-style-button-phase-primary .wp-block-button__link::after{transition:transform var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.wp-block-button.is-style-button-phase-primary .wp-block-button__link::after{transition:none}.wp-block-button.is-style-button-phase-primary .wp-block-button__link:hover::after,.wp-block-button.is-style-button-phase-primary .wp-block-button__link:focus-visible::after{transform:none}}.is-style-mega-menu-item-default .wp-block-outermost-icon-block,.is-style-mega-menu-item-default .wp-block-icon{transition:color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.is-style-mega-menu-item-default .wp-block-outermost-icon-block,.is-style-mega-menu-item-default .wp-block-icon{transition:none}}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(1)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(2)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(3)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(4)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(5)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-mega-menu-panel-services .wp-block-columns>.wp-block-column:nth-child(6)>.wp-block-group:first-child{border-radius:var(--wp--preset--border-radius--300);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.ls-mega-menu-panel-services .wp-block-column>.wp-block-group:first-child{transition:none}}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns{display:grid;grid-template-columns:repeat(2, 1fr);column-gap:var(--wp--style--block-gap);row-gap:var(--wp--preset--spacing--20)}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column{width:auto}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column:nth-child(-n+4){border-bottom:1px dashed var(--wp--custom--color--border--card);padding-bottom:var(--wp--preset--spacing--20)}@media(min-width: 650px){.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns{grid-template-columns:repeat(3, 1fr)}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column:nth-child(-n+4){border-bottom:none;padding-bottom:0}.mobile-menu-accordion .is-style-mega-menu-item-service.wp-block-columns>.wp-block-column:nth-child(-n+3){border-bottom:1px dashed var(--wp--custom--color--border--card);padding-bottom:var(--wp--preset--spacing--20)}}.site-header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content{padding-top:var(--wp--preset--spacing--20)}.site-header .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){background-color:var(--wp--custom--color--surface--canvas)}.site-header .wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){color:var(--wp--custom--color--text--default)}.mobile-menu-brand .site-logo--for-light img,.mobile-menu-brand .site-logo--for-dark img{display:block;max-block-size:32px;width:auto;inline-size:auto}.mobile-menu-actions .wp-block-button{width:100%}.mobile-menu-actions .wp-block-button__link{display:block;width:100%;text-align:center}.footer-notes-badge{width:fit-content}.site-footer{position:relative;overflow:clip;background:radial-gradient(ellipse 480px 420px at 12% 0%, color-mix(in srgb, var(--wp--custom--color--effect--spotlight--primary) 16%, transparent) 0%, transparent 60%),radial-gradient(ellipse 460px 400px at 92% 22%, color-mix(in srgb, var(--wp--custom--color--phase--create) 12%, transparent) 0%, transparent 60%),var(--wp--custom--color--surface--canvas)}.site-footer::before{content:"";position:absolute;inset-block-start:0;inset-inline:0;block-size:4px;z-index:var(--wp--custom--z-index--content);background-image:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--wp--custom--color--phase--create) 60%, transparent) 24%, var(--wp--custom--color--phase--create) 50%, color-mix(in srgb, var(--wp--custom--color--phase--create) 60%, transparent) 76%, transparent 100%);box-shadow:0 0 16px 0 color-mix(in srgb, var(--wp--custom--color--phase--create) 70%, transparent),0 8px 32px 0 color-mix(in srgb, var(--wp--custom--color--phase--create) 30%, transparent)}.site-footer__columns{position:relative}.site-footer__columns::after{content:"";position:absolute;inset-block-start:10%;inset-inline-end:8%;inline-size:min(38vw,520px);block-size:min(30vw,360px);background:radial-gradient(ellipse closest-side, color-mix(in srgb, var(--wp--custom--color--phase--create) 14%, transparent) 0%, transparent 70%);filter:blur(40px);pointer-events:none;z-index:0}.site-footer__columns>*{position:relative;z-index:1}.ls-footer-nav-link a{transition:color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),text-decoration-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}@media(prefers-reduced-motion: reduce){.ls-footer-nav-link a{transition:none}}@media(max-width: 781px){.footer-nav-columns{display:grid;grid-template-columns:repeat(2, 1fr);column-gap:var(--wp--preset--spacing--40);row-gap:var(--wp--preset--spacing--40)}.footer-nav-columns>.wp-block-columns{display:contents}}.site-header+*{margin-block-start:0}@media(max-width: 599.98px){.site-header__actions .wp-block-buttons{display:none}}@media(max-width: 1023.98px){.site-header .wp-block-navigation{margin-inline-start:auto}}.ls-button-cta-gradient .wp-block-button__link{transition:transform var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),box-shadow var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-button-cta-gradient .wp-block-button__link:hover,.ls-button-cta-gradient .wp-block-button__link:focus-visible{transform:translateY(-1px)}.site-header__search .wp-block-search__button{display:flex;align-items:center;justify-content:center;min-inline-size:var(--wp--custom--spacing--tap-target-min);min-block-size:var(--wp--custom--spacing--tap-target-min);padding:var(--wp--preset--spacing--10);background-color:color-mix(in srgb, var(--wp--custom--color--surface--card) 4%, transparent)}.site-header__search .wp-block-search__input{inline-size:0;min-inline-size:0;padding-inline:0;border-width:0;opacity:0;transition:inline-size var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard),opacity var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),padding-inline var(--wp--custom--animation--duration--medium) var(--wp--custom--animation--easing--standard)}.site-header__search.site-header__search--expanded .wp-block-search__input{inline-size:12rem;padding-inline:var(--wp--preset--spacing--10);border-width:1px;opacity:1}@media(prefers-reduced-motion: reduce){.ls-button-cta-gradient .wp-block-button__link,.site-header__search .wp-block-search__input{transition:none}} diff --git a/assets/css/discover-hero.css b/assets/css/discover-hero.css index 0884493..55529af 100644 --- a/assets/css/discover-hero.css +++ b/assets/css/discover-hero.css @@ -1 +1 @@ -.ls-phase-hero{position:relative;overflow:hidden;background-image:linear-gradient(color-mix(in srgb, var(--wp--custom--color--text--on-dark) 4%, transparent) 1px, transparent 1px),linear-gradient(90deg, color-mix(in srgb, var(--wp--custom--color--text--on-dark) 4%, transparent) 1px, transparent 1px),radial-gradient(60% 50% at 50% 22%, color-mix(in srgb, var(--wp--custom--color--phase--discover-on-dark) 14%, transparent) 0%, transparent 70%),linear-gradient(158deg, var(--wp--custom--color--surface--band-start) 0%, var(--wp--custom--color--surface--band-end) 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,no-repeat,no-repeat;background-size:32px 32px,32px 32px,auto,auto}.ls-phase-hero .breadcrumb_last{color:var(--wp--custom--color--phase--discover-on-dark)} +.ls-phase-hero{position:relative;overflow:hidden;background-image:linear-gradient(color-mix(in srgb, var(--wp--custom--color--text--on-dark) 2%, transparent) 1px, transparent 1px),linear-gradient(90deg, color-mix(in srgb, var(--wp--custom--color--text--on-dark) 2%, transparent) 1px, transparent 1px),radial-gradient(60% 50% at 50% 22%, color-mix(in srgb, var(--wp--custom--color--phase--discover-on-dark) 14%, transparent) 0%, transparent 70%),linear-gradient(158deg, var(--wp--custom--color--surface--band-start) 0%, var(--wp--custom--color--surface--band-end) 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,no-repeat,no-repeat;background-size:32px 32px,32px 32px,auto,auto}.ls-phase-hero .breadcrumb_last{color:var(--wp--custom--color--phase--discover-on-dark)}.ls-discover-hero__share{background-color:color-mix(in srgb, var(--wp--custom--color--text--on-dark) 5%, transparent);border-color:color-mix(in srgb, var(--wp--custom--color--text--on-dark) 8%, transparent);transition:background-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard),border-color var(--wp--custom--animation--duration--base) var(--wp--custom--animation--easing--standard)}.ls-discover-hero__share:hover,.ls-discover-hero__share:focus-within{background-color:color-mix(in srgb, var(--wp--custom--color--text--on-dark) 9%, transparent);border-color:color-mix(in srgb, var(--wp--custom--color--text--on-dark) 16%, transparent)}@media(prefers-reduced-motion: reduce){.ls-discover-hero__share{transition:none}} diff --git a/patterns/hero/discover-hero.php b/patterns/hero/discover-hero.php index 0d2ab3b..a24a8ca 100644 --- a/patterns/hero/discover-hero.php +++ b/patterns/hero/discover-hero.php @@ -46,7 +46,7 @@
- +

@@ -80,12 +80,12 @@
- -