/*
    Theme Name: GeekHQ Theme
    Author: GeekHQ
    Author URI: https://geekhq.co.nz
    Description: A custom theme for GeekHQ.
    Version: 1.0.0
    License: GNU General Public License v2 or later
    License URI: https://www.gnu.org/licenses/gpl-2.0.html
    Text Domain: geekhq-theme
*/


/* --- Reset ----------------------------------------------------------------------- */

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

::selection {
    color: var(--color-neutral-50);
    background: var(--color-primary-800);
}	

::-moz-selection {
    color: var(--color-neutral-50);
    background: var(--color-primary-800);
}	

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* --- Colors ----------------------------------------------------------------------- */

:root {
    --color-primary-50: #f2f3fe;
    --color-primary-100: #e4e7fc;
    --color-primary-200: #cacff9;
    --color-primary-300: #abb5f6;
    --color-primary-400: #8f9df4;
    --color-primary-500: #7286f1;
    --color-primary-600: #516fed;
    --color-primary-700: #2f59df;
    --color-primary-800: #2346b3;
    --color-primary-900: #1a368e;
    --color-primary-950: #0b1d54;
    
    --color-neutral-50: #f1f1f1;
    --color-neutral-100: #e5e5e5;
    --color-neutral-200: #c9c9c9;
    --color-neutral-300: #b0b0b0;
    --color-neutral-400: #969696;
    --color-neutral-500: #7f7f7f;
    --color-neutral-600: #666666;
    --color-neutral-700: #505050;
    --color-neutral-800: #393939;
    --color-neutral-900: #262626;
    --color-neutral-950: #1b1b1b;
    
    --color-white: #ffffff;
    --color-black: #000000;
    
    --color-border: rgba(0, 0, 0, 0.1);
}

.bg-primary-50 { background: var(--color-primary-50); }
.bg-primary-100 { background: var(--color-primary-100); }
.bg-primary-200 { background: var(--color-primary-200); }
.bg-primary-300 { background: var(--color-primary-300); }
.bg-primary-400 { background: var(--color-primary-400); }
.bg-primary-500 { background: var(--color-primary-500); }
.bg-primary-600 { background: var(--color-primary-600); }
.bg-primary-700 { background: var(--color-primary-700); }
.bg-primary-800 { background: var(--color-primary-800); }
.bg-primary-900 { background: var(--color-primary-900); }
.bg-primary-950 { background: var(--color-primary-950); }

.bg-neutral-50 { background: var(--color-neutral-50); }
.bg-neutral-100 { background: var(--color-neutral-100); }
.bg-neutral-200 { background: var(--color-neutral-200); }
.bg-neutral-300 { background: var(--color-neutral-300); }
.bg-neutral-400 { background: var(--color-neutral-400); }
.bg-neutral-500 { background: var(--color-neutral-500); }
.bg-neutral-600 { background: var(--color-neutral-600); }
.bg-neutral-700 { background: var(--color-neutral-700); }
.bg-neutral-800 { background: var(--color-neutral-800); }
.bg-neutral-900 { background: var(--color-neutral-900); }
.bg-neutral-950 { background: var(--color-neutral-950); }

.bg-success-500 { background: var(--color-success-500); }
.bg-success-600 { background: var(--color-success-600); }
.bg-success-700 { background: var(--color-success-700); }

.bg-warning-500 { background: var(--color-warning-500); }
.bg-warning-600 { background: var(--color-warning-600); }
.bg-warning-700 { background: var(--color-warning-700); }

.bg-danger-500 { background: var(--color-danger-500); }
.bg-danger-600 { background: var(--color-danger-600); }
.bg-danger-700 { background: var(--color-danger-700); }

.text-primary-50, .text-primary-50 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var --color-primary-50); }
.text-primary-100, .text-primary-100 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-primary-100); }
.text-primary-200, .text-primary-200 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-primary-200); }
.text-primary-300, .text-primary-300 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-primary-300); }
.text-primary-400, .text-primary-400 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-primary-400); }
.text-primary-500, .text-primary-500 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-primary-500); }
.text-primary-600, .text-primary-600 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-primary-600); }
.text-primary-700, .text-primary-700 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-primary-700); }
.text-primary-800, .text-primary-800 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-primary-800); }
.text-primary-900, .text-primary-900 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-primary-900); }
.text-primary-950, .text-primary-950 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-primary-950); }

