/*!
Theme Name: codekids
Theme URI: https://wpwhales.io
Author: Underscores.me
Author URI: https://wpwhales.io
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: codekids

*/

/* cyrillic-ext */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bh0NSDulI.woff2") format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bh2dSDulI.woff2") format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek-ext */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bh0dSDulI.woff2") format('woff2');
	unicode-range: U+1F00-1FFF;
}

/* greek */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bh3tSDulI.woff2") format('woff2');
	unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

/* symbols2 */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bhZ_Wmh2uX.woff2") format('woff2');
	unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;
}

/* latin-ext */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bh09SDulI.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bh3dSD.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bh0NSDulI.woff2") format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bh2dSDulI.woff2") format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek-ext */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bh0dSDulI.woff2") format('woff2');
	unicode-range: U+1F00-1FFF;
}

/* greek */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bh3tSDulI.woff2") format('woff2');
	unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

/* symbols2 */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bhZ_Wmh2uX.woff2") format('woff2');
	unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;
}

/* latin-ext */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bh09SDulI.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
	font-family: 'Fira Code';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/firacode/v27/uU9NCBsR6Z2vfE9aq3bh3dSD.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOOaBXso.woff2") format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIMeaBXso.woff2") format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOuaBXso.woff2") format('woff2');
	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIO-aBXso.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofINeaB.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOOaBXso.woff2") format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIMeaBXso.woff2") format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOuaBXso.woff2") format('woff2');
	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIO-aBXso.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofINeaB.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOOaBXso.woff2") format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIMeaBXso.woff2") format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOuaBXso.woff2") format('woff2');
	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIO-aBXso.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofINeaB.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOOaBXso.woff2") format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIMeaBXso.woff2") format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOuaBXso.woff2") format('woff2');
	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIO-aBXso.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofINeaB.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOOaBXso.woff2") format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIMeaBXso.woff2") format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOuaBXso.woff2") format('woff2');
	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIO-aBXso.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofINeaB.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 400;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tCKQ.woff2") format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 400;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tCKQ.woff2") format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 400;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tCKQ.woff2") format('woff2');
	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 400;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tCKQ.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 400;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-s.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 500;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tCKQ.woff2") format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 500;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tCKQ.woff2") format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 500;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tCKQ.woff2") format('woff2');
	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 500;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tCKQ.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 500;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-s.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 600;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tCKQ.woff2") format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 600;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tCKQ.woff2") format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 600;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tCKQ.woff2") format('woff2');
	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 600;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tCKQ.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 600;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-s.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 700;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tCKQ.woff2") format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 700;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tCKQ.woff2") format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 700;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tCKQ.woff2") format('woff2');
	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 700;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tCKQ.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
	font-family: 'Nunito Sans';
	font-style: normal;
	font-weight: 700;
	font-stretch: 100%;
	font-display: swap;
	src: url("https://fonts.gstatic.com/s/nunitosans/v19/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-s.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--purple: #7B52AB;
	--purple-deep: #5B3A85;
	--purple-soft: #F3EBFA;
	--purple-ink: #2D2D3F;
	--yellow: #F5C518;
	--yellow-deep: #E3B312;
	--ink: #2D2D3F;
	--muted: #5B5B6E;
	--panel-alpha: 0.93;
	--panel-blur: 6px;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box
}

html,
body {
	background: #F7F5FA;
	color: var(--ink);
	font-family: 'Nunito Sans', system-ui, sans-serif;
	-webkit-font-smoothing: antialiased
}

a {
	color: inherit;
	text-decoration: none
}

img {
	display: block;
	max-width: 100%
}

/* ---------- top utility bar ---------- */
.util {
	background: var(--purple);
	color: #fff;
	font-family: 'Nunito Sans', sans-serif;
	font-size: 13px;
	padding: 8px 32px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	position: relative;
	z-index: 2;
}

.util .left {
	display: flex;
	gap: 22px;
	align-items: center;
	opacity: .95
}

.util .left span {
	display: inline-flex;
	align-items: center;
	gap: 7px
}

.util .left svg {
	width: 14px;
	height: 14px;
	stroke: currentColor;
	fill: none;
	stroke-width: 1.8
}

.util .cta {
	background: var(--yellow);
	color: var(--ink);
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 12px;
	padding: 5px 14px;
	border-radius: 999px;
	letter-spacing: .2px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

/* ---------- nav ---------- */
.nav {
	background: #fff;
	border-bottom: 1px solid #ECE6F4;
	padding: 16px 32px;
	display: flex;
	align-items: center;
	position: relative;
	z-index: 1;
}

.brand {
	display: flex;
	align-items: flex-end;
	gap: 14px;
	font-family: 'Nunito', sans-serif;
	margin-right:10%;
}

.brand .mark-img {
	height: 34px;
	width: auto;
	display: block;
}

.brand .word-img {
	height: 36px;
	width: auto;
	display: block;
}

.brand .name {
	font-weight: 900;
	font-size: 20px;
	color: var(--ink);
	line-height: 1
}

.brand .tag {
	font-family: 'Fira Code', monospace;
	font-size: 10.5px;
	color: var(--purple);
	letter-spacing: .5px;
	margin-top: 3px
}

.links {
	display: flex;
	gap: 28px;
	align-items: center;
	font-family: 'Nunito', sans-serif;
	font-weight: 700;
	font-size: 14px;
	color: var(--ink)
}

.links a {
	position: relative;
	padding: 6px 0
}

.links a.active {
	color: var(--purple)
}

.links a.active::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 2px;
	background: var(--yellow);
	border-radius: 2px;
}

.nav-cta {
	display: flex;
	gap: 6px;
	align-items: center
}

.icon-btn {
	position: relative;
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: var(--purple-soft);
	color: var(--purple);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all .15s ease;
	border: 0;
	text-decoration: none;
}

.icon-btn:hover {
	background: var(--purple);
	color: #fff;
	transform: translateY(-1px)
}

.icon-btn svg {
	width: 20px;
	height: 20px;
	stroke: currentColor;
	fill: none;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round
}

.icon-btn .badge {
	position: absolute;
	top: -4px;
	right: -4px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	background: var(--yellow);
	color: var(--ink);
	border-radius: 9px;
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 11px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 0 0 2px #fff;
}

.icon-btn::after {
	content: attr(data-tip);
	position: absolute;
	top: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%) translateY(-4px);
	background: var(--ink);
	color: #fff;
	font-family: 'Nunito', sans-serif;
	font-weight: 600;
	font-size: 11.5px;
	padding: 6px 10px;
	border-radius: 6px;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity .15s ease, transform .15s ease;
	z-index: 10;
}

.icon-btn::before {
	content: "";
	position: absolute;
	top: calc(100% + 2px);
	left: 50%;
	transform: translateX(-50%);
	border: 5px solid transparent;
	border-bottom-color: var(--ink);
	opacity: 0;
	pointer-events: none;
	transition: opacity .15s ease;
}

.icon-btn:hover::after,
.icon-btn:hover::before {
	opacity: 1
}

.icon-btn:hover::after {
	transform: translateX(-50%) translateY(0)
}

.btn-ghost {
	font-family: 'Nunito', sans-serif;
	font-weight: 700;
	font-size: 13px;
	color: var(--purple);
	padding: 8px 14px;
	border-radius: 8px;
	border: 1.5px solid transparent;
	transition: all .15s ease;
	cursor: pointer;
	background: none;
}

