<|start_filename|>trp-vehicle-definitions.js<|end_filename|>
( function () {
'use strict'

var TRP = window.TRP || ( window.TRP = {} )

// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
// 

TRP.vehicleTypes = []

function addVehicleType( opt, configs ) {
    opt = Object.assign( {
        id: '[missing]',
        image: '[missing]',
        title: '[missing]',
    }, opt )

    opt.configs = configs

    var last = JSON.parse( JSON.stringify( configs[ configs.length - 1] ) )
    last.axles = ( last.axles + 1 ) + '+'
    last.default = false
    last.oversize = true

    opt.configs.push( last )

    TRP.vehicleTypes.push( opt )
} 

addVehicleType( 
    {
        id: 'straight',
        image: 'images/trucks/truck-straight.svg',
        title: 'Straight Truck',
    },
    [
        {
            default: true,
            axles: 2,
            height: 4.15,
            width: 2.6,
            length: 12.5,
            weight: 18200
        },
        {
            axles: 3,
            height: 4.15,
            width: 2.6,
            length: 12.5,
            weight: 26100
        },
        {
            axles: 4,
            height: 4.15,
            width: 2.6,
            length: 12.5,
            weight: 34000
        },
        {
            axles: 5,
            height: 4.15,
            width: 2.6,
            length: 12.5,
            weight: 39200
        }
    ]
)

addVehicleType( 
    {
        id: 'straight-pony-trailer',
        image: 'images/trucks/truck-straight-pony-trailer.svg',
        title: 'Straight Truck and Pony Trailer',
    },
    [
        {
            axles: 3,
            height: 4.15,
            width: 2.6,
            length: 23,
            weight: 27300
        },
        {
            axles: 4,
            height: 4.15,
            width: 2.6,
            length: 23,
            weight: 35200
        },
        {
            default: true,
            axles: 5,
            height: 4.15,
            width: 2.6,
            length: 23,
            weight: 43100
        },
        {
            axles: 6,
            height: 4.15,
            width: 2.6,
            length: 23,
            weight: 50100
        },
        {
            axles: 7,
            height: 4.15,
            width: 2.6,
            length: 23,
            weight: 56200
        },
        {
            axles: 8,
            height: 4.15,
            width: 2.6,
            length: 23,
            weight: 60200
        }
    ]
)

addVehicleType( 
    {
        id: 'straight-full-trailer',
        image: 'images/trucks/truck-straight-full-trailer.svg',
        title: 'Straight Truck and Full Trailer',
    },
    [
        {
            axles: 4,
            height: 4.15,
            width: 2.6,
            length: 25,
            weight: 36400
        },
        {
            axles: 5,
            height: 4.15,
            width: 2.6,
            length: 25,
            weight: 44300
        },
        {
            axles: 6,
            height: 4.15,
            width: 2.6,
            length: 25,
            weight: 52200
        },
        {
            default: true,
            axles: 7,
            height: 4.15,
            width: 2.6,
            length: 25,
            weight: 60100
        },
        {
            axles: 8,
            height: 4.15,
            width: 2.6,
            length: 25,
            weight: 63500
        },
        {
            axles: 9,
            height: 4.15,
            width: 2.6,
            length: 25,
            weight: 63500
        },
        {
            axles: 10,
            height: 4.15,
            width: 2.6,
            length: 25,
            weight: 63500
        }
    ]
)

addVehicleType( 
    {
        id: 'tractor-semi-trailer',
        image: 'images/trucks/truck-tractor-semi-trailer.png',
        title: 'Tractor Semi-Trailer',
    },
    [
        {
            axles: 3,
            height: 4.15,
            width: 2.6,
            length: 23,
            weight: 24200
        },
        {
            axles: 4,
            height: 4.15,
            width: 2.6,
            length: 23,
            weight: 32100
        },
        {
            default: true,
            axles: 5,
            height: 4.15,
            width: 2.6,
            length: 23,
            weight: 40000
        },
        {
            axles: 6,
            height: 4.15,
            width: 2.6,
            length: 23.5,
            weight: 47000
        },
        {
            axles: 7,
            height: 4.15,
            width: 2.6,
            length: 23.5,
            weight: 55300
        },
        {
            axles: 8,
            height: 4.15,
            width: 2.6,
            length: 23.5,
            weight: 57100
        }
    ]
)

addVehicleType( 
    {
        id: 'a-train',
        image: 'images/trucks/truck-a-train.svg',
        title: 'A Train (Double Trailer)',
    },
    [
        {
            axles: 5,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 38000
        },
        {
            axles: 6,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 50300
        },
        {
            axles: 7,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 53500
        },
        {
            default: true,
            axles: 8,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 53500
        },
        {
            axles: 9,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 53500
        },
        {
            axles: 10,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 53500
        },
        {
            axles: 11,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 53500
        }
    ]
)

addVehicleType( 
    {
        id: 'b-train',
        image: 'images/trucks/truck-b-train.svg',
        title: 'B Train (Double Trailer)',
    },
    [
        {
            axles: 4,
            height: 4.15,
            width: 2.6,
            length: 27.5,
            weight: 38000
        },
        {
            axles: 5,
            height: 4.15,
            width: 2.6,
            length: 27.5,
            weight: 41200
        },
        {
            axles: 6,
            height: 4.15,
            width: 2.6,
            length: 27.5,
            weight: 49100
        },
        {
            axles: 7,
            height: 4.15,
            width: 2.6,
            length: 27.5,
            weight: 57000
        },
        {
            default: true,
            axles: 8,
            height: 4.15,
            width: 2.6,
            length: 27.5,
            weight: 63500
        },
        {
            axles: 9,
            height: 4.15,
            width: 2.6,
            length: 27.5,
            weight: 63500
        },
        {
            axles: 10,
            height: 4.15,
            width: 2.6,
            length: 27.5,
            weight: 63500
        }
    ]
)

addVehicleType( 
    {
        id: 'c-train',
        image: 'images/trucks/truck-c-train.svg',
        title: 'C Train (Double Trailer)',
    },
    [
        {
            axles: 5,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 38000
        },
        {
            axles: 6,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 49100
        },
        {
            axles: 7,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 57000
        },
        {
            default: true,
            axles: 8,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 60500
        },
        {
            axles: 9,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 60500
        },
        {
            axles: 10,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 60500
        },
        {
            axles: 11,
            height: 4.15,
            width: 2.6,
            length: 26,
            weight: 60500
        }
    ]
)

addVehicleType( 
    {
        id: 'bus',
        image: 'images/trucks/truck-bus.svg',
        title: 'Bus',
    },
    [
        {
            axles: 2,
            height: 4.15,
            width: 2.6,
            length: 12.5,
            weight: 16350
        },
        {
            default: true,
            axles: 3,
            height: 4.15,
            width: 2.6,
            length: 14,
            weight: 24250
        }
    ]
)

addVehicleType( 
    {
        id: 'other',
        image: 'images/trucks/truck-other.svg',
        title: 'Other',
    },
    [
        {
            default: true,
            axles: 8,
            height: 4.16,
            width: 2.61,
            length: 27.51,
            weight: 63501
        }
    ]
)

// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
// 

TRP.getMunicipalityDefinition = function ( muni ) {
    return municipality[ ( muni || '_default_' ).toLowerCase() ] || municipality[ '_default_' ]
}

TRP.isHeavyTruckInMunicipality = function ( muni, weight ) {
    return weight >= this.getMunicipalityDefinition( muni ).truckWeightDefinition 
}

var municipality = {
    '_default_':                    { truckWeightDefinition:  13600 },
    'anmore':                       { truckWeightDefinition:  11794 },
    'belcarra':                     { truckWeightDefinition:  10900 },
    'bowen island':                 { truckWeightDefinition:  11800 },
    'burnaby':                      { truckWeightDefinition:  13600 },
    'coquitlam':                    { truckWeightDefinition:  11800 },
    'delta':                        { truckWeightDefinition:  11800 },
    'langley':                      { truckWeightDefinition:  11800 },
    'langley city':                 { truckWeightDefinition:  11800 },
    'langley township':             { truckWeightDefinition:  11800 },
    'township of langley':          { truckWeightDefinition:  11800 },
    'lions bay':                    { truckWeightDefinition: 300000 },
    'maple ridge':                  { truckWeightDefinition: 300000 },
    'new westminster':              { truckWeightDefinition:  11800 },
    'north vancouver':              { truckWeightDefinition:  11800 },
    'north vancouver city':         { truckWeightDefinition:  11800 },
    'north vancouver district':     { truckWeightDefinition: 300000 },
    'district of north vancouver':  { truckWeightDefinition: 300000 },
    'pitt meadows':                 { truckWeightDefinition:  10000 },
    'port coquitlam':               { truckWeightDefinition:  11794 },
    'port moody':                   { truckWeightDefinition:  10000 },
    'richmond':                     { truckWeightDefinition: 300000 },
    'surrey':                       { truckWeightDefinition:  11800 },
    'ubc':                          { truckWeightDefinition: 300000 },
    'vancouver':                    { truckWeightDefinition:  11800 },
    'west vancouver':               { truckWeightDefinition:  11800 },
    'white rock':                   { truckWeightDefinition:   5500 },
}

// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
// 

TRP.makeReports = function ( routeResponse ) {
    var reports = clone( routeResponse.notifications || [] )
        .filter( function ( r ) {
            return r.type != 'Oversize'
        } )
        .map( function ( r ) {
            return {
                type: r.type,
                component: {
                    template: '<div>' + r.message + '</div>',
                    dataObj: {}
                }
            }
        } )

    var muni = {}
    routeResponse.segments.features.forEach( function ( s ) {
        muni[ s.properties.locality ] = true
    } )

    var notHeavyTruckMunis = Object.keys( muni ).filter( function ( m ) { 
        return !TRP.isHeavyTruckInMunicipality( m, routeResponse.request.data.weight ) 
    } )

    return include( [ 
        { url: './fragments/report-not-heavy-truck.html' }, 
        { url: './fragments/report-truck.html' }, 
        { url: './fragments/report-direction-notification.html' },
        { url: './fragments/report-oversize.html' } 
    ], 'report' )
        .then( function ( inc ) {
            routeResponse.directions.forEach( function ( d ) {
                if ( !d.notifications ) return

                d.notifications.forEach( function ( n ) {
                    reports.push( {
                        type: n.type,
                        component: {
                            template: inc[ 'report.report-direction-notification-html' ],
                            dataObj: Object.assign( clone( n ), {
                                direction: clone( d ),
                                segment: clone( routeResponse.segments.features[ d.segmentIndex ].properties )                                        
                            } )
                        }
                    } )
                } )
            } )

            reports.push( {
                type: 'TruckRestriction',
                component: {
                    template: inc[ 'report.report-not-heavy-truck-html' ],
                    dataObj: {
                        municipalities: notHeavyTruckMunis
                    }
                }
            } )

            if ( routeResponse.segments.properties.isOversize )
                reports.push( {
                    type: 'TruckRestriction',
                    component: {
                        template: inc[ 'report.report-oversize-html' ],
                        dataObj: {}
                    }
                } )
            else
                reports.push( {
                    type: 'TruckRestriction',
                    component: {
                        template: inc[ 'report.report-truck-html' ],
                        dataObj: {}
                    }
                } )

            return reports
        } )
}

// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
// 

function clone( obj ) { return JSON.parse( JSON.stringify( obj ) ) }

} )()