.text-neutral-50, .text-neutral-50 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-neutral-50); }
.text-neutral-100, .text-neutral-100 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-neutral-100); }
.text-neutral-200, .text-neutral-200 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-neutral-200); }
.text-neutral-300, .text-neutral-300 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-neutral-300); }
.text-neutral-400, .text-neutral-400 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-neutral-400); }
.text-neutral-500, .text-neutral-500 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-neutral-500); }
.text-neutral-600, .text-neutral-600 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-neutral-600); }
.text-neutral-700, .text-neutral-700 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-neutral-700); }
.text-neutral-800, .text-neutral-800 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-neutral-800); }
.text-neutral-900, .text-neutral-900 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-neutral-900); }
.text-neutral-950, .text-neutral-950 :is(h1, h2, h3, h4, h5, h6, p, div) { color: var(--color-neutral-950); }


/* --- Containers ----------------------------------------------------------------- */
.container-xsm { width: 100% !important; max-width: 25rem !important; }
.container-sm { width: 100% !important; max-width: 40rem !important; }
.container-md { width: 100% !important; max-width: 55rem !important; }
.container-lg { width: 100% !important; max-width: 70rem !important; }
.container-xlg { width: 100% !important; max-width: 85rem !important; }


/* --- Padding Y (Top & Bottom) --------------------------------------------------- */
.py-1 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.py-2 { padding-top: 2rem !important; padding-bottom: 2rem !important; }
.py-3 { padding-top: 3rem !important; padding-bottom: 3rem !important; }
.py-4 { padding-top: 4rem !important; padding-bottom: 4rem !important; }
.py-5 { padding-top: 5rem !important; padding-bottom: 5rem !important; }
.py-6 { padding-top: 6rem !important; padding-bottom: 6rem !important; }
.py-7 { padding-top: 7rem !important; padding-bottom: 7rem !important; }
.py-8 { padding-top: 8rem !important; padding-bottom: 8rem !important; }
.py-9 { padding-top: 9rem !important; padding-bottom: 9rem !important; }

/* --- Padding X (Left & Right) --------------------------------------------------- */
.px-1 { padding-left: 1rem !important; padding-right: 1rem !important; }
.px-2 { padding-left: 2rem !important; padding-right: 2rem !important; }
.px-3 { padding-left: 3rem !important; padding-right: 3rem !important; }
.px-4 { padding-left: 4rem !important; padding-right: 4rem !important; }
.px-5 { padding-left: 5rem !important; padding-right: 5rem !important; }
.px-6 { padding-left: 6rem !important; padding-right: 6rem !important; }
.px-7 { padding-left: 7rem !important; padding-right: 7rem !important; }
.px-8 { padding-left: 8rem !important; padding-right: 8rem !important; }
.px-9 { padding-left: 9rem !important; padding-right: 9rem !important; }

/* --- Individual Padding --------------------------------------------------------- */
.pt-1 { padding-top: 1rem !important; }
.pt-2 { padding-top: 2rem !important; }
.pt-3 { padding-top: 3rem !important; }
.pt-4 { padding-top: 4rem !important; }
.pt-5 { padding-top: 5rem !important; }
.pt-6 { padding-top: 6rem !important; }
.pt-7 { padding-top: 7rem !important; }
.pt-8 { padding-top: 8rem !important; }
.pt-9 { padding-top: 9rem !important; }

.pb-1 { padding-bottom: 1rem !important; }
.pb-2 { padding-bottom: 2rem !important; }
.pb-3 { padding-bottom: 3rem !important; }
.pb-4 { padding-bottom: 4rem !important; }
.pb-5 { padding-bottom: 5rem !important; }
.pb-6 { padding-bottom: 6rem !important; }
.pb-7 { padding-bottom: 7rem !important; }
.pb-8 { padding-bottom: 8rem !important; }
.pb-9 { padding-bottom: 9rem !important; }

