﻿ @charset "utf-8";

:root {
	/* Colors */
	--primary:#ec3894;
	--secondary:#0096db;
	--tertiary:#ffce01;
	--quaternary:#15b159;
	--lines:#ecedee;
	--table:#f2f3f3;
	--banner:#000000;
	--fields:#f6f6f6;     
	--section-light:#f7f7fb;
	--section-dark:#000000;

	/* Text */
	--body-font:'Lexend', sans-serif;
	--text-light:#ffffff;
	--text-dark:#222222;
	--text-color:var(--text-dark);
	--heading-font: var(--body-font);
	--heading-color:var(--text-color);
	--link-color:var(--primary);
	
	/* Header */
	--header-background:#000000;
	--header-ontop-background:rgba(0,0,0,0.8);
	--header-border:rgba(255,255,255,0.2);
	--header-ontop-border:rgba(255,255,255,0.2);
	--logo-background:transparent;
	--icon-hover:var(--primary);
	--icon-ontop-hover:var(--primary);
	--header-nav:transparent;

	/* Nav */
	--nav-hover:var(--icon-hover);
	--nav-hover-text:var(--text-light);
	--nav-sub-hover:rgba(255,255,255,0.1);
	--nav-sub-hover-text:var(--text-light);
	--nav-radius:min(1.5625vw, 30px);

	/* Modals */
	--modal-overlay:rgba(0,0,0,0.6);
		
	/* Content */
	--image-radius:clamp(8px, 1.5625vw, 30px);
 
	/* Buttons */
	--btn-radius:2.22em;
	--primary-text:var(--text-light);
	--secondary-text:var(--text-light);
	
	/* Scrollbar */
	--scrollbar-thumb:var(--primary);
	--scrollbar-track:rgba(0,0,0,0.05);

	/* Footer */
	--footer-left:rgba(0,0,0,0.9);	
	--footer-right:rgba(0,0,0,0.9);
}

.text-white {
	--lines:rgba(255,255,255,0.2);
}

/* -------- Icons ------------ */
.btn-nav:after,
.header-button:before,
.close:before,
.checkbox input[type="checkbox"]:checked + label:before,
.btn-sub:after,
.btn-scroll:before,
.scroll-top:before,
.splide__arrow:after,
.btn__arrow:after, .btn__arrow-text:after,
.btn__icon:after,
.btn__social:after,
.image-menu__btn:after,
.block-tab-header:after,
.expand-header:after,
.lightbox a:after,
.number button:before,
.news-more a:after,
.news .page-navigation li.previous a:before,
.news .page-navigation li.next a:before,
ul.tx-indexedsearch-browsebox li:first-child:not(.tx-indexedsearch-browselist-currentPage) a:before,
ul.tx-indexedsearch-browsebox li:last-child:not(.tx-indexedsearch-browselist-currentPage) a:before,
.browse-menu a:after,
#cursor:after,
.tx-indexedsearch-search-submit input[type="submit"],
.tx-indexedsearch-icon:before,
.video-play:after,
.btn__circle:after,
.btn__close,
input[type="checkbox"] + label:before {background-image:url(../images/icons.svg);}

/* -------- Text ------------ */
html, body  {font-size:18px; font-size:clamp(16px, 1.125vw, 18px); font-weight:300; line-height:1.2; color:var(--text-color);}

h1, .h1 {font-size:80px; font-size:clamp(32px, 4.166vw, 80px); font-weight:900; line-height:1.200; text-wrap:balance; color:var(--heading-color);}
h2, .h2 {font-size:70px; font-size:clamp(30px, 3.646vw, 70px); font-weight:900; line-height:1.200; text-wrap:balance; color:var(--heading-color);}
h3, .h3 {font-size:60px; font-size:clamp(28px, 3.125vw, 60px); font-weight:900; line-height:1.200; text-wrap:balance; color:var(--heading-color);}
h4, .h4 {font-size:48px; font-size:clamp(24px, 2.500vw, 48px); font-weight:300; line-height:1.250; text-wrap:balance; color:var(--text-color);}
h5, .h5 {font-size:36px; font-size:clamp(21px, 2.250vw, 36px); font-weight:300; line-height:1.333; text-wrap:balance; color:var(--text-color);}
h6, .h6 {font-size:24px; font-size:clamp(18px, 1.846vw, 24px); font-weight:300; line-height:1.500; color:var(--text-color);}
p       {font-size:1rem; font-weight:300; line-height:1.66; color:var(--text-color);}

span.h1, span.h2, span.h3, span.h4, span.h5, span.h6 {display:block; color:inherit; margin:0;}

a:hover {text-decoration-thickness:1px;}

strong {font-weight:700;}

sup {font-size:0.5em;}

blockquote {font-size:36px; font-size:clamp(21px, 36px, 1.875vw); border:none; padding:1.38em 0 1.38em 1.66em; font-weight:500; color:var(--text-color); box-sizing:border-box; max-width:17.8em;}
blockquote:before {content:""; display:block; font-size:0.278em; width:1em; border-radius:0em; position:absolute; left:0; top:0; bottom:0; background:var(--secondary);}

.font-light      {font-weight:300;}
.font-semibold   {font-weight:600;}
.font-bold       {font-weight:700;}
.font-black      {font-weight:900;}

.small {display:inline-block; font-size:0.888em;}
.large {display:inline-block; font-size:1.5em;}