.btn-ghost:hover {
	border-color: #E3D7F1
}

/* ---------- hero ---------- */
.hero {
	position: relative;
	overflow: hidden;
	min-height: 620px;
	background: #1a1220;
}

.hero-photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--photo-pos, center 35%);
	transition: opacity .4s ease;
}

/* gradient scrim – denser on the left where the panel sits */
.hero-scrim {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(28, 18, 42, 0.55) 0%, rgba(28, 18, 42, 0.35) 38%, rgba(28, 18, 42, 0) 62%),
		linear-gradient(180deg, rgba(28, 18, 42, 0.15) 0%, rgba(28, 18, 42, 0) 30%, rgba(28, 18, 42, 0.25) 100%);
}

/* decorative top dotted code-ish texture */
.hero-deco {
	position: absolute;
	right: -40px;
	top: -40px;
	width: 260px;
	height: 260px;
	background-image: radial-gradient(rgba(255, 255, 255, .35) 1.2px, transparent 1.4px);
	background-size: 14px 14px;
	mask-image: radial-gradient(circle at 70% 30%, #000 0%, transparent 65%);
	-webkit-mask-image: radial-gradient(circle at 70% 30%, #000 0%, transparent 65%);
	pointer-events: none;
}

.hero-grid {
	position: relative;
	z-index: 2;
	max-width: 1320px;
	margin: 0 auto;
	padding: 64px 32px;
	display: grid;
	grid-template-columns: minmax(0, 540px) 1fr;
	gap: 32px;
	align-items: center;
	min-height: 620px;
}

/* frosted panel */
.panel {
	position: relative;
	background: rgba(255, 255, 255, var(--panel-alpha));
	backdrop-filter: blur(var(--panel-blur)) saturate(1.05);
	-webkit-backdrop-filter: blur(var(--panel-blur)) saturate(1.05);
	border-radius: 20px;
	padding: 40px 42px 36px;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, .9) inset,
		0 24px 60px -20px rgba(45, 25, 80, .45),
		0 2px 6px rgba(45, 25, 80, .12);
	border: 1px solid rgba(255, 255, 255, .7);
}

/* (yellow panel tab removed) */

.eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: 'Fira Code', monospace;
	font-size: 12px;
	color: var(--purple);
	letter-spacing: .5px;
	margin-bottom: 18px;
}

.eyebrow .dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #2ECC71;
	box-shadow: 0 0 0 4px rgba(46, 204, 113, .18);
	animation: pulse 2s infinite ease-in-out
}

@keyframes pulse {
	50% {
		box-shadow: 0 0 0 7px rgba(46, 204, 113, .06)
	}
}

h1.headline {
	font-family: 'Nunito', sans-serif;
	font-weight: 900;
	font-size: clamp(34px, 3.6vw, 54px);
	line-height: 1.05;
	letter-spacing: -.5px;
	color: var(--ink);
	margin-bottom: 16px;
	text-wrap: balance;
}

.headline .accent {
	position: relative;
	color: var(--purple);
	white-space: nowrap;
}

.headline .accent svg {
	position: absolute;
	left: -4%;
	bottom: -10px;
	width: 108%;
	height: 14px;
	pointer-events: none;
}

.sub {
	font-family: 'Nunito Sans', sans-serif;
	font-size: 17px;
	line-height: 1.55;
	color: var(--muted);
	margin-bottom: 28px;
	max-width: 440px;
	text-wrap: pretty;
}

.sub strong {
	color: var(--ink);
	font-weight: 700
}

.ctas {
	display: flex;
	gap: 12px;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: 28px
}

.btn-primary {
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 15px;
	background: var(--yellow);
	color: var(--ink);
	padding: 14px 22px;
	border-radius: 12px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	box-shadow: 0 3px 0 var(--yellow-deep), 0 10px 24px -8px rgba(229, 179, 18, .6);
	transition: transform .15s ease, box-shadow .15s ease;
	cursor: pointer;
	border: 0;
}

.btn-primary:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 0 var(--yellow-deep), 0 14px 28px -8px rgba(229, 179, 18, .7)
}

.btn-primary .arr {
	transition: transform .2s ease
}

.btn-primary:hover .arr {
	transform: translateX(3px)
}

.btn-primary .pin {
	display: inline-flex;
	margin-right: 2px
}

.btn-primary .pin svg {
	width: 18px;
	height: 18px
}

/* ---------- location menu ---------- */
.loc-wrap {
	position: relative
}

.loc-menu {
	position: absolute;
	top: calc(100% + 10px);
	left: 0;
	z-index: 20;
	min-width: 320px;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 24px 50px -12px rgba(28, 18, 42, .28), 0 0 0 1px rgba(28, 18, 42, .06);
	padding: 8px;
	opacity: 0;
	transform: translateY(-6px);
	pointer-events: none;
	transition: opacity .18s ease, transform .18s ease;
}

.loc-menu.open {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto
}

.loc-menu-head {
	font-family: 'Nunito', sans-serif;
	font-weight: 700;
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #8A7AA6;
	padding: 10px 12px 6px;
}

.loc-opt {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border-radius: 10px;
	text-decoration: none;
	color: var(--ink);
	cursor: pointer;
	transition: background .12s ease;
}

.loc-opt:hover {
	background: var(--purple-soft)
}

.loc-ico {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: var(--purple-soft);
	color: var(--purple);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 36px;
}

.loc-ico.online {
	background: #FFF3BF;
	color: #8A6A00
}

.loc-ico svg {
	width: 18px;
	height: 18px
}

.loc-t {
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 14.5px;
	color: var(--ink)
}

.loc-s {
	font-family: 'Nunito', sans-serif;
	font-weight: 500;
	font-size: 12px;
	color: #6B5E85;
	margin-top: 1px
}

.loc-sep {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 12px 4px;
	font-family: 'Nunito', sans-serif;
	font-weight: 700;
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #8A7AA6;
}

.loc-sep::before,
.loc-sep::after {
	content: "";
	flex: 1;
	height: 1px;
	background: #EEE6F5
}

.btn-secondary {
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 15px;
	background: transparent;
	color: var(--purple);
	border: 2px solid var(--purple);
	padding: 12px 20px;
	border-radius: 12px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	transition: all .15s ease;
}

.btn-secondary:hover {
	background: var(--purple);
	color: #fff
}

.btn-secondary .play-icn {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--purple);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all .15s ease;
}

.btn-secondary .play-icn svg {
	width: 12px;
	height: 12px;
	margin-left: 1px
}

.btn-secondary:hover .play-icn {
	background: #fff;
	color: var(--purple)
}

/* ---------- locations section ---------- */
.locations {
	background: #FAFAFC;
	padding: 84px 0 96px;
	border-top: 1px solid rgba(91, 58, 155, .06)
}

.loc-container {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 36px
}

.loc-head {
	text-align: center;
	margin-bottom: 34px
}

.eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: 'Nunito', sans-serif;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--purple);
	background: var(--purple-soft);
	padding: 6px 12px;
	border-radius: 999px;
	margin-bottom: 16px;
}

.eyebrow .dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--yellow);
	box-shadow: 0 0 0 3px rgba(245, 197, 24, .25)
}