.pl-1 { padding-left: 1rem !important; }
.pl-2 { padding-left: 2rem !important; }
.pl-3 { padding-left: 3rem !important; }
.pl-4 { padding-left: 4rem !important; }
.pl-5 { padding-left: 5rem !important; }
.pl-6 { padding-left: 6rem !important; }
.pl-7 { padding-left: 7rem !important; }
.pl-8 { padding-left: 8rem !important; }
.pl-9 { padding-left: 9rem !important; }

.pr-1 { padding-right: 1rem !important; }
.pr-2 { padding-right: 2rem !important; }
.pr-3 { padding-right: 3rem !important; }
.pr-4 { padding-right: 4rem !important; }
.pr-5 { padding-right: 5rem !important; }
.pr-6 { padding-right: 6rem !important; }
.pr-7 { padding-right: 7rem !important; }
.pr-8 { padding-right: 8rem !important; }
.pr-9 { padding-right: 9rem !important; }

/* --- Margin Y (Top & Bottom) ---------------------------------------------------- */
.my-1 { margin-top: 1rem !important; margin-bottom: 1rem !important; }
.my-2 { margin-top: 2rem !important; margin-bottom: 2rem !important; }
.my-3 { margin-top: 3rem !important; margin-bottom: 3rem !important; }
.my-4 { margin-top: 4rem !important; margin-bottom: 4rem !important; }
.my-5 { margin-top: 5rem !important; margin-bottom: 5rem !important; }
.my-6 { margin-top: 6rem !important; margin-bottom: 6rem !important; }
.my-7 { margin-top: 7rem !important; margin-bottom: 7rem !important; }
.my-8 { margin-top: 8rem !important; margin-bottom: 8rem !important; }
.my-9 { margin-top: 9rem !important; margin-bottom: 9rem !important; }

/* --- Margin X (Left & Right) ---------------------------------------------------- */
.mx-1 { margin-left: 1rem !important; margin-right: 1rem !important; }
.mx-2 { margin-left: 2rem !important; margin-right: 2rem !important; }
.mx-3 { margin-left: 3rem !important; margin-right: 3rem !important; }
.mx-4 { margin-left: 4rem !important; margin-right: 4rem !important; }
.mx-5 { margin-left: 5rem !important; margin-right: 5rem !important; }
.mx-6 { margin-left: 6rem !important; margin-right: 6rem !important; }
.mx-7 { margin-left: 7rem !important; margin-right: 7rem !important; }
.mx-8 { margin-left: 8rem !important; margin-right: 8rem !important; }
.mx-9 { margin-left: 9rem !important; margin-right: 9rem !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }

/* --- Individual Margins --------------------------------------------------------- */
.mt-1 { margin-top: 1rem !important; }
.mt-2 { margin-top: 2rem !important; }
.mt-3 { margin-top: 3rem !important; }
.mt-4 { margin-top: 4rem !important; }
.mt-5 { margin-top: 5rem !important; }
.mt-6 { margin-top: 6rem !important; }
.mt-7 { margin-top: 7rem !important; }
.mt-8 { margin-top: 8rem !important; }
.mt-9 { margin-top: 9rem !important; }

.mb-1 { margin-bottom: 1rem !important; }
.mb-2 { margin-bottom: 2rem !important; }
.mb-3 { margin-bottom: 3rem !important; }
.mb-4 { margin-bottom: 4rem !important; }
.mb-5 { margin-bottom: 5rem !important; }
.mb-6 { margin-bottom: 6rem !important; }
.mb-7 { margin-bottom: 7rem !important; }
.mb-8 { margin-bottom: 8rem !important; }
.mb-9 { margin-bottom: 9rem !important; }

.ml-1 { margin-left: 1rem !important; }
.ml-2 { margin-left: 2rem !important; }
.ml-3 { margin-left: 3rem !important; }
.ml-4 { margin-left: 4rem !important; }
.ml-5 { margin-left: 5rem !important; }
.ml-6 { margin-left: 6rem !important; }
.ml-7 { margin-left: 7rem !important; }
.ml-8 { margin-left: 8rem !important; }
.ml-9 { margin-left: 9rem !important; }

.mr-1 { margin-right: 1rem !important; }
.mr-2 { margin-right: 2rem !important; }
.mr-3 { margin-right: 3rem !important; }
.mr-4 { margin-right: 4rem !important; }
.mr-5 { margin-right: 5rem !important; }
.mr-6 { margin-right: 6rem !important; }
.mr-7 { margin-right: 7rem !important; }
.mr-8 { margin-right: 8rem !important; }
.mr-9 { margin-right: 9rem !important; }

