@import url(https://fonts.googleapis.com/css2?family=Aleo:ital,wght@0,100..900;1,100..900&family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap);

/* Not ideal, due to limitations of Bootstrap */
body {
    overflow-x: hidden;
}

:root {
    --primaryColor: rgb(51 215 200); /* #33d7c8 */
    --secondaryColor: rgb(0 120 110); /* #00786e */
    --tertiaryColor: #002244; 
    --color-white: #fff;
    --accentColor: #91b961;
    --informaFooterColor: #002244;
    --primaryFont: "Open Sans";
    --color-dark: #000;
    --color-dark-gray: #555;
    --color-light-gray: #ccc;
    
    --home-banner: url(https://greenbuild.informaconnect.com/eventAssets/gbuild_2027_261022174640/image/gb27/greenbuild-hero-background.jpg);
    --sfi-home-banner: url(https://greenbuild.informaconnect.com/eventAssets/gbuild_2027_261022174640/image/gb27/sfi-hero-background.jpg);
}


/* GRID
------------------------------------------------------*/

body {
    height: 100vh;
    padding: 0;
    margin: 0;
}

#flex {
    height: 100%;
    padding: 0;
    margin: 0;
    background-color: transparent;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

#flex {
    height: 100%;
    padding: 0;
    margin: 0;
    background-color: transparent;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

#flex header {
    order: 0;
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: auto;
    align-self: auto;
}

#flex main {
    order: 1;
    flex-grow: 10;
}

#flex .privacy,
#flex .disclaimer {
	order: 2;
	flex-grow: 0;
}

#flex footer {
    order: 3;
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: auto;
    align-self: center;
}

.heightadjust,
.heightmatch {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	flex-wrap: wrap;
}

/* Match heights and center content */
.heightadjust > [class*='col-'] {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/* Match heights WITHOUT centering content */
.heightmatch > [class*='col-'] {
	display: flex;
	flex-direction: column;
}


/* FONT SIZES
------------------------------------------------------*/
*, html, body, .ui-widget input, p, label { font-family: var(--primaryFont), sans-serif }

_:-ms-lang(x), input.form-control {
	display: inline-block;
}

::selection { background-color: var(--accentColor); color: var(--color-white); }


html { 
	font-size: 15px;
}

@media screen and (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

h1, h2, h3, h4, h5, h6 { 
	color: var(--secondaryColor); 
	font-family: var(--primaryFont); 
	text-wrap: balance; 
}

main h1 {
    color: var(--primaryColor);
    font-family: "Aleo", serif;
}

main h2, main h3, main h4 { color: var(--secondaryColor); }

main h3 {font-size: 2rem;}


h1 { font-size: 3rem; font-weight: 600; }
h2 { font-size: 2.143rem; }
h3 { font-size: 1.714rem; }
h4 { font-size: 1.2857rem; }

p {
	font-size: 1rem;
	margin-bottom: 1em;
}

.landing-page p { 
	font-size: 1.1rem;
}

.desc-text {
    margin-top: 20px; 
}

.landing-page .desc-text p {
    margin: 20px auto; 
    font-size: 0.9rem; 
}

.desc-text img {
    width: 30%; 
}


/* THEME STYLES */

a, a:active, a:visited, a:hover { color: var(--accentColor); }
a:hover { text-decoration: underline; }

body { 
	accent-color: var(--accentColor);
	background-color: var(--color-white);
	color: var(--color-dark);
}

h1:first-child, 
h2:first-child, 
h3:first-child,
h4:first-child {
	margin-top: 0;
}

h1:last-child, h2:last-child, h3:last-child, h4:last-child, p:last-child {
	margin-bottom: 0;
}

span.nowrap {
	white-space: nowrap;
}

.text-center img {
	margin-right: auto;
	margin-left: auto;
}



/* HEADER */

header {
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
	text-align: center;
}

header h3 { 
	color: var(--tertiaryColor); 
	margin: 0;
	line-height: 1.2;
	font-size: 1rem;
}

header h3:first-child { 
	margin-top: 1em;
}

header label[isrequired] { display: none; }

header .event-dates {
	font-size: 1.125em;
	font-weight: bold;
	text-transform: uppercase;
}

header .event-locale {
	display: block;
}

header .event-logo { 
	width: 100%;
	max-width: 343px;
	height: auto;
	margin: 0 auto;
}

.sfi header .event-logo {
	max-width: 650px;
}

.sfi header .event-logo.visible-xs {
	max-width: 397px;
}


header form { background-color: var(--color-white); margin-top: 70px; margin-bottom: 20px; padding: 15px 10px; }


@media screen and (min-width: 768px) {
	#flex:not(.sfi) header {
		text-align: left;
	}

	#flex:not(.sfi) header .event-logo { 
		margin: 0;
	}

	#flex:not(.sfi) header h3:first-child { 
		margin-top: 0;
	}
		
	header .event-locale {
		display: inline;
	}
	
	header .event-locale:before {
		content: "\2022\00A0";
	}

}