.loc-title {
	font-family: 'Nunito', sans-serif;
	font-weight: 900;
	font-size: clamp(32px, 4vw, 52px);
	color: var(--ink);
	line-height: 1.05;
	margin: 0 0 14px;
	letter-spacing: -.5px;
	text-wrap: balance;
}

.loc-accent {
	position: relative;
	color: var(--purple);
	white-space: nowrap;
	display: inline-block
}

.loc-accent svg {
	position: absolute;
	left: -4%;
	bottom: -10px;
	width: 108%;
	height: 14px;
	pointer-events: none;
}

.loc-sub {
	font-family: 'Nunito Sans', sans-serif;
	font-size: 16px;
	color: var(--muted);
	max-width: 540px;
	margin: 0 auto;
	line-height: 1.5;
}

/* toggle */
.loc-toggle-wrap {
	display: flex;
	justify-content: center;
	margin: 0 auto 32px
}

.loc-toggle {
	position: relative;
	display: inline-flex;
	gap: 4px;
	padding: 5px;
	background: #fff;
	border-radius: 999px;
	box-shadow: 0 2px 0 rgba(28, 18, 42, .05), 0 0 0 1px rgba(28, 18, 42, .06);
}

.loc-tab {
	position: relative;
	z-index: 2;
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 14px;
	padding: 10px 22px;
	border: 0;
	background: transparent;
	border-radius: 999px;
	cursor: pointer;
	color: var(--muted);
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: color .2s ease;
}

.loc-tab.on {
	color: var(--ink)
}

.loc-tab-ico {
	width: 16px;
	height: 16px;
	display: inline-flex
}

.loc-tab-ico svg {
	width: 16px;
	height: 16px
}

.loc-tab-slider {
	position: absolute;
	z-index: 1;
	top: 5px;
	bottom: 5px;
	left: 5px;
	width: calc(50% - 5px);
	background: var(--yellow);
	border-radius: 999px;
	box-shadow: 0 2px 0 var(--yellow-deep);
	transition: transform .28s cubic-bezier(.5, 1.5, .5, 1);
}

.loc-toggle[data-mode="online"] .loc-tab-slider {
	transform: translateX(100%)
}

/* views */
.loc-view {
	display: none
}

.loc-view.active {
	display: block;
	animation: locFade .35s ease
}

@keyframes locFade {
	from {
		opacity: 0;
		transform: translateY(8px)
	}

	to {
		opacity: 1;
		transform: none
	}
}

/* map */
.loc-map {
	position: relative;
	width: 100%;
	aspect-ratio: 900/380;
	border-radius: 24px;
	overflow: hidden;
	background: #F7F3FC;
	box-shadow: 0 20px 50px -20px rgba(91, 58, 155, .18), 0 0 0 1px rgba(91, 58, 155, .06);
}

.loc-map-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%
}

/* pins */
.loc-pin {
	position: absolute;
	transform: translate(-50%, -50%);
	width: 28px;
	height: 28px;
	background: transparent;
	border: 0;
	cursor: pointer;
	padding: 0;
	z-index: 2;
}

.pin-dot {
	position: absolute;
	inset: 8px;
	border-radius: 50%;
	background: var(--purple);
	box-shadow: 0 0 0 3px #fff, 0 4px 10px rgba(91, 58, 155, .45);
	transition: transform .18s ease;
}

.pin-ring {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 2px solid var(--purple);
	opacity: .3;
	animation: pinPulse 2.4s ease-out infinite;
}

.loc-pin.active .pin-dot {
	background: var(--yellow);
	transform: scale(1.3);
	box-shadow: 0 0 0 3px #fff, 0 4px 14px rgba(229, 179, 18, .6)
}

.loc-pin.active .pin-ring {
	border-color: var(--yellow-deep);
	opacity: .5
}

.loc-pin.dim {
	opacity: .2;
	pointer-events: none;
	filter: saturate(0)
}

@keyframes pinPulse {
	0% {
		transform: scale(.6);
		opacity: .6
	}

	100% {
		transform: scale(1.6);
		opacity: 0
	}
}

/* Pin name labels */
.pin-label {
	position: absolute;
	white-space: nowrap;
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 11px;
	color: var(--ink);
	background: #fff;
	padding: 3px 8px;
	border-radius: 6px;
	box-shadow: 0 2px 6px rgba(91, 58, 155, .18), 0 0 0 1px rgba(91, 58, 155, .08);
	pointer-events: none;
	letter-spacing: .2px;
	transition: all .18s ease;
}

.loc-pin.lbl-right .pin-label {
	left: calc(100% + 4px);
	top: 50%;
	transform: translateY(-50%)
}

.loc-pin.lbl-left .pin-label {
	right: calc(100% + 4px);
	top: 50%;
	transform: translateY(-50%)
}

.loc-pin.lbl-top .pin-label {
	left: 50%;
	bottom: calc(100% + 4px);
	transform: translateX(-50%)
}

.loc-pin.lbl-bot .pin-label {
	left: 50%;
	top: calc(100% + 4px);
	transform: translateX(-50%)
}

.loc-pin.active .pin-label,
.loc-pin:hover .pin-label {
	background: var(--yellow);
	color: var(--ink);
	box-shadow: 0 4px 10px rgba(229, 179, 18, .45);
}

/* County filter chips */
.county-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin: 0 auto 16px;
}

.county-chip {
	font-family: 'Nunito', sans-serif;
	font-weight: 700;
	font-size: 13px;
	padding: 8px 16px;
	border-radius: 999px;
	cursor: pointer;
	border: 1.5px solid transparent;
	background: #fff;
	color: var(--ink);
	transition: all .18s ease;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	box-shadow: 0 2px 8px rgba(91, 58, 155, .08);
}

.county-chip .dot {
	width: 10px;
	height: 10px;
	border-radius: 50%
}

.county-chip[data-county="all"] .dot {
	background: linear-gradient(135deg, #7B52AB 0%, #4CAF50 50%, #E0B96A 100%)
}

.county-chip[data-county="london"] .dot {
	background: #7B52AB
}

.county-chip[data-county="surrey"] .dot {
	background: #4CAF50
}

.county-chip[data-county="kent"] .dot {
	background: #E0B96A
}

.county-chip:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(91, 58, 155, .15)
}

.county-chip.on {
	background: var(--yellow);
	border-color: var(--yellow-deep);
	box-shadow: 0 4px 12px rgba(229, 179, 18, .4)
}

.county-chip .count {
	font-size: 11px;
	color: var(--muted);
	font-weight: 600;
	background: #F3EBFA;
	padding: 1px 7px;
	border-radius: 999px;
}

.county-chip.on .count {
	background: rgba(255, 255, 255, .55);
	color: var(--ink)
}

/* SVG county shapes (interactive) */
.county-shape {
	cursor: pointer;
	transition: all .25s ease;
	transform-origin: center;
	transform-box: fill-box
}

.county-shape:hover {
	filter: brightness(1.04) drop-shadow(0 6px 16px rgba(91, 58, 155, .2))
}

.loc-map[data-county-filter="london"] .county-shape[data-county="london"],
.loc-map[data-county-filter="surrey"] .county-shape[data-county="surrey"],
.loc-map[data-county-filter="kent"] .county-shape[data-county="kent"] {
	stroke-width: 3.5;
	filter: drop-shadow(0 4px 18px rgba(91, 58, 155, .25));
}