/* --- Borders -------------------------------------------------------------------- */

:root {
--border-radius-sm: 6px;
--border-radius-md: 12px;
--border-radius-lg: 24px;
}

.border-top { border-top: 1px solid var(--color-border) !important; }
.border-bottom { border-bottom: 1px solid var(--color-border) !important; }
.border-left { border-left: 1px solid var(--color-border) !important; }
.border-right { border-right: 1px solid var(--color-border) !important; }
.border-all { border: 1px solid var(--color-border) !important; }

.border-radius-sm {	border-radius: 0.5rem !important; }
.border-radius-md {	border-radius: 1rem !important; }
.border-radius-lg {	border-radius: 2rem !important; }
.border-radius-xlg {	border-radius: 4rem !important; }


/* --- Typography ----------------------------------------------------------------- */

:root {
--font-display: "DM Serif Display", Georgia, serif;
--font-normal: "DM Sans", Arial, sans-serif;

--font-size-h1: clamp(3rem, 2.7273rem + 1.0909vi, 3.6rem);
--font-size-h2: clamp(2.25rem, 2.0455rem + 0.8182vi, 2.7rem);
--font-size-h3: clamp(1.875rem, 1.7045rem + 0.6818vi, 2.25rem);
--font-size-h4: clamp(1.5rem, 1.3636rem + 0.5455vi, 1.8rem);
--font-size-h5: clamp(1.25rem, 1.1364rem + 0.4545vi, 1.5rem);
--font-size-h6: 1.1rem;
}

.font-normal { font-family: var(--font-normal); }
.font-display { font-family: var(--font-display); }

.text-size-h1,
.text-size-h1 :is(h1, h2, h3, h4, h5, h6, p , div) { 
font-size: var(--font-size-h1); 
}
.text-size-h2,
.text-size-h2 :is(h1, h2, h3, h4, h5, h6, p , div){ 
font-size: var(--font-size-h2); 
}

.text-size-h3,
.text-size-h3 :is(h1, h2, h3, h4, h5, h6, p , div){ 
font-size: var(--font-size-h3); 
}

.text-size-h4,
.text-size-h4 :is(h1, h2, h3, h4, h5, h6, p , div){ 
font-size: var(--font-size-h4); 
}

.text-size-h5,
.text-size-h5 :is(h1, h2, h3, h4, h5, h6, p , div){ 
font-size: var(--font-size-h5); 
}

.text-size-h6,
.text-size-h6 :is(h1, h2, h3, h4, h5, h6, p , div){ 
font-size: var(--font-size-h6); 
}

.text-size-xs { font-size: 0.8rem !important; }
.text-size-sm { }
.text-size-md { }
.text-size-lg { }

.text-weight-100,
.text-weight-100 :is(h1, h2, h3, h4, h5, h6, p , div) { 
font-weight: 100; 
}

.text-weight-200,
.text-weight-200 :is(h1, h2, h3, h4, h5, h6, p , div) { 
font-weight: 200; 
}

.text-weight-300,
.text-weight-300 :is(h1, h2, h3, h4, h5, h6, p , div) { 
font-weight: 300; 
}

.text-weight-400,
.text-weight-400 :is(h1, h2, h3, h4, h5, h6, p , div) { 
font-weight: 400; 
}

.text-weight-500,
.text-weight-500 :is(h1, h2, h3, h4, h5, h6, p , div) { 
font-weight: 500; 
}

.text-weight-600,
.text-weight-600 :is(h1, h2, h3, h4, h5, h6, p , div) { 
font-weight: 600; 
}

.text-weight-700,
.text-weight-700 :is(h1, h2, h3, h4, h5, h6, p , div) { 
font-weight: 700; 
}

.text-weight-800,
.text-weight-800 :is(h1, h2, h3, h4, h5, h6, p , div) { 
font-weight: 800; 
}

.text-weight-900,
.text-weight-900 :is(h1, h2, h3, h4, h5, h6, p , div) { 
font-weight: 900; 
}