@media screen and (min-width: 992px) {
	.sfi header {
		text-align: left;
	}

	.sfi header .event-logo { 
		margin: 0;
	}

	.sfi header h3:first-child { 
		margin-top: 0;
	}

	header .event-locale {
		display: block;
	}
	
	header .event-locale:before {
		content: unset;
	}

}



/* MAIN */


.page-banner {
    align-items: center;
    background-image: var(--home-banner);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: right bottom;
    display: flex;
    flex-direction: column;
    padding: 2.5rem 0;
}

.sfi .page-banner {
	background-image: var(--sfi-home-banner);
}

@media screen and ( max-width: 991px ) {
	.page-banner {
		background-position: center bottom;
	}
}

.landing-page main .page-banner,
.landing-page main .help-wrapper,
.inside-page main {
	margin-bottom: 3.5rem;
	width: 100%;
}


/* Login Box */

@media screen and ( max-width: 767px ) {
	.login-box,
	aside {
		text-align: center;
	}
}


.login-box,
aside { 
	background-color: var(--color-white); 
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
	border-radius: .5rem;
	padding: 1.5rem;
	width: 100%;
}

.login-box .email_form1 {
	padding: 0;
}

.login-box label,
.login-box .IP_PageBuilder_Registration .ip-elementEmpty:first-of-type,
.notRequiredSymbolClass {
    display: none;
    margin-left: auto;
    margin-right: auto;
}

.login-box h3 {
	font-size: 1.625rem;
    font-weight: 700;
    text-transform: none;
}

.login-box p {
	margin-bottom: 10px;
}

.login-box .ip-buttonBar {
	margin: 0;
	padding: 0;
}


/* Aside */
aside {
	border: 1px dotted var(--color-light-gray);
	box-shadow: none;
}

aside h4:first-child {
	margin-top: 0;
}


.landing-page:has(.banner) .landing-page-main {
    display: flex;
    flex-direction: column;
    height:100%;
    min-height: clamp(calc(100vh - 52rem), 60vh, calc(100svh - 54rem));
    padding-top: 3rem;
}
.landing-page .landing-page-main {
    display: flex;
    flex-direction: column;
    height:100%;
    min-height: clamp(calc(100vh - 52rem), 60vh, calc(100svh - 54rem));
    padding: 0 0 3rem;
}
body[class$="press"] .landing-page .landing-page-main {
    min-height: clamp(calc(100vh - 49rem), 60vh, calc(100svh - 52rem));
}

header {
    order: 0;
}
main#main {
    order: 1;
    flex: 10 1 auto;
    padding: 20px 0;
}
.landing_page main#main aside {
    margin: 1rem 2px;
}


/* Intro */

@media screen and ( max-width: 767px ) {
	.home-intro {
		text-align: center;
	}
}


.home-intro p,
.home-intro h4 {
	color: var(--color-white);
}

.home-intro h4 {
	font-size: 1.5rem;
	font-weight: 700;
}

@media screen and ( max-width: 991px ) {
    .home-intro { 
        background-color: rgba(0, 0, 0, 0.4);
        padding: 1.5rem;
        margin-bottom: 3.5rem;
        border-radius: .5rem;
        box-shadow: inset 0 0 50px 15px rgba(0, 0, 0, 0.5);
    }
}


