/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/

/* ========== TABLE OF CONTENTS ========== 

1. Theme Tweaks
2. Utilities
3. Typography
4. Variables

======================================== */


/*** 1. THEME TWEAKS ***/

/* Body background color (outside wrapper) */ 
body {
    background-color: var(--neutral-ultra-light);
}

/* Site Wrapper */
.site-wrapper {
    width: 100%;
    max-width: 1920px;
    margin-inline: auto;
    background-color: var(--white);
}

/* Set the main content area height */
#main {
    min-height: 65vh;
}

/* Container Padding Overrides */
.inside-header {
    padding-inline: 0px !important;
}

.site-header {
    padding-block: var(--space-xs);
	padding-inline: var(--gutter);
}

.site-content, #content {
    padding: 0px;
}
/* scrollbar win fix */
html, body {
	scrollbar-gutter: stable;
}
/* transition */
a, button, input {
    transition: color 0.3s ease-in-out,background-color .3s ease-in-out;
}
/* mobile menu button */
.mobile-menu-control-wrapper .menu-toggle, .mobile-menu-control-wrapper .menu-toggle:hover, .mobile-menu-control-wrapper .menu-toggle:focus, .has-inline-mobile-toggle #site-navigation.toggled {
	background: transparent;
}
/* header submenu */
@media (min-width:1025px) {
    .main-navigation ul ul {
        border-radius: var(--border-radius);
        box-shadow: 0 10px 32px -3px rgb(0 0 0 / 0.05), 0 4px 16px -4px rgb(0 0 0 / 0.05)!important;
    }
    
}
/* header dropdown icon */
.main-navigation .main-nav ul li > a .gp-icon.icon-arrow {
  transition: transform 0.3s ease-out;
}
.main-navigation .main-nav ul li:hover > a .gp-icon.icon-arrow {
  transform: rotate(180deg) translateY(-5px);
}
.main-navigation .menu-item {
	cursor: pointer;
}
/* header dropdown icon ff fix  */
.dropdown-menu-toggle .gp-icon svg {
	top: 0;
	transform: translateY(0.125em);
}
/* Post Editor Width (BACKEND) */ 
.post-type-post .block-editor-block-list__layout {
	max-width: 728px !important;
	margin-inline: auto !important;
    padding-inline: 200px !important;
}

.post-type-post .edit-post-visual-editor__post-title-wrapper .editor-post-title {
	max-width: 728px !important;
	margin-inline: auto !important;
	padding-inline: 200px !important;
}

/* -- Search Tweaks -- */

/* Clears the ‘X’ from Chrome */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
	filter: grayscale(100) opacity(.3);
	cursor: pointer;
}

/* Search in Navigation */ 
#site-navigation .menu-bar-item a{
	padding-right: 0
}
/* Search Block */ 
form.search-form {
    display: flex;
    gap: 4px;
}
input.search-field {
    border-radius: var(--border-radius)!important;
    outline: none;
}

/* Modal */ 
.search-modal-fields button, button.search-submit{
	background: var(--primary) !important;
	color: var(--white) !important;
	line-height: 1;
	font-weight: 600;
	padding: 10px 12px;
    transition: all 0.3s ease;
    border-radius: var(--border-radius);
}

.search-modal-fields button:hover, button.search-submit:hover{
  background: var(--primary-hover) !important;
  color: var(--white) !important;
}

.search-modal-fields input {
	background-color: var(--white) !important;
	border-radius: 4px;
	border: none;
	padding: 0px 1em;
}

.search-modal-form{
    border-radius: var(--border-radius);
}

.search-modal-fields{
	border-radius: var(--border-radius);
	overflow: hidden;
	/* outline: 1px solid var(--neutral-ultra-dark); */
	box-shadow: 0px 0px 0px #00000010;
	transition: all 250ms ease-in;
}

.search-modal-fields:focus-within{
	/* outline: 1px solid var(--neultral-ultra-dark); */
	box-shadow: 0px 4px 10px #00000010
}