.text-align-left,
.text-align-left :is(h1, h2, h3, h4, h5, h6, p , div) { 
text-align: left !important; 
}

.text-align-center,
.text-align-center :is(h1, h2, h3, h4, h5, h6, p , div) { 
text-align: center !important;
}

.text-align-right,
.text-align-right :is(h1, h2, h3, h4, h5, h6, p , div) { 
text-align: right !important;
}

.text-spacing-xs { letter-spacing: -0.025ch; }
.text-spacing-sm { letter-spacing: -0.01ch; }
.text-spacing-normal { letter-spacing: 0; }
.text-spacing-md { letter-spacing: 0.01ch; }
.text-spacing-lg { letter-spacing: 0.025ch; }

.text-transform-normal { text-transform: normal !important; }
.text-transform-lowercase { text-transform: lowercase !important; }
.text-transform-uppercase { text-transform: uppercase !important; }




h1, h2, h3, h4, h5, h6 {
color: var(--color-ink);
font-weight: 500;
letter-spacing: -0.03ch;
margin-bottom: 0.5rem;
}

.h1, .h2, .h3, .h4, .h5, .h6 {
color: var(--color-ink) !important;
font-weight: 500 !important;
letter-spacing: -0.03ch !important;
margin-bottom: 0.5rem;
}

h1 {
font-family: var(--font-display);
font-size: var(--font-h1-size);
line-height: 110%;
}

.h1 :is(h1, h2, h3, h4, h5, h6, p, div) {
font-family: var(--font-display) !important;
font-size: var(--font-h1-size) !important;
line-height: 110% !important;
}

h2 {
font-family: var(--font-display);
font-size: var(--font-h2-size);
line-height: 110%;
}

.h2 :is(h1, h2, h3, h4, h5, h6, p , div) {
font-size: var(--font-h2-size) !important;
line-height: 110% !important;
}

h3 {
font-family: var(--font-display);
font-size: var(--font-h3-size);
line-height: 120%;
}

.h3 :is(h1, h2, h3, h4, h5, h6, p , div) {
font-size: var(--font-h3-size) !important;
line-height: 120% !important;
}

h4 {
font-family: var(--font-normal);
font-size: var(--font-h4-size);
line-height: 120%;
}

.h4 :is(h1, h2, h3, h4, h5, h6, p , div) {
font-family: var(--font-normal) !important;
font-size: var(--font-h4-size) !important;
line-height: 120% !important;
}

h5 {
font-family: var(--font-normal);
font-size: var(--font-h5-size);
line-height: 120%;
}

.h5 :is(h1, h2, h3, h4, h5, h6, p , div) {
font-size: var(--font-h5-size) !important;
line-height: 120% !important;
}

h6 {
font-family: var(--font-normal);
font-size: var(--font-h6-size);
line-height: 120%;
}

.h6 :is(h1, h2, h3, h4, h5, h6, p , div) {
font-size: var(--font-h6-size) !important;
line-height: 120% !important;
}






.box-shadow-sm { box-shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, rgba(0, 0, 0, 0.3) 0px 1px 3px -1px; }




/* ------- Icons ------------------------------------------------------ */

.icon-sm, 
.icon-sm svg {
width: 1rem !important;
height: 1rem !important;
}

.icon-md, 
.icon-md svg  {
width: 1.75rem !important;
height: 1.75rem !important;
}

.icon-lg, 
.icon-lg svg  {
width: 2.5rem !important;
height: 2.5rem !important;
}




/* ------- Custom ------------------------------------------------------ */

/* ------- Custom: Reset ------------------------------------------------------ */

html, body { font-size: 16px; }
body { background: var(--color-white); }

/* ------- Custom: Lenis Scroll ------------------------------------------------------ */

html.lenis {
height: auto;
}
.lenis.lenis-smooth {
scroll-behavior: auto;
}
.lenis.lenis-smooth [data-lenis-prevent] {
overscroll-behavior: contain;
}
.lenis.lenis-stopped {
overflow: hidden;
}

/* ------- Custom: Typography ------------------------------------------------------ */

body {
color: var(--color-neutral-600);
font-family: var(--font-normal);
font-size: 1rem;
font-weight: 400;
line-height: 150%;
}

