html, body { height: 100%; }
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,table,th,td{margin:0;padding: 0;}
fieldset,img,abbr { border: 0; }
address,caption,cite,code,dfn,em,h1,h2,h3,h4,h5,h6,th { font-style:normal; font-weight:normal;}
input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}
a { text-decoration: none; }
ul li { list-style-type:none; }

body {
	min-width: 300px;
	background-color: #f6f6f6;
	color: #222;
	font-family: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
	--text-size-sup: 18px;
	--text-size-norm: 16px;
	--text-size-sub: 14px;
	--text-size-subsub: 12px;
	--color-action: #3c84a5;
	--w-desktop-min: 1200px;
	--w-mobile-max: 1200px;
}
@media (min-width: 1201px) {
	body { font-size: var(--text-size-norm); line-height:150%; }
}
@media (max-width: 1200px) {
	body { font-size: var(--text-size-norm); line-height:150%; }
	input, select, textarea { font-size: var(--text-size-norm); }
}
a { color: var(--color-action); /* 0095dd */ }


#head, #neck, #body, #foot{ clear:both; }
.wrap { margin:0 auto; width:96%; max-width:1260px; }
.wrap.narrow { max-width:600px; }
.wrap.wide { max-width:1400px; }
.wrap.wide.padded { width:98%; }
.wrap.maxw.padded { max-width:none; padding-left:1%; padding-right:1%; }

/************************* RESPONSIVE ***************************/

@media (min-width: 1201px) {
	body { overflow-y:scroll; }
	a:hover { text-decoration: underline; }
	
	.block { margin-bottom:10px; clear:both; }

	#head { background-color: #243842; }
	#head a { color:#eee; text-shadow: 1px 1px 1px rgba(0,0,0,.4); }
	#head a:hover { color: #fff; text-shadow:none; }

	#neck { background-color: #f2f2f2; }
	.breadcrumb { padding:3px 10px; display:inline-block; }
	
	#body { padding-top:20px; padding-bottom: 20px; }

	.menu { display:inline-block; }
	.menu a:hover { background-color:#052950; }
	.menu .group { white-space:nowrap; }
}
@media (max-width: 1200px) {
	.block { margin-bottom:6px; clear:both; }
	.blockol { padding:15px 0; clear:both; }
	.blockol h2 { padding-bottom: 15px; }
	.blockol h2.blockttl{ text-transform:uppercase; font-size:var(--text-size-subsub); font-weight:bold; }
	.blockol .blockctrls { padding-top: 15px; }

	.wrap.maxw.padded { max-width:none; padding-left:1%; padding-right:1%; }
	
	#head a { color:#fff; }
	#head .menu { display:none; }
	#body { padding-top:10px; padding-bottom: 10px; }
	#neck + #body { padding-top:0; }

	#neck { background-color: #fff; padding: 0 0 0 5px; }
	.breadcrumb { padding:8px 10px; line-height:150%; }

	.content { padding-right:10px; padding-left:10px; }
	.content .text p + p { margin-top:6px; }
}

@media (max-width: 1200px) and (orientation:landscape) {
	html { -webkit-text-size-adjust:none; text-size-adjust:none; }
}
@media (max-width: 420px) {
	.wrap.maxw.padded { padding-left:10px; padding-right:10px; }
}

.block:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; }

/************************** site specific global styles **************************/