.loc-map[data-county-filter]:not([data-county-filter="all"]) .county-shape:not([data-county]) {
	opacity: .35
}

.loc-map[data-county-filter="london"] .county-shape[data-county="surrey"],
.loc-map[data-county-filter="london"] .county-shape[data-county="kent"],
.loc-map[data-county-filter="surrey"] .county-shape[data-county="london"],
.loc-map[data-county-filter="surrey"] .county-shape[data-county="kent"],
.loc-map[data-county-filter="kent"] .county-shape[data-county="london"],
.loc-map[data-county-filter="kent"] .county-shape[data-county="surrey"] {
	opacity: .35
}

.county-label {
	pointer-events: none;
	transition: opacity .25s
}

.loc-map[data-county-filter]:not([data-county-filter="all"]) .county-label:not(.active-label) {
	opacity: .4
}

/* Card filter out */
.loc-hcard.filtered-out {
	display: none;
}

/* hover-expand card row */
.loc-row {
	display: flex;
	gap: 12px;
	margin-top: 28px;
	padding: 6px 0 18px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
	scrollbar-color: #D9C6EC transparent;
}

.loc-row::-webkit-scrollbar {
	height: 8px
}

.loc-row::-webkit-scrollbar-thumb {
	background: #D9C6EC;
	border-radius: 4px
}

.loc-hcard {
	flex: 0 0 220px;
	scroll-snap-align: start;
	background: #fff;
	border-radius: 16px;
	padding: 14px;
	box-shadow: 0 8px 20px -8px rgba(28, 18, 42, .1), 0 0 0 1px rgba(28, 18, 42, .05);
	cursor: pointer;
	position: relative;
	overflow: hidden;
	transition: flex-basis .35s cubic-bezier(.5, 1.3, .4, 1), box-shadow .25s ease, transform .25s ease;
	display: flex;
	flex-direction: column;
}

.loc-hcard:hover,
.loc-hcard:focus-within {
	flex-basis: 360px;
	box-shadow: 0 20px 44px -12px rgba(28, 18, 42, .22), 0 0 0 2px var(--purple);
	transform: translateY(-2px);
}

.hc-head {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 44px
}

.hc-swatch {
	width: 10px;
	height: 36px;
	border-radius: 4px;
	flex: 0 0 10px;
}

.hc-title {
	flex: 1;
	min-width: 0
}

.hc-name {
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 14.5px;
	color: var(--ink);
	line-height: 1.1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.hc-sub {
	font-family: 'Nunito Sans', sans-serif;
	font-weight: 500;
	font-size: 11.5px;
	color: var(--muted);
	margin-top: 2px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.hc-status {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #4CAF50;
	box-shadow: 0 0 0 3px rgba(76, 175, 80, .18);
	flex-shrink: 0;
}

.hc-status.low {
	background: #E85D75;
	box-shadow: 0 0 0 3px rgba(232, 93, 117, .18)
}

.hc-status.new {
	background: var(--yellow);
	box-shadow: 0 0 0 3px rgba(245, 197, 24, .25)
}

.hc-status.filling {
	background: #FF9800;
	box-shadow: 0 0 0 3px rgba(255, 152, 0, .22)
}

.hc-body {
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-height .35s ease, opacity .25s ease, margin-top .25s ease;
	margin-top: 0;
}

.loc-hcard:hover .hc-body,
.loc-hcard:focus-within .hc-body {
	max-height: 260px;
	opacity: 1;
	margin-top: 12px;
}

.hc-meta {
	display: flex;
	align-items: center;
	font-family: 'Nunito', sans-serif;
	font-size: 12px;
	padding: 6px 10px;
	background: #FAFAFC;
	border-radius: 8px;
	margin-bottom: 6px;
}

.meta-k {
	color: var(--muted);
	font-weight: 600
}

.meta-v {
	color: var(--ink);
	font-weight: 800;
	margin-left: auto
}

.meta-v.low {
	color: #E85D75
}

.meta-v.new {
	color: #8A6A00;
	background: #FFF4CC;
	padding: 2px 8px;
	border-radius: 999px;
	margin-left: auto
}

.hc-courses {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 8px 0 10px
}

.chip {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 8px;
	border-radius: 999px;
	background: var(--purple-soft);
	color: var(--ink);
	font-family: 'Nunito', sans-serif;
	font-weight: 700;
	font-size: 11.5px;
}

.chip small {
	color: var(--muted);
	font-weight: 600;
	font-size: 10.5px
}

.chip .sw {
	width: 8px;
	height: 8px;
	border-radius: 2px;
	display: inline-block
}

.chip .sw.c1 {
	background: #F5C518
}

.chip .sw.c2 {
	background: #7B52AB
}

.chip .sw.c3 {
	background: #3BB4E5
}

.chip .sw.c4 {
	background: #E85D75
}

.chip .sw.c5 {
	background: #4CAF50
}

.chip .sw.c6 {
	background: #FF8A3D
}

.hc-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 13px;
	padding: 10px 12px;
	border-radius: 10px;
	background: var(--yellow);
	color: var(--ink);
	box-shadow: 0 2px 0 var(--yellow-deep);
	text-decoration: none;
	transition: transform .15s ease;
}

.hc-cta:hover {
	transform: translateY(-1px)
}

.hc-cta .arr {
	transition: transform .2s ease
}

.hc-cta:hover .arr {
	transform: translateX(3px)
}

/* online view */
.online-intro {
	text-align: center;
	margin-bottom: 28px
}

.online-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 13px;
	color: var(--purple);
	background: var(--purple-soft);
	padding: 8px 14px;
	border-radius: 999px;
	margin-bottom: 10px;
}

.online-badge svg {
	width: 16px;
	height: 16px
}

.online-copy {
	font-family: 'Nunito Sans', sans-serif;
	color: var(--muted);
	font-size: 15px;
	margin: 0
}

.online-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 16px;
}

.online-card {
	background: #fff;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 12px 30px -12px rgba(28, 18, 42, .12), 0 0 0 1px rgba(28, 18, 42, .05);
	transition: transform .2s ease, box-shadow .2s ease;
	display: flex;
	flex-direction: column;
}

.online-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 20px 40px -12px rgba(28, 18, 42, .18), 0 0 0 1px rgba(91, 58, 155, .15)
}

.online-card-swatch {
	height: 8px
}

.online-card-swatch.c1 {
	background: #F5C518
}

.online-card-swatch.c2 {
	background: #7B52AB
}

.online-card-swatch.c3 {
	background: #3BB4E5
}

.online-card-swatch.c4 {
	background: #E85D75
}

.online-card-swatch.c5 {
	background: #4CAF50
}

.online-card-swatch.c6 {
	background: #FF8A3D
}

.online-card-body {
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1
}

.online-card-name {
	font-family: 'Nunito', sans-serif;
	font-weight: 900;
	font-size: 18px;
	color: var(--ink);
	margin-bottom: 4px;
	letter-spacing: -.3px;
}

.online-card-line {
	display: flex;
	align-items: center;
	font-family: 'Nunito', sans-serif;
	font-size: 12.5px;
	padding: 6px 10px;
	background: #FAFAFC;
	border-radius: 8px;
}

.online-card-cta {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 13px;
	color: #fff;
	background: var(--purple);
	padding: 10px;
	border-radius: 10px;
	text-decoration: none;
	transition: background .15s ease;
}