.gp-search-modal .gp-modal__overlay {
	background-color: #1f293399;
}

/* Search Results / No Search Results template */ 
.search-title-wrapper{
	display: flex;
	align-items: flex-start;
	margin-top: 40px;
	padding-top: 40px;
	border-top: 1px solid var(--neutral-ultra-light);
}

.search-for {
	line-height: 1.4;
}

.search-title{
	font-size: var(--text-m);
	text-transform: capitalize;
	margin-left: .4em;
	line-height: 1.4;
}


/* Hamburger Menu */
.mobile-menu-control-wrapper .menu-toggle,
.mobile-menu-control-wrapper .menu-toggle:hover,
.mobile-menu-control-wrapper .menu-toggle:focus,
.has-inline-mobile-toggle #site-navigation.toggled {
    background-color: transparent;
    margin-right: -1rem;
    font-size: 1em;
    line-height: 8px;
}

/* Primary Menu Button Styles */
@media (min-width: 1025px) {
    .main-navigation .main-nav ul li.nav-cta a {
        font-size: var(--text-s);
        background: var(--primary-semi-light) !important;
        color: var(--white) !important;
        padding: 0.8em 1.2em;
        margin-left: 2rem;
        border-radius: var(--border-radius-s);
		border: 1px solid var(--primary-semi-light);
        line-height: inherit;
        font-weight: 500;
    }
    .main-navigation .main-nav ul li.nav-cta a:hover {
        background: var(--primary-hover) !important;
        color: var(--white) !important;
		border: 1px solid var(--primary-hover);
    }
}

@media (max-width: 1024px) {
    .main-navigation .main-nav ul li.nav-cta a {
        margin-left: 0px;
    }
}

/* Post Editor Width & Title */
body .editor-styles-wrapper .post-type-post .block-editor-block-list__layout,
body .editor-styles-wrapper .post-type-post .edit-post-visual-editor__post-title-wrapper .editor-post-title {
    max-width: 768px !important;
    margin-inline: auto !important;
}


/* Password Protected Pages */
.post-password-form {
    max-width: 768px;
    padding: 8rem 0px;
    margin-inline: auto;
    text-align: center;
}

/*** 2. UTILITIES ***/

/* Is BG */
:has(> .is-bg) {
    position: relative;
    isolation: isolate;
}
img.is-bg {
    object-fit: var(--bg-object-fit, cover);
    object-position: var(--bg-object-position, center);
	width: 100%;
	height: 100%;
}
.is-bg {
    position: var(--bg-position, absolute);
    inset: var(--bg-inset, 0);
    inline-size: var(--bg-width, 100%);
    block-size: var(--bg-height, 100%);
    border-radius: var(--bg-radius, 0);
    z-index: var(--bg-z-index, -2);
}

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

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

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


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

/* Text Balance / Pretty */

.balance {
	text-wrap: balance;
}

/* Clickable Parent */
.clickable-parent:not(a) {
    position: static;
}
.clickable-parent:not(a) > a::after {
    content: "";
    position: absolute;
    inset: 0;
    cursor: pointer !important;
    display: flex
;
    z-index: 1;
}

/*** 3. TYPOGRAPHY  ***/ 

/* Default Body / p font settings */ 
p {
	font-weight: 400;
	line-height: 1.5;
}

p {
	margin-bottom: 1.5rem;
}

/* Add top margin to blog post H2-H6 */

.single-post__content :is(h2, h3, h4, h5, h6) {
	margin-top: 1em;
}
.page-content__content-wrapper figure {
	margin-bottom: 1.5em;
}
.page-content__content-wrapper figure video {
	border-radius: var(--border-radius);
}

/* Button Global Line Height */
.gb-button {
    line-height: 1;
}

/* Remove bottom margin on last paragraph */
.gb-container p:last-child:last-of-type {
    margin-bottom: 0px;
}

.block-editor-block-list__layout .gb-container p:nth-last-child(2) {
    margin-bottom: 0px;
}

