/*-------------------------------*/
/* Base styling for the pfp page */
/*-------------------------------*/
* {
    font-family:
        "HNforTELUSRegular", "Helvetica Neue", Helvetica, Arial, sans-serif !important;
    font-size: 16px;
    border: 0;
    margin: 0;
    padding: 0;
    outline-style: none;
}
::-webkit-input-placeholder {
    /* Chrome/Opera/Safari */
    color: #d3d3d3;
}
::-moz-placeholder {
    /* Firefox 19+ */
    color: #d3d3d3;
}
:-ms-input-placeholder {
    /* IE 10+ */
    color: #d3d3d3;
}

/*#page_content { margin: 0 !important; }*/
#map_container {
    width: inherit;
}

#container_of_map_container {
    position: relative;
}

/*------------------------------------------------*/
/* short css class like acting as 'quick tooling' */
/*------------------------------------------------*/
.flex_row {
    display: flex;
    flex-direction: row;
    min-width: 1px;
}
.flex_col {
    display: flex;
    flex-direction: column;
    min-width: 1px;
}
.flex_growth {
    flex-grow: 1;
}
.align_top {
    align-items: top;
}
.align_center {
    align-items: center;
}
.align_stretch {
    align-items: stretch;
}
.space_around {
    justify-content: space-around;
}
.space_between {
    justify-content: space-between;
}

.hidden {
    display: none !important;
}
.invisible {
    visibility: hidden !important;
}
.uppercase {
    text-transform: uppercase;
}
.bold {
    font-weight: 700 !important;
}
.pointer {
    cursor: pointer !important;
}

.box_shadow {
    box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.41);
}
.white_text {
    color: #ffffff;
}

.text_emphasized {
    color: #ffffff;
    font-weight: 700 !important;
    text-transform: uppercase;
    text-shadow: 1px 1px #747473;
}

.ellipsis {
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.margin_vertical_center {
    margin-top: auto;
    margin-bottom: auto;
}

.padding_horizonal_10 {
    padding-left: 10px;
    padding-right: 10px;
}

.padding_horizonal_7 {
    padding-left: 7px;
    padding-right: 7px;
}

.bordered {
    border: 2px solid #002d5f;
}
.round_border {
    border-radius: 40px;
}
.fully_round_border {
    border-radius: 50%;
}

/*----------------------------*/
/* disclaimer related styling */
/*----------------------------*/
#div_disclaimer_container {
    background-color: #ffffff;
    margin-top: 10vh;
    width: 60vw;
}
#div_disclaimer_header {
    background-color: #002d5f;
    color: #ffffff;
}
#div_disclaimer_header * {
    color: #ffffff;
    font-size: inherit;
    line-height: inherit;
}
#div_disclaimer_header > * {
    white-space: pre-wrap;
}

#div_disclaimer_content {
    overflow: auto;
    padding: 10px;
}
#div_disclaimer_content ul li {
    align-items: baseline;
}
#div_disclaimer_content ul li + li {
    margin-top: 10px;
}
#div_disclaimer_content ul {
    list-style: none outside none;
    padding-left: 2vw;
}
#div_disclaimer_content ul li:before {
    position: relative;
    content: "\e97d";
    color: #002d5f;
    font-family: "icomoon";
    font-size: 8px;
    display: inline-block;
    text-align: center;
    width: 2vw;
    margin-left: -2vw;
}
#div_disclaimer_content ul li {
    color: #002d5f;
    font-size: 14px;
    line-height: 20px;
}

#div_disclaimer_action {
    justify-content: flex-end;
    padding: 10px;
}

#btn_decline {
    margin-left: 10px;
}

/*------------------------*/
/* button related styling */
/*------------------------*/
.classic_button {
    background-color: #002d5f;
    color: #ffffff;
    cursor: pointer;
    font-size: 20px;
    padding: 6px 16px;
}

.default_clickable_element {
    color: #002d5f;
    cursor: pointer;
    background-color: #ffffff;
}

.large_button_icon {
    font-size: 24px;
    padding: 12px;
}