.online-card-cta:hover {
	background: var(--purple-deep)
}

@media (max-width:900px) {
	.loc-map {
		aspect-ratio: 900/480
	}

	.loc-row {
		flex-wrap: wrap;
		overflow-x: visible
	}

	.loc-hcard {
		flex: 1 1 100%
	}

	.loc-hcard .hc-body {
		max-height: 260px;
		opacity: 1;
		margin-top: 12px
	}

	.loc-map {
		display: none
	}
}


/* ---------- testimonials ---------- */
.testimonials {
	background: #fff;
	padding: 84px 0 96px;
	border-top: 1px solid rgba(91, 58, 155, .06)
}

.tst-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 36px
}

.tst-head {
	text-align: center;
	margin-bottom: 48px
}

.tst-title {
	font-family: 'Nunito', sans-serif;
	font-weight: 900;
	font-size: clamp(30px, 3.6vw, 48px);
	color: var(--ink);
	line-height: 1.05;
	letter-spacing: -.5px;
	margin: 0 0 14px;
	text-wrap: balance;
}

.tst-accent {
	position: relative;
	color: var(--purple);
	display: inline-block
}

.tst-accent svg {
	position: absolute;
	left: -4%;
	bottom: -10px;
	width: 108%;
	height: 14px;
	pointer-events: none
}

.tst-sub {
	font-family: 'Nunito Sans', sans-serif;
	font-size: 15px;
	color: var(--muted);
	max-width: 480px;
	margin: 0 auto
}

.tst-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	margin-bottom: 40px;
}

.tst-card {
	background: #FAFAFC;
	border-radius: 20px;
	padding: 30px;
	border: 1px solid rgba(91, 58, 155, .06);
	display: flex;
	flex-direction: column;
	gap: 14px;
	position: relative;
	overflow: hidden;
	transition: transform .2s ease, box-shadow .2s ease;
}

.tst-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 20px 44px -12px rgba(91, 58, 155, .16), 0 0 0 1px rgba(91, 58, 155, .1)
}

.tst-card.featured {
	background: linear-gradient(135deg, var(--purple) 0%, #5B3A85 100%);
	color: #fff;
	grid-column: 1;
	grid-row: 1/3;
}

.tst-card.featured .tst-text {
	color: rgba(255, 255, 255, .9)
}

.tst-card.featured .tst-name {
	color: #fff
}

.tst-card.featured .tst-meta {
	color: rgba(255, 255, 255, .65)
}

.tst-card.featured .tst-badge {
	background: rgba(255, 255, 255, .18);
	color: #fff
}

.tst-card.featured .tst-stars {
	color: var(--yellow)
}

.tst-quote-mark {
	font-family: Georgia, serif;
	font-size: 72px;
	line-height: .8;
	color: var(--yellow);
	opacity: .5;
	margin-bottom: -8px;
	font-weight: 700;
}

.tst-feat-img {
	border-radius: 12px;
	overflow: hidden;
	margin: 4px 0;
	background: rgba(0, 0, 0, .12)
}

.tst-feat-img img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 12px
}

.tst-card.featured .tst-quote-mark {
	color: #fff;
	opacity: .25
}

.tst-stars {
	color: var(--yellow-deep);
	font-size: 16px;
	letter-spacing: 2px
}

.tst-text {
	font-family: 'Nunito Sans', sans-serif;
	font-size: 16px;
	line-height: 1.65;
	color: var(--ink);
	flex: 1;
	margin: 0;
	font-style: normal;
	text-wrap: pretty;
}

.tst-footer {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-top: 16px;
	border-top: 1px solid rgba(91, 58, 155, .08)
}

.tst-card.featured .tst-footer {
	border-top-color: rgba(255, 255, 255, .15)
}

.tst-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Nunito', sans-serif;
	font-weight: 900;
	font-size: 14px;
	flex-shrink: 0;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
}

.tst-info {
	flex: 1;
	min-width: 0
}

.tst-name {
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 14px;
	color: var(--ink)
}

.tst-meta {
	font-family: 'Nunito Sans', sans-serif;
	font-size: 12px;
	color: var(--muted);
	margin-top: 2px
}

.tst-badge {
	font-family: 'Nunito', sans-serif;
	font-weight: 700;
	font-size: 11px;
	background: var(--purple-soft);
	color: var(--purple);
	padding: 4px 10px;
	border-radius: 999px;
	white-space: nowrap;
	flex-shrink: 0;
}

.tst-summary {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
	background: var(--purple-soft);
	border-radius: 16px;
	padding: 18px 28px;
}

.tst-summary-stars {
	color: var(--yellow-deep);
	font-size: 20px;
	letter-spacing: 2px
}

.tst-summary-text {
	font-family: 'Nunito', sans-serif;
	font-size: 15px;
	color: var(--ink)
}

.tst-summary-text span {
	color: var(--muted);
	font-weight: 500
}

.tst-summary-link {
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 13px;
	color: var(--purple);
	background: #fff;
	padding: 8px 16px;
	border-radius: 8px;
	text-decoration: none;
	box-shadow: 0 2px 6px rgba(91, 58, 155, .12);
	transition: all .15s ease;
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.tst-summary-link:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(91, 58, 155, .18)
}

.tst-summary-link.trustpilot {
	color: #00B67A
}

.tst-summary-link.trustpilot:hover {
	background: #00B67A;
	color: #fff
}

.tst-summary-link.google:hover {
	background: var(--purple);
	color: #fff
}

@media (max-width:640px) {
	.tst-grid {
		grid-template-columns: 1fr
	}

	.tst-card.featured {
		grid-column: auto;
		grid-row: auto
	}
}

.wt-mc-img {
	border-radius: 10px;
	overflow: hidden;
	background: #1C1228;
	padding: 6px
}

.wt-mc-img img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 6px
}

/* course tabs */
.wt-tabs {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-bottom: 28px;
	flex-wrap: wrap
}

