* { margin: 0; padding: 0; border: 0; }
html, body { min-height: 100%; }
body{margin:0;padding:0;}
.fl_menu{list-style:none;}
.cms_imgleft{margin:3px 10px 10px 0;float:left;}
.cms_imgright{margin:3px 0 10px 10px;float:right;}
.clear{clear:both;}
.gallthumbnail{display:inline-block;border:1px solid #666;margin-right:5px;margin-bottom:5px;}
.fl_blogpostavatar{float:right;border:1px solid #eee;margin:0 0 5px 5px;}
.fl_commentavatar{float:left;border:1px solid #eee;margin:0 5px 0 0;}
.fl_commentname{display:block;margin-left:80px;text-transform:uppercase;margin-bottom:5px;font-size:10px;}
.fl_commentmessage{display:block;margin-left:80px;}
.fl_gtname{display:block;text-transform:uppercase;margin-bottom:5px;font-size:8pt;}
.fl_gtmessage{display:block;}
.fl_blogpost1, .fl_blogpost2{border-bottom:1px sold #eee;padding-bottom:20px;margin-bottom:20px;}
.fl_postinfo{text-transform:uppercase;margin-bottom:5px;font-size:10px;}
.fl_blogfooter{clear:both;}
.fl_comment1{display:block;padding:5px;margin-top:5px;}
.fl_comment2{display:block;padding:5px;background-color:#eee;margin-top:5px;}
.fl_commclear{display:block;clear:both;}
#fl_commsbox, #fl_tracksbox{clear:both;padding-top:15px;}
.fl_bigpic{border:1px solid #eee;}
.fl_bigcaption{margin-top:10px;}
.fl_gallpreview1{margin-bottom:10px;padding:5px;clear:both;}
.fl_gallpreview2{margin-bottom:10px;background-color:#eee;padding:5px;clear:both;}
.fl_gallpreview1 img, .fl_gallpreview2 img{float:left;border:1px solid #eee;}
.fl_galllink, .fl_galltext{display:block;margin-left:110px;}
.fl_mailform textarea{height:200px;}
.fl_rsslinks{padding-top:10px;clear:both;text-align:right;}
.fl_rsslinks a{text-transform:uppercase;font-size:8pt;text-decoration:none;margin-left:10px;}
.fl_rsslinks:empty{display:none;}
.fl_rating{float:right;text-align:right;}
#msgwrap{position:fixed;top:150px;left:50%;text-align:center;z-index:99;pointer-events:none;}
#msgbar{position:relative;color:#fff;border-width:3px;border-style:solid;padding:15px;font-size:28px;line-height:40px;width:300px;left:-168px;cursor:default;display: block; opacity: 0; transition: opacity 1s; pointer-events: none; }
#msgbar a{color:#fff;}
#msgbar.messageshown { opacity: 0.9; pointer-events: auto; }
#msgbar.messagehide { transition: none; pointer-events: none; opacity: 0; }
input, textarea{padding:10px;background-color:#fff;font-size:12px;}
textarea{height:150px;}
.fl_later{float:left;}
.fl_earlier{float:right;}
.flmsg_alert{background-color:#4ad;border-color:#079;}
.flmsg_error{background-color:#900;border-color:#600;}
.flmsg_success{background-color:#096;border-color:#066;}
.flmsg_generic{background-color:#666;border-color:#999;}
#fl_gallwrap{position:fixed;top:0;left:0;margin:0;padding:0;width:100%;height:100%;display:block;font-size:12px;line-height:20px;color:#333;text-align:center;z-index: 99; opacity: 0; pointer-events: none; transition: opacity 0.5s; }
#fl_gallwrap.fl_gallwrapshown { opacity: 1; pointer-events: auto; }
#fl_gallcover{position:fixed;width:100%;height:100%;top:0;left:0;margin:0;padding:0;background-color:#000;opacity:0.8;}
#fl_gallbox{position:relative;top:5%;margin:0 auto;background: #fff url('../gfx/fl_loading.svg') no-repeat center/32px auto;padding:10px;display:inline-block;min-width:32px;min-height:32px}
.gallhidden { display: none!important; }
#fl_gallpicwrap { overflow: hidden; transition: all 0.5s ease-in-out; max-width: 64px; max-height: 64px; width: 90vw; height: 90vh; }
#fl_gallpic{display:block;margin:0 auto;transition: opacity 0.5s; max-width: 100%; }
#fl_gallpic.galltransitionfast { transition: 0.2s all; }
#fl_gallpic.fl_gallpichidden { opacity: 0; }
#fl_gallbelowpic{clear:both;display:block;margin:0 -10px;overflow:hidden;position: relative; z-index: 51; transition: all 0.5s; opacity: 0; max-height: 0; }
#fl_gallbelowpic.fl_gallbelowpicshown { opacity: 1; max-height: 500px; }
#fl_gallwrap a{color:#666;text-decoration:none;}
#fl_gallwrap a:hover{color:#444;}
#fl_gallprevnext{background:url('../scripting/blank.gif');position:relative;}
#fl_gallprev, #fl_gallnext { position: absolute; top: 0; bottom: 0; width: 50%; display: none; z-index: 50; }
#fl_gallprev { left: 0; text-align: left; }
#fl_gallnext { right: 0; text-align: right; }
#fl_gallclose, #fl_gallslide{clear:right;float:right;}
#fl_gallclose { margin: 10px 10px 0 0; }
#fl_gallslide { margin-right: 10px; }
a#fl_gallprev:hover, a#fl_gallnext:hover, a#fl_gallclose:hover{border-width:0;}
#fl_gallprev img, #fl_gallnext img{visibility:hidden;padding-top:50px;}
#fl_gallprev:hover img, #fl_gallnext:hover img{visibility:visible;}
#fl_gallcaption { text-align: left; padding: 10px 10px 0; max-width: calc(100% - 120px); }
#fl_loading { display: none; position: fixed; top: 10px; right: 10px; background: #fff; padding: 3px; border: 1px solid #ccc; width: 32px; height: 32px; z-index: 150; }

#fl_tracksbox, .fl_rsslinks, .fl_rsslinks .rsscomments { display: none; }


:root {
	--gnrd-text: #011a48;
	--gnrd-mid: #666;
	--gnrd-blue: #1ca8c4;
	--gnrd-pink: #dc1997;
	--gnrd-green: #009f79;
	--gnrd-purple: #4e5283;
	--gnrd-neutral: #f4f2f5;
	--gnrd-ltpurple: #d2d3df;
}


html, body { background: #fff; color: var(--gnrd-text); font: 16px/24px "IBM Plex Sans", sans-serif; }
p { margin: 15px 0; }
ul { margin: 15px 30px; }
ol { margin: 15px 30px; }
a { color: var(--gnrd-blue); }
a:hover { text-decoration: none; opacity: 0.5; }
b, strong { font-weight: 600; }
img { max-width: 100%; height: auto!important; }

h1, h2, h3, h4, h5 { color: var(--gnrd-purple); margin: 25px 0 10px; font-weight: 700; display: inline-block; position: relative; padding: 0 25px 5px 0; border-bottom: 1px solid var(--gnrd-pink); }
h1 { font-size: 36px; line-height: 42px; margin-top: 0; word-wrap: break-word; }
h2 { font-size: 32px; line-height: 36px; }
h3 { font-size: 28px; line-height: 32px; }
h4 { font-size: 24px; line-height: 28px; }
h5 { font-size: 20px; line-height: 24px; }
h1 b, h1 strong, h2 b, h2 strong, h3 b, h3 strong, h4 b, h4 strong, h5 b, h5 strong { font-weight: 700; }
.textlabel { position: absolute; margin-left: -9999px; }
h1:empty { display: none; }

.skipto a { position: absolute; margin-left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; color: #fff!important; padding: 10px; background: var(--gnrd-purple); }
.skipto a:focus { margin-left: 0; width: auto; height: auto; opacity: 1; z-index: 50; }

.wrapper { max-width: 1200px; margin: 0 auto; padding: 0 25px; position: relative; }

header { background: var(--gnrd-ltpurple); padding: 25px 0; }
.logo { width: 380px; display: inline-block; vertical-align: top; }
.logo img { display: block; }
.logo:hover { opacity: 1; }

.trsi { position: absolute; top: 0; right: 25px; text-align: right; font-size: 14px; line-height: 20px; }
.trsi b { word-wrap: break-word; }
.trbuttons { position: absolute; bottom: 0; right: 25px; }
.trbuttons a.button { margin: 0 0 0 10px; }

main { min-height: calc(100vh - 345px); }
.pf_account main { min-height: calc(100vh - 320px); }
main ul { list-style: none; }
main li { margin-top: 3px; }
main ul li:before { content: '\2022'; position: absolute; margin-left: -20px; margin-top: -1px; color: var(--gnrd-pink); font-size: 1.2em; }
blockquote { background: var(--gnrd-neutral); margin: 25px; padding: 10px 25px; border-bottom: 1px solid var(--gnrd-pink); }
.boxestextwrap b.email { word-wrap: break-word; }
.cms_imgleft, .cms_imgright { max-width: 300px; }
.cms_imgright.profilepic { max-width: 256px; }

.breadcrumbs, .toptitle { padding-top: 50px; }
.pf_register main, .pf_privacy main, .pf_contact main, .signinwrap { padding-bottom: 40px; }

.breadcrumbs { font-size: 14px; line-height: 20px; margin-bottom: 10px; }
.breadcrumbs a { display: inline-block; color: inherit; }
.breadcrumbs span.divider { display: inline-block; color: var(--gnrd-ltpurple); }
.breadcrumbs span.divider:before { content: '\2022'; margin: 0 10px; }
.breadcrumbs a:last-of-type, .breadcrumbs span:last-of-type { display: none; }

.boxes { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.boxesimg { background: var(--gnrd-neutral); position: relative; overflow: hidden; }
.boxesimg img { position: absolute; top: 0; left: 0; right: 0; bottom: 0; object-fit: cover; object-position: center; width: 100%; height: 100%!important; }
.boxestext { padding: 100px 25px 85px; box-sizing: border-box; font-size: 24px; line-height: 32px; }
.boxestop .boxestext { padding: 75px 25px; }
.page_front .boxestop .boxestext { padding: 150px 25px 135px; }
.boxestext:first-child { justify-content: end; display: flex; }
.boxestextwrap { max-width: 575px; }
.page_front main>.wrapper, .pf_account_main main>.wrapper { max-width: none; padding: 0; }
.pf_account main>.wrapper:nth-child(2) { padding-bottom: 35px; }

.sectiondivider { position: absolute; left: 50%; width: 50px; height: 50px; background: url('../gfx/divider@2x.png') no-repeat center / contain; border-radius: 50%; margin: -25px 0 0 -25px; box-shadow: 0 0 25px rgba(0,0,0,0.1); pointer-events: none; z-index: 10; }

.frontmid, .accountmid { background: #fff url('../gfx/bg-globe-faded.png') no-repeat right -25% center / 75% auto; box-shadow: inset 0 0 125px rgba(0,0,0,0.25); padding: 75px 0 85px; }
.frontmid .frontmidintro { font-size: 18px; line-height: 26px; }
.frontmid .frontmidboxes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 50px; }
.accountmid { padding: 25px 0 50px; }

.subpages, .newsitems { display: grid; grid-template-columns: repeat(4, 1fr); gap: 25px; margin-top: 15px; }
.subpages a, .newsitems a { display: block; font-size: 18px; line-height: 24px; background: var(--gnrd-pink); text-align: center; padding: 25px 20px; border-radius: 5px; font-weight: 600; text-decoration: none; color: #fff; align-content: center; }
.subpages a:hover, .newsitems a:hover { opacity: 1; transform: scale3d(1.02,1.02,1); }
.subpages.spaccount { padding-bottom: 15px; }
.subpages.spnetwork { grid-template-columns: repeat(3, 1fr); }
.forumslist a, .resourcecats a, .subpages.spwg a, .subpages.spnetwork a { font-size: 22px; line-height: 26px; padding: 40px 20px; }
.subpages.spwg a { background: var(--gnrd-blue); }
.subpages.spnetwork a { background: var(--gnrd-green); }
.wrapaccount { padding-top: 25px; }

.newswrap { position: relative; }
.newsitems a { background: var(--gnrd-purple); padding: 0; align-content: start; text-align: left; overflow: hidden; font-size: 16px; line-height: 22px; }
.newsitems a .newstitle { font-size: 22px; line-height: 26px; padding: 15px 15px 0; } 
.newsitems a .newsdate { padding: 10px 15px 0; } 
.newsitems a .newsdesc { font-weight: 400; padding: 15px; }
p.morenewslarge { position: absolute; top: 45px; right: 25px; margin: 0; font-weight: 600; }
p.morenewslarge a { color: var(--gnrd-pink); }

.sectionintro { position: relative; }
.sectionintro.shrunk { max-height: 150px; overflow: hidden; transition: max-height 2s; }
.sectionintro.expanded { max-height: 5000px; }
.sectionintro.shrunk .expand { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(to bottom, rgba(255,255,255,0), #fff); border-radius: 0; transition: opacity 0.25s; margin: 0; }
.sectionintro.shrunk .expand:after { position: absolute; bottom: 1px; left: 50%; margin-left: -10px; width: 20px; height: 20px; background: var(--gnrd-blue) url('../gfx/tri-down.svg') no-repeat center / auto 75%; border-radius: 50%; content: ''; }
.sectionintro.shrunk .expand:active { top: auto; bottom: 0; }
.sectionintro.expanded .expand { opacity: 0; pointer-events: none; }
.sectionintro p, p.eventdate { font-size: 18px; line-height: 22px; }
.sectionintro p:first-of-type { font-size: 24px; line-height: 28px; }

.buttonsrow { position: relative; }
button#notifications { position: absolute; right: 0; top: 0; margin-right: 0; }
button#notifications:active { top: 2px; }

table.forumtopics { width: 100%; border-collapse: collapse; border-bottom: 1px solid var(--gnrd-neutral); }
table.forumtopics td { padding: 8px 10px; position: relative; }
table.forumtopics thead { background: var(--gnrd-purple); color: #fff; font-weight: 600; }
table.forumtopics tbody tr:nth-child(2n+0) { background: var(--gnrd-neutral); }
table.forumtopics td a { color: inherit; opacity: 1!important; text-decoration: none; }
table.forumtopics td.lastpost a { display: block; max-width: 250px; overflow: hidden; text-overflow: ellipsis; }
table.forumtopics a:after { position: absolute; top: 0; left: 0; bottom: 0; right: 0; content: ''; }
table.forumtopics tbody tr:hover { background: var(--gnrd-pink); }
table.forumtopics tbody tr:hover a { color: #fff; }
table.forumtopics tbody tr.newposts td:first-child { font-weight: 500; }
table.forumtopics td.lptime { opacity: 0.5; font-size: 0.9em; }
table.forumtopics .topicpinned, table.forumtopics .topiclocked { display: inline-block; width: 16px; height: 16px; background: var(--gnrd-pink) url('../gfx/icon-locked.svg') no-repeat center / auto 70%; border-radius: 50%; vertical-align: middle; margin-right: 5px; position: relative; top: -2px; }
table.forumtopics .topicpinned { background-image: url('../gfx/icon-pinned.svg'); }
form.forumsearch { position: relative; margin-bottom: 10px; }
form.forumsearch input { padding-right: 100px; border-radius: 5px; }
form.forumsearch button { position: absolute; top: 0; right: 0; margin: 0; border-radius: 0 5px 5px 0; }

table#forumposts { width: 100%; border-collapse: collapse; border-bottom: 1px solid var(--gnrd-neutral); table-layout: fixed; }
table#forumposts tr { border-top: 1px solid var(--gnrd-neutral); }
table#forumposts td { vertical-align: top; }
table#forumposts td.postinfo { width: 20%; padding: 15px 15px 15px 0; font-size: 0.8em; line-height: 1.5em; box-sizing: border-box; }
table#forumposts td:nth-child(2) { width: 80%; word-wrap: break-word; }
table#forumposts td.postinfo .postname, table#forumposts td.postinfo .postname a { max-width: 100%; overflow: hidden; text-overflow: ellipsis; display: block; }
table#forumposts td.postinfo .avatar, table#forumposts td.postinfo .avatarimg { display: block; width: 64px; height: 64px; background-size: cover; background-position: center; background-repeat: no-repeat; }
table#forumposts td.postinfo .posttime { display: block;  margin-top: 5px; }
table#forumposts .reply { background: var(--gnrd-neutral); margin: 15px 0 25px; padding: 10px 25px; border-bottom: 1px solid var(--gnrd-pink); cursor: pointer; max-height: 250px; overflow: hidden; position: relative; }
table#forumposts .reply:after { position: absolute; bottom: 0; left: 0; right: 0; content: ''; height: 40px; background: linear-gradient(to bottom, rgba(244, 242, 245, 0), rgba(244, 242, 245, 1)); }
table#forumposts .reply .origpostby { font-style: italic; }
table#forumposts .reply .origpostby:after { content: ' wrote:'; }
table#forumposts .posticons { margin-top: 10px; }
table#forumposts .posticons>* { display: inline-block; width: 32px; height: 32px; background: var(--gnrd-pink); background-position: center; background-repeat: no-repeat; background-size: auto 50%; border-radius: 50%; margin-right: 5px; cursor: pointer; }
table#forumposts .posticons>*:hover { opacity: 1; transform: scale3d(1.05,1.05,1); }
table#forumposts .posticons div.replyicon { background-image: url('../gfx/icon-reply.svg'); }
table#forumposts .posticons a.editicon { background-image: url('../gfx/icon-edit.svg'); background-position: left 53% top 47%; }
#showattachments:empty { display: none; }
#showattachments { margin: 15px 0 10px; }
table#forumposts .gallthumbnail, table#forumposts .filethumbnail, #showattachments>.preview { width: 128px; height: 128px; border: 0; display: inline-block; vertical-align: top; margin: 0 5px 5px 0; }
#showattachments>.preview { box-sizing: border-box; border: 1px solid var(--gnrd-blue); cursor: not-allowed; background-size: contain; background-position: center; background-repeat: no-repeat; }
table#forumposts .gallthumbnail a, table#forumposts .filethumbnail a, #showattachments .preview .preview { display: block; width: 128px; height: 128px; box-sizing: border-box; border: 1px solid var(--gnrd-blue); }
table#forumposts .filethumbnail a, #showattachments .previewfile { background: var(--gnrd-blue) url('../gfx/icon-file.svg') no-repeat top 10px center / auto 75%; position: relative; }
table#forumposts .filethumbnail a span.attfile, #showattachments .previewfile span.attfile { position: absolute; bottom: 0; left: 0; right: 0; font-size: 0.8em; line-height: 1.4em; padding: 10px; background: rgba(28,168,196,0.8); font-weight: 600; text-decoration: none; color: #fff; word-wrap: break-word; pointer-events: none; }
table#forumposts .attachments { margin-bottom: 10px; }
table#forumposts .ratepost { margin-bottom: 15px; text-align: right; }
table#forumposts .rateup, table#forumposts .ratedown { display: inline-block; vertical-align: top; font-weight: 600; margin-left: 25px; line-height: 40px; padding-left: 40px; background: url('../gfx/thumbs-up.svg') no-repeat left / contain; cursor: pointer; }
table#forumposts .posticons>*:hover, table#forumposts .ratepost>*:hover { opacity: 1; transform: scale3d(1.05,1.05,1); }
table#forumposts .ratedown { background-image: url('../gfx/thumbs-down.svg'); }
table#forumposts p.edited { text-align: right; font-style: italic; font-size: 0.8em; color: var(--gnrd-mid); }

.downloads { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; margin: 25px 0; }
.download { padding-left: 170px; position: relative; min-height: 150px; }
.downloadimage { position: absolute; top: 0; left: 0; width: 150px; height: 150px; background: var(--gnrd-blue); }
.downloadimage span { position: absolute; top: 1px; left: 1px; right: 1px; bottom: 1px; background-size: contain; background-color: #fff; background-repeat: no-repeat; background-position: center; }
.downloadimage.nothumb span { background: url('../gfx/thumb-generic-sm.jpg') no-repeat center / cover; }
.downloadtitle { font-weight: 600; font-size: 24px; line-height: 28px; }
.downloadinfo { font-style: italic; color: var(--gnrd-mid); text-align: right; font-size: 0.8em; line-height: 1.4em; margin-bottom: 0; }
.download:hover { opacity: 0.5; }
.download:hover a { opacity: 1!important; text-decoration: none; }
.downloadtitle:after { content: ''; position: absolute; top: 0; bottom: 0; left: 0; right: 0; }

.mapboxwrap { height: 90vh; max-height: 800px; min-height: 500px; background: var(--gnrd-neutral) url('../gfx/fl_loading.svg') no-repeat center / 32px auto; position: relative; }
#mapbox { opacity: 0; transition: opacity 0.5s; top: 0; bottom: 0; left: 0; right: 0; position: absolute; }
#mapbox.mbready { opacity: 1; }
#mapbox .marker { width: 24px; height: 24px; background: var(--gnrd-blue); cursor: pointer; border-radius: 50%; font-weight: 600; line-height: 24px; color: #fff; text-align: center; transition: background 0.25s; }
#mapbox .marker:hover { background: var(--gnrd-pink); }
#mapbox .marker:before { content: attr(data-count); }
#mapbox { font-family: "IBM Plex Sans", sans-serif; }
#mapbox h5 { margin: 0; }

.peopleresults { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; margin: 25px 0; }
.peopleresults a { background: var(--gnrd-blue); text-decoration: none; color: #fff; padding: 5px 20px; border-radius: 5px; }
.peopleresults ul { margin-top: -5px; }
.peopleresults a:hover { opacity: 1; transform: scale3d(1.02,1.02,1); }

main .uploader { position: relative!important; width: 100%!important; height: 100px!important; background: var(--gnrd-neutral)!important; cursor: pointer!important; overflow: hidden!important; box-sizing: border-box!important; border: 0!important; }
main .uploaderfile { position: absolute!important; left: -1000px!important; width: 1px!important; }
main .uploadertext { position: absolute!important; left: 20px!important; right: 20px!important; text-align: center!important; font-weight: bold!important; top: 50%!important; transform: translateY(-50%)!important; font-size: 16px!important; line-height: 22px!important; }
main .uploader:active, main .uploader.active { background: var(--gnrd-purple)!important; color: #fff!important; }
main .uploaderprogress { position: absolute!important; top: 0!important; bottom: 0!important; left: 0!important; right: 0!important; text-align: center!important; background: var(--gnrd-neutral)!important; cursor: wait;!important transition: 1s all!important; }
main .uploaderprogress span { position: absolute!important; left: 20px!important; right: 20px!important; top: 50%!important; transform: translateY(-50%)!important; font-weight: bold!important; }
main .uploaderprogress:empty { display: none!important; }
main .uploadstart .uploaderprogress { background: var(--gnrd-pink)!important; }
main .uploaddone .uploaderprogress { opacity: 0!important; }

footer { background: #0f1b32; color: #fff; font-size: 12px; line-height: 20px; padding: 45px 15px; text-align: center; }
footer p { margin: 5px 0; }
footer a { color: inherit; }

main label { display: block; font-size: 14px; line-height: 18px; margin: 10px 0 5px; font-weight: 500; }
input, textarea { -webkit-appearance: none; border-radius: 0; width: 100%; box-sizing: border-box; }
input, textarea, .fl_mailform textarea, select, button { font: 14px "IBM Plex Sans", sans-serif; color: var(--gnrd-text); border: 0; background: var(--gnrd-neutral); width: 100%; margin-right: 5px; display: block; padding: 10px; border-radius: 2px; box-sizing: border-box; height: 40px; position: relative; }
textarea, .fl_mailform textarea { height: 250px; }
input.checkbox, input[type=checkbox] { border: 0; width: auto; display: inline; background: transparent; -webkit-appearance: checkbox; height: auto; }
input:hover, textarea:hover, select:hover { background-color: var(--gnrd-neutral); }
input:focus, textarea:focus, select:focus { background-color: var(--gnrd-neutral); color: var(--gnrd-text); }
.tcsbox { border: 1px solid var(--gnrd-neutral); padding: 5px 20px; font-size: 0.8em; line-height: 1.4em; max-height: 250px; overflow: auto; -webkit-overflow-scrolling: touch; position: relative;  }
input.cr-slider { background: transparent!important; }
input[disabled] { opacity: 0.5; cursor: not-allowed; }

a.button { text-decoration: none; text-align: center; display: inline-block; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; max-width: 100%; box-sizing: border-box; }
input.emailsub, input.commentsub, input.formsub, .button, button { display: block; width: auto; font-weight: 600; font-size: 18px; line-height: 30px; height: 40px; margin: 10px 5px 10px 0; padding: 5px 15px; color: #fff!important; border: 0; background: var(--gnrd-pink); border-radius: 5px; cursor: pointer; text-decoration: none; box-sizing: border-box; }
input.emailsub:hover, input.commentsub:hover, input.formsub:hover, .button:hover, button:hover { transform: scale3d(1.05,1.05,1); opacity: 1; }
input.emailsub:active, input.commentsub:active, input.formsub:active, .button:active, button:active { position: relative; top: 2px; }

label.labelwrap { position: relative; display: block; padding-top: 25px; margin-top: 5px; }
label.labelwrap>span { position: absolute; font-size: 14px; top: 0; left: 0; transform: none; margin: 0; transition: all 0.5s; cursor: pointer; color: var(--gnrd-text); font-weight: 500; z-index: 1; }
label.labelwrap>span:has(+ input:placeholder-shown), label.labelwrap>span:has(+ textarea:placeholder-shown)  { top: 50%; left: 10px; transform: translateY(-50%); margin-top: 12px; font-size: 14px; color: var(--gnrd-mid); font-weight: 400; }
label.labelwrap>span:has(+ textarea:placeholder-shown) { top: 20px; transform: none; }
label.labelwrap>span:has(+ input:focus), label.labelwrap>span:has(+ textarea:focus) { font-size: 14px!important; top: 0!important; left: 0!important; transform: none!important; margin: 0!important; font-weight: 500; color: var(--gnrd-text); }

.checkboxes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 25px; }
.checkboxes input { position: absolute; left: -9999px; }
.checkboxes label { display: block; background: var(--gnrd-neutral); padding: 10px; font-weight: normal; text-align: center; margin: 0; cursor: pointer; }
.checkboxes input:checked+label { background: var(--gnrd-purple); color: #fff; }
.checkbox { margin-top: 10px; position: relative; min-height: 20px; }
.checkbox input { width: 20px; height: 20px; position: absolute; }
.checkbox label { padding-left: 30px; }

.reqd, .err { font-weight: 600; color: #c00; }
.reqd { margin: 0 5px; }
#signinerror { margin-top: 15px; }

#diseasegroups { margin-bottom: 10px; }

p.morenewssmall, .pf_account footer p.madeby, .pf_account header .buttonsi, #signinerror:empty, .countrylisting { display: none; }

dialog { border: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%); box-shadow: 0 0 25px rgba(0,0,0,0.5), 0 0 0 100vw  rgba(255, 255, 255, 0.75); z-index: 50; }
dialog::backdrop { background: transparent; backdrop-filter: blur(5px); }
dialog button#overlayclose { position: absolute; top: 15px; right: 15px; width: 40px; height: 40px; padding: 0; line-height: 40px; border-radius: 20px; background: var(--gnrd-purple); font-size: 28px; margin: 0; text-align: center; outline: none; }
dialog button#overlayclose span { position: relative; top: -1px; }
dialog #overlaycontent { border-radius: 0; box-sizing: border-box; padding: 25px; width: 400px; background: #fff; }
dialog #overlaycontent>*:last-child { margin-bottom: 0; }
dialog #overlaycontent>*:first-child { margin-top: 0; }
dialog p.accountoptions a { display: inline-block; margin-right: 10px; }
form h3 { margin-bottom: 5px; }
form h3:first-child { margin-top: 0; }

dialog, ::backdrop { transition: display 1s allow-discrete, overlay 1s allow-discrete, opacity 1s; opacity: 0; }
[open], [open]::backdrop { opacity: 1; }
@starting-style { [open], [open]::backdrop { opacity: 0; } }

a, button, table.forumtopics tbody tr, .checkboxes label, .replyicon, table#forumposts .ratepost>*, .download { transition: all 0.25s; }

@media (max-width: 959px) {
	html, body { min-width: 320px; -webkit-text-size-adjust: none; }
	.cms_imgleft, .cms_imgright { max-width: 250px; }
	.subpages, .newsitems { grid-template-columns: repeat(3, 1fr); }
	.newsitems:nth-of-type(4) { display: none; }
	.frontmid, .accountmid { background-position: bottom 25% right 25%; background-size: auto 120%; }
	.downloads { grid-template-columns: 1fr; }
	table.forumtopics td.lastpost a { max-width: 200px; }
}
@media (max-width: 799px) {
	.boxes { display: flex; flex-direction: column-reverse; }
	.boxestop { flex-direction: column; }
	.boxesimg { height: 50vh; max-height: 400px; min-height: 200px; }
	.boxestext, .boxestop .boxestext, .page_front .boxestop .boxestext { padding: 25px; }
	.boxestextwrap { max-width: none; }
	.breadcrumbs, .toptitle { padding-top: 25px; }
	.pf_register main, .pf_privacy main, .pf_contact main, .signinwrap, .pf_account main>.wrapper:nth-child(2) { padding-bottom: 10px; }
	table#forumposts td.postinfo { width: 150px; }
	table#forumposts td:nth-child(2) { width: calc(100% - 150px); }
	table.forumtopics td.lastpost a { max-width: 150px; }
}
@media (max-width: 767px) {
	.cms_imgleft, .cms_imgright { max-width: 200px; }
	.frontmid { padding: 50px 0 60px; }
	.frontmid .frontmidboxes { grid-template-columns: 1fr; gap: 10px; }
	.subpages, .newsitems, .peopleresults { grid-template-columns: repeat(2, 1fr); }
	.newsitems:nth-of-type(4) { display: block; }
}
@media (max-width: 690px) {
	button.mapboxgl-ctrl-attrib-button { margin: 0; padding: 0; background-position: center; }
}
@media (max-width: 679px) {
	.trbuttons a.buttonreg, .trsi{ display: none; }
	.trbuttons a.button { width: 40px; height: 40px; text-indent: -9999px; background: var(--gnrd-pink) url('../gfx/icon-user.svg') no-repeat center / auto 60%;  }
	.trbuttons { bottom: auto; top: 50%; margin-top: -20px; right: 15px; }
	header { padding: 15px 0; }
	.wrapper { padding: 0 15px; }
	table.forumtopics { margin: 0 -15px; width: calc(100% + 30px); }
	table.forumtopics td.lastpost, table.forumtopics td:last-child { display: none; }
	table.forumtopics td:first-child { padding-left: 15px; }
	table.forumtopics td:nth-child(2) { text-align: right; vertical-align: top; padding-right: 15px; }
	table.forumtopics span.lastpostsmall { display: block; font-size: 0.8em; line-height: 1.4em; opacity: 0.5; }
	table.forumtopics span.lastpostsmall:before { content: 'Last post: '; }
	table.forumtopics span.lastpostsmall:after { content: attr(data-info); }

}
@media (max-width: 599px) {
	.logo { width: 190px; }

	html, body { font-size: 14px; line-height: 22px; }
	h1 { font-size: 28px; line-height: 32px; }
	h2 { font-size: 24px; line-height: 28px; }
	h3, .sectionintro p:first-of-type, .downloadtitle { font-size: 20px; line-height: 24px; }
	h4, .boxestext, .forumslist a, .resourcecats a, .subpages.spwg a, .subpages.spnetwork a, .newsitems a .newstitle { font-size: 18px; line-height: 22px; }
	h5, .subpages.spaccount a, .sectionintro p, p.eventdate { font-size: 16px; line-height: 20px; }
	.frontmid .frontmidintro { font-size: 16px; line-height: 24px; }
	.newsitems a { font-size: 14px; line-height: 20px; }

	.cms_imgleft, .cms_imgright { max-width: 100%; display: block; margin: 15px auto; float: none; }

	h1, h2, h3, h4, h5 { padding-right: 15px; }
	
	.pf_account_main .boxesimg, .morenewslarge { display: none; }
	p.morenewssmall { display: block; }

	main { min-height: calc(100vh - 275px); }
	.pf_account main { min-height: calc(100vh - 250px); }
	.downloadimage { width: 100px; height: 100px; }
	.download { padding-left: 115px; min-height: 100px; }
	
	.mapboxwrap { height: 50vh; min-height: 250px; }
	
	table#forumposts td.postinfo, table#forumposts td:nth-child(2) { display: block; width: auto; position: relative; }
	table#forumposts td.postinfo { padding: 15px 0 0; }
	table#forumposts .posticons { position: absolute; top: 15px; right: -5px; margin: 0; }

}
@media (max-width: 479px) {
	dialog #overlaycontent { width: 350px; }
	.subpages.spnetwork, .peopleresults { grid-template-columns: 1fr; }
	main { min-height: calc(100vh - 295px); }
	.pf_account main { min-height: calc(100vh - 270px); }
	.hidemed { display: none; }
	.capmed { text-transform: uppercase; }
	
	table#forumposts .gallthumbnail, table#forumposts .filethumbnail, #showattachments>.preview, table#forumposts .gallthumbnail a, table#forumposts .filethumbnail a, #showattachments .preview .preview { width: 100px; height: 100px; }

}
@media (max-width: 389px) {
	dialog #overlaycontent { width: 330px; }
	.subpages, .newsitems { grid-template-columns: 1fr; }
	.hidesm { display: none; }
}
@media (max-width: 369px) {
	dialog #overlaycontent { width: 310px; }
}
@media (max-width: 349px) {
	dialog #overlaycontent { width: 290px; }
}
@media (max-width: 329px) {
	dialog #overlaycontent { width: 280px; }
}
@media (max-width: 329px) {
	#cf-turnstile { transform: scale(0.95); transform-origin: top left; }
}