/*** 4. Variables & Typography ***/
:root {
    /* text	*/
	--text-xs: clamp(0.8125rem, 0.7934rem + 0.0956vw, 0.875rem);
    --text-s: clamp(0.875rem, 0.8368rem + 0.1912vw, 1rem);
    --text-m: clamp(1rem, 0.9618rem + 0.1912vw, 1.125rem);
    --text-l: clamp(1.13rem, calc(0.21vw + 1.08rem), 1.27rem);
    --text-xl: clamp(1.27rem, calc(0.47vw + 1.17rem), 1.58rem);
    --text-2xl: clamp(1.42rem, calc(0.82vw + 1.26rem), 1.98rem);
    --text-3xl: clamp(1.6rem, calc(1.29vw + 1.34rem), 2.47rem);
    --text-4xl: clamp(1.8rem, calc(1.91vw + 1.42rem), 3.09rem);
	--text-5xl: clamp(2.03rem, calc(2.15vw + 1.6rem), 3.48rem);
	/* space */
	--space-xs: clamp(0.8441720333rem, calc(-0.0172384889vw + 0.8480506933rem), 0.8333333333rem);
    --space-s: clamp(1.1252813203rem, calc(0.1983597291vw + 1.0806503813rem), 1.25rem);
    --space-m: clamp(1.5rem, calc(0.5964214712vw + 1.365805169rem), 1.875rem);
    --space-l: clamp(1.9995rem, calc(1.2930417495vw + 1.7085656064rem), 2.8125rem);
    --space-xl: clamp(2.6653335rem, calc(2.4706425447vw + 2.1094389274rem), 4.21875rem);
    --space-xxl: clamp(3.5528895555rem, calc(4.4138933511vw + 2.5597635515rem), 6.328125rem);
	--width-xs: 700px;
	--width-s: 960px;
   /* section space */
	--section-space-xs: clamp(1.6883440665rem, calc(1.2909040692vw + 1.3978906509rem), 2.5rem);
    --section-space-s: clamp(2.2505626407rem, calc(2.3847910288vw + 1.7139846592rem), 3.75rem);
    --section-space-m: clamp(3rem, calc(4.1749502982vw + 2.0606361829rem), 5.625rem);
    --section-space-l: clamp(3.999rem, calc(7.0592445328vw + 2.4106699801rem), 8.4375rem);
    --section-space-xl: clamp(5.330667rem, calc(11.6510266402vw + 2.709186006rem), 12.65625rem);
    --section-space-xxl: clamp(7.105779111rem, calc(18.8923990282vw + 2.8549893296rem), 18.984375rem);
   /* border */
	--border-radius-s: 6px;
	--border-radius: calc(var(--border-radius-s)*1.5);
	--border-radius-m: calc(var(--border-radius-s)*2);
	--border-radius-l: calc(var(--border-radius-s)*3);
   /* context variables */
	--container-gap: var(--space-xl);
	--grid-gap: var(--space-l);
	--content-gap: var(--space-l);
	--card-gap: var(--space-s);
	--gutter: clamp(1.25rem, calc(3.9761431412vw + 0.3553677932rem), 3.75rem);
  /* colors	*/
	--white-10: rgba(255,255,255,0.1);
	--white-20: rgba(255,255,255,0.2);
	--white-30: rgba(255,255,255,0.3);
	--white-40: rgba(255,255,255,0.4);
	--white-50: rgba(255,255,255,0.5);
	--white-60: rgba(255,255,255,0.6);
	--white-70: rgba(255,255,255,0.7);
	--white-80: rgba(255,255,255,0.8);
	--white-85: rgba(255,255,255,0.85);
	--white-90: rgba(255,255,255,0.9);
	--white-95: rgba(255,255,255,0.95);
}
h1 {
    font-size: var(--text-4xl);
}
h2 {
    font-size: var(--text-3xl);
}
h3 {
    font-size: var(--text-2xl);
}
h4 {
    font-size: var(--text-xl);
}
h5 {
    font-size: var(--text-l);
}
h6 {
    font-size: var(--text-m);
}
h1,h2,h3,h4,h5,h6 {
	line-height: calc(4px + 2ex);
}