.wt-tab {
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 14px;
	padding: 10px 22px;
	border-radius: 999px;
	border: 2px solid #E3D7F1;
	background: #fff;
	color: var(--muted);
	cursor: pointer;
	transition: all .2s ease;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.wt-tab-ico {
	font-size: 16px
}

.wt-tab:hover {
	border-color: var(--purple);
	color: var(--purple)
}

.wt-tab.on {
	background: var(--purple);
	color: #fff;
	border-color: var(--purple);
	box-shadow: 0 4px 14px rgba(91, 58, 155, .3)
}

.wt-course {
	display: none
}

.wt-course.active {
	display: block;
	animation: locFade .3s ease
}

/* ---------- lesson walkthrough ---------- */
.walkthrough {
	background: var(--purple-soft);
	padding: 84px 0 96px;
	border-top: 1px solid rgba(91, 58, 155, .06)
}

.wt-container {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 36px
}

.wt-head {
	text-align: center;
	margin-bottom: 40px
}

.wt-title {
	font-family: 'Nunito', sans-serif;
	font-weight: 900;
	font-size: clamp(30px, 3.6vw, 48px);
	color: var(--ink);
	line-height: 1.05;
	letter-spacing: -.5px;
	margin: 0 0 14px;
	text-wrap: balance
}

.wt-accent {
	position: relative;
	color: var(--purple);
	display: inline-block
}

.wt-accent svg {
	position: absolute;
	left: -4%;
	bottom: -10px;
	width: 108%;
	height: 14px;
	pointer-events: none
}

.wt-sub {
	font-family: 'Nunito Sans', sans-serif;
	font-size: 16px;
	color: var(--muted);
	max-width: 560px;
	margin: 0 auto;
	line-height: 1.55
}

/* progress bar */
.wt-progress-wrap {
	margin: 0 0 40px;
	padding: 0 8px
}

.wt-progress-track {
	height: 6px;
	background: rgba(91, 58, 155, .12);
	border-radius: 3px;
	overflow: hidden;
	margin-bottom: 10px
}

.wt-progress-fill {
	height: 100%;
	width: 0%;
	background: linear-gradient(90deg, var(--purple), var(--yellow));
	border-radius: 3px;
	transition: width 1.2s cubic-bezier(.4, 0, .2, 1)
}

.wt-progress-labels {
	display: flex;
	justify-content: space-between;
	font-family: 'Fira Code', monospace;
	font-size: 11px;
	color: var(--muted)
}

/* timeline */
.wt-timeline {
	display: flex;
	align-items: flex-start;
	gap: 0;
	overflow-x: auto;
	padding: 8px 0 24px;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	scrollbar-color: #D9C6EC transparent;
}

.wt-timeline::-webkit-scrollbar {
	height: 6px
}

.wt-timeline::-webkit-scrollbar-thumb {
	background: #D9C6EC;
	border-radius: 3px
}

.wt-step {
	display: flex;
	align-items: flex-start;
	flex-shrink: 0;
	scroll-snap-align: start
}

.wt-step:last-child .wt-connector {
	display: none
}

.wt-step-num {
	font-family: 'Fira Code', monospace;
	font-weight: 500;
	font-size: 11px;
	color: var(--purple);
	background: #fff;
	border: 2px solid var(--purple);
	border-radius: 50%;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-top: 20px;
	box-shadow: 0 2px 8px rgba(91, 58, 155, .18);
	z-index: 1;
}

.wt-step-card {
	width: 260px;
	background: #fff;
	border-radius: 18px;
	padding: 20px;
	box-shadow: 0 8px 24px -8px rgba(91, 58, 155, .14), 0 0 0 1px rgba(91, 58, 155, .06);
	margin: 0 6px;
	transition: transform .2s ease, box-shadow .2s ease;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.wt-step-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 40px -12px rgba(91, 58, 155, .22), 0 0 0 2px var(--purple)
}

.wt-step-card.active {
	background: linear-gradient(160deg, var(--purple) 0%, #5B3A85 100%);
	box-shadow: 0 16px 40px -12px rgba(91, 58, 155, .45)
}

.wt-step-card.final {
	background: linear-gradient(160deg, #1C1228 0%, #2D1A45 100%)
}

.wt-card-week {
	font-family: 'Fira Code', monospace;
	font-size: 11px;
	color: var(--purple);
	letter-spacing: .5px;
	display: flex;
	align-items: center;
	gap: 8px
}

.wt-step-card.active .wt-card-week,
.wt-step-card.final .wt-card-week {
	color: rgba(255, 255, 255, .6)
}

.wt-midway {
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 10px;
	background: var(--yellow);
	color: var(--ink);
	padding: 2px 8px;
	border-radius: 999px
}

.wt-final-badge {
	font-family: 'Nunito', sans-serif;
	font-weight: 700;
	font-size: 10px;
	background: rgba(255, 255, 255, .18);
	color: #fff;
	padding: 2px 8px;
	border-radius: 999px
}

.wt-card-title {
	font-family: 'Nunito', sans-serif;
	font-weight: 900;
	font-size: 16px;
	color: var(--ink);
	line-height: 1.2
}

.wt-step-card.active .wt-card-title,
.wt-step-card.final .wt-card-title {
	color: #fff
}

.wt-card-desc {
	font-family: 'Nunito Sans', sans-serif;
	font-size: 13px;
	color: var(--muted);
	line-height: 1.5
}

.wt-step-card.active .wt-card-desc {
	color: rgba(255, 255, 255, .75)
}

.wt-step-card.final .wt-card-desc {
	color: rgba(255, 255, 255, .7)
}

/* code block */
.wt-code-block {
	background: #1C1228;
	border-radius: 10px;
	padding: 12px;
	font-family: 'Fira Code', monospace;
	font-size: 11.5px;
	line-height: 1.7
}

.wt-code-hdr {
	display: flex;
	align-items: center;
	gap: 5px;
	margin-bottom: 8px
}

.wt-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%
}

.wt-dot.r {
	background: #ff5f57
}

.wt-dot.y {
	background: #febc2e
}

.wt-dot.g {
	background: #28c840
}

.wt-code-label {
	font-size: 10px;
	color: #7A6F8E;
	margin-left: 4px
}

.wt-kw {
	color: #C48CFF
}

.wt-val {
	color: #7EE7A3
}

.wt-str {
	color: var(--yellow)
}

.wt-num {
	color: #F5A623
}

.wt-cm {
	color: #7A6F8E
}

.wt-code-line {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: #E7DFF5
}

/* skill chips */
.wt-skill-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 5px
}

.wt-chip {
	font-family: 'Nunito', sans-serif;
	font-weight: 700;
	font-size: 11px;
	padding: 3px 9px;
	border-radius: 999px;
	background: var(--purple-soft);
	color: var(--purple)
}

.wt-step-card.active .wt-chip {
	background: rgba(255, 255, 255, .18);
	color: #fff
}

.wt-step-card.final .wt-chip {
	background: rgba(255, 255, 255, .12);
	color: rgba(255, 255, 255, .85)
}

/* connector arrows */
.wt-connector {
	width: 44px;
	flex-shrink: 0;
	color: var(--purple);
	opacity: .35;
	margin-top: 80px;
	display: flex;
	align-items: center
}

.wt-connector svg {
	width: 44px;
	height: 22px
}

/* CTA row */
.wt-cta-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
	margin-top: 40px
}

.wt-cta {
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 15px;
	background: var(--yellow);
	color: var(--ink);
	padding: 14px 26px;
	border-radius: 12px;
	text-decoration: none;
	box-shadow: 0 3px 0 var(--yellow-deep), 0 10px 24px -8px rgba(229, 179, 18, .5);
	transition: transform .15s ease, box-shadow .15s ease;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.wt-cta:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 0 var(--yellow-deep), 0 14px 28px -8px rgba(229, 179, 18, .6)
}

.wt-note {
	font-family: 'Nunito', sans-serif;
	font-size: 13px;
	color: var(--muted);
	font-weight: 600
}

/* ---------- location picker modal ---------- */
.locpick-modal {
	position: fixed;
	inset: 0;
	z-index: 150;
	background: rgba(28, 18, 42, .78);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
	opacity: 0;
	transition: opacity .25s ease;
}

.locpick-modal.open {
	display: flex;
	opacity: 1
}

.locpick-inner {
	background: #fff;
	border-radius: 20px;
	width: min(680px, 100%);
	max-height: 85vh;
	overflow-y: auto;
	box-shadow: 0 40px 80px -20px rgba(0, 0, 0, .45);
	display: flex;
	flex-direction: column;
	transform: scale(.97);
	transition: transform .25s ease;
}

.locpick-modal.open .locpick-inner {
	transform: scale(1)
}

