/*
 Theme Name:   Runbot.co Starter Theme
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Phil Burton
 Author URI:   https://runbot.co
 Template:     generatepress
 Version:      2.0
*/

/* -------------------------------------------------------------------------------
   Variables
---------------------------------------------------------------------------------- */
:root{
    --radius: 0.75em;
    --button-radius: 999rem;
    --input-radius: 4px;
    --shadow: 0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04); /* Just a basic general shadow */
    
    --site-width: var(--gb-container-width);
    /* --gb-container-width: 100%; --site-wrapper: 100vw; */
    
    /* Gutter */
    --gutter: clamp(1rem, 0.466rem + 2.034vi, 2.5rem);
	--gutter: clamp(1rem, -0.063rem + 4.051vw, 5rem);
	/*--gutter: clamp(1.5rem, -0.759rem + 8.608vw, 10rem);*/
	
    /* Gap (between columns) */
    --gap-l: 3rem;
    --gap-m: 2rem;
    --gap-s: 1.5rem;
    --gap-xs: 1rem;
    
    --gap: var(--gap-m);
    
    /* Space */
    --space-xs: 1rem;
    --space-s: clamp(1.5rem, 1.234rem + 1.013vw, 2.5rem);
    --space-m: clamp(3rem, 2.468rem + 2.025vw, 5rem);
    --space-l: clamp(4.5rem, 3.703rem + 3.038vw, 7.5rem);
	--space-xl: clamp(5rem, 3.006rem + 7.595vw, 12.5rem);
    
    /* Font-Sizes
     * Updated Oct 2025: https://chrisburnell.com/clamp-calculator/?font-size-root=16&size-min=40&size-max=24&viewport-min=420&viewport-max=2000&viewport-units=vi
     * https://theadminbar.com/simple-responsive-font-size-calculator/
     *  */
    --fontsize-jumbo: clamp(7.5rem, 4.842rem + 10.127vw, 17.5rem);
    --fontsize-4xl: clamp(3.625rem, 3.127rem + 1.899vw, 5.5rem);
    --fontsize-3xl: clamp(2.25rem, 1.851rem + 1.519vw, 3.75rem);
    --fontsize-2xl: clamp(1.875rem, 1.509rem + 1.392vw, 3.25rem);
    --fontsize-xl: clamp(1.5rem, 1.234rem + 1.013vw, 2.5rem);
    --fontsize-l: clamp(1.25rem, 1.051rem + 0.759vw, 2rem);
    	--fontsize-m: clamp(1.25rem, 0.918rem + 1.266vi, 2.5rem);
    	--fontsize-s: clamp(1.125rem, 0.892rem + 0.886vi, 2rem);
    --fontsize-xs: clamp(0.875rem, 0.775rem + 0.38vw, 1.25rem);
    --fontsize-2xs: clamp(0.75rem, 0.684rem + 0.253vw, 1rem);
    --fontsize-3xs: clamp(0.625rem, 0.559rem + 0.253vw, 0.875rem);
}


/* CSS Easings */
:root {
    --elastic-ease-out: linear(
		0, 0.5737 7.6%, 0.8382 11.87%, 0.9463 14.19%, 
		1.0292 16.54%, 1.0886 18.97%, 1.1258 21.53%, 
		1.137 22.97%, 1.1424 24.48%, 1.1423 26.1%, 
		1.1366 27.86%, 1.1165 31.01%, 1.0507 38.62%, 
		1.0219 42.57%, 0.9995 46.99%, 0.9872 51.63%, 
		0.9842 58.77%, 1.0011 81.26%, 1 
	);
    --back-out: linear(
    0 0%, 0.1935 4.37%, 0.3671 8.83%,
    0.521 13.38%, 0.6557 18.04%,
    0.7716 22.82%, 0.869 27.73%,
    0.9488 32.81%, 1.0111 38.08%,
    1.0512 42.81%, 1.0792 47.75%,
    1.0953 52.97%, 1.1 58.55%,
    1.0956 63.36%, 1.0838 68.73%,
    1.0119 90.98%, 1.0029 95.69%, 1 100%
    );
	--smooth: cubic-bezier(0.625, 0.05, 0, 1);
	--smooth-ease: cubic-bezier(.32, .72, 0, 1);
	--bounce: cubic-bezier(0.35, 1.75, 0.6, 1);
	--expo: cubic-bezier(0.87, 0, 0.13, 1);
}