<|start_filename|>fragments/about.html<|end_filename|>
<section class="trp-about">
    <p>
        The Truck Route Planner (TRP) is intended to be an interactive, easy to understand trip-planning application for goods movement in Metro Vancouver. 
        It improves on existing regional way-finding and trip planning tools, which was identified as an implementation priority in the
        <a href="https://www.translink.ca/Plans-and-Projects/Roads-Bridges-and-Goods-Movement-Projects/Goods-Movement-Initiatives" target="_blank">Regional Goods Movement Strategy (RGMS)</a>.
    </p>
    <p>
        TransLink also provides a 
        <a href="https://www.translink.ca/site-info/document-library-result.aspx?id=%7B3C0F2B05-04B2-48B4-9A37-354313489AC8%7D&ref=%7BA0E62BB9-F8F2-4CFA-84FB-53DCC0C1A698%7D" target="_blank">Truck Route Reference Guide and Map (2.6 MB)</a>, 
        which pulls together basic information about the region’s truck route network.         
        The TRP builds on this static map in the form of a web-based map application with multiple layers, such as truck parking facilities, card locks, and height clearances. 
        It is intended to augment, rather than replace existing regional and municipal maps and trip planning tools.
    </p>
    <p>
        A key feature of the TRP is a route query function which generates potential routes that comply with municipal truck route bylaws. 
        This feature allows users to plan bylaw-compliant routes throughout the region quickly and easily. 
        Users simply enter vehicle dimensions, a starting point, and destination to generate a potential route that factors in information such as height and weight restrictions.
    </p>
    <p>
        The TRP was developed in partnership between TransLink and the Province with input from municipalities and industry.
    </p>
    <p>
        <em>
            This application is intended to be used as a pre-trip planner. 
            Do not operate a vehicle while using this application.
        </em>
    </p>
    <img src="images/no_mobile_icon.svg" alt="Graphic warning to discourage using mobile devices" style="max-width: 12rem; align-self: center;">
    <div class="version">Version {{ package.version }}, built {{ package[ 'build-date' ] }}</div>    