/* Additional CSS  */

/* offset for all except home & edu children */
body:not(.home):not(.parent-pageid-12) article {
	padding-top: calc(var(--space-xs)*3 + 60.5px);
}
@media (max-width:1024px) {
	body:not(.home):not(.parent-pageid-12) article {
	padding-top: calc(var(--space-xs)*3 + 45.5px);
}
}
/* overlay mobile menu */
@media (max-width:1024px) {
	.nav-cta {
	display: none;
}
}
.slideout-navigation a.btn {
	display: flex;
	color: var(--white);
}
.slideout-navigation a.btn--small {
	font-size: var(--text-s);
}
.slideout-navigation .offcanvas__link {
	display: inline-flex;
	font-size: var(--text-s);
	text-decoration: underline;
	color: var(--primary);
}
.mobile-menu-control-wrapper .menu-toggle {
	font-size: 1.25em;
}
.slideout-menu .no-link .dropdown-menu-toggle:before {
	content: '';
	position: absolute;
	inset: 0;
}
@media (max-width: 1024px) {
	.has-inline-mobile-toggle .mobile-menu-control-wrapper {
		width: 50px;
		margin-top: -5px;
	}
}
/* header */
.header a:has(.header__logo){
	line-height: 0;
}
.menu-toggle {
	line-height: 46px;
}
.main-navigation{
position: relative;
}
.header__inner:before, .main-navigation ul.sub-menu:before {
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	background-color: var(--white-80);
	content: "";
	display: block;
	height: 100%;
	width: 100%;
	position: absolute;
	left: 0;
	top: 0;
	border-radius: var(--border-radius);
	border: 1px solid var(--neutral-ultra-light);
}
.main-navigation .sub-menu {
	padding-block: var(--space-xs);
}
.main-navigation .sub-menu .menu-item:hover {
	background: var(--white-90);
}
@media (max-width:1024px) {
	.main-navigation .sub-menu .menu-item:hover {
	background: var(--primary-ultra-light);
}
}
.main-navigation .main-nav ul ul li a {
	font-size: 16px;
}
.main-navigation .main-nav ul ul li a span {
	font-size: 13px;
	opacity: 70%;
	font-weight: 300;
}
.main-navigation .main-nav .menu-item--sm a {
	font-size: 14px;
}
@media(max-width:768px) {
	.main-navigation .main-nav ul ul li a {
	font-size: 14px;
}
}

@media (min-width:1024px) and (max-width:1150px) {
	.main-navigation .main-nav ul li a {
		font-size: 16px;
		padding-left: 9px;
		padding-right: 9px;
	}
	
}

/* footer */
.footer__menu-column ul {
	display: flex;
	flex-direction: column;
	gap: 0.25em;
	margin-bottom: 0.5em;
	font-size: var(--text-s);
	list-style: none;
}
.footer__menu-column ul ul {
	margin-top: 0.25em;
	margin-left: 1em;
}
.footer__menu-title {
	font-weight: 550;
}

/* home */
.home-hero video {
    object-fit: cover;
    width: 100%;
    height: 100%;
}
.home__bg-video {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

/* sections */
.section__title-wrapper {
	text-wrap: balance;
}

/* splide carousel */
.wp-block-splide-carousel .splide__pagination {
	bottom: calc(var(--space-s)*2 * -1);
}

/* language switcher */
.gt_switcher {
	width: 35px!important;
	border-radius: var(--border-radius-s);
}
.gt_switcher .gt_selected {
	background: none!important;
}
.gt_switcher .gt_selected a {
	font-size: 0!important;
	border: 0!important;
	line-height: 0px!important;
}
.gt_switcher .gt_option {
	position: absolute!important;
	top: 32px;
	border: 0!important;
	width: 35px!important;
	border-radius: var(--border-radius-s);
}
.gt_switcher .gt_option a{
	font-size: 0!important;
}
.gt_switcher .gt_selected a:after {
	display: none!important;
}
.main-navigation .main-nav ul li .gt_option a {
	line-height: 0!important;
}
@media (max-width:1024px) {
	.gt_switcher .gt_option {
		top: 52px;
	}
	.gtranslate-desktop {
		display: none;
	}
}

/* page template */
.page-hero__menu {
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}
.page-hero__menu-wrapper {
  /transition: top 1s ease;
}
.page-hero__menu-wrapper.fixed {
  position: fixed !important;
  top: 100px !important;
}
a.next__inner {
	text-decoration: none;
}

.student-month #splide01-track {
	overflow: visible;
}
.student-month .splide__slide {
	overflow: visible;
}