/*---------------------------*/
/* 'two option' line styling */
/*---------------------------*/
.two_option_controller {
    position: relative;
}

.two_option_left_element,
.two_option_right_element {
    font-size: 14px;
    text-transform: uppercase;
    width: 50%;
}
.two_option_left_element {
    text-align: right;
    padding-right: 4px;
    border-top-left-radius: 40px;
    border-bottom-left-radius: 40px;
    border-right: none !important;
}
.two_option_right_element {
    text-align: left;
    padding-left: 4px;
    border-top-right-radius: 40px;
    border-bottom-right-radius: 40px;
    border-left: none !important;
}

.two_option_selected_element {
    background-color: #002d5f !important;
    color: #ffffff !important;
    cursor: default !important;
}

.two_option_indicator {
    cursor: pointer;
    position: absolute;
    border: 2px solid #ffffff;
    border-radius: 40px;
    width: 22px;
    height: 22px;
    margin: 0 4px;
    top: -2px;
}

.two_option_indicator.rightmost {
    right: 0;
}

#map_zoom_control,
#map_type_control,
#segment_display_control,
#operation_type_control {
    margin: 0 0 10px 10px;
}

#map_type_control {
    width: 250px;
}
#segment_display_control {
    width: 250px;
}
#operation_type_control {
    width: 250px;
}

/*---------------------------*/
/* 'multi option' line styling */
/*---------------------------*/
.multi_option_controller {
    position: relative;
}

.multi_option_element {
    position: relative;
}

.multi_option_selected_element {
    cursor: default !important;
}

.multi_option_element_indicator {
    background-color: #ffffff;
    border: 2px solid #002d5f;
    border-radius: 40px;
    width: 24px;
    height: 24px;
}
.multi_option_selected_element .multi_option_element_indicator:after {
    background-color: #002d5f;
    content: "";
    height: 50%;
    width: 50%;
    position: absolute;
    top: 25%;
    left: 25%;
    border-radius: 50%;
}

/*------------------------*/
/* random control styling */
/*------------------------*/
#portal_unavailable {
    font-size: 32px;
    background-color: whitesmoke;
    color: darkcyan;
    text-align: center;
    padding: 10px;
}
#portal_unavailable * {
    font-size: 32px;
}
#portal_unavailable > * {
    white-space: pre-wrap;
}
#city_level_of_service {
    margin-top: 10px;
}

#geolocation_control,
#btn_full_screen {
    margin: 10px 10px 0 0;
}

.basic_text_box_style {
    background-color: #ffffff;
    color: #002d5f;
    padding: 4px 8px;
}

#quick_information_control {
    margin-top: 10px;
    opacity: 0;
}

#quick_information_control.information_displayed {
    opacity: 1 !important;
}

#div_geolocation_message {
    color: #a10700 !important;
    margin-right: 8px;
}

#external_site_news_frame,
#external_site_weather_frame,
.twitter-timeline {
    height: 100%;
}

/*------------------------*/
/* search control styling */
/*------------------------*/

#input_search {
    border: 2px solid transparent;
    background-color: #f2f2f2;
    width: 100%;
    font-size: 16px;
    padding: 2px 6px;
    border-radius: 10px;
    margin: 10px;
}

#input_search:focus {
    background-color: #ffffff !important;
}

#invalid_search_message {
    padding: 0 10px 10px 10px;
    color: #a10700;
}

#local_news_iframe_content,
#local_weather_iframe_content {
    height: 100%;
}

/*---------------------------------*/
/* 'toggle switch' control styling */
/*---------------------------------*/
#language_control {
    margin: 10px 10px 0 0;
    width: 120px;
}

#traffic_switch_control {
    margin: 10px 10px 0 0;
}

#color_blind_switch_control {
    margin: 10px 10px 0 0;
}

