#container{clear:both;text-align:left;line-height:1.6;}
#container h2{margin-bottom:20px;}
#container h2.top{margin-bottom:0px;}
#container h3.sub{margin-bottom:10px;}
#container h3.title_sub{margin-bottom:10px;padding-left:15px;background:url(../img/title_sub.gif) no-repeat left top;font-size:28px;line-height:33px;}
#container h3.title_sub a{color:#333333;text-decoration:none;}
#container h3.title_sub .fm{font-size:25px;}
#container h3.title_sub .fs{font-size:17px;}
#container h3.title_sub .ico{padding-left:80px;background:url(../img/ico.png) no-repeat left 40%;background-size:auto 80%;-webkit-background-size:auto 80%;}
/* Top page: match .title_waku section headers (id="reason" elsewhere uses .sub, not .title_sub) */
#container h3#reason.title_sub{
	margin-bottom:0;
	padding:14px 18px;
	border:1px solid #e2e8f0;
	border-left:4px solid #0378bf;
	border-radius:5px 5px 0 0;
	background-color:#f4f6f8;
	background-image:none;
	color:#0f172a;
	font-size:1.125rem;
	font-weight:600;
	line-height:1.45;
	letter-spacing:0.02em;
}
#container h3#reason.title_sub .red{text-shadow:none;}
#container h3.title_waku,
#container h4.title_waku,
#container h4.title_waku2{
	margin:0;
	padding:14px 18px 14px 18px;
	border:1px solid #e2e8f0;
	border-left:4px solid #0378bf;
	border-radius:5px 5px 0 0;
	background-color:#f4f6f8;
	background-image:none;
	color:#0f172a;
	font-size:1.125rem;
	font-weight:600;
	line-height:1.45;
	letter-spacing:0.02em;
	position:relative;
}
#container h3.title_waku:after,
#container h4.title_waku:after{clear:both;display:block;overflow:hidden;height:0px;content:"";}
#container h3.title_waku .red,
#container h4.title_waku .red{text-shadow:none;}
#container h3.title_waku .pick{padding:0;color:#92400e;font-size:0.875em;font-weight:normal;}
#container h3.title_waku .ico,
#container h4.title_waku .ico{padding-left:80px;background:url(../img/ico.png) no-repeat left center;background-size:auto 100%;-webkit-background-size:auto 100%;}
#container h3.title_waku .yellow{color:#a16207;font-size:80%;font-weight:normal;}
#container h3.title_waku .h3_rit{position:absolute;right:12px;top:50%;transform:translateY(-50%);margin:0;max-width:48%;}
#container h3.title_waku .h3_rit a{color:#0378bf;text-decoration:none;font-size:0.8125rem;font-weight:500;}
#container h3.title_waku .h3_rit a:hover{text-decoration:underline;}
@media only screen and (min-width:641px){
	#container h3.title_waku:has(.h3_rit){padding-right:14rem;}
}
/**/#container .box_waku{clear:both;margin-bottom:30px;margin-top:0;padding:18px 20px;background:#FFFFFF;border:1px solid #e2e8f0;border-top:none;border-radius:0 0 5px 5px;box-shadow:0 1px 2px rgba(15,23,42,0.04);}
#container .box_waku:after{clear:both;display:block;overflow:hidden;height:0px;content:"";}
/**/#container .title_list{margin-bottom:15px;color:#1F71BC;font-size:22px;}
#container .title_list:before{content:"\25A0";color:#F19C1E;}
#container .title_list span.fs{margin-left:10px;color:#333333;font-size:15px;}
#navi p{margin-bottom:20px;}
#navi_info{clear:both;margin-bottom:20px;padding:0px 5px 5px;background:#cccccc url(../img/navi/bg_info.gif) repeat-x top;border:1px solid #8c8c8c;font-size:95%;line-height:1.4;}
#navi_info h3{padding:5px 0 5px 15px;background:url(../img/navi/p.png) no-repeat left center;color:#0076be;font-size:18px;}
#navi_info .box{padding:5px;background:#FFFFFF;}
#navi_info .box dt{color:#1569C3;}
#navi_info .box dd{border-bottom:dashed 1px #999999;margin-bottom:10px;padding-bottom:10px;text-align:justify;text-justify:inter-ideograph;}
#navi_info .box dd p{margin-bottom:10px;}
#teams a, #zoom a{display:block;padding:6px 0px;background:#00aff0;border:5px solid #7fd7f7;color:#FFFFFF;font-size:17px;line-height:20px;font-weight:bold;text-align:center;text-decoration:none;}
#zoom a{background:#360; border:5px solid #690;}
#teams_how a{display:block;padding:8px 0px;background:#ff7800;border:5px solid #ff9600;color:#FFFFFF;font-size:14px;line-height:17px;font-weight:bold;text-align:center;text-decoration:none;}
#page_menu,
.page_menu{margin-bottom:20px;background:#FFFFFF;border:1px solid #BBBBBB;}
#page_menu li,
.page_menu li{list-style:none;border-bottom:1px solid #DDDDDD;}
#page_menu a,
.page_menu a{display:block;padding:10px;text-decoration:none;}
.page_menu a{padding:5px 10px;font-size:95%;}
#page_menu a:hover,
.page_menu a:hover{background:#FFC;}
#navi_link{clear:both;width:198px;height:24px;padding:1px;background:#052e68;margin-bottom:20px;}
#navi_link li{float:left;width:auto;height:24px;list-style:none;}
#navi dt.title_waku{padding:8px 12px;background-color:#f4f6f8;background-image:none;border:1px solid #e2e8f0;border-left:3px solid #0378bf;border-radius:4px 4px 0 0;color:#0f172a;font-size:15px;font-weight:600;}
/* ---- Footer ---- */
#footer{clear:both;background:#ffffff;color:#333333;font-size:13px;line-height:1.5;overflow-x:hidden;}
#footer p{margin:0;}
#footer .box.footer-inner{clear:both;padding:0 16px 16px;text-align:left;max-width:960px;margin-left:auto;margin-right:auto;box-sizing:border-box;width:100%;}
#footer .footer-bar{height:6px;background:#f1f3f5;}
#footer .footer-grid{display:flex;flex-wrap:wrap;gap:20px 40px;padding:20px 0 14px;justify-content:space-between;align-items:flex-start;}
#footer .footer-col{flex:1 1 140px;min-width:140px;max-width:220px;}
#footer .footer-col-brand{flex:0 0 auto;max-width:none;text-align:center;align-items:center;display:flex;flex-direction:column;}
#footer .footer-heading{margin:0 0 8px;font-size:14px;font-weight:700;color:#1a1a1a;}
#footer .footer-links{margin:0;padding:0;list-style:none;}
#footer .footer-links li{margin:0 0 5px;padding:0;background:none;display:block;white-space:normal;}
#footer .footer-links li:last-child{margin-bottom:0;}
#footer .footer-links a{color:#5c5c5c;text-decoration:none;font-size:13px;overflow-wrap:break-word;}
#footer .footer-links a:hover{text-decoration:underline;color:#333333;}
#footer .footer-logo-link{display:inline-block;text-decoration:none;line-height:0;}
#footer .footer-logo-img{display:block;width:220px;max-width:100%;height:auto;vertical-align:top;}
#footer .footer-tagline{margin:6px 0 0;font-size:12px;font-weight:400;color:#8a8a8a;letter-spacing:0.02em;text-align:center;width:100%;}
#footer .footer-rule{height:0;border:0;border-top:1px solid #e2e4e8;margin:0 0 10px;}
#copyright{clear:both;font-size:12px;color:#9a9a9a;text-align:center;margin:0;}
@media only screen and (min-width: 769px) {
	#footer{position:relative;margin-top:0;min-height:0;min-width:0;width:100%;max-width:100%;box-sizing:border-box;}
	#footer .box.footer-inner{width:min(900px,100%);max-width:100%;padding-left:16px;padding-right:16px;box-sizing:border-box;margin-left:auto;margin-right:auto;}
	#footer .footer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(200px,240px);column-gap:20px;row-gap:14px;align-items:start;width:100%;box-sizing:border-box;}
	#footer .footer-col{max-width:none;min-width:0;}
	#footer .footer-col:not(.footer-col-brand){justify-self:start;width:100%;max-width:100%;}
	#footer .footer-col-brand{grid-column:auto;justify-self:stretch;display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;min-width:0;box-sizing:border-box;}
	#footer .footer-col-brand .footer-logo-link{width:100%;max-width:220px;}
	#footer .footer-logo-img{width:100%;max-width:220px;height:auto;}
	#footer_btn{display:none;}
}
@media only screen and (max-width: 767px) {
	#footer .footer-grid {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: flex-start;
		gap: 16px 12px;
		padding: 18px 0 12px;
	}
	#footer .footer-grid > .footer-col {
		flex: 1 1 calc(50% - 8px);
		max-width: calc(50% - 8px);
		min-width: 0;
		width: auto;
		box-sizing: border-box;
	}
	#footer .footer-col-brand {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		text-align: left;
	}
	#footer .footer-col-brand .footer-logo-link {
		align-self: flex-start;
		width: 220px;
		max-width: 100%;
	}
	#footer .footer-col-brand .footer-tagline {
		width: 220px;
		max-width: 100%;
		text-align: center;
		box-sizing: border-box;
	}
}
@media only screen and (max-width: 640px) {
	#footer {
		min-width: 320px;
		padding-bottom: 55px;
	}
	#footer .footer-grid {
		gap: 14px 10px;
	}
}
#page_top{clear:both;font-size:11px;line-height:1;}
#page_top a{display:block;float:right;width:110px;height:14px;padding:6px 10px 0px;background:#052E68;color:#FFFFFF;text-decoration:none;}
#page_top a:hover{text-decoration:underline;}
#page_navi{clear:both;margin-bottom:20px;color:#888888;font-size:12px;line-height:1;}
#page_navi li{display:inline;margin-right:6px;}
#page_navi a{text-decoration:none;color:#888888;}
#page_navi a:hover{text-decoration:underline;color:#888888;}
.tbl{width:100%;}
.tbl th,
.tbl td{padding:10px;background:#FFFFFF;border:1px solid #BBBBBB;}
.tbl th{background:#0076BE;color:#FFFFFF;white-space:nowrap;}
dl.attention dt{float:left;width:16px;}
dl.attention dd{margin-left:16px;}
p.attention{text-indent:-1em;margin-left:1em;}
.mark{padding-left:16px;background:url(../img/p.gif) no-repeat 0% 50%;}
.btn_flex {display: flex;justify-content: space-around;}
.yellow_btn a {color: #fff;background:#ffc000;border: 1px solid #333;text-decoration:none;padding: 10px 30px;border-radius:10px;font-size: 20px;font-weight: bold;}
.green_btn a {color: #fff;background:#008000;border: 1px solid #333;text-decoration:none;padding: 10px 30px;border-radius:10px;font-size: 20px;font-weight: bold;}
.btn_green a {
	display: inline-block;
	padding: 6px 15px;
	background:#008000;
	border: 1px solid #008000;
	border-radius: 20px;
	color: #FFF;
	font-size: 110%;
	text-decoration: none;
}
.btn_green a:hover {
	filter:alpha(opacity=70);
	-moz-opacity: 0.7;
	opacity: 0.7;
}

/* ---- Single-bar header ---- */
#header.site-header {
    background: #ffffff;
    border-bottom: 1px solid #e2e6ed;
    height: auto;
    width: 100%;
    box-sizing: border-box;
    text-align: left;
    padding: 0;
    position: sticky;
    top: 0;
    z-index: 1000;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
#header.site-header .in {
    width: auto;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 20px;
    height: 56px;
    min-height: 56px;
    display: flex;
    align-items: center;
    gap: 0;
    float: none;
}
#header.site-header .nav-toggle {
    display: none;
    margin-left: auto;
    width: 38px;
    height: 38px;
    border: 1px solid #c5c9d0;
    border-radius: 6px;
    background: #ffffff;
    cursor: pointer;
    padding: 8px 7px;
    box-sizing: border-box;
}
#header.site-header .nav-toggle .bar {
    display: block;
    width: 100%;
    height: 2px;
    margin: 4px 0;
    background: #1e3a8a;
}
#header.site-header .header-mobile-panel {
    display: flex;
    flex: 1;
    align-items: center;
    min-width: 0;
}
#header.site-header .site-logo {
    margin: 0;
    padding: 0;
    line-height: 1;
    flex-shrink: 0;
}
#header.site-header .site-logo a {
    display: inline-block;
    text-decoration: none;
}
#header.site-header .site-logo img {
    width: auto;
    max-width: none;
    height: 48px;
    display: block;
    vertical-align: middle;
}
#header.site-header .main-nav {
    flex: 1;
    margin: 0 0 0 32px;
}
#header.site-header .main-nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 20px;
    justify-content: flex-start;
}
#header.site-header .main-nav li {
    float: none;
    width: auto;
    border: none;
    background: none;
    height: auto;
}
#header.site-header .main-nav a {
    color: #1a1a1a;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0;
    text-decoration: none;
    white-space: nowrap;
    padding: 0;
    background: none;
    display: inline;
}
#header.site-header .main-nav a:hover {
    color: #0b2f73;
    background: none;
}
#header.site-header .header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    white-space: nowrap;
    flex-shrink: 0;
    margin-left: 24px;
}
#header.site-header .header-text-link {
    color: #555;
    font-size: 14px;
    font-weight: 400;
    text-decoration: none;
}
#header.site-header .header-text-link:hover {
    color: #0b2f73;
}
#header.site-header .divider {
    color: #bbb;
    font-size: 14px;
    margin: 0 -4px;
}
#header.site-header .header-btn {
    display: inline-block;
    padding: 8px 18px;
    border-radius: 6px;
    border: 1px solid #d1d5db;
    color: #1a1a1a;
    background: #ffffff;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}
