Jake Vanderwerf
2025-12-23 dd0b131b43dd0304cee1d6bc8bc7229e81611240
=legacy rebrand finished
2 files modified
23 files added
742 ■■■■■ changed files
assets/fonts/josefin-sans-v34-latin-300.ttf patch | view | raw | blame | history
assets/fonts/josefin-sans-v34-latin-300.woff2 patch | view | raw | blame | history
assets/fonts/josefin-sans-v34-latin-300italic.ttf patch | view | raw | blame | history
assets/fonts/josefin-sans-v34-latin-300italic.woff2 patch | view | raw | blame | history
assets/fonts/josefin-sans-v34-latin-700.ttf patch | view | raw | blame | history
assets/fonts/josefin-sans-v34-latin-700.woff2 patch | view | raw | blame | history
assets/fonts/josefin-sans-v34-latin-700italic.ttf patch | view | raw | blame | history
assets/fonts/josefin-sans-v34-latin-700italic.woff2 patch | view | raw | blame | history
assets/fonts/open-sans-v44-latin-300.ttf patch | view | raw | blame | history
assets/fonts/open-sans-v44-latin-300.woff2 patch | view | raw | blame | history
assets/fonts/open-sans-v44-latin-300italic.ttf patch | view | raw | blame | history
assets/fonts/open-sans-v44-latin-300italic.woff2 patch | view | raw | blame | history
assets/fonts/open-sans-v44-latin-500.ttf patch | view | raw | blame | history
assets/fonts/open-sans-v44-latin-500.woff2 patch | view | raw | blame | history
assets/fonts/open-sans-v44-latin-500italic.ttf patch | view | raw | blame | history
assets/fonts/open-sans-v44-latin-500italic.woff2 patch | view | raw | blame | history
assets/fonts/open-sans-v44-latin-800.ttf patch | view | raw | blame | history
assets/fonts/open-sans-v44-latin-800.woff2 patch | view | raw | blame | history
assets/fonts/open-sans-v44-latin-800italic.ttf patch | view | raw | blame | history
assets/fonts/open-sans-v44-latin-800italic.woff2 patch | view | raw | blame | history
functions.php 2 ●●● patch | view | raw | blame | history
source.css 596 ●●●●● patch | view | raw | blame | history
style.css 14 ●●●● patch | view | raw | blame | history
templates/front_page.html 33 ●●●●● patch | view | raw | blame | history
theme.json 97 ●●●●● patch | view | raw | blame | history
assets/fonts/josefin-sans-v34-latin-300.ttf
Binary files differ
assets/fonts/josefin-sans-v34-latin-300.woff2
Binary files differ
assets/fonts/josefin-sans-v34-latin-300italic.ttf
Binary files differ
assets/fonts/josefin-sans-v34-latin-300italic.woff2
Binary files differ
assets/fonts/josefin-sans-v34-latin-700.ttf
Binary files differ
assets/fonts/josefin-sans-v34-latin-700.woff2
Binary files differ
assets/fonts/josefin-sans-v34-latin-700italic.ttf
Binary files differ
assets/fonts/josefin-sans-v34-latin-700italic.woff2
Binary files differ
assets/fonts/open-sans-v44-latin-300.ttf
Binary files differ
assets/fonts/open-sans-v44-latin-300.woff2
Binary files differ
assets/fonts/open-sans-v44-latin-300italic.ttf
Binary files differ
assets/fonts/open-sans-v44-latin-300italic.woff2
Binary files differ
assets/fonts/open-sans-v44-latin-500.ttf
Binary files differ
assets/fonts/open-sans-v44-latin-500.woff2
Binary files differ
assets/fonts/open-sans-v44-latin-500italic.ttf
Binary files differ
assets/fonts/open-sans-v44-latin-500italic.woff2
Binary files differ
assets/fonts/open-sans-v44-latin-800.ttf
Binary files differ
assets/fonts/open-sans-v44-latin-800.woff2
Binary files differ
assets/fonts/open-sans-v44-latin-800italic.ttf
Binary files differ
assets/fonts/open-sans-v44-latin-800italic.woff2
Binary files differ
functions.php
@@ -15,7 +15,7 @@
function legacy_parent_theme_enqueue_styles() {
    wp_enqueue_style( 'jvb-theme-style', get_template_directory_uri() . '/style.css', array(), '0.1.0' );
    wp_enqueue_style(
        'legacy-style',
        'jvb-child-style',
        get_stylesheet_directory_uri() . '/style.css',
        array( 'jvb-theme-style' ),
        '0.1.0'
source.css
New file
@@ -0,0 +1,596 @@
/*!
Theme Name:     Legacy
Theme URI:      https://legacytattooremoval.ca
Description:    Theme for Legacy Tattoo Removal
Author:         Jake
Author URI:     https://jakevan.ca
Template:       jvb-theme
Version:        1.0.1
*/
:root{
    --filter: grayscale(.3) sepia(.4);
    /** Download your Fonts from: https://gwfh.mranftl.com/ **/
    --font-base: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
    --heading: 'Josefin Sans', var(--font-base);
    --body: 'Open Sans', var(--font-base);
    --fw-h: 300;
    --fw-h-light: 300;
    --fw-h-bold: 700;
    --fw-b: 500;
    --fw-b-bold: 800;
    --fw-b-light: 300;
    /* Colours
    For best results, generate colours from base colours using: https://uicolors.app/generate/
    or sass darken/lighten by 5%: http://scg.ar-ch.org/
    */
    --light-0: #efefef;
    --light-50: #e2e2e2;
    --light-100: #d5d5d5;
    --light-200: #c9c9c9;
    --light-rgb: 239,239,239;
    --dark-0: #151515;
    --dark-50: #222222;
    --dark-100: #2e2e2e;
    --dark-200: #3b3b3b;
    --dark-rgb: 21,21,21;
    --action-0: #ff0080;
    --action-50: #ff2492;
    --action-100: #ff47a4;
    --action-200: #ff6bb5;
    --action-rgb: 255,0,128;
    --action-contrast: var(--light-0);
    --secondary-0: #D69121;
    --secondary-50: #ffc421;
    --secondary-100: #ffcd44;
    --secondary-200: #ffd768;
    --secondary-rgb: 252,185,0;
    --secondary-contrast: var(--light-0);
    --success: #20D64E;
    --successLight: #DBFAE3;
    --successDark: #05230D;
    --successBack: var(--successLight);
    --successText: var(--successDark);
    --warning: #D69121;
    --warningLight: #F6E5CB;
    --warningDark: #231806;
    --warningBack: var(--warningLight);
    --warningText: var(--warningDark);
    --error: #CF1616;
    --errorLight: #F9C8C8;
    --errorDark: #4A0808;
    --errorBack: var(--errorLight);
    --errorText: var(--errorDark);
    --base: var(--light-0);
    --base-50: var(--light-50);
    --base-100: var(--light-100);
    --base-200: var(--light-200);
    --base-rgb: var(--light-rgb);
    --contrast: var(--dark-0);
    --contrast-50: var(--dark-50);
    --contrast-100: var(--dark-100);
    --contrast-200: var(--dark-200);
    --contrast-rgb: var(--dark-rgb);
}
body:has(#theme-switcher:checked){
    --action-50: #db006e;
    --action-100: #b8005c;
    --action-200: #94004a;
    --secondary-50: #d89f00;
    --secondary-100: #b58500;
    --secondary-200: #916a00;
    --contrast: var(--light-0);
    --contrast-50: var(--light-50);
    --contrast-100: var(--light-100);
    --contrast-200: var(--light-200);
    --contrast-rgb: var(--light-rgb);
    --base: var(--dark-0);
    --base-50: var(--dark-50);
    --base-100: var(--dark-100);
    --base-200: var(--dark-200);
    --base-rgb: var(--dark-rgb);
    --successBack: var(--successDark);
    --successText: var(--successLight);
    --warningBack: var(--warningDark);
    --warningText: var(--warningLight);
    --errorBack: var(--errorDark);
    --errorText: var(--errorLight);
}
/*** FONT START **/
/* open-sans-300 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 300;
    src: url('./assets/fonts/open-sans-v44-latin-300.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
    url('./assets/fonts/open-sans-v44-latin-300.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
/* open-sans-300italic - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 300;
    src: url('./assets/fonts/open-sans-v44-latin-300italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
    url('./assets/fonts/open-sans-v44-latin-300italic.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
/* open-sans-500 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 500;
    src: url('./assets/fonts/open-sans-v44-latin-500.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
    url('./assets/fonts/open-sans-v44-latin-500.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
/* open-sans-500italic - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 500;
    src: url('./assets/fonts/open-sans-v44-latin-500italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
    url('./assets/fonts/open-sans-v44-latin-500italic.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
/* open-sans-800 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 800;
    src: url('./assets/fonts/open-sans-v44-latin-800.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
    url('./assets/fonts/open-sans-v44-latin-800.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
/* open-sans-800italic - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 800;
    src: url('./assets/fonts/open-sans-v44-latin-800italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
    url('./assets/fonts/open-sans-v44-latin-800italic.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
/* josefin-sans-300 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 300;
    src: url('./assets/fonts/josefin-sans-v34-latin-300.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
    url('./assets/fonts/josefin-sans-v34-latin-300.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
/* josefin-sans-300italic - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Josefin Sans';
    font-style: italic;
    font-weight: 300;
    src: url('./assets/fonts/josefin-sans-v34-latin-300italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
    url('./assets/fonts/josefin-sans-v34-latin-300italic.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
/* josefin-sans-700 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 700;
    src: url('./assets/fonts/josefin-sans-v34-latin-700.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
    url('./assets/fonts/josefin-sans-v34-latin-700.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
/* josefin-sans-700italic - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Josefin Sans';
    font-style: italic;
    font-weight: 700;
    src: url('./assets/fonts/josefin-sans-v34-latin-700italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
    url('./assets/fonts/josefin-sans-v34-latin-700italic.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
.home .video-cover.video-cover {
    margin-top: 0;
}
/*** FONT END ***/
.wp-site-blocks > header {
    justify-content: center!important;
}
.scroll-progress .bar {
    background:
        linear-gradient(90deg,
        rgba(var(--action-rgb),.8) 0%,
        rgba(var(--action-rgb),1) 40%,
        rgba(var(--action-rgb),.8) 100%);
    position: relative;
    box-shadow:
        0 0 4px rgba(var(--action-rgb),.9),
        0 0 8px rgba(var(--action-rgb),.7),
        0 0 16px rgba(var(--action-rgb),.4);
}
#theme-switch#theme-switch {
    position: absolute;
    left: 1rem;
}
.fixed.bottom .call {
    width: var(--btn);
    flex: 0 1 var(--btn_);
}
.fixed.bottom li a {
    gap: 1rem;
}
nav.always.always a {
    text-transform: none;
}
.pre-header {
    font-family: var(--heading);
}
.eltrs {
    min-height: 40vh;
    width: 100vw;
    background-color: var(--action-0);
    --justify: center;
    --align: center;
}
.eltrs h2 {
    font-family: var(--body);
    font-weight: var(--fw-h-bold);
    color: var(--action-contrast);
    text-align: center;
    margin: 0;
    font-size: var(--txt-large);
}
.eltrs span:nth-of-type(1) {
    font-size: 2.25em;
    letter-spacing: -.15rem;
}
.eltrs span:nth-of-type(2) {
    line-height: .8;
}
.eltrs span:nth-of-type(3) {
    font-size: 2.2em;
    letter-spacing: -.1rem;
}
.eltrs span {
    display: block;
    line-height: .9;
}
@media (min-width:768px) {
    .eltrs h2 {
        font-size: var(--txt-xx-large);
    }
    .eltrs span:nth-of-type(1) {
        font-size: 2.25em;
        letter-spacing: -.35rem;
    }
    .eltrs span:nth-of-type(2) {
        line-height: .8;
    }
    .eltrs span:nth-of-type(3) {
        font-size: 2.35em;
        letter-spacing: -.25rem;
    }
}
ol.blocky.blocky {
    list-style: none;
    counter-reset: blocky;
    padding: 1rem;
    max-width: none;
}
@media (min-width: 768px) {
    padding: 1rem var(--btn);
}
ol.blocky li {
    counter-increment: blocky;
    --width: 20vw;
    --gap: 25vw;
    min-height: var(--width);
    margin: 4rem auto;
    display: flex;
    flex-direction: column;
    position: relative;
    padding-left: var(--gap);
}
ol.blocky li:nth-of-type(odd)::before,
ol.blocky li:nth-of-type(even)::after {
    content: counter(blocky);
    font-weight: 900;
    font-size: var(--txt-xxx-large);
    height: var(--width);
    width: var(--width);
    /*border: 1rem solid var(--base-200);*/
    background-color: var(--action-0);
    color: var(--action-contrast);
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 50% 4px 50% 4px;
    border: 4px solid var(--action-200);
    border-left: 0;
    border-top: 0;
    box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw);
}
@media (min-width: 768px) {
    ol.blocky li {
        position: relative;
        display: block;
        padding: 1rem;
    }
    ol.blocky li:nth-of-type(odd) {
        padding-left: var(--gap);
    }
    ol.blocky li:nth-of-type(even) {
        padding-right: var(--gap);
    }
    ol.blocky li:nth-of-type(odd)::before,
    ol.blocky li:nth-of-type(even)::after {
        margin-bottom: 0;
        width: var(--width);
        position: absolute;
        top: 0;
        left: unset;
        border-radius: 0;
        border-width: .5rem;
    }
    ol.blocky li:nth-of-type(odd)::before {
        left: 0;
    }
    ol.blocky li:nth-of-type(even)::after {
        right: 0;
    }
}
/*main > section > * {*/
/*  width: 100%;*/
/*}*/
main > section:nth-of-type(even) {
    background-color: var(--base-100);
    max-width: 100vw;
    padding: 3rem 0;
}
main > section:nth-of-type(even) > * {
    max-width: var(--content);
    margin-left: auto;
    margin-right: auto;
}
main > section.callout:last-of-type {
    margin-bottom: 0;
}
section.pre-footer {
    min-height: 25vh;
    background-color: var(--secondary-0);
    color: var(--secondary-contrast);
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 2rem;
    flex-direction: column;
    gap: 0;
}
.pre-footer p {
    margin: 0;
    text-align: center;
}
.pre-footer ~ footer {
    margin-top: 0;
}
.pre-footer a {
    background-color: var(--secondary-contrast);
    padding: 0 .125rem;
    border-radius: 4px;
}
.triangle {
    padding: 2rem 2rem 0;
    --justify: flex-end;
    position: relative;
    background-color: var(--action-0);
    color: var(--action-contrast);
}
.excerpt::after,
.triangle::after {
    content: '';
    position: absolute;
    top: 100%;
    width: 0;
    height: 0;
    border-left: 32px solid transparent;
    border-right: 32px solid transparent;
    border-top: 32px solid var(--action-0);
    clear: both;
}
.excerpt::after {
    left: -1rem;
}
.triangle::after {
    right: 2rem;
}
.triangle.left::after {
    right: unset;
    left: 2rem;
}
.triangle h1 {
    padding-right: 1rem;
    max-width: var(--wide);
    width: max-content;
    word-wrap: break-word;
}
.excerpt {
    position: relative;
    margin-right: 1rem;
    padding: 1rem 15vw 1rem 0;
    border-bottom: 4px solid var(--action-0);
    margin-bottom: 6rem;
    grid-column: full;
    max-width: var(--narrow);
    margin-left: auto;
}
.tldr {
    font-weight: var(--fw-b-bold);
    font-size: var(--txt-large);
    display: inline-block;
    vertical-align: bottom;
    line-height: 1.4;
    /*margin-right: .75rem;*/
    color: var(--action-0);
    position: relative;
    left: -2rem;
    cursor: pointer;
}
.align-full.triangle:has(+.contact) {
    margin-bottom: 0;
    z-index: 1;
}
section.contact.contact {
    gap: 1.5rem;
    margin-top: -.5rem;
    padding-bottom: 2rem;
    background-color: var(--base-100);
    color: var(--contrast-200);
    max-width: none;
}
@media (min-width: 768px) {
    section.contact.contact {
        padding: 2rem 15vw;
    }
}
section.contact .buttons li a,
section.contact .socials a {
    background-color: var(--base-50);
}
section.contact .buttons li a:hover,
section.contact .buttons li a:focus,
section.contact .socials a:hover,
section.contact .socials a:focus {
    background-color: var(--action-0);
}
section.contact.triangle::after {
    border-top-color: var(--base-100);
}
section.contact h2 {
    margin: 2rem 0 0;
    display: flex;
    font-weight: var(--fw-h-bold);
    text-transform: uppercase;
    white-space: nowrap;
    width: 100%;
    line-height: 1;
    gap: 1rem;
    align-items: center;
}
section.contact h2::after {
    content: '';
    height: 2px;
    background-color: var(--contrast-200);
    border-radius: 4px;
    width: 100%;
    position:relative;
    top: -.25rem;
}
section.contact p {
    margin: 0;
    line-height: 1;
    user-select: all;
}
section.contact .buttons {
    margin: 0;
    --height: fit-content;
}
section.contact > .col {
    width: 50%;
}
.pricing p {
    margin:0;
}
.pricing h3 {
    margin: 4rem 0 0 0;
}
.pricing > .group {
    --wrap: wrap;
}
@media (min-width: 768px) {
    .pricing > .group {
        --wrap: nowrap;
    }
    .pricing > .group > .col {
        width: 50%;
    }
}
span.logo .icon-logo-triangle {
    background-color: var(--action-0);
    --w:4rem;
}
span.logo .icon-logo-text-only {
    --w: 8rem;
}
a .icon-logo-text-only {
    background-color: var(--contrast);
}
a:hover .icon-logo-text-only {
    background-color: var(--action-0);
}
span.logo:hover .icon-logo-triangle {
}
.loop {
    max-width: var(--full);
    overflow-x: auto;
    padding: 1rem 0;
    touch-action: pan-x pan-y;
}
.loop .item-grid.item-grid {
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
    position: relative;
}
.loop .item-grid.item-grid figure {
    margin: 0;
}
.loop .item-grid .item:nth-of-type(odd) figure {
    top: -1rem;
}
.loop .item-grid .item.item {
    width: 50vw;
}
@media (min-width: 768px){
    .loop .item-grid .item.item {
        width: 25vw;
    }
}
style.css
@@ -1,9 +1,9 @@
/*
/*!
Theme Name:     Legacy
Theme URI:
Description:    Jvb-theme child theme.
Author:         Me
Author URI:
Theme URI:      https://legacytattooremoval.ca
Description:    Theme for Legacy Tattoo Removal
Author:         Jake
Author URI:     https://jakevan.ca
Template:       jvb-theme
Version:        0.1.0
*/
Version:        1.0.1
*/:root{--filter:grayscale(.3) sepia(.4);--font-base:-apple-system,BlinkMacSystemFont,avenir next,avenir,segoe ui,helvetica neue,helvetica,Cantarell,Ubuntu,roboto,noto,arial,sans-serif;--heading:'Josefin Sans',var(--font-base);--body:'Open Sans',var(--font-base);--fw-h:300;--fw-h-light:300;--fw-h-bold:700;--fw-b:500;--fw-b-bold:800;--fw-b-light:300;--light-0:#efefef;--light-50:#e2e2e2;--light-100:#d5d5d5;--light-200:#c9c9c9;--light-rgb:239,239,239;--dark-0:#151515;--dark-50:#222222;--dark-100:#2e2e2e;--dark-200:#3b3b3b;--dark-rgb:21,21,21;--action-0:#ff0080;--action-50:#ff2492;--action-100:#ff47a4;--action-200:#ff6bb5;--action-rgb:255,0,128;--action-contrast:var(--light-0);--secondary-0:#D69121;--secondary-50:#ffc421;--secondary-100:#ffcd44;--secondary-200:#ffd768;--secondary-rgb:252,185,0;--secondary-contrast:var(--light-0);--success:#20D64E;--successLight:#DBFAE3;--successDark:#05230D;--successBack:var(--successLight);--successText:var(--successDark);--warning:#D69121;--warningLight:#F6E5CB;--warningDark:#231806;--warningBack:var(--warningLight);--warningText:var(--warningDark);--error:#CF1616;--errorLight:#F9C8C8;--errorDark:#4A0808;--errorBack:var(--errorLight);--errorText:var(--errorDark);--base:var(--light-0);--base-50:var(--light-50);--base-100:var(--light-100);--base-200:var(--light-200);--base-rgb:var(--light-rgb);--contrast:var(--dark-0);--contrast-50:var(--dark-50);--contrast-100:var(--dark-100);--contrast-200:var(--dark-200);--contrast-rgb:var(--dark-rgb)}body:has(#theme-switcher:checked){--action-50:#db006e;--action-100:#b8005c;--action-200:#94004a;--secondary-50:#d89f00;--secondary-100:#b58500;--secondary-200:#916a00;--contrast:var(--light-0);--contrast-50:var(--light-50);--contrast-100:var(--light-100);--contrast-200:var(--light-200);--contrast-rgb:var(--light-rgb);--base:var(--dark-0);--base-50:var(--dark-50);--base-100:var(--dark-100);--base-200:var(--dark-200);--base-rgb:var(--dark-rgb);--successBack:var(--successDark);--successText:var(--successLight);--warningBack:var(--warningDark);--warningText:var(--warningLight);--errorBack:var(--errorDark);--errorText:var(--errorLight)}@font-face{font-display:swap;font-family:'Open Sans';font-style:normal;font-weight:300;src:url(assets/fonts/open-sans-v44-latin-300.woff2) format('woff2'),url(assets/fonts/open-sans-v44-latin-300.ttf) format('truetype')}@font-face{font-display:swap;font-family:'Open Sans';font-style:italic;font-weight:300;src:url(assets/fonts/open-sans-v44-latin-300italic.woff2) format('woff2'),url(assets/fonts/open-sans-v44-latin-300italic.ttf) format('truetype')}@font-face{font-display:swap;font-family:'Open Sans';font-style:normal;font-weight:500;src:url(assets/fonts/open-sans-v44-latin-500.woff2) format('woff2'),url(assets/fonts/open-sans-v44-latin-500.ttf) format('truetype')}@font-face{font-display:swap;font-family:'Open Sans';font-style:italic;font-weight:500;src:url(assets/fonts/open-sans-v44-latin-500italic.woff2) format('woff2'),url(assets/fonts/open-sans-v44-latin-500italic.ttf) format('truetype')}@font-face{font-display:swap;font-family:'Open Sans';font-style:normal;font-weight:800;src:url(assets/fonts/open-sans-v44-latin-800.woff2) format('woff2'),url(assets/fonts/open-sans-v44-latin-800.ttf) format('truetype')}@font-face{font-display:swap;font-family:'Open Sans';font-style:italic;font-weight:800;src:url(assets/fonts/open-sans-v44-latin-800italic.woff2) format('woff2'),url(assets/fonts/open-sans-v44-latin-800italic.ttf) format('truetype')}@font-face{font-display:swap;font-family:'Josefin Sans';font-style:normal;font-weight:300;src:url(assets/fonts/josefin-sans-v34-latin-300.woff2) format('woff2'),url(assets/fonts/josefin-sans-v34-latin-300.ttf) format('truetype')}@font-face{font-display:swap;font-family:'Josefin Sans';font-style:italic;font-weight:300;src:url(assets/fonts/josefin-sans-v34-latin-300italic.woff2) format('woff2'),url(assets/fonts/josefin-sans-v34-latin-300italic.ttf) format('truetype')}@font-face{font-display:swap;font-family:'Josefin Sans';font-style:normal;font-weight:700;src:url(assets/fonts/josefin-sans-v34-latin-700.woff2) format('woff2'),url(assets/fonts/josefin-sans-v34-latin-700.ttf) format('truetype')}@font-face{font-display:swap;font-family:'Josefin Sans';font-style:italic;font-weight:700;src:url(assets/fonts/josefin-sans-v34-latin-700italic.woff2) format('woff2'),url(assets/fonts/josefin-sans-v34-latin-700italic.ttf) format('truetype')}.home .video-cover.video-cover{margin-top:0}.wp-site-blocks>header{justify-content:center!important}.scroll-progress .bar{background:linear-gradient(90deg,rgba(var(--action-rgb),.8) 0,rgba(var(--action-rgb),1) 40%,rgba(var(--action-rgb),.8) 100%);position:relative;box-shadow:0 0 4px rgba(var(--action-rgb),.9),0 0 8px rgba(var(--action-rgb),.7),0 0 16px rgba(var(--action-rgb),.4)}#theme-switch#theme-switch{position:absolute;left:1rem}.fixed.bottom .call{width:var(--btn);flex:0 1 var(--btn_)}.fixed.bottom li a{gap:1rem}nav.always.always a{text-transform:none}.pre-header{font-family:var(--heading)}.eltrs{min-height:40vh;width:100vw;background-color:var(--action-0);--justify:center;--align:center}.eltrs h2{font-family:var(--body);font-weight:var(--fw-h-bold);color:var(--action-contrast);text-align:center;margin:0;font-size:var(--txt-large)}.eltrs span:nth-of-type(1){font-size:2.25em;letter-spacing:-.15rem}.eltrs span:nth-of-type(2){line-height:.8}.eltrs span:nth-of-type(3){font-size:2.2em;letter-spacing:-.1rem}.eltrs span{display:block;line-height:.9}@media (min-width:768px){.eltrs h2{font-size:var(--txt-xx-large)}.eltrs span:nth-of-type(1){font-size:2.25em;letter-spacing:-.35rem}.eltrs span:nth-of-type(2){line-height:.8}.eltrs span:nth-of-type(3){font-size:2.35em;letter-spacing:-.25rem}}ol.blocky.blocky{list-style:none;counter-reset:blocky;padding:1rem;max-width:none}ol.blocky li{counter-increment:blocky;--width:20vw;--gap:25vw;min-height:var(--width);margin:4rem auto;display:flex;flex-direction:column;position:relative;padding-left:var(--gap)}ol.blocky li:nth-of-type(even)::after,ol.blocky li:nth-of-type(odd)::before{content:counter(blocky);font-weight:900;font-size:var(--txt-xxx-large);height:var(--width);width:var(--width);background-color:var(--action-0);color:var(--action-contrast);display:flex;justify-content:center;align-items:center;position:absolute;top:0;left:0;border-radius:50% 4px 50% 4px;border:4px solid var(--action-200);border-left:0;border-top:0;box-shadow:rgba(var(--base-rgb),var(--op-45)) var(--shdw)}@media (min-width:768px){ol.blocky li{position:relative;display:block;padding:1rem}ol.blocky li:nth-of-type(odd){padding-left:var(--gap)}ol.blocky li:nth-of-type(even){padding-right:var(--gap)}ol.blocky li:nth-of-type(even)::after,ol.blocky li:nth-of-type(odd)::before{margin-bottom:0;width:var(--width);position:absolute;top:0;left:unset;border-radius:0;border-width:.5rem}ol.blocky li:nth-of-type(odd)::before{left:0}ol.blocky li:nth-of-type(even)::after{right:0}}main>section:nth-of-type(even){background-color:var(--base-100);max-width:100vw;padding:3rem 0}main>section:nth-of-type(even)>*{max-width:var(--content);margin-left:auto;margin-right:auto}main>section.callout:last-of-type{margin-bottom:0}section.pre-footer{min-height:25vh;background-color:var(--secondary-0);color:var(--secondary-contrast);display:flex;justify-content:center;align-items:center;padding:0 2rem;flex-direction:column;gap:0}.pre-footer p{margin:0;text-align:center}.pre-footer~footer{margin-top:0}.pre-footer a{background-color:var(--secondary-contrast);padding:0 .125rem;border-radius:4px}.triangle{padding:2rem 2rem 0;--justify:flex-end;position:relative;background-color:var(--action-0);color:var(--action-contrast)}.excerpt::after,.triangle::after{content:'';position:absolute;top:100%;width:0;height:0;border-left:32px solid transparent;border-right:32px solid transparent;border-top:32px solid var(--action-0);clear:both}.excerpt::after{left:-1rem}.triangle::after{right:2rem}.triangle.left::after{right:unset;left:2rem}.triangle h1{padding-right:1rem;max-width:var(--wide);width:max-content;word-wrap:break-word}.excerpt{position:relative;margin-right:1rem;padding:1rem 15vw 1rem 0;border-bottom:4px solid var(--action-0);margin-bottom:6rem;grid-column:full;max-width:var(--narrow);margin-left:auto}.tldr{font-weight:var(--fw-b-bold);font-size:var(--txt-large);display:inline-block;vertical-align:bottom;line-height:1.4;color:var(--action-0);position:relative;left:-2rem;cursor:pointer}.align-full.triangle:has(+.contact){margin-bottom:0;z-index:1}section.contact.contact{gap:1.5rem;margin-top:-.5rem;padding-bottom:2rem;background-color:var(--base-100);color:var(--contrast-200);max-width:none}@media (min-width:768px){section.contact.contact{padding:2rem 15vw}}section.contact .buttons li a,section.contact .socials a{background-color:var(--base-50)}section.contact .buttons li a:focus,section.contact .buttons li a:hover,section.contact .socials a:focus,section.contact .socials a:hover{background-color:var(--action-0)}section.contact.triangle::after{border-top-color:var(--base-100)}section.contact h2{margin:2rem 0 0;display:flex;font-weight:var(--fw-h-bold);text-transform:uppercase;white-space:nowrap;width:100%;line-height:1;gap:1rem;align-items:center}section.contact h2::after{content:'';height:2px;background-color:var(--contrast-200);border-radius:4px;width:100%;position:relative;top:-.25rem}section.contact p{margin:0;line-height:1;user-select:all}section.contact .buttons{margin:0;--height:fit-content}section.contact>.col{width:50%}.pricing p{margin:0}.pricing h3{margin:4rem 0 0 0}.pricing>.group{--wrap:wrap}@media (min-width:768px){.pricing>.group{--wrap:nowrap}.pricing>.group>.col{width:50%}}span.logo .icon-logo-triangle{background-color:var(--action-0);--w:4rem}span.logo .icon-logo-text-only{--w:8rem}a .icon-logo-text-only{background-color:var(--contrast)}a:hover .icon-logo-text-only{background-color:var(--action-0)}.loop{max-width:var(--full);overflow-x:auto;padding:1rem 0;touch-action:pan-x pan-y}.loop .item-grid.item-grid{display:flex;flex-wrap:nowrap;width:max-content;position:relative}.loop .item-grid.item-grid figure{margin:0}.loop .item-grid .item:nth-of-type(odd) figure{top:-1rem}.loop .item-grid .item.item{width:50vw}@media (min-width:768px){.loop .item-grid .item.item{width:25vw}}
templates/front_page.html
New file
@@ -0,0 +1,33 @@
<!-- wp:template-part {"slug":"header","theme":"jvb-theme"} /-->
<!-- wp:jvb/video {"posterId":1921,"posterUrl":"http://legacyrebrand.test/wp-content/uploads/2024/03/splash.webp","videoSources":[{"id":2714,"url":"http://legacyrebrand.test/wp-content/uploads/2024/06/Best-Laser-Tattoo-Removal-Edmonton-480.mp4","mime":"video/mp4"}],"mobileSources":[{"id":2714,"url":"http://legacyrebrand.test/wp-content/uploads/2024/06/Best-Laser-Tattoo-Removal-Edmonton-480.mp4","mime":"video/mp4"}],"fadeEffect":true} -->
<div class="wp-block-jvb-video video-cover-wrapper-placeholder"><!-- wp:media-text {"mediaId":3456,"mediaLink":"http://legacyrebrand.test/faded-kitsune-scott-rusnak/","mediaType":"image","isStackedOnMobile":false} -->
    <div class="wp-block-media-text"><figure class="wp-block-media-text__media"><img src="http://legacyrebrand.test/wp-content/uploads/2025/10/Faded-Kitsune-Scott-Rusnak-1024x992.png" alt="" class="wp-image-3456 size-full"/></figure><div class="wp-block-media-text__content"><!-- wp:site-title /-->
        <!-- wp:site-tagline /--></div></div>
    <!-- /wp:media-text -->
    <!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
    <div class="wp-block-buttons"><!-- wp:button {"width":50,"className":"is-style-outline"} -->
        <div class="wp-block-button has-custom-width wp-block-button__width-50 is-style-outline"><a class="wp-block-button__link wp-element-button" href="http://legacyrebrand.test/get-an-estimate/">Get an Estimate</a></div>
        <!-- /wp:button -->
        <!-- wp:button {"width":50,"className":"is-style-outline"} -->
        <div class="wp-block-button has-custom-width wp-block-button__width-50 is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://legacytattooremoval.janeapp.com/#/staff_member/2/treatment/15">Free Consult</a></div>
        <!-- /wp:button -->
        <!-- wp:button {"width":50,"className":"is-style-outline"} -->
        <div class="wp-block-button has-custom-width wp-block-button__width-50 is-style-outline"><a class="wp-block-button__link wp-element-button" href="http://legacyrebrand.test/category/before-and-after/">Before &amp; After</a></div>
        <!-- /wp:button -->
        <!-- wp:button {"width":50,"className":"is-style-outline"} -->
        <div class="wp-block-button has-custom-width wp-block-button__width-50 is-style-outline"><a class="wp-block-button__link wp-element-button" href="http://legacyrebrand.test/edmonton-tattoo-removal/">Location</a></div>
        <!-- /wp:button --></div>
    <!-- /wp:buttons --></div>
<!-- /wp:jvb/video -->
<!-- wp:group {"tagName":"main","layout":{"type":"constrained"}} -->
<main class="wp-block-group"><!-- wp:post-content {"layout":{"type":"constrained"}} /--></main>
<!-- /wp:group -->
<!-- wp:template-part {"slug":"footer-copy","theme":"legacy","tagName":"jvb-theme"} /-->
theme.json
New file
@@ -0,0 +1,97 @@
{
  "$schema": "https://schemas.wp.org/trunk/theme.json",
  "version":3,
  "settings": {
    "appearanceTools": true,
    "layout": {
      "contentSize": "768px",
      "wideSize": "1100px"
    },
    "color": {
      "defaultGradients": false,
      "palette": [
        {
          "slug": "contrast",
          "color": "#151515",
          "name": "Darkest"
        },
        {
          "slug": "contrast-50",
          "color": "#222222",
          "name": "Darker"
        },
        {
          "slug": "contrast-100",
          "color": "#2e2e2e",
          "name": "Dark"
        },
        {
          "slug": "contrast-200",
          "color": "#3b3b3b",
          "name": "Dark"
        },
        {
          "slug": "base",
          "color": "#efefef",
          "name": "Lightest"
        },
        {
          "slug": "base-50",
          "color": "#e2e2e2",
          "name": "Lighterer"
        },
        {
          "slug": "base-100",
          "color": "#d5d5d5",
          "name": "Lighter"
        },
        {
          "slug": "base-200",
          "color": "#c9c9c9",
          "name": "Light"
        },
        {
          "slug": "action-0",
          "color": "#ff0080",
          "name": "Action"
        },
        {
          "slug": "action-50",
          "color": "#ff2492",
          "name": "Action Light"
        },
        {
          "slug": "action-100",
          "color": "#ff47a4",
          "name": "Action Lighter"
        },
        {
          "slug": "action-200",
          "color": "#ff6bb5",
          "name": "Action Lightest"
        },
        {
          "slug": "secondary-0",
          "color": "#D69121",
          "name": "Secondary"
        },
        {
          "slug": "secondary-50",
          "color": "#ffc421",
          "name": "Secondary Light"
        },
        {
          "slug": "secondary-100",
          "color": "#ffcd44",
          "name": "Secondary Lighter"
        },
        {
          "slug": "secondary-200",
          "color": "#ffd768",
          "name": "Secondary Lightest"
        }
      ]
    }
  }
}