.msg { margin-bottom: 10px; padding:10px; }
.msg.nobtmmargin { margin-bottom:0; }
.msg.success, .msg.msg1 { color:#fff; background-color: #7fa926; background-color:rgba(127,169,38,.8); }
.msg.notification, .msg.msg4 { color:#032064; background-color: #bce4f7; background-color:rgba(188,228,247,.8); }
.msg.warning, .msg.msg3 { color:#9e5f05; background-color: #fdeeb3; background-color:rgba(253,238,179,.8); }
.msg.error, .msg.msg2 { color:#fff; background-color: #c00; background-color:rgba(204,0,0,.8); }

.txt-positive { color:#67822e; background-color:rgba(127,169,38,.2); border-radius:3px; padding:1px 5px; }
.txt-warning { color:#9e5f05; background-color:rgba(253,238,179,.5); border-radius:3px; padding:1px 5px; }

@media (min-width: 1201px) {
	.but2:hover { background-color: #2F96B4; color: #fff; text-decoration: none; }
}

/*************************** ABSOLUTE GLOBAL STYLES *****************************/

.tal{ text-align:left; }
.tac{ text-align:center; }
.tar{ text-align:right; }
.clear{ clear:both; height:0;}
.clearafter:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; }
.dn{ display:none !important; }
.db{ display:block; }
.vh{ visibility:hidden; }
.vv{ visibility:visible; }
.fl { float:left; }
.fr { float:right; }
.st { font-size:10px; }
.fss { font-size:var(--text-size-subsub); }
.itl { font-style:italic; }
.bld { font-weight:bold; }
.wsnw { white-space:nowrap; }
.alt { background-color:#f2f2f2; }
.alt2 { background:url(/asset/img/alt_back2.gif) repeat top left; }

@media (max-width: 1200px) {
	.alt4mobile { background-color:#f2f2f2; }
	.fssmob { font-size:var(--text-size-sub); line-height:150%; }
}
@media (max-width: 420px) {
	.grid.fssmob th,
	.grid.fssmob td {padding:4px;}
}

/********************************************************************************/

h1, h1.big, h2 { line-height:120%; }
h1.big { text-align:center; float:none; }
h3 { font-size:inherit; }

@media (min-width: 1201px) {
	h1.big { font-size:48px; }
	h1 { font-size:42px; }	
	h2 { font-size:30px; }
}
@media (max-width: 1200px) {
	h1.big { font-size:24px; }
}
@media (min-width: 421px) {
	h1 { font-size:24px; }	
	h2 { font-size:18px; }
}
@media (max-width: 420px) {
	h1 { font-size:22px; }
	h1.big { font-size:28px; }
	h2 { font-size:20px; }
}

/************** HEAD **************/
#head { font-size:var(--text-size-norm); line-height:20px; background-color:rgb(28, 132, 238); box-shadow: rgba(18, 38, 63, 0.3) 0px 3px 8px 0px; }
#head .nav-elm { display:inline-block; text-decoration:none; padding:12px 0; }
#head span.nav-elm { color:rgba(255,255,255, .8); }
#head .nav-elm + .nav-elm { margin-left:20px; }
#head .logo { background-position:center; background-repeat:no-repeat; background-size:contain; font-weight:bold; padding: 10px 0; }

/************** NECK **************/
#neck {
	background-color:#fff;
	box-shadow:	0 .5rem 1rem rgba(0,0,0,.1);
}
#neck .breadcrumb { min-height:30px; font-size:var(--text-size-sub); line-height:30px; padding-right: 0; padding-left: 0; }

/************** BODY **************/
#body.nopad { padding-top:0; padding-bottom: 0; }
#body.notoppad { padding-top:0; }
#body.nobtmpad { padding-bottom:0; }

/**************************** FOOT ******************************/
#foot { font-size:var(--text-size-sub); text-align:center; box-sizing:border-box; color:#666; padding:50px 10px 25px; }
#foot #footinner { border-top: 1px solid #ddd; padding-top:20px; max-width:60%; margin:0 auto; }
#foot a {  }
#foot .copy, #foot span.stat { color:#999; }

/************** BODY **************/

.breadcrumb div { display:inline; white-space:nowrap; }
.breadcrumb .txtlink { color:inherit; }
.breadcrumb .last a { color:inherit; }

.pagetitleblock { padding: 0 0 5px 0; position:relative; }
.pagetitleblock .pagetitle { margin-right:34px; }
.pagetitleblock .btn-reloadpage { position:absolute; top:0; right:0; }
@media (max-width: 1200px) {
	.pagetitleblock { padding: 15px 0 10px 5px; }
	.pagetitleblock .btn-reloadpage { position:absolute; top:13px; right:0; }
}

.weeklymenu {
	display: flex;
	justify-content: space-between;
	flex-wrap: nowrap;
}
.weeklymenu .menuday { flex:0 0 19%; }
.weeklymenu .menudaytitle { padding-bottom:10px; }
.weeklymenu .menudaytitle span { display:block; clear:both; }
.weeklymenu .menudaytitle span.main { font-weight:600; }
.weeklymenu .menudaytitle span.sub { opacity:.6; font-size:12px; }
.weeklymenu .menudayperiod + .menudayperiod { margin-top: 10px; }
.weeklymenu .mealcard + .mealcard { margin-top: 20px; }

.mealpartsset { display: inline-flex; justify-content: flex-start; flex-wrap: wrap; grid-gap:8px; }
.mealpartsset .part { font-size: var(--text-size-sub); line-height: var(--text-size-sub); border-radius: 4px; border:solid 1px #999; padding:4px 5px; }

@media (min-width: 1201px) {
	.mealpartsset label.part { cursor:pointer; }
}

.mealcard {
	max-width: 100%;
	position:relative;
	border-radius:5px;
	background-color:#fff;
	box-shadow: 0 .25rem .75rem rgba(18,38,63,.08);
	position:relative;
	z-index:101;
	overflow:hidden;
}
.mealcard.active { border-color: rgb(28,132,238); box-shadow: rgb(28,132,238) 0px 0px 5px; }
.mealcard .ttlline { padding: 8px; line-height:120%; border-bottom:solid 1px #ddd; font-weight:600; }
.mealcard .ttlline:last-child { border-bottom: none; }
.mealcard .txtline { line-height:120%; }
.mealcard .txtline + .txtline { padding-top:0; }
.mealcard .mealpartsline { }
.mealcard .semititle { font-weight:600; }
.mealcard .semiinfo { font-size: var(--text-size-sub); }
.mealcard .semititle + .semiinfo { margin-top:-6px; font-style:italic; }
.mealcard input[type=number] { max-width: 80px; text-align:center; }
.mealcard .mealcardprvdrinfo { position:absolute; bottom:15px; right:15px; z-index:102; color:#666; line-height:100%; font-size:var(--text-size-subsub); }
.mealcard .mealcardpin { position:absolute; top:15px; right:15px; z-index:112; padding:5px; }
.mealcard .mealcardpinhalo { position:absolute; top:6px; right:6px; z-index:111; display:inline-block; width:32px; height:32px; }
.mealcard .mealcardpin + .cdata { padding-right:25px; border: solid 2px #fff; }
.mealcard .mealpartcounter { position:absolute; right:100px; bottom:15px; left:100px; z-index:102; text-align:center; font-size:var(--text-size-subsub); line-height:100%;  }


@media (min-width: 1201px) {
	.mealcard .txtline { padding:10px; }
	.mealcard .mealpartsline { padding: 0 10px; }
	.mealcardgrid { display: flex; justify-content: flex-start; flex-wrap: wrap; grid-gap:1%; }
	.mealcardgrid .mealcard { max-width: 100%; flex: 0 1 32.5%; position: relative; margin-bottom: 20px; height: fit-content; }
	
	.mealcard .mealcardpin:hover { cursor:pointer; }
	.mealcard .mealcardpinhalo:hover { cursor:pointer; }
}
@media (max-width: 1200px) {
	.mealcard .txtline { padding:8px; }
	.mealcard .mealpartsline { padding: 0 8px; }
	.mealcard .mealcardprvdrinfo { right:10px; bottom:10px; }
	.mealcard .mealcardpinhalo { top:3px; right:3px; }
	.mealcard .mealcardpin { top:10px; right:10px; }
	.mealcard .mealcardpin + .ttlline { padding-right:20px; }

	.mealcardgrid { }
	.mealcardgrid .mealcard { position: relative; margin-bottom: 10px; }
	.mealcard .txtline + .txtline { margin-top:-4px; }
}

.menulist .menuday { background:#fff; border-radius:5px; overflow:hidden; }
.menulist .menudayperiod { background-color:#ddd; padding:10px 10px 0 10px; border-radius:5px; overflow:hidden; }
.menulist .menudayperiod.note { background-color:transparent; border:dashed 1px #666; }
.menulist .menudayperiod.note .msg { background-color:#fff; }
.menulist .menudayperiod + .menudayperiod { margin-top:10px; }
.menulist .menudayperiod.toggle-collapsed .mealslist,
.menulist .menudayperiod.toggle-collapsed .msg { display:none }
.menulist .menudayperiod .togglehint { position:absolute; top:0; right:0; }
.menulist .menudayperiod.toggle-collapsed .togglehint .togglehint-expanded { display:none; }
.menulist .menudayperiod:not(.toggle-collapsed) .togglehint .togglehint-collapsed { display:none; }
.menulist .menudayperiodtitle { padding-bottom:10px; font-weight:600; font-size:var(--text-size-sup); line-height:150%; position:relative; }
.menulist .menudayperiodtitle span + span { padding-left:10px; }


@media (min-width: 1201px) {
	.menulist .toggle:hover { cursor:pointer; }
}

.pill { display: block; background:#fff; border-radius:5px; padding:10px; position:relative; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); }
.pill .main { display: block; font-weight:600; }
.pill .sub { display: block; font-weight:400; font-size: var(--text-size-sub); line-height:150%; }
.pill .arrowhint { position:absolute; top: 10px; right:10px; bottom:10px; font-size: var(--text-size-sup); }		
.pill .arrowhint:before {  display:inline-block; content:""; height:100%; vertical-align:middle;  }
.pill .arrowhint i { vertical-align:middle; }
.pill + .pill { margin-top:10px; }

.pillsquares { display:flex; justify-content:flex-start; flex-wrap:wrap; grid-gap: 10px; }
.pillsquares .pillsquare { flex: 0 1 150px; height:150px; text-align:center; box-sizing:border-box;  }
.pillsquares .pillsquare .icon { display:block; padding-top:15px; font-size:50px; line-height:50px; }
.pillsquares .pillsquare .text { position:absolute; right:5px; bottom:15px; left:5px; line-height:120%; }
.pillsquares .pillsquare + .pillsquare { margin-top: 0; }

.pillset { }
.pillset + .pillset { padding-top: 30px; }
.pillset .pill-title { padding-left: 5px; padding-bottom: 5px; }
.pillset .pill-title h2 { padding-bottom: 5px; }

@media (min-width: 1201px) {
	a.pill:hover { text-decoration: none; }
}

.pager .note { min-width:20px; text-align:center; display:inline-block; padding:6px;  }
.pager a { min-width:20px; display:inline-block; padding:5px; border:1px solid #8ab5c9; border-radius: 3px; }
.pager a + a { margin-left: 3px; }
.pager .prev.off, .pager .next.off { visibility:hidden; }
.pager .prev, .pager .next { min-width:70px; }
.pager .prev { border-top-left-radius: 5px; border-bottom-left-radius: 5px; }
.pager .next { border-top-right-radius: 5px; border-bottom-right-radius: 5px; }

@media (min-width: 1201px) {
	.pager { padding-top:20px; }
	.pager a { background-color:#fff; }
	.pager a:hover { color: #fff !important; background-color: #49afcd !important; border-color:#49afcd; text-decoration: none; }
	.pager a.current { background-color:#e3f4fd; }
	.pager a.current .of { display:none; }
}
@media (max-width: 1200px) {
	.pager { padding:15px 0; }
	.pager a.current { border-color:transparent; }
}

.form2 { text-align:left; }
.form2 label { display:block; }
.form2 label[for] { cursor:pointer; }
.form2 label * { vertical-align:middle; }
.form2 label span { float:right; white-space:nowrap; font-style:italic; }
.form2 input[type=text], .form2 input[type=number], .form2 input[type=password], .form2 input[type=email], .form2 input[type=url], .form2 select, .form2 textarea {
	box-sizing:border-box;
	border:1px solid #ccc;
	padding:5px 0 5px 5px;
	width:100%;
	clear:both;
	display:block;
}
.form2 input.narrow,
.form2 select.narrow { width: 100px; }
.form2 legend { padding:0 5px; display:block; font-weight:bold; }
.form2 .control-block { clear:both; margin-bottom:15px; display:block; }
.form2 .control-block.nomarg { margin-bottom:0; }
.form2 .form-actions { clear:both; margin-bottom:0; display:block; }
.form2 .form-actions input[type=text] { display:inline-block; width:auto; }

.form2 .toggle-actions { clear:both;  display:block; }
.form2 .toggle-actions .toggle-but { color:#4ca6cf; background-color:#fff; padding:0 5px; cursor:pointer; }
.form2 .toggle-on .toggle-actions { border-bottom:solid 1px #ccc; margin-bottom:15px; padding-bottom: 5px; }
.form2 .toggle-off .togglable { display: none; }

.form2 input.disabled { background-color: #eee; border-color: #ddd; }

.form2 span.hint{
	float:right;
	width:98%;
	padding: 0.5% 1%;
	font-size: 80%;
	font-style:italic;
	color:#666;
	background-color:#ffd;
	border-right-style: dashed;
	border-bottom-style: dashed;
	border-left-style: dashed;
	border-width: 1px;
	border-color: #eee;
}

.form2 .horizontal > * { display:inline-block !important; vertical-align:baseline; }
.form2 .autowidth > * { display:inline-block !important; width:auto !important; max-width:100%; }

.form2.frame, .framebox { border:solid 1px #ccc; padding:10px; background-color:#f2f2f2; }
.form2.frame, .framebox.borderless { border:0 none; }
.form2.frame.light, .framebox.light { background-color:#fefefe; }
.form2.frame.semidark, .framebox.semidark { background-color:#e0e0e0; }

@media (min-width: 421px){
	.half { width:49%; float:left; }
	.half:nth-child(2n+1) { clear:left; padding-right:1%; }
	.half:nth-child(2n+2) { width:50%; }

	.third { width:32%; float:left; }
	.third:nth-child(3n+1) { padding-right:2%; clear:left; }
	.third:nth-child(3n+2) { padding-right:2%; }
	.third:nth-child(3n+3) { }

	.fourth { width:24%; float:left; }
	.fourth:nth-child(4n+1) { padding-right:1%; clear:left; }
	.fourth:nth-child(4n+2) { padding-right:1%; }
	.fourth:nth-child(4n+3) { padding-right:1%; }
	.fourth:nth-child(4n+4) { width:25%; }
}

.btn {
	outline: 0 !important;
	overflow: hidden;
	font-size: inherit;
	line-height: 150%;
	border-radius: 4px;
	border: 1px solid transparent;
	padding: 3px 15px;
	text-align: center;
	display: inline-block;
	vertical-align: middle;
	cursor:pointer;
}
.btn-icon { padding:3px 7px; }
.btn-primary { color: #fff; background-color: #1c84ee; border-color: #1c84ee; }
.btn-primary[disabled] { opacity: .5; cursor:auto; }
.btn-primary:not([disabled]).active { color: #fff; background-color: #166abe; border-color: #1563b3; }
.btn-primary.btn-warning { background-color: #cd5049; border-color: #cd5049; }
.btn-primary.btn-warning:not([disabled]).active {  background-color: #ac3537; border-color: #ac3537; }

@media (min-width: 1201px) {
	.btn-primary:not([disabled]):hover { color: #fff; background-color: #1870ca; border-color: #166abe; }
	.btn-primary:not([disabled]):focus { color: #fff; background-color: #1870ca; border-color: #166abe; -webkit-box-shadow: 0 0 0 .15rem rgba(62,150,241,.5); box-shadow: 0 0 0 .15rem rgba(62,150,241,.5); }
	.btn-primary.btn-warning:not([disabled]):hover { background-color: #ac3537; border-color: #ac3537; }
	.btn-primary.btn-warning:not([disabled]):focus { background-color: #ac3537; border-color: #ac3537; }
}

.grid{ background-color:#fff; border:solid 1px #e7e7e7; border-collapse: collapse; }
.grid.wmax { width:100%; }

.grid tr { border-top: 1px solid #e7e7e7; }
.grid:not(.nozebra) tr:nth-child(2n+1) { background-color: #f5f6f7; }

.grid th {
	background-color: #e9e9e9;
	border-bottom: 1px solid #d3d3d3;
	border-left: 1px solid #d3d3d3;
	color: #555;
	padding: 5px 3px;
	text-align: center;
	font-weight:600;
	font-size:smaller;
}
.grid th:first-child { border-left: 0 none; }
.grid td { border-left: 1px solid #E7E7E7; padding: 8px; }
.grid td:first-child { border-left: medium none; }
.grid td.btn-holder { width:1px; padding-top:4px; padding-bottom:4px; }
.grid td.smallpad { padding: 1px; }
.grid td.edit, .grid td.delete{width:30px; white-space:nowrap; }
.grid tr:hover td { background:#ddd; }

.grid th.highlight { font-weight:700; color:#333; }
.grid td.ok { background: rgba(0, 200, 0, 0.3) none repeat scroll 0 0 !important; }
.grid td.nok { background: rgba(200, 0, 0, 0.3) none repeat scroll 0 0 !important; }
.grid td.narrow, .grid th.narrow { width:50px; }
.grid td.numberstd, .grid th.numbersth { width:100px; }
.grid td.halfw { width:50%; }
.grid td.tac, .grid th.tac { text-align:center; }
.grid td.tar, .grid th.tar { text-align:right; }
.grid td.tal, .grid th.tal { text-align:left; }
.grid.vtop td { vertical-align:top; }

@media print {
	body {
		--text-size-sup: 16px;
		--text-size-norm: 14px;
		--text-size-sub: 12px;
		--text-size-subsub: 10px;
		line-height:120%;
	}
	.noprint { display:none; }
	#head, #neck, #foot { display: none; }
	.grid th { padding:2px 2px; }
	.grid td { padding:2px 2px; }
	.pagetitleblock { margin: 0; }
	.btn-reloadpage { display:none; }
	h1.pagetitle { font-size: var(--text-size-sup); font-weight:bold; line-height:120%; }
	.form2 { padding: 2px; }
}

.anm-nudge {
	animation: nudge .4s linear;
}
@keyframes nudge {
	0% { transform: rotate(-8deg); }
	20% { transform: rotate(8deg); }
	40% { transform: rotate(-8deg); }
	60% { transform: rotate(8deg); }
	80% { transform: rotate(-8deg); }
}