.color-primary {color:var(--primary);}
.color-secondary {color:var(--secondary);}
.color-tertiary {color:var(--tertiary);}
.color-black {color:var(--text-dark);}
.color-grey {color:#757575;}

.indent-small {margin-left:1rem;}
.indent-medium {margin-left:2rem;}
.indent-large {margin-left:3rem;}

/* -------- Lists ------------ */
.ce-bodytext ul li,
.ce-bodytext ol li {font-size:24px; font-size:clamp(18px, 1.25vw, 24px); font-weight:300; line-height:1.28; padding:0.748em 0 0.748em 1.88em;}
.text-white .ce-bodytext ul > li:before {background:var(--primary);}
.text-white .ce-bodytext ol > li:before {color:var(--primary);}

.ce-bodytext ul ul li:before {background:var(--tertiary); opacity:0.3;}
.text-white .ce-bodytext ul ul li:before {background:#ffffff;}

.ce-bodytext ul.list-large li,
.ce-bodytext ol.list-large li {font-size:36px; font-size:clamp(18px, 1.875vw, 36px);}

.ce-bodytext ul li:before {width:0.83em; height:0.83em; margin-top:0.22em; background-color:var(--primary);}
.ce-bodytext ol li:before {color:var(--primary); font-family:var(--heading-font); font-weight:900;}

.ce-bodytext ul.list-small li,
.ce-bodytext ol.list-small li {font-size:1rem; font-weight:300; padding:0.4em 0 0.4em 2em;}
.ce-bodytext ul.list-small li:before {width:0.83em; height:0.83em; margin-top:0.34em;}

/* -------- Table ------------ */
.ce-bodytext-block:has(.ce-table) {overflow-x:scroll;}

/* -------- Forms ------------ */
.checkbox input[type="checkbox"],
.radio input[type="radio"] {font-size:34px; top:5px;}
.checkbox input[type="checkbox"] + label:before,
.radio input[type="radio"] + label:before {font-size:34px; top:5px; border:none;}
.checkbox input[type="checkbox"] + label,
.radio input[type="radio"] + label {padding:9px 0 9px 50px;}
.radio input[type="radio"]:checked + label:before {background:radial-gradient(var(--primary) 8px, transparent 9px), var(--fields);}

input::file-selector-button {border:none; background:var(--secondary); cursor:pointer; font-family:var(--body-font), sans-serif; font-weight:600; color:#ffffff; border-radius:30px; padding:10px 16px; margin:-10px 10px -10px -10px;}

/* -------- Header ------------ */
#header, 
.modal-header {font-size:150px; font-size:clamp(50px, 7.8125vw, 150px); height:1em;}
.modal-header {border-bottom:1px solid var(--header-border);}

.header-logo a {padding:0.1em 0; margin:0 0.18em 0 0.6em;}
.header-logo .logo-horizontal {display:none;}
.logo-overhang .header-logo a {height:1.66em; margin-bottom:-0.66em;}

.header-buttons {display:flex; font-size:1em;}
.header-button {display:flex; flex-direction:column; justify-content:center; font-size:1em; width:1em; height:1em; padding:0; box-sizing:border-box; z-index:1; border-left:1px solid var(--header-border);}
.header-button span {font-size:18px; font-size:clamp(11px, 18px, 0.9375vw); line-height:1.2; color:var(--text-light); font-weight:600;}
.header-button:before {position:relative; left:0; top:0; margin:0 auto; font-size:clamp(36px, 0.4em, 60px); background-position-y:-2em;}
.header-white {--header-border:var(--header-ontop-border);}

.header-button.header-phone {align-items:center; flex-direction:row; padding:0 0.24em 0 0.16em; border-left:1px solid var(--header-border);}
.header-button.header-phone span {display:block; font-size:clamp(16px, 24px, 1.25vw); line-height:1.2; font-weight:700;}
.header-button.header-phone:before {left:auto; top:auto; margin:0;}

.header-nav {width:1em;}
.header-referral:before {background-position:-0.33em -18.66em;}

.header-button:hover span {color:#ffffff;}

#header.header-white .header-button:hover span {color:var(--text-light);}
#header.header-white .header-referral:before {background-position-y:-18.66em;}

.modal-header.header-white .header-button:before {background-position-y:-2em;}
.modal-header.header-white .header-button span {color:var(--text-light);}
.modal-header.header-white .header-referral:before {background-position-y:-18.66em;}

#header-sticky {font-size:100px; font-size:clamp(50px, 5.2vw, 100px); height:1em; top:-1.2em; outline:1px solid var(--header-ontop-border);}
#header-sticky.scroll {transform:translate3d(0, 120%, 0);}
#header-sticky .header-logo a {height:1.2em; padding:0.1em 0 0 0; margin-bottom:-0.2em;}
#header-sticky .header-logo .logo-vertical {display:none;}
#header-sticky .header-logo .logo-horizontal {display:block;}
#header-sticky .header-button {padding:0; width:1em; height:1em;}
#header-sticky .header-button span {font-size:clamp(11px, 16px, 0.8333vw);}
#header-sticky .header-button:before {top:0; font-size:max(36px, 0.5em);}
#header-sticky .header-button.header-phone {padding:0 0.24em 0 0.16em;}
#header-sticky .header-button.header-phone:before {left:auto; top:auto; margin:0;}
#header-sticky .header-button.header-phone span {font-size:clamp(16px, 24px, 1.25vw); line-height:1.2;}

/* -------- Modals ------------ */
.btn__close {background-color:transparent;}

.modal-box {border-bottom-left-radius:var(--image-radius); border-bottom-right-radius:var(--image-radius);}

.modal-small {padding:8px;}
.modal-small .modal-box {max-width:1620px; border-radius:var(--image-radius);}

.modal-width-medium .modal-box {max-width:960px;}
.modal-width-small .modal-box {max-width:480px;}
.modal-width-small .btn__close {background-color:transparent; margin:0;}

/* -------- Nav ------------ */
.nav > ul {font-size:1em; height:1em; display:flex; flex-wrap:wrap-reverse; gap:100vw 0;}
.nav > ul > li > a {border-radius:0;}
.nav ul li a {z-index:1; font-size:24px; font-size:clamp(12px, 0.9375vw, 18px); line-height:clamp(50px, 7.8125vw, 150px); font-weight:700; padding:0 1.5em; color:var(--text-light);}
.nav ul li ul {width:300px; background:var(--text-dark);}
.nav > ul > li > ul {border-top-left-radius:0; border-top-right-radius:0;}
.nav ul li ul li a {font-size:1rem; padding:1.62em 1.42em; line-height:1.2; color:var(--text-light);} 

#header-sticky .nav ul li a {line-height:clamp(50px, 5.2vw, 100px);}

/* -------- Nav Side ------------ */
.overlay-nav .modal-box {background:var(--section-dark) url(../images/bg-nav.svg) no-repeat left bottom; background-size:33% auto;}

.nav-side {display:flex; align-items:center; text-align:left; font-size:36px; font-size:clamp(24px, 1.875vw, 36px); padding-left:55%;}
.nav-side > div {flex:1;}
.nav-side ul {display:block; max-width:none;}
.nav-side ul li {flex:1 0 50%; text-align:right; font-size:1em;}
.nav-side ul li a {position:relative; overflow:hidden; border:none; font-size:1em; font-weight:900; color:#ffffff; line-height:1.208; padding:1.48em 3.8em; border-radius:2.08em;}
.nav-side ul li:hover > a,
.nav-side ul li.nav-open > a {background:none;}
.nav-side ul li a:hover {background:var(--nav-hover);}
.nav-side ul li ul li {font-size:0.77em;}
.nav-side ul li ul li a {font-size:1em; font-weight:600; line-height:1.2; padding:0.8289em 4.89em;}
.nav-side ul li ul li ul li {font-size:1em;}
.nav-side ul li ul li ul li a {font-weight:200;}

.nav-side .nav-small {font-size:24px; font-size:clamp(1rem, 24px, 1.25vw);}
.nav-side .nav-small li a {font-weight:24px; line-height:1.2; padding:1.5em max(15px, 1.2em) 1.5em max(15px, 1.2em); font-weight:500;}

.btn-sub {font-size:1.66em; width:1em; height:1em; margin:0.75em;}
.btn-sub:after {left:50%; top:50%; margin:-0.5em; border-radius:50%; background-position:-2em -12em;}
.btn-sub:hover:after {background-color:var(--nav-hover);}
.sub.nav-open > .btn-sub::after {background-position-x:-0.33em;}
.nav-side ul li ul li .btn-sub {font-size:2.14em; margin:0.16em 0.96em; height:1em;}

.nav-images {margin:clamp(50px, 7.8125vw, 150px); margin-right:34%; border-radius:0 0 var(--image-radius) var(--image-radius); overflow:hidden; box-shadow:4px 4px 16px rgba(0,0,0,0.2);}
.nav-images:before {content:""; display:block; position:absolute; z-index:2; left:0; right:0; top:0; bottom:0; background:var(--banner); opacity:0.2;}
.nav-images:after {content:""; display:block; position:absolute; z-index:3; left:0; right:0; top:0; bottom:0; background:linear-gradient(var(--banner2), transparent); mix-blend-mode:multiply; opacity:0.4;}

/* -------- Content ------------ */
@view-transition {
  navigation: auto;
}

/* Sections */
.bg-dark {background-color:var(--section-dark); padding:1px 0;}
.bg-light {background-color:var(--section-light); padding:1px 0;}
.bg-colours {background:linear-gradient(transparent 20px, rgba(255,255,255,0.9) 20px, #ffffff), url(../images/bg-colours.jpg) no-repeat center; background-size:100% 100%, 100% 100vh; background-attachment:scroll, fixed; padding:1px 0;}

/* Headers */
.content-padding > header {margin-bottom:1rem;}

.block-layout-text-scroll {padding:1px 0; overflow:clip;}
.block-layout-text-scroll header {padding-right:4%;}
.block-layout-text-scroll header:after {display:none;}
.block-layout-text-scroll header * {max-width:none;}
.block-layout-text-scroll .ce-textpic {padding-left:4%;}

/* Callout */
.grid .callout > div,
.grid .callout > div > div,
.grid .callout > div > div > div {height:100%;}
.grid .callout .content-padding > div {padding:clamp(40px, 60px, 3.125vw) clamp(16px, 60px, 3.125vw);}

.grid .callout .content-padding > .ce-above {padding:0;}
.grid .callout .content-padding > .ce-above .ce-gallery {margin:0;}
.grid .callout .content-padding > .ce-above .ce-bodytext {padding:clamp(16px, 2.6vw, 50px);}
.grid .callout .btn__primary,
.grid .callout .btn__secondary,
.grid .callout .btn__tertiary {display:block;}

.callout > div >  .content-padding > div {background:#ffffff; box-sizing:border-box; border-radius:var(--image-radius); padding:clamp(40px, 4.166vw, 80px) clamp(16px, 4.166vw, 80px); margin:16px 0; box-shadow:clamp(2px, 12px, 0.750vw) clamp(2px, 12px, 0.750vw) clamp(9px, 24px, 1.5vw) rgba(0,0,0,0.12);}
.callout .ce-bodytext-block {background:none; box-shadow:none; padding:0; margin:0;}
.group-slider .callout .content-padding {padding:clamp(10px, 36px, 1.875vw);}
.bg-dark .callout > div >  .content-padding > div {box-shadow:none; --text-color:var(--text-dark);}

.callout-dark > div >  .content-padding > div,
.callout-feature > div >  .content-padding > div {position:relative; box-shadow:none; background:var(--section-dark);}

.callout-feature > div >  .content-padding > div {margin-left:6.8%; padding-left:16.66%; padding-top:clamp(60px, 6.25vw, 120px); padding-bottom:clamp(60px, 6.25vw, 120px);}
.callout-feature > div >  .content-padding > div:before {content:""; display:block; width:20%; position:absolute; left:-6.8%; top:0; bottom:0; background:url(../images/callout.svg) no-repeat center; background-size:100% auto;}

.callout .col .content-padding {margin:0;}

/* Lightbox */
.lightbox a:after {font-size:40px; margin:0.5em; border:5px solid transparent; background-color:rgba(0,0,0,0.2); border-radius:50%;}

/* Video */
.video-wrap {overflow:hidden; margin:0 auto;}
.video-poster:before {background:linear-gradient(transparent, rgba(0,0,0,0.5)); opacity:1;}
.video-play {background:var(--primary); border:none; transition:transform 0.3s, background 0.3s; z-index:1;}
.video-play:hover {background:#ffffff; transform:scale(1.06);}
.video-poster .video-title {font-weight:900; text-wrap:balance;}

/* Caption */
.image-slide .image-caption {border-radius:0 0 var(--image-radius) var(--image-radius);}

/* Textpic */
.ce-image {overflow:visible;}

.ce-gallery:only-child {margin:0;}
.ce-textpic.ce-left.ce-nowrap .ce-gallery {padding-left:0; padding-right:50px; width:50%; max-width:50%; flex-basis:50%;}
.ce-textpic.ce-right.ce-nowrap .ce-gallery {padding-left:50px; padding-right:0; width:50%; max-width:50%; flex-basis:50%;}
.ce-textpic.ce-left.ce-nowrap .ce-bodytext {padding-left:50px; width:50%; max-width:50%; flex-basis:50%;}
.ce-textpic.ce-right.ce-nowrap .ce-bodytext {padding-right:50px; width:50%; max-width:50%; flex-basis:50%;}

.layout-text-card.ce-intext.ce-left.ce-nowrap .ce-bodytext-block,
.layout-text-card.ce-intext.ce-right.ce-nowrap .ce-bodytext-block {box-shadow:16px 16px 26px rgba(0,0,0,0.1); border-radius:clamp(var(--image-radius), 3.6458vw, 70px);}
.layout-text-card-small.ce-intext.ce-left.ce-nowrap .ce-bodytext-block,
.layout-text-card-small.ce-intext.ce-right.ce-nowrap .ce-bodytext-block {border-radius:clamp(var(--image-radius), 3.6458vw, 70px);}

/* Logo Gallery */
.layout-logo-gallery .ce-gallery .ce-row .ce-column {flex:1; max-width:500px; min-width:140px;}
.layout-logo-gallery.ce-image,
.layout-logo-gallery .ce-gallery {overflow:visible;}
.layout-logo-gallery .ce-gallery .ce-row {overflow:visible;}
.layout-logo-gallery .ce-column {padding:25px; padding:min(25px, 1.3vw); aspect-ratio:5 / 3;}
.layout-logo-gallery .image {flex-grow:1; background:#ffffff; text-align:center; justify-content:center; height:100%; box-sizing:border-box; border-radius:var(--image-radius); transform:scale(1.001); transition:transform 0.3s, box-shadow 0.3s;}
.layout-logo-gallery .image__wrap {line-height:0; display:flex; align-items:center; justify-content:center; padding:25px; padding:min(25px, 1.3vw); height:100%; box-sizing:border-box;}
.layout-logo-gallery .image__wrap:has(a) {padding:0;}
.layout-logo-gallery .image__wrap a {display:flex; align-items:center; justify-content:center; flex:1 0 100%; padding:25px; padding:min(25px, 1.3vw); height:100%; box-sizing:border-box;}
.layout-logo-gallery .image__wrap img {border-radius:0; max-height:100%;}
.layout-logo-gallery .image:has(a:hover) {transform:scale(1.04);}

/* Icon Gallery */
.layout-icon-gallery .ce-gallery {position:relative; }
.layout-icon-gallery .ce-outer,
.layout-icon-gallery .ce-inner {float:none;}
.layout-icon-gallery .ce-row {position:relative; overflow:visible; display:flex; flex-wrap:wrap; justify-content:space-around; text-wrap:balance; font-size:0;}
.layout-icon-gallery .ce-gallery .ce-row .ce-column {display:inline-block; vertical-align:top; font-size:200px; font-size:clamp(100px, 10.4vw, 200px); flex:1; min-width:2em; max-width:2em; padding:0.1em; box-sizing:border-box;}
.layout-icon-gallery .image {max-width:1.6em; margin:0 auto; overflow:visible;}
.layout-icon-gallery .image__wrap {display:flex; align-items:center; justify-content:center; width:1em; height:1em; margin:0 auto; border-radius:50%; box-shadow:0.02em 0.02em 0.1em rgba(0,0,0,0.1); overflow:hidden; transition:transform 0.3s, box-shadow 0.3s;}
.layout-icon-gallery .image__wrap:has(a):hover {transform:scale(1.06); box-shadow:0.02em 0.02em 0.1em rgba(0,0,0,0.05);}
.layout-icon-gallery .image-caption {text-align:center; font-size:clamp(12px, 0.9375vw, 1rem); margin-top:10px; text-wrap:balance;}
.layout-icon-gallery .image-title {font-weight:400; font-size:1.33em; line-height:1.2; margin-bottom:16px;}

/* -------- Buttons ------------ */  
/* Basic */
.btn__primary, .btn__secondary, .btn__tertiary, button[type="submit"] {z-index:0; font-size:18px; font-size:clamp(14px, 0.9375vw, 18px); min-width:10em; line-height:1.2; padding:1.62em 2em; margin:8px 0.7em; font-weight:700; background:#000000; border:none; box-shadow:-0.4em 0 0 var(--primary), 0.4em 0 0 var(--tertiary); transition:background 0.3s, box-shadow 0.2s cubic-bezier(0.64, 0.57, 0.67, 1.53);}
.btn__primary:before, .btn__secondary:before, .btn__tertiary:before, button[type="submit"]:before {display:none;}
.btn__primary:hover, .btn__secondary:hover, button[type="submit"]:hover {color:var(--text-light); box-shadow:-0.7em 0 0 var(--primary), 0.7em 0 0 var(--tertiary);}

.btn__primary:hover,
.btn-primary-white .btn__primary:hover,
.btn-primary-white button[type="submit"]:hover {color:var(--text-light);}
.text-white .btn__primary,  
.text-white button[type="submit"] {background:#0d0d0d;}

.btn__secondary {box-shadow:-0.4em 0 0 var(--secondary), 0.4em 0 0 var(--quaternary);}
.btn__secondary:hover,
.btn-secondary-white .btn__secondary:hover {color:var(--text-light); box-shadow:-0.7em 0 0 var(--secondary), 0.7em 0 0 var(--quaternary);}
.text-white .btn__secondary {background:#0d0d0d;}

.btn__tertiary {background:none; box-shadow:none; border:1px solid currentColor;}
.btn__tertiary:hover {color:var(--text-color); background:rgba(0,0,0,0.05);}
.text-white .btn__tertiary:hover {background:rgba(255,255,255,0.08); color:var(--text-light);}

/* Icon */
.btn__icon {display:inline-block; box-sizing:border-box; vertical-align:top; overflow:hidden; z-index:0; border-radius:1.66em; font-size:clamp(1rem, 1.25vw, 24px); line-height:1.2; padding:1.06em 1em 1.06em 3.6em; margin:0; font-weight:600; text-wrap:balance; transition:background 0.3s, color 0.3s;}
.btn__icon:after {font-size:2.5em; width:1em; height:1em; left:0.2em;  margin:0.16em 0;}
.btn__icon .small {display:block; margin-top:0.416em; font-weight:400;}

.btn__icon:hover {background:none; color:var(--primary);}
.text-white .btn__icon:hover {background:none;}

.btn__icon.icon-top {font-size:clamp(12.5px, 18px, 0.9375vw); font-weight:700; text-align:center; padding:4.34em 1em 1em 1em; width:6.66em;}
.btn__icon.icon-top:after {font-size:3.33em; left:50%; margin-left:-0.5em; top:0.1em;}

p.btn__icon:hover {color:var(--text-dark); background:none;}
.text-white p.btn__icon:hover {color:var(--text-light); background:none;}

/* Social */
.btn__social:hover:after {background-position-y:-8.66em;}
.btn__social:hover:before {background:var(--primary);}


/* Arrow */
.btn__arrow-text {font-size:clamp(1rem, 1.25vw, 24px);}

/* Circle */
.btn__circle {width:clamp(80px, 160px, 8.33vw); height:clamp(80px, 160px, 8.33vw);}
.btn__circle:before {font-size:clamp(80px, 160px, 8.33vw);}

.btn__circle.btn-video {width:clamp(100px, 200px, 10.416vw); height:clamp(100px, 200px, 10.416vw);}
.btn__circle.btn-video:before {font-size:clamp(100px, 200px, 10.416vw);}

.btn-video:before {background-image:url(../images/btn-video.svg);}
.text-white .btn-video:before {background-image:url(../images/btn-video_white.svg);}

.btn-text {font-size:clamp(14px, 1rem, 0.9375vw); line-height:1.2;}

/* Slider Buttons */
.splide__arrows {text-align:right;}
.splide__arrow {width:1.66em;}
.splide__arrow:after {width:1.66em; margin:-0.5em -0.833em; background-position:-0em -3.66em;}
.splide__arrow--next:after {background-position-x:-1.66em;}
.text-white .splide__arrow:after {background-position-y:-5.33em;}

/* Browse Menu */
.browse-menu a span {font-weight:700;}

/* -------- Banner ------------ */
.scroll-reveal.banner__text-block {transition-delay:0.3s;}

.banner__wrap .banner {overflow:visible;}
.banner__wrap .banner:after {content:""; display:block; position:absolute; left:0; right:0; bottom:0; padding-top:min(170px, 8.85%); margin-bottom:max(-85px, -4.425%); background:url(../images/banner-bottom.svg) no-repeat center; background-size:100% 100%;}

.banner {z-index:auto; padding:0; overflow:hidden;}
.banner__content {overflow:hidden;}
.banner-inset .content-padding {padding:0 clamp(16px, 5.2vw, 100px);}
.banner-inset .banner__content {border-radius: var(--image-radius);}
.banner__text {padding-bottom:12%;}
.banner__text-block {text-wrap:balance;}

.banner .content-large {max-width:1920px;}
.banner-inset .content-padding {margin:min(150px, 7.8125vw) auto;}
.banner-inset .margin-top-none {margin-top:0;}
.banner-inset .margin-bottom-none {margin-bottom:0;}
.banner-inset .margin-top-none .banner__text {padding-top:12%;}
.banner-inset .margin-bottom-none .banner__text {padding-bottom:12%;}

.splide .banner .content-padding,
.splide .banner .banner__content,
.splide .banner .banner__text {height:100%;}

/* -------- Image Menu ------------ */
.image-menu__wrap {overflow:visible;}
.block-type-site_clevgen_menu_image {overflow-x:clip;}
.banner .block-type-site_clevgen_menu_image {overflow:visible;}

.image-menu__text {padding-top:6%;}
.image-menu__card:hover .image-menu__text {color:var(--text-color);}
.image-menu__text {border-radius:var(--image-radius) 0 0 0;}
.image-menu__text:before {background:var(--section-dark); opacity:1; transition:background 0.3s;}
.image-menu__card p {color:var(--text-light); font-weight:700; transition:color 0.3s;}
.image-menu__card:hover p {color:var(--primary);}
.image-menu__btn {padding-top:30%; background:none;}
.image-menu__btn:after {background-position-y:-5.33em;}
.image-menu__card:hover .image-menu__btn {background:none;}
.image-menu__card:hover .image-menu__btn:after {background-position-y:-5.33em; filter:none;}

/* -------- POE ------------ */
.poe {position:relative; z-index:2; display:flex; justify-content:center; flex-wrap:wrap; gap:1.2em; padding:10px; font-size:48px; font-size:clamp(24px, 2.5vw, 48px); margin:0; box-sizing:border-box;}
.poe__item {position:relative; flex:1; min-width:10em; box-sizing:border-box; padding:0; font-size:1em;}
.poe__item a {position:relative; word-break:normal; overflow:hidden; z-index:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0.7em 1em; box-sizing:border-box; min-height:100%; background-color:var(--section-dark); font-size:1em; color:#ffffff; text-align:center; border-radius:1.29em; box-shadow:-0.4em 0 0 var(--primary), 0.4em 0 0 var(--tertiary); transition:box-shadow 0.2s cubic-bezier(0.64, 0.57, 0.67, 1.53);}
.poe__text {position:relative; z-index:2; text-align:center;}
.poe__title {display:block; font-family:var(--heading-font); font-size:1em; font-weight:900; line-height:1; transition:font-weight 0.3s;}

.poe__item:hover a {text-decoration:none; box-shadow:-0.6em 0 0 var(--primary), 0.6em 0 0 var(--tertiary);}
.poe__item:hover .poe__title {font-weight:600;}

/* -------- Card Menu ------------ */
.card-menu-card a {font-weight:900; border-color:var(--primary);}
.card-menu-card a:hover {font-weight:600; background:rgba(0,0,0,0.05);}

.bg-dark .card-menu-card a {background:none; color:#ffffff;  border-color:var(--primary);}
.bg-dark .card-menu-card a:hover {background:rgba(255,255,255,0.05);}

/* -------- Grid ------------ */
.grid .block {display:block;}
.group-tabs__btns a:hover {color:var(--text-color); background:var(--section-light);}
.bg-light .group-tabs__btns a:hover {background:#ffffff;}
.group-tabs__btns a.active {background:var(--primary);}

.grid-2up .block {width:50%; flex:0 0 50%; max-width:50%; margin:16px auto;}
.grid-4up .block {width:25%; flex:0 0 25%; max-width:25%; margin:0;}

.grid-2up .callout .content-padding > div {padding:clamp(16px, 5.2vw, 100px);}
.grid-4up .callout .content-padding > div {padding:clamp(16px, 1.5625vw, 30px);} 

.columns-middle .col {vertical-align:middle;}

/* -------- Tabs ------------ */
.tab {font-size:24px; font-weight:600; font-size:clamp(18px, 24px, 1.25vw); padding:1.5em 24px;}
.tab:hover {background:rgba(0,0,0,0.05);}
.tab.active {background:var(--primary); color:var(--text-light);}

.text-white .tab {color:#ffffff;}
.text-white .tab:hover {background:rgba(0,0,0,0.1);}
.text-white .tab.active:hover {background:var(--primary);}
.text-white .block-tab-header p {color:#ffffff;}
.text-white .block-tab-header:after {background-position-y:-15.33em;}
.text-white .block-tab.active .block-tab-header:after {background-position-y:-12em;}

/* -------- Accordion ------------ */
.expand-header p {font-size:clamp(18px, 24px, 1.25vw); line-height:1.2; padding-top:1.48em;  padding-bottom:1.48em; font-weight:600;}
.expand-content,
.expand-open .expand-content {padding-left:50px; padding-right:50px;}
.expand-content:after {display:none;}

.text-white .expand-header:after {background-position-y:-15.33em;}
.text-white .expand-header p {color:#ffffff;}

/* -------- News ------------ */
.mediaelement img {border-radius:var(--image-radius);}
.news-image {padding-bottom:56.25%;}
.news-image div {transform:scale(1.01);}

.news-date {opacity:0.5; margin:0;}

/* -------- Search ------------ */
.tx-indexedsearch-res h5 {font-size:1.2em;}

/* -------- Profiles ------------ */
.profile__card {background:#ffffff; box-shadow:4px 4px 16px rgba(0,0,0,0.1); border-radius:var(--image-radius); padding-top:50px; overflow:hidden;}
.profile__card:after {content:""; display:block; position:absolute; right:0; top:0; font-size:clamp(60px, 100px, 5.2vw); width:0.6em; height:0.6em; background-size:6em auto; background-position:-4.2em -8.2em; opacity:0.2; margin:0.3em;}
.profile__card .profile__name {color:var(--heading-color); font-weight:900;}
.profile__card .profile__position {color:var(--text-dark); font-size:clamp(1rem, 1.09375vw, 21px);}
.profile__teaser {padding-top:4%;}

.overlay-profile {align-items:center; justify-content:center; padding:clamp(50px, 5.2vw, 100px) 0;}
.overlay-profile .modal-box {height:80vh; padding:0; margin:auto 7.8%;}
.overlay-profile.open .modal-box {transform:rotateX(0deg);}
.profile__columns {display:flex; height:100%;}
.profile__left {flex:0 0 40%; height:100%; padding:0;}
.profile__right {flex:0 0 60%; height:100%; box-sizing:border-box; padding:clamp(16px, 100px, 5.2vw); padding-right:clamp(16px, 50px, 2.6vw);}
.overlay-profile .profile__image {display:block; position:relative; width:100%; max-width:none; height:100%; border-radius:0; box-sizing:border-box; margin:0;}
.overlay-profile .profile__image img {display:block; position:absolute; width:100%; height:100%; object-fit:cover; object-position:center top;}
.profile__text {padding:0 20px 0 0; margin:0 10% 0 0; position:relative; top:0; max-height:100%; box-sizing:border-box; overflow-y:auto;}
.profile__name {font-size:clamp(21px, 36px, 1.875vw);}

.profile__card .btn__tertiary,
.profile__card .btn__tertiary:hover {color:var(--text-color); border-color:currentColor;}

.text-white .overlay-profile .modal-box {color:var(--text-dark);}

/* -------- Footer ------------ */
#footer {overflow:hidden;}
.footer-top {position:relative; z-index:2; margin-top:min(260px, 13.54vw);}

.scroll-wrap.content-padding {max-width:1920px; margin:0 auto; padding:0 clamp(32px, 3.90625vw, 75px);}
.scroll-top {font-size:clamp(60px, 150px, 7.8125vw);}
.scroll-top:before {z-index:1; background-position-y:-2em;}
.scroll-top:after {background-color:var(--section-dark); border:none; box-shadow:-0.05em -0.05em 0 var(--primary), 0.05em 0.05em 0 var(--tertiary); transition:box-shadow 0.2s cubic-bezier(0.64, 0.57, 0.67, 1.53);}
.scroll-top:hover:after {margin:0; box-shadow:-0.06em 0.06em 0 var(--primary), 0.06em -0.06em 0 var(--tertiary);}

.footer-mid:before {content:""; display:block; position:absolute; z-index:-1; left:0; right:0; top:max(-260px, -13.54vw); padding-bottom:min(768px, 40%); background:url(../images/bg-footer.svg) no-repeat center; background-size:100% 100%;}
.footer-mid .columns {gap:clamp(20px, 4.16vw, 80px);}
.footer-mid .columns .content-padding {padding:0 clamp(16px, 4.6875vw, 100px);}
.footer-mid .columns {display:flex; margin:0 auto;}
.footer-left {flex:1; min-width:260px; z-index:1; box-shadow:4px 4px 9px rgba(0,0,0,0.2); border-radius:0 clamp(20px, 5.9375vw, 114px) clamp(40px, 14.0625vw, 270px) 0;}
.footer-left:before {content:""; display:block; position:absolute; right:100%; top:0; bottom:0; background:var(--footer-left); width:calc((100vw - 1920px) / 2);}
.footer-left .grid {margin:0; gap:0 clamp(16px, 3.125vw, 60px); overflow:hidden;}
.footer-left .grid .block {padding:0;}
.footer-left .grid > .block:before {content:""; position:absolute; left:clamp(-30px, -1.5625vw, -8px); top:0; bottom:0; margin:16px 0; border-left:1px solid var(--lines);}
.footer-left p {margin:0;}
.footer-mid .footer-right {display:flex; flex-direction:column; justify-content:center; flex:0 0 36%; width:auto; border-radius:clamp(40px, 14.0625vw, 270px) 0 0 clamp(40px, 14.0625vw, 270px);}
.footer-right:before {content:""; display:block; position:absolute; left:100%; top:0; bottom:0; background:var(--footer-left); width:calc((100vw - 1920px) / 2);}


.footer-links {display:block; margin:0; text-wrap:balance;}
.footer-links ul li {font-size:clamp(14px, 1.25vw, 24px);}
.footer-links ul li a {position:relative; z-index:0; font-size:clamp(14px, 1.09375vw, 21px); line-height:1.2; font-weight:600; color:var(--text-color); padding:0.6em 1.06em; overflow:hidden; transition:background 0.3s, color 0.3s;}
.footer-links ul li a:hover,
.text-white .footer-links ul li a:hover {background:none; color:var(--primary);}
.footer-links.footer-links-large {margin:0;}
.footer-links.footer-links-large ul li {margin:0;}
.footer-links.footer-links-large ul li a {font-size:clamp(24px, 1.875vw, 36px); font-weight:900; line-height:1.2; padding:0.233em 0.8em;}

.footer-bottom {padding:12px 0; margin:0 auto;}
.footer-bottom .content-padding {padding:0 clamp(32px, 150px, 7.8125vw);}
.website a {background:none;}
.copyright {font-weight:300;}
.copyright strong {font-weight:600;}
.website span {font-weight:400;}


/* -------- Media Queries ------------ */
@media screen and (max-width:1920px) {
	/* -------- Content ------------ */
	.video-poster:after {font-size:16.25vw;}
}

@media screen and (max-width:1800px) {
	/* -------- Content ------------ */
	.ce-textpic.ce-left.ce-nowrap .ce-gallery {padding-right:40px;}
	.ce-textpic.ce-right.ce-nowrap .ce-gallery {padding-left:40px;}
	.ce-textpic.ce-left.ce-nowrap .ce-bodytext {padding-left:40px;}
	.ce-textpic.ce-right.ce-nowrap .ce-bodytext {padding-right:40px;}
}

@media screen and (max-width:1600px) {
	/* -------- Forms ------------ */
	input::file-selector-button {margin-left:-16px;}
	/* -------- Content ------------ */
	.ce-textpic.ce-left.ce-nowrap .ce-gallery {padding-right:30px;}
	.ce-textpic.ce-right.ce-nowrap .ce-gallery {padding-left:30px;}
	.ce-textpic.ce-left.ce-nowrap .ce-bodytext {padding-left:30px;}
	.ce-textpic.ce-right.ce-nowrap .ce-bodytext {padding-right:30px;}
}

@media screen and (max-width:1300px) {
	/* -------- Header ------------ */
	.header-logo {border:none;}
	#header-sticky .header-button span {display:none;}
	#header-sticky .header-phone span {display:block;}
	/* -------- Content ------------ */
	.ce-textpic.ce-left.ce-nowrap .ce-gallery {padding-right:20px;}
	.ce-textpic.ce-right.ce-nowrap .ce-gallery {padding-left:20px;}
	.ce-textpic.ce-left.ce-nowrap .ce-bodytext {padding-left:20px;}
	.ce-textpic.ce-right.ce-nowrap .ce-bodytext {padding-right:20px;}
	/* -------- Profile ------------ */
	.profile__card {padding-top:20px;}
	/* -------- Grid ------------ */
	.grid-4up .block {width:50%; flex:0 0 50%; max-width:400px;}
	/* -------- Accordion ------------ */
	.expand-header:after {right:16px;}
	.expand-header p {padding-left:16px; padding-right:50px;}
	.expand-content,
	.expand-open .expand-content {padding-left:16px; padding-right:16px;}
}

@media screen and (max-width:1280px) {
	/* -------- Nav SIde ------------ */
	.nav-side {padding-left:0; margin:0 0 0 auto; max-width:640px;}
	.nav-side ul li a {padding-left:1.48em;}
	.nav-side ul li ul li a {padding-left:0.82em;}
	.nav-images {display:none;}
}

@media screen and (max-width: 1200px) {
	/* -------- Grid ------------ */
	.grid .block {flex-basis:50%; width:50%; max-width:50%;}
}

@media screen and (max-width:1080px) {
	/* -------- Header ------------ */
	.logo-overhang .header-logo a {height:1.3em; margin:0 0 -0.3em 0.2em;}
	.header-logo .logo-vertical {display:none;}
	.header-logo .logo-horizontal {display:block;}
	/* -------- Grid ------------ */
	.grid-2up {display:block;}
	.grid-2up .block {display:block; width:100%; flex:0 0 100%; max-width:480px;}
	/* -------- Profile ------------ */
	.overlay-profile .modal-box {max-height:none; max-width:480px; height:auto; margin:auto 16px;}
	.profile .btn__close {background-color:rgba(255,255,255,0.4); font-size:40px;}
	.profile__columns {display:block;}
	.profile__left {position:relative; display:block; width:auto; height:0; padding-bottom:80%;}
	.overlay-profile .profile__image {position:absolute;}
	.profile__right {display:block; width:auto; padding:0;}
	.profile__text {display:block; width:auto; padding:0; margin:16px; height:auto; top:auto;}
}

@media screen and (max-width:960px) {
	/* -------- Text ------------ */
	.col:first-child .align-right {text-align:left;}
	.ce-bodytext-block img {display:block; margin:0 auto;}
	.ce-right .overhang {margin-right:0;}
	.indent-small {margin-left:0.6rem;}
	.indent-medium {margin-left:1.2rem;}
	.indent-large {margin-left:1.8rem;}
	/* -------- Header ------------ */
	.header-button span {display:none;}
	/* -------- Modals ------------ */
	.btn__close {font-size:40px;}
	.modal-box {height:auto; max-height:none;}
	.modal-scrollbox.scrollbar {height:auto; max-height:none;}
	.modal-box .columns {max-width:none;}
	.modal-box .col {max-width:none; padding:20px 0;}
	.modal-box .col .block {max-width:480px; margin:0 auto;}
	/* -------- Content ------------ */
	#body {background-size:960px auto, auto;}
	.ce-textpic.ce-left.ce-nowrap .ce-gallery,
	.ce-textpic.ce-right.ce-nowrap .ce-gallery,
	.ce-textpic.ce-left.ce-nowrap .ce-bodytext,
	.ce-textpic.ce-right.ce-nowrap .ce-bodytext {padding:0; width:auto; max-width:480px; flex-basis:100%;}	
	#content .col {display:block; max-width:480px; margin: 0 auto;}
	#content .padding-right-none .col:has(.splide) {max-width:none;}
	header:has(+ .columns-wrap) {display:block; max-width:480px; margin: 0 auto;}
	.margin-top-small {margin-top:40px;}
	.margin-bottom-small {margin-bottom:40px;}	
	.margin-top-large {margin-top:60px;}
	.margin-bottom-large {margin-bottom:60px;}	
	.overlay-video .content-padding {padding:0;}
	.overlay-video .header-button.close:before {background-position-y:-2em;}
	/* -------- Buttons ------------ */
	.btn__icon {font-size:16px; border:none;}
	.btn__icon .small {margin-left:0;}
	.padding-right-none .splide__arrows {padding-right:16px;}
	/* -------- Image Menu ------------ */
	.image-menu__card {padding-top:60%;}
	.image-menu__btn {padding-top:16px;}
	/* -------- POE ------------ */
	.poe {display:block; max-width:480px; margin:0 auto;}
	.poe__item {margin:16px 0;}
	/* -------- Grid ------------ */
	.columns-4060 .col:first-child {width:auto;}
	.columns-6040 .col:first-child {width:auto;}
	.margin-bottom-left {padding-bottom:0;}
	.margin-bottom-left .col:first-child .block:last-child {margin-top:0; top:0;}
	/* -------- Footer ------------ */
	#footer .body-cell {background-size:125% auto; background-position:left top;}
	.scroll-top {left:0; top:-0.5em; margin:auto;}
	.footer-mid .columns {display:block; padding:0;}
	.footer-left {display:block; padding:36px 16px; margin:0 16px; border-radius:40px; width:auto;}
	.footer-mid .footer-right {padding:40px; margin:16px; border-radius:40px;}
	#footer .grid {display:block; max-width:480px; margin:0 auto;}
	#footer .grid .block {display:block; padding:0; margin:0;}
	.footer-left .span-width {display:block;}
	.footer-left p {display:inline-block; vertical-align:top; text-align:center; margin:0;}
	.footer-left p:has(.btn-location) {display:block;}
	.footer-left .btn-location {text-align:center; padding:40px 8px 8px 8px;}
	.footer-left .btn-location:after { top:0; left:0; right:0; margin:auto;}
	.footer-left {padding:12px 0; text-align:center;}
	.footer-links {margin:16px 0; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,0.2);}
	.footer-links ul li {display:inline-block;}
	.footer-links ul li a {padding:10px 10px 8px 10px;}
	.footer-links.footer-links-large {margin:16px 0;}
	.footer-links.footer-links-large ul li a {font-size:21px; padding:10px 10px 8px 10px;}
	.footer-bottom {position:relative;}
}

@media screen and (max-width:800px) {
	/* -------- Tabs ------------ */
	.block-tab-content {padding:16px;}
	.block-tab-header:after {margin-right:16px;}
	.block-tab-header p {padding:0.78em 50px 16px 16px;}
}

@media screen and (max-width:700px) {
	/* -------- Content ------------ */
	.block-layout-text-scroll header {padding-right:0;}
	.block-layout-text-scroll .ce-textpic {padding-left:0;}
}

@media screen and (max-width:600px) {
	/* -------- Callout ------------ */
	.callout-feature > div >  .content-padding > div {margin:6.8% 0 0 0; padding-top:20%; padding-left:clamp(16px, 4.166vw, 80px);}
	.callout-feature > div >  .content-padding > div:before {background:url(../images/callout-top.svg) no-repeat center; left:0; right:0; top:0; bottom:auto; width:auto; padding-bottom:20%; margin-top:-6.8%;}
	/* -------- Grid ------------ */
	.grid-4up .block {width:auto; flex:0 0 100%; max-width:400px; margin:16px auto;}
	.grid .block {flex-basis:100%; width:100%; max-width:480px;}
}

@media screen and (max-width:540px) {
	/* -------- Header ------------ */
	#header-sticky .header-phone span {display:none;}
	/* -------- Buttons ------------ */
	.header-button.header-phone {width:1em; padding:0;}
	.header-button.header-phone span {display:none;}
}

@media screen and (max-width:440px) {
	/* -------- Nav SIde ------------ */
	.nav-side ul li a {padding:1em 2.5em 1em 1em;}
	.nav-side ul li ul li a {padding:1em 3.33em 1em 1.33em;}
	.btn-sub {margin:0.4625em 0.2em;}
	.nav-side ul li ul li .btn-sub {margin:0.25em 0.2em;}
	/* -------- Buttons ------------ */
	.btn__icon .small {display:block;}
}