.locpick-hdr {
	padding: 22px 24px 16px;
	border-bottom: 1px solid #EEE6F5;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	position: sticky;
	top: 0;
	background: #fff;
	z-index: 1;
	border-radius: 20px 20px 0 0;
}

.locpick-online-pill {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 10px;
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 13px;
	color: var(--ink);
	background: var(--yellow);
	padding: 8px 16px;
	border-radius: 999px;
	text-decoration: none;
	box-shadow: 0 2px 0 var(--yellow-deep), 0 6px 16px rgba(229, 179, 18, .35);
	transition: all .15s ease;
}

.locpick-online-pill:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 0 var(--yellow-deep), 0 10px 20px rgba(229, 179, 18, .45)
}

.locpick-eyebrow {
	font-family: 'Fira Code', monospace;
	font-size: 11px;
	color: var(--purple);
	letter-spacing: .5px;
	margin-bottom: 4px
}

.locpick-title {
	font-family: 'Nunito', sans-serif;
	font-weight: 900;
	font-size: 20px;
	color: var(--ink);
	margin: 0
}

.locpick-close {
	background: var(--purple-soft);
	color: var(--purple);
	border: 0;
	width: 32px;
	height: 32px;
	border-radius: 8px;
	cursor: pointer;
	font-size: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0
}

.locpick-close:hover {
	background: var(--purple);
	color: #fff
}

.locpick-body {
	padding: 16px 24px;
	display: flex;
	flex-direction: column;
	gap: 8px
}

.locpick-county {
	font-family: 'Nunito', sans-serif;
	font-weight: 700;
	font-size: 11px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--muted);
	padding: 8px 0 4px;
	border-bottom: 1px solid #F3EBFA;
	margin-bottom: 4px
}

.locpick-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	border-radius: 14px;
	background: #FAFAFC;
	border: 1.5px solid transparent;
	cursor: pointer;
	text-decoration: none;
	color: inherit;
	transition: all .15s ease;
}

.locpick-card:hover {
	background: #fff;
	border-color: var(--purple);
	box-shadow: 0 8px 20px -8px rgba(91, 58, 155, .2);
	transform: translateY(-1px)
}

.locpick-avatar {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Nunito', sans-serif;
	font-weight: 900;
	font-size: 16px;
	color: #fff;
}

.locpick-info {
	flex: 1;
	min-width: 0
}

.locpick-name {
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 15px;
	color: var(--ink)
}

.locpick-venue {
	font-family: 'Nunito Sans', sans-serif;
	font-size: 12px;
	color: var(--muted);
	margin-top: 1px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis
}

.locpick-right {
	text-align: right;
	flex-shrink: 0
}

.locpick-start {
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 13px;
	color: var(--ink)
}

.locpick-when {
	font-family: 'Nunito Sans', sans-serif;
	font-size: 11px;
	color: var(--muted);
	margin-top: 2px
}

.locpick-arrow {
	color: var(--purple);
	font-size: 18px;
	margin-left: 8px;
	transition: transform .15s ease
}

.locpick-card:hover .locpick-arrow {
	transform: translateX(4px)
}

.locpick-empty {
	font-family: 'Nunito Sans', sans-serif;
	font-size: 14px;
	color: var(--muted);
	text-align: center;
	padding: 24px 0
}

.locpick-foot {
	padding: 14px 24px;
	border-top: 1px solid #EEE6F5;
	font-family: 'Nunito', sans-serif;
	font-size: 13px;
	color: var(--muted);
	text-align: center
}

.locpick-foot a {
	color: var(--purple);
	font-weight: 700;
	text-decoration: none
}

.locpick-foot a:hover {
	text-decoration: underline
}

/* ---------- video modal ---------- */
.video-modal {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(28, 18, 42, .78);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	padding: 24px;
	opacity: 0;
	transition: opacity .25s ease;
}

.video-modal.open {
	display: flex;
	opacity: 1
}

.video-modal .wrap {
	position: relative;
	width: min(960px, 100%);
	aspect-ratio: 16/9;
	background: #000;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 40px 80px -20px rgba(0, 0, 0, .6);
	transform: scale(.96);
	transition: transform .25s ease;
}

.video-modal.open .wrap {
	transform: scale(1)
}

.video-modal iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block
}

.video-modal .close {
	position: absolute;
	top: -14px;
	right: -14px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #fff;
	color: var(--ink);
	border: 0;
	cursor: pointer;
	font-size: 22px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 20px rgba(0, 0, 0, .35);
	transition: transform .15s ease;
}

.video-modal .close:hover {
	transform: rotate(90deg)
}

/* trust strip */
.trust {
	display: flex;
	gap: 18px;
	align-items: center;
	flex-wrap: wrap;
	padding-top: 20px;
	border-top: 1px dashed #E3D7F1;
}

.trust-item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: 'Nunito', sans-serif;
	font-size: 13px;
	color: var(--ink);
	font-weight: 700
}

.trust-item .icn {
	width: 26px;
	height: 26px;
	border-radius: 8px;
	background: var(--purple-soft);
	color: var(--purple);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 900;
	font-size: 13px;
	font-family: 'Nunito', sans-serif;
}

.trust-item .sub {
	font-size: 11px;
	color: var(--muted);
	font-weight: 500;
	margin: 0;
	font-family: 'Nunito Sans', sans-serif;
	line-height: 1.2
}

.trust-item .lbl {
	line-height: 1.1
}

.trust-item .lbl small {
	display: block;
	font-size: 11px;
	color: var(--muted);
	font-weight: 500;
	font-family: 'Nunito Sans', sans-serif
}

.stars {
	color: var(--yellow-deep);
	letter-spacing: 1px;
	font-size: 12px;
	margin-top: 2px
}

/* floating sticker cards on the right side of hero */
.sticker {
	position: absolute;
	z-index: 3;
	background: #fff;
	border-radius: 14px;
	padding: 12px 14px;
	display: flex;
	align-items: center;
	gap: 10px;
	box-shadow: 0 12px 30px -10px rgba(28, 18, 42, .45), 0 2px 6px rgba(28, 18, 42, .1);
	font-family: 'Nunito', sans-serif;
	animation: float 6s ease-in-out infinite;
}