/* HELP */

@media screen and (min-width: 768px) {
	.help-wrapper .nowrap {
		display: block;
	}
}



.help-card { 
	text-align: center;
	padding-bottom: 2rem;
}

.help-card:last-child {
	padding-bottom: 0;
}

@media screen and (min-width: 768px) {
	.help-card {
		padding-bottom: 0;
	}
}

.help-card img { 
	width: 100%; 
	max-width: 140px; 
	height: auto;
}

.help-card img:hover { 
	filter: hue-rotate(269deg); 
	transition: all ease-in 0.4ms;
}

.help-card h3 { 
	font-size: 1.75rem;
	font-weight: 600;
}

.help-card .btn-success { 
	margin-top: 1rem; 
	color: var(--color-dark);
}



/* PRIVACY */

.privacy { background: #f1f2f2; padding: 20px; }
.privacy p { font-size: 0.9rem; }




@media screen and ( min-width: 992px ) {
    .right-home-banner { background-size: auto 101%; height: auto; margin-bottom: 50px; }
}

/* BUTTONS */

.ip-buttonBar {
	margin-top: 2rem;
	margin-bottom: 2rem;
	text-align: right;
}

.landing-page .ip-buttonBar {
	margin-top: unset;
	margin-bottom: unset;
	text-align: unset;
}





.inner-page .ip-buttonBar { text-align: right; }
.inner-page div[unique_id="FMNIzz81"], .inner-page div[unique_id="MFkeYY81"] { position: relative; }
.inner-page label[for='MFkeYY81'], .inner-page label[for='FMNIzz81'] { position: absolute; left: -11px; top: 7px; }


.btn {
	text-transform: uppercase;
	font-size: 0.9375rem;
	padding: 10px 40px;
	font-weight: 700;
}

.btn:not(.btn-cancel),
.btn-submit,
.btn-success, 
.ip-buttonBar a.btn-add, 
.ip-buttonBar a.btn-submit,
.ip-buttonBar a.ip-otp-request-btn  { 
	background-color: var(--primaryColor); 
	border: 2px solid transparent; 
	border-radius: 4px; 
	color: var(--color-dark); 
}

.btn:not(.btn-cancel):hover,
.btn-submit:hover,
.btn-success:hover,
.ip-buttonBar a.btn-add:hover,
.ip-buttonBar a.btn-submit:hover,
.ip-buttonBar a.ip-otp-request-btn:hover { 
	background-color: var(--accentColor);
}

h2 .btn.btn-success,
h2 .btn.btn-success:focus,
h2 .btn.btn-success:hover,
h2 .btn.btn-success:active {
	background-color: var(--secondaryColor);
	color: var(--color-white);
	transition: all ease-in 0.3s;
	padding: 10px 20px;
}

h2 .btn.btn-success:focus,
h2 .btn.btn-success:hover,
h2 .btn.btn-success:active {
	background-color: var(--secondaryColor);
	color: var(--color-white);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
	filter: brightness(0.75);
	outline: unset;
	outline-offset: unset;
	text-decoration: none;
}

.help-section { background-color: var(--color-white); border-radius: 20px; color: var(--color-dark); float: right; font-size: 0.95rem; margin: 40px 0; padding: 10px; text-align: right; width: 65%;}
.index_registrations_profile #tDHJdI89 .textElement-label { font-weight: bold; line-height: 2; }
.index_registrations_profile label[for="JkWBEV46"] { line-height: 1.4; }
.index_registrations_packages .ip-buttonBar, .index_registrations_review .ip-buttonBar, .index_registrations_payment .ip-buttonBar { text-align: right; }


.index_registrations_delegate h1 { text-transform: uppercase; }
.index_registrations_delegate .email_form1 { padding-inline: 0; }

.index_registrations_blackhat .login-box .requiredSymbol, 
.landing-page .btn-cancel, 
.landing-page .login-box label[isrequired="1"] { 
	display: none;
}
.requiredSymbol { line-height: 1.1; }
.privacy-policy { background: rgba(207, 207, 207, 0.973); color: var(--color-dark); font-size: 0.85rem; margin: 20px; auto 0; }
.privacy-policy a, .privacy-policy a:visited { font-weight: bold; text-decoration: underline; }
.privacy-policy .container { padding-top: 40px; padding-bottom: 40px; }

@media screen and ( width > 768px ) {
    .flex-centred { align-items: center; display: flex; }
}

.poweredby { align-items: center; color: var(--color-white); display: flex; margin-top: 40px; }
.poweredby img { margin: 4px 10px; width: 200px; }
.reg-help-box a { display: block; text-decoration: none; }
.reg-help-box { background: #00b8c0 url(/eventAssets/stgev2_stg_cng25_241021175610/image/cable-nextgen25/help-icon.png); background-repeat: no-repeat; background-position: 0 center; border-radius: 20px; color: var(--color-dark); margin-top: 20px; padding: 8px 8px 8px 100px; }
.reg-help-box h3 { font-size: 1rem; font-weight: 700; margin: 10px 0; }
.reg-help-box span { background-color: #000000; color: var(--color-white); padding: 3px 10px; margin-left: 10px; }
.reg-help-box h3, .reg-help-box p { line-height: 1; }
.reg-help-box p:last-child { font-size: 0.8rem; line-height: 2; }
.reg-help-box p { font-weight: bold; }

.iti__selected-dial-code, #ip-financialSummary-Container, .well { color: #000000; margin-top: 15px; }
.iti__country-name, .iti__dial-code { color: var(--color-dark); }
.index_registrations_payment .financialSummary, .index_registrations_review .financialSummary { color: var(--color-dark); }
.index_registrations_review span.ip-elementContent {/*font-weight: 500;*/ }
.index_registrations_review .financialSummary img { width: auto; }
.iti__selected-dial-code { margin-top: 0; }

.reg-wrap { background-color: #1a005e; border-radius: 10px; color: var(--color-white); margin: 20px; padding: 15px 20px; }
.reg-wrap h3 { clear: both; color: var(--primaryColor); font-size: 1.6rem; font-weight: 700; margin: 0; padding: 0; width: 100%; }
.index_registrations_profile .ip-elm-checkbox-multi.ip-element label[for="hkLqGU81-117"], .index_exhibitorreg_portal .login-box label[for="rememberMe"] { width: 90%; }
.index_exhibitorreg_portal label[for="rememberMe"] + span.ip-elementContent { float: left; }

.index_registrations_demographics .questionResponse.questionResponseCheckbox label { font-weight: normal; }

.index_forgot-password_index .btn-submit { margin-right: 10px; }

.index_forgot-password_index form { padding: 20px; }
@media screen and (min-width: 778px) {
    .index_forgot-password_index form input[type=text] { width: 30%; }
}
main a[href*="/index/exhibitorreg/managereg/oid/"] { display: block; text-align: left; }


/** Not-setup section */
.index_checkin_not-setup .ip-buttonBar>a {
    background-color: var(--primaryColor);
    color: var(--color-white);
    transition: all ease 0.3s;
    border: 1px solid var(--primaryColor);
    padding: 10px 40px;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.42857143;
    text-align: center;
    vertical-align: middle;
    cursor: pointer;
    border-radius: 4px;
    text-decoration: none;
}

.index_checkin_not-setup .ip-buttonBar>a:hover { background-color: var(--accentColor); border: 1px solid black; color: var(--color-white); }
.index_checkin_not-setup .ip-buttonBar { justify-content: flex-start; margin-top: 2rem; }
.index_checkin_not-setup .right-home-banner { margin-bottom: 0; }
.index_registrations_review .ip-sectionTitle { display: none; }
.index_registrations_packages .ip-elementAdditionalPackages { display: block; }


@media screen and ( width > 992px ) {
    .index_registrations_press .right-home-banner {
        height: 420px;
    }
}

/* WIDGET */

.ui-widget-content a { color: var(--color-dark); }

.ui-widget-header {
	color: var(--tertiaryColor);
}

.ui-widget #otpContainer {
	margin-top: 1rem;
}

.ui-widget .ip-buttonBar {
	margin-top: 1rem;
	margin-bottom: 0;
	text-align: left;
}