/* -------------------------------------------------------------------------------
   Setup
---------------------------------------------------------------------------------- */
*, *::before, *::after {
    box-sizing: border-box;
}

/* Button Reset */
button {
    -webkit-appearance: none;
    border-radius: 0;
    text-align: inherit;
    background: none;
    box-shadow: none;
    padding: 0;
    cursor: pointer;
    border: none;
    color: inherit;
    font: inherit;
}

.screen-reader-text:focus {
    background-color: var(--color-bg);
    border-radius: 15em;
    box-shadow: none;
    clip: auto!important;
    clip-path: none;
    color: var(--color-primary);
    display: block;
    border: none;
    font-size: 64%;
    font-weight: 700;
    letter-spacing: -.02em;
    height: auto;
    left: 1em;
    line-height: normal;
    padding: .5em 1em;
    text-decoration: none;
    top: 1em;
    width: auto;
    z-index: 100000
}

body :focus-visible,
body .wsf-button:focus-visible {
    outline-width: 2px;
    outline-style: solid;
    outline-color: var(--color-primary);
    outline-offset: 2px
}

body .wsf-button:focus-visible,
body .button-accent:focus-visible {
    outline-color: var(--color-primary)
}

body :not(.gb-button,.site-logo a,.wsf-button):focus-visible,
body .mobile-nav-items a:focus-visible,
body a.button-text:focus-visible {
    outline: thin dotted currentcolor;
    outline-color: currentcolor;
    outline-style: dotted;
    outline-width: thin
}

/* Browser Text Selection */
::selection {
  background-color: #4BAE68;
  color: #fff;
}

::-moz-selection {
   background-color: #4BAE68;
  color: #fff;
}