</section>




<|start_filename|>fragments/about.css<|end_filename|>
section.trp-about {
    display: flex;
    flex-direction: column;
}

section.trp-about p {
    margin-top: 0;
    font-size: 14px;
}

section.trp-about p a::after {
    content: 'open_in_new';
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: normal;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
}

<|start_filename|>fragments/reports.css<|end_filename|>
section.trp-reports {
    font-size: 12px;
}

section.trp-reports p, section.trp-reports ul {
    margin-top: 0;
    margin-bottom: 0;
}

section.trp-reports p + *, section.trp-reports ul + * {
    margin-top: 5px;
}

section.trp-reports p a::after {
    content: 'open_in_new';
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: normal;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
}

section.trp-reports .trp-report + * {
    margin-top: 10px;
}


<|start_filename|>fragments/report-oversize.html<|end_filename|>
<div>
    <p>
        Based on the vehicle parameters you entered, you may require a municipal and/or Provincial permit to operate this vehicle. 
        The driver and/or carrier is responsible for ensuring the default vehicle parameters or user-entered vehicle parameters are an accurate representation of the actual vehicle, for verifying all clearances and restrictions on the route, and for ensuring the vehicle is operated in compliance with all applicable municipal bylaws and provincial and federal regulations. 
    </p>
    <p>
        <activate-tool id="bespoke--contacts" title="Link to Municipal and Provincial contact information">Municipal and Provincial contact information</activate-tool>
    </p>