h1, h2, h3, h4, h5, h6 {
color: var(--color-neutral-950);
font-weight: 500;
letter-spacing: -0.025ch;
margin-bottom: 0.5rem;
}


.h1, .h2, .h3, .h4, .h5, .h6 {
color: var(--color-neutral-950);
font-weight: 500 !important;
letter-spacing: -0.03ch !important;
margin-bottom: 0.5rem;
}

h1 {
font-family: var(--font-display);
font-size: var(--font-size-h1);
line-height: 110%;
}

.h1 :is(h1, h2, h3, h4, h5, h6, p, div) {
font-family: var(--font-display) !important;
font-size: var(--font-size-h1) !important;
line-height: 110% !important;
}

h2 {
font-family: var(--font-display);
font-size: var(--font-size-h2);
line-height: 110%;
}

.h2 :is(h1, h2, h3, h4, h5, h6, p , div) {
font-size: var(--font-size-h2) !important;
line-height: 110% !important;
}

h3 {
font-family: var(--font-display);
font-size: var(--font-size-h3);
line-height: 120%;
}

.h3 :is(h1, h2, h3, h4, h5, h6, p , div) {
font-size: var(--font-size-h3) !important;
line-height: 120% !important;
}

h4 {
font-family: var(--font-normal);
font-size: var(--font-size-h4);
line-height: 120%;
}

.h4 :is(h1, h2, h3, h4, h5, h6, p , div) {
font-family: var(--font-normal) !important;
font-size: var(--font-size-h4) !important;
line-height: 120% !important;
}

h5 {
font-family: var(--font-normal);
font-size: var(--font-size-h5);
line-height: 120%;
}

.h5 :is(h1, h2, h3, h4, h5, h6, p , div) {
font-size: var(--font-size-h5) !important;
line-height: 120% !important;
}

h6 {
font-family: var(--font-normal);
font-size: var(--font-size-h6);
line-height: 120%;
}

.h6 :is(h1, h2, h3, h4, h5, h6, p , div) {
font-size: var(--font-size-h6) !important;
line-height: 120% !important;
}

p {
margin-block-start: 0;
margin-block-end: 1rem;
}

a {
color: var(--color-neutral-500);
text-decoration: underline;
transition: color 0.3s ease;
}

a:hover {
color: var(--color-primary-800);
}

.font-display,
.font-display :is(h1, h2, h3, h4, h5, h6, p , div) {
font-family: var(--font-display) !important;
}

.font-normal,
.font-normal :is(h1, h2, h3, h4, h5, h6, p , div){
font-family: var(--font-normal) !important;
}

.text-italic {
font-style: italic !important;
}

.text-muted {
opacity: 0.6;
}





/* ------- Custom: Forms ------------------------------------------------------ */

input, textarea, select {
font-family: var(--font-normal) !important;
border: 1px solid var(--color-border) !important;
border-radius: var(--border-radius-sm) !important;
padding: 0.75rem !important;
}

label {
display: block;
font-weight: 600;
font-size: 0.9rem;
margin-bottom: 0.5rem;
}

button,
button.elementor-button,
a.elementor-button {
border-radius: var(--border-radius-md);
font-family: var(--font-normal) !important;
font-size: 1rem !important;
font-weight: 600;
padding: 10px 18px;
text-decoration: none !important;
transition: all 0.3s ease, fill 0.3s ease;
background: var(--color-primary-900);
color: var(--color-neutral-50);
border: 1px solid var(--color-primary-900);
box-shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, rgba(0, 0, 0, 0.3) 0px 1px 3px -1px;
letter-spacing: -0.03ch;
}

.btn.btn-secondary button,
.btn.btn-secondary button.elementor-button,
.btn.btn-secondary a.elementor-button {
background: var(--color-primary-900);
color: var(--color-neutral-50);
fill: var(--color-neutral-50);
border: 1px solid var(--color-primary-900);
}

.btn.btn-secondary button:hover,
.btn.btn-secondary button.elementor-button:hover,
.btn.btn-secondary a.elementor-button:hover {
background: var(--color-primary-900);
color: var(--color-neutral-50);
fill: var(--color-neutral-50);
border: 1px solid var(--color-primary-900);
}