#header.site-header .header-btn:hover {
    background: #f5f7fa;
}
#header.site-header .header-btn.login {
    color: #1e2d6e;
    border: 1.5px solid #1e2d6e;
    background: #f1edfb;
    font-weight: 600;
    padding: 8px 20px;
}
#header.site-header .header-btn.login:hover {
    background: #e8e0f7;
    border-color: #1e2d6e;
    color: #031b68;
}
#header.site-header .header-btn.cta {
    border-color: #1e2d6e;
    background: #1e2d6e;
    color: #ffffff;
    font-weight: 600;
    padding: 9px 20px;
}
#header.site-header .header-btn.cta:hover {
    background: #2d3f94;
    border-color: #2d3f94;
}
body {
    background: #ECECEC;
}
#container {
    padding-top: 16px !important;
}
/* Header breakpoints (16px nav/buttons): full ≥1160 | compact 848–1159 | mobile ≤847 */
/* ---- Intermediate: compact header, no school/corporate links ---- */
@media only screen and (min-width: 848px) and (max-width: 1159px) {
    #header.site-header .in {
        padding: 0 12px;
        height: 52px;
        min-height: 52px;
        flex-wrap: nowrap;
    }
    #header.site-header .site-logo img {
        height: 40px;
    }
    #header.site-header .nav-toggle {
        display: none !important;
    }
    #header.site-header .header-mobile-panel {
        display: flex !important;
        width: auto;
        flex: 1;
        min-width: 0;
    }
    #header.site-header .main-nav {
        margin: 0 0 0 16px;
    }
    #header.site-header .main-nav ul {
        gap: 12px;
    }
    #header.site-header .header-actions {
        margin-left: 12px;
        gap: 8px;
    }
    #header.site-header .header-text-link,
    #header.site-header .divider {
        display: none !important;
    }
    #header.site-header .header-btn {
        padding: 7px 14px;
        font-size: 16px;
    }
    #header.site-header .header-btn.cta {
        padding: 8px 16px;
    }
}
/* ---- Mobile: hamburger menu ---- */
@media only screen and (max-width: 847px) {
    #header.site-header .in {
        height: auto;
        min-height: 0;
        flex-wrap: wrap;
        padding: 6px 12px;
        gap: 0;
    }
    #header.site-header .site-logo img {
        height: 40px;
    }
    #header.site-header .nav-toggle {
        display: inline-block;
    }
    #header.site-header .header-mobile-panel {
        display: none;
        width: 100%;
        flex: none;
        order: 3;
        margin-top: 6px;
        padding: 6px 0 8px;
        border-top: 1px solid #e2e6ed;
    }
    #header.site-header.menu-open .header-mobile-panel {
        display: block;
    }
    #header.site-header .main-nav {
        width: 100%;
        margin: 0;
    }
    #header.site-header .main-nav ul {
        display: block;
        gap: 0;
    }
    #header.site-header .main-nav li {
        width: 100% !important;
    }
    #header.site-header .main-nav a {
        display: block;
        padding: 10px 2px;
        font-size: 16px;
        text-align: left;
    }
    #header.site-header .header-actions {
        margin: 8px 0 4px;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 8px;
    }
    #header.site-header .divider {
        display: none;
    }
    #header.site-header .header-text-link {
        width: auto;
        display: inline-block;
        padding: 6px 0;
        font-size: 14px;
    }
    #header.site-header .header-actions .mobile-break {
        flex-basis: 100%;
        height: 0;
        order: 2;
    }
    #header.site-header .header-actions .header-text-link {
        order: 1;
    }
    #header.site-header .header-actions .header-btn {
        order: 3;
        margin-top: 4px;
    }
    #header.site-header .header-btn {
        font-size: 16px;
        padding: 7px 12px;
    }
}