.sticker .emoji {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: var(--purple-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.sticker .emoji svg {
	width: 20px;
	height: 20px;
	stroke: var(--purple);
	fill: none;
	stroke-width: 2
}

.sticker .t1 {
	font-weight: 800;
	font-size: 13px;
	color: var(--ink);
	line-height: 1.1
}

.sticker .t2 {
	font-family: 'Nunito Sans', sans-serif;
	font-size: 11.5px;
	color: var(--muted);
	margin-top: 2px
}

.sticker.a {
	top: 62px;
	right: 80px;
	animation-delay: -1s
}

.sticker.b {
	bottom: 86px;
	right: 42px
}

.sticker.b .emoji {
	background: #FFF4CC
}

.sticker.b .emoji svg {
	stroke: var(--yellow-deep)
}

@keyframes float {

	0%,
	100% {
		transform: translateY(0)
	}

	50% {
		transform: translateY(-6px)
	}
}

/* code chip – lower-left of the photo column, overlapping panel edge */
.code-chip {
	position: absolute;
	z-index: 3;
	left: calc(540px + 32px - 26px);
	bottom: 56px;
	background: #1C1228;
	border-radius: 12px;
	padding: 12px 14px;
	font-family: 'Fira Code', monospace;
	font-size: 12px;
	color: #E7DFF5;
	box-shadow: 0 16px 36px -12px rgba(0, 0, 0, .55);
	min-width: 220px;
}

.code-chip .hdr {
	display: flex;
	gap: 5px;
	margin-bottom: 8px
}

.code-chip .hdr span {
	width: 8px;
	height: 8px;
	border-radius: 50%
}

.code-chip .hdr .r {
	background: #ff5f57
}

.code-chip .hdr .y {
	background: #febc2e
}

.code-chip .hdr .g {
	background: #28c840
}

.code-chip .ln {
	white-space: nowrap
}

.code-chip .kw {
	color: #C48CFF
}

.code-chip .fn {
	color: #F5C518
}

.code-chip .st {
	color: #7EE7A3
}

.code-chip .cm {
	color: #7A6F8E
}

.caret {
	display: inline-block;
	width: 7px;
	height: 14px;
	background: #F5C518;
	vertical-align: -2px;
	margin-left: 2px;
	animation: blink 1s steps(1) infinite
}

@keyframes blink {
	50% {
		opacity: 0
	}
}

/* ---------- tweaks panel ---------- */
.tweaks {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 50;
	width: 280px;
	background: #fff;
	border-radius: 14px;
	border: 1px solid #E3D7F1;
	box-shadow: 0 18px 40px -12px rgba(45, 25, 80, .35);
	font-family: 'Nunito Sans', sans-serif;
	font-size: 13px;
	color: var(--ink);
	display: none;
	overflow: hidden;
}

.tweaks.open {
	display: block
}

.tweaks h3 {
	font-family: 'Nunito', sans-serif;
	font-weight: 800;
	font-size: 13px;
	padding: 12px 14px;
	background: var(--purple);
	color: #fff;
	display: flex;
	justify-content: space-between;
	align-items: center
}

.tweaks h3 button {
	background: rgba(255, 255, 255, .2);
	color: #fff;
	border: 0;
	width: 22px;
	height: 22px;
	border-radius: 6px;
	cursor: pointer;
	font-size: 14px;
	line-height: 1
}

.tw-row {
	padding: 10px 14px;
	border-bottom: 1px solid #F3EBFA
}

.tw-row:last-child {
	border-bottom: 0
}

.tw-row label {
	display: block;
	font-weight: 700;
	font-size: 11.5px;
	color: var(--muted);
	margin-bottom: 6px;
	letter-spacing: .3px;
	text-transform: uppercase
}

.tw-row .seg {
	display: flex;
	background: #F3EBFA;
	border-radius: 8px;
	padding: 3px;
	gap: 3px
}

.tw-row .seg button {
	flex: 1;
	border: 0;
	background: transparent;
	padding: 6px 8px;
	border-radius: 6px;
	font-family: 'Nunito', sans-serif;
	font-weight: 700;
	font-size: 12px;
	color: var(--purple);
	cursor: pointer
}

.tw-row .seg button.on {
	background: #fff;
	color: var(--ink);
	box-shadow: 0 1px 2px rgba(0, 0, 0, .06)
}

.tw-row input[type=range] {
	width: 100%
}

/* responsive */
@media (max-width:980px) {
	.hero-grid {
		grid-template-columns: 1fr;
		min-height: auto;
		padding: 40px 20px
	}

	.panel {
		padding: 28px
	}

	.sticker,
	.code-chip {
		display: none
	}

	.links {
		display: none
	}

	.util .left span:nth-child(2) {
		display: none
	}
}

/* ---- Tablet (max 768px) ---- */
@media (max-width:768px) {

	/* utility bar */
	.util {
		padding: 6px 16px;
		font-size: 12px
	}

	.util .left {
		gap: 12px
	}

	.util .left span:nth-child(3) {
		display: none
	}

	/* nav */
	.nav {
		padding: 12px 16px
	}

	.brand .mark-img {
		height: 25px
	}

	.brand .word-img {
		height: 24px
	}

	.nav-cta .btn-ghost {
		display: none
	}

	/* hero */
	.hero-grid {
		padding: 28px 16px
	}

	.panel {
		padding: 22px 20px;
		border-radius: 16px
	}

	h1.headline {
		font-size: clamp(28px, 7vw, 44px)
	}

	.sub {
		font-size: 15px
	}

	.btn-primary,
	.btn-secondary {
		font-size: 14px;
		padding: 12px 16px
	}

	.trust {
		gap: 12px
	}

	/* locations */
	.loc-container,
	.wt-container,
	.tst-container {
		padding: 0 16px
	}

	.locations,
	.walkthrough,
	.testimonials {
		padding: 52px 0 60px
	}

	.county-filter {
		gap: 6px
	}

	.county-chip {
		font-size: 12px;
		padding: 6px 12px
	}

	.loc-toggle {
		transform: none;
		left: 0
	}

	/* walkthrough */
	.wt-tabs {
		gap: 6px
	}

	.wt-tab {
		font-size: 12px;
		padding: 8px 14px
	}

	.wt-step-card {
		width: 220px
	}

	/* testimonials */
	.tst-title,
	.wt-title,
	.loc-title {
		font-size: clamp(26px, 5vw, 38px)
	}

	.tst-summary {
		flex-direction: column;
		gap: 10px;
		text-align: center
	}
}

/* ---- Mobile (max 480px) ---- */
@media (max-width:480px) {

	/* utility bar */
	.util {
		padding: 5px 12px
	}

	.util .left span:nth-child(1) {
		display: none
	}

	.util .left span:nth-child(2) {
		display: flex
	}

	/* nav */
	.brand .mark-img {
		height: 21px
	}

	.brand .word-img {
		height: 20px
	}

	.brand {
		gap: 8px
	}

	.icon-btn {
		width: 34px;
		height: 34px
	}

	/* hero panel */
	.ctas {
		flex-direction: column;
		align-items: stretch
	}

	.btn-primary,
	.btn-secondary {
		text-align: center;
		justify-content: center
	}

	.trust {
		flex-direction: column;
		gap: 10px
	}

	.trust-item:nth-child(3) {
		display: none
	}

	/* section heads */
	.loc-head,
	.tst-head,
	.wt-head {
		margin-bottom: 24px
	}

	.wt-sub,
	.tst-sub,
	.loc-sub {
		font-size: 14px
	}

	/* location filter */
	.county-filter {
		justify-content: flex-start;
		overflow-x: auto;
		flex-wrap: nowrap;
		padding-bottom: 4px
	}

	.county-chip {
		white-space: nowrap;
		flex-shrink: 0
	}

	.loc-map {
		border-radius: 12px
	}

	/* walkthrough tabs */
	.wt-tabs {
		justify-content: flex-start;
		overflow-x: auto;
		flex-wrap: nowrap;
		padding-bottom: 4px
	}

	.wt-tab {
		white-space: nowrap;
		flex-shrink: 0
	}

	.wt-step-card {
		width: 240px
	}

	/* progress labels */
	.wt-progress-labels {
		font-size: 10px
	}

	/* testimonials */
	.tst-card {
		padding: 20px
	}

	.tst-summary-link {
		font-size: 12px;
		padding: 6px 12px
	}

	/* online grid */
	.online-grid {
		grid-template-columns: 1fr
	}
}