@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);

:root {
	--color-black: #000;
	--color-white: #fff;
	
	--color-gray-100: #f1f1f1;
	--color-gray-200: #e9e9ec;
	--color-gray-300: #ccc;
	--color-gray-700: #555;
		
	--color-primary: #bf1b4f;
	--color-secondary: #002244;
	--color-accent: #eeaf00;
	--color-informa-gray: #454955;
	
	--color-text: var(--color-secondary);
	--color-background: var(--color-white);
	
	--font-primary: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif;
	--font-secondary: "Aleo", Georgia, "Times New Roman", Times, serif;
}

/* Not ideal, due to limitations of Bootstrap */
body { 
	overflow-x: hidden;
}

/* GRID
------------------------------------------------------*/

body {
    min-height: 100vh;
    padding: 0;
    margin: 0;
}

.flex-layout {
	min-height: 100vh;
    padding: 0;
    margin: 0;
    background-color: transparent;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

.flex-layout header {
    order: 0;
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: auto;
}

.flex-layout main {
    order: 1;
    flex-grow: 10;
}

.flex-layout aside.privacy-notice {
	order: 2;
	flex-grow: 0;
}

.flex-layout footer {
    order: 3;
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: auto;
}

.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;
}


/* BASE FONT SIZES AND COLORS
------------------------------------------------------*/

html,
body,
.ui-widget,
.ui-widget input, 
p, 
label { 
	font-family: var(--font-primary);
}

_:-ms-lang(x), input.form-control {
	display: inline-block;
}

html { 
	font-size: 17px;
}

@media screen and (min-width: 768px) {
    html {
        font-size: 20px;
    }
}

body {
	font-size: 1rem;
	color: var(--color-text);
	background-color: var(--color-background);
}

h1, h2, h3, h4, h5, h6, 
.ip-sectionTitle,
table.financialSummary .chargesHeaderRow {
	font-weight: 700;
	text-wrap: balance;
}

h1 {
    font-family: var(--font-secondary);
    font-size: 2.2rem;
}

h2,
table.financialSummary .chargesHeaderRow {
    font-family: var(--font-secondary);
    font-size: 1.6rem;
}


h3,
.ui-dialog-title,
.ip-sectionTitle {
	font-size: 1.05rem;
}

h4 {
	font-size: 1rem;
}

p {
	margin-bottom: 1em;
	text-wrap: pretty;
}

a,
a:focus,
a:hover,
a:active {
	color: var(--color-primary);
	font-weight: 700;
}

/* All REGIONS
------------------------------------------------------*/

span.nowrap {
	white-space: nowrap;
}


/* BUTTONS
------------------------------------------------------*/

.landing-page .ip-buttonBar {
	margin-top: unset;
	margin-bottom: unset;
	text-align: unset;
}

.btn,
input.btn {
	text-transform: uppercase;
	font-size: 1.1em;
	padding: 0.636em 1.364em;
	font-weight: 700;
	line-height: 1;
}

.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(--color-accent); 
	color: var(--color-white);
	border: none; 
	border-radius: 5px; 
	transition: all ease-in 0.3s;
}

.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(--color-accent);
	color: var(--color-white); 
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
	filter: brightness(0.90);
}

h2 .btn.btn-success,
h2 .btn.btn-success:focus,
h2 .btn.btn-success:hover,
h2 .btn.btn-success:active {
	font-family: var(--font-primary);
	font-size: 0.8rem;
	background-color: var(--color-primary);
	color: var(--color-white);
	transition: all ease-in 0.3s;
	padding: .5rem 1rem;
	margin: 0 1em;
}

h2 .btn.btn-success:focus,
h2 .btn.btn-success:hover,
h2 .btn.btn-success:active {
	background-color: var(--color-primary);
	color: var(--color-white);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
	filter: brightness(0.90);
	outline: unset;
	outline-offset: unset;
	text-decoration: none;
}


/* HEADER
------------------------------------------------------*/

header {
	background-color: var(--color-secondary);
    background-image: url(https://servicesupport.informaconnect.com/eventAssets/hdissw_2027_261105101327/image/hdi-2027/hdi-landing-background.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
    padding: 3rem 0;
    margin: 0;
}

.inside-page header {
	background-image: url(https://servicesupport.informaconnect.com/eventAssets/hdissw_2027_261105101327/image/hdi-2027/hdi-inside-background.jpg);
}

header .event-logo { 
	width: 100%;
	max-width: 805px;
	height: auto;
	margin: 0 auto;
}

@media screen and (min-width: 768px) {
	header {
		text-align: left;
	}

	header .event-logo { 
		margin: 0;
	}
}

/* MAIN
------------------------------------------------------*/

main {
	padding: 2rem 0;
	margin: 0;
}

main .email_form1 {
	padding: 0;
}


/* HELP */

.help-content p:last-child {
	margin-bottom: 0;
}


/* Header Help Box */
header .help-content {
	background-color: rgba(255, 255, 255, 0.80);
	color: var(--color-text);
    display: inline-block;
    max-width: 100%;
    padding: 1em;
    font-size: 0.8rem;
    border-radius: 1em;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
	text-align: center;
	margin: 0 0 0 auto
}

header .help-content h4 {
	margin: 0;
	font-size: inherit;
}

header .help-content p {
	font-size: inherit;
}


@media (min-width: 768px) {
    header .help-content {
        float: right;
    }
}

@media (max-width: 767px) {
    header .help-content {
        margin: 1rem auto 0 auto;
        display: block;
        width: fit-content;
    }
}




/* PRIVACY
------------------------------------------------------*/

aside.privacy-notice {
	background-color: var(--color-gray-200);
	color: var(--color-gray-700);
	font-size: .8rem;
	padding: 1.4em 0;
}

aside.privacy-notice p:last-child {
	margin-bottom: 0;
}


/* SIDEBAR
------------------------------------------------------*/

aside.sidebar {
	font-size: .85rem;
	background-color: var(--color-white); 
	border-radius: .5em;
	padding: 1.5em;
	width: 100%;
	border: 1px dotted var(--color-gray-300);
}

aside.sidebar h3 {
	font-size: 1.1em;
}

aside.sidebar h3:first-child {
	margin-top: 0;
}

aside.sidebar p:last-child {
	margin-bottom: 0;
}


/* WIDGET
------------------------------------------------------*/

.ui-widget { 
	font-size: .85rem;
}

.ui-widget-content a:not(.btn) { 
	color: var(--color-text);
	font-weight: 400;
}

.ui-widget-header {
	color: var(--color-secondary);
}

.ui-widget #otpContainer {
	margin-top: 1em;
}

.ui-widget .ip-buttonBar {
	margin-top: 1em;
	margin-bottom: 0;
	text-align: left;
}

.ui-widget p:last-child {
	margin-bottom: 0;
}