body, button, input, select, textarea {
    -webkit-font-smoothing: antialiased;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

img, source, video {
    height: auto;
    max-width: 100%;
    width: 100%;
    vertical-align: top;
}

select::-ms-expand { display: none; }

body{
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    height: 100vh;
    min-height: 100vh;
    -webkit-tap-highlight-color: transparent;
    -webkit-text-size-adjust: 100%;
    font-feature-settings: 'ss02' 0;
}

/* Headline */
h1, h2, h3, h4, h5, h6, .is-h1, .is-h2, .is-h3, .is-h4, .is-h5, .is-h6 { margin: 0; letter-spacing: -0.02em; margin-bottom: 0.25em; }
/*h1 a, h2 a, h3 a, h4 a, h5 a, h6 a, .is-h1 a, .is-h2 a, .is-h3 a, .is-h4 a, .is-h5 a, .is-h6 a { font-weight: inherit; color:inherit; }
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover, .is-h1 a:hover, .is-h2 a:hover, .is-h3 a:hover, .is-h4 a:hover, .is-h5 a:hover, .is-h6 a:hover { color:inherit; }*/

h1, .is-h1 { font-size: var(--fontsize-4xl); line-height: 1.05; letter-spacing: -0.0em; }
h2, .is-h2 { font-size: var(--fontsize-3xl); line-height: 1.22; letter-spacing: -0.0em;  }
h3, .is-h3 { font-size: var(--fontsize-2xl); line-height: 1.27; letter-spacing: -0.0em;  }
h4, .is-h4 { font-size: var(--fontsize-xl); line-height: 1.3; letter-spacing: -0.0em; }
h5, .is-h5 { font-size: var(--fontsize-l); line-height: 1.47; letter-spacing: -0.0em; }
h6, .is-h6 { font-size: var(--fontsize-m); line-height: 1.55; letter-spacing: -0.0em; }

.is-p{
    font-family: inherit; /* copy from the body */
    font-size: inherit; /* copy from the body */
    line-height: inherit;
    color: var(--color-text-muted);
    font-weight: 400; /* copy from the body */
    letter-spacing: 0; /* copy from the body */
    margin: 0;
    margin-bottom: 1.5em;
}

b,strong {
    font-weight: 640;
}

code, kbd, tt, var {
    font: var(--fontsize-m) Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
    background-color: color-mix(in srgb, var(--color-text) 10%, transparent);
    border-radius: 0.2em;
    padding: 0 0.2em;
}

/* Button Reset
button {
    -webkit-appearance: none;
    border-radius: 0;
    text-align: inherit;
    background: none;
    box-shadow: none;
    padding: 0;
    cursor: pointer;
    border: none;
    color: inherit;
    font: inherit;
} */

/* -------------------------------------------------------------------------------
   Theme Tweaks
---------------------------------------------------------------------------------- */
.site-header {
    padding-inline: var(--gap);
}

/* Constrain the width of the page if wanted */
.site-wrapper {
    width: 100%;
    max-width: var(--site-wrapper);
    margin-inline: auto;
    background: var(--color-bg);
    overflow: hidden;
}

/*@media screen and (min-width: 2560px) {
    .site-wrapper::after {
        content: "";
        display: block;
        width: calc((100% - var(--site-wrapper)) / 2);
        height: 100%;
        background: var(--color-outer-background);
        position: fixed;
        right: 0;
        top: 0;
        z-index: 1;
    }
    .site-wrapper::before {
        content: "";
        display: block;
        width: calc((100% - var(--site-wrapper)) / 2);
        height: 100%;
        background: var(--color-outer-background);
        position: fixed;
        left: 0;
        top: 0;
        z-index: 1;
    }
}*/

/* -------------------------------------------------------------------------------
   Utilities
---------------------------------------------------------------------------------- */
/* Balance headings and elements with .balance class */
:is(h1, h2, h3, h4, h5, h6), .balance {
    text-wrap: balance;
}

/* Use pretty wrapping for body text elements */
p, blockquote, li, .pretty {
    text-wrap: pretty;
}

/* Remove bottom margin from final paragraph */
p:last-child:last-of-type {
    margin-bottom: 0;
}

/* Line Limit */
.line-limit-3, .line-limit-2{
    display: -webkit-box;
    box-orient: vertical;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-limit-3{
    line-clamp: 3;
    -webkit-line-clamp: 3;
}

.line-limit-2{
    line-clamp: 2;
    -webkit-line-clamp: 2;
}

/* Icon without fill */
html .icon-nofill svg, html .gb-icon svg, .nofill, .nofill svg{
    fill: none!important;
}

/* No Underline */
.no-ul, .no-ul a{
    text-decoration: none;
}

/* Noselect */
.noselect {
    -webkit-touch-callout: none;
      -webkit-user-select: none;
       -khtml-user-select: none;
         -moz-user-select: none;
          -ms-user-select: none;
              user-select: none;
}

/* Horizontal Divider */
hr, hr.wp-block-separator {
    background-color: var(--color-text);
    border: 0;
    height: 1px;
    margin-bottom: clamp(1.5rem,1.197rem + 1.515vw,2.5rem);
    margin-top: clamp(1.5rem,1.197rem + 1.515vw,2.5rem);
}

/* Vertical Text */
.vertical{
    white-space: nowrap;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
}

/* Rotation */
.rotate{
    transform-origin: center;
    animation: rotate 28s linear infinite;
}

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

/* Visually Hidden (accessible to screen readers) */
.visually-hidden:not(:focus):not(:active) {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

/* Smooth Transition Utility */
.transition {
    transition: all 0.25s ease;
}

/* Stretch Link */
.stretch-link {
    position: relative;
}

.stretch-link a::after {
    content: '';
    position: absolute;
    inset: 0;
}

.stretch-link a:is(:focus-visible)::after {
    outline: 2px solid;
}

.stretch-link a:is(:hover, :focus) {
    outline: none;
}

/* -------------------------------------------------------------------------------
   Accordion
---------------------------------------------------------------------------------- */
body:not(.editor-styles-wrapper) .gb-accordion__content {
    transition: color 0.3s ease, max-height .7s cubic-bezier(.2,1,.22,1)!important;
}

body:not(.editor-styles-wrapper) .gb-accordion__content>div {
    will-change: opacity;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .5s cubic-bezier(.2,1,.22,1) , transform .7s cubic-bezier(.2,1,.22,1)
}

body:not(.editor-styles-wrapper) .gb-accordion__item-open .gb-accordion__content>div {
    opacity: 1;
    transform: translateY(0)
}

body:not(.editor-styles-wrapper) .gb-accordion__content {
    visibility: visible!important
}

/* -------------------------------------------------------------------------------
   Marquee
------------------------------------------------------------------------------- */
.marquee { --gap: 0.5em; display: flex; gap: var(--gap); overflow: hidden; position: relative; }
.marquee-content { animation: scroll 30s linear infinite; display: flex; align-items: center; flex-shrink: 0; gap: var(--gap); justify-content: space-around; min-width: 100%; white-space: nowrap; will-change: transform; }
.marquee-content-item { white-space: nowrap; }
.marquee.logo-marquee { --gap: 2.5em; }
.marquee.logo-marquee img { height: 80px; }

@-webkit-keyframes scroll {
    from { transform: translateX(0); }
    to { transform: translateX(calc(-100% - var(--gap))); }
}
@keyframes scroll {
    from { transform: translateX(0); }
    to { transform: translateX(calc(-100% - var(--gap))); }
}

.marquee-reverse .marquee-content { animation-direction: reverse; }

/* -------------------------------------------------------------------------------
   Underline Styles
------------------------------------------------------------------------------- */
.underlined,
[style*="text-decoration: underline"],
[style*="text-decoration:underline"] {
  text-decoration-color: currentColor;
  text-decoration-thickness: 0.05em;
  text-underline-offset: 0.3em;
  transition: text-decoration-color 0.2s ease;
}

:root{
    --power3-out: linear(
    0 0%, 0.1538 4.09%, 0.2926 8.29%,
    0.4173 12.63%, 0.5282 17.12%,
    0.6255 21.77%, 0.7099 26.61%,
    0.782 31.67%, 0.8425 37%, 0.8887 42.23%,
    0.9257 47.79%, 0.9543 53.78%,
    0.9752 60.32%, 0.9883 67.11%,
    0.9961 75%, 1 100%
  );
}

/* Underline Effect */
a.underline-effect,
.underline-effect a{
    position: relative;
    text-decoration: none;
    transition: color 0.3s ease;
}
a.underline-effect::after,
.underline-effect a::after {
  content: '';
  position: absolute;
  width: 100%;
  transform: scaleX(0);
  height: 1.5px;
  bottom: 0.1em;
  left: 0;
  background: currentcolor;
  transform-origin: bottom center;
  transition: transform 0.3s var(--power3-out);
}
a.underline-effect:hover::after,
.underline-effect a:hover::after {
  transform: scaleX(1);
  transform-origin: bottom center;
}

/* Underline Reverse */
a.underline-effect-reverse,
.underline-effect-reverse a{
    position: relative;
    text-decoration: none;
    transition: color 0.3s ease;
}
a.underline-effect-reverse::after,
.underline-effect-reverse a::after {
  content: '';
  position: absolute;
  width: 100%;
  transform: scaleX(1);
  height: 1.5px;
  bottom: 0.1em;
  left: 0;
  background: currentcolor;
  transform-origin: bottom left;
  transition: transform 0.3s var(--power3-out);
}
a.underline-effect-reverse:hover::after,
.underline-effect-reverse a:hover::after {
  transform: scaleX(0);
  transform-origin: bottom right;
}

p.underline-effect a::after, .is-p.underline-effect a::after,
p.underline-effect-reverse a::after, .is-p.underline-effect-reverse a::after{
    height: 1px;
    bottom: 0em;
}

/* Underline Multi
a.underline-multi,
.underline-multi a{
    text-decoration: none;
}
.underline-multi a:not(.gb-button,.gb-image),.ul a {
    display: inline;
    background-image: linear-gradient(to right,currentcolor 0%,currentcolor 50%,transparent 50%,transparent 100%);
    background-size: 200% 1px;
    background-position: 0% 95%;
    background-repeat: no-repeat;
    padding: 0;
    animation: none
}
.underline-multi a:not(.gb-button,.gb-image):hover,.ul a:hover {
    animation: underline-slide 1.3s cubic-bezier(0.78, 0, 0.22, 1);
}
@keyframes underline-slide {
    0% {
        background-position: 0% 95%
    }
    49.99% {
        background-position: -100% 95%
    }
    50% {
        background-position: 100% 95%
    }
    100% {
        background-position: 0% 95%
    }
} */

/* Underline Multi */
.underline-multi a {
    text-decoration: none !important;
    display: inline;
    background: linear-gradient(transparent, transparent), linear-gradient(color-mix(in srgb, currentColor 20%, transparent), color-mix(in srgb, currentColor 20%, transparent)), linear-gradient(currentColor, currentColor);
    background-size: 100% clamp(2px, .05em, 4px), 100% clamp(2px, .05em, 4px), 0 clamp(2px, .05em, 4px);
    background-position: 100% 100%, 100% 100%, 0 100%;
    background-repeat: no-repeat;
    transition: background-size 0.6s var( --smooth-ease);
}
.underline-multi a:hover, .underline-multi a:focus-within {
    background-size: 0 clamp(2px, .05em, 4px), 0 clamp(2px, .05em, 4px), 100% clamp(2px, .05em, 4px);
}

/* Button Text */
a.btn-text span.gb-text{
	text-decoration: none !important;
    display: inline;
    background: linear-gradient(transparent, transparent), linear-gradient(color-mix(in srgb, currentColor 20%, transparent), color-mix(in srgb, currentColor 20%, transparent)), linear-gradient(currentColor, currentColor);
    background-size: 100% clamp(2px, .05em, 4px), 100% clamp(2px, .05em, 4px), 0 clamp(2px, .05em, 4px);
    background-position: 100% 100%, 100% 100%, 0 100%;
    background-repeat: no-repeat;
    transition: background-size 0.4s var( --smooth-ease);
}

a.btn-text:hover span.gb-text, a.btn-text:focus-within span.gb-text{
	background-size: 0 clamp(2px, .05em, 4px), 0 clamp(2px, .05em, 4px), 100% clamp(2px, .05em, 4px);
}

a.btn-text span.gb-shape{
	transition: transform 0.2s var( --smooth-ease);
}

/* Navigation Text Decoration
.gb-navigation .gb-menu-container .menu-item a{
    text-decoration: underline;
    text-underline-offset: 0.25em;
    text-decoration-thickness: 1px;
    text-decoration-skip-ink: auto;
    text-decoration-color: transparent;
    transition: text-decoration-color .1s ease-in-out;
}

.gb-navigation .gb-menu-container .menu-item a:hover{
    text-decoration-color: currentColor;
} */

/* Text Decoration */
a {
    text-decoration: underline;
    text-underline-offset: 0.25em;
    text-decoration-thickness: 1px;
    text-decoration-skip-ink: auto;
    text-decoration-color: color-mix(in srgb, currentColor 20%, transparent);;
    transition: color 0.25s ease, background-color 0.25s ease, text-decoration-color 0.25s ease;
}

a:hover{
    text-decoration-color: currentcolor;
}

/* Overwrite standard GP site containers to match the .section-m class */
.separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .separate-containers .paging-navigation, .one-container .site-content, .inside-page-header {
    padding: var(--space-m) 0px var(--space-m) 0px;
}

/* Stick footer to bottom */
/*.site-wrapper{
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.container.grid-container {
  flex-grow: 1;
    align-self: stretch;
    width: 100%;
}*/

/* Button with Slide Effect */
body.wp-theme-generatepress [data-hover-slide], 
body.wp-theme-generatepress [data-hover-slide]:hover, 
body.wp-theme-generatepress [data-hover-slide]:focus {
	position: relative;
	overflow: hidden;
	user-select: none;
	text-indent: -999%;
	white-space: nowrap;
	display: inline-flex;
}

body.wp-theme-generatepress [data-hover-slide]::before {
    content: attr(data-hover-slide);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    padding: inherit;
    color: currentColor;
	text-indent: initial;
    transition: transform 0.4s var(--back-out);
	user-select: none;
}

body.wp-theme-generatepress [data-hover-slide]::after {
    content: attr(data-hover-slide);
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    padding: inherit;
    color: currentColor;
	text-indent: initial;
    transition: transform 0.4s var(--back-out);
	user-select: none;
}

body.wp-theme-generatepress [data-hover-slide]:hover::before,
body.wp-theme-generatepress [data-hover-slide]:hover::after{
    transform: translateY(-100%);
}