/* tables */
.table table {
  background-color: var(--white);
	font-size: var(--text-m);
	box-shadow: 0 3px 20px #0000000d;
}
.table table tr:nth-child(odd) {
  background-color:var(--neutral-ultra-light);
}
.table table tr:first-child {
  background-color: var(--primary-semi-light);
  color: var(--white);
}
.table table td,
.table table th {
  padding:4px 15px;
}
.table table td span, table td strong {
  color: var(--neutral-ultra-dark);
	font-weight: 700;
}
.table table th {
  font-size: var(--text-s);
  color: var(--white);
}
.table table tr:not(:first-child):hover {
	background: var(--primary-ultra-light);
}
@media (max-width: 768px) {
  .table table tr th {
    font-size: 11px;
    padding-inline: 6px;
  }
}
@media (max-width: 768px) {
  .table table tr td {
    padding-inline: 6px;
		font-size: var(--text-xs);
  }
}

/* education courses */
.courses-grid .next__inner:nth-child(2) {
	grid-column: span 2
}
.courses-grid .next__inner:nth-child(3) {
	grid-column: span 2;
}
@media(max-width:1024px) and (min-width:768px) {
	.courses-grid .next__inner:nth-child(1) {
	grid-column: span 2
}
}
@media(max-width:768px) {
	.courses-grid .next__inner:nth-child(n)  {
		grid-column: auto;
	}
}

/* happyfiles gallery */
.happyfiles-gallery figure {
	width: 100%;
}
.happyfiles-gallery figure img {
	border-radius: var(--border-radius-s);
}
img.lg-image {
	border-radius: var(--border-radius)!important;
}
@media (max-width:1024px) {
	.happyfiles-gallery ul {
		grid-template-columns: repeat(2, 1fr)!important;
	}
}

/* admissions */

.admission-card__step--alt:before {
  content: '';
  width: calc(2 * var(--border-radius));
  height: calc(2 * var(--border-radius));
  background-color: transparent;
  position: absolute;
  bottom: 0;
  left: 0;
  display: flex;
  transform: translateY(100%);
  border-radius: 50%;
	box-shadow: calc(-1 * var(--border-radius)) calc(-1 * var(--border-radius)) var(--white);
}
.admission-card__step--alt:after{
	content: '';
  width: calc(2 * var(--border-radius));
  height: calc(2 * var(--border-radius));
  background-color: transparent;
  position: absolute;
  right: 0;
  top: 0;
  display: flex;
  transform: translateX(100%);
  border-radius: 50%;
  box-shadow: calc(-1 * var(--border-radius)) calc(-1 * var(--border-radius)) var(--white);
}
.admission-card__step--neutral:before, .admission-card__step--neutral:after {
	box-shadow: calc(-1 * var(--border-radius)) calc(-1 * var(--border-radius)) var(--neutral-ultra-light);
}

/* videos */
figure.wp-block-video {
	margin-bottom: 1.5em;
}
figure.wp-block-video video {
	border-radius: var(--border-radius);
}

.nav-schooling .gb-submenu-toggle {
	display: none;
}
.nav-schooling .gb-sub-menu {
	display: block;
	position: static;
}

/* gcaptha badge */
.grecaptcha-badge {
	z-index: 10000;
}