.toggle_switch_label {
    padding: 0 10px;
    line-height: 24px;
    border-right: none;
    border-top-left-radius: 40px;
    border-bottom-left-radius: 40px;
}
.toggle_switch_slider_container {
    background-color: #002d5f !important;
    justify-content: space-evenly;
    width: 60px;

    border-left: none;
    border-top-right-radius: 40px;
    border-bottom-right-radius: 40px;
}
.toggle_switch_slider_container.off {
    background-color: #dbdcdd !important;
    flex-direction: row-reverse;
}

.toggle_switch_slider_container .inner_slider_button {
    background-color: #ffffff;
    border: 2px solid #ffffff;
    border-radius: 10px;
    width: 12px;
    height: 12px;
}

.inner_slider_button {
    border-color: #9ea7b6;
}
.toggle_switch_slider_container .inner_slider_label {
    line-height: 24px;
    text-transform: uppercase;
    margin: 0 2px;
}

/*--------------------*/
/* legend box styling */
/*--------------------*/

.pfp_legend_color_div {
    border-radius: 20px;
    height: 20px;
    width: 100%;
    display: flex;
    justify-content: center;
    padding: 3px 0;
    background-color: #000000;
    opacity: 0.7;
}

.pfp_legend_color_div + .pfp_legend_color_div {
    margin-top: 10px;
}

/*-------------------------*/
/* information box styling */
/*-------------------------*/
#information_box_control {
    background-color: #ffffff;
    margin: 10px 0 0 10px;
    width: 450px;
    z-index: 5 !important;
    max-height: 80vh;
}

#city_portal_name {
    background-color: #002d5f;
    color: #ffffff;
}

.base_title_text {
    color: #002d5f;
    font-size: 24px;
    padding: 12px;
    line-height: 24px;
    text-align: center;
}

/*-----------------------------------------------*/
/* focus branding and portal information styling */
/*-----------------------------------------------*/
#focus_branding {
    background-color: #f2f2f2;
    padding: 4px;
}
#focus_branding div {
    white-space: nowrap;
}
#focus_branding .focus-logo-here {
    width: 100%;
    height: 100%;
}
#focus_branding .focus-logo-here img {
    width: 140px;
}

#focus_branding a {
    text-decoration: none !important;
    justify-content: center;
}

#portal_information {
    background-color: #f2f2f2;
    margin-bottom: 4px;
    opacity: 0.7;
    padding: 2px 4px;
}

#portal_information .small_character {
    font-size: 10px;
}

#portal_information .information_line {
    justify-content: flex-end;
}

/*--------------------*/
/* bubble_text styling */
/*--------------------*/
#street_bubble_text {
    color: #002d5f;
}
#street_bubble_text_header {
    background-color: #000000;
    padding-left: 10px;
}

#street_bubble_text_header .street-name {
    font-size: 16px;
    padding-top: 4px;
    max-width: 270px;
}
#street_bubble_text_header .street-level-of-service {
    font-size: 10px;
    padding-bottom: 4px;
    max-width: 270px;
}

#street_bubble_text_content {
    padding: 10px;
}
#btn_close_bubble_text {
    font-size: 20px;
    padding: 10px;
}

#street_bubble_text_operations_state_block {
    min-width: 300px;
}
#street_bubble_text_operations_state_block
    > .bubble_text_double_line_info
    + .bubble_text_double_line_info {
    margin-top: 8px;
}

.bubble_text_double_line_info > div:first-of-type {
    width: 125px;
    font-size: 20px;
    line-height: 22px;
}

.bubble_text_level_service,
.bubble_text_operation_status {
    border-radius: 20px;
    height: 20px;
    width: 170px;
    display: flex;
    justify-content: center;
    background-color: #000000;
    opacity: 0.7;
    margin-left: 4px;
}

.popup-tip-anchor {
    height: 0;
    position: absolute;
}

.popup-bubble-anchor {
    position: absolute;
    width: 100%;
    bottom: 20px;
    left: 0;
}

.popup-bubble-anchor::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(-50%, -5%);
    width: 0;
    height: 0;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-top: 20px solid #002d5f;
}

.popup-bubble-content {
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(-50%, -100%);
    background-color: #f5f6f9;
    border-radius: 8px;
    overflow-y: auto;
}