</div>


<|start_filename|>fragments/disclaimer.css<|end_filename|>
img.warningImage {
    width: 150px;
    align-self: center;
}


<|start_filename|>fragments/feedback.css<|end_filename|>
.feedback-form  {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.feedback-form label {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    font-size: 12px;
    margin: 4px 0;
}

.feedback-form label input, .feedback-form label textarea {
    flex-grow: 1;
    border: 1px solid #999;
    outline: none;
    padding: 2px;
    border-radius: 4px;
}

.feedback-form .buttons {
    display: flex;
    justify-content: space-between;
}

.feedback-form .buttons button[type=submit] {
    font-size: 15px;
    font-weight: bold;
}


<|start_filename|>fragments/glossary.html<|end_filename|>
<section class="trp-glossary">
    <dl>
        <dt>Potential Route (Blue Line)</dt>
        <dd>
            A route that based on factors such as the origin and destination, intermediate waypoints, and the default or user-entered vehicle parameters, may comply with municipal truck route bylaws. 
            This route is put forward for the driver and/or carrier’s consideration for pre-trip planning purposes without warranty of any kind, whether express or implied. 
            The driver and/or carrier is responsible for ensuring the default vehicle parameters or user-entered vehicle parameters are an accurate representation of the actual vehicle, for verifying all clearances and restrictions on the route, and for ensuring the vehicle is operated in compliance with all applicable municipal bylaws and provincial and federal regulations.
        </dd>
        
        <dt>Unverified Route (Dotted Red Line)</dt>
        <dd>
            A route, or a portion of a route, that may not comply with municipal truck route bylaws and may not be suitable for a vehicle with the default or user-entered vehicle parameters. 
            The driver and/or carrier is responsible for ensuring the default vehicle parameters or user-entered vehicle parameters are an accurate representation of the actual vehicle, for verifying all clearances and restrictions on the route, and for ensuring the vehicle is operated in compliance with all applicable municipal bylaws and provincial and federal regulations.                        
        </dd>

        <dt>Heavy Truck</dt>
        <dd>
            A motor vehicle with a licensed gross vehicle weight (LGVW) greater than 11,794 kg (26,000 lb).
        </dd>
    </dl>
</section>

<|start_filename|>fragments/report-not-heavy-truck.html<|end_filename|>
<div v-if="municipalities.length > 0">
    <p>
        Based on the GVW and axle count, your vehicle is not considered to be a heavy truck in the following municipalities: 
    </p>
    <ul class="municipalities">
        <li v-for="muni in municipalities">{{ muni }}</li>
    </ul> 
</div>


<|start_filename|>fragments/contacts.html<|end_filename|>
<section class="trp-contacts">
    <h1>Municipalities</h1>

    <h2>Anmore, Village of</h2>
    <address>
        <a href="tel:+16044699877">(604) 469-9877</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
    </address>
    <p>
        <em class="warning">No designated truck routes</em>
    </p>

    <h2>Belcarra, Village of</h2>
    <address>
        <a href="tel:+16049374100">(604) 937-4100</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
    </address>
    <p>
        <em class="warning">No designated truck routes</em>
    </p>

    <h2>Bowen Island Municipality</h2>
    <address>
        <a href="tel:+16049474255">(604) 947-4255</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
    </address>
    <p>
        <em class="warning">No designated truck routes</em>
    </p>

    <h2>Burnaby, City of</h2>
    <address>
        <a href="tel:+16042947440">(604) 294-7440</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
        <a href="https://www.burnaby.ca/City-Services/Roads---Traffic/Truck-Routes.html" target="_blank">burnaby.ca</a>
    </address>

    <h2>Coquitlam, City of</h2>
    <address>
        <a href="tel:+16049276265">(604) 927-6265</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
        <a href="https://www.coquitlam.ca/docs/default-source/coquitlam-forms/Oversize_Overweight_Permit_Application_Form.pdf?sfvrsn=0x" target="_blank">coquitlam.ca</a>
    </address>

    <h2>Delta, Corporation of</h2>
    <address>
        <a href="tel:+16049463260">(604) 946-3260</a>
        <a href="mailto:"><EMAIL></a>
    </address>

    <h2>Langley, City of</h2>
    <address>
        <a href="tel:+16045142997">(604) 514-2997</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
        <a href="https://city.langley.bc.ca/sites/default/files/uploads/AppForms/HIGHWAY_USE_PERMIT_-_OVERSIZE_OVERWEIGHT_VEHICLE.pdf" target="_blank">city.langley.bc.ca</a>
    </address>

    <h2>Langley, Township of</h2>
    <address>
        <a href="tel:+16045336006">(604) 533-6006</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
        <a href="https://webfiles.tol.ca/Engineering/Eng%20Permits/Highway%20Use%20Permit%20-%20Oversize%20Overweight%20Vehicle%20Form.pdf" target="_blank">webfiles.tol.ca</a>
    </address>

    <h2>Lions Bay, Village of</h2>
    <address>
        <a href="tel:+16049219333">(604) 921-9333</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
    </address>
    <p>
        <em class="warning">No designated truck routes</em>
    </p>

    <h2>Maple Ridge, City of</h2>
    <address>
        <a href="tel:+16044677339">(604) 467-7339</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
    </address>

    <h2>New Westminster, City of</h2>
    <address>
        <a href="tel:+16045274592">(604) 527-4592</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
        <a href="https://www.newwestcity.ca/database/files/library/Oversized_Truck_Permit_Application.pdf" target="_blank">newwestcity.ca</a>
    </address>

    <h2>North Vancouver, City of</h2>
    <address>
        <a href="tel:+16049837333">(604) 983-7333</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
        <a href="https://www.cnv.org/-/media/city-of-north-vancouver/documents/streets-and-transportation/oversized-vehicle-permit.ashx?la=en" target="_blank">cnv.org</a>
    </address>

    <h2>North Vancouver, District of</h2>
    <address>
        <a href="tel:+16049902450">(604) 990-2450</a>
        <a href="mailto:<EMAIL>"><EMAIL>.org</a>
    </address>

    <h2>Pitt Meadows, City of</h2>
    <address>
        <a href="tel:+16044652428">(604) 465-2428</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
    </address>

    <h2>Port Moody, City of</h2>
    <address>
        <a href="tel:+16044694618">(604) 469-4618</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
        <a href="http://www.portmoody.ca/modules/showdocument.aspx?documentid=833" target="_blank">portmoody.ca</a>
    </address>

    <h2>Richmond, City of</h2>
    <address>
        <a href="tel:+16042764388">(604) 276-4388</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
        <a href="https://www.richmond.ca/__shared/assets/ud_09_4011460.pdf" target="_blank">richmond.ca</a>
    </address>

    <h2>Surrey, City of</h2>
    <address>
        <a href="tel:+16045914853">(604) 591-4853</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
        <a href="https://www.surrey.ca/city-services/20215.aspx" target="_blank">surrey.ca</a>
    </address>

    <h2>University Endowment Lands/UBC Area</h2>
    <address>
        <a href="tel:+16048228288">(604) 822-8288</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
    </address>

    <h2>Vancouver, City of</h2>
    <address>
        <a href="tel:+16048716730">(604) 871-6730</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
        <a href="https://vancouver.ca/streets-transportation/oversize-truck-permits.aspx" target="_blank">vancouver.ca</a>
    </address>

    <h2>West Vancouver, District of</h2>
    <address>
        <a href="tel:+16049257020">(604) 925-7020</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
    </address>

    <h2>White Rock, City of</h2>
    <address>
        <a href="tel:+16045412181">(604) 541-2181</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
    </address>

    <h1>Ministry of Transportation &amp; Infrastructure</h1>

    <h2>Commercial Vehicle Safety &amp; Enforcement (CVSE)</h2>
    <!-- <h5>General Inquiries</h5> -->
    <address>
        <a href="tel:+12509520577">(250) 952-0577</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
        <a href="https://www2.gov.bc.ca/gov/content/transportation/vehicle-safety-enforcement/services/permitting/extraordinary-loads" target="_blank">CVSE Home Page</a>
    </address>

    <h2>Individual Program Offices</h2>
    <address>
        <a href="https://www2.gov.bc.ca/gov/content/transportation/vehicle-safety-enforcement/information-education/contacts" target="_blank">Contact Information</a>
    </address>

    <h2>Provincial Permit Centre</h2>
    <address>
        <a href="tel:+18005599688">1-800-559-9688</a>
        <a href="mailto:<EMAIL>"><EMAIL></a>
        <a href="https://onroutebc.gov.bc.ca/" target="_blank">onroutebc.gov.bc.ca</a>
    </address>

    <h1>Useful Links</h1>
    <ul>
        <li>
            <a href="http://www.cvse.ca/national_safety_code.htm" target="_blank">National Safety Code</a>
        </li>
        <li>
            <a href="https://www2.gov.bc.ca/gov/content/transportation/vehicle-safety-enforcement/services/permitting" target="_blank">Transportation Permitting</a>
        </li>
        <li>
            <a href="https://www2.gov.bc.ca/gov/content/transportation/vehicle-safety-enforcement/information-education/commercial-transport-procedures" target="_blank">Commercial Transport Procedures</a>
        </li>
        <li>
            <a href="http://www.cvse.ca/whatsnew.html" target="_blank">Bulletins, Compliance Circulars, Forms and Notices</a>
        </li>
        <li>
            <a href="https://www2.gov.bc.ca/gov/content/transportation/vehicle-safety-enforcement/services/permitting/extraordinary-loads" target="_blank">Extraordinary Loads</a>
        </li>
        <li>
            <a href="http://www.cvse.ca/vehicle_inspections.htm" target="_blank">Vehicle Inspection &amp; Standards</a>
        </li>
    </ul>
</section>

<|start_filename|>fragments/contacts.css<|end_filename|>
section.trp-contacts h1 {
    font-size: 16px;
    margin-top: 0;
    margin-bottom: 0;
}

section.trp-contacts * + h1 {
    margin-top: 15px;
}

section.trp-contacts h2 {
    font-size: 14px;
    margin-top: 10px;
    margin-bottom: 0;
}

section.trp-contacts address {
    font-size: 13px;
    font-style: normal;
}

section.trp-contacts address a {
    display: block;
    margin-left: 5px;
    margin-bottom: 2px;
}

section.trp-contacts address a::before {
    font-size: 16px;
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    line-height: 0;
    letter-spacing: normal;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    transform: translateY( 5px );
    margin-right: 5px;
    color: black;
}

section.trp-contacts address a[href^=mailto]::before {
    content: 'email';
}

section.trp-contacts address a[href^=tel]::before {
    content: 'phone';
}

section.trp-contacts address a[href^=http]::before {
    content: 'open_in_new';
}

section.trp-contacts p {
    font-size: 12px;
    margin-top: 0;
    margin-bottom: 0;
    margin-left: 5px;
}

section.trp-contacts em.warning::before {
    content: 'warning';
    font-size: 16px;
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    line-height: 0;
    letter-spacing: normal;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    transform: translateY( 5px );
    margin-right: 5px;
}

section.trp-contacts ul {
    margin-top: 0;
    margin-bottom: 0;
    padding-left: 20px;
    font-size: 13px;
}

<|start_filename|>fragments/glossary.css<|end_filename|>
section.trp-glossary dl {
    margin-top: 0;
    margin-bottom: 0;
}

section.trp-glossary dt {
    font-size: 16px;
    font-weight: bold;
    margin-top: 0;
}

section.trp-glossary dd {
    font-size: 14px;
    margin-left: 20px;
    margin-bottom: 5px;
}