.btn.btn-light button,
.btn.btn-light button.elementor-button,
.btn.btn-light a.elementor-button {
background: var(--color-neutral-50);
color: var(--color-primary-900);
fill: var(--color-primary-900);
border: 1px solid var(--color-neutral-50);
}

.btn-transparent button,
.btn-transparent a.elementor-button {
background: transparent;
color: var(--color-slate);
border: 1px solid transparent;
fill: var(--color-slate);
}

.btn-text button,
.btn-text a.elementor-button,
.btn-text button:hover,
.btn-text a.elementor-button:hover {
background: transparent !important;
color: var(--color-slat);
fill: var(--color-late);
border: 0 !important;
font-weight: 500;
padding: 0 !important;
text-decoration: none !important;
transition: all 0.3s ease;
box-shadow: none !important;
}

button svg *,
button.elementor-button svg *,
a.elementor-button svg *,
button:hover svg *,
button.elementor-button:hover svg *,
a.elementor-button:hover svg * {
fill: none !important;
}

.button-group {
display: flex !important;
flex-direction: row !important;
align-items: center;
gap: 0.4rem;
}

button .elementor-button-content-wrapper,
button.elementor-button .elementor-button-content-wrapper,
a.elementor-button .elementor-button-content-wrapper {
flex-direction: row-reverse;
gap: 0.5rem !important;
transition: gap 0.3s ease;
}

button:hover .elementor-button-content-wrapper,
button.elementor-button:hover .elementor-button-content-wrapper,
a.elementor-button:hover .elementor-button-content-wrapper {
gap: 0.75rem !important;
}




/* ------- Custom: Navbar ----------------------------------------------------- */

.nav {
background-color: var(--color-primary-900);
z-index: 9999;
}

.nav-logo {
max-width: 130px;
color: var(--color-neutral-50);
}

.nav-logo svg {
display: block !important;
width: 130px;
height: 17px;
pointer-events: none;
}

.nav-menu a {
color: var(--color-neutral-50) !important;
font-weight: 500;
text-decoration: underline;
text-decoration-thickness: 1.5px;
text-underline-offset: 10px;
text-decoration-color: transparent;
transition: text-decoration-color 0.3s ease;
}

.nav-menu a:hover,
.nav-menu a.elementor-item-active,
.nav-menu .elementor-nav-menu--dropdown a:hover,
.nav-menu .elementor-nav-menu--dropdown a.elementor-item-active {
text-decoration-color: var(--color-neutral-50);
background: none !important;
}

.nav-menu .elementor-nav-menu--dropdown {
background: var(--color-primary-900);
padding: 1rem;
border-bottom: 1px solid var(--color-border);
}

.nav-menu .elementor-nav-menu--dropdown a {
font-size: 1rem !important;
padding: 0.8rem 1rem !important;
}

.nav-menu .elementor-menu-toggle svg {
fill: var(--color-neutral-50) !important;
}

#nav-menu-desktop {
display: flex;
}

#nav-menu-mobile {
display: none;
}

#nav-menu-btn {
display: block;
}

@media (max-width: 1024px) {
#nav-menu-desktop {
display: none;
}

#nav-menu-mobile {
display: flex;
}

#nav-menu-btn {
display: none;
}
}

/* ------- Custom: Contact Page ----------------------------------------------------- */

.page-wrap.contact .contact-methods ul li {
padding: 0.5rem 0;
}

.page-wrap.contact .contact-methods ul li a {
font-size: 1.2rem;
color: var(--color-neutral-200);
transition: color 0.3s ease;
}

.page-wrap.contact .contact-methods ul li a:hover {
color: var(--color-neutral-100);
}

.page-wrap.contact .contact-methods ul li a span.elementor-icon-list-text {
transition: padding 0.3s ease !important;
}

.page-wrap.contact .contact-methods ul li a:hover span.elementor-icon-list-text {
padding-left: 10px;
}

/* ------- Custom: Footer ---------------------------------------------------- */

footer .logo {
display: block !important;
}

footer .logo-inner {
color: var(--color-primary-900) !important;
opacity: 0.1 !important;
height: auto !important;
min-height: 0 !important;
max-height: none !important;
overflow: visible !important;
}

footer .logo-inner svg {		
width: 100% !important;
height: auto !important;
display: block !important;
max-width: 100